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

About porting to webExtension #535

Open
StyMaar opened this issue Jan 29, 2017 · 116 comments
Open

About porting to webExtension #535

StyMaar opened this issue Jan 29, 2017 · 116 comments

Comments

@StyMaar
Copy link

StyMaar commented Jan 29, 2017

In your farewell post, @Quicksaver said the following :

Its [Tab Groups] core functionality and basic workflow probably can be made into a WebExtension, but only after an almost complete rewrite of the code (with some major work done on Firefox's side as well!), and still stripped down of at least some of its features.

Can you tell us more about this ? I fully understand that you don't want or can't port this addon to work with newer Firefox APIs but since many of us are in love with Tab Groups, some may like to give a try on porting this (at least partially) to WebExtension.

Can you give us a quick overview of what would be impossible in the ported version ? And what would needed on Firefox's side to make it work ?

@Quicksaver
Copy link
Owner

There's already some things about that in #534, probably a good start for anyone who'd like to give it a shot.

@ghost
Copy link

ghost commented Jan 30, 2017

I'm seriously considering about taking up this project or restarting from scratch and using this as a reference. I only use Firefox for two reasons- Tab-Groups and the tabs-scrolling-than-bunching when there are a lot of 'em. You may not use it outside of coding but it's my bread and butter in how I use Firefox. I have over 60ish tabs and they need to be organized. XD I'm going to start looking into how feasible it is to do this.

@maverick74
Copy link

Don't know where to post this so i'll post it in both bugs: @Quicksaver Are you aware of:

Extend WebExtensions with custom APIs so more legacy add-ons can be ported ?

@mikhoul
Copy link

mikhoul commented Feb 6, 2017

@Quicksaver @maverick74 @maximstewart @StyMaar

Some Good documentations even a working (but buggy) addon exist for Chrome with Full Documentation:

Original add-on in Alpha stage: https://github.com/arnaud/chrome-tab-sugar

2 Others Fork more advanced and less buggy so they are usable:

COMPLETE documentation about the internal of the addon: https://github.com/arnaud/chrome-tab-sugar/wiki/Interactions

Discussion where the original author of the addon and the "forkers" discussed of the development of the addon: arnaud/chrome-tab-sugar#18

I hope it could help to revive the project ! 😺

Regards :octocat:

@Chris2011
Copy link

Chris2011 commented Feb 10, 2017

@mikhoul I have to install it on my own, right? The version at the google chrome store is not the current version?

@mikhoul
Copy link

mikhoul commented Feb 10, 2017

@Chris2011 Yes, the version in the store is the first Alpha Version which is "buggy" a little bit 🙄

If you want to try those addon in Chrome, you must build a CRX file (addon file) first to be able to install it and use it, but it's easy to do.

1- choose which one you wanna try between the 2 forks:

2- Go on the page where is the fork and Download the whole project, it is a zip file: http://i.imgur.com/jDGbNc4.png

3- Once you have the whole project on your computer just rename the Archive from MyAddon.zip to MyAddon.CRX and you have the addon. 😸

4- To install it in Chrome it's easy too, just follow those instructions: http://chrome-extension-downloader.com/#install

That's it ! :octocat:

@Chris2011
Copy link

Thx, I will try. A release would be good anyway for all others and maybe a version 2 or so, to bring it into the chrome store.

@stephen304
Copy link

I hope the chrome versions can have some development activity. I switch between firefox and chrome frequently and I'm constantly disappointed at how all of the chrome tab managers are basically glorified bookmark organizers (mainly how if a tab isn't visible, it means the extension closed it and just saved the url).

@Nerothos
Copy link

I don't know if I'm late or off topic (if that's the case, please don't mind) but has anyone seen the firefox container? https://testpilot.firefox.com/experiments/containers . Seem like the groups will come back.

@mechalynx
Copy link

@Nerothos Not sure what you mean. I've already used Containers and I'm not sure its implementation helps at all with restoring functionality to Tab Groups.

@klint
Copy link

klint commented Mar 29, 2017

@Nerothos I agree with you that the concepts of Tab Grouping and Containers would fit quite well together at least in my use cases.
I actually use Groups to differentiate various roles I have in life and I bear when navigating in a browser session: work stuff, personal regular stuff, personal dev stuff, personal critical stuff like banking, stuffs related to various associations I'm member or accountant of (for instance).
Containers will add even better support for that by containing/securing session data but as a side effect, allow to connect on different accounts to same site in different groups (each corresponding to a role of mine).
The problem I see with containers today are the ease of use: how to display tabs in a given container and hide the others, how to switch the display to another container... Wait, that's exactly what Tab Groups are meant for.
With the same kind of automation: some URLs will be linked to a group/container. Other URLs will be shared accord group/containers (but with different sessions). Some URLs will require their own container and will not share it with any other URL, like banking sites.

