Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
131 changes: 131 additions & 0 deletions patches/helium/core/add-default-browser-reject-button.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
--- a/chrome/common/pref_names.h
+++ b/chrome/common/pref_names.h
@@ -1416,6 +1416,11 @@ inline constexpr char kExtensionCommands
inline constexpr char kPluginsAlwaysOpenPdfExternally[] =
"plugins.always_open_pdf_externally";

+// Boolean indicating that the user has rejected setting
+// the browser as default for an indefinite amount of time.
+inline constexpr char kHeliumDefaultBrowserRejected[] =
+ "helium.browser.default_browser_infobar_rejected";
+
// Int64 containing the internal value of the time at which the default browser
// infobar was last dismissed by the user.
inline constexpr char kDefaultBrowserLastDeclined[] =
--- a/chrome/browser/ui/browser_ui_prefs.cc
+++ b/chrome/browser/ui/browser_ui_prefs.cc
@@ -77,6 +77,8 @@ void RegisterBrowserPrefs(PrefRegistrySi
registry->RegisterIntegerPref(prefs::kDefaultBrowserDeclinedCount, 0);
registry->RegisterTimePref(prefs::kDefaultBrowserFirstShownTime,
base::Time());
+ registry->RegisterBooleanPref(prefs::kHeliumDefaultBrowserRejected, false);
+
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
registry->RegisterTimePref(prefs::kPdfInfoBarLastShown, base::Time());
registry->RegisterIntegerPref(prefs::kPdfInfoBarTimesShown, 0);
--- a/chrome/browser/ui/startup/infobar_utils.cc
+++ b/chrome/browser/ui/startup/infobar_utils.cc
@@ -208,6 +208,11 @@ void AddInfoBarsIfNecessary(Browser* bro
return;
}

+ PrefService* local_state = g_browser_process->local_state();
+ if (local_state && local_state->GetBoolean(prefs::kHeliumDefaultBrowserRejected)) {
+ return;
+ }
+
base::OnceCallback<void(bool)> default_browser_prompt_shown_callback =
base::DoNothing();
#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
--- a/components/infobars/core/confirm_infobar_delegate.h
+++ b/components/infobars/core/confirm_infobar_delegate.h
@@ -81,6 +81,8 @@ class ConfirmInfoBarDelegate : public in
// custom layout to show the link text before the button.
virtual bool ShouldShowLinkBeforeButton() const;

+ virtual bool OkButtonShouldAlwaysLead() const;
+
#if BUILDFLAG(IS_IOS)
// Returns whether or not a tint should be applied to the icon background.
// Defaults to true.
--- a/components/infobars/core/confirm_infobar_delegate.cc
+++ b/components/infobars/core/confirm_infobar_delegate.cc
@@ -67,6 +67,10 @@ bool ConfirmInfoBarDelegate::ShouldShowL
return false;
}

+bool ConfirmInfoBarDelegate::OkButtonShouldAlwaysLead() const {
+ return false;
+}
+
#if BUILDFLAG(IS_IOS)
bool ConfirmInfoBarDelegate::UseIconBackgroundTint() const {
return true;
--- a/chrome/browser/ui/startup/default_browser_prompt/default_browser_infobar_delegate.cc
+++ b/chrome/browser/ui/startup/default_browser_prompt/default_browser_infobar_delegate.cc
@@ -112,13 +112,15 @@ std::u16string DefaultBrowserInfoBarDele
}

int DefaultBrowserInfoBarDelegate::GetButtons() const {
- return BUTTON_OK;
+ return BUTTON_OK | BUTTON_CANCEL;
}

