chzesa / tiled-tab-groups

25 stars 6 forks source link

[not an issue] Feature request #13

Closed EstherMoellman closed 4 years ago

EstherMoellman commented 4 years ago

Hi @chzesa ,

Firstly, thank you for your add-on. Please, I have some feature requests:

1) Please, add the option for "Ephemeral Containers" (AKA "Temporary Containers"), allowing every tab at any group to be opened in Temporary Container. This will be very useful for users, and an added-value for your add-on. PS: SimpleTabGroup add-on already launched the Permanent Container option version. And the next version will include Temporary Containers.

2) Please, add the option for "select tab after current tab is closed", allowing to select pinned tabs, or the previous tab, last active tab etc when the current tab is closed.

These two features above will be extremely useful for users, without the need of installing other add-ons that hurt browser performance, privacy, security etc.

But my third request is the most important:

3) Please, I would like a fork version of your add-on, replacing the present "hiding/discarding" function, with "bookmarking/closing" tabs. I tested most of the Tab-Manager add-ons, and those using the "bookmarking/closing" tab function:

Thank you in advance!

chzesa commented 4 years ago
  1. Do you mean the addon should maintain a single container per group for the lifetime of the group, and every tab in that group would use that specific container?
  2. This is better handled with an external addon since it doesn't relate to managing groupings of tabs.

Is this outlining for 3 correct: Each group has a bookmark folder. Whenever the user switches from group A to group B, firstly a tab is created from each bookmark in group B's folder, the addon then ensures that for each tab in A there exists a bookmark in the folder of group A, and finally every tab that was in group A is closed. The groups view would function as it does but for non active groups it would display the bookmarks for each group's bookmark folder.

EstherMoellman commented 4 years ago

Thank you @chzesa for your replay. My answer to you:

  1. No, not a single container per group. At your add-on with my request, if the user chooses to open tabs in Temporary Containers (TC), then the expected function will be to open every tab in individual temporary containers (until the option is unchecked again at your add-on), regardless the Group. And these containers are not going to be Permanent Containers (PC), always are going to be TC (they are going to delete itself after tabs are closing). Each TC is going to be kept at each Group, until the tab/tabs is/are closed (deleted).

  2. External add-ons like Temporary Containers are far away sophisticated, full of options and fancy stuff. In contrast, the function I requested you is too simple (just to open every tab in TC). So, to use an add-on compared to my request to you, will be like killing mosquitoes with a bazooka. There is no need for an add-on, to open a simple TC at your add-on. This tiny/lightweight add-on does the job I'm requesting your add-on to do. Yeah, I may install this add-on as a complement of your add-on. But it hurts browser performance! That is the reason of my request to you. I'm convinced that TC is a simple function at your add-on, minimalist and without fancy stuff, it will be extremely useful for your users, and inside your add-on will avoid conflicts and will have less negative browser performance impact. Also, it will be an upgrade for your add-on, offering options for better managing of tabs.

Finally and with regards to "3": Yeah! You are almost correct. Please, allow me to use my own words:

It will be fantastic if you accept to build this fork of your current add-on. And I offer my help if you decide to do that. I have a small club of Firefox' users (around 150 members over 8 countries), and we can help you by testing your new builds.

Once again, thank you in advance!

chzesa commented 4 years ago

I looked into the ephemeral container addon and I don't believe integrating it or similar functionality to TTG would yield greater performance over an independent addon. The performance bottleneck appears to be the need to create a new tab. Furthermore assigning each tab to its own container is not related to tab groups functionality and should remain as a separate addon, whereas addons which adopt the containers-as-groups method already exist.

As for handling tab groups with bookmarks: I have received requests for backup and restore functionality multiple times. I don't want to implement it since it isn't currently possible to create a backup solution without breaking other addons that depend on the per-tab storage offered by the browser (e.g. tree style tabs, ftt), unless those addons implement functionality to query and set the data they use. Even then the functionality to handle the data would have to be written for each addon individually. Loading tabs from bookmarks while maintaining this compatibility with other addons would at the very least require implementing the aforementioned system if, for example, the tab tree structure was to be maintained between group switches. This will also intefere with bookmarking as the icon doesn't indicate if the tab is merely present in a group or if it has been manually bookmarked.