@mechalynx Containers will not help at restoring Tab Groups per se, but they are yet another motivation for Tab Group not to die :)

@stephen304
Copy link

@klint Perhaps something can be built on top of containers? The only difference between containers and what I need for my use case is having one container "selected", causing all other tabs to be invisible (but still loaded in memory and running). It seems like containers already accomplishes much of the nitty gritty of tab groups by handling container membership and a bonus of isolation.

If it's possible to manipulate containers with an extension, my vote would be to do it that way.

I still have it in muscle memory to press ctrl + shift + e so I'd love to be able to be able to return to that workflow of pressing that shortcut and using arrows and enter to switch groups.

@Nerothos
Copy link

Nerothos commented Apr 1, 2017

I was just wondering if container could "replace" TabGroups. I didn't had time to test it so I don't know what features are missing. Sorry if my comment was not useful.

@stephen304
Copy link

@Nerothos Like in my previous comment, the only thing I think containers is missing is the ability to hide other tabs. I haven't tried containers recently, but last time I checked, it still showed all the tabs in the tab bar. I think it's really close though.

@nd-
Copy link

nd- commented Apr 1, 2017

@stephen304 I just tried Containers Experiment 2.0.0, and it's possible to show/hide all tabs from a container.
But it's not possible to hide other containers, you have to show/hide them one by one, and the UI isn't very convenient : click "Containers" button in the tool bar, click the right arrow next to the container name, click show (or hide).

@nd-
Copy link

nd- commented Apr 1, 2017

See https://discourse.mozilla-community.org/c/test-pilot/containers to discuss Containers, especially this post:
https://discourse.mozilla-community.org/t/could-panorama-feature-be-brought-back-to-firefox/14672

@mirh
Copy link

mirh commented Apr 1, 2017

Which leads to mozilla/multi-account-containers#336

@nd-
Copy link

nd- commented Apr 1, 2017

we're definitely watching the 👍 and comments on those issues to help us decide what enhancements to make to Containers in the future.

Time to send your 👍 and spread the word.

@mirh
Copy link

mirh commented Apr 17, 2017

New bug to follow closely
https://bugzilla.mozilla.org/show_bug.cgi?id=1333837

@pshem
Copy link

pshem commented Apr 21, 2017

Upvote this: mozilla/multi-account-containers#336
An issue to add tab groups into containers, currently a Stretch goal

@cpatti97100
Copy link

please if anyone starts a new repo to make tab groups with webextensions, link it here.
I am thinking about doing just that but hard to know when :( otherwise I would gladly join the work of someone else :)

@klonamy
Copy link

klonamy commented Apr 28, 2017

Any new news about this?

@mechalynx
Copy link

In the process of figuring out a different issue, I came across these bugs:

There is explicit mention of Tab Groups in the first one. It seems to be a different extension, but the second bug seems explicitly involved with creating tab groups under WebExtensions.

Related comments:

  • https://bugzilla.mozilla.org/show_bug.cgi?id=906076#c234

    The irony of this is that, as I see it, the main benefit of this change is that it will make it easier to use large numbers of tabs. But it looks like the fix is not going to be complete until after XUL extensions are dropped, so the main extensions that are also needed for using large numbers of tabs (such as the very useful Tab Groups Helper written by the main person working on this bug) will no longer be available, and it will still not be possible to comfortably use large numbers of tabs in Firefox. Is that right or am I missing something?

  • https://bugzilla.mozilla.org/show_bug.cgi?id=906076#c251

    Wasn't the tab groups addon mentioned before in regards of prematurely inserting lazy browsers?
    Was it determined if it's an issue on FF's side or the addon's (like with BackTrack Tab History)?

I haven't read the full details on each of these - apologies if it's a false positive.

@mikhoul
Copy link

mikhoul commented Jun 30, 2017

Here.s a WebExt that can be used as replacement of TabsGroups, maybe I will fork it to Firefox and improve it at a later time but it is usable. :octocat:

https://chrome.google.com/webstore/detail/divider-tabs/mpbblhoepkmpgalgppdoahgeoknmjgpc/reviews

