Files
brave-core/browser/prefs
Sangwoo Ko 9414565fa1 [Tree Tabs] Implement BuildTreeTabs() and FlattenTreeTabs() (#30447)
* Implement BuildTreeTabs() and FlattenTreeTabs()

TreeTabNodes are specialized TabCollections that wrap individual tabs,
allowing for hierarchical nesting and advanced tab relationships.

- `BuildTreeTabs()`: Converts tab structure to tree hierarchy
  by wrapping all tabs in TreeTabNodes
- `FlattenTreeTabs()`: Reverses the process, extracting tabs from
  TreeTabNodes back to non-tree-tabs structure while preserving order

- `BraveTabStripModel` exposes BuildTreeTabs/FlattenTreeTabs APIs for testing
- `BraveTabStripModel` will automatically build or flatten tree tabs
  based on user preferences, specifically the `kTreeTabsEnabled` and
  `kVerticalTabsEnabled` preferences.
- Methods are feature-gated behind kBraveTreeTab feature flag

- TreeTabNodes can be added to unpinned collections, split and tab groups
- Support for recursive nesting: TreeTabNode -> Group -> TreeTabNode
- Maintains compatibility with existing tab strip infrastructure
2025-09-16 12:28:38 +09:00
..