// Copyright 2019 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_BROWSER_UI_TABS_TAB_GROUP_MODEL_H_ #define CHROME_BROWSER_UI_TABS_TAB_GROUP_MODEL_H_ #include <stddef.h> #include <stdint.h> #include <map> #include <memory> #include <optional> #include <vector> #include "base/memory/raw_ptr.h" class TabGroup; class TabGroupController; namespace tab_groups { enum class TabGroupColorId; class TabGroupId; class TabGroupVisualData; } // namespace tab_groups // A model for all tab groups with at least one tab in the tabstrip. Keeps a map // of tab_groups::TabGroupIds and TabGroups and provides an API for maintaining // it. It is owned and used primarily by TabStripModel, which handles // tab-to-group correspondences and any groupedness state changes on tabs. // TabStipModel then notifies TabStrip of any groupedness state changes that // need to be reflected in the view. class TabGroupModel { … }; #endif // CHROME_BROWSER_UI_TABS_TAB_GROUP_MODEL_H_