Reviews for Limit Tabs
Limit Tabs by RudyF
Review by mos_basik
Rated 5 out of 5
by mos_basik, 4 years agoYou have no idea how wide my smile was when I found this extension and started experimenting with it.
My workflow combines TreeStyleTabs, dozens of named virtual desktops, and Firefox's built in tab title searching ability. My tabs are an extension of my mind. But it's true! - I don't need 400+ tabs. The old ones just lose relevance after a while.
I configured a global limit of 200, waited for the extension to enforce it, and boom! my system's responsiveness jumped.
5 stars for what you have right now in v2.2.6 :)
I did run into a couple of issues, though, so I extracted your code and looked through it (pretty clean, thanks!) and I have a couple of comments:
1. I found a bug where the act of loading the preferences page causes the add-on to enter "current window limit" mode, regardless of whether it was configured to use "current window limit" or "global limit" mode until then. I think using a ?? rather than a || on line 141 of options.js fixes this.
2. The "Least Recently Used" strategy for removing a tab always removes tabs from the current window, regardless of whether the tab limit is enforced globally or per-window. This surprised me - I was expecting this strategy to remove the oldest tabs from all windows when the limit is being enforced globally. I admit both strategies are valid! My suggestion - split the current LRU strategy in two: "Least Recently Used (Current)" and "Least Recently Used (Global)".
3. I'm happy to see that the "last accessed" timestamp of a tab survives a browser restart! (I verified this!) If it did not, that would play hob with my setup. Just mentioning this here in case someone else was worried about it like I was.
I saw from another response that you don't have a repository anywhere, or I would have said all this in Issues or PRs or something.
I saw this is GPLv3 (thanks!) so I threw up a repo on GitHub with some changes. I'm not supposed to put links in reviews, but you can find it under user "mosbasik" and repo "limit-tabs". I've implemented the bugfix and LRU strategy split I mentioned.
My workflow combines TreeStyleTabs, dozens of named virtual desktops, and Firefox's built in tab title searching ability. My tabs are an extension of my mind. But it's true! - I don't need 400+ tabs. The old ones just lose relevance after a while.
I configured a global limit of 200, waited for the extension to enforce it, and boom! my system's responsiveness jumped.
5 stars for what you have right now in v2.2.6 :)
I did run into a couple of issues, though, so I extracted your code and looked through it (pretty clean, thanks!) and I have a couple of comments:
1. I found a bug where the act of loading the preferences page causes the add-on to enter "current window limit" mode, regardless of whether it was configured to use "current window limit" or "global limit" mode until then. I think using a ?? rather than a || on line 141 of options.js fixes this.
2. The "Least Recently Used" strategy for removing a tab always removes tabs from the current window, regardless of whether the tab limit is enforced globally or per-window. This surprised me - I was expecting this strategy to remove the oldest tabs from all windows when the limit is being enforced globally. I admit both strategies are valid! My suggestion - split the current LRU strategy in two: "Least Recently Used (Current)" and "Least Recently Used (Global)".
3. I'm happy to see that the "last accessed" timestamp of a tab survives a browser restart! (I verified this!) If it did not, that would play hob with my setup. Just mentioning this here in case someone else was worried about it like I was.
I saw from another response that you don't have a repository anywhere, or I would have said all this in Issues or PRs or something.
I saw this is GPLv3 (thanks!) so I threw up a repo on GitHub with some changes. I'm not supposed to put links in reviews, but you can find it under user "mosbasik" and repo "limit-tabs". I've implemented the bugfix and LRU strategy split I mentioned.
Developer response
posted 3 years agoSorry for the delayed response... and the delayed fix. 2.2.8 should have fixed issues 1 and 2. Thanks to Peter Henry for getting in touch with me.