Reland "Reland "Disable customize chrome context menu item when customize chrome isn't registered.""
This is a reland of commit 62361738e694763ead55a911d18d82107653d7ef
See patchset 1 vs 2 for the test failure fix. This test started failing because we added a check that verifies that customize chrome is registered to the tab's registry and the test was ensuring registry to the window's registry.
Original change's description:
> Reland "Disable customize chrome context menu item when customize chrome isn't registered."
>
> This is a reland of commit dd6a0645bb72aa8ba8cf4cf7ba3c9b27f7238de6
>
> See patchset 1 vs 2 for the difference which adds the missing dep that
> this was reverted for to chrome/browser/ui/views/toolbar/BUILD.gn
>
> Original change's description:
> > Disable customize chrome context menu item when customize chrome isn't registered.
> >
> > This also adds a check in BrowserCommandController to not try to open
> > the customize chrome side panel if it is not registered which it checks
> > for the customize chrome side panel controller. Also add test.
> >
> > Bug: 364340028
> > Change-Id: I2478f0bb0b845eb92b4e18dfb21e3bf8bc7d56e5
> > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5846012
> > Commit-Queue: Caroline Rising <corising@chromium.org>
> > Code-Coverage: findit-for-me@appspot.gserviceaccount.com <findit-for-me@appspot.gserviceaccount.com>
> > Reviewed-by: David Pennington <dpenning@chromium.org>
> > Cr-Commit-Position: refs/heads/main@{#1353291}
>
> Bug: 364340028
> Change-Id: I132ae8d117d03241253ebb880d1190a2ad34e827
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5850510
> Reviewed-by: David Pennington <dpenning@chromium.org>
> Commit-Queue: Caroline Rising <corising@chromium.org>
> Code-Coverage: findit-for-me@appspot.gserviceaccount.com <findit-for-me@appspot.gserviceaccount.com>
> Cr-Commit-Position: refs/heads/main@{#1353965}
Bug: 364340028, 365953512
Change-Id: Ic07e461efe95536b009ce8f8d15ae93d557f4c4d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5854947
Commit-Queue: Caroline Rising <corising@chromium.org>
Code-Coverage: findit-for-me@appspot.gserviceaccount.com <findit-for-me@appspot.gserviceaccount.com>
Reviewed-by: David Pennington <dpenning@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1354512}
diff --git a/chrome/browser/ui/browser_command_controller.cc b/chrome/browser/ui/browser_command_controller.cc
index 7fcb036..c07f1397 100644
--- a/chrome/browser/ui/browser_command_controller.cc
+++ b/chrome/browser/ui/browser_command_controller.cc
@@ -2006,7 +2006,8 @@
customize_chrome::SidePanelController* side_panel_controller =
tab->tab_features()->customize_chrome_side_panel_controller();
- if (!side_panel_controller) {
+ if (!side_panel_controller ||
+ !side_panel_controller->IsCustomizeChromeEntryAvailable()) {
return;
}
diff --git a/chrome/browser/ui/views/side_panel/side_panel_interactive_uitest.cc b/chrome/browser/ui/views/side_panel/side_panel_interactive_uitest.cc
index a35eb68..1afc9dc 100644
--- a/chrome/browser/ui/views/side_panel/side_panel_interactive_uitest.cc
+++ b/chrome/browser/ui/views/side_panel/side_panel_interactive_uitest.cc
@@ -247,9 +247,9 @@
// Replace the contents of the CustomizeChrome side panel with an empty view
// so it loads faster.
auto* registry = browser()
- ->browser_window_features()
- ->side_panel_coordinator()
- ->GetWindowRegistry();
+ ->GetActiveTabInterface()
+ ->GetTabFeatures()
+ ->side_panel_registry();
registry->Deregister(
SidePanelEntry::Key(SidePanelEntry::Id::kCustomizeChrome));
registry->Register(std::make_unique<SidePanelEntry>(
diff --git a/chrome/browser/ui/views/toolbar/BUILD.gn b/chrome/browser/ui/views/toolbar/BUILD.gn
index e7a443d8..e368f86 100644
--- a/chrome/browser/ui/views/toolbar/BUILD.gn
+++ b/chrome/browser/ui/views/toolbar/BUILD.gn
@@ -116,6 +116,7 @@
"//chrome/browser/ui/actions:actions_headers",
"//chrome/browser/ui/browser_window",
"//chrome/browser/ui/color:mixers",
+ "//chrome/browser/ui/customize_chrome",
"//chrome/browser/ui/tabs:tab_enums",
"//chrome/browser/ui/tabs:tab_strip_model_observer",
"//chrome/browser/ui/views/side_panel:side_panel_enums",
diff --git a/chrome/browser/ui/views/toolbar/pinned_action_toolbar_button.cc b/chrome/browser/ui/views/toolbar/pinned_action_toolbar_button.cc
index c78bb82..65803837 100644
--- a/chrome/browser/ui/views/toolbar/pinned_action_toolbar_button.cc
+++ b/chrome/browser/ui/views/toolbar/pinned_action_toolbar_button.cc
@@ -14,6 +14,8 @@
#include "chrome/browser/ui/browser_actions.h"
#include "chrome/browser/ui/browser_commands.h"
#include "chrome/browser/ui/browser_window/public/browser_window_features.h"
+#include "chrome/browser/ui/customize_chrome/side_panel_controller.h"
+#include "chrome/browser/ui/tabs/public/tab_features.h"
#include "chrome/browser/ui/ui_features.h"
#include "chrome/browser/ui/views/side_panel/side_panel_action_callback.h"
#include "chrome/browser/ui/views/toolbar/pinned_toolbar_actions_container.h"
@@ -345,6 +347,13 @@
if (command_id == IDC_UPDATE_SIDE_PANEL_PIN_STATE) {
return browser_->profile()->IsRegularProfile() && is_pinnable_;
}
+ if (command_id == IDC_SHOW_CUSTOMIZE_CHROME_TOOLBAR) {
+ tabs::TabModel* tab = browser_->tab_strip_model()->GetActiveTab();
+ customize_chrome::SidePanelController* side_panel_controller =
+ tab->tab_features()->customize_chrome_side_panel_controller();
+ return side_panel_controller &&
+ side_panel_controller->IsCustomizeChromeEntryAvailable();
+ }
return true;
}
diff --git a/chrome/browser/ui/views/toolbar/pinned_toolbar_actions_container_browsertest.cc b/chrome/browser/ui/views/toolbar/pinned_toolbar_actions_container_browsertest.cc
index 2fffc10..ba485079 100644
--- a/chrome/browser/ui/views/toolbar/pinned_toolbar_actions_container_browsertest.cc
+++ b/chrome/browser/ui/views/toolbar/pinned_toolbar_actions_container_browsertest.cc
@@ -109,6 +109,18 @@
}
IN_PROC_BROWSER_TEST_F(PinnedToolbarActionsContainerBrowserTest,
+ CustomizeToolbarCanNotBeCalledFromIncognitoWindow) {
+ Browser* incognito_browser = Browser::Create(Browser::CreateParams(
+ browser()->profile()->GetPrimaryOTRProfile(/*create_if_needed=*/true),
+ true));
+ AddBlankTabAndShow(incognito_browser);
+ auto pinned_button = std::make_unique<PinnedActionToolbarButton>(
+ incognito_browser, actions::kActionCut, container());
+ EXPECT_FALSE(
+ pinned_button->IsCommandIdEnabled(IDC_SHOW_CUSTOMIZE_CHROME_TOOLBAR));
+}
+
+IN_PROC_BROWSER_TEST_F(PinnedToolbarActionsContainerBrowserTest,
TranslateStatusIndicator) {
PinnedToolbarActionsModel* const actions_model =
PinnedToolbarActionsModel::Get(browser()->profile());