blob: 4b4d7094a433b72d31d268f4b7dca0d2ab572316 [file] [log] [blame]
// Copyright 2021 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_UI_BREADCRUMB_MANAGER_BROWSER_AGENT_H_
#define CHROME_BROWSER_UI_BREADCRUMB_MANAGER_BROWSER_AGENT_H_
#include <string>
#include "base/memory/raw_ptr.h"
#include "chrome/browser/ui/tabs/tab_strip_model_observer.h"
#include "components/breadcrumbs/core/breadcrumb_manager_browser_agent.h"
class Browser;
class TabStripModel;
class TabStripModelChange;
struct TabStripSelectionChange;
class BreadcrumbManagerBrowserAgent
: public breadcrumbs::BreadcrumbManagerBrowserAgent,
public TabStripModelObserver {
public:
explicit BreadcrumbManagerBrowserAgent(Browser* browser);
BreadcrumbManagerBrowserAgent(const BreadcrumbManagerBrowserAgent&) = delete;
BreadcrumbManagerBrowserAgent& operator=(
const BreadcrumbManagerBrowserAgent&) = delete;
~BreadcrumbManagerBrowserAgent() override;
private:
// breadcrumbs::BreadcrumbManagerBrowserAgent:
void PlatformLogEvent(const std::string& event) override;
// TabStripModelObserver:
void OnTabStripModelChanged(
TabStripModel* tab_strip_model,
const TabStripModelChange& change,
const TabStripSelectionChange& selection) override;
// The browser whose tab strip this agent observes. Can't be nullptr because
// |browser_| owns this object.
raw_ptr<Browser> browser_;
};
#endif // CHROME_BROWSER_UI_BREADCRUMB_MANAGER_BROWSER_AGENT_H_