diff --git a/patches/extra/brave/chrome-importer-files.patch b/patches/extra/brave/chrome-importer-files.patch index 545a23fc..e0a7f562 100644 --- a/patches/extra/brave/chrome-importer-files.patch +++ b/patches/extra/brave/chrome-importer-files.patch @@ -189,7 +189,7 @@ along with this program. If not, see . +} // namespace --- /dev/null +++ b/chrome/common/importer/chrome_importer_utils.cc -@@ -0,0 +1,241 @@ +@@ -0,0 +1,243 @@ +/* Copyright (c) 2019 The Brave Authors, 2025 imput. 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, @@ -235,7 +235,8 @@ along with this program. If not, see . + base::ReadFileToString(preference_path, &preference_content); + + std::optional preference = -+ base::JSONReader::ReadDict(preference_content); ++ base::JSONReader::ReadDict(preference_content, ++ base::JSON_PARSE_CHROMIUM_EXTENSIONS); + if (!preference) { + return std::nullopt; + } @@ -335,7 +336,8 @@ along with this program. If not, see . + std::string local_state_content; + base::ReadFileToString(local_state_path, &local_state_content); + std::optional local_state_dict = -+ base::JSONReader::ReadDict(local_state_content); ++ base::JSONReader::ReadDict(local_state_content, ++ base::JSON_PARSE_CHROMIUM_EXTENSIONS); + if (!local_state_dict) + return profiles; + @@ -2733,7 +2735,7 @@ along with this program. If not, see . +#endif // BRAVE_UTILITY_IMPORTER_BRAVE_EXTERNAL_PROCESS_IMPORTER_BRIDGE_H_ --- /dev/null +++ b/chrome/utility/importer/chrome_importer.cc -@@ -0,0 +1,435 @@ +@@ -0,0 +1,437 @@ +/* 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, @@ -2822,7 +2824,8 @@ along with this program. If not, see . + std::string local_state_content; + base::ReadFileToString(local_state_path, &local_state_content); + std::optional local_state = -+ base::JSONReader::ReadDict(local_state_content); ++ base::JSONReader::ReadDict(local_state_content, ++ base::JSON_PARSE_CHROMIUM_EXTENSIONS); + if (!local_state) { + return false; + } @@ -3006,7 +3009,8 @@ along with this program. If not, see . + base::ReadFileToString(copy_bookmark_file.copied_file_path(), + &bookmarks_content); + std::optional bookmark_dict = -+ base::JSONReader::ReadDict(bookmarks_content); ++ base::JSONReader::ReadDict(bookmarks_content, ++ base::JSON_PARSE_CHROMIUM_EXTENSIONS); + if (!bookmark_dict) + return; + diff --git a/patches/extra/brave/custom-importer.patch b/patches/extra/brave/custom-importer.patch index 1a58fbe3..8e1eafac 100644 --- a/patches/extra/brave/custom-importer.patch +++ b/patches/extra/brave/custom-importer.patch @@ -244,7 +244,7 @@ along with this program. If not, see . } --- a/chrome/common/pref_names.h +++ b/chrome/common/pref_names.h -@@ -4260,6 +4260,9 @@ inline constexpr char kServiceWorkerToCo +@@ -4266,6 +4266,9 @@ inline constexpr char kServiceWorkerToCo inline constexpr char kSharedWorkerBlobURLFixEnabled[] = "worker.shared_worker_blob_url_fix_enabled"; @@ -256,7 +256,7 @@ along with this program. If not, see . inline constexpr char kClearWindowNameForNewBrowsingContextGroup[] = --- a/chrome/browser/extensions/api/settings_private/prefs_util.cc +++ b/chrome/browser/extensions/api/settings_private/prefs_util.cc -@@ -1161,6 +1161,8 @@ const PrefsUtil::TypedPrefMap& PrefsUtil +@@ -1164,6 +1164,8 @@ const PrefsUtil::TypedPrefMap& PrefsUtil settings_api::PrefType::kBoolean; (*s_allowlist)[::prefs::kImportDialogSearchEngine] = settings_api::PrefType::kBoolean; @@ -275,7 +275,7 @@ along with this program. If not, see . #include "chrome/browser/ui/webui/settings/metrics_reporting_handler.h" #include "chrome/browser/ui/webui/settings/on_startup_handler.h" #include "chrome/browser/ui/webui/settings/password_manager_handler.h" -@@ -202,6 +203,7 @@ void SettingsUI::RegisterProfilePrefs( +@@ -201,6 +202,7 @@ void SettingsUI::RegisterProfilePrefs( registry->RegisterBooleanPref(prefs::kImportDialogHistory, true); registry->RegisterBooleanPref(prefs::kImportDialogSavedPasswords, true); registry->RegisterBooleanPref(prefs::kImportDialogSearchEngine, true); @@ -283,7 +283,7 @@ along with this program. If not, see . } SettingsUI::SettingsUI(content::WebUI* web_ui) -@@ -231,7 +233,7 @@ SettingsUI::SettingsUI(content::WebUI* w +@@ -230,7 +232,7 @@ SettingsUI::SettingsUI(content::WebUI* w AddSettingsPageUIHandler(std::make_unique(profile)); AddSettingsPageUIHandler(std::make_unique()); AddSettingsPageUIHandler(std::make_unique(profile)); @@ -294,7 +294,7 @@ along with this program. If not, see . #if BUILDFLAG(IS_WIN) --- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc +++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc -@@ -893,6 +893,8 @@ void AddImportDataStrings(content::WebUI +@@ -900,6 +900,8 @@ void AddImportDataStrings(content::WebUI {"importHistory", IDS_SETTINGS_IMPORT_HISTORY_CHECKBOX}, {"importFavorites", IDS_SETTINGS_IMPORT_FAVORITES_CHECKBOX}, {"importPasswords", IDS_SETTINGS_IMPORT_PASSWORDS_CHECKBOX}, @@ -319,7 +319,7 @@ along with this program. If not, see . --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -1203,6 +1203,10 @@ static_library("ui") { +@@ -1237,6 +1237,10 @@ static_library("ui") { "webui/settings/accessibility_main_handler.h", "webui/settings/appearance_handler.cc", "webui/settings/appearance_handler.h", @@ -330,7 +330,7 @@ along with this program. If not, see . "webui/settings/browser_lifetime_handler.cc", "webui/settings/browser_lifetime_handler.h", "webui/settings/captions_handler.cc", -@@ -1355,6 +1359,13 @@ static_library("ui") { +@@ -1391,6 +1395,13 @@ static_library("ui") { ] } @@ -459,7 +459,7 @@ along with this program. If not, see . #include "components/mirroring/service/mirroring_service.h" #include "services/passage_embeddings/passage_embeddings_service.h" #include "services/proxy_resolver/proxy_resolver_factory_impl.h" // nogncheck -@@ -146,6 +148,13 @@ static_assert(BUILDFLAG(ENABLE_PRINTING) +@@ -144,6 +146,13 @@ static_assert(BUILDFLAG(ENABLE_PRINTING) namespace { @@ -473,7 +473,7 @@ along with this program. If not, see . auto RunFilePatcher(mojo::PendingReceiver receiver) { return std::make_unique(std::move(receiver)); } -@@ -465,6 +474,7 @@ void RegisterMainThreadServices(mojo::Se +@@ -456,6 +465,7 @@ void RegisterMainThreadServices(mojo::Se services.Add(ContentBookmarkParser); #if !BUILDFLAG(IS_ANDROID) @@ -583,7 +583,7 @@ along with this program. If not, see . // entire group has been collected and is ready to be written to the profile. --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd -@@ -11122,6 +11122,15 @@ Check your passwords anytime in diff --git a/patches/helium/core/add-component-l10n-support.patch b/patches/helium/core/add-component-l10n-support.patch index 51b858be..afa3043e 100644 --- a/patches/helium/core/add-component-l10n-support.patch +++ b/patches/helium/core/add-component-l10n-support.patch @@ -51,7 +51,7 @@ namespace errors = extensions::manifest_errors; namespace keys = extensions::manifest_keys; -@@ -113,6 +118,19 @@ std::optional LoadMes +@@ -114,6 +119,19 @@ std::optional LoadMes return dictionary; } @@ -71,7 +71,7 @@ // Localizes manifest value of string type for a given key. bool LocalizeManifestValue(const std::string& key, const extensions::MessageBundle& messages, -@@ -360,13 +378,16 @@ bool LocalizeManifest(const extensions:: +@@ -361,13 +379,16 @@ bool LocalizeManifest(const extensions:: bool LocalizeExtension(const base::FilePath& extension_path, base::Value::Dict* manifest, GzippedMessagesPermission gzip_permission, @@ -90,7 +90,7 @@ gzip_permission, error)); if (!message_bundle && !error->empty()) -@@ -504,6 +525,42 @@ extensions::MessageBundle* LoadMessageCa +@@ -505,6 +526,42 @@ extensions::MessageBundle* LoadMessageCa return extensions::MessageBundle::Create(catalogs, error); } diff --git a/patches/helium/core/add-component-managed-schema-support.patch b/patches/helium/core/add-component-managed-schema-support.patch index ecf9020f..2ad5dfab 100644 --- a/patches/helium/core/add-component-managed-schema-support.patch +++ b/patches/helium/core/add-component-managed-schema-support.patch @@ -1,6 +1,6 @@ --- a/chrome/browser/extensions/api/storage/managed_value_store_cache.cc +++ b/chrome/browser/extensions/api/storage/managed_value_store_cache.cc -@@ -94,9 +94,11 @@ class ManagedValueStoreCache::ExtensionT +@@ -97,9 +97,11 @@ class ManagedValueStoreCache::ExtensionT // Loads the schemas of the |extensions| and passes a ComponentMap to // Register(). @@ -13,7 +13,7 @@ raw_ptr profile_; policy::PolicyDomain policy_domain_; -@@ -175,6 +177,22 @@ bool ManagedValueStoreCache::ExtensionTr +@@ -178,6 +180,22 @@ bool ManagedValueStoreCache::ExtensionTr return extension->manifest()->FindPath(manifest_keys::kStorageManagedSchema); } @@ -36,7 +36,7 @@ // static void ManagedValueStoreCache::ExtensionTracker::LoadSchemasOnFileTaskRunner( ExtensionSet extensions, -@@ -199,14 +217,21 @@ void ManagedValueStoreCache::ExtensionTr +@@ -202,14 +220,21 @@ void ManagedValueStoreCache::ExtensionTr content::GetUIThreadTaskRunner({})->PostTask( FROM_HERE, base::BindOnce(&ExtensionTracker::Register, self, diff --git a/patches/helium/core/add-default-browser-reject-button.patch b/patches/helium/core/add-default-browser-reject-button.patch index fcfcb51b..9ae96e85 100644 --- a/patches/helium/core/add-default-browser-reject-button.patch +++ b/patches/helium/core/add-default-browser-reject-button.patch @@ -1,6 +1,6 @@ --- a/chrome/common/pref_names.h +++ b/chrome/common/pref_names.h -@@ -1416,6 +1416,11 @@ inline constexpr char kExtensionCommands +@@ -1407,6 +1407,11 @@ inline constexpr char kExtensionCommands inline constexpr char kPluginsAlwaysOpenPdfExternally[] = "plugins.always_open_pdf_externally"; @@ -25,7 +25,7 @@ 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 +@@ -211,6 +211,11 @@ void AddInfoBarsIfNecessary(BrowserWindo return; } @@ -39,9 +39,9 @@ #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; +@@ -84,6 +84,8 @@ class ConfirmInfoBarDelegate : public in + // on the infobar. + virtual int GetLinkSpacingWhenPositionedBeforeButton() const; + virtual bool OkButtonShouldAlwaysLead() const; + @@ -50,8 +50,8 @@ // 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; +@@ -71,6 +71,10 @@ int ConfirmInfoBarDelegate::GetLinkSpaci + return 0; } +bool ConfirmInfoBarDelegate::OkButtonShouldAlwaysLead() const { @@ -119,7 +119,7 @@ raw_ptr 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) { +@@ -126,7 +126,9 @@ void ConfirmInfoBar::Layout(PassKey) { } if constexpr (!views::PlatformStyle::kIsOkButtonLeading) { diff --git a/patches/helium/core/add-disable-ech-flag.patch b/patches/helium/core/add-disable-ech-flag.patch index d5ec69ab..9818d7fd 100644 --- a/patches/helium/core/add-disable-ech-flag.patch +++ b/patches/helium/core/add-disable-ech-flag.patch @@ -31,7 +31,7 @@ #include "base/containers/to_vector.h" #include "base/feature_list.h" #include "base/functional/bind.h" -@@ -249,6 +250,10 @@ network::mojom::SSLConfigPtr SSLConfigSe +@@ -263,6 +264,10 @@ network::mojom::SSLConfigPtr SSLConfigSe config->ech_enabled = ech_enabled_.GetValue(); diff --git a/patches/helium/core/add-helium-versioning.patch b/patches/helium/core/add-helium-versioning.patch index 17e2952a..fef0cf52 100644 --- a/patches/helium/core/add-helium-versioning.patch +++ b/patches/helium/core/add-helium-versioning.patch @@ -162,7 +162,7 @@ background-color: var(--background-color); --- a/chrome/app/chrome_main_delegate.cc +++ b/chrome/app/chrome_main_delegate.cc -@@ -358,15 +358,15 @@ bool HandleCreditsSwitch(const base::Com +@@ -367,15 +367,15 @@ bool HandleCreditsSwitch(const base::Com bool HandleVersionSwitches(const base::CommandLine& command_line) { #if !BUILDFLAG(IS_MAC) if (command_line.HasSwitch(switches::kProductVersion)) { diff --git a/patches/helium/core/add-middle-click-autoscroll-flag.patch b/patches/helium/core/add-middle-click-autoscroll-flag.patch index af825f39..99687e88 100644 --- a/patches/helium/core/add-middle-click-autoscroll-flag.patch +++ b/patches/helium/core/add-middle-click-autoscroll-flag.patch @@ -49,7 +49,7 @@ BASE_FEATURE(kRemoveClientHints, "RemoveClientHints", base::FEATURE_DISABLED_BY_DEFAULT); --- a/third_party/blink/renderer/core/exported/web_view_impl.cc +++ b/third_party/blink/renderer/core/exported/web_view_impl.cc -@@ -1902,9 +1902,9 @@ void WebView::ApplyWebPreferences(const +@@ -1905,9 +1905,9 @@ void WebView::ApplyWebPreferences(const prefs.default_maximum_page_scale_factor); #endif diff --git a/patches/helium/core/add-native-bangs.patch b/patches/helium/core/add-native-bangs.patch index b67f2dc9..cc8e6b55 100644 --- a/patches/helium/core/add-native-bangs.patch +++ b/patches/helium/core/add-native-bangs.patch @@ -678,7 +678,7 @@ --- a/components/search_engines/template_url.cc +++ b/components/search_engines/template_url.cc -@@ -1685,6 +1685,8 @@ bool TemplateURL::IsBetterThanConflictin +@@ -1693,6 +1693,8 @@ bool TemplateURL::IsBetterThanConflictin : base::Time(), // Prefer engines that CANNOT be auto-replaced. !engine->safe_for_autoreplace(), @@ -689,7 +689,7 @@ // Favor prepopulated engines over other auto-generated engines. --- a/components/search_engines/template_url.h +++ b/components/search_engines/template_url.h -@@ -842,6 +842,8 @@ class TemplateURL { +@@ -847,6 +847,8 @@ class TemplateURL { starter_pack_id() == template_url_starter_pack_data::kAiMode; } @@ -724,7 +724,7 @@ COMPONENT_EXPORT(HELIUM) GURL GetDummyURL(); --- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc +++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc -@@ -1959,6 +1959,9 @@ void AddPrivacyStrings(content::WebUIDat +@@ -1973,6 +1973,9 @@ void AddPrivacyStrings(content::WebUIDat {"heliumServicesToggle", IDS_SETTINGS_HELIUM_SERVICES_TOGGLE}, {"heliumServicesToggleDescription", IDS_SETTINGS_HELIUM_SERVICES_TOGGLE_DESCRIPTION}, @@ -736,7 +736,7 @@ {"heliumExtProxyToggleDescription", --- a/chrome/app/settings_strings.grdp +++ b/chrome/app/settings_strings.grdp -@@ -1937,6 +1937,12 @@ +@@ -1945,6 +1945,12 @@ When enabled, Helium will proxy extension downloads and updates to protect your privacy. When disabled, downloading and updating extensions will not work. @@ -751,7 +751,7 @@ --- a/chrome/browser/resources/settings/privacy_page/services_page.html +++ b/chrome/browser/resources/settings/privacy_page/services_page.html -@@ -49,6 +49,11 @@ +@@ -50,6 +50,11 @@ label="$i18n{heliumExtProxyToggle}" sub-label="$i18n{heliumExtProxyToggleDescription}"> @@ -765,7 +765,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 +@@ -208,6 +208,7 @@ void RegisterBrowserUserPrefs(user_prefs { registry->RegisterBooleanPref(prefs::kHeliumServicesEnabled, true); @@ -775,7 +775,7 @@ registry->RegisterBooleanPref(prefs::kHeliumDidOnboarding, false); --- a/chrome/browser/extensions/api/settings_private/prefs_util.cc +++ b/chrome/browser/extensions/api/settings_private/prefs_util.cc -@@ -356,6 +356,8 @@ const PrefsUtil::TypedPrefMap& PrefsUtil +@@ -357,6 +357,8 @@ const PrefsUtil::TypedPrefMap& PrefsUtil settings_api::PrefType::kBoolean; (*s_allowlist)[::prefs::kHeliumExtProxyEnabled] = settings_api::PrefType::kBoolean; @@ -796,9 +796,9 @@ } // namespace prefs #endif // COMPONENTS_HELIUM_SERVICES_PREF_NAMES_H_ ---- a/components/omnibox/browser/omnibox_edit_model.cc -+++ b/components/omnibox/browser/omnibox_edit_model.cc -@@ -826,6 +826,17 @@ bool OmniboxEditModel::AcceptKeyword( +--- a/chrome/browser/ui/omnibox/omnibox_edit_model.cc ++++ b/chrome/browser/ui/omnibox/omnibox_edit_model.cc +@@ -840,6 +840,17 @@ bool OmniboxEditModel::AcceptKeyword( controller_->StopAutocomplete(/*clear_result=*/false); @@ -816,7 +816,7 @@ is_keyword_hint_ = false; keyword_mode_entry_method_ = entry_method; if (original_user_text_with_keyword_.empty()) { -@@ -868,9 +879,6 @@ bool OmniboxEditModel::AcceptKeyword( +@@ -882,9 +893,6 @@ bool OmniboxEditModel::AcceptKeyword( } base::RecordAction(base::UserMetricsAction("AcceptedKeywordHint")); @@ -826,7 +826,7 @@ EmitEnteredKeywordModeHistogram(entry_method, turl, !user_text_.empty()); return true; } -@@ -1522,7 +1530,13 @@ void OmniboxEditModel::InternalSetUserTe +@@ -1543,7 +1551,13 @@ void OmniboxEditModel::InternalSetUserTe std::u16string OmniboxEditModel::MaybeStripKeyword( const std::u16string& text) const { @@ -841,9 +841,9 @@ ? AutocompleteInput::SplitReplacementStringFromInput(text, false) : text; } -@@ -2780,10 +2794,12 @@ bool OmniboxEditModel::MaybeAcceptKeywor - if (!AllowKeywordSpaceTriggering()) +@@ -2756,10 +2770,12 @@ bool OmniboxEditModel::MaybeAcceptKeywor return false; + } + std::u16string new_keyword = base::ToLowerASCII( + AutocompleteInput::SplitKeywordFromInput(new_text, false, nullptr)); diff --git a/patches/helium/core/add-update-channel-flag.patch b/patches/helium/core/add-update-channel-flag.patch index 50d2acbd..7031a3a1 100644 --- a/patches/helium/core/add-update-channel-flag.patch +++ b/patches/helium/core/add-update-channel-flag.patch @@ -90,7 +90,7 @@ "Configures the frame rate the browser is throttled to when Energy Saver is enabled. Helium flag.", --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -300,6 +300,8 @@ static_library("browser") { +@@ -264,6 +264,8 @@ static_library("browser") { "btm/btm_browser_signin_detector_factory.h", "btm/stateful_bounce_counter.cc", "btm/stateful_bounce_counter.h", diff --git a/patches/helium/core/add-updater-preference.patch b/patches/helium/core/add-updater-preference.patch index 7f9df464..9914bdc4 100644 --- a/patches/helium/core/add-updater-preference.patch +++ b/patches/helium/core/add-updater-preference.patch @@ -86,7 +86,7 @@ TODO: guard services_page.html with is_mac registrar.Add(prefs::kHeliumServicesEnabled, observer); --- a/chrome/browser/resources/settings/privacy_page/services_page.html +++ b/chrome/browser/resources/settings/privacy_page/services_page.html -@@ -61,6 +61,13 @@ +@@ -62,6 +62,13 @@ sub-label="$i18n{heliumSpellcheckToggleDescription}"> @@ -102,7 +102,7 @@ TODO: guard services_page.html with is_mac --- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc +++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc -@@ -1969,6 +1969,10 @@ void AddPrivacyStrings(content::WebUIDat +@@ -1983,6 +1983,10 @@ void AddPrivacyStrings(content::WebUIDat IDS_SETTINGS_HELIUM_SERVICES_EXT_PROXY_TOGGLE}, {"heliumExtProxyToggleDescription", IDS_SETTINGS_HELIUM_SERVICES_EXT_PROXY_TOGGLE_DESCRIPTION}, @@ -115,7 +115,7 @@ TODO: guard services_page.html with is_mac IDS_SETTINGS_HELIUM_SERVICES_OVERRIDE_DESCRIPTION}, --- a/chrome/browser/extensions/api/settings_private/prefs_util.cc +++ b/chrome/browser/extensions/api/settings_private/prefs_util.cc -@@ -366,6 +366,8 @@ const PrefsUtil::TypedPrefMap& PrefsUtil +@@ -367,6 +367,8 @@ const PrefsUtil::TypedPrefMap& PrefsUtil settings_api::PrefType::kBoolean; (*s_allowlist)[::prefs::kHeliumSpellcheckEnabled] = settings_api::PrefType::kBoolean; @@ -126,7 +126,7 @@ TODO: guard services_page.html with is_mac (*s_allowlist)[::prefs::kHeliumServicesConsented] = --- a/chrome/browser/ui/browser_ui_prefs.cc +++ b/chrome/browser/ui/browser_ui_prefs.cc -@@ -215,6 +215,7 @@ void RegisterBrowserUserPrefs(user_prefs +@@ -219,6 +219,7 @@ void RegisterBrowserUserPrefs(user_prefs registry->RegisterStringPref(prefs::kHeliumServicesOrigin, ""); registry->RegisterBooleanPref(prefs::kHeliumDidOnboarding, false); registry->RegisterBooleanPref(prefs::kHeliumServicesConsented, false); @@ -136,7 +136,7 @@ TODO: guard services_page.html with is_mac registry->RegisterBooleanPref( --- a/chrome/app/settings_strings.grdp +++ b/chrome/app/settings_strings.grdp -@@ -1949,6 +1949,12 @@ +@@ -1957,6 +1957,12 @@ Helium will fetch dictionary files used for spell checking when requested. When disabled, spell checking will not work. diff --git a/patches/helium/core/clean-context-menu.patch b/patches/helium/core/clean-context-menu.patch index a4b402cf..7a5bb5b7 100644 --- a/patches/helium/core/clean-context-menu.patch +++ b/patches/helium/core/clean-context-menu.patch @@ -1,6 +1,6 @@ --- a/chrome/browser/renderer_context_menu/render_view_context_menu.cc +++ b/chrome/browser/renderer_context_menu/render_view_context_menu.cc -@@ -1106,11 +1106,6 @@ void RenderViewContextMenu::InitMenu() { +@@ -1127,11 +1127,6 @@ void RenderViewContextMenu::InitMenu() { AppendSpellingAndSearchSuggestionItems(); } @@ -12,7 +12,7 @@ if (editable) { AppendOtherEditableItems(); } -@@ -2166,7 +2161,6 @@ void RenderViewContextMenu::AppendPageIt +@@ -2214,7 +2209,6 @@ void RenderViewContextMenu::AppendPageIt IDS_CONTENT_CONTEXT_SAVEPAGEAS); menu_model_.AddItemWithStringId(IDC_PRINT, IDS_CONTENT_CONTEXT_PRINT); AppendLiveCaptionItem(); @@ -20,9 +20,9 @@ if (IsRegionSearchEnabled()) { AppendRegionSearchItem(); } -@@ -2295,8 +2289,7 @@ void RenderViewContextMenu::AppendMediaR +@@ -2343,8 +2337,7 @@ void RenderViewContextMenu::AppendMediaR - void RenderViewContextMenu::AppendReadingModeItem() { + void RenderViewContextMenu::AppendReadAnythingItem() { // Show Read Anything option if it's not already open in the side panel. - if (GetBrowser() && GetBrowser()->is_type_normal() && - !IsReadAnythingEntryShowing(GetBrowser())) { @@ -30,7 +30,7 @@ menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_OPEN_IN_READING_MODE, IDS_CONTENT_CONTEXT_READING_MODE); } -@@ -3567,10 +3560,12 @@ void RenderViewContextMenu::ExecuteComma +@@ -3620,10 +3613,12 @@ void RenderViewContextMenu::ExecuteComma } void RenderViewContextMenu::AddSpellCheckServiceItem(bool is_checked) { @@ -43,7 +43,7 @@ if (is_checked) { menu_model_.AddCheckItemWithStringId( IDC_CONTENT_CONTEXT_ACCESSIBILITY_LABELS_TOGGLE, -@@ -3947,6 +3942,8 @@ bool RenderViewContextMenu::IsVideoFrame +@@ -4000,6 +3995,8 @@ bool RenderViewContextMenu::IsVideoFrame bool RenderViewContextMenu::AppendQRCodeGeneratorItem(bool for_image, bool draw_icon, bool add_separator) { @@ -54,7 +54,7 @@ } --- a/chrome/browser/ui/browser_tab_strip_model_delegate.cc +++ b/chrome/browser/ui/browser_tab_strip_model_delegate.cc -@@ -308,6 +308,7 @@ void BrowserTabStripModelDelegate::AddTo +@@ -310,6 +310,7 @@ void BrowserTabStripModelDelegate::AddTo } bool BrowserTabStripModelDelegate::SupportsReadLater() { diff --git a/patches/helium/core/disable-ad-topics-and-etc.patch b/patches/helium/core/disable-ad-topics-and-etc.patch index 2260f68d..94a961e9 100644 --- a/patches/helium/core/disable-ad-topics-and-etc.patch +++ b/patches/helium/core/disable-ad-topics-and-etc.patch @@ -1,20 +1,20 @@ --- a/services/network/public/cpp/features.cc +++ b/services/network/public/cpp/features.cc -@@ -490,7 +490,7 @@ BASE_FEATURE(kUpdateRequestForCorsRedire +@@ -421,7 +421,7 @@ BASE_FEATURE(kUpdateRequestForCorsRedire + + // https://github.com/patcg-individual-drafts/topics // Kill switch for the Topics API. - BASE_FEATURE(kBrowsingTopics, - "BrowsingTopics", -- base::FEATURE_ENABLED_BY_DEFAULT); -+ base::FEATURE_DISABLED_BY_DEFAULT); +-BASE_FEATURE(kBrowsingTopics, base::FEATURE_ENABLED_BY_DEFAULT); ++BASE_FEATURE(kBrowsingTopics, base::FEATURE_DISABLED_BY_DEFAULT); // Enable the shared storage API. Note that enabling this feature does not // automatically expose this API to the web, it only allows the element to be -@@ -574,7 +574,7 @@ BASE_FEATURE(kSharedStorageTransactional +@@ -500,7 +500,7 @@ BASE_FEATURE(kSharedStorageTransactional + + // Kill switch for the Interest Group API, i.e. if disabled, the // API exposure will be disabled regardless of the OT config. - BASE_FEATURE(kInterestGroupStorage, - "InterestGroupStorage", -- base::FEATURE_ENABLED_BY_DEFAULT); -+ base::FEATURE_DISABLED_BY_DEFAULT); +-BASE_FEATURE(kInterestGroupStorage, base::FEATURE_ENABLED_BY_DEFAULT); ++BASE_FEATURE(kInterestGroupStorage, base::FEATURE_DISABLED_BY_DEFAULT); // TODO(crbug.com/40176812): Adjust these limits in response to usage. BASE_FEATURE_PARAM(int, kInterestGroupStorageMaxOwners, diff --git a/patches/helium/core/disable-fedcm-bubble.patch b/patches/helium/core/disable-fedcm-bubble.patch index 772c1e8b..ddadf80f 100644 --- a/patches/helium/core/disable-fedcm-bubble.patch +++ b/patches/helium/core/disable-fedcm-bubble.patch @@ -1,6 +1,6 @@ --- a/chrome/browser/ui/views/webid/fedcm_account_selection_view_desktop.cc +++ b/chrome/browser/ui/views/webid/fedcm_account_selection_view_desktop.cc -@@ -1279,6 +1279,9 @@ gfx::Rect FedCmAccountSelectionView::Get +@@ -1272,6 +1272,9 @@ gfx::Rect FedCmAccountSelectionView::Get void FedCmAccountSelectionView::ShouldShowDialog(bool& should_show) { if (dialog_type_ == DialogType::BUBBLE) { diff --git a/patches/helium/core/disable-live-caption-completely.patch b/patches/helium/core/disable-live-caption-completely.patch index a8f53b86..229e9239 100644 --- a/patches/helium/core/disable-live-caption-completely.patch +++ b/patches/helium/core/disable-live-caption-completely.patch @@ -1,6 +1,6 @@ --- a/components/live_caption/caption_util.cc +++ b/components/live_caption/caption_util.cc -@@ -127,6 +127,7 @@ std::optional GetCapti +@@ -125,6 +125,7 @@ std::optional GetCapti } bool IsLiveCaptionFeatureSupported() { diff --git a/patches/helium/core/disable-touch-ui.patch b/patches/helium/core/disable-touch-ui.patch index 4ad55c5e..d0b1c393 100644 --- a/patches/helium/core/disable-touch-ui.patch +++ b/patches/helium/core/disable-touch-ui.patch @@ -1,6 +1,6 @@ --- a/ui/base/pointer/touch_ui_controller.cc +++ b/ui/base/pointer/touch_ui_controller.cc -@@ -175,13 +175,7 @@ void TouchUiController::TouchUiScoperFor +@@ -177,13 +177,7 @@ void TouchUiController::TouchUiScoperFor // static TouchUiController* TouchUiController::Get() { static base::NoDestructor instance([] { diff --git a/patches/helium/core/disable-update-toast.patch b/patches/helium/core/disable-update-toast.patch index c78767cc..b94f7c34 100644 --- a/patches/helium/core/disable-update-toast.patch +++ b/patches/helium/core/disable-update-toast.patch @@ -1,11 +1,11 @@ --- a/chrome/browser/ui/ui_features.cc +++ b/chrome/browser/ui/ui_features.cc -@@ -724,7 +724,7 @@ bool HasTabSearchToolbarButton() { +@@ -627,7 +627,7 @@ bool HasTabSearchToolbarButton() { + return is_tab_search_moving; + } - BASE_FEATURE(kNonMilestoneUpdateToast, - "NonMilestoneUpdateToast", -- base::FEATURE_ENABLED_BY_DEFAULT); -+ base::FEATURE_DISABLED_BY_DEFAULT); +-BASE_FEATURE(kNonMilestoneUpdateToast, base::FEATURE_ENABLED_BY_DEFAULT); ++BASE_FEATURE(kNonMilestoneUpdateToast, base::FEATURE_DISABLED_BY_DEFAULT); + + BASE_FEATURE(kBookmarkTabGroupConversion, base::FEATURE_DISABLED_BY_DEFAULT); - BASE_FEATURE(kBookmarkTabGroupConversion, - "BookmarkTabGroupConversion", diff --git a/patches/helium/core/enable-parallel-downloading.patch b/patches/helium/core/enable-parallel-downloading.patch index 23cc7c18..484c773c 100644 --- a/patches/helium/core/enable-parallel-downloading.patch +++ b/patches/helium/core/enable-parallel-downloading.patch @@ -1,14 +1,17 @@ --- a/components/download/public/common/download_features.cc +++ b/components/download/public/common/download_features.cc -@@ -11,11 +11,7 @@ namespace features { +@@ -9,13 +9,7 @@ + namespace download { + namespace features { - BASE_FEATURE(kParallelDownloading, - "ParallelDownloading", +-BASE_FEATURE(kParallelDownloading, -#if BUILDFLAG(IS_ANDROID) - base::FEATURE_ENABLED_BY_DEFAULT +- base::FEATURE_ENABLED_BY_DEFAULT -#else - base::FEATURE_DISABLED_BY_DEFAULT -#endif - ); +-); ++BASE_FEATURE(kParallelDownloading, base::FEATURE_ENABLED_BY_DEFAULT); #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) + BASE_FEATURE(kBackoffInDownloading, base::FEATURE_DISABLED_BY_DEFAULT); diff --git a/patches/helium/core/enable-tab-hover-cards.patch b/patches/helium/core/enable-tab-hover-cards.patch index 4a2a6a14..bbe1dff4 100644 --- a/patches/helium/core/enable-tab-hover-cards.patch +++ b/patches/helium/core/enable-tab-hover-cards.patch @@ -1,16 +1,17 @@ --- a/chrome/browser/ui/ui_features.cc +++ b/chrome/browser/ui/ui_features.cc -@@ -317,12 +317,7 @@ BASE_FEATURE(kTabGroupMenuMoreEntryPoint +@@ -285,13 +285,7 @@ bool IsTabGroupMenuMoreEntryPointsEnable + + // Enables preview images in tab-hover cards. // https://crbug.com/928954 - BASE_FEATURE(kTabHoverCardImages, - "TabHoverCardImages", +-BASE_FEATURE(kTabHoverCardImages, -#if BUILDFLAG(IS_MAC) - base::FEATURE_DISABLED_BY_DEFAULT -#else - base::FEATURE_ENABLED_BY_DEFAULT -#endif -); -+ base::FEATURE_ENABLED_BY_DEFAULT); ++BASE_FEATURE(kTabHoverCardImages, base::FEATURE_ENABLED_BY_DEFAULT); + + BASE_FEATURE(kTabGroupHoverCards, base::FEATURE_DISABLED_BY_DEFAULT); - BASE_FEATURE(kTabModalUsesDesktopWidget, - "TabModalUsesDesktopWidget", diff --git a/patches/helium/core/enable-tab-search-toolbar-button.patch b/patches/helium/core/enable-tab-search-toolbar-button.patch index e110850b..491877fb 100644 --- a/patches/helium/core/enable-tab-search-toolbar-button.patch +++ b/patches/helium/core/enable-tab-search-toolbar-button.patch @@ -23,16 +23,16 @@ if (tab_search_action.has_value()) { --- a/chrome/browser/ui/ui_features.cc +++ b/chrome/browser/ui/ui_features.cc -@@ -671,7 +671,7 @@ BASE_FEATURE(kTabStripBrowserApi, +@@ -577,7 +577,7 @@ BASE_FEATURE(kByDateHistoryInSidePanel, - BASE_FEATURE(kTabstripComboButton, - "TabstripComboButton", -- base::FEATURE_DISABLED_BY_DEFAULT); -+ base::FEATURE_ENABLED_BY_DEFAULT); + BASE_FEATURE(kTabStripBrowserApi, base::FEATURE_DISABLED_BY_DEFAULT); + +-BASE_FEATURE(kTabstripComboButton, base::FEATURE_DISABLED_BY_DEFAULT); ++BASE_FEATURE(kTabstripComboButton, base::FEATURE_ENABLED_BY_DEFAULT); // This serves as a "kill-switch" for migrating the Tab Search feature to be a // toolbar button for non-ChromeOS users in the US. -@@ -707,6 +707,8 @@ bool HasTabSearchToolbarButton() { +@@ -612,6 +612,8 @@ bool HasTabSearchToolbarButton() { return false; } diff --git a/patches/helium/core/exclude-irrelevant-flags.patch b/patches/helium/core/exclude-irrelevant-flags.patch index 205d4715..e7ce31d4 100644 --- a/patches/helium/core/exclude-irrelevant-flags.patch +++ b/patches/helium/core/exclude-irrelevant-flags.patch @@ -1,6 +1,6 @@ --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -13311,11 +13311,278 @@ const FeatureEntry kFeatureEntries[] = { +@@ -13399,11 +13399,278 @@ const FeatureEntry kFeatureEntries[] = { // AboutFlagsHistogramTest unit test to verify this process). }; @@ -280,7 +280,7 @@ FlagsStateSingleton(const FlagsStateSingleton&) = delete; FlagsStateSingleton& operator=(const FlagsStateSingleton&) = delete; ~FlagsStateSingleton() override = default; -@@ -13334,7 +13601,7 @@ class FlagsStateSingleton : public flags +@@ -13422,7 +13689,7 @@ class FlagsStateSingleton : public flags void RestoreDefaultState() { flags_state_ = @@ -289,7 +289,7 @@ } private: -@@ -13659,7 +13926,7 @@ base::span GetFeatur +@@ -13747,7 +14014,7 @@ base::span GetFeatur !entries_for_testing->empty()) { return *entries_for_testing; } diff --git a/patches/helium/core/flags-setup.patch b/patches/helium/core/flags-setup.patch index 09126def..f2bf4ba2 100644 --- a/patches/helium/core/flags-setup.patch +++ b/patches/helium/core/flags-setup.patch @@ -1,6 +1,6 @@ --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -4919,11 +4919,13 @@ const FeatureEntry::FeatureVariation kNt +@@ -4990,11 +4990,13 @@ const FeatureEntry::FeatureVariation kSe // calculate and verify checksum. // // When adding a new choice, add it to the end of the list. diff --git a/patches/helium/core/hide-avatar-via-toolbar-prefs.patch b/patches/helium/core/hide-avatar-via-toolbar-prefs.patch index 98035595..2b054aee 100644 --- a/patches/helium/core/hide-avatar-via-toolbar-prefs.patch +++ b/patches/helium/core/hide-avatar-via-toolbar-prefs.patch @@ -1,6 +1,6 @@ --- a/chrome/browser/extensions/api/settings_private/prefs_util.cc +++ b/chrome/browser/extensions/api/settings_private/prefs_util.cc -@@ -229,6 +229,10 @@ const PrefsUtil::TypedPrefMap& PrefsUtil +@@ -230,6 +230,10 @@ const PrefsUtil::TypedPrefMap& PrefsUtil (*s_allowlist)[::prefs::kSplitViewDragAndDropEnabled] = settings_api::PrefType::kBoolean; @@ -13,7 +13,7 @@ (*s_allowlist)[::prefs::kPinnedActions] = settings_api::PrefType::kList; --- a/chrome/browser/ui/actions/chrome_action_id.h +++ b/chrome/browser/ui/actions/chrome_action_id.h -@@ -554,6 +554,7 @@ +@@ -558,6 +558,7 @@ #define TOOLBAR_PINNABLE_ACTION_IDS \ E(kActionHome, IDC_HOME) \ E(kActionForward, IDC_FORWARD) \ @@ -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 -@@ -119,6 +119,9 @@ void RegisterBrowserUserPrefs(user_prefs +@@ -123,6 +123,9 @@ void RegisterBrowserUserPrefs(user_prefs registry->RegisterBooleanPref(prefs::kPinSplitTabButton, false, pref_registration_flags); @@ -211,7 +211,7 @@ PrefService* prefs() const; --- a/chrome/common/pref_names.h +++ b/chrome/common/pref_names.h -@@ -1341,6 +1341,10 @@ inline constexpr char kSplitViewDragAndD +@@ -1332,6 +1332,10 @@ inline constexpr char kSplitViewDragAndD inline constexpr char kSplitViewDragAndDropNudgeUsedCount[] = "browser.split_view_drag_and_drop_nudge_used_count"; diff --git a/patches/helium/core/hide-extensions-via-toolbar-prefs.patch b/patches/helium/core/hide-extensions-via-toolbar-prefs.patch index 295c7c00..5125f3be 100644 --- a/patches/helium/core/hide-extensions-via-toolbar-prefs.patch +++ b/patches/helium/core/hide-extensions-via-toolbar-prefs.patch @@ -1,6 +1,6 @@ --- a/chrome/browser/extensions/api/settings_private/prefs_util.cc +++ b/chrome/browser/extensions/api/settings_private/prefs_util.cc -@@ -232,6 +232,8 @@ const PrefsUtil::TypedPrefMap& PrefsUtil +@@ -233,6 +233,8 @@ const PrefsUtil::TypedPrefMap& PrefsUtil // Custom toolbar button settings. (*s_allowlist)[::prefs::kShowAvatarButton] = settings_api::PrefType::kBoolean; @@ -11,7 +11,7 @@ (*s_allowlist)[::prefs::kCurrentThemeID] = settings_api::PrefType::kString; --- a/chrome/browser/ui/actions/chrome_action_id.h +++ b/chrome/browser/ui/actions/chrome_action_id.h -@@ -555,6 +555,7 @@ +@@ -559,6 +559,7 @@ E(kActionHome, IDC_HOME) \ E(kActionForward, IDC_FORWARD) \ E(kActionAvatar, IDC_SHOW_AVATAR_MENU) \ @@ -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 -@@ -121,6 +121,8 @@ void RegisterBrowserUserPrefs(user_prefs +@@ -125,6 +125,8 @@ void RegisterBrowserUserPrefs(user_prefs registry->RegisterBooleanPref( prefs::kShowAvatarButton, true); @@ -56,7 +56,7 @@ void PinnedToolbarActionsModel::MaybeMigrateExistingPinnedStates() { --- a/chrome/browser/ui/views/extensions/extensions_toolbar_container.cc +++ b/chrome/browser/ui/views/extensions/extensions_toolbar_container.cc -@@ -553,7 +553,9 @@ void ExtensionsToolbarContainer::AnchorA +@@ -552,7 +552,9 @@ void ExtensionsToolbarContainer::AnchorA // Fix the position of widgets. Without this fix, extension-installed-bubble // and extension-uninstall-dialog may be out of the window border on Linux. @@ -67,7 +67,7 @@ { views::View* anchor_view = BrowserView::GetBrowserViewForBrowser(browser_) ->toolbar_button_provider()->GetAppMenuButton(); -@@ -977,7 +979,9 @@ void ExtensionsToolbarContainer::UpdateC +@@ -962,7 +964,9 @@ void ExtensionsToolbarContainer::UpdateC } bool ExtensionsToolbarContainer::ShouldContainerBeVisible() const { @@ -221,7 +221,7 @@ PrefService* prefs() const; --- a/chrome/common/pref_names.h +++ b/chrome/common/pref_names.h -@@ -1345,6 +1345,10 @@ inline constexpr char kSplitViewDragAndD +@@ -1336,6 +1336,10 @@ inline constexpr char kSplitViewDragAndD // toolbar. inline constexpr char kShowAvatarButton[] = "helium.browser.show_avatar_button"; diff --git a/patches/helium/core/increase-incognito-storage-quota.patch b/patches/helium/core/increase-incognito-storage-quota.patch index bcd2ec20..73230585 100644 --- a/patches/helium/core/increase-incognito-storage-quota.patch +++ b/patches/helium/core/increase-incognito-storage-quota.patch @@ -11,7 +11,7 @@ #endif // CHROME_BROWSER_UNGOOGLED_FLAG_ENTRIES_H_ --- a/storage/browser/quota/quota_features.cc +++ b/storage/browser/quota/quota_features.cc -@@ -43,7 +43,7 @@ BASE_FEATURE(kStaticStorageQuota, +@@ -39,7 +39,7 @@ BASE_FEATURE(kStaticStorageQuota, base:: BASE_FEATURE(kIncreaseIncognitoStorageQuota, "IncreaseIncognitoStorageQuota", diff --git a/patches/helium/core/infinite-tab-freezing.patch b/patches/helium/core/infinite-tab-freezing.patch index 8961fb6a..403c3288 100644 --- a/patches/helium/core/infinite-tab-freezing.patch +++ b/patches/helium/core/infinite-tab-freezing.patch @@ -1,11 +1,11 @@ --- a/components/performance_manager/features.cc +++ b/components/performance_manager/features.cc -@@ -248,7 +248,7 @@ BASE_FEATURE(kRecordFreezingEligibilityU +@@ -222,7 +222,7 @@ BASE_FEATURE(kFreezingFollowsDiscardOptO - BASE_FEATURE(kInfiniteTabsFreezing, - "InfiniteTabsFreezing", -- base::FEATURE_DISABLED_BY_DEFAULT); -+ base::FEATURE_ENABLED_BY_DEFAULT); + BASE_FEATURE(kRecordFreezingEligibilityUKM, base::FEATURE_ENABLED_BY_DEFAULT); + +-BASE_FEATURE(kInfiniteTabsFreezing, base::FEATURE_DISABLED_BY_DEFAULT); ++BASE_FEATURE(kInfiniteTabsFreezing, base::FEATURE_ENABLED_BY_DEFAULT); BASE_FEATURE_PARAM(int, kInfiniteTabsFreezing_NumProtectedTabs, diff --git a/patches/helium/core/keyboard-shortcuts.patch b/patches/helium/core/keyboard-shortcuts.patch index d1ebf773..d16feadc 100644 --- a/patches/helium/core/keyboard-shortcuts.patch +++ b/patches/helium/core/keyboard-shortcuts.patch @@ -15,7 +15,7 @@ #define IDC_VISIT_DESKTOP_OF_LRU_USER_5 34083 --- a/chrome/common/pref_names.h +++ b/chrome/common/pref_names.h -@@ -1509,6 +1509,11 @@ inline constexpr char kPageColorsBlockLi +@@ -1493,6 +1493,11 @@ inline constexpr char kPageColorsBlockLi inline constexpr char kPrefersDefaultScrollbarStyles[] = "settings.a11y.prefers_default_scrollbar_styles"; @@ -29,7 +29,7 @@ // asking the user to set up automatic updates when Keystone promotion is --- a/chrome/browser/ui/browser_ui_prefs.cc +++ b/chrome/browser/ui/browser_ui_prefs.cc -@@ -142,6 +142,8 @@ void RegisterBrowserUserPrefs(user_prefs +@@ -146,6 +146,8 @@ void RegisterBrowserUserPrefs(user_prefs registry->RegisterListPref(prefs::kWebRtcLocalIpsAllowedUrls); registry->RegisterBooleanPref(prefs::kWebRtcTextLogCollectionAllowed, false); @@ -40,7 +40,7 @@ registry->RegisterBooleanPref(policy::policy_prefs::kHideWebStoreIcon, false); --- a/chrome/browser/ui/browser_command_controller.cc +++ b/chrome/browser/ui/browser_command_controller.cc -@@ -387,7 +387,9 @@ bool BrowserCommandController::IsReserve +@@ -388,7 +388,9 @@ bool BrowserCommandController::IsReserve command_id == IDC_NEW_INCOGNITO_WINDOW || command_id == IDC_NEW_TAB || command_id == IDC_NEW_WINDOW || command_id == IDC_RESTORE_TAB || command_id == IDC_SELECT_NEXT_TAB || @@ -51,7 +51,7 @@ } void BrowserCommandController::TabStateChanged() { -@@ -1143,6 +1145,14 @@ bool BrowserCommandController::ExecuteCo +@@ -1160,6 +1162,14 @@ bool BrowserCommandController::ExecuteCo case IDC_DUPLICATE_TARGET_TAB: DuplicateKeyboardFocusedTab(browser_); break; @@ -66,7 +66,7 @@ // Hosted App commands case IDC_COPY_URL: CopyURL(browser_, browser_->tab_strip_model()->GetActiveWebContents()); -@@ -1888,6 +1898,12 @@ void BrowserCommandController::UpdateCom +@@ -1912,6 +1922,12 @@ void BrowserCommandController::UpdateCom bool dev_tools_enabled = DevToolsWindow::AllowDevToolsFor( profile(), browser_->tab_strip_model()->GetActiveWebContents()); @@ -81,7 +81,7 @@ dev_tools_enabled); --- a/chrome/browser/ui/accelerator_table.cc +++ b/chrome/browser/ui/accelerator_table.cc -@@ -268,8 +268,10 @@ const AcceleratorMapping kDevToolsAccele +@@ -269,8 +269,10 @@ const AcceleratorMapping kDevToolsAccele {ui::VKEY_I, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, IDC_DEV_TOOLS}, {ui::VKEY_J, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, IDC_DEV_TOOLS_CONSOLE}, @@ -142,7 +142,7 @@ "G", IDC_FIND_NEXT, VIRTKEY, CONTROL --- a/chrome/browser/extensions/api/settings_private/prefs_util.cc +++ b/chrome/browser/extensions/api/settings_private/prefs_util.cc -@@ -581,6 +581,8 @@ const PrefsUtil::TypedPrefMap& PrefsUtil +@@ -584,6 +584,8 @@ const PrefsUtil::TypedPrefMap& PrefsUtil (*s_allowlist)[::prefs::kCaretBrowsingEnabled] = settings_api::PrefType::kBoolean; diff --git a/patches/helium/core/mitigate-fingerprinting-audio-context.patch b/patches/helium/core/mitigate-fingerprinting-audio-context.patch index d99cdfb7..cad67e8f 100644 --- a/patches/helium/core/mitigate-fingerprinting-audio-context.patch +++ b/patches/helium/core/mitigate-fingerprinting-audio-context.patch @@ -237,7 +237,7 @@ https://github.com/uazo/cromite/blob/b2824377/build/patches/AudioBuffer-Analyser --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -585,7 +585,6 @@ +@@ -599,7 +599,6 @@ // AudioContext.playoutStats interface. // https://chromestatus.com/feature/5172818344148992 name: "AudioContextPlayoutStats", diff --git a/patches/helium/core/mitigate-fingerprinting-canvas.patch b/patches/helium/core/mitigate-fingerprinting-canvas.patch index 37450625..e5d186c5 100644 --- a/patches/helium/core/mitigate-fingerprinting-canvas.patch +++ b/patches/helium/core/mitigate-fingerprinting-canvas.patch @@ -21,12 +21,12 @@ #endif /* CHROME_BROWSER_HELIUM_FLAG_ENTRIES_H_ */ --- a/components/fingerprinting_protection_filter/interventions/common/interventions_features.cc +++ b/components/fingerprinting_protection_filter/interventions/common/interventions_features.cc -@@ -12,13 +12,13 @@ namespace fingerprinting_protection_inte +@@ -10,13 +10,13 @@ namespace fingerprinting_protection_inte + + // Whether the canvas interventions should be enabled that add noise to the // readback values. - BASE_FEATURE(kCanvasNoise, - "CanvasNoise", -- base::FeatureState::FEATURE_DISABLED_BY_DEFAULT); -+ base::FeatureState::FEATURE_ENABLED_BY_DEFAULT); +-BASE_FEATURE(kCanvasNoise, base::FeatureState::FEATURE_DISABLED_BY_DEFAULT); ++BASE_FEATURE(kCanvasNoise, base::FeatureState::FEATURE_ENABLED_BY_DEFAULT); BASE_FEATURE_PARAM(bool, kCanvasNoiseInRegularMode, @@ -35,13 +35,13 @@ - false); + true); - bool IsCanvasInterventionsEnabledForIncognitoState(bool is_incognito) { - if (is_incognito) { + // [Experimental] Whether readback of canvases should be blocked. + BASE_FEATURE(kBlockCanvasReadback, --- a/third_party/blink/renderer/core/canvas_interventions/canvas_interventions_helper.cc +++ b/third_party/blink/renderer/core/canvas_interventions/canvas_interventions_helper.cc -@@ -132,17 +132,6 @@ bool CanvasInterventionsHelper::MaybeNoi - static_cast(high_entropy_canvas_op_types), - canvas_op_exclusive_max); +@@ -157,17 +157,6 @@ bool CanvasInterventionsHelper::MaybeNoi + GetContextTypeForMetrics(execution_context)}), + static_cast(high_entropy_canvas_op_types), canvas_op_exclusive_max); - AuditsIssue::ReportUserReidentificationCanvasNoisedIssue( - CaptureSourceLocation(execution_context), execution_context); @@ -57,8 +57,8 @@ base::TimeDelta elapsed_time = base::TimeTicks::Now() - start_time; UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(kNoiseDurationMetricName, -@@ -150,9 +139,6 @@ bool CanvasInterventionsHelper::MaybeNoi - base::Milliseconds(50), 50); +@@ -175,9 +164,6 @@ bool CanvasInterventionsHelper::MaybeNoi + base::Milliseconds(100), 100); UMA_HISTOGRAM_COUNTS_1M(kCanvasSizeMetricName, pixmap_to_noise.width() * pixmap_to_noise.height()); - UseCounter::Count(execution_context, WebFeature::kCanvasReadbackNoise); diff --git a/patches/helium/core/onboarding-page.patch b/patches/helium/core/onboarding-page.patch index 655be749..b903c5aa 100644 --- a/patches/helium/core/onboarding-page.patch +++ b/patches/helium/core/onboarding-page.patch @@ -23,7 +23,7 @@ #endif // COMPONENTS_HELIUM_SERVICES_PREF_NAMES_H_ --- a/chrome/browser/ui/browser_ui_prefs.cc +++ b/chrome/browser/ui/browser_ui_prefs.cc -@@ -201,6 +201,8 @@ void RegisterBrowserUserPrefs(user_prefs +@@ -205,6 +205,8 @@ void RegisterBrowserUserPrefs(user_prefs { registry->RegisterBooleanPref(prefs::kHeliumServicesEnabled, true); registry->RegisterStringPref(prefs::kHeliumServicesOrigin, ""); @@ -34,7 +34,7 @@ registry->RegisterBooleanPref( --- a/chrome/browser/ui/startup/startup_browser_creator_impl.cc +++ b/chrome/browser/ui/startup/startup_browser_creator_impl.cc -@@ -57,6 +57,7 @@ +@@ -58,6 +58,7 @@ #include "chrome/common/chrome_version.h" #include "chrome/common/pref_names.h" #include "chrome/common/webui_url_constants.h" @@ -42,7 +42,7 @@ #include "components/custom_handlers/protocol_handler_registry.h" #include "components/prefs/pref_service.h" #include "components/privacy_sandbox/privacy_sandbox_features.h" -@@ -480,6 +481,15 @@ StartupBrowserCreatorImpl::DetermineStar +@@ -488,6 +489,15 @@ StartupBrowserCreatorImpl::DetermineStar LaunchResult launch_result = tabs.empty() ? LaunchResult::kNormally : LaunchResult::kWithGivenUrls; @@ -60,7 +60,7 @@ whats_new::LogStartupType(whats_new::StartupType::kIneligible); --- a/tools/gritsettings/resource_ids.spec +++ b/tools/gritsettings/resource_ids.spec -@@ -1206,6 +1206,10 @@ +@@ -1216,6 +1216,10 @@ "META": {"sizes": {"includes": [30],}}, "includes": [7480], }, @@ -73,7 +73,7 @@ # START ios/ section. --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -8694,6 +8694,7 @@ static_library("browser_generated_files" +@@ -8621,6 +8621,7 @@ static_library("browser_generated_files" "//chrome/browser/v8_compile_hints/proto", "//chrome/browser/web_applications/mojom:mojom_web_apps_enum", "//chrome/common/request_header_integrity:buildflags", @@ -83,7 +83,7 @@ "//components/webui/chrome_urls/mojom:mojo_bindings", --- a/chrome/chrome_paks.gni +++ b/chrome/chrome_paks.gni -@@ -463,11 +463,13 @@ template("chrome_extra_paks") { +@@ -468,11 +468,13 @@ template("chrome_extra_paks") { if (!is_android && !is_chromeos) { sources += [ "$root_gen_dir/chrome/intro_resources.pak", @@ -109,7 +109,7 @@ #if !BUILDFLAG(IS_ANDROID) --- a/chrome/common/webui_url_constants.h +++ b/chrome/common/webui_url_constants.h -@@ -595,6 +595,8 @@ inline constexpr char kChromeUIProfilePi +@@ -597,6 +597,8 @@ inline constexpr char kChromeUIProfilePi inline constexpr char kChromeUIProfilePickerStartupQuery[] = "startup"; inline constexpr char kChromeUIProfilePickerGlicQuery[] = "glic"; inline constexpr char kChromeUIProfilePickerUrl[] = "chrome://profile-picker/"; @@ -120,7 +120,7 @@ "chrome://history-sync-optin/"; --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -162,6 +162,10 @@ static_library("ui") { +@@ -164,6 +164,10 @@ static_library("ui") { "webui/net_internals/net_internals_ui.h", "webui/ntp_tiles_internals_ui.cc", "webui/ntp_tiles_internals_ui.h", @@ -141,7 +141,7 @@ #include "chrome/browser/ui/webui/omnibox/omnibox_ui.h" #include "chrome/browser/ui/webui/policy/policy_ui.h" #include "chrome/browser/ui/webui/predictors/predictors_ui.h" -@@ -415,6 +416,7 @@ void RegisterChromeWebUIConfigs() { +@@ -417,6 +418,7 @@ void RegisterChromeWebUIConfigs() { #if !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_ANDROID) map.AddWebUIConfig(std::make_unique()); map.AddWebUIConfig(std::make_unique()); @@ -496,9 +496,9 @@ registrar.Add(prefs::kHeliumServicesOrigin, observer); registrar.Add(pref_name, observer); } ---- a/chrome/browser/ui/browser_navigator.cc -+++ b/chrome/browser/ui/browser_navigator.cc -@@ -579,7 +579,8 @@ bool IsHostAllowedInIncognito(const GURL +--- a/chrome/browser/ui/incognito_allowed_url.cc ++++ b/chrome/browser/ui/incognito_allowed_url.cc +@@ -48,7 +48,8 @@ bool IsHostAllowedInIncognito(const GURL host != chrome::kChromeUIHelpHost && host != chrome::kChromeUIHistoryHost && host != chrome::kChromeUIExtensionsHost && @@ -510,7 +510,7 @@ } // namespace --- a/chrome/browser/ui/webui/settings/search_engines_handler.cc +++ b/chrome/browser/ui/webui/settings/search_engines_handler.cc -@@ -344,7 +344,9 @@ void SearchEnginesHandler::HandleSetDefa +@@ -349,7 +349,9 @@ void SearchEnginesHandler::HandleSetDefa CHECK(choice_made_location == search_engines::ChoiceMadeLocation::kSearchSettings || choice_made_location == @@ -523,7 +523,7 @@ --- a/chrome/browser/favicon/favicon_utils.cc +++ b/chrome/browser/favicon/favicon_utils.cc -@@ -188,6 +188,7 @@ bool ShouldThemifyFavicon(GURL url) { +@@ -189,6 +189,7 @@ bool ShouldThemifyFavicon(GURL url) { url.host_piece() != chrome::kChromeUIVersionHost && url.host_piece() != chrome::kChromeUINetExportHost && url.host_piece() != chrome::kChromeUINewTabHost && @@ -533,7 +533,7 @@ --- a/chrome/app/settings_strings.grdp +++ b/chrome/app/settings_strings.grdp -@@ -1909,6 +1909,12 @@ +@@ -1917,6 +1917,12 @@ Manage what Helium services are allowed in your browser @@ -548,7 +548,7 @@ --- a/chrome/browser/extensions/api/settings_private/prefs_util.cc +++ b/chrome/browser/extensions/api/settings_private/prefs_util.cc -@@ -356,6 +356,8 @@ const PrefsUtil::TypedPrefMap& PrefsUtil +@@ -357,6 +357,8 @@ const PrefsUtil::TypedPrefMap& PrefsUtil settings_api::PrefType::kBoolean; (*s_allowlist)[::prefs::kHeliumServicesOrigin] = settings_api::PrefType::kString; @@ -559,7 +559,7 @@ (*s_allowlist)[::prefs::kPrivacyGuideViewed] = --- a/chrome/browser/resources/settings/privacy_page/services_page.html +++ b/chrome/browser/resources/settings/privacy_page/services_page.html -@@ -2,9 +2,41 @@ +@@ -2,10 +2,42 @@ .label-wrapper { padding: var(--cr-section-vertical-padding) 0; } @@ -582,6 +582,7 @@ + } +
+ --- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc +++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc -@@ -1959,6 +1959,10 @@ void AddPrivacyStrings(content::WebUIDat +@@ -1973,6 +1973,10 @@ void AddPrivacyStrings(content::WebUIDat {"heliumServicesToggle", IDS_SETTINGS_HELIUM_SERVICES_TOGGLE}, {"heliumServicesToggleDescription", IDS_SETTINGS_HELIUM_SERVICES_TOGGLE_DESCRIPTION}, @@ -214,7 +214,7 @@ IDS_SETTINGS_HELIUM_SERVICES_OVERRIDE_DESCRIPTION}, --- a/chrome/app/settings_strings.grdp +++ b/chrome/app/settings_strings.grdp -@@ -1931,6 +1931,12 @@ +@@ -1939,6 +1939,12 @@ When enabled, Helium will be able to connect to anonymous web services to provide additional functionality. When disabled, additional features will not work. @@ -286,7 +286,7 @@ PrefChangeRegistrar& registrar, const base::RepeatingClosure& observer); --- a/chrome/browser/extensions/BUILD.gn +++ b/chrome/browser/extensions/BUILD.gn -@@ -563,6 +563,7 @@ source_set("extensions") { +@@ -559,6 +559,7 @@ source_set("extensions") { "//components/enterprise", "//components/guest_view/buildflags", "//components/guest_view/common", @@ -357,7 +357,7 @@ #include "components/update_client/update_query_params.h" #include "content/public/browser/browser_context.h" #include "content/public/browser/browser_task_traits.h" -@@ -210,9 +213,6 @@ void ExtensionUpdater::EnsureDownloaderC +@@ -213,9 +216,6 @@ void ExtensionUpdater::EnsureDownloaderC if (!downloader_.get()) { downloader_ = downloader_factory_.Run(this); } @@ -367,7 +367,7 @@ } void ExtensionUpdater::Start() { -@@ -231,6 +231,15 @@ void ExtensionUpdater::Start() { +@@ -234,6 +234,15 @@ void ExtensionUpdater::Start() { CheckSoon(); ScheduleNextCheck(); } @@ -383,7 +383,7 @@ } void ExtensionUpdater::Stop() { -@@ -357,7 +366,6 @@ void ExtensionUpdater::AddToDownloader( +@@ -360,7 +369,6 @@ void ExtensionUpdater::AddToDownloader( int request_id, DownloadFetchPriority fetch_priority, ExtensionUpdateCheckParams* update_check_params) { @@ -391,7 +391,7 @@ // In Kiosk mode extensions are downloaded and updated by the ExternalCache. // Therefore we skip updates here to avoid conflicts. -@@ -458,7 +466,7 @@ void ExtensionUpdater::CheckNow(CheckPar +@@ -461,7 +469,7 @@ void ExtensionUpdater::CheckNow(CheckPar // Add fetch records for extensions that should be fetched by an update URL. // These extensions are not yet installed. They come from group policy // and external install sources. @@ -400,7 +400,7 @@ PendingExtensionManager::Get(profile_); ExtensionUpdateCheckParams update_check_params; -@@ -592,7 +600,7 @@ void ExtensionUpdater::CheckNow(CheckPar +@@ -595,7 +603,7 @@ void ExtensionUpdater::CheckNow(CheckPar // OnExtensionDownloadFinished for each extension that was checked. downloader_->StartAllPending(extension_cache_); @@ -409,7 +409,7 @@ update_check_params.priority = params.fetch_priority == DownloadFetchPriority::kBackground ? ExtensionUpdateCheckParams::UpdateCheckPriority::BACKGROUND -@@ -813,6 +821,10 @@ void ExtensionUpdater::CleanUpCrxFileIfN +@@ -816,6 +824,10 @@ void ExtensionUpdater::CleanUpCrxFileIfN bool ExtensionUpdater::CanUseUpdateService( const ExtensionId& extension_id) const { @@ -422,7 +422,7 @@ } --- a/chrome/browser/extensions/webstore_installer.cc +++ b/chrome/browser/extensions/webstore_installer.cc -@@ -46,6 +46,7 @@ +@@ -45,6 +45,7 @@ #include "components/crx_file/id_util.h" #include "components/download/public/common/download_url_parameters.h" #include "components/update_client/update_query_params.h" @@ -430,7 +430,7 @@ #include "content/public/browser/browser_thread.h" #include "content/public/browser/download_manager.h" #include "content/public/browser/navigation_controller.h" -@@ -203,7 +204,7 @@ GURL WebstoreInstaller::GetWebstoreInsta +@@ -206,7 +207,7 @@ GURL WebstoreInstaller::GetWebstoreInsta if (!install_source.empty()) params.push_back(installsource_param); params.push_back("uc"); @@ -452,7 +452,7 @@ // DownloadManager::DownloadUrl callback. --- a/chrome/browser/extensions/extension_management.cc +++ b/chrome/browser/extensions/extension_management.cc -@@ -42,6 +42,8 @@ +@@ -43,6 +43,8 @@ #include "chrome/common/extensions/extension_constants.h" #include "chrome/common/pref_names.h" #include "components/crx_file/id_util.h" @@ -461,10 +461,10 @@ #include "components/pref_registry/pref_registry_syncable.h" #include "components/prefs/pref_service.h" #include "content/public/common/content_switches.h" -@@ -116,6 +118,12 @@ ExtensionManagement::ExtensionManagement - pref_change_callback); - pref_change_registrar_.Add(pref_names::kExtensionUnpublishedAvailability, - pref_change_callback); +@@ -128,6 +130,12 @@ ExtensionManagement::ExtensionManagement + pref_change_registrar_.Add( + pref_names::kExtensionForceInstallWithNonMalwareViolationsEnabled, + pref_change_callback); + + helium::ConfigurePrefChangeRegistrarFor( + prefs::kHeliumExtProxyEnabled, @@ -474,7 +474,7 @@ // Note that both |global_settings_| and |default_settings_| will be null // before first call to Refresh(), so in order to resolve this, Refresh() must // be called in the initialization of ExtensionManagement. -@@ -270,12 +278,20 @@ GURL ExtensionManagement::GetEffectiveUp +@@ -282,12 +290,20 @@ GURL ExtensionManagement::GetEffectiveUp << "Update URL cannot be overridden to be the webstore URL!"; return update_url; } @@ -540,7 +540,7 @@ void AddObserver(Observer* observer); --- a/chrome/browser/extensions/webstore_data_fetcher.cc +++ b/chrome/browser/extensions/webstore_data_fetcher.cc -@@ -87,7 +87,8 @@ void WebstoreDataFetcher::SetMockItemSni +@@ -90,7 +90,8 @@ void WebstoreDataFetcher::SetMockItemSni } void WebstoreDataFetcher::Start( @@ -550,7 +550,7 @@ if (g_mock_item_snippet_response_) { g_mock_item_snippet_response_->set_item_id(id_); delegate_->OnFetchItemSnippetParseSuccess(id_, -@@ -95,7 +96,9 @@ void WebstoreDataFetcher::Start( +@@ -98,7 +99,9 @@ void WebstoreDataFetcher::Start( return; } @@ -575,7 +575,7 @@ max_auto_retries_ = max_retries; --- a/chrome/browser/extensions/webstore_standalone_installer.cc +++ b/chrome/browser/extensions/webstore_standalone_installer.cc -@@ -21,6 +21,7 @@ +@@ -20,6 +20,7 @@ #include "chrome/browser/extensions/webstore_data_fetcher.h" #include "chrome/browser/profiles/profile.h" #include "components/crx_file/id_util.h" @@ -583,7 +583,7 @@ #include "content/public/browser/storage_partition.h" #include "content/public/browser/web_contents.h" #include "extensions/browser/blocklist_extension_prefs.h" -@@ -72,9 +73,12 @@ void WebstoreStandaloneInstaller::BeginI +@@ -76,9 +77,12 @@ void WebstoreStandaloneInstaller::BeginI webstore_data_fetcher_ = std::make_unique(this, GURL(), id_); diff --git a/patches/helium/core/reduce-accept-language-headers.patch b/patches/helium/core/reduce-accept-language-headers.patch index 2c4e8035..0f8f4867 100644 --- a/patches/helium/core/reduce-accept-language-headers.patch +++ b/patches/helium/core/reduce-accept-language-headers.patch @@ -1,11 +1,11 @@ --- a/services/network/public/cpp/features.cc +++ b/services/network/public/cpp/features.cc -@@ -202,7 +202,7 @@ BASE_FEATURE(kOmitCorsClientCert, +@@ -185,7 +185,7 @@ BASE_FEATURE(kOmitCorsClientCert, base:: + + // Enables support for the `Variants` response header and reduce // accept-language. https://github.com/Tanych/accept-language - BASE_FEATURE(kReduceAcceptLanguage, - "ReduceAcceptLanguage", -- base::FEATURE_DISABLED_BY_DEFAULT); -+ base::FEATURE_ENABLED_BY_DEFAULT); +-BASE_FEATURE(kReduceAcceptLanguage, base::FEATURE_DISABLED_BY_DEFAULT); ++BASE_FEATURE(kReduceAcceptLanguage, base::FEATURE_ENABLED_BY_DEFAULT); BASE_FEATURE_PARAM(base::TimeDelta, kReduceAcceptLanguageCacheDuration, diff --git a/patches/helium/core/reenable-spellcheck-downloads.patch b/patches/helium/core/reenable-spellcheck-downloads.patch index a199c7c0..dc9394b9 100644 --- a/patches/helium/core/reenable-spellcheck-downloads.patch +++ b/patches/helium/core/reenable-spellcheck-downloads.patch @@ -96,7 +96,7 @@ #endif // COMPONENTS_HELIUM_SERVICES_PREF_NAMES_H_ --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -8247,6 +8247,8 @@ static_library("browser") { +@@ -8264,6 +8264,8 @@ static_library("browser") { deps += [ "//components/spellcheck/browser", "//components/spellcheck/common", @@ -107,7 +107,7 @@ if (!is_android) { --- a/chrome/browser/extensions/api/settings_private/prefs_util.cc +++ b/chrome/browser/extensions/api/settings_private/prefs_util.cc -@@ -358,6 +358,8 @@ const PrefsUtil::TypedPrefMap& PrefsUtil +@@ -359,6 +359,8 @@ const PrefsUtil::TypedPrefMap& PrefsUtil settings_api::PrefType::kBoolean; (*s_allowlist)[::prefs::kHeliumBangsEnabled] = settings_api::PrefType::kBoolean; @@ -118,7 +118,7 @@ (*s_allowlist)[::prefs::kHeliumServicesConsented] = --- a/chrome/browser/ui/browser_ui_prefs.cc +++ b/chrome/browser/ui/browser_ui_prefs.cc -@@ -206,6 +206,7 @@ void RegisterBrowserUserPrefs(user_prefs +@@ -210,6 +210,7 @@ void RegisterBrowserUserPrefs(user_prefs registry->RegisterBooleanPref(prefs::kHeliumServicesEnabled, true); registry->RegisterBooleanPref(prefs::kHeliumBangsEnabled, true); registry->RegisterBooleanPref(prefs::kHeliumExtProxyEnabled, true); @@ -128,7 +128,7 @@ registry->RegisterBooleanPref(prefs::kHeliumServicesConsented, false); --- a/chrome/browser/resources/settings/privacy_page/services_page.html +++ b/chrome/browser/resources/settings/privacy_page/services_page.html -@@ -54,6 +54,13 @@ +@@ -55,6 +55,13 @@ label="$i18n{heliumBangsToggle}" sub-label="$i18n{heliumBangsToggleDescription}"> @@ -144,7 +144,7 @@ --- a/chrome/app/settings_strings.grdp +++ b/chrome/app/settings_strings.grdp -@@ -1943,6 +1943,12 @@ +@@ -1951,6 +1951,12 @@ Helium will fetch a list of bangs that help you browse the Internet faster, such as !w or !gh. When disabled, bangs will not work. @@ -159,7 +159,7 @@ --- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc +++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc -@@ -1962,6 +1962,9 @@ void AddPrivacyStrings(content::WebUIDat +@@ -1976,6 +1976,9 @@ void AddPrivacyStrings(content::WebUIDat {"heliumBangsToggle", IDS_SETTINGS_HELIUM_SERVICES_BANGS_TOGGLE}, {"heliumBangsToggleDescription", IDS_SETTINGS_HELIUM_SERVICES_BANGS_TOGGLE_DESCRIPTION}, diff --git a/patches/helium/core/reenable-update-checks.patch b/patches/helium/core/reenable-update-checks.patch index 37925914..4cfb3a79 100644 --- a/patches/helium/core/reenable-update-checks.patch +++ b/patches/helium/core/reenable-update-checks.patch @@ -39,7 +39,7 @@ // The default implementation for most embedders returns an empty string. --- a/extensions/browser/updater/extension_downloader.cc +++ b/extensions/browser/updater/extension_downloader.cc -@@ -352,6 +352,10 @@ void ExtensionDownloader::DoStartAllPend +@@ -346,6 +346,10 @@ void ExtensionDownloader::DoStartAllPend AddToFetches(fetches_preparing, std::move(task)); pending_tasks_.clear(); diff --git a/patches/helium/core/scan-chrome-native-messaging-hosts.patch b/patches/helium/core/scan-chrome-native-messaging-hosts.patch index 22b45928..7ec937f0 100644 --- a/patches/helium/core/scan-chrome-native-messaging-hosts.patch +++ b/patches/helium/core/scan-chrome-native-messaging-hosts.patch @@ -25,7 +25,7 @@ --- a/chrome/common/chrome_paths.cc +++ b/chrome/common/chrome_paths.cc -@@ -154,6 +154,11 @@ bool PathProvider(int key, base::FilePat +@@ -153,6 +153,11 @@ bool PathProvider(int key, base::FilePat } create_dir = true; break; @@ -37,7 +37,7 @@ case chrome::DIR_USER_DOCUMENTS: if (!GetUserDocumentsDirectory(&cur)) { return false; -@@ -483,11 +488,28 @@ bool PathProvider(int key, base::FilePat +@@ -481,11 +486,28 @@ bool PathProvider(int key, base::FilePat #endif // !BUILDFLAG(IS_MAC) break; @@ -158,7 +158,7 @@ return false; --- a/chrome/common/chrome_paths_mac.mm +++ b/chrome/common/chrome_paths_mac.mm -@@ -111,6 +111,10 @@ bool GetDefaultUserDataDirectory(base::F +@@ -87,6 +87,10 @@ bool GetDefaultUserDataDirectory(base::F return GetDefaultUserDataDirectoryForProduct(ProductDirName(), result); } diff --git a/patches/helium/core/search/engine-defaults.patch b/patches/helium/core/search/engine-defaults.patch index c41ebb9e..d25c0342 100644 --- a/patches/helium/core/search/engine-defaults.patch +++ b/patches/helium/core/search/engine-defaults.patch @@ -1,6 +1,6 @@ --- a/components/search_engines/template_url_prepopulate_data.cc +++ b/components/search_engines/template_url_prepopulate_data.cc -@@ -235,7 +235,7 @@ std::unique_ptr GetPrep +@@ -261,7 +261,7 @@ std::unique_ptr GetPrep std::vector regional_prepopulated_engines) { return FindPrepopulatedEngineInternal(prefs, regional_prepopulated_engines, @@ -31,7 +31,7 @@ "AE": { // United Arab Emirates "search_engines": [ -@@ -1183,7 +1196,8 @@ +@@ -1154,7 +1167,8 @@ "name": "kRegionalSettings", "export_items": false, "map_key_type": "country_codes::CountryId", diff --git a/patches/helium/core/search/force-eu-search-features.patch b/patches/helium/core/search/force-eu-search-features.patch index 5a4b28d5..91812bf7 100644 --- a/patches/helium/core/search/force-eu-search-features.patch +++ b/patches/helium/core/search/force-eu-search-features.patch @@ -9,14 +9,14 @@ #include "chrome/browser/signin/account_consistency_mode_manager_factory.h" #include "chrome/browser/signin/chrome_signin_client_factory.h" @@ -84,7 +83,6 @@ - #include "components/plus_addresses/grit/plus_addresses_strings.h" - #include "components/plus_addresses/plus_address_service.h" + #include "components/plus_addresses/core/browser/plus_address_service.h" + #include "components/plus_addresses/core/common/features.h" #include "components/prefs/pref_service.h" -#include "components/regional_capabilities/regional_capabilities_service.h" #include "components/safe_browsing/core/common/features.h" #include "components/safe_browsing/core/common/hashprefix_realtime/hash_realtime_utils.h" #include "components/saved_tab_groups/public/features.h" -@@ -2479,14 +2477,9 @@ void AddSearchStrings(content::WebUIData +@@ -2505,14 +2503,9 @@ void AddSearchStrings(content::WebUIData html_source->AddString("searchExplanationLearnMoreURL", chrome::kOmniboxLearnMoreURL); @@ -34,7 +34,7 @@ "saveGuestChoiceText", IDS_SEARCH_ENGINE_CHOICE_GUEST_SESSION_CHECKBOX); --- a/components/regional_capabilities/regional_capabilities_service.cc +++ b/components/regional_capabilities/regional_capabilities_service.cc -@@ -166,6 +166,8 @@ std::pair GetSearchEngineCountryOverride() { --- a/components/search_engine_choice_strings.grdp +++ b/components/search_engine_choice_strings.grdp -@@ -98,6 +98,10 @@ +@@ -106,6 +106,10 @@ These search engines are popular in your region diff --git a/patches/helium/core/search/remove-description-snippet-deps.patch b/patches/helium/core/search/remove-description-snippet-deps.patch index cf623628..78bf23ba 100644 --- a/patches/helium/core/search/remove-description-snippet-deps.patch +++ b/patches/helium/core/search/remove-description-snippet-deps.patch @@ -15,7 +15,7 @@ [ "${root_gen_dir}/extensions/strings/extensions_strings_" ] --- a/components/search_engines/template_url.cc +++ b/components/search_engines/template_url.cc -@@ -57,10 +57,6 @@ +@@ -58,10 +58,6 @@ #include "ui/base/l10n/l10n_util.h" #include "url/gurl.h" @@ -26,7 +26,7 @@ namespace { const bool kEnableBuiltinSearchProviderAssets = -@@ -1854,18 +1850,6 @@ std::string TemplateURL::GetBuiltinDescr +@@ -1878,18 +1874,6 @@ std::string TemplateURL::GetBuiltinDescr } std::optional TemplateURL::GetBuiltinMarketingSnippet() const { diff --git a/patches/helium/core/search/restore-google.patch b/patches/helium/core/search/restore-google.patch index 4e9a744a..91aceb1f 100644 --- a/patches/helium/core/search/restore-google.patch +++ b/patches/helium/core/search/restore-google.patch @@ -1,6 +1,6 @@ --- a/third_party/search_engines_data/resources/definitions/prepopulated_engines.json +++ b/third_party/search_engines_data/resources/definitions/prepopulated_engines.json -@@ -166,30 +166,14 @@ +@@ -170,30 +170,14 @@ "id": 114 }, diff --git a/patches/helium/core/services-prefs.patch b/patches/helium/core/services-prefs.patch index 8dfdb5eb..aa018c2a 100644 --- a/patches/helium/core/services-prefs.patch +++ b/patches/helium/core/services-prefs.patch @@ -1,6 +1,6 @@ --- a/chrome/app/settings_strings.grdp +++ b/chrome/app/settings_strings.grdp -@@ -1903,6 +1903,31 @@ +@@ -1911,6 +1911,31 @@ Safe Browsing (protection from dangerous sites) and other security settings @@ -34,7 +34,7 @@ Google Advanced Protection Program --- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc +++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc -@@ -1953,6 +1953,18 @@ void AddPrivacyStrings(content::WebUIDat +@@ -1967,6 +1967,18 @@ void AddPrivacyStrings(content::WebUIDat {"permissionsPageDescription", IDS_SETTINGS_PERMISSIONS_DESCRIPTION}, {"securityPageTitle", IDS_SETTINGS_SECURITY}, {"securityPageDescription", IDS_SETTINGS_SECURITY_DESCRIPTION}, @@ -55,35 +55,38 @@ {"advancedProtectionProgramDesc", --- a/chrome/browser/resources/settings/privacy_page/privacy_page.html +++ b/chrome/browser/resources/settings/privacy_page/privacy_page.html -@@ -83,6 +83,11 @@ - sub-label="$i18n{permissionsPageDescription}" - on-click="onPermissionsPageClick_" - role-description="$i18n{subpageArrowRoleDescription}"> -+ - -
[[dbdDeletionConfirmationToastLabel_]]
-
-@@ -115,6 +120,13 @@ - - +@@ -67,6 +67,11 @@ + sub-label="$i18n{permissionsPageDescription}" + on-click="onPermissionsPageClick_" + role-description="$i18n{subpageArrowRoleDescription}"> ++ + +
[[dbdDeletionConfirmationToastLabel_]]
+
+--- a/chrome/browser/resources/settings/privacy_page/privacy_page_index.html ++++ b/chrome/browser/resources/settings/privacy_page/privacy_page_index.html +@@ -45,6 +45,14 @@ + + -+ ++ + - --- a/chrome/browser/resources/settings/site_settings_page/site_settings_page.html +++ b/chrome/browser/resources/settings/site_settings_page/site_settings_page.html -@@ -10,17 +10,10 @@ - +@@ -11,17 +11,10 @@ + learn-more-url="$i18n{exceptionsLearnMoreURL}" + route-path$="[[routePath]]"> @@ -53,11 +53,12 @@ - routes_.SAFETY_HUB, currentRoute, inSearchMode)]]"> - - +- data-parent-view-id="safetyHubEntryPoint" prefs="{{prefs}}" +- route-path$="[[routes_.SAFETY_HUB.path]]"> - - - - -