@nd-
Copy link

nd- commented Jun 30, 2017

Make it work on firefox and you're a hero !
At last, a new hope... :)

@Deledrius
Copy link

Not bad. It doesn't look like it quite supports the same workflow, and leaves things cluttered still, but the alternative is far worse.

Also, it would be ideal for any replacement to be able to import existing groups.

@nd-
Copy link

nd- commented Jul 1, 2017

@mikhoul Too bad, it doesn't work when divider tabs are pinned.

@grahamperrin
Copy link

grahamperrin commented Jul 1, 2017

Divider Tabs 2.0 (2014-10-07):

  • does not work with Firefox 54.0 (64-bit) on FreeBSD, divisions are empty
  • is not reliable with Chromium 58.0.3029.110 (64-bit) on FreeBSD.

I can't imagine it as a successor to Tab Groups. Sorry.

@BenjamenMeyer
Copy link

I have yet to find a Chrome tab manager that works anything like FF's Pandora/TabGroups functionality - even #535 (comment) doesn't really seem to do so. This extension really is the prime differentiator for Firefox. Sad to FF going this way, and enables really good tab management and workflows:

  • minimal number of tabs in a window
  • management "windows"/"tab" where you can manage all the tabs and even go to a specific tab in a specific tab group.
  • restores when session crashed

@kah0922
Copy link

kah0922 commented Aug 1, 2017

An API for showing/hiding tabs has been approved by Mozilla.

@ghost
Copy link

ghost commented Dec 11, 2017

OK, as updates go, I have nothing too new. The big thing is I am getting very comfortable with creating plug-ins.I've created 3 or so minor things but each affects tabs and the way I use them. Anywho, one interesting thought came to mind. That is the idea that one need not hide tabs to get a working groups system. While having the bar filled with tabs is unsightly, there can be a system that is separate from that by way of the browser_action window. One would just need to get used to using that and ignore for the time being the tabs bar.

At this point, I have that minor example in the previous post. With the knowledge I have gained through creating the other plug-ins, I think I am ready to start tackling the task of generating something actually useful and working. I must once more re-iterate that I do not guarantee progress but I have been lucky so far in the amount of time I have had to consider this. The next post will either be one of progress or admittance of defeat. Wish me luck. =]

@Drive4ik
Copy link

Drive4ik commented Dec 11, 2017

Hi @maximstewart

You mean here is behavior?
stg_windows_behavior

@ghost
Copy link

ghost commented Dec 15, 2017

@Drive4ik Not really. I'm going for the approximate grid style as the original tab groups. A list doesn't give me the info I need since I'm more top down and visual grid oriented kinda person. The option you showed is great but not what I want and need. I'm so glad I know how to code because I'da really lost my Sh** if I couldn't. This situation sucks but I can fix it to meet my needs given time.

@BenjamenMeyer
Copy link

@maximstewart personally, I like the list for quickly switching, but I also like the expanded UI for managing the groups.

@JPFrancoia
Copy link

TbaHide recently landed in nightly: https://bugzilla.mozilla.org/show_bug.cgi?id=1423725

@stephen304
Copy link

TabHide has landed in 59 beta: https://blog.mozilla.org/addons/2018/01/26/extensions-firefox-59/

Hidden behind extensions.webextensions.tabhide.enabled

@Drive4ik
Copy link

Drive4ik commented Mar 6, 2018

Hi all!
I make [EXPERIMENTAL] Simple Tab Groups with support Hide Tabs API:
https://addons.mozilla.org/firefox/addon/experimental-simple-tab-groups/
It work on latest FF Nightly and Beta.
To make it works, visit about:config and set extensions.webextensions.tabhide.enabled to true.

Please, read
Drive4ik/simple-tab-groups#2
Please tell me - what difficulties / bugs do you experience with this addon.

Thanks.

@klint
Copy link

klint commented Mar 6, 2018 via email

@stephen304
Copy link

@Drive4ik Great work! I've installed it as I'm anxious to get away from tree style tabs (doesn't work well for my workflow). I hope you don't mind all the issues I'm opening - I have a lot of feedback!

@Drive4ik
Copy link

Drive4ik commented Mar 6, 2018

@stephen304 Hi! Thanks for feedback. I will try to make it even better)

@ghost
Copy link

ghost commented May 6, 2018

