Skip to content
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

Migrate to WebExtensions for Firefox 57 and later #1224

Closed
theres-waldo opened this issue Dec 7, 2016 · 95 comments
Closed

Migrate to WebExtensions for Firefox 57 and later #1224

theres-waldo opened this issue Dec 7, 2016 · 95 comments

Comments

@theres-waldo
Copy link

Mozilla recently announced that starting in Firefox 57, Firefox will no longer support addons that are not WebExtensions.

Is it possible to convert Tree Style Tab to be a WebExtension, so it can continue working in Firefox 57 and beyond?

@piroor
Copy link
Owner

piroor commented Dec 7, 2016

I hope to migrate TST to WebExtensions, but there are many missing features yet. This is a list of strongly depending bugs:

@cpriest
Copy link

cpriest commented Dec 7, 2016

I've had a request for SnapLinks v3 (a web extension version) to re-add compatibility with TST. Do you expect the new cross-plugin API to be radically different than the exiting XUL based addon?

@CrashNBurn71
Copy link

That's sad, only one of those bugs has even been actioned, and even the one that has - looks like its low priority, with no updates aside from discussion on the bug.

As for, 1280347 - wouldn't that be better accomplished if Mozilla:

  1. Allow Tabs on the Top|Bottom, and an alternate top-down listing so they can be displayed Left|Right.
  2. Allow to negate default styling on tabs.
  3. Allow any tab-related-addons to "listen" for changes: Tabs closing, opening, moving - so they can react.
  4. Allow for New-Tab to be modified by listening addons, so it can be inserted into the correct position.

As proposed 1280347 seems like it would be a significant undertaking on Mozilla's behalf compared to the 4 points above. Is there anything missing in the 4 points that you addressed in 1280347 that would still not be possible?

@CrashNBurn71
Copy link

Does the feature in Nightly to put tabs in a category have anything to do with being able to store extra-data in the tab object/session ?

@nt1m
Copy link

nt1m commented Mar 8, 2017

@piroor You don't need bug 1280347 if bug 1332447 is fixed right ?

@CrashNBurn71
Copy link

Mozilla has also added "Test Pilot", along with "Tab Center"

https://testpilot.firefox.com/experiments/tab-center

This would seem to be heading towards where Tree Style Tab can move forward to Firefox 57 as a Web Extension if a way is provided to store "Tab Specific data" within the session files. No?

@asamuzaK
Copy link
Contributor

asamuzaK commented Mar 9, 2017

See also Tabs Tree Options · Issue #989 · bwinton/TabCenter

@mimoo
Copy link

mimoo commented May 26, 2017

How can we help?

@GuyXY
Copy link

GuyXY commented May 26, 2017

@mimoo It is written, only Link can defeat Ganon!

@nt1m
Copy link

nt1m commented May 26, 2017

For anyone who's looking for a WE replacement: https://addons.mozilla.org/en-US/firefox/addon/tree-tabs/

@TteokbokkiNari
Copy link

Tried that one a while back, but it's not the same, and last I checked there are some things missing from it being proper replacement.

Tabs were still on top, so you'd have tabs on top and on the side last I tried, and with TST I have my pinned bookmarks on the bottom.
The first one was a WE limitation last I checked, though. The last one I am not sure of.

From developer comment on a review:
"Hiding tab bar is unavailable from Web extensions for now. Please join conversation at bugzilla to convince Web Extensions team to give us this possibility, here:
https://bugzilla.mozilla.org/show_bug.cgi?id=1332447"

@Keith94
Copy link

Keith94 commented May 27, 2017

Tabs were still on top, so you'd have tabs on top and on the side last I tried

You can add the following to userChrome.css to hide the top bar (tested in Fx 55).

#TabsToolbar {
    visibility: collapse;
}

@nt1m
Copy link

nt1m commented May 27, 2017

@TheSweetLily The API has been approved, it just needs someone to work on the proposal.

@photonometric
Copy link

Sorry if this is a naive question, and we still have some time to go, but what else might be done to push this ahead? Relying on the main Mozilla devs to generously spend time fixing bugs that don't jetpack or make FF look more like chrome seems like wishful thinking to me.

I mean, how complex are the problems, and how many/which are likely to be fixed as part of the larger FF upgrade project? Can any of the knowledgeable folks here answer that in like, a sentence or two for those of us non-programmers anxiously tapping our toes?

If one of the bugs is looking unattended as the dreaded WE time approaches, what can we do? Are they (comparatively) simple enough that we could hire someone on fiverr to do some work? Or another programming equivalent of that kind of service?

Sorry to push things along here without really contributing, but TST has been the number one essential part of my FF/web browsing experience since its inception. Tree Tabs has been ported (or perhaps concurrently programmed) from Vivaldi, and has a lot of promise, but it would be a shame to abandon such a long-standing project as this.

@yfdyh000
Copy link
Contributor

@photonometric FYI: https://wiki.mozilla.org/WebExtensions#Additional_APIs & https://wiki.mozilla.org/WebExtensions/RoadMapFirefox57.

If some APIs can not come in Firefox 57, we can continue to develop in future versions, as well as got it and improve once it landed in Nightly. If some WebExtension APIs or requirements cannot be approved, we can try to find a better idea, or expect Mozilla to change their minds, or wait for a third party to make a patch / build for broader APIs.

@nt1m
Copy link

nt1m commented Jun 13, 2017

@photonometric All the remaining APIs have been approved, they just need to be implemented by someone. If you're an extension dev, you can help out by making a WebExtensions experiment.

The main blocker is the API to hide the native tabbar, which is likely going to be implemented soon as Tab Center needs it (there's already a pretty advanced replacement out there btw: https://github.com/eoger/tabcenter-redux).

@photonometric
Copy link

photonometric commented Jun 13, 2017

@yfdyh000 (love your avatar!!!) Thanks for that, good to know there are more options than I thought for "worst case scenario," so to speak...I've been making comments to that effect in the Tree Tabs thread in the Vivaldi forum, since several people there were stating that TST was abandoned and I felt the need to stick up for him/it/us ;)

Perhaps there should be some more obvious "we're not dead yet" statements (or indeed any mention of the impending WE problem) on the 3 or 4 documentation areas for this plugin, so me linking repeatedly to this issue isn't the only indicator users of other browsers have that the project is still alive ^^;;; I mean, Tree Tab began development because the general browser community, developers included, thought WE was going to kill this plugin....that indicates some lack of communication as to intention.

@ntim: no, as I made clear, I'm no kind of dev. But I've spent hours over the lifetime of this project trying to help figure out bugs and keep it "in service." Needless to say I feel helpless not being able to do anything, which is why I asked about would could be done to "pay" someone to fix a bug (or implement the needed APIs, as you say). Hopefully it won't be necessary, or if not completed in time for WE deadline, will be fixed somehow soon after.

@nt1m
Copy link

nt1m commented Jun 13, 2017

@photonometric I know you're not a dev, but I'm mentioning it in case someone comes across the comment and wishes to contribute. One way you can help is asking developers you may know if they can help.

@ralesk
Copy link

ralesk commented Aug 4, 2017

Latest 57 nightly broke the TST sidebar, but native tab bar hiding seems to work, so I currently have no tabs whatsoever :) I really hope things work out best for TST in the end, it's my favourite addon ever in a browser (and it's such a shame no other browsers have anything similar)

@mimoo
Copy link

mimoo commented Aug 31, 2017

Is there a way to donate money to this project? It is an essential part of Firefox for me.

@ralesk
Copy link

ralesk commented Sep 28, 2017

@RobT2012 TST 2.0 which is compatible with FF57+ is a WebExtension.

@mimoo
Copy link

mimoo commented Sep 28, 2017

broke again :(

@RobT2012
Copy link

@ralesk

Yes, I figured that out after posting. I removed all add-ons, so whatever is preventing multiple processes from spawning has nothing to do with TST. I'm using nightly build 58 so it could be anything at this point, or perhaps the terminology used to describe a FF "process" is not a normal Linux process as I expected. So far, everything is working, I just don't see more than one FF process running and I don't have any idea even if more than one core is being used.

FF is reporting this:

about:support
Multiprocess Windows 2/2 (Enabled by default)
Web Content Processes 8/8

So who knows. I cannot decipher what those metrics are for as of yet, looking for some documentation describing what those values mean. Anyway, the issues I'm having have nothing do to do with TST so I'll take it up elsewhere. TST is working just fine for me!

@nnethercote
Copy link

@RobT2012: the about:support suggests that multi-process is working for you. But note that FF content processes are not called "firefox", they are (non-obviously) called "plugin-container".

@simu
Copy link

simu commented Sep 29, 2017

@RobT2012 @nnethercote For me the content processes are actually called "Web Content" on Linux with Firefox 57b3.

TST 2.0 works fine for me, good work @piroor.

I'm currently using the following userChrome.css:

#TabsToolbar {
  visibility:collapse;
}
#sidebar-header {
  display:none;
}