In the groups view tab the user can observe which tabs are currently loaded. Stashed groups are implemented internally by TTG and not via a browser mechanism, and merely dictate if a group is displayed in the groups view tab. Stashing a group also unloads all of the tabs in that group (excepting firefox's internal about pages as they cannot be unloaded). The only tabs excluded from the display are the group view tabs themselves. I could implement a feature to automatically unstash a group if a tab inside the group is loaded (currently stashed groups are unstashed if a tab in the group becomes the active tab).

A large number of tabs may have a performance impact even when unloaded, but this can be mitigated by implementing caching mechanisms in the addon. I don't believe a large number of tabs impacts firefox itself significantly but I haven't benchmarked this.

The only way TTG interacts with the browser (in a way that affects other addons) is by setting the visible flag for tabs. It doesn't move, close, or do otherwise change tabs unless the user explicitly does this in the management view in order to not affect the normal operation of other addons.

I hope this satisfies your concerns. I do not wish to create a fork of the addon that I would not use myself, but the addon is licensed under MPL so anyone is free to create and distribute their own versions.

EstherMoellman commented 4 years ago

Thanks again @chzesa for your last replay. Please, allow me some counter-arguments:

Containers is something relative new for Firefox' users. But in my ignorant opinion, containers with time are going to be something very common, something almost "default". So, containers are going to be part of any tab managing function. I believe that is the reason why SimpleTabGroups' add-on already included both, Permanent and Temporary Containers. And that's the reason I believe (please) you should give a second thought to your decision of not including temporary containers in your add-on. In parallel, browser performance issues remain. I did several performance tests using your add-on and a temporary container add-on, and technically this combo hurts browser performance. I'm not saying this will be solved by incorporating TC inside your add-on. I'm just confirming that having two separate add-ons hurts browser performance (not to mention the increase of privacy and security potential breaches). I'm not going to insist you, I respect your decision, I just hope (please) you will give a second though to the subject.

Now and more important, with regards to "automatic stashing": Thank you, but no, this is not satisfying me. But again, first I thank you for your offer, and second... I will respect your final decision.

As long as you decide to keep the "hiding/discarding" version of your TTG... this doesn't leave me room to argue nothing. It seems that you want to keep the current TTG' version for your own use, compatible with TreeStyleTabs etc. And if I'm right, it sounds that TTG is already marriaged to "hiding/discarding" and to other add-ons.

Accepting the "bookmarking/closing" version demands a clean vision, focused just in browser performance, privacy, security etc, and totally unmarried from other add-ons. And this seems not to be your case right now. I respect that. It is perfectly OK. Your house, your rules!

Having said that, in this context I consider the "automatic stashing" a progress, and yes, I accept and thank you your offer. Just, please, let's be clear about it:

I mean, "automatic stashing" may work as a tab content cleaner after group closing. This may improve privacy and security! Caching may make things faster, but I'm against caching because it hurts privacy/security. And normally, caching adds just few milliseconds of placebo effect. It may be useful if users have an old system or bad internet connection. But not very useful for modern systems and good internet connections. So, I always will prefer your "automatic stashing" option, if it works as a real cleaner, keeping logged webpages, but sanitizing everything else.

Again, thanks in advance!

chzesa commented 4 years ago

I agree, containers are a great feature. I use first party isolation in my configuration and use further containers only to maintain multiple logins for the same site. However, assigning each tab to its own container does not depend on groups so I believe it should be a separate addon. I can vouch for version 1.7.1 of confiner to be harmless.

I have implemented two new options to TTG. The first gives you the option to have any stashed (that is, a group that is not displayed in the management view) to be unstashed if any tab in the group begins to load content. The second option enables the unloading of any group from which you change away to a different group. It does not perform any storage or cookie cleaning since this is once again not related to managing groups of tabs.

Overall I do not see TTG as a tab manager (even if some users use it as one), rather it is just a tool to sort tabs by a project or category. Unloading and reloading were added to allow the user to reduce the footprint of the browser (and manual unloading isn't possible without addons), while moving tabs relative to each other was an extension to being easily able to move tabs from one group or another. You're correct in that for my own use case I do use a tab tree addon to further logically organize tabs but TTG is generally not dependent on any external addons.

On the topic of caching both TTG and ftt use a cache during runtime to store data from the browser's tab api events. None of the cached data is stored between sessions. The caching solution was originally a part of TTG and ftt is wholly built with the cache in mind. Interacting with the browser (e.g. by querying for tab information to display tabs in the correct order) is one of the more expensive operations an addon can do so mitigating as many of these occurrences as possible is a great way to improve performance.

EstherMoellman commented 4 years ago

Hi @chzesa , thanks a lot for your replay and explanations.

You have a personal definition of what is a "group/tab managing function" (GTMF). In one hand, under your personal definition, temporary containers (TC) and storage/cookies cleaning (SCC) are not related to GTMF. However, in the other hand, under your same personal definition, to have your TTG' add-on married to other add-on (in the sense of designing an add-on avoiding conflicts with a specific another add-on), or to see your TTG' add-on as "a tool to sort tabs by a project or category."... for you both arguments are related to GTMF. And again, it is perfectly OK to have a personal definition! Your house, your rules. I just believe it is important to distinguish that your personal definition is not a general universal definition.

In the general universe of definitions, what is related or unrelated to a function, is determined by user demands. For example, if users demand a GTMF with colors, music, videos and poems... well, so be it. You can fight against the market!

As a Dev, you have the prerogative to build whatever you want, under your personal definitions. But users (the market) have the reciprocal prerogative of deciding what is related or unrelated to a specific function. Your personal definition must be respected. But users (market) definition also must be respected. You always will have the final word, but this doesn't mean that you own the truth.

In this context, when I suggest you TC, I always represent the users (market) point of view. And in my ignorant user point of view, TC and SCC, both are tremendously related to GTMF. Yeah, you're right, users may add other add-ons to do that. But this is a different discussion. Here and now, the point is just to debate the possibility to include into TTG, both, the TC and the SCC options.

Our (yours and mine) debate should be focused at two subjects: Is it possible, doable, feasible etc? (to include TC and SCC into TTG) Is it useful for users? Is it useful to TTG?

Sadly, we (you and I) can't debate that, because your personal definition doesn't leave room to debates. Therefore, I just can say to you, that I respect your decision, and I am not going to insist you. Again, my hope is that with time, you will give a second thought to your personal definition. And who knows, perhaps in the future you will be more opened and flexible to include into TTG functions that users (market) are demanding.

Other group/tab manager add-ons are starting to incorporate TC, SCC etc. Perhaps you're right, and these functions never are going to be related to GTMF. But users are requesting these functions, the market demands these functions, and I believe that this is the reason why other group/tab manager add-ons are incorporating these functions. Also and as I already mentioned you, sometimes is good to incorporate unrelated functions to TTG, because this is better for browser performance, or for increasing privacy/security etc. Now, a comment out of the topic and just for sharing with you my personal use of TC: I have around 50 groups with an average of 20 tabs each group (a total of 1000 organized tabs). Around 10 tabs are related to personal accounts (Reddit, GitHub, Email, Bank etc) and I use permanent containers there. But at my other 990 tabs... I need TC. So, regardless the fact I can use another add-on for that, you can see that from my personal point of view, TC is totally related to GTMF. Users may need specific groups with permanent containers, other specific groups with TC, and other specific groups without containers at all.

I saw your new "Version 0.18.7". I am going to test it. But without TC and without SCC, I am not sure why I should choose TTG rather than choosing another similar add-on with these functions. And I don't use TreeStyleTabs, I mean, I don't have incompatibilities between other group/tab add-ons and non group/tab add-ons. PS: Feel free to close this issue.

So, why I'm still here writing to you? Answer: Mainly because I still like very much the fact your TTG' add-on is lightweight. At least for sometime, I intend to keep your TTG' add-on working together with a TC' add-on. But I really hope that in the future, you'll give a second thought to your personal definition, and you will include both into TTG: TC and SCC. Not to mention that it will be a dream, if you decide to use "bookmarking/closing" instead of "hiding/discarding".

Cheers

chzesa commented 4 years ago

I don't view the userbase as a market that must be captured as TTG is not a business and there is no need to compete. If another addon offers a wide variety of features then some users will prefer that, whereas if a user wants a minimal option then TTG may be the appropriate option.

EstherMoellman commented 4 years ago

It is not related to your views. Market is a technical definition that has not necessarily relation with profits/money/business/competition etc. For example, Firefox is for free, yet, Firefox still depends on market. It is always the market that will determine what they want from Firefox. As I said, you may have views, personal definitions, last word etc, your house your rules. However, this not necessarily means that you are right, or you own the truth.