std::u16string DefaultBrowserInfoBarDelegate::GetButtonLabel(
InfoBarButton button) const {
- DCHECK_EQ(BUTTON_OK, button);
- return l10n_util::GetStringUTF16(IDS_DEFAULT_BROWSER_INFOBAR_OK_BUTTON_LABEL);
+ DCHECK(button == BUTTON_OK || button == BUTTON_CANCEL);
+ return l10n_util::GetStringUTF16(
+ button == BUTTON_OK ? IDS_DEFAULT_BROWSER_INFOBAR_OK_BUTTON_LABEL
+ : IDS_CARET_BROWSING_DO_NOT_ASK);
}

bool DefaultBrowserInfoBarDelegate::Accept() {
@@ -155,6 +157,21 @@ bool DefaultBrowserInfoBarDelegate::Acce
return ConfirmInfoBarDelegate::Accept();
}

+bool DefaultBrowserInfoBarDelegate::Cancel() {
+ PrefService* local_state = g_browser_process->local_state();
+ if (!local_state) {
+ return true;
+ }
+
+ local_state->SetBoolean(prefs::kHeliumDefaultBrowserRejected, true);
+
+ return ConfirmInfoBarDelegate::Cancel();
+}
+
bool DefaultBrowserInfoBarDelegate::ShouldHideInFullscreen() const {
return true;
}
+
+bool DefaultBrowserInfoBarDelegate::OkButtonShouldAlwaysLead() const {
+ return true;
+}
--- a/chrome/browser/ui/startup/default_browser_prompt/default_browser_infobar_delegate.h
+++ b/chrome/browser/ui/startup/default_browser_prompt/default_browser_infobar_delegate.h
@@ -61,7 +61,9 @@ class DefaultBrowserInfoBarDelegate : pu
int GetButtons() const override;
std::u16string GetButtonLabel(InfoBarButton button) const override;
bool Accept() override;
+ bool Cancel() override;
bool ShouldHideInFullscreen() const override;
+ bool OkButtonShouldAlwaysLead() const override;

// The WebContents's corresponding profile.
raw_ptr<Profile> profile_;
--- a/chrome/browser/ui/views/infobars/confirm_infobar.cc
+++ b/chrome/browser/ui/views/infobars/confirm_infobar.cc
@@ -123,7 +123,9 @@ void ConfirmInfoBar::Layout(PassKey) {
}

if constexpr (!views::PlatformStyle::kIsOkButtonLeading) {
- std::ranges::reverse(order_of_buttons);
+ if (!GetDelegate()->OkButtonShouldAlwaysLead()) {
+ std::ranges::reverse(order_of_buttons);
+ }
}

