The
tab groups API has been around for a while and is fairly robust. The complications I currently foresee are:
1. Elevated permission is required which necessitates rolling tab group support out as an opt-in feature that prompts the user for access. That might feel a bit clunky but is unavoidable.
2. Groups are referenced by ID. That ID maps to a color and title, access to which is granted by the tabGroups permission. This permission is not needed for the ID itself, so existing collections are actually already saved with tab groupings, just not their colors or titles. There will be cases when we only have access to the saved ID and cases when we have a saved ID, color, and title (when permission is granted). Also, the group that maps to a saved ID may no longer exist or have an updated color and/or title. These variables need to be accounted for when determining the behavior for displaying, editing, and opening collections in whole or in part.
Some initial questions that arise: Do we auto-create or ignore unrecognized groups? How do we reconcile property discrepancies? How do we deal with group fragmentation that could have occurred through collection editing prior to tab group support? Since group IDs are scoped to a browser, how should we deal with groups in imported or shared collections? What about Session Buddy data that's restored into a new browser installation? (probably auto-create all groups in both cases). Do we ignore groups when only some links in a collection are being opened or do we open partial groups?
Off the top of my head, what needs to be added is:
1. Tab Groups permission control - granting and revoking (permission is needed specifically for editing groups and accessing group titles and colors)
2. Detection of tab group usage and selective prompting for feature opt-in
3. Displaying groups in the current session and in collections, including colors and titles
4. Restoring groups when a collection or part of a collection is opened
5. Ensuring that group consistency is predictably maintained while editing collections (eg, adding, removing, moving links)
Optional:
1. Group-level operations like we have for folders (move a group to a new collection, copy all links in a group, etc)
2. Allowing group properties to be edited within SB
There are also feature overlaps that need to be worked through with regard to tab pinned state, copy, sort, unify, and almost certainly more.
Hans