so TST on the left looks almost like it used to. Additionally, I've found that setting

.tab {
  padding: 1px;
}

In TST's "Extra style rules for sidebar contents" gives the tabs a look that I prefer over the default amount of whitespace in each tab. Note that due to how the sidebar layout is computed you may have to restart Firefox after adding the rule, one symptom is that collapsed tab trees may look super sketchy with the padding set to 1px before restarting the browser.

@RobT2012
Copy link

@simu

I was not seeing "web content" processes either. Today I updated to the latest nightly and now I see 4 "web content" processes, so everything finally looks right.

I hanged on to old FF for as long as I could only because of TST but eventually I gave up and switched to Chrome as my default browser. I still kept using FF for certain things because of TST but not very often. I'm now happy enough to make FF my default browser again. I hope Mozilla can recover, they lost a lot of users.

I really like the idea of tab groups and so on, but it's just not enough, and I cannot understand why all the major browser devs refuse to consider implementing native tree tabs, it's a basic need for anyone who does a lot of browsing.

@joshuacant
Copy link

Hey @piroor is mouse wheel scrolling to change tabs on your roadmap at all? This is such an important feature for me I'd probably attempt to learn programming webextensions if it's not something you'd add in. I know it's a trivial/unnecessary feature for most people, but it's one of those workflow must-haves for me. Thanks again for all your work in rebuilding, I can't overstate how impressed and happy I am.

@SXZ1
Copy link

SXZ1 commented Oct 3, 2017

@xamphear Mouse wheel scrolling is currently used to scroll the contents of the sidebar when the sidebar can't fit all opened tabs. I guess possible solution is to change tabs when mouse is hovered over the tabs and scroll the contents of the sidebar when the mouse is hovered over the scroll bar (the one in the sidebar).

@joshuacant
Copy link

@SXZ1 The way it works in legacy Firefox w/ TST and TMP is that once you have enough tabs to need scrolling, a thin scroll bar appears which you can use to scroll up and down.

@piroor
Copy link
Owner

piroor commented Oct 3, 2017

@xamphear It is discussed at #1399.

@maximilianoe
Copy link

Everytime I open a new private window the sidebar is hidden. Not sure if this is a Webextension issue, is there a way to show the TreeStyle sidebar in private windows by default so I don't need to press Ctrl + H and then manually choose TreeStyle?

@mimoo
Copy link

mimoo commented Oct 8, 2017

Firefox is really slow currently, I only have Tree Style Tabs enabled, it looks like it doesn't like it.

@SkySkimmer
Copy link

Well I've migrated.
Most annoying is the crazy scrolling at new tab because of https://bugzilla.mozilla.org/show_bug.cgi?id=1387372
#1384 is also a problem.
In general opening and closing tabs is slower when the window has a lot of tabs.
When closing a tab at the end of a tree, the focus moves to the next tab then jumps back to the previous tab.

I don't really care about this but I was surprised by it: when moving to next tab with Ctrl+Tab, it used to skip over collapsed trees but now it goes inside them. I guess if I didn't userchrome the native tab bar away it would look sensible there.

Good luck with future bugs.

@JakubJagoda
Copy link

Hi, the extension works well, but I have one problem - after closing Firefox, opening it again and choosing History -> Restore Previous Session the tree structure seems to be forgotten and tabs are flattened and mixed. Is it only me? Firefox 57.0b9, Win 10, TST in version 2.0.5 from 13.10.2017.

@SXZ1
Copy link

SXZ1 commented Oct 17, 2017

@JakubJagoda this bug is discussed here: #1476

@JakubJagoda
Copy link

@SXZ1 3 hours before my post, that explains why I couldn't find it in the afternoon :) thanks

@dionorgua
Copy link

Any change to change font size of 'Tree Style Tab' title (where it's possible to switch bar to 'Bookmarks' / 'History' )?

@Keith94
Copy link

Keith94 commented Nov 9, 2017

@dionorgua Use userChrome.css and this code:

#sidebar-switcher-target {
  font-size: 75%;
}

@SXZ1
Copy link

SXZ1 commented Nov 9, 2017

@piroor I've found STR for a couple of performance regressions but STR implies opening 190 blank tabs, that is possible to do in a couple of ways:

  1. Hold Ctrl-T for 5 seconds. However, you won't be able to relaunch the browser because TST can't restore 190 blank correctly (order of tabs gets messed up)
  2. I will upload saved session (sessionstore.jsonlz4) with 190 tabs to guthub, you'll have to copy it to the new profile and restore session. I'll use github.com tabs instead of blank new tabs so you'll be able to restore this session without problems. The most convenient way, IMO
  3. Open 190 github.com tabs yourself. Will take a loooong time.

Which way is more convenient for you? I guess I'll also record the video.

@Confucij
Copy link

As autohide feature was mentioned here before I thought this would be a good place to pin my code snippet for autohide. It is derivate from one found on GitHub

/*
 * Description: Auto-hide sidebar.
 * Contributor(s): img2tab
 */

#sidebar-box {
	position: fixed;
	top: 44px;
	bottom: 0;
	right: -254px;
	width: 255px;
    transition: 0.2s right;
}

#sidebar {
	min-width: 14em;
	width: 18em;
	max-width: 36em;
	height: 100%;
}
#sidebar-box:hover {
    right: 0 !important;

}
/* #sidebar-header is hidden by default, change "none" to "inherit" to restore it. */

#sidebar-header {
    display: none !important;
}
/* #sidebar-splitter styles the divider between the sidebar and the rest of the browser. */
#TabsToolbar {
    visibility: collapse;
}

@mimoo
Copy link

mimoo commented Nov 17, 2017

for others like me suffering from heavy lags on macOS. Removing the tab bar on top (via the css trick) seemed to have fixed the issue somehow

@reverofevil
Copy link

Can we at least have a version of TST for Firefox ESR in the official extension store? Firefox 57 is buggy beyond the limits, TST is barely working, and I cannot even install it with an old version of Firefox.

@piroor
Copy link
Owner

piroor commented Nov 18, 2017

@polkovnikov-ph it seems still downloadable from: https://addons.mozilla.org/en-US/firefox/addon/tree-style-tab/versions/ (you'll need to download the file and drag-and-drop to Firefox's window manually.)

@diox
Copy link

diox commented Nov 18, 2017

Firefox 57 is super fast and reliable for a huge number of people, including with Tree Style Tab, so I would encourage you to persevere (maybe reset your profile?) and file bugs if you find any.

Nevertheless, if you want to keep using older versions of Firefox, you can install any old version of any extension on AMO using the versions list page. For Tree Style Tab see https://addons.mozilla.org/en-US/firefox/addon/tree-style-tab/versions/ (0.19.2017090601 should work with Firefox 52.0 to 56.*).

@reverofevil
Copy link

reverofevil commented Nov 18, 2017

@piroor Thanks! That link is quite hard to find on add-on page, and it's a shame Mozilla doesn't let us download the latest compatible version with "add to firefox" button. As I'm using ESR, I was happy to download older version from https://github.com/piroor/treestyletab/releases/.

@diox Yes, I was very happy with Mozilla's efforts on improving Firefox performance lately, but they've made a release before all the major issues were solved. Having tight deadlines is not a good thing when you're making a major codebase rewrite.

For anyone who wants to persevere and still use Firefox 57: there is a workaround to hide annoying horizontal tabs.

@grahamperrin
Copy link
Contributor

… Mozilla doesn't let us download the latest compatible version with "add to firefox" button …

To anyone with Firefox 58.x on a Tier-1 platform: is that still an issue?

@piroor
Copy link
Owner

piroor commented May 1, 2019

I close this because this is too old and not match to the latest maintained version of TST.

@piroor piroor closed this as completed May 1, 2019
@mayhemer
Copy link

mayhemer commented May 1, 2019

It's RESOLVED FIXED :) Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests