mirror of
https://github.com/morgan9e/helium
synced 2026-04-14 00:14:20 +09:00
helium/toolbar: add prefs for hiding back, reload, and main menu buttons
This commit is contained in:
@@ -1,14 +1,64 @@
|
||||
--- a/chrome/common/pref_names.h
|
||||
+++ b/chrome/common/pref_names.h
|
||||
@@ -1336,6 +1336,26 @@ inline constexpr char kSplitViewDragAndD
|
||||
inline constexpr char kSplitViewDragAndDropNudgeUsedCount[] =
|
||||
"browser.split_view_drag_and_drop_nudge_used_count";
|
||||
|
||||
+// A boolean pref set to true if the Back button should be visible on the
|
||||
+// toolbar.
|
||||
+inline constexpr char kShowBackButton[] = "helium.browser.show_back_button";
|
||||
+
|
||||
+// A boolean pref set to true if the Reload button should be visible on the
|
||||
+// toolbar.
|
||||
+inline constexpr char kShowReloadButton[] = "helium.browser.show_reload_button";
|
||||
+
|
||||
+// A boolean pref set to true if the Avatar button should be visible on the
|
||||
+// toolbar.
|
||||
+inline constexpr char kShowAvatarButton[] = "helium.browser.show_avatar_button";
|
||||
+
|
||||
+// A boolean pref set to true if the Extensions button should be visible on the
|
||||
+// toolbar.
|
||||
+inline constexpr char kShowExtensionsButton[] = "helium.browser.show_extensions_button";
|
||||
+
|
||||
+// A boolean pref set to true if the Menu button should be visible on the
|
||||
+// toolbar.
|
||||
+inline constexpr char kShowMenuButton[] = "helium.browser.show_menu_button";
|
||||
+
|
||||
// A boolean pref set to true if Gemini integration be enabled. This is managed
|
||||
// by enterprise policy.
|
||||
inline constexpr char kGeminiSettings[] = "browser.gemini_settings";
|
||||
--- a/chrome/browser/ui/browser_ui_prefs.cc
|
||||
+++ b/chrome/browser/ui/browser_ui_prefs.cc
|
||||
@@ -125,6 +125,12 @@ void RegisterBrowserUserPrefs(user_prefs
|
||||
registry->RegisterBooleanPref(prefs::kPinSplitTabButton, false,
|
||||
pref_registration_flags);
|
||||
|
||||
+ registry->RegisterBooleanPref(prefs::kShowBackButton, true);
|
||||
+ registry->RegisterBooleanPref(prefs::kShowReloadButton, true);
|
||||
+ registry->RegisterBooleanPref(prefs::kShowAvatarButton, true);
|
||||
+ registry->RegisterBooleanPref(prefs::kShowExtensionsButton, true);
|
||||
+ registry->RegisterBooleanPref(prefs::kShowMenuButton, true);
|
||||
+
|
||||
registry->RegisterInt64Pref(prefs::kDefaultBrowserLastDeclined, 0);
|
||||
registry->RegisterBooleanPref(prefs::kWebAppCreateOnDesktop, true);
|
||||
registry->RegisterBooleanPref(prefs::kWebAppCreateInAppsMenu, true);
|
||||
--- a/chrome/browser/extensions/api/settings_private/prefs_util.cc
|
||||
+++ b/chrome/browser/extensions/api/settings_private/prefs_util.cc
|
||||
@@ -234,6 +234,12 @@ const PrefsUtil::TypedPrefMap& PrefsUtil
|
||||
@@ -234,6 +234,18 @@ const PrefsUtil::TypedPrefMap& PrefsUtil
|
||||
(*s_allowlist)[::prefs::kSplitViewDragAndDropEnabled] =
|
||||
settings_api::PrefType::kBoolean;
|
||||
|
||||
+ // Custom toolbar button settings.
|
||||
+ // Helium toolbar settings.
|
||||
+ (*s_allowlist)[::prefs::kShowBackButton] =
|
||||
+ settings_api::PrefType::kBoolean;
|
||||
+ (*s_allowlist)[::prefs::kShowReloadButton] =
|
||||
+ settings_api::PrefType::kBoolean;
|
||||
+ (*s_allowlist)[::prefs::kShowAvatarButton] =
|
||||
+ settings_api::PrefType::kBoolean;
|
||||
+ (*s_allowlist)[::prefs::kShowExtensionsButton] =
|
||||
+ settings_api::PrefType::kBoolean;
|
||||
+ (*s_allowlist)[::prefs::kShowMenuButton] =
|
||||
+ settings_api::PrefType::kBoolean;
|
||||
+
|
||||
// Appearance settings.
|
||||
(*s_allowlist)[::prefs::kCurrentThemeID] = settings_api::PrefType::kString;
|
||||
@@ -24,45 +74,43 @@
|
||||
E(kActionNewIncognitoWindow, IDC_NEW_INCOGNITO_WINDOW) \
|
||||
E(kActionSendSharedTabGroupFeedback, IDC_SEND_SHARED_TAB_GROUP_FEEDBACK) \
|
||||
E(kActionShowPasswordManager, IDC_SHOW_PASSWORD_MANAGER) \
|
||||
--- a/chrome/browser/ui/browser_ui_prefs.cc
|
||||
+++ b/chrome/browser/ui/browser_ui_prefs.cc
|
||||
@@ -125,6 +125,11 @@ void RegisterBrowserUserPrefs(user_prefs
|
||||
registry->RegisterBooleanPref(prefs::kPinSplitTabButton, false,
|
||||
pref_registration_flags);
|
||||
|
||||
+ registry->RegisterBooleanPref(
|
||||
+ prefs::kShowAvatarButton, true);
|
||||
+ registry->RegisterBooleanPref(
|
||||
+ prefs::kShowExtensionsButton, true);
|
||||
+
|
||||
registry->RegisterInt64Pref(prefs::kDefaultBrowserLastDeclined, 0);
|
||||
registry->RegisterBooleanPref(prefs::kWebAppCreateOnDesktop, true);
|
||||
registry->RegisterBooleanPref(prefs::kWebAppCreateInAppsMenu, true);
|
||||
--- a/chrome/browser/ui/toolbar/pinned_toolbar/pinned_toolbar_actions_model.cc
|
||||
+++ b/chrome/browser/ui/toolbar/pinned_toolbar/pinned_toolbar_actions_model.cc
|
||||
@@ -216,6 +216,8 @@ void PinnedToolbarActionsModel::UpdatePi
|
||||
@@ -216,6 +216,11 @@ void PinnedToolbarActionsModel::UpdatePi
|
||||
void PinnedToolbarActionsModel::ResetToDefault() {
|
||||
pref_service_->ClearPref(prefs::kShowHomeButton);
|
||||
pref_service_->ClearPref(prefs::kShowForwardButton);
|
||||
+ pref_service_->ClearPref(prefs::kShowBackButton);
|
||||
+ pref_service_->ClearPref(prefs::kShowReloadButton);
|
||||
+ pref_service_->ClearPref(prefs::kShowAvatarButton);
|
||||
+ pref_service_->ClearPref(prefs::kShowExtensionsButton);
|
||||
+ pref_service_->ClearPref(prefs::kShowMenuButton);
|
||||
pref_service_->ClearPref(prefs::kPinnedActions);
|
||||
}
|
||||
|
||||
@@ -229,7 +231,15 @@ bool PinnedToolbarActionsModel::IsDefaul
|
||||
@@ -229,7 +234,24 @@ bool PinnedToolbarActionsModel::IsDefaul
|
||||
const bool forward_is_default =
|
||||
pref_service_->GetDefaultPrefValue(prefs::kShowForwardButton)
|
||||
->GetBool() == pref_service_->GetBoolean(prefs::kShowForwardButton);
|
||||
- return action_are_default && home_is_default && forward_is_default;
|
||||
+ const bool back_is_default =
|
||||
+ pref_service_->GetDefaultPrefValue(prefs::kShowBackButton)
|
||||
+ ->GetBool() == pref_service_->GetBoolean(prefs::kShowBackButton);
|
||||
+ const bool reload_is_default =
|
||||
+ pref_service_->GetDefaultPrefValue(prefs::kShowReloadButton)
|
||||
+ ->GetBool() == pref_service_->GetBoolean(prefs::kShowReloadButton);
|
||||
+ const bool avatar_is_default =
|
||||
+ pref_service_->GetDefaultPrefValue(prefs::kShowAvatarButton)
|
||||
+ ->GetBool() == pref_service_->GetBoolean(prefs::kShowAvatarButton);
|
||||
+ const bool extensions_is_default =
|
||||
+ pref_service_->GetDefaultPrefValue(prefs::kShowExtensionsButton)
|
||||
+ ->GetBool() == pref_service_->GetBoolean(prefs::kShowExtensionsButton);
|
||||
+ return action_are_default && home_is_default &&
|
||||
+ forward_is_default && avatar_is_default &&
|
||||
+ extensions_is_default;
|
||||
+ const bool menu_is_default =
|
||||
+ pref_service_->GetDefaultPrefValue(prefs::kShowMenuButton)
|
||||
+ ->GetBool() == pref_service_->GetBoolean(prefs::kShowMenuButton);
|
||||
+ return action_are_default && home_is_default && forward_is_default &&
|
||||
+ back_is_default && reload_is_default && avatar_is_default &&
|
||||
+ extensions_is_default && menu_is_default;
|
||||
}
|
||||
|
||||
void PinnedToolbarActionsModel::MaybeMigrateExistingPinnedStates() {
|
||||
@@ -78,17 +126,31 @@
|
||||
#endif
|
||||
|
||||
const std::string sab_value = base::CommandLine::ForCurrentProcess()->
|
||||
@@ -521,6 +520,25 @@ void ToolbarView::Init() {
|
||||
@@ -521,6 +520,48 @@ void ToolbarView::Init() {
|
||||
|
||||
home_->SetVisible(show_home_button_.GetValue());
|
||||
|
||||
+ show_back_button_.Init(
|
||||
+ prefs::kShowBackButton, prefs,
|
||||
+ base::BindRepeating(&ToolbarView::OnShowBackButtonChanged,
|
||||
+ base::Unretained(this)));
|
||||
+
|
||||
+ back_->SetVisible(show_back_button_.GetValue());
|
||||
+
|
||||
+ show_reload_button_.Init(
|
||||
+ prefs::kShowReloadButton, prefs,
|
||||
+ base::BindRepeating(&ToolbarView::OnShowReloadButtonChanged,
|
||||
+ base::Unretained(this)));
|
||||
+
|
||||
+ reload_->SetVisible(show_reload_button_.GetValue());
|
||||
+
|
||||
+ show_avatar_button_.Init(
|
||||
+ prefs::kShowAvatarButton, prefs,
|
||||
+ base::BindRepeating(&ToolbarView::OnShowAvatarButtonChanged,
|
||||
+ base::Unretained(this)));
|
||||
+
|
||||
+ // avatar is always shown in incognito and guest profiles,
|
||||
+ // but in regular profiles it's managed by the kShowAvatarButton pref
|
||||
+ // Avatar is always shown in incognito and guest profiles,
|
||||
+ // but in regular profiles it's managed by kShowAvatarButton pref.
|
||||
+ if (browser_->profile()->IsRegularProfile()) {
|
||||
+ avatar_->SetVisible(show_avatar_button_.GetValue());
|
||||
+ }
|
||||
@@ -100,11 +162,34 @@
|
||||
+ base::Unretained(this)));
|
||||
+ extensions_container_->SetVisible(show_extensions_button_.GetValue());
|
||||
+ }
|
||||
+
|
||||
+ if (app_menu_button_) {
|
||||
+ show_menu_button_.Init(
|
||||
+ prefs::kShowMenuButton, prefs,
|
||||
+ base::BindRepeating(&ToolbarView::OnShowMenuButtonChanged,
|
||||
+ base::Unretained(this)));
|
||||
+
|
||||
+ app_menu_button_->SetVisible(show_menu_button_.GetValue());
|
||||
+ }
|
||||
+
|
||||
InitLayout();
|
||||
|
||||
for (auto* button : std::array<views::Button*, 5>{back_, forward_, reload_,
|
||||
@@ -1200,6 +1218,14 @@ void ToolbarView::OnShowHomeButtonChange
|
||||
@@ -1234,10 +1275,33 @@ void ToolbarView::OnShowForwardButtonCha
|
||||
InvalidateLayout();
|
||||
}
|
||||
|
||||
+void ToolbarView::OnShowBackButtonChanged() {
|
||||
+ back_->SetVisible(show_back_button_.GetValue());
|
||||
+ InvalidateLayout();
|
||||
+}
|
||||
+
|
||||
+void ToolbarView::OnShowReloadButtonChanged() {
|
||||
+ reload_->SetVisible(show_reload_button_.GetValue());
|
||||
+ InvalidateLayout();
|
||||
+}
|
||||
+
|
||||
void ToolbarView::OnShowHomeButtonChanged() {
|
||||
home_->SetVisible(show_home_button_.GetValue());
|
||||
}
|
||||
|
||||
@@ -115,88 +200,155 @@
|
||||
+void ToolbarView::OnShowExtensionsButtonChanged() {
|
||||
+ extensions_container_->SetVisible(show_extensions_button_.GetValue());
|
||||
+}
|
||||
+
|
||||
+void ToolbarView::OnShowMenuButtonChanged() {
|
||||
+ app_menu_button_->SetVisible(show_menu_button_.GetValue());
|
||||
+ InvalidateLayout();
|
||||
+}
|
||||
+
|
||||
void ToolbarView::OnTouchUiChanged() {
|
||||
if (display_mode_ == DisplayMode::NORMAL) {
|
||||
// Update the internal margins for touch layout.
|
||||
--- a/chrome/browser/ui/views/toolbar/toolbar_view.h
|
||||
+++ b/chrome/browser/ui/views/toolbar/toolbar_view.h
|
||||
@@ -268,6 +268,10 @@ class ToolbarView : public views::Access
|
||||
@@ -277,6 +277,16 @@ class ToolbarView : public views::Access
|
||||
|
||||
void OnShowHomeButtonChanged();
|
||||
|
||||
+ void OnShowBackButtonChanged();
|
||||
+
|
||||
+ void OnShowReloadButtonChanged();
|
||||
+
|
||||
+ void OnShowAvatarButtonChanged();
|
||||
+
|
||||
+ void OnShowExtensionsButtonChanged();
|
||||
+
|
||||
+ void OnShowMenuButtonChanged();
|
||||
+
|
||||
void OnTouchUiChanged();
|
||||
|
||||
void UpdateClipPath();
|
||||
@@ -318,6 +322,10 @@ class ToolbarView : public views::Access
|
||||
@@ -327,6 +337,16 @@ class ToolbarView : public views::Access
|
||||
// Controls whether or not a home button should be shown on the toolbar.
|
||||
BooleanPrefMember show_home_button_;
|
||||
|
||||
+ BooleanPrefMember show_back_button_;
|
||||
+
|
||||
+ BooleanPrefMember show_reload_button_;
|
||||
+
|
||||
+ BooleanPrefMember show_avatar_button_;
|
||||
+
|
||||
+ BooleanPrefMember show_extensions_button_;
|
||||
+
|
||||
+ BooleanPrefMember show_menu_button_;
|
||||
+
|
||||
BooleanPrefMember show_chrome_labs_button_;
|
||||
|
||||
// The display mode used when laying out the toolbar.
|
||||
--- a/chrome/browser/ui/webui/side_panel/customize_chrome/customize_toolbar/customize_toolbar.mojom
|
||||
+++ b/chrome/browser/ui/webui/side_panel/customize_chrome/customize_toolbar/customize_toolbar.mojom
|
||||
@@ -16,6 +16,8 @@ enum ActionId {
|
||||
@@ -16,6 +16,11 @@ enum ActionId {
|
||||
kShowSearchCompanion,
|
||||
kHome,
|
||||
kForward,
|
||||
+ kBack,
|
||||
+ kReload,
|
||||
+ kAvatar,
|
||||
+ kExtensions,
|
||||
+ kMenu,
|
||||
kNewIncognitoWindow,
|
||||
kShowPasswordManager,
|
||||
kShowPaymentMethods,
|
||||
--- a/chrome/browser/ui/webui/side_panel/customize_chrome/customize_toolbar/customize_toolbar_handler.cc
|
||||
+++ b/chrome/browser/ui/webui/side_panel/customize_chrome/customize_toolbar/customize_toolbar_handler.cc
|
||||
@@ -41,6 +41,10 @@ MojoActionForChromeAction(actions::Actio
|
||||
@@ -41,6 +41,16 @@ MojoActionForChromeAction(actions::Actio
|
||||
return side_panel::customize_chrome::mojom::ActionId::kHome;
|
||||
case kActionForward:
|
||||
return side_panel::customize_chrome::mojom::ActionId::kForward;
|
||||
+ case kActionBack:
|
||||
+ return side_panel::customize_chrome::mojom::ActionId::kBack;
|
||||
+ case kActionReload:
|
||||
+ return side_panel::customize_chrome::mojom::ActionId::kReload;
|
||||
+ case kActionAvatar:
|
||||
+ return side_panel::customize_chrome::mojom::ActionId::kAvatar;
|
||||
+ case kActionExtensions:
|
||||
+ return side_panel::customize_chrome::mojom::ActionId::kExtensions;
|
||||
+ case kActionShowAppMenu:
|
||||
+ return side_panel::customize_chrome::mojom::ActionId::kMenu;
|
||||
case kActionNewIncognitoWindow:
|
||||
return side_panel::customize_chrome::mojom::ActionId::kNewIncognitoWindow;
|
||||
case kActionShowDownloads:
|
||||
@@ -85,6 +89,10 @@ std::optional<actions::ActionId> ChromeA
|
||||
@@ -85,6 +95,16 @@ std::optional<actions::ActionId> ChromeA
|
||||
return kActionHome;
|
||||
case side_panel::customize_chrome::mojom::ActionId::kForward:
|
||||
return kActionForward;
|
||||
+ case side_panel::customize_chrome::mojom::ActionId::kBack:
|
||||
+ return kActionBack;
|
||||
+ case side_panel::customize_chrome::mojom::ActionId::kReload:
|
||||
+ return kActionReload;
|
||||
+ case side_panel::customize_chrome::mojom::ActionId::kAvatar:
|
||||
+ return kActionAvatar;
|
||||
+ case side_panel::customize_chrome::mojom::ActionId::kExtensions:
|
||||
+ return kActionExtensions;
|
||||
+ case side_panel::customize_chrome::mojom::ActionId::kMenu:
|
||||
+ return kActionShowAppMenu;
|
||||
case side_panel::customize_chrome::mojom::ActionId::kNewIncognitoWindow:
|
||||
return kActionNewIncognitoWindow;
|
||||
case side_panel::customize_chrome::mojom::ActionId::kShowDownloads:
|
||||
@@ -144,6 +152,14 @@ CustomizeToolbarHandler::CustomizeToolba
|
||||
@@ -144,6 +164,26 @@ CustomizeToolbarHandler::CustomizeToolba
|
||||
prefs::kPinSplitTabButton,
|
||||
base::BindRepeating(&CustomizeToolbarHandler::OnPinSplitTabButtonChanged,
|
||||
base::Unretained(this)));
|
||||
+ pref_change_registrar_.Add(
|
||||
+ prefs::kShowBackButton,
|
||||
+ base::BindRepeating(&CustomizeToolbarHandler::OnShowBackButtonChanged,
|
||||
+ base::Unretained(this)));
|
||||
+ pref_change_registrar_.Add(
|
||||
+ prefs::kShowReloadButton,
|
||||
+ base::BindRepeating(&CustomizeToolbarHandler::OnShowReloadButtonChanged,
|
||||
+ base::Unretained(this)));
|
||||
+ pref_change_registrar_.Add(
|
||||
+ prefs::kShowAvatarButton,
|
||||
+ base::BindRepeating(&CustomizeToolbarHandler::OnShowAvatarButtonChanged,
|
||||
+ base::Unretained(this)));
|
||||
+ pref_change_registrar_.Add(
|
||||
+ prefs::kShowExtensionsButton,
|
||||
+ base::BindRepeating(&CustomizeToolbarHandler::OnShowExtensionsButtonChanged,
|
||||
+ base::Unretained(this)));
|
||||
+ pref_change_registrar_.Add(
|
||||
+ prefs::kShowMenuButton,
|
||||
+ base::BindRepeating(&CustomizeToolbarHandler::OnShowMenuButtonChanged,
|
||||
+ base::Unretained(this)));
|
||||
}
|
||||
|
||||
CustomizeToolbarHandler::~CustomizeToolbarHandler() = default;
|
||||
@@ -189,6 +205,32 @@ void CustomizeToolbarHandler::ListAction
|
||||
actions.push_back(std::move(home_action));
|
||||
actions.push_back(std::move(forward_action));
|
||||
@@ -186,8 +226,64 @@ void CustomizeToolbarHandler::ListAction
|
||||
.Rasterize(&provider),
|
||||
scale_factor)));
|
||||
|
||||
- actions.push_back(std::move(home_action));
|
||||
+ auto back_action = side_panel::customize_chrome::mojom::Action::New(
|
||||
+ MojoActionForChromeAction(kActionBack).value(),
|
||||
+ base::UTF16ToUTF8(l10n_util::GetStringUTF16(IDS_ACCNAME_BACK)),
|
||||
+ prefs()->GetBoolean(prefs::kShowBackButton), false,
|
||||
+ side_panel::customize_chrome::mojom::CategoryId::kNavigation,
|
||||
+ GURL(webui::EncodePNGAndMakeDataURI(
|
||||
+ ui::ImageModel::FromVectorIcon(
|
||||
+ vector_icons::kBackArrowChromeRefreshIcon, icon_color_id)
|
||||
+ .Rasterize(&provider),
|
||||
+ scale_factor)));
|
||||
+
|
||||
+ auto reload_action = side_panel::customize_chrome::mojom::Action::New(
|
||||
+ MojoActionForChromeAction(kActionReload).value(),
|
||||
+ base::UTF16ToUTF8(l10n_util::GetStringUTF16(IDS_ACCNAME_RELOAD)),
|
||||
+ prefs()->GetBoolean(prefs::kShowReloadButton), false,
|
||||
+ side_panel::customize_chrome::mojom::CategoryId::kNavigation,
|
||||
+ GURL(webui::EncodePNGAndMakeDataURI(
|
||||
+ ui::ImageModel::FromVectorIcon(
|
||||
+ vector_icons::kReloadChromeRefreshIcon, icon_color_id)
|
||||
+ .Rasterize(&provider),
|
||||
+ scale_factor)));
|
||||
+
|
||||
+ auto avatar_action = side_panel::customize_chrome::mojom::Action::New(
|
||||
+ MojoActionForChromeAction(kActionAvatar).value(),
|
||||
+ base::UTF16ToUTF8(l10n_util::GetStringUTF16(IDS_PROFILES_MENU_NAME)),
|
||||
@@ -208,8 +360,6 @@
|
||||
+ .Rasterize(&provider),
|
||||
+ scale_factor)));
|
||||
+
|
||||
+ actions.push_back(std::move(avatar_action));
|
||||
+
|
||||
+ auto extensions_action = side_panel::customize_chrome::mojom::Action::New(
|
||||
+ MojoActionForChromeAction(kActionExtensions).value(),
|
||||
+ base::UTF16ToUTF8(l10n_util::GetStringUTF16(IDS_TOOLTIP_EXTENSIONS_BUTTON)),
|
||||
@@ -221,28 +371,94 @@
|
||||
+ .Rasterize(&provider),
|
||||
+ scale_factor)));
|
||||
+
|
||||
+ actions.push_back(std::move(extensions_action));
|
||||
+ auto menu_action = side_panel::customize_chrome::mojom::Action::New(
|
||||
+ MojoActionForChromeAction(kActionShowAppMenu).value(),
|
||||
+ base::UTF16ToUTF8(l10n_util::GetStringUTF16(IDS_ACCNAME_APP_MENU)),
|
||||
+ prefs()->GetBoolean(prefs::kShowMenuButton), false,
|
||||
+ side_panel::customize_chrome::mojom::CategoryId::kYourChrome,
|
||||
+ GURL(webui::EncodePNGAndMakeDataURI(
|
||||
+ ui::ImageModel::FromVectorIcon(kBrowserToolsIcon, icon_color_id)
|
||||
+ .Rasterize(&provider),
|
||||
+ scale_factor)));
|
||||
+
|
||||
+ actions.push_back(std::move(back_action));
|
||||
actions.push_back(std::move(forward_action));
|
||||
+ actions.push_back(std::move(reload_action));
|
||||
+ actions.push_back(std::move(home_action));
|
||||
|
||||
if (base::FeatureList::IsEnabled(features::kSideBySide)) {
|
||||
auto split_tab_action = side_panel::customize_chrome::mojom::Action::New(
|
||||
MojoActionForChromeAction(kActionSplitTab).value(),
|
||||
@@ -323,6 +365,12 @@ void CustomizeToolbarHandler::PinAction(
|
||||
@@ -203,6 +299,10 @@ void CustomizeToolbarHandler::ListAction
|
||||
actions.push_back(std::move(split_tab_action));
|
||||
}
|
||||
|
||||
+ actions.push_back(std::move(extensions_action));
|
||||
+ actions.push_back(std::move(avatar_action));
|
||||
+ actions.push_back(std::move(menu_action));
|
||||
+
|
||||
const auto add_action =
|
||||
[&actions, this, &provider, scale_factor, bwi](
|
||||
actions::ActionId id,
|
||||
@@ -247,17 +347,16 @@ void CustomizeToolbarHandler::ListAction
|
||||
actions.push_back(std::move(mojo_action));
|
||||
};
|
||||
|
||||
- add_action(kActionNewIncognitoWindow,
|
||||
- side_panel::customize_chrome::mojom::CategoryId::kNavigation);
|
||||
-
|
||||
add_action(kActionSidePanelShowBookmarks,
|
||||
- side_panel::customize_chrome::mojom::CategoryId::kYourChrome);
|
||||
+ side_panel::customize_chrome::mojom::CategoryId::kTools);
|
||||
add_action(kActionSidePanelShowHistoryCluster,
|
||||
- side_panel::customize_chrome::mojom::CategoryId::kYourChrome);
|
||||
+ side_panel::customize_chrome::mojom::CategoryId::kTools);
|
||||
add_action(kActionShowDownloads,
|
||||
- side_panel::customize_chrome::mojom::CategoryId::kYourChrome);
|
||||
+ side_panel::customize_chrome::mojom::CategoryId::kTools);
|
||||
add_action(kActionClearBrowsingData,
|
||||
- side_panel::customize_chrome::mojom::CategoryId::kYourChrome);
|
||||
+ side_panel::customize_chrome::mojom::CategoryId::kTools);
|
||||
+ add_action(kActionNewIncognitoWindow,
|
||||
+ side_panel::customize_chrome::mojom::CategoryId::kTools);
|
||||
|
||||
if (features::HasTabSearchToolbarButton()) {
|
||||
add_action(kActionTabSearch,
|
||||
@@ -323,6 +422,21 @@ void CustomizeToolbarHandler::PinAction(
|
||||
case kActionSplitTab:
|
||||
prefs()->SetBoolean(prefs::kPinSplitTabButton, pin);
|
||||
break;
|
||||
+ case kActionBack:
|
||||
+ prefs()->SetBoolean(prefs::kShowBackButton, pin);
|
||||
+ break;
|
||||
+ case kActionReload:
|
||||
+ prefs()->SetBoolean(prefs::kShowReloadButton, pin);
|
||||
+ break;
|
||||
+ case kActionAvatar:
|
||||
+ prefs()->SetBoolean(prefs::kShowAvatarButton, pin);
|
||||
+ break;
|
||||
+ case kActionExtensions:
|
||||
+ prefs()->SetBoolean(prefs::kShowExtensionsButton, pin);
|
||||
+ break;
|
||||
+ case kActionShowAppMenu:
|
||||
+ prefs()->SetBoolean(prefs::kShowMenuButton, pin);
|
||||
+ break;
|
||||
default:
|
||||
model_->UpdatePinnedState(chrome_action.value(), pin);
|
||||
const std::optional<std::string> metrics_name =
|
||||
@@ -376,6 +424,16 @@ void CustomizeToolbarHandler::OnPinSplit
|
||||
@@ -376,6 +490,31 @@ void CustomizeToolbarHandler::OnPinSplit
|
||||
prefs()->GetBoolean(prefs::kPinSplitTabButton));
|
||||
}
|
||||
|
||||
+void CustomizeToolbarHandler::OnShowBackButtonChanged() {
|
||||
+ OnActionPinnedChanged(kActionBack,
|
||||
+ prefs()->GetBoolean(prefs::kShowBackButton));
|
||||
+}
|
||||
+
|
||||
+void CustomizeToolbarHandler::OnShowReloadButtonChanged() {
|
||||
+ OnActionPinnedChanged(kActionReload,
|
||||
+ prefs()->GetBoolean(prefs::kShowReloadButton));
|
||||
+}
|
||||
+
|
||||
+void CustomizeToolbarHandler::OnShowAvatarButtonChanged() {
|
||||
+ OnActionPinnedChanged(kActionAvatar,
|
||||
+ prefs()->GetBoolean(prefs::kShowAvatarButton));
|
||||
@@ -252,38 +468,29 @@
|
||||
+ OnActionPinnedChanged(kActionExtensions,
|
||||
+ prefs()->GetBoolean(prefs::kShowExtensionsButton));
|
||||
+}
|
||||
+
|
||||
+void CustomizeToolbarHandler::OnShowMenuButtonChanged() {
|
||||
+ OnActionPinnedChanged(kActionShowAppMenu,
|
||||
+ prefs()->GetBoolean(prefs::kShowMenuButton));
|
||||
+}
|
||||
+
|
||||
void CustomizeToolbarHandler::OnActionItemChanged() {
|
||||
client_->NotifyActionsUpdated();
|
||||
}
|
||||
--- a/chrome/browser/ui/webui/side_panel/customize_chrome/customize_toolbar/customize_toolbar_handler.h
|
||||
+++ b/chrome/browser/ui/webui/side_panel/customize_chrome/customize_toolbar/customize_toolbar_handler.h
|
||||
@@ -54,6 +54,8 @@ class CustomizeToolbarHandler
|
||||
@@ -54,6 +54,11 @@ class CustomizeToolbarHandler
|
||||
void OnShowHomeButtonChanged();
|
||||
void OnShowForwardButtonChanged();
|
||||
void OnPinSplitTabButtonChanged();
|
||||
+ void OnShowBackButtonChanged();
|
||||
+ void OnShowReloadButtonChanged();
|
||||
+ void OnShowAvatarButtonChanged();
|
||||
+ void OnShowExtensionsButtonChanged();
|
||||
+ void OnShowMenuButtonChanged();
|
||||
void OnActionItemChanged();
|
||||
|
||||
PrefService* prefs() const;
|
||||
--- a/chrome/common/pref_names.h
|
||||
+++ b/chrome/common/pref_names.h
|
||||
@@ -1336,6 +1336,14 @@ inline constexpr char kSplitViewDragAndD
|
||||
inline constexpr char kSplitViewDragAndDropNudgeUsedCount[] =
|
||||
"browser.split_view_drag_and_drop_nudge_used_count";
|
||||
|
||||
+// A boolean pref set to true if the Avatar button should be visible on the
|
||||
+// toolbar.
|
||||
+inline constexpr char kShowAvatarButton[] = "helium.browser.show_avatar_button";
|
||||
+
|
||||
+// A boolean pref set to true if the Extensions button should be visible on the
|
||||
+// toolbar.
|
||||
+inline constexpr char kShowExtensionsButton[] = "helium.browser.show_extensions_button";
|
||||
+
|
||||
// A boolean pref set to true if Gemini integration be enabled. This is managed
|
||||
// by enterprise policy.
|
||||
inline constexpr char kGeminiSettings[] = "browser.gemini_settings";
|
||||
--- a/chrome/browser/ui/views/extensions/extensions_toolbar_container.cc
|
||||
+++ b/chrome/browser/ui/views/extensions/extensions_toolbar_container.cc
|
||||
@@ -552,7 +552,9 @@ void ExtensionsToolbarContainer::AnchorA
|
||||
@@ -308,3 +515,15 @@
|
||||
return false;
|
||||
|
||||
// The container (and extensions-menu button) should not be visible if we have
|
||||
--- a/chrome/app/generated_resources.grd
|
||||
+++ b/chrome/app/generated_resources.grd
|
||||
@@ -10358,6 +10358,9 @@ Keep your key file in a safe place. You
|
||||
<message name="IDS_ACCNAME_FIND" desc="The accessible name for the find button.">
|
||||
Find
|
||||
</message>
|
||||
+ <message name="IDS_ACCNAME_APP_MENU" desc="The accessible name for the app menu button.">
|
||||
+ Main Menu
|
||||
+ </message>
|
||||
<message name="IDS_ACCNAME_BOOKMARKS" desc="The accessible name for the Bookmarks toolbar.">
|
||||
Bookmarks
|
||||
</message>
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
if (IsWindowControlsOverlayEnabled() && GetActiveWebContents()) {
|
||||
--- a/chrome/browser/ui/views/toolbar/toolbar_view.cc
|
||||
+++ b/chrome/browser/ui/views/toolbar/toolbar_view.cc
|
||||
@@ -664,6 +664,44 @@ bool ToolbarView::GetAppMenuFocused() co
|
||||
@@ -646,6 +646,44 @@ bool ToolbarView::GetAppMenuFocused() co
|
||||
return app_menu_button_ && app_menu_button_->HasFocus();
|
||||
}
|
||||
|
||||
|
||||
@@ -87,7 +87,7 @@
|
||||
};
|
||||
--- a/chrome/app/generated_resources.grd
|
||||
+++ b/chrome/app/generated_resources.grd
|
||||
@@ -13303,6 +13303,9 @@ Check your passwords anytime in <ph name
|
||||
@@ -13306,6 +13306,9 @@ Check your passwords anytime in <ph name
|
||||
<message name="IDS_EXTENSIONS_INSTALL_LOCATION_SHARED_MODULE" desc="The text explaining the the installation of the extension was because of extensions that depend on this shared module">
|
||||
Installed because of dependent extension(s).
|
||||
</message>
|
||||
|
||||
@@ -210,6 +210,7 @@ helium/ui/layout-constants.patch
|
||||
helium/ui/tabs.patch
|
||||
helium/ui/tab-strip-controls.patch
|
||||
helium/ui/toolbar.patch
|
||||
helium/ui/toolbar-window-frame-hit-test.patch
|
||||
helium/ui/toolbar-button-prefs.patch
|
||||
helium/ui/omnibox.patch
|
||||
helium/ui/app-menu-style.patch
|
||||
@@ -253,4 +254,3 @@ helium/ui/improve-flags-webui.patch
|
||||
helium/ui/ublock-show-in-settings.patch
|
||||
helium/ui/licenses-in-credits.patch
|
||||
helium/ui/remove-autofill-link-to-password-manager.patch
|
||||
helium/ui/toolbar-window-frame-hit-test.patch
|
||||
|
||||
Reference in New Issue
Block a user