for (views::MdTextButton* button : order_of_buttons) {
2 changes: 1 addition & 1 deletion patches/helium/core/add-native-bangs.patch
Original file line number Diff line number Diff line change
Expand Up @@ -763,7 +763,7 @@
label="$i18n{heliumExtProxyToggle}"
--- a/chrome/browser/ui/browser_ui_prefs.cc
+++ b/chrome/browser/ui/browser_ui_prefs.cc
@@ -202,6 +202,7 @@ void RegisterBrowserUserPrefs(user_prefs
@@ -204,6 +204,7 @@ void RegisterBrowserUserPrefs(user_prefs

{
registry->RegisterBooleanPref(prefs::kHeliumServicesEnabled, true);
Expand Down
2 changes: 1 addition & 1 deletion patches/helium/core/add-updater-preference.patch
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ TODO: guard services_page.html with is_mac

--- a/chrome/browser/ui/browser_ui_prefs.cc
+++ b/chrome/browser/ui/browser_ui_prefs.cc
@@ -213,6 +213,7 @@ void RegisterBrowserUserPrefs(user_prefs
@@ -215,6 +215,7 @@ void RegisterBrowserUserPrefs(user_prefs
registry->RegisterStringPref(prefs::kHeliumServicesOrigin, "");
registry->RegisterBooleanPref(prefs::kHeliumDidOnboarding, false);
registry->RegisterBooleanPref(prefs::kHeliumServicesConsented, false);
Expand Down
2 changes: 1 addition & 1 deletion patches/helium/core/hide-avatar-via-toolbar-prefs.patch
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
E(kActionShowPasswordManager, IDC_SHOW_PASSWORD_MANAGER) \
--- a/chrome/browser/ui/browser_ui_prefs.cc
+++ b/chrome/browser/ui/browser_ui_prefs.cc
@@ -117,6 +117,9 @@ void RegisterBrowserUserPrefs(user_prefs
@@ -119,6 +119,9 @@ void RegisterBrowserUserPrefs(user_prefs
registry->RegisterBooleanPref(prefs::kPinSplitTabButton, false,
pref_registration_flags);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
E(kActionShowPasswordManager, IDC_SHOW_PASSWORD_MANAGER) \
--- a/chrome/browser/ui/browser_ui_prefs.cc
+++ b/chrome/browser/ui/browser_ui_prefs.cc
@@ -119,6 +119,8 @@ void RegisterBrowserUserPrefs(user_prefs
@@ -121,6 +121,8 @@ void RegisterBrowserUserPrefs(user_prefs

registry->RegisterBooleanPref(
prefs::kShowAvatarButton, true);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
label="$i18n{showTabGroupsInBookmarksBar}">
--- a/chrome/browser/ui/browser_ui_prefs.cc
+++ b/chrome/browser/ui/browser_ui_prefs.cc
@@ -104,6 +104,8 @@ void RegisterBrowserUserPrefs(user_prefs
@@ -106,6 +106,8 @@ void RegisterBrowserUserPrefs(user_prefs
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF;
#endif

Expand Down
2 changes: 1 addition & 1 deletion patches/helium/core/proxy-extension-downloads.patch
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@

--- a/chrome/browser/ui/browser_ui_prefs.cc
+++ b/chrome/browser/ui/browser_ui_prefs.cc
@@ -202,6 +202,7 @@ void RegisterBrowserUserPrefs(user_prefs
@@ -204,6 +204,7 @@ void RegisterBrowserUserPrefs(user_prefs

{
registry->RegisterBooleanPref(prefs::kHeliumServicesEnabled, true);
Expand Down
2 changes: 1 addition & 1 deletion patches/helium/core/reenable-spellcheck-downloads.patch
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@

--- a/chrome/browser/ui/browser_ui_prefs.cc
+++ b/chrome/browser/ui/browser_ui_prefs.cc
@@ -204,6 +204,7 @@ void RegisterBrowserUserPrefs(user_prefs
@@ -206,6 +206,7 @@ void RegisterBrowserUserPrefs(user_prefs
registry->RegisterBooleanPref(prefs::kHeliumServicesEnabled, true);
registry->RegisterBooleanPref(prefs::kHeliumBangsEnabled, true);
registry->RegisterBooleanPref(prefs::kHeliumExtProxyEnabled, true);
Expand Down
2 changes: 1 addition & 1 deletion patches/helium/core/ublock-helium-services.patch
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@

--- a/chrome/browser/ui/browser_ui_prefs.cc
+++ b/chrome/browser/ui/browser_ui_prefs.cc
@@ -214,6 +214,7 @@ void RegisterBrowserUserPrefs(user_prefs
@@ -216,6 +216,7 @@ void RegisterBrowserUserPrefs(user_prefs
registry->RegisterBooleanPref(prefs::kHeliumDidOnboarding, false);
registry->RegisterBooleanPref(prefs::kHeliumServicesConsented, false);
registry->RegisterBooleanPref(prefs::kHeliumUpdateFetchingEnabled, true);
Expand Down
1 change: 1 addition & 0 deletions patches/series
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,7 @@ helium/core/search/remove-description-snippet-deps.patch

helium/core/keyboard-shortcuts.patch
helium/core/update-default-browser-prefs.patch
helium/core/add-default-browser-reject-button.patch
helium/core/proxy-extension-downloads.patch
helium/core/reenable-update-checks.patch
helium/core/add-native-bangs.patch
Expand Down