OK, it's update time. I've not got grouping yet but I do have a solid base to work from. Presently, the big thing is I can search through my tabs and since I'm only ever dealing with a small subset it isn't near as hard to recall what I'm searching for. While the plugin's main functionality is searching, it's made better by way of the grid representation and the icon features such as closing, creating new tabs, and re-ordering through drag-n-drop actions. These features will be used when I implement grouping which is why I did all this before the grouping.

Now, it's worth mentioning that I had grouping working but it was too complex and so I scratched it to start from a solid base and branch out. This is why I have the current plugin the way it is. I am using dragula.min.js to do the heavy lifting as is and I intend to expand upon it for the grouping now that many of the features that I need are present.

So here is the thing, the browser_action window is pretty tiny and it makes it harder to create groups and manage/move them around. In addition, since it's through that, saving the "session" has to happen every time the window closes and needs to load it back in each time the window opens. This is pretty inefficient or poses issues at the least when there is a lot of data to load/unload. I'm thinking about how to handle this but there are no clear answers that make it lightweight and resource efferent.

[ My current idea for the data is as follows ]
WindowID:
GroupID:
TabFaveIco | TabsURL | TabID

One selects the window or loads a default one and it loads the group ids into their respective HTML containers. The containers then populate with their URLs, ICOs, etc. Here is where I'm thinking I can make it more efficient. Rather than load all containers, again, a default container loads. When you want to load another container or create one, then the container loads and the other unloads unless one is moving stuff around. This means that not all the data has to load/unload at once. Anywho, that's where I'm at at this point. Defeat has yet to claim me but it is slow going.

@Drive4ik By the way, I'm sorry if my reply was terse as I didn't mean for it to seem like that. I think your plugin is very cool but it just isn't what I'm looking for. I didn't intend for it to sound like I was poopooing on you efforts. =P I'm sorry if it came across that way as when I looked back it seemed clipped.

@kesselborn
Copy link

@maximstewart if the popup space is a constraint, you can just open a new tab and programmatically create the html code for it (just as you do with the browser-action-popup) ... browser.runtime.onConnect is your friend here -- if you need a pointer to working code, feel free to ping me -- it's a little bit tricky.

Regarding data size: if you save it as json, the size should be no problem. You probably want to save the data for every tab-create and tab-close event instead of only window-close ... just in case the browser crashes.

If you want to avoid the hassle of implementing the state of grouping, you can rely on conextualIdentities aka containers so Firefox handles all the state for you -- however: people will criticize you a lot for it as some have the opinion, that containers should not be used for grouping but for isolation only (which is an opinion you might disagree with as well).

Happy hacking

@grahamperrin
Copy link

Recently I began using Tip Tab with PopUp (and Conex, and legacy Tab Groups):

2018-05-06 11 36 19 conex tip tab and popup with waterfox

– the Tip Tab tab is popped up to a window, which I maximise on the display to the right of my notebook.

@kesselborn this is comparable to the use case that I envisaged in a bundled web page for Conex · Issue #52 · kesselborn/conex.

@ghost
Copy link

ghost commented May 11, 2018

@kesselborn

"...if the popup space is a constraint, you can just open a new tab and programmatically create the html code for it (just as you do with the browser-action-popup) ...browser.runtime.onConnect is your friend here."

Hey, that would work! The only thing that makes me hesitant is that this makes me think it affects new tabs. Is this the case? If not, then would you send me some pointers about how you'd set it up

"Regarding data size: if you save it as json, the size should be no problem."

I was thinking much the same and it might be easier to insert/remove tab instances.

"You probably want to save the data for every tab-create and tab-close event instead of only window-close ... just in case the browser crashes."

When I said window I was more referencing the pop-up window for browser_action. XD So, if it closes which is after focus is lost then it writes the new data.

"If you want to avoid the hassle of implementing the state of grouping, you can rely on conextualIdentities aka containers so Firefox handles all the state for you -- however: people will criticize you a lot for it as some have the opinion, that containers should not be used for grouping but for isolation only (which is an opinion you might disagree with as well)."

I'm in your camp of thinking and my early thoughts were around this method. But, it then does undermine the idea of using identities as a means of one being work, home, other such that cookies and session data follows the instance. XD In addition, working with data like this is a good exercise for a noob like me so I'm forging this option. =]

@grahamperrin
Copy link

a fundamental API

Catching up here … there seems to be no groups API. Am I missing something?

From WebExtensions API for groups (for tab groups) - Add-ons - Mozilla Discourse

… pockets of brilliance, but the overview seems to lack cohesion, …

Thoughts?

TIA

@grahamperrin
Copy link

grahamperrin commented May 19, 2018

Multiple windows

Re: https://discourse.mozilla.org/t/-/28533/6?u=grahamperrin I'll want some groups to span multiple windows. (To a degree this probably comes naturally to Conex, which is a great extension, but groups should complement containers).

Possible?

Interoperability

I'll need any group that is created by (say) Panorama View to be also manageable by (say) Tiled Tab Groups; and vice versa. Extensions should work with each other, without requiring a per-extension set of groups.

Possible?

TIA

@grahamperrin
Copy link

From denschub/firefox-tabgroups#60

… Conex … additional functionality of integrating with … Containers

@ScottRFrost it's an excellent extension, however I'm not sure about the word integrating with containers.

There's unavoidable contention between some of the goals of the technologies.

@BenjamenMeyer
Copy link

So has is there a general consensus on a good replacement yet?

I don't have a system I'm willing to try out upgrading Firefox and playing with extensions on - don't want to lose my existing tab groups. But I haven't seen anything striking yet in the comments, and Chrome is starting to drive me nuts with its resource consumption for the number of tabs I end-up keeping open.

@Pab0
Copy link

Pab0 commented Jun 7, 2018

@BenjamenMeyer I've been using Simple Tab Groups for a couple months now, and while not on the same level as the original, it does its job. It has search, pinned tabs stay always visible, and the UI is quite similar. I can't comment on the container or multiple window handling, since I'm using neither.

The drawbacks so far are:

  • When switching to another group, all tabs in the new group are loaded (not on browser startup though).
  • When switching to another group, all tabs in the old group are unloaded.
  • In two or three occasions, I mistyped a key combination which removed all unloaded groups. The first time I lost everything, but the other two times I just closed and reopened the browser and everything was there. The group losing issue might have been resolved by now; the first incident happened months ago.

Not to discredit any other alternatives - this just happens to be the only extension I've tried so far. I'd be interested in hearing how the rest of the alternatives are progressing.

@klint
Copy link

klint commented Jun 7, 2018

The Experimental version of Simple Tab Groups now hide tabs instead of unloading them.
Still a few bugs, but gets better and better :)

@mikhoul
Copy link

mikhoul commented Jun 8, 2018

@BenjamenMeyer You can easily migrate/import your existing groups without losing anything in Sync-Tab-Group in Chromium you can also The Great Discarder to lower your memory usage.

Right now in my active group I have more than 150 tabs with no problem at all. 😄

Regards :octocat:

@BenjamenMeyer
Copy link

@Pab0 thanks for the info; seems like if they solve the unloading issue it may be doable so may be next release (re @klint 's statement about the experimental, assuming everything goes to release)?

@mikhoul Chromium isn't quite an option unfortunately so it's Chrome and Firefox and Firefox has long been my primary choice in many respects because of the Pandora/TabGroups functionality. Chrome/Chromium doesn't have anything that competes - I've tried to find something, it's just not there. So really looking forward to having a new Firefox tool to do the same thing as Pandora/TabGroups.

@ghost
Copy link

ghost commented Dec 30, 2018

As an update, I've decided to just stick with what I've created and offload my groups into other things like bookmarks and/or notes/databases. IE, i've gone through my stuff and determined if its worth keeping and if so moved it to bookmarks or one of my databases for future reference. The plugin I created is

Tab Search & Manage: https://addons.mozilla.org/en-US/firefox/addon/tab-search-and-manage/

I can search through tab titles, hide them, create new ones, and other stuff. It meets my current needs but has no grouping.

@CubeTheThird
Copy link

It seems these days there are several tab grouping addons popping up. At a glance, the one that's peaking my attention is Panorama Tab Groups. The interface seems to be very similar to what this has previously offered, not to mention the development is active (many addons haven't been updated in many months). I haven't spent much time looking at it, but it's one I'm excited to test out.

@Deledrius
Copy link

@CubeTheThird: That's the one I've been using, and so far it seems the best replacement.

@klint
Copy link

klint commented Jan 8, 2019

I've been using Simple Tab Groups for months now, and the released version is quite stable and efficient. It has a lot of additional features compared to the original Panorama View (and of course, it does include a panorama view).
Number of users is larger than other addons, it is actively developped and reviews are excellent.
You definitely should give it a try.

@e-motiv
Copy link

e-motiv commented Jan 10, 2019 via email

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