chromium/chrome/browser/ui/browser_tab_strip_tracker.h

// Copyright 2015 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_BROWSER_TAB_STRIP_TRACKER_H_
#define CHROME_BROWSER_UI_BROWSER_TAB_STRIP_TRACKER_H_

#include "base/memory/raw_ptr.h"
#include "chrome/browser/ui/browser_list_observer.h"

class BrowserTabStripTrackerDelegate;
class TabStripModelObserver;

// BrowserTabStripTracker attaches a TabStripModelObserver to a subset of
// pre-existing and future Browsers. The subset of Browsers that are tracked is
// determined by an optional BrowserTabStripTrackerDelegate.
//
// This class is typically not the right helper to use. Its primary purpose is
// to hook up a TabStripModelObserver across multiple TabStripModels. As per the
// documentation for TabStripModelObserver, only features that need to interact
// with the tab strip like tab groups and tab search should use
// TabStripModelObserver. Other features should use TabInterface and
// TabFeatures. Furthermore, this class mixes state across multiple
// TabStripModels. This is typically not desirable and instead features should
// hold state on a per-browser-window basis, using BrowserWindowFeatures.
class BrowserTabStripTracker : public BrowserListObserver {};

#endif  // CHROME_BROWSER_UI_BROWSER_TAB_STRIP_TRACKER_H_