Files
brave-core/browser/ui/brave_browser_command_controller.h
T
Claudio DeSouza 821d15251d [cr145] Several TabStripModel methods using TabInterface
This change in upstream has affected several places where these methods
were being extended. Most changes involve now using `TabInterface`,
rather than `WebContents`.

Chromium changes:
https://chromium.googlesource.com/chromium/src/+/fdb26aae9fcf18a4065d95f88da9677b71ed6512

commit fdb26aae9fcf18a4065d95f88da9677b71ed6512
Author: Eshwar Stalin <estalin@chromium.org>
Date:   Tue Dec 30 15:57:18 2025 -0800

    Updating TabStripModel observer methods for consistency

    Renaming some of the functions for consistency. Also switching some of
    the functions from using content::WebContents to tabs::TabInterface to better align with the long term direction.

    Change-Id: I3b3cf44f02ed6036282adb132fcfe204853d8a13
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7350719
    Commit-Queue: Eshwar Stalin <estalin@chromium.org>
    Reviewed-by: David Pennington <dpenning@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1563530}
2026-01-29 13:40:54 -05:00

119 lines
4.1 KiB
C++

/* Copyright (c) 2019 The Brave Authors. All rights reserved.
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at https://mozilla.org/MPL/2.0/. */
#ifndef BRAVE_BROWSER_UI_BRAVE_BROWSER_COMMAND_CONTROLLER_H_
#define BRAVE_BROWSER_UI_BRAVE_BROWSER_COMMAND_CONTROLLER_H_
#include <optional>
#include <string>
#include <utility>
#include <vector>
#include "base/memory/raw_ref.h"
#include "base/scoped_observation.h"
#include "brave/components/brave_vpn/common/buildflags/buildflags.h"
#include "brave/components/tor/buildflags/buildflags.h"
#include "chrome/browser/ui/browser_command_controller.h"
#include "chrome/browser/ui/tabs/tab_strip_model_observer.h"
#include "components/prefs/pref_change_registrar.h"
#if BUILDFLAG(ENABLE_BRAVE_VPN)
#include "brave/components/brave_vpn/browser/brave_vpn_service_observer.h"
#endif
class BraveAppMenuBrowserTest;
class BraveAppMenuModelBrowserTest;
class BraveBrowserCommandControllerTest;
enum class TabChangeType;
namespace content {
class WebContents;
}
// This namespace is needed for a chromium_src override
namespace chrome {
class BraveBrowserCommandController : public chrome::BrowserCommandController
#if BUILDFLAG(ENABLE_BRAVE_VPN)
,
public brave_vpn::BraveVPNServiceObserver
#endif
{
public:
explicit BraveBrowserCommandController(BrowserWindowInterface* bwi);
BraveBrowserCommandController(const BraveBrowserCommandController&) = delete;
BraveBrowserCommandController& operator=(
const BraveBrowserCommandController&) = delete;
~BraveBrowserCommandController() override;
#if BUILDFLAG(ENABLE_TOR)
void UpdateCommandForTor();
#endif
protected:
void OnTabChangedAt(tabs::TabInterface* tab,
int index,
TabChangeType change_type) override;
void OnTabPinnedStateChanged(tabs::TabInterface* tab, int index) override;
void OnTabStripModelChanged(
TabStripModel* tab_strip_model,
const TabStripModelChange& change,
const TabStripSelectionChange& selection) override;
void OnTabGroupChanged(const TabGroupChange& change) override;
void OnSplitTabChanged(const SplitTabChange& change) override;
private:
friend class ::BraveAppMenuBrowserTest;
friend class ::BraveAppMenuModelBrowserTest;
friend class ::BraveBrowserCommandControllerTest;
// Overriden from CommandUpdater:
bool SupportsCommand(int id) const override;
bool IsCommandEnabled(int id) const override;
bool ExecuteCommandWithDisposition(
int id,
WindowOpenDisposition disposition,
base::TimeTicks time_stamp = base::TimeTicks::Now()) override;
void AddCommandObserver(int id, CommandObserver* observer) override;
void RemoveCommandObserver(int id, CommandObserver* observer) override;
void RemoveCommandObserver(CommandObserver* observer) override;
bool UpdateCommandEnabled(int id, bool state) override;
#if BUILDFLAG(ENABLE_BRAVE_VPN)
// brave_vpn::BraveVPNServiceObserver overrides:
void OnPurchasedStateChanged(
brave_vpn::mojom::PurchasedState state,
const std::optional<std::string>& description) override;
#endif
void InitBraveCommandState();
void UpdateCommandForBraveRewards();
void UpdateCommandForWebcompatReporter();
void UpdateCommandForBraveSync();
void UpdateCommandForBraveWallet();
void UpdateCommandForSidebar();
void UpdateCommandForAIChat();
void UpdateCommandForBraveVPN();
void UpdateCommandForPlaylist();
void UpdateCommandForWaybackMachine();
void UpdateCommandsForTabs();
void UpdateCommandsForSend();
void UpdateCommandsForPin();
void UpdateCommandForSplitView();
bool ExecuteBraveCommandWithDisposition(int id,
WindowOpenDisposition disposition,
base::TimeTicks time_stamp);
PrefChangeRegistrar pref_change_registrar_;
const raw_ref<Browser> browser_;
CommandUpdaterImpl brave_command_updater_;
};
} // namespace chrome
#endif // BRAVE_BROWSER_UI_BRAVE_BROWSER_COMMAND_CONTROLLER_H_