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

TST for Safari? #2801

Closed
BrianGilbert opened this issue Jan 23, 2021 · 3 comments
Closed

TST for Safari? #2801

BrianGilbert opened this issue Jan 23, 2021 · 3 comments

Comments

@BrianGilbert
Copy link

Short description

Now that Safari supports webextensions, is it possible, and is there any intent to make a TST release for Safari?

https://developer.apple.com/documentation/safariservices/safari_web_extensions/converting_a_web_extension_for_safari

@BrianGilbert BrianGilbert changed the title Safari? TST for Safari? Jan 23, 2021
@Lej77
Copy link
Contributor

Lej77 commented Jan 27, 2021

I think this is unlikely since there isn't even a version of Tree Style Tab for Chrome or any other browser except Firefox, see the FAQ / frequently rejected requests/proposals in the TST readme.

I can also imagine some issues with porting the addon since some important functionality isn't provided by most browsers (APIs, Manifest). For example the sidebar_action manifest key that allows an extension to define a custom sidebar page is only supported in Firefox and Opera. You could work around this issue by opening the sidebar page in a new window and manually or automatically moving it beside the main window, like the Tree Style Tab in Separate Window addon does for TST.

Another important API would be the getTabValue and getWindowValue API. Without those methods it is really hard to store tab specific data. I can imagine workarounds like storing a list of tabs (with urls and titles) for all windows in the extension's storage and trying to match that list with the opened windows when the browser is restarted or the addon is reloaded (for example after an update). Or simply forgetting all tree structure on browser restarts which might work well for people that rarely restore sessions, though it would probably still lose info for closed tabs that are reopened.

TST also have other Firefox specific behavior that would need to be disabled or worked around for other browsers. For example to synchronize the animations for loading "throbbers" (icons) it uses the -moz-element css property to mirror the appearance of a hidden element, until the animation has completed one iteration after which the normal animation is used for performance. This could probably be disabled quite easily but the question is how much Firefox specific behavior TST actually depends on.

Still the extension could be useful even with all these limitations but It would probably require a bit of effort to port it.

@irvinm
Copy link
Contributor

irvinm commented Feb 8, 2021

@piroor any desire and\or evaluation if this is even possible? (I'm with @Lej77 that this probably isn't possible yet)

@piroor
Copy link
Owner

piroor commented Feb 9, 2021

As @Lej77 explained (thank you @Lej77 !) TST cannot be ported to non-Gecko browsers for now, due to API limitations.

And currently I have no plan to re-implement TST-like extension for other browsers by my hand, except when the time to exodus from Firefox come and there be no suitable alternative extension for me.

@piroor piroor closed this as completed Feb 9, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants