-
-
Notifications
You must be signed in to change notification settings - Fork 29
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Create a Firefox Quantum version of TabFern #100
Comments
Changes to get the popup to load in Firefox. It is nowhere near functional, though :) .
Requested by Ismo Räävi via support request 2018/04/15 |
None of the icons are visible, but you can save windows and restore them from the TabFern window.
In Firefox, chrome.windows.create throws rather than returning error to the callback if you try to open a window including, e.g., `about:debugging`. Add a try block so that failure doesn't prevent opening windows later on. (#100)
Hey @cxw42 what's the status on FF support? |
Looks like the steps in "Hacking on TabFern" for the switchover branch might now be right... not sure... Shouldn't a dev change to switchover branch? And branch off of switchover? https://github.com/cxw42/TabFern/wiki/Hacking-on-TabFern Last but not least, I'm not sure how to use the built extension in firefox! |
@devinrhode2 Unfortunately, I haven't had a chance to work on it. It does load as a temporary add-on without crashing, but I wouldn't consider it particularly usable :) . I would be delighted to have some help! Yes, if you do have any time, I would ask that you please work off Using the built extension: See Loading temporary add-ons in Firefox. Pick |
(So I guess that's what the status on FF is :) |
Yep, those are normal (broadly defined :D). Did you see the extension window pop up on its own? Try double-clicking the icon and see if you get the window (double-click = summon to current browser window). When I load the temporary extension, I get the same manifest errors, but the TF window opens anyway. |
Double clicking the icon still does not do anything for me, also tried
disabling all extensions except for stylus, restarting, and still nothing
for single/double click.
I am using FF 64.0 64-bit, on macOS High Sierra.
When I first load the extension in about:debugging, I see this:
[image: Screen Shot 2018-12-26 at 1.16.38 PM.png]
When I reload I see this:
[image: Screen Shot 2018-12-26 at 12.54.22 PM.png]
The last commit in my working directory (from you) - on the switchover
branch, is:
commit 2deb068 (HEAD -> firefox-work,
origin/switchover, origin/firefox-work, switchover)
Author: Chris White <[email protected]>
Date: Tue Dec 18 22:01:13 2018 -0500
Remove S.COLLAPSE_ON_PARTIAL_WIN_CLOSE
Don't use the option I started adding in
25752b3. It would require winOnRemoved
to receive state information about why the window was closed, and I
don't
think this feature is sufficiently valuable to take the memory and
complexity hit. Let me know if you disagree!
Also, improve the ergonomics of "collapse on window close". If you hit
Close on an already-closed window, collapse it.
Mentioned in #35.
…On Wed, Dec 26, 2018 at 12:05 PM Chris White ***@***.***> wrote:
Yep, those are normal (broadly defined :D). Did you see the extension
window pop up on its own? Try double-clicking the icon and see if you get
the window (double-click = summon to current browser window).
When I load the temporary extension, I get the same manifest errors, but
the TF window opens anyway.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#100 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AAg8qHXDaOOEdTVMMpWRy1aFkTdGB4F4ks5u87pXgaJpZM4REvjJ>
.
|
`npm run ff` will build and then make a `public-ff` tree you can load as a temporary extension in Firefox Quantum. Also removed old files we no longer need.
@devinrhode2 Unfortunately, the screenshots did not come through. However, I added a fix for the manifest issues, in case that helps. Instead of |
Thanks! The screenshots did come through. I am on Windows, which is why I think I might be having trouble replicating. I did try a fresh
Thank you for working with me on this! |
|
Some screenshots coming up.. |
Another try at fixing the "can't load process" in #100. From brunch/brunch#1503 (comment).
iframesOh - my fault. The background doesn't have any iframes. That's the main window, so remember the iframe +
|
wow removing those added bits got the extension to just popup when I reloaded the background page! |
Great news! Now is the time for Would you please start a new topic branch from this point for Firefox? I'm going to do the same for issue 35. That way we won't step on each other's toes, and the eventual PRs will be cleaner. If you find anything I haven't listed above, feel free to ping me here or open a separate issue as you see fit. I am going to update the wiki with some more development info in the next few days. Re. the event-order issue, for example, every tab has to be represented in both the multidex and the jstree. The jstree had a holding-pen node where we can hang the tree node for a new tab before its window arrives. |
It's a success report |
Re. save data - yes - should be no problem. The save-data file is just JSON. Ideally, there should be no difference in functionality between Chrome and FF when we're done. I certainly have not intentionally added any differences. |
Ok so I haven't switched over yet, figured out I can port active tabs by just bookmarking all tabs, but when I restarted firefox, I had some sort of "browser crashed, do you want to restore session?" from firefox, and saw this: TabFern is not actually installed, since I'm just loading it from the directory, so probably there's some issue with Tab Center Redux |
Indeed, it may well be an interaction bug. Not sure why the crash would have happened, though. I just found this which looks like it has useful info (most notably, switch to Developer Edition and set xpinstall.signatures.required to false) - I'll try it myself when I get the chance. |
This way your saved tabs will persist across Firefox sessions.
Edited OK - I tried
At one point, something messed up the permissions on Hacking
|
Run `BRUNCH_ENV=firefox npx brunch w`, and the watch will regenerate the public-ff/ tree whenever you change the source files.
Hi, Thanks god you did it ! I'd love to tip you, but didn't find anything for that on TabFern webpage... |
@Samir-S Thank you! I'll get right on that :D . Please back up frequently! I don't know what differences between Chrome and Firefox may be lying in wait to cause issues. I look forward to any feedback you may have. |
@devinrhode2 re. "cannot find module process from /" --- I now have an Ubuntu 18.04 setup and am seeing the same. For now I am going to do the manual hack you suggested (removing the lines) :) . If I think of anything better I'll let you know. Specifically (for the benefit of future readers), after running
was changed to:
(added My Brunch is somewhat customized, which may be causing an issue. I'll look into it in due course. |
- Added a 'require' to pull process into the background page. May fix the issue identified at #100 (comment) . - More sophisticated stringification of chrome.runtime.lastError. Somewhere around Chrome 75, chrome.runtime.lastError lost toString(), as far as I can tell.
@devinrhode2 Would you please join me at #179? Thanks! |
I assume you already know https://developer.mozilla.org/docs/Mozilla/Add-ons/WebExtensions/Porting_a_Google_Chrome_extension |
@rugk Yes, indeed, but thanks for checking! Do you happen to have any bandwidth to help out? :D The differences TF runs into are largely undocumented assumptions. E.g., in Chrome, a window always has at least one tab, but that's not the case in Vivaldi. In Firefox, the extension can't manipulate any |
I may have a look. Though seeing that it has already worked and I don't exactly know what is still TODO here. |
@rugk Thanks for considering! Yes, all of the check boxes at the top are things that need to be fixed before the general public can use TF on FF. There may be others that will show up once those are done. Sometime in the next few days I am going to make what is now the |
CC licenses should not really be used for software. (they are intended for everything else) Rather use something like GPL instead then. |
Just a note for anyone wondering how functional this extension currently is: I tested it for 5 minutes and frankly if Tree Style Tab interop was implemented I would use it as-is. The only bugs I've seen are two from the OP. Specifically:
I installed the extension as @cxw42 recommended earlier (downloading the "webstore" zip from TabFern's releases):
@cxw42 I skimmed this issue and #179. Given that the extension seemed to work for me (I'm on macOS), should (Not sure what the "openWindowForURL" checkbox/issue in the OP refers to.) |
@7vq Thanks very much for trying it out, and for the update! Glad to hear the good news --- I haven't run it on FF in a while. What version of Firefox did you use, and what version+CPU of macOS? Re. #179, building from source produces exactly what goes in the ZIP file. Therefore, I think that box can be checked! 🎉 |
Would you please open a new issue for that? I'm curious to hear more about what you're looking for. |
Of course. Thanks for making it!
Firefox 96.0.1, Big Sur, Intel
Definitely! Here: #286 |
Mentioned in #82 and #99.
Firefox does support the
chrome.*
API (at least at present), so we don't need to switch tobrowser.*
.Known issues
When creating a new window in FF 64, the tab-created and tab-activated messages arrive before the window-created message (!). Therefore, we need to cache new tabs in the multidex without windows somehow, and flush them out if the window never arrives. I think we can probably stick them in the holding pen. Log:
Figure out how to handle
about:debugging
,about:config
, and any other URLs that extensions aren't allowed to create (see 5e52143). (Are there any other such URLs? May need to grep the FF source.)(Hack added in fdecec3) Update the build pipeline to produce separate Chrome and FF versions. At present, all I know of is that we need to use a different manifest for each browser (see Create a Firefox Quantum version of TabFern #100 (comment)).
Cannot find "process" from "/"
error on load on macOS (edit currently the workaround has to be applied by hand. At least automate that, if nothing else. But first update the customized Brunch based on upstream.)app/win/const.js:openWindowForURL(): On FF:
the
window.create
call makes a new tab instead of a new windowAfter the
tabs.get
call, the URL for the settings window is stillabout:blank
. Looks like we need to wait until the tab-load state gets tocomplete
before testing theurl
.The text was updated successfully, but these errors were encountered: