diff --git a/build/bromite_patches_list.txt b/build/bromite_patches_list.txt
index a9b6fcdf..07346b68 100644
--- a/build/bromite_patches_list.txt
+++ b/build/bromite_patches_list.txt
@@ -94,7 +94,8 @@ Disable-offline-pages-in-CCT.patch
Disable-media-router-and-remoting-by-default.patch
Restore-Search-Ready-Omnibox-flag.patch
disable-AdsBlockedInfoBar.patch
-Bromite-AdBlockUpdaterService.patch
+Bromite-subresource-adblocker.patch
+Bromite-auto-updater.patch
Replace-DoH-probe-domain-with-RIPE-domain.patch
Increase-number-of-autocomplete-matches-to-10.patch
Disable-requests-for-single-word-Omnibar-searches.patch
@@ -139,8 +140,8 @@ Add-IsCleartextPermitted-flag.patch
Unexpire-tab-groups-flags.patch
Add-flag-for-omnibox-autocomplete-filtering.patch
Revert-Delete-block-external-form-redirects.patch
-Enable-IntentBlockExternalFormRedirectsNoGesture.patch
Add-flag-to-disable-external-intent-requests.patch
+Enable-share-intent.patch
Logcat-crash-reports-UI.patch
Add-flag-to-disable-vibration.patch
mime_util-force-text-x-suse-ymp-to-be-downloaded.patch
@@ -148,8 +149,6 @@ Client-hints-overrides.patch
Disable-AGSA-by-default.patch
Allow-building-without-enable_reporting.patch
Disable-lock-icon-in-address-bar-by-default.patch
-Enable-share-intent.patch
-Bromite-auto-updater.patch
Experimental-user-scripts-support.patch
Keep-empty-tabs-between-sessions.patch
Disable-third-party-origin-trials.patch
diff --git a/build/patches/Add-AllowUserCertificates-flag.patch b/build/patches/Add-AllowUserCertificates-flag.patch
index 9ba96cab..3b248971 100644
--- a/build/patches/Add-AllowUserCertificates-flag.patch
+++ b/build/patches/Add-AllowUserCertificates-flag.patch
@@ -101,13 +101,13 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
&feed::kInterestFeedV1ClicksAndViewsConditionalUpload,
&feed::kInterestFeedV2,
&feed::kInterestFeedV2Autoplay,
-@@ -467,6 +468,10 @@ BASE_FEATURE(kAllowNewIncognitoTabIntents,
+@@ -468,6 +469,10 @@ BASE_FEATURE(kAllowNewIncognitoTabIntents,
"AllowNewIncognitoTabIntents",
base::FEATURE_ENABLED_BY_DEFAULT);
+BASE_FEATURE(kAllowUserCertificates,
+ "AllowUserCertificates",
-+ base::FEATURE_DISABLED_BY_DEFAULT};
++ base::FEATURE_DISABLED_BY_DEFAULT);
+
BASE_FEATURE(kFocusOmniboxInIncognitoTabIntents,
"FocusOmniboxInIncognitoTabIntents",
@@ -145,7 +145,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
public static final String ABOUT_THIS_SITE_BANNER = "AboutThisSiteBanner";
public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR = "AdaptiveButtonInTopToolbar";
public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_CUSTOMIZATION_V2 =
-@@ -647,6 +648,8 @@ public abstract class ChromeFeatureList {
+@@ -648,6 +649,8 @@ public abstract class ChromeFeatureList {
public static final String FEED_REPLACE_ALL = "FeedReplaceAll";
/* Alphabetical: */
diff --git a/build/patches/Add-a-proxy-configuration-page.patch b/build/patches/Add-a-proxy-configuration-page.patch
index 1c7c119d..9469d8f9 100644
--- a/build/patches/Add-a-proxy-configuration-page.patch
+++ b/build/patches/Add-a-proxy-configuration-page.patch
@@ -25,8 +25,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
chrome/browser/prefs/browser_prefs.cc | 4 +
.../prefs/chrome_command_line_pref_store.cc | 2 +-
chrome/browser/resources/proxy_config.css | 61 +++
- chrome/browser/resources/proxy_config.html | 79 ++++
- chrome/browser/resources/proxy_config.js | 266 +++++++++++
+ chrome/browser/resources/proxy_config.html | 78 ++++
+ chrome/browser/resources/proxy_config.js | 267 +++++++++++
chrome/browser/ui/BUILD.gn | 2 +
.../webui/chrome_web_ui_controller_factory.cc | 3 +
chrome/browser/ui/webui/proxy_config_ui.cc | 418 ++++++++++++++++++
@@ -76,14 +76,14 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
-@@ -70,6 +70,7 @@ public class PrivacySettings
- SharedPreferencesManager.getInstance();
- private final PrefService prefService = UserPrefs.get(Profile.getLastUsedRegularProfile());
-
+@@ -59,6 +59,7 @@ public class PrivacySettings
+ private static final String PREF_DO_NOT_TRACK = "do_not_track";
+ private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data";
+ private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox";
+ private static final String PREF_PROXY_OPTIONS = "proxy";
- private static final String PREF_CLOSE_TABS_ON_EXIT = "close_tabs_on_exit";
+ private static final String PREF_PRIVACY_GUIDE = "privacy_guide";
+ private static final String PREF_INCOGNITO_LOCK = "incognito_lock";
- private ManagedPreferenceDelegate mManagedPreferenceDelegate;
diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
--- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
+++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
@@ -287,7 +287,7 @@ diff --git a/chrome/browser/resources/proxy_config.html b/chrome/browser/resourc
new file mode 100644
--- /dev/null
+++ b/chrome/browser/resources/proxy_config.html
-@@ -0,0 +1,79 @@
+@@ -0,0 +1,78 @@
+
+
+
@@ -301,8 +301,7 @@ new file mode 100644
+
+
+
-+
-+
++
+
+
+
@@ -371,7 +370,7 @@ diff --git a/chrome/browser/resources/proxy_config.js b/chrome/browser/resources
new file mode 100644
--- /dev/null
+++ b/chrome/browser/resources/proxy_config.js
-@@ -0,0 +1,266 @@
+@@ -0,0 +1,267 @@
+/*
+ This file is part of Bromite.
+
@@ -389,6 +388,7 @@ new file mode 100644
+ along with Bromite. If not, see .
+*/
+
++import {$} from 'chrome://resources/js/util.js';
+import {addSingletonGetter} from 'chrome://resources/js/cr.m.js';
+
+/**
@@ -936,7 +936,7 @@ new file mode 100644
+
+ const PrefService::Preference* const pref =
+ pref_service_->FindPreference(proxy_config::prefs::kProxy);
-+ ProxyConfigDictionary proxy_dict(pref->GetValue()->Clone());
++ ProxyConfigDictionary proxy_dict(pref->GetValue()->GetDict().Clone());
+ ProxyPrefs::ProxyMode mode;
+ if (!proxy_dict.GetMode(&mode) || mode == ProxyPrefs::MODE_SYSTEM) {
+ availability = net::ProxyConfigService::CONFIG_UNSET;
@@ -948,8 +948,8 @@ new file mode 100644
+void ProxyConfigMessageHandler::OnClear(const base::Value::List& list) {
+ DCHECK_CURRENTLY_ON(BrowserThread::UI);
+
-+ const base::Value cfg = ProxyConfigDictionary::CreateSystem();
-+ pref_service_->Set(proxy_config::prefs::kProxy, cfg);
++ const base::Value::Dict cfg = ProxyConfigDictionary::CreateSystem();
++ pref_service_->SetDict(proxy_config::prefs::kProxy, cfg.Clone());
+ pref_service_->CommitPendingWrite();
+ OnEnableNotifyUIWithState(list);
+}
@@ -1060,22 +1060,22 @@ new file mode 100644
+
+void ProxyConfigMessageHandler::apply(const net::ProxyConfig& proxyConfig) {
+ if (proxyConfig.auto_detect()) {
-+ const base::Value cfg = ProxyConfigDictionary::CreateAutoDetect();
-+ pref_service_->Set(proxy_config::prefs::kProxy, cfg);
++ const base::Value::Dict cfg = ProxyConfigDictionary::CreateAutoDetect();
++ pref_service_->SetDict(proxy_config::prefs::kProxy, cfg.Clone());
+ } else if (proxyConfig.has_pac_url()) {
-+ const base::Value cfg = ProxyConfigDictionary::CreatePacScript(proxyConfig.pac_url().spec(), proxyConfig.pac_mandatory());
-+ pref_service_->Set(proxy_config::prefs::kProxy, cfg);
++ const base::Value::Dict cfg = ProxyConfigDictionary::CreatePacScript(proxyConfig.pac_url().spec(), proxyConfig.pac_mandatory());
++ pref_service_->SetDict(proxy_config::prefs::kProxy, cfg.Clone());
+ } else if (proxyConfig.proxy_rules().type == net::ProxyConfig::ProxyRules::Type::EMPTY) {
-+ const base::Value cfg = ProxyConfigDictionary::CreateDirect();
-+ pref_service_->Set(proxy_config::prefs::kProxy, cfg);
++ const base::Value::Dict cfg = ProxyConfigDictionary::CreateDirect();
++ pref_service_->SetDict(proxy_config::prefs::kProxy, cfg.Clone());
+ } else {
+ auto proxyRulesAsString = proxyConfig.proxy_rules().ToString();
+ auto bypassRulesAsString = proxyConfig.proxy_rules().bypass_rules.ToString();
+
+ // fixed servers
-+ const base::Value cfg = ProxyConfigDictionary::CreateFixedServers(proxyRulesAsString,
++ const base::Value::Dict cfg = ProxyConfigDictionary::CreateFixedServers(proxyRulesAsString,
+ bypassRulesAsString, proxyConfig.proxy_rules().reverse_bypass);
-+ pref_service_->Set(proxy_config::prefs::kProxy, cfg);
++ pref_service_->SetDict(proxy_config::prefs::kProxy, cfg.Clone());
+ }
+ pref_service_->CommitPendingWrite();
+
@@ -1197,7 +1197,7 @@ diff --git a/components/proxy_config/proxy_config_dictionary.cc b/components/pro
}
+bool ProxyConfigDictionary::HasReverseBypass() const {
-+ const base::Value* value = dict_.FindKey(kProxyReverseBypass);
++ const base::Value* value = dict_.Find(kProxyReverseBypass);
+ if (!value || !value->is_bool()) {
+ return false;
+ }
diff --git a/build/patches/Add-bookmark-import-export-actions.patch b/build/patches/Add-bookmark-import-export-actions.patch
index 8b3ea123..10e07c18 100644
--- a/build/patches/Add-bookmark-import-export-actions.patch
+++ b/build/patches/Add-bookmark-import-export-actions.patch
@@ -29,7 +29,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../DownloadLocationDialogCoordinator.java | 8 +-
chrome/browser/flag_descriptions.cc | 5 +
chrome/browser/flag_descriptions.h | 3 +
- .../flags/android/chrome_feature_list.cc | 5 +
+ .../flags/android/chrome_feature_list.cc | 6 +
.../flags/android/chrome_feature_list.h | 1 +
.../browser/flags/ChromeFeatureList.java | 1 +
chrome/browser/importer/profile_writer.cc | 12 +
@@ -45,7 +45,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
ui/shell_dialogs/select_file_dialog.h | 2 +
.../select_file_dialog_android.cc | 6 +
ui/shell_dialogs/select_file_dialog_android.h | 2 +
- 35 files changed, 847 insertions(+), 29 deletions(-)
+ 35 files changed, 848 insertions(+), 29 deletions(-)
diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
--- a/chrome/android/java/AndroidManifest.xml
@@ -1287,13 +1287,14 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
&kCriticalPersistedTabData,
&kCommerceCoupons,
&kCCTBackgroundTab,
-@@ -1114,6 +1115,10 @@ BASE_FEATURE(kWebApkTrampolineOnInitialIntent,
+@@ -1114,6 +1115,11 @@ BASE_FEATURE(kWebApkTrampolineOnInitialIntent,
"WebApkTrampolineOnInitialIntent",
base::FEATURE_ENABLED_BY_DEFAULT);
+// disabled by default because of an issue on Android 6.0
-+const base::Feature kBookmarksExportUseSaf{"BookmarksExportUseSaf",
-+ base::FEATURE_DISABLED_BY_DEFAULT};
++BASE_FEATURE(kBookmarksExportUseSaf,
++ "BookmarksExportUseSaf",
++ base::FEATURE_DISABLED_BY_DEFAULT);
+
static jboolean JNI_ChromeFeatureList_IsEnabled(
JNIEnv* env,
diff --git a/build/patches/Add-menu-item-to-bookmark-all-tabs.patch b/build/patches/Add-menu-item-to-bookmark-all-tabs.patch
index bb3e2be6..57c1f0bf 100644
--- a/build/patches/Add-menu-item-to-bookmark-all-tabs.patch
+++ b/build/patches/Add-menu-item-to-bookmark-all-tabs.patch
@@ -349,7 +349,7 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
-@@ -3585,6 +3585,9 @@ To change this setting, <resetlink> reset sync<resetlink>reset sync
Track prices
diff --git a/build/patches/Allow-building-without-enable_reporting.patch b/build/patches/Allow-building-without-enable_reporting.patch
index d31ce892..140c170a 100644
--- a/build/patches/Allow-building-without-enable_reporting.patch
+++ b/build/patches/Allow-building-without-enable_reporting.patch
@@ -5,7 +5,7 @@ Subject: Allow building without enable_reporting
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
.../browser/devtools/protocol/network_handler.cc | 2 ++
- .../cross_origin_embedder_policy_reporter.cc | 3 +++
+ .../cross_origin_embedder_policy_reporter.cc | 7 +++++--
.../cross_origin_opener_policy_reporter.cc | 16 +++++++---------
.../browser/network/reporting_service_proxy.cc | 3 +++
.../renderer_host/render_frame_host_impl.cc | 6 ------
@@ -19,7 +19,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../blink/renderer/core/frame/local_frame.h | 6 +++---
.../renderer/core/frame/reporting_context.cc | 9 +++++++++
.../renderer/core/frame/reporting_context.h | 7 +++++--
- 15 files changed, 48 insertions(+), 23 deletions(-)
+ 15 files changed, 50 insertions(+), 25 deletions(-)
diff --git a/content/browser/devtools/protocol/network_handler.cc b/content/browser/devtools/protocol/network_handler.cc
--- a/content/browser/devtools/protocol/network_handler.cc
@@ -51,11 +51,22 @@ diff --git a/content/browser/network/cross_origin_embedder_policy_reporter.cc b/
#include "base/strings/string_piece.h"
#include "base/values.h"
#include "content/public/browser/storage_partition.h"
-@@ -111,6 +112,7 @@ void CrossOriginEmbedderPolicyReporter::QueueAndNotify(
+@@ -95,8 +96,6 @@ void CrossOriginEmbedderPolicyReporter::Clone(
+ void CrossOriginEmbedderPolicyReporter::QueueAndNotify(
+ std::initializer_list> body,
+ bool report_only) {
+- const absl::optional& endpoint =
+- report_only ? report_only_endpoint_ : endpoint_;
+ const char* const disposition = report_only ? "reporting" : "enforce";
+ if (observer_) {
+ std::vector list;
+@@ -111,6 +110,9 @@ void CrossOriginEmbedderPolicyReporter::QueueAndNotify(
observer_->Notify(blink::mojom::Report::New(
kType, context_url_, blink::mojom::ReportBody::New(std::move(list))));
}
+#if BUILDFLAG(ENABLE_REPORTING)
++ const absl::optional& endpoint =
++ report_only ? report_only_endpoint_ : endpoint_;
if (endpoint) {
base::Value::Dict body_to_pass;
for (const auto& pair : body) {
diff --git a/build/patches/Bromite-auto-updater.patch b/build/patches/Bromite-auto-updater.patch
index 9393396d..3aef5b49 100644
--- a/build/patches/Bromite-auto-updater.patch
+++ b/build/patches/Bromite-auto-updater.patch
@@ -3,6 +3,7 @@ Date: Thu, 7 Oct 2021 14:27:12 +0000
Subject: Bromite auto updater
Enable checking for new versions, with notifications and proxy support.
+Restore InlineUpdateFlow feature.
Some parts authored by csagan5.
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
@@ -24,13 +25,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../endpoint_fetcher_android.cc | 52 +++-
.../endpoint_fetcher/EndpointFetcher.java | 22 +-
.../EndpointHeaderResponse.java | 31 +++
- .../flags/android/chrome_feature_list.cc | 4 +
+ .../flags/android/chrome_feature_list.cc | 5 +
.../flags/android/chrome_feature_list.h | 1 +
.../browser/flags/ChromeFeatureList.java | 1 +
.../strings/android_chrome_strings.grd | 23 +-
.../endpoint_fetcher/endpoint_fetcher.cc | 102 +++++++-
.../endpoint_fetcher/endpoint_fetcher.h | 22 +-
- 23 files changed, 896 insertions(+), 53 deletions(-)
+ 23 files changed, 897 insertions(+), 53 deletions(-)
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/BromiteInlineUpdateController.java
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateController.java
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateControllerFactory.java
@@ -62,7 +63,7 @@ diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
-@@ -813,6 +813,9 @@ chrome_java_sources = [
+@@ -812,6 +812,9 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/omaha/UpdateConfigs.java",
"java/src/org/chromium/chrome/browser/omaha/UpdateMenuItemHelper.java",
"java/src/org/chromium/chrome/browser/omaha/UpdateStatusProvider.java",
@@ -1250,7 +1251,7 @@ new file mode 100644
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
-@@ -255,6 +255,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
+@@ -251,6 +251,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kNewWindowAppMenu,
&kNotificationPermissionVariant,
&kPageAnnotationsService,
@@ -1258,20 +1259,21 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
&kBookmarksImprovedSaveFlow,
&kBookmarksRefresh,
&kBackGestureRefactorAndroid,
-@@ -696,6 +697,9 @@ BASE_FEATURE(kContextMenuSearchWithGoogleLens,
- "ContextMenuSearchWithGoogleLens",
- base::FEATURE_ENABLED_BY_DEFAULT);
-
-+const base::Feature kInlineUpdateFlow{"InlineUpdateFlow",
-+ base::FEATURE_ENABLED_BY_DEFAULT};
-+
- BASE_FEATURE(kContextMenuShopWithGoogleLens,
- "ContextMenuShopWithGoogleLens",
+@@ -693,6 +694,10 @@ BASE_FEATURE(kContextMenuTranslateWithGoogleLens,
+ "ContextMenuTranslateWithGoogleLens",
base::FEATURE_DISABLED_BY_DEFAULT);
+
++BASE_FEATURE(kInlineUpdateFlow,
++ "InlineUpdateFlow",
++ base::FEATURE_ENABLED_BY_DEFAULT);
++
+ BASE_FEATURE(kLensCameraAssistedSearch,
+ "LensCameraAssistedSearch",
+ base::FEATURE_ENABLED_BY_DEFAULT);
diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h
--- a/chrome/browser/flags/android/chrome_feature_list.h
+++ b/chrome/browser/flags/android/chrome_feature_list.h
-@@ -94,6 +94,7 @@ BASE_DECLARE_FEATURE(kGridTabSwitcherForTablets);
+@@ -91,6 +91,7 @@ BASE_DECLARE_FEATURE(kGridTabSwitcherForTablets);
BASE_DECLARE_FEATURE(kHandleMediaIntents);
BASE_DECLARE_FEATURE(kImmersiveUiMode);
BASE_DECLARE_FEATURE(kIncognitoReauthenticationForAndroid);
@@ -1282,7 +1284,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
-@@ -388,6 +388,7 @@ public abstract class ChromeFeatureList {
+@@ -385,6 +385,7 @@ public abstract class ChromeFeatureList {
"IncognitoReauthenticationForAndroid";
public static final String INCOGNITO_SCREENSHOT = "IncognitoScreenshot";
public static final String INFOBAR_SCROLL_OPTIMIZATION = "InfobarScrollOptimization";
@@ -1293,7 +1295,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
-@@ -1885,6 +1885,12 @@ Your Google account may have other forms of browsing history like searches and a
+@@ -1837,6 +1837,12 @@ Your Google account may have other forms of browsing history like searches and a
Chrome updates are no longer supported for this version of Android
@@ -1306,7 +1308,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
-@@ -3501,7 +3507,10 @@ To change this setting, <resetlink> reset sync<resetlink>reset sync
@@ -1318,7 +1320,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
Newer version is available
-@@ -3512,6 +3521,18 @@ To change this setting, <resetlink> reset sync<resetlink>reset sync
Android version is unsupported
diff --git a/build/patches/Bromite-AdBlockUpdaterService.patch b/build/patches/Bromite-subresource-adblocker.patch
similarity index 99%
rename from build/patches/Bromite-AdBlockUpdaterService.patch
rename to build/patches/Bromite-subresource-adblocker.patch
index c42724d7..cf6c962d 100644
--- a/build/patches/Bromite-AdBlockUpdaterService.patch
+++ b/build/patches/Bromite-subresource-adblocker.patch
@@ -1,6 +1,6 @@
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Sat, 14 Sep 2019 10:20:08 +0200
-Subject: Bromite AdBlockUpdaterService
+Subject: Bromite subresource adblocker
Add option to configure the ad blocker filters URL
Disable look-alike, metrics, ablation and navigation throttles
@@ -68,7 +68,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
"//chrome/android/modules/image_editor/provider:java",
"//chrome/android/modules/stack_unwinder/provider:java",
"//chrome/android/webapk/libs/client:client_java",
-+ "//chrome/browser/endpoint_fetcher:java",
++ "//chrome/browser/endpoint_fetcher:java",
"//chrome/android/webapk/libs/common:common_java",
"//chrome/android/webapk/libs/common:splash_java",
"//chrome/android/webapk/libs/runtime_library:webapk_service_aidl_java",
@@ -79,7 +79,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja
"java/res/layout/account_chooser_dialog_title.xml",
"java/res/layout/account_divider_preference.xml",
"java/res/layout/account_management_account_row.xml",
-+ "java/res/layout/adblock_editor.xml",
++ "java/res/layout/adblock_editor.xml",
"java/res/layout/auto_sign_in_first_run_dialog.xml",
"java/res/layout/autofill_billing_address_dropdown.xml",
"java/res/layout/autofill_card_unmask_prompt.xml",
diff --git a/build/patches/Disable-FLoC-and-privacy-sandbox.patch b/build/patches/Disable-FLoC-and-privacy-sandbox.patch
index 57ccb1d7..0177b253 100644
--- a/build/patches/Disable-FLoC-and-privacy-sandbox.patch
+++ b/build/patches/Disable-FLoC-and-privacy-sandbox.patch
@@ -11,13 +11,13 @@ Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
.../java/res/xml/privacy_preferences.xml | 4 ---
- .../privacy/settings/PrivacySettings.java | 22 ------------
+ .../privacy/settings/PrivacySettings.java | 23 ------------
.../browser/chrome_content_browser_client.cc | 3 ++
.../history/core/browser/history_backend.cc | 13 +------
.../privacy_sandbox/privacy_sandbox_prefs.cc | 2 +-
.../privacy_sandbox_settings.cc | 35 +++++++++++--------
.../privacy_sandbox_settings.h | 1 -
- 7 files changed, 25 insertions(+), 55 deletions(-)
+ 7 files changed, 25 insertions(+), 56 deletions(-)
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
--- a/chrome/android/java/res/xml/privacy_preferences.xml
@@ -36,15 +36,16 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
-@@ -58,7 +58,6 @@ public class PrivacySettings
+@@ -58,8 +58,6 @@ public class PrivacySettings
private static final String PREF_SECURE_DNS = "secure_dns";
private static final String PREF_DO_NOT_TRACK = "do_not_track";
private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data";
- private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox";
+- private static final String PREF_PROXY_OPTIONS = "proxy";
private static final String PREF_PRIVACY_GUIDE = "privacy_guide";
private static final String PREF_INCOGNITO_LOCK = "incognito_lock";
-@@ -86,21 +85,6 @@ public class PrivacySettings
+@@ -86,21 +84,6 @@ public class PrivacySettings
SettingsUtils.addPreferencesFromResource(this, R.xml.privacy_preferences);
getActivity().setTitle(R.string.prefs_privacy_security);
@@ -66,7 +67,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
Preference privacyGuidePreference = findPreference(PREF_PRIVACY_GUIDE);
if (!ChromeFeatureList.isEnabled(ChromeFeatureList.PRIVACY_GUIDE)) {
getPreferenceScreen().removePreference(privacyGuidePreference);
-@@ -220,12 +204,6 @@ public class PrivacySettings
+@@ -220,12 +203,6 @@ public class PrivacySettings
secureDnsPref.setSummary(SecureDnsSettings.getSummary(getContext()));
}
diff --git a/build/patches/Disable-StartSurface-feature.patch b/build/patches/Disable-StartSurface-feature.patch
index 0d0a4fe8..a6c98316 100644
--- a/build/patches/Disable-StartSurface-feature.patch
+++ b/build/patches/Disable-StartSurface-feature.patch
@@ -12,7 +12,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
-@@ -1075,8 +1075,8 @@ BASE_FEATURE(kShowExtendedPreloadingSetting,
+@@ -1081,8 +1081,8 @@ BASE_FEATURE(kShowExtendedPreloadingSetting,
base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kStartSurfaceAndroid,
diff --git a/build/patches/Disable-TLS-resumption.patch b/build/patches/Disable-TLS-resumption.patch
index 4defcc0f..ac2f96de 100644
--- a/build/patches/Disable-TLS-resumption.patch
+++ b/build/patches/Disable-TLS-resumption.patch
@@ -89,19 +89,19 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio
diff --git a/net/base/features.cc b/net/base/features.cc
--- a/net/base/features.cc
+++ b/net/base/features.cc
-@@ -110,6 +110,12 @@ BASE_FEATURE(kPartitionExpectCTStateByNetworkIsolationKey,
- base::FEATURE_ENABLED_BY_DEFAULT); // in Bromite
+@@ -61,6 +61,12 @@ const base::FeatureParam kUseDnsHttpsSvcbSecureExtraTimeMin{
+ &kUseDnsHttpsSvcb, "UseDnsHttpsSvcbSecureExtraTimeMin",
+ base::Milliseconds(5)};
- BASE_FEATURE(kPartitionNelAndReportingByNetworkIsolationKey,
+const base::Feature kDisableTLSResumption{"DisableTLSResumption",
+ base::FEATURE_ENABLED_BY_DEFAULT};
+
+const base::Feature kLogTLSResumption{"LogTLSResumption",
+ base::FEATURE_DISABLED_BY_DEFAULT};
+
- "PartitionNelAndReportingByNetworkIsolationKey", // must be enabled
- base::FEATURE_ENABLED_BY_DEFAULT); // in Bromite
-
+ BASE_FEATURE(kUseDnsHttpsSvcbAlpn,
+ "UseDnsHttpsSvcbAlpn",
+ base::FEATURE_DISABLED_BY_DEFAULT);
diff --git a/net/base/features.h b/net/base/features.h
--- a/net/base/features.h
+++ b/net/base/features.h
diff --git a/build/patches/Disable-all-predictors-code.patch b/build/patches/Disable-all-predictors-code.patch
index d9b50836..cbafad7b 100644
--- a/build/patches/Disable-all-predictors-code.patch
+++ b/build/patches/Disable-all-predictors-code.patch
@@ -6,7 +6,6 @@ Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
.../chrome_hints_manager.cc | 1 +
- .../optimization_guide_keyed_service.cc | 4 ++
chrome/common/chrome_features.cc | 8 ++--
.../optimization_guide/core/hints_fetcher.cc | 1 +
.../optimization_guide/core/hints_manager.cc | 5 +++
@@ -16,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
components/optimization_guide/features.gni | 4 +-
components/permissions/features.cc | 8 ++--
third_party/blink/common/features.cc | 8 +---
- 11 files changed, 44 insertions(+), 40 deletions(-)
+ 10 files changed, 40 insertions(+), 40 deletions(-)
diff --git a/chrome/browser/optimization_guide/chrome_hints_manager.cc b/chrome/browser/optimization_guide/chrome_hints_manager.cc
--- a/chrome/browser/optimization_guide/chrome_hints_manager.cc
@@ -29,20 +28,6 @@ diff --git a/chrome/browser/optimization_guide/chrome_hints_manager.cc b/chrome/
if (prediction->prediction_source() !=
NavigationPredictorKeyedService::PredictionSource::
-diff --git a/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc b/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc
---- a/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc
-+++ b/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc
-@@ -113,6 +113,10 @@ OptimizationGuideKeyedService::MaybeCreatePushNotificationManager(
- if (optimization_guide::features::IsPushNotificationsEnabled()) {
- auto push_notification_manager =
- std::make_unique();
-+#if BUILDFLAG(IS_ANDROID)
-+ push_notification_manager->AddObserver(
-+ PriceTrackingNotificationBridge::GetForBrowserContext(profile));
-+#endif
- return push_notification_manager;
- }
- return nullptr;
diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
--- a/chrome/common/chrome_features.cc
+++ b/chrome/common/chrome_features.cc
diff --git a/build/patches/Disable-conversion-measurement-api.patch b/build/patches/Disable-conversion-measurement-api.patch
index fdc2eca8..c3a4a031 100644
--- a/build/patches/Disable-conversion-measurement-api.patch
+++ b/build/patches/Disable-conversion-measurement-api.patch
@@ -17,13 +17,11 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../aggregatable_report_sender.cc | 15 +++++++--------
.../attribution_reporting/attribution_host.cc | 1 +
.../attribution_report_network_sender.cc | 15 ++++++++-------
- .../attribution_storage_sql.cc | 6 ------
- .../attribution_storage_sql.h | 3 ---
content/browser/storage_partition_impl.cc | 7 +------
content/public/browser/navigation_controller.cc | 1 -
third_party/blink/common/features.cc | 4 ++--
.../platform/runtime_enabled_features.json5 | 7 +++++++
- 12 files changed, 32 insertions(+), 42 deletions(-)
+ 10 files changed, 32 insertions(+), 33 deletions(-)
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc
@@ -144,35 +142,6 @@ diff --git a/content/browser/attribution_reporting/attribution_report_network_se
network::SimpleURLLoader* loader = it->get();
// Consider a non-200 HTTP code as a non-internal error.
-diff --git a/content/browser/attribution_reporting/attribution_storage_sql.cc b/content/browser/attribution_reporting/attribution_storage_sql.cc
---- a/content/browser/attribution_reporting/attribution_storage_sql.cc
-+++ b/content/browser/attribution_reporting/attribution_storage_sql.cc
-@@ -424,12 +424,6 @@ DestinationLimitResult GetDestinationLimitResult(
-
- } // namespace
-
--// static
--bool AttributionStorageSql::DeleteStorageForTesting(
-- const base::FilePath& user_data_directory) {
-- return sql::Database::Delete(DatabasePath(user_data_directory));
--}
--
- AttributionStorageSql::AttributionStorageSql(
- const base::FilePath& user_data_directory,
- std::unique_ptr delegate)
-diff --git a/content/browser/attribution_reporting/attribution_storage_sql.h b/content/browser/attribution_reporting/attribution_storage_sql.h
---- a/content/browser/attribution_reporting/attribution_storage_sql.h
-+++ b/content/browser/attribution_reporting/attribution_storage_sql.h
-@@ -50,9 +50,6 @@ class CONTENT_EXPORT AttributionStorageSql : public AttributionStorage {
- static const int kCompatibleVersionNumber;
- static const int kDeprecatedVersionNumber;
-
-- [[nodiscard]] static bool DeleteStorageForTesting(
-- const base::FilePath& user_data_directory);
--
- // If `user_data_directory` is empty, the DB is created in memory and no data
- // is persisted to disk.
- AttributionStorageSql(const base::FilePath& user_data_directory,
diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage_partition_impl.cc
--- a/content/browser/storage_partition_impl.cc
+++ b/content/browser/storage_partition_impl.cc
diff --git a/build/patches/Disable-fetching-of-all-field-trials.patch b/build/patches/Disable-fetching-of-all-field-trials.patch
index 63e2e781..dd52a1bd 100644
--- a/build/patches/Disable-fetching-of-all-field-trials.patch
+++ b/build/patches/Disable-fetching-of-all-field-trials.patch
@@ -54,24 +54,24 @@ diff --git a/android_webview/nonembedded/java/src/org/chromium/android_webview/s
diff --git a/chrome/browser/metrics/chrome_browser_sampling_trials.cc b/chrome/browser/metrics/chrome_browser_sampling_trials.cc
--- a/chrome/browser/metrics/chrome_browser_sampling_trials.cc
+++ b/chrome/browser/metrics/chrome_browser_sampling_trials.cc
-@@ -52,6 +52,8 @@ void CreateFallbackSamplingTrial(
- const base::FieldTrial::EntropyProvider& entropy_provider,
- const std::string& trial_name,
+@@ -54,6 +54,8 @@ void CreateFallbackSamplingTrial(
const std::string& feature_name,
-+ if ((true))
-+ return;
const int sampled_in_rate_per_mille,
base::FeatureList* feature_list) {
- scoped_refptr trial(
-@@ -90,6 +92,8 @@ void CreateFallbackSamplingTrial(
- // variations support. This should only be called when there is no existing
- // field trial controlling the sampling feature.
- void CreateFallbackUkmSamplingTrial(
+ if ((true))
+ return;
+ scoped_refptr trial(
+ base::FieldTrialList::FactoryGetFieldTrial(
+ trial_name, /*total_probability=*/1000, "Default", entropy_provider));
+@@ -93,6 +95,8 @@ void CreateFallbackUkmSamplingTrial(
const base::FieldTrial::EntropyProvider& entropy_provider,
bool is_stable_channel,
base::FeatureList* feature_list) {
++ if ((true))
++ return;
+ static const char kSampledGroup_Stable[] = "Sampled_NoSeed_Stable";
+ static const char kSampledGroup_Other[] = "Sampled_NoSeed_Other";
+ const char* sampled_group = kSampledGroup_Other;
diff --git a/components/ukm/ukm_recorder_impl.cc b/components/ukm/ukm_recorder_impl.cc
--- a/components/ukm/ukm_recorder_impl.cc
+++ b/components/ukm/ukm_recorder_impl.cc
diff --git a/build/patches/Disable-safe-browsing.patch b/build/patches/Disable-safe-browsing.patch
index fada1e58..bd4bb843 100644
--- a/build/patches/Disable-safe-browsing.patch
+++ b/build/patches/Disable-safe-browsing.patch
@@ -1978,7 +1978,7 @@ diff --git a/chrome/browser/permissions/permission_revocation_request.cc b/chrom
CrowdDenyPreloadData* crowd_deny = CrowdDenyPreloadData::GetInstance();
permissions::PermissionUmaUtil::RecordCrowdDenyVersionAtAbuseCheckTime(
crowd_deny->version_on_disk());
-@@ -156,6 +157,9 @@ void PermissionRevocationRequest::CheckAndRevokeIfBlocklisted() {
+@@ -156,10 +157,14 @@ void PermissionRevocationRequest::CheckAndRevokeIfBlocklisted() {
url::Origin::Create(origin_),
base::BindOnce(&PermissionRevocationRequest::OnSiteReputationReady,
weak_factory_.GetWeakPtr()));
@@ -1988,22 +1988,19 @@ diff --git a/chrome/browser/permissions/permission_revocation_request.cc b/chrom
}
void PermissionRevocationRequest::OnSiteReputationReady(
-@@ -172,6 +176,7 @@ void PermissionRevocationRequest::OnSiteReputationReady(
- case CrowdDenyPreloadData::SiteReputation::ABUSIVE_CONTENT:
- should_revoke_permission = NotificationsPermissionRevocationConfig::
- IsAbusiveOriginPermissionRevocationEnabled();
+ const CrowdDenyPreloadData::SiteReputation* site_reputation) {
+#if BUILDFLAG(FULL_SAFE_BROWSING)
- break;
- case CrowdDenyPreloadData::SiteReputation::DISRUPTIVE_BEHAVIOR:
- should_revoke_permission = NotificationsPermissionRevocationConfig::
-@@ -191,6 +196,7 @@ void PermissionRevocationRequest::OnSiteReputationReady(
- weak_factory_.GetWeakPtr(), site_reputation));
+ if (crowd_deny_request_start_time_.has_value()) {
+ crowd_deny_request_duration_ =
+ base::TimeTicks::Now() - crowd_deny_request_start_time_.value();
+@@ -192,6 +197,7 @@ void PermissionRevocationRequest::OnSiteReputationReady(
return;
}
-+#endif
}
++#endif
NotifyCallback(Outcome::PERMISSION_NOT_REVOKED);
}
+
diff --git a/chrome/browser/permissions/quiet_notification_permission_ui_config.cc b/chrome/browser/permissions/quiet_notification_permission_ui_config.cc
--- a/chrome/browser/permissions/quiet_notification_permission_ui_config.cc
+++ b/chrome/browser/permissions/quiet_notification_permission_ui_config.cc
@@ -2884,7 +2881,7 @@ diff --git a/components/safe_browsing/core/common/features.cc b/components/safe_
- "SafeBrowsingSuspiciousSiteTriggerQuota",
- base::FEATURE_ENABLED_BY_DEFAULT);
+ "SafeBrowsingSuspiciousSiteTriggerQuota", // disabled by default
-+ base::FEATURE_DISBLED_BY_DEFAULT); // in Bromite
++ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite
BASE_FEATURE(kThreatDomDetailsTagAndAttributeFeature,
"ThreatDomDetailsTagAttributes",
diff --git a/build/patches/Disable-smart-selection-by-default.patch b/build/patches/Disable-smart-selection-by-default.patch
index 2a8e951b..08d9aa2c 100644
--- a/build/patches/Disable-smart-selection-by-default.patch
+++ b/build/patches/Disable-smart-selection-by-default.patch
@@ -11,12 +11,12 @@ the ChromeSmartSelection feature flag.
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
.../contextualsearch/SelectionClientManager.java | 4 +++-
- .../browser/flags/android/chrome_feature_list.cc | 4 ++++
+ .../browser/flags/android/chrome_feature_list.cc | 5 +++++
.../browser/flags/android/chrome_feature_list.h | 1 +
.../chrome/browser/flags/ChromeFeatureList.java | 1 +
.../selection/SelectionPopupControllerImpl.java | 2 +-
testing/variations/fieldtrial_testing_config.json | 15 +++++++++++++++
- 6 files changed, 25 insertions(+), 2 deletions(-)
+ 6 files changed, 26 insertions(+), 2 deletions(-)
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/SelectionClientManager.java b/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/SelectionClientManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/SelectionClientManager.java
@@ -50,16 +50,17 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
&kCCTIncognitoAvailableToThirdParty,
&kCCTNewDownloadTab,
&kCCTPackageNameRecording,
-@@ -603,6 +604,9 @@ BASE_FEATURE(kCCTResizableAlwaysShowNavBarButtons,
+@@ -996,6 +997,10 @@ BASE_FEATURE(kDiscoverFeedMultiColumn,
+ "DiscoverFeedMultiColumn",
+ base::FEATURE_DISABLED_BY_DEFAULT);
- BASE_FEATURE(kCCTResizableForFirstParties,
- "CCTResizableForFirstParties",
-+const base::Feature kChromeSmartSelection{"ChromeSmartSelection",
-+ base::FEATURE_DISABLED_BY_DEFAULT};
++BASE_FEATURE(kChromeSmartSelection,
++ "ChromeSmartSelection",
++ base::FEATURE_DISABLED_BY_DEFAULT);
+
- base::FEATURE_ENABLED_BY_DEFAULT);
-
- BASE_FEATURE(kCCTResizableForThirdParties,
+ BASE_FEATURE(kTabStripRedesign,
+ "TabStripRedesign",
+ base::FEATURE_DISABLED_BY_DEFAULT);
diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h
--- a/chrome/browser/flags/android/chrome_feature_list.h
+++ b/chrome/browser/flags/android/chrome_feature_list.h
diff --git a/build/patches/Enable-ECH-by-default.patch b/build/patches/Enable-ECH-by-default.patch
index 6c10de9f..24e5c7e1 100644
--- a/build/patches/Enable-ECH-by-default.patch
+++ b/build/patches/Enable-ECH-by-default.patch
@@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/net/base/features.cc b/net/base/features.cc
--- a/net/base/features.cc
+++ b/net/base/features.cc
-@@ -70,8 +70,8 @@ BASE_FEATURE(kEnableTLS13EarlyData,
+@@ -76,8 +76,8 @@ BASE_FEATURE(kEnableTLS13EarlyData,
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kEncryptedClientHello,
diff --git a/build/patches/Enable-share-intent.patch b/build/patches/Enable-share-intent.patch
index 8e9bdd52..ec772f7b 100644
--- a/build/patches/Enable-share-intent.patch
+++ b/build/patches/Enable-share-intent.patch
@@ -19,11 +19,11 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
chrome/browser/about_flags.cc | 4 +
chrome/browser/flag_descriptions.cc | 5 +
chrome/browser/flag_descriptions.h | 3 +
- .../flags/android/chrome_feature_list.cc | 4 +
+ .../flags/android/chrome_feature_list.cc | 5 +
.../flags/android/chrome_feature_list.h | 1 +
.../browser/flags/ChromeFeatureList.java | 1 +
.../strings/android_chrome_strings.grd | 13 ++
- 13 files changed, 255 insertions(+)
+ 13 files changed, 256 insertions(+)
create mode 100644 chrome/android/java/res/layout/sharing_intent_content.xml
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/sharing/shared_intent/SharedIntentShareActivity.java
@@ -41,7 +41,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
-@@ -970,6 +970,7 @@ chrome_java_sources = [
+@@ -973,6 +973,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/sharing/click_to_call/ClickToCallUma.java",
"java/src/org/chromium/chrome/browser/sharing/shared_clipboard/SharedClipboardMessageHandler.java",
"java/src/org/chromium/chrome/browser/sharing/sms_fetcher/SmsFetcherMessageHandler.java",
@@ -353,7 +353,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
-@@ -272,6 +272,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
+@@ -273,6 +273,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kRelatedSearchesAlternateUx,
&kRelatedSearchesInBar,
&kRelatedSearchesSimplifiedUx,
@@ -361,20 +361,21 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
&kRelatedSearchesUi,
&kRequestDesktopSiteDefaults,
&kRequestDesktopSiteDefaultsControl,
-@@ -727,6 +728,9 @@ BASE_FEATURE(kDownloadAutoResumptionThrottling,
+@@ -936,6 +937,10 @@ BASE_FEATURE(kSafeModeForCachedFlags,
+ "SafeModeForCachedFlags",
+ base::FEATURE_DISABLED_BY_DEFAULT);
- BASE_FEATURE(kDownloadHomeForExternalApp,
- "DownloadHomeForExternalApp",
-+const base::Feature kSharedIntentUI{
-+ "SharedIntentUI", base::FEATURE_ENABLED_BY_DEFAULT};
++BASE_FEATURE(kSharedIntentUI,
++ "SharedIntentUI",
++ base::FEATURE_ENABLED_BY_DEFAULT);
+
- base::FEATURE_ENABLED_BY_DEFAULT);
-
- BASE_FEATURE(kDownloadFileProvider,
+ BASE_FEATURE(kShareButtonInTopToolbar,
+ "ShareButtonInTopToolbar",
+ base::FEATURE_DISABLED_BY_DEFAULT);
diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h
--- a/chrome/browser/flags/android/chrome_feature_list.h
+++ b/chrome/browser/flags/android/chrome_feature_list.h
-@@ -140,6 +140,7 @@ BASE_DECLARE_FEATURE(kSearchEnginePromoExistingDeviceV2);
+@@ -141,6 +141,7 @@ BASE_DECLARE_FEATURE(kSearchEnginePromoExistingDeviceV2);
BASE_DECLARE_FEATURE(kSearchEnginePromoNewDevice);
BASE_DECLARE_FEATURE(kSearchEnginePromoNewDeviceV2);
BASE_DECLARE_FEATURE(kShareButtonInTopToolbar);
@@ -385,7 +386,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
-@@ -509,6 +509,7 @@ public abstract class ChromeFeatureList {
+@@ -510,6 +510,7 @@ public abstract class ChromeFeatureList {
public static final String QUIET_NOTIFICATION_PROMPTS = "QuietNotificationPrompts";
public static final String REACHED_CODE_PROFILER = "ReachedCodeProfiler";
public static final String READ_LATER = "ReadLater";
@@ -396,7 +397,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
-@@ -4834,6 +4834,19 @@ To change this setting, <resetlink> reset sync<resetlink>reset sync
diff --git a/build/patches/History-number-of-days-privacy-setting.patch b/build/patches/History-number-of-days-privacy-setting.patch
index 88e26160..00319078 100644
--- a/build/patches/History-number-of-days-privacy-setting.patch
+++ b/build/patches/History-number-of-days-privacy-setting.patch
@@ -67,7 +67,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
/**
* Fragment to keep track of the all the privacy related preferences.
*/
-@@ -78,6 +82,8 @@ public class PrivacySettings
+@@ -77,6 +81,8 @@ public class PrivacySettings
private ChromeSwitchPreference allowCustomTabIntentsPref;
private ChromeSwitchPreference openExternalLinksPref;
@@ -76,7 +76,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
PrivacyPreferencesManagerImpl privacyPrefManager =
-@@ -119,6 +125,40 @@ public class PrivacySettings
+@@ -118,6 +124,40 @@ public class PrivacySettings
Preference secureDnsPref = findPreference(PREF_SECURE_DNS);
secureDnsPref.setVisible(SecureDnsSettings.isUiEnabled());
@@ -117,7 +117,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
updatePreferences();
}
-@@ -218,6 +258,29 @@ public class PrivacySettings
+@@ -217,6 +257,29 @@ public class PrivacySettings
};
}
diff --git a/build/patches/Inject-scripts-for-AMP-tracking-ads-and-video.patch b/build/patches/Inject-scripts-for-AMP-tracking-ads-and-video.patch
index a2496751..011cf2f0 100644
--- a/build/patches/Inject-scripts-for-AMP-tracking-ads-and-video.patch
+++ b/build/patches/Inject-scripts-for-AMP-tracking-ads-and-video.patch
@@ -59,7 +59,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
+void Document::injectScripts() {
+ // determine whether this is a search results page
+ const WTF::String& host = url_.Host();
-+ if ((host == nullptr) || host.IsEmpty())
++ if ((host == nullptr) || host.empty())
+ return;
+
+ auto* bodyElement = body();
@@ -108,7 +108,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
+ for (unsigned i = 0; i < source_length; ++i) {
+ Element* element = s->item(i);
+ const AtomicString& nonce = element->nonce();
-+ if ((nonce != g_null_atom) && !nonce.IsEmpty())
++ if ((nonce != g_null_atom) && !nonce.empty())
+ return nonce;
+ }
+ return g_null_atom;
diff --git a/build/patches/Partition-Blink-memory-cache.patch b/build/patches/Partition-Blink-memory-cache.patch
index b48b4a18..326d6c69 100644
--- a/build/patches/Partition-Blink-memory-cache.patch
+++ b/build/patches/Partition-Blink-memory-cache.patch
@@ -59,7 +59,7 @@ diff --git a/third_party/blink/renderer/core/inspector/inspector_page_agent.cc b
+ if (!cached_resource && document->TopFrameOrigin()) {
cached_resource = MemoryCache::Get()->ResourceForURL(
- url, document->Fetcher()->GetCacheIdentifier(url));
-+ url, document->Fetcher()->GetCacheIdentifier(url), document->TopFrameOrigin());
++ url, document->Fetcher()->GetCacheIdentifier(url, document->TopFrameOrigin()));
}
if (!cached_resource)
cached_resource = loader->ResourceForURL(url);
@@ -84,7 +84,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/memory_cache.cc b/
bool MemoryCache::Contains(const Resource* resource) const {
- if (!resource || resource->Url().IsEmpty())
-+ if (!resource || resource->Url().IsEmpty() || resource->CacheIdentifier().IsEmpty())
++ if (!resource || resource->Url().IsEmpty() || resource->CacheIdentifier().empty())
return false;
const auto resource_maps_it =
@@ -98,7 +98,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/memory_cache.cc b/
-
Resource* MemoryCache::ResourceForURL(const KURL& resource_url,
const String& cache_identifier) const {
-+ if (cache_identifier.IsEmpty()) return nullptr;
++ if (cache_identifier.empty()) return nullptr;
DCHECK(WTF::IsMainThread());
if (!resource_url.IsValid() || resource_url.IsNull())
return nullptr;
diff --git a/build/patches/Partition-blobs-by-top-frame-URL.patch b/build/patches/Partition-blobs-by-top-frame-URL.patch
index dbf6b1fe..1e3d2aeb 100644
--- a/build/patches/Partition-blobs-by-top-frame-URL.patch
+++ b/build/patches/Partition-blobs-by-top-frame-URL.patch
@@ -197,21 +197,21 @@ diff --git a/third_party/blink/renderer/core/fileapi/public_url_manager.cc b/thi
} // namespace
PublicURLManager::PublicURLManager(ExecutionContext* context)
-@@ -176,6 +191,7 @@ void PublicURLManager::Resolve(
+@@ -217,6 +232,7 @@ void PublicURLManager::Resolve(
- auto metrics_callback = [](ExecutionContext* execution_context,
- const absl::optional&
+ url_store_->ResolveAsURLLoaderFactory(
+ url, std::move(factory_receiver),
+ GetExecutionContext()->GetAgentClusterID(), GetInsecureTopLevelSite(GetExecutionContext()),
- unsafe_agent_cluster_id,
- const absl::optional&
- unsafe_top_level_site) {
-@@ -249,6 +265,7 @@ void PublicURLManager::Resolve(
- auto metrics_callback = [](ExecutionContext* execution_context,
- const absl::optional&
- unsafe_agent_cluster_id) {
+ WTF::BindOnce(std::move(metrics_callback),
+ WrapPersistent(GetExecutionContext())));
+ }
+@@ -258,6 +274,7 @@ void PublicURLManager::Resolve(
+
+ url_store_->ResolveForNavigation(
+ url, std::move(token_receiver),
+ GetExecutionContext()->GetAgentClusterID(), GetInsecureTopLevelSite(GetExecutionContext()),
- if (execution_context->GetAgentClusterID() != unsafe_agent_cluster_id) {
- execution_context->CountUse(
- WebFeature::
+ WTF::BindOnce(std::move(metrics_callback),
+ WrapPersistent(GetExecutionContext())));
+ }
--
2.25.1
diff --git a/build/patches/Re-introduce-modal-dialog-flag-to-close-all-tabs.patch b/build/patches/Re-introduce-modal-dialog-flag-to-close-all-tabs.patch
index 1d9a2ac8..b570b179 100644
--- a/build/patches/Re-introduce-modal-dialog-flag-to-close-all-tabs.patch
+++ b/build/patches/Re-introduce-modal-dialog-flag-to-close-all-tabs.patch
@@ -14,10 +14,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
chrome/browser/about_flags.cc | 7 ++++++
chrome/browser/flag_descriptions.cc | 5 ++++
chrome/browser/flag_descriptions.h | 3 +++
- .../flags/android/chrome_feature_list.cc | 8 +++++--
+ .../flags/android/chrome_feature_list.cc | 9 ++++++--
.../flags/android/chrome_feature_list.h | 1 +
.../browser/flags/ChromeFeatureList.java | 1 +
- 9 files changed, 55 insertions(+), 2 deletions(-)
+ 9 files changed, 56 insertions(+), 2 deletions(-)
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/CloseAllTabsDialog.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/CloseAllTabsDialog.java
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/CloseAllTabsDialog.java
@@ -185,17 +185,18 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
&kAppToWebAttribution,
&kBackgroundThreadPool,
&kCastDeviceFilter,
-@@ -524,6 +525,9 @@ BASE_FEATURE(kConditionalTabStripAndroid,
+@@ -525,6 +526,10 @@ BASE_FEATURE(kConditionalTabStripAndroid,
"ConditionalTabStripAndroid",
base::FEATURE_DISABLED_BY_DEFAULT);
-+const base::Feature kCloseAllTabsModalDialog{"CloseAllTabsModalDialog",
-+ base::FEATURE_ENABLED_BY_DEFAULT};
++BASE_FEATURE(kCloseAllTabsModalDialog,
++ "CloseAllTabsModalDialog",
++ base::FEATURE_ENABLED_BY_DEFAULT);
+
// Used in downstream code.
BASE_FEATURE(kCastDeviceFilter,
"CastDeviceFilter",
-@@ -534,8 +538,8 @@ BASE_FEATURE(kClearOmniboxFocusAfterNavigation,
+@@ -535,8 +540,8 @@ BASE_FEATURE(kClearOmniboxFocusAfterNavigation,
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kCloseTabSuggestions,
diff --git a/build/patches/Remove-HTTP-referrals-in-cross-origin-navigation.patch b/build/patches/Remove-HTTP-referrals-in-cross-origin-navigation.patch
index 73598702..f6b70830 100644
--- a/build/patches/Remove-HTTP-referrals-in-cross-origin-navigation.patch
+++ b/build/patches/Remove-HTTP-referrals-in-cross-origin-navigation.patch
@@ -43,7 +43,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data";
private static final String PREF_PRIVACY_GUIDE = "privacy_guide";
private static final String PREF_INCOGNITO_LOCK = "incognito_lock";
-@@ -175,6 +176,9 @@ public class PrivacySettings
+@@ -174,6 +175,9 @@ public class PrivacySettings
} else if (PREF_CAN_MAKE_PAYMENT.equals(key)) {
UserPrefs.get(Profile.getLastUsedRegularProfile())
.setBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue);
@@ -53,7 +53,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
} else if (PREF_HTTPS_FIRST_MODE.equals(key)) {
UserPrefs.get(Profile.getLastUsedRegularProfile())
.setBoolean(Pref.HTTPS_ONLY_MODE_ENABLED, (boolean) newValue);
-@@ -228,6 +232,10 @@ public class PrivacySettings
+@@ -227,6 +231,10 @@ public class PrivacySettings
: R.string.text_off);
}
diff --git a/build/patches/Restore-Search-Ready-Omnibox-flag.patch b/build/patches/Restore-Search-Ready-Omnibox-flag.patch
index 573310c4..e29d265e 100644
--- a/build/patches/Restore-Search-Ready-Omnibox-flag.patch
+++ b/build/patches/Restore-Search-Ready-Omnibox-flag.patch
@@ -13,11 +13,11 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
chrome/browser/flag-metadata.json | 5 +++++
chrome/browser/flag_descriptions.cc | 5 +++++
chrome/browser/flag_descriptions.h | 3 +++
- chrome/browser/flags/android/chrome_feature_list.cc | 4 ++++
+ chrome/browser/flags/android/chrome_feature_list.cc | 5 +++++
chrome/browser/flags/android/chrome_feature_list.h | 1 +
.../chrome/browser/flags/ChromeFeatureList.java | 1 +
.../suggestions/DropdownItemViewInfoListBuilder.java | 11 +++++++++--
- 8 files changed, 31 insertions(+), 2 deletions(-)
+ 8 files changed, 32 insertions(+), 2 deletions(-)
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc
@@ -86,16 +86,17 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
&kRelatedSearches,
&kRelatedSearchesAlternateUx,
&kRelatedSearchesInBar,
-@@ -804,6 +805,9 @@ BASE_FEATURE(kNotificationPermissionVariant,
+@@ -830,6 +831,10 @@ BASE_FEATURE(kOmniboxModernizeVisualUpdate,
+ "OmniboxModernizeVisualUpdate",
+ base::FEATURE_DISABLED_BY_DEFAULT);
- BASE_FEATURE(kInstanceSwitcher,
- "InstanceSwitcher",
-+const base::Feature kSearchReadyOmniboxFeature{
-+ "SearchReadyOmnibox", base::FEATURE_DISABLED_BY_DEFAULT};
++BASE_FEATURE(kSearchReadyOmniboxFeature,
++ "SearchReadyOmnibox",
++ base::FEATURE_DISABLED_BY_DEFAULT);
+
- base::FEATURE_ENABLED_BY_DEFAULT);
-
- BASE_FEATURE(kPageAnnotationsService,
+ BASE_FEATURE(kOptimizeGeolocationHeaderGeneration,
+ "OptimizeGeolocationHeaderGeneration",
+ base::FEATURE_DISABLED_BY_DEFAULT);
diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h
--- a/chrome/browser/flags/android/chrome_feature_list.h
+++ b/chrome/browser/flags/android/chrome_feature_list.h
diff --git a/build/patches/Restore-Simplified-NTP-launch.patch b/build/patches/Restore-Simplified-NTP-launch.patch
index 28fdf1c0..c43a2a92 100644
--- a/build/patches/Restore-Simplified-NTP-launch.patch
+++ b/build/patches/Restore-Simplified-NTP-launch.patch
@@ -365,8 +365,8 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
&kInstanceSwitcher,
&kInstantStart,
&kIsVoiceSearchEnabledCache,
-@@ -814,6 +815,10 @@ const base::Feature kSearchReadyOmniboxFeature{
-
+@@ -813,6 +814,10 @@ BASE_FEATURE(kInstanceSwitcher,
+ "InstanceSwitcher",
base::FEATURE_ENABLED_BY_DEFAULT);
+BASE_FEATURE(kSimplifiedNTP,
@@ -379,7 +379,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h
--- a/chrome/browser/flags/android/chrome_feature_list.h
+++ b/chrome/browser/flags/android/chrome_feature_list.h
-@@ -111,6 +111,7 @@ BASE_DECLARE_FEATURE(kOmahaMinSdkVersionAndroid);
+@@ -112,6 +112,7 @@ BASE_DECLARE_FEATURE(kOmahaMinSdkVersionAndroid);
BASE_DECLARE_FEATURE(kOmniboxModernizeVisualUpdate);
BASE_DECLARE_FEATURE(kOptimizeGeolocationHeaderGeneration);
BASE_DECLARE_FEATURE(kPageAnnotationsService);
@@ -390,7 +390,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
-@@ -412,6 +412,7 @@ public abstract class ChromeFeatureList {
+@@ -413,6 +413,7 @@ public abstract class ChromeFeatureList {
public static final String MESSAGES_FOR_ANDROID_ADS_BLOCKED = "MessagesForAndroidAdsBlocked";
public static final String MESSAGES_FOR_ANDROID_CHROME_SURVEY =
"MessagesForAndroidChromeSurvey";
diff --git a/build/patches/Restore-offline-indicator-v2-flag.patch b/build/patches/Restore-offline-indicator-v2-flag.patch
index 9d329973..5c1bd16a 100644
--- a/build/patches/Restore-offline-indicator-v2-flag.patch
+++ b/build/patches/Restore-offline-indicator-v2-flag.patch
@@ -13,10 +13,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
chrome/browser/flag-metadata.json | 5 +++
chrome/browser/flag_descriptions.cc | 4 ++
chrome/browser/flag_descriptions.h | 3 ++
- .../flags/android/chrome_feature_list.cc | 4 ++
+ .../flags/android/chrome_feature_list.cc | 5 +++
.../flags/android/chrome_feature_list.h | 1 +
.../browser/flags/ChromeFeatureList.java | 1 +
- 10 files changed, 66 insertions(+), 4 deletions(-)
+ 10 files changed, 67 insertions(+), 4 deletions(-)
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineDetector.java b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineDetector.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineDetector.java
@@ -191,16 +191,17 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
&kPageAnnotationsService,
&kInlineUpdateFlow,
&kBookmarksImprovedSaveFlow,
-@@ -748,6 +749,9 @@ BASE_FEATURE(kDownloadNotificationBadge,
- BASE_FEATURE(kDownloadRename,
+@@ -745,6 +746,10 @@ BASE_FEATURE(kDownloadRename,
"DownloadRename",
base::FEATURE_ENABLED_BY_DEFAULT);
-+const base::Feature kOfflineIndicatorV2{"OfflineIndicatorV2",
-+ base::FEATURE_ENABLED_BY_DEFAULT};
-+
++BASE_FEATURE(kOfflineIndicatorV2,
++ "OfflineIndicatorV2",
++ base::FEATURE_ENABLED_BY_DEFAULT);
++
BASE_FEATURE(kDuetTabStripIntegrationAndroid,
"DuetTabStripIntegrationAndroid",
+ base::FEATURE_DISABLED_BY_DEFAULT);
diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h
--- a/chrome/browser/flags/android/chrome_feature_list.h
+++ b/chrome/browser/flags/android/chrome_feature_list.h
diff --git a/build/patches/Timezone-customization.patch b/build/patches/Timezone-customization.patch
index ae9d20bb..d0ca4ef5 100644
--- a/build/patches/Timezone-customization.patch
+++ b/build/patches/Timezone-customization.patch
@@ -868,8 +868,8 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
+ return WebsitePreferenceBridgeJni.get().getCustomTimezone(browserContextHandle);
+ }
+
-+ public static void setCustomTimezone(BrowserContextHandle browserContextHandle, String timezone) {
-+ WebsitePreferenceBridgeJni.get().setCustomTimezone(browserContextHandle, timezone);
++ public static void setCustomTimezone(BrowserContextHandle browserContextHandle, String custom_timezone) {
++ WebsitePreferenceBridgeJni.get().setCustomTimezone(browserContextHandle, custom_timezone);
+ }
+
@NativeMethods
@@ -880,7 +880,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
String toDomainWildcardPattern(String pattern);
String toHostOnlyPattern(String pattern);
+ String getCustomTimezone(BrowserContextHandle browserContextHandle);
-+ void setCustomTimezone(BrowserContextHandle browserContextHandle, String timezone);
++ void setCustomTimezone(BrowserContextHandle browserContextHandle, String custom_timezone);
}
}
diff --git a/components/browser_ui/site_settings/android/website_preference_bridge.cc b/components/browser_ui/site_settings/android/website_preference_bridge.cc
@@ -894,17 +894,17 @@ diff --git a/components/browser_ui/site_settings/android/website_preference_brid
+static void JNI_WebsitePreferenceBridge_SetCustomTimezone(
+ JNIEnv* env,
+ const JavaParamRef& jbrowser_context_handle,
-+ const JavaParamRef& timezone) {
-+ std::string new_timezone = ConvertJavaStringToUTF8(env, timezone);
++ const JavaParamRef& custom_timezone) {
++ std::string new_timezone = ConvertJavaStringToUTF8(env, custom_timezone);
+ GetHostContentSettingsMap(jbrowser_context_handle)->SetTimezoneOverrideValue(new_timezone);
+}
+
+static base::android::ScopedJavaLocalRef JNI_WebsitePreferenceBridge_GetCustomTimezone(
+ JNIEnv* env,
+ const JavaParamRef& jbrowser_context_handle) {
-+ std::string timezone;
-+ GetHostContentSettingsMap(jbrowser_context_handle)->GetTimezoneOverrideValue(timezone);
-+ return ConvertUTF8ToJavaString(env, timezone);
++ std::string custom_timezone;
++ GetHostContentSettingsMap(jbrowser_context_handle)->GetTimezoneOverrideValue(custom_timezone);
++ return ConvertUTF8ToJavaString(env, custom_timezone);
+}
diff --git a/components/browser_ui/strings/android/site_settings.grdp b/components/browser_ui/strings/android/site_settings.grdp
--- a/components/browser_ui/strings/android/site_settings.grdp
@@ -1063,12 +1063,12 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map.
provider->SetClockForTesting(clock);
}
-+void HostContentSettingsMap::GetTimezoneOverrideValue(std::string& timezone) const {
-+ GetPrefProvider()->GetPrefTimezoneOverrideValue(timezone);
++void HostContentSettingsMap::GetTimezoneOverrideValue(std::string& custom_timezone) const {
++ GetPrefProvider()->GetPrefTimezoneOverrideValue(custom_timezone);
+}
+
-+void HostContentSettingsMap::SetTimezoneOverrideValue(const std::string& timezone) {
-+ GetPrefProvider()->SetPrefTimezoneOverrideValue(timezone);
++void HostContentSettingsMap::SetTimezoneOverrideValue(const std::string& custom_timezone) {
++ GetPrefProvider()->SetPrefTimezoneOverrideValue(custom_timezone);
+}
+
void HostContentSettingsMap::RecordExceptionMetrics() {
@@ -1081,8 +1081,8 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map.
allow_invalid_secondary_pattern_for_testing_ = allow;
}
-+ void GetTimezoneOverrideValue(std::string& timezone) const;
-+ void SetTimezoneOverrideValue(const std::string& timezone);
++ void GetTimezoneOverrideValue(std::string& custom_timezone) const;
++ void SetTimezoneOverrideValue(const std::string& custom_timezone);
+
private:
friend class base::RefCountedThreadSafe;
diff --git a/build/patches/Unexpire-tab-groups-flags.patch b/build/patches/Unexpire-tab-groups-flags.patch
index 00492fc2..4829ac4f 100644
--- a/build/patches/Unexpire-tab-groups-flags.patch
+++ b/build/patches/Unexpire-tab-groups-flags.patch
@@ -35,7 +35,7 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
-@@ -973,16 +973,16 @@ BASE_FEATURE(kTabEngagementReportingAndroid,
+@@ -977,16 +977,16 @@ BASE_FEATURE(kTabEngagementReportingAndroid,
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kTabGroupsAndroid,
diff --git a/build/patches/User-agent-customization.patch b/build/patches/User-agent-customization.patch
index 5da6225a..9c57fe62 100644
--- a/build/patches/User-agent-customization.patch
+++ b/build/patches/User-agent-customization.patch
@@ -83,7 +83,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
-@@ -895,6 +895,7 @@ chrome_java_sources = [
+@@ -898,6 +898,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/payments/ui/DimmingDialog.java",
"java/src/org/chromium/chrome/browser/payments/ui/LineItem.java",
"java/src/org/chromium/chrome/browser/payments/ui/PaymentAppComparator.java",
@@ -329,7 +329,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
+ boolean isOverrideUserAgentEnabled(boolean desktopMode);
+ void setOverrideUserAgentEnabled(boolean enabled, boolean desktopMode);
+ String getOverrideUserAgentValue(boolean desktopMode);
-+ void setOverrideUserAgentValue(String timezone, boolean desktopMode);
++ void setOverrideUserAgentValue(String user_agent, boolean desktopMode);
+ boolean isDesktopModeViewportMetaEnabled();
+ void setDesktopModeViewportMetaEnabled(boolean enabled);
}
@@ -939,7 +939,7 @@ diff --git a/chrome/browser/privacy/settings/java/src/org/chromium/chrome/browse
+ boolean isOverrideUserAgentEnabled(boolean desktopMode);
+ void setOverrideUserAgentEnabled(boolean enabled, boolean desktopMode);
+ String getOverrideUserAgentValue(boolean desktopMode);
-+ void setOverrideUserAgentValue(String timezone, boolean desktopMode);
++ void setOverrideUserAgentValue(String user_agent, boolean desktopMode);
+ boolean isDesktopModeViewportMetaEnabled();
+ void setDesktopModeViewportMetaEnabled(boolean enabled);
+
diff --git a/build/patches/ungoogled-chromium-no-special-hosts-domains.patch b/build/patches/ungoogled-chromium-no-special-hosts-domains.patch
index 655a2fc7..fb500d0d 100644
--- a/build/patches/ungoogled-chromium-no-special-hosts-domains.patch
+++ b/build/patches/ungoogled-chromium-no-special-hosts-domains.patch
@@ -7,20 +7,22 @@ Disable domain reliability detection
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
- .../domain_reliability/service_factory.cc | 24 +--
- components/domain_reliability/BUILD.gn | 42 ++--
+ .../domain_reliability/service_factory.cc | 24 +-
+ .../from_gws_page_load_metrics_observer.cc | 6 +-
+ components/domain_reliability/BUILD.gn | 42 ++-
.../domain_reliability/bake_in_configs.py | 2 +-
- .../domain_reliability/context_manager.cc | 22 +--
+ .../domain_reliability/context_manager.cc | 22 +-
.../domain_reliability/google_configs.cc | 10 +-
.../domain_reliability/google_configs.h | 8 +-
components/domain_reliability/uploader.cc | 2 +-
- components/google/core/common/google_util.cc | 186 +-----------------
+ components/google/core/common/google_util.cc | 243 +-----------------
+ components/google/core/common/google_util.h | 5 -
.../browser/page_load_metrics_util.cc | 4 +-
- .../common/page_load_metrics_util.cc | 33 +---
+ .../common/page_load_metrics_util.cc | 33 +--
components/search_engines/template_url.cc | 6 +-
net/base/url_util.cc | 21 --
services/network/network_context.cc | 2 +-
- 13 files changed, 41 insertions(+), 321 deletions(-)
+ 15 files changed, 41 insertions(+), 389 deletions(-)
diff --git a/chrome/browser/domain_reliability/service_factory.cc b/chrome/browser/domain_reliability/service_factory.cc
--- a/chrome/browser/domain_reliability/service_factory.cc
@@ -61,6 +63,29 @@ diff --git a/chrome/browser/domain_reliability/service_factory.cc b/chrome/brows
}
} // namespace domain_reliability
+diff --git a/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer.cc b/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer.cc
+--- a/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer.cc
++++ b/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer.cc
+@@ -394,8 +394,7 @@ FromGWSPageLoadMetricsLogger::~FromGWSPageLoadMetricsLogger() = default;
+ void FromGWSPageLoadMetricsLogger::SetPreviouslyCommittedUrl(const GURL& url) {
+ if (page_load_metrics::IsGoogleSearchResultUrl(url)) {
+ previously_committed_url_is_search_results_ = true;
+- navigation_initiated_search_mode_ =
+- google_util::GoogleSearchModeFromUrl(url);
++ navigation_initiated_search_mode_ = google_util::GoogleSearchMode::kWeb;
+ }
+ previously_committed_url_is_search_redirector_ =
+ page_load_metrics::IsGoogleSearchRedirectorUrl(url);
+@@ -412,8 +411,7 @@ void FromGWSPageLoadMetricsLogger::SetNavigationStateForSidePanel(
+ initiating_side_panel_url_ = initiating_side_panel_url;
+ navigation_initiated_via_link_ = navigation_initiated_via_link;
+ if (page_load_metrics::IsGoogleSearchResultUrl(initiating_side_panel_url)) {
+- navigation_initiated_search_mode_ =
+- google_util::GoogleSearchModeFromUrl(initiating_side_panel_url);
++ navigation_initiated_search_mode_ = google_util::GoogleSearchMode::kWeb;
+ }
+ }
+
diff --git a/components/domain_reliability/BUILD.gn b/components/domain_reliability/BUILD.gn
--- a/components/domain_reliability/BUILD.gn
+++ b/components/domain_reliability/BUILD.gn
@@ -241,14 +266,10 @@ diff --git a/components/domain_reliability/uploader.cc b/components/domain_relia
diff --git a/components/google/core/common/google_util.cc b/components/google/core/common/google_util.cc
--- a/components/google/core/common/google_util.cc
+++ b/components/google/core/common/google_util.cc
-@@ -27,63 +27,7 @@
+@@ -31,60 +31,6 @@ namespace google_util {
- namespace google_util {
+ namespace {
--// Helpers --------------------------------------------------------------------
--
--namespace {
--
-bool IsPathHomePageBase(base::StringPiece path) {
- return (path == "/") || (path == "/webhp");
-}
@@ -302,11 +323,11 @@ diff --git a/components/google/core/common/google_util.cc b/components/google/co
- std::string www_domain = base::StrCat({"www.", domain_in_lower_case});
- return base::EqualsCaseInsensitiveASCII(host_minus_tld, www_domain);
-}
-+// Global functions -----------------------------------------------------------
-
+-
// True if |url| is a valid URL with HTTP or HTTPS scheme. If |port_permission|
// is DISALLOW_NON_STANDARD_PORTS, this also requires |url| to use the standard
-@@ -99,14 +43,7 @@ bool IsValidURL(const GURL& url, PortPermission port_permission) {
+ // port for its scheme (80 for HTTP, 443 for HTTPS).
+@@ -99,40 +45,7 @@ bool IsValidURL(const GURL& url, PortPermission port_permission) {
bool IsCanonicalHostGoogleHostname(base::StringPiece canonical_host,
SubdomainPermission subdomain_permission) {
@@ -318,14 +339,21 @@ diff --git a/components/google/core/common/google_util.cc b/components/google/co
- base::MakeFixedFlatSet({GOOGLE_TLD_LIST});
- return IsValidHostName(canonical_host, "google", subdomain_permission,
- google_tlds);
-+ return false;
- }
-
- bool IsCanonicalHostYoutubeHostname(base::StringPiece canonical_host,
-@@ -122,17 +59,7 @@ bool IsCanonicalHostYoutubeHostname(base::StringPiece canonical_host,
- // Google subdomains for google search, and an HTTP or HTTPS scheme. Requires
- // |url| to use the standard port for its scheme (80 for HTTP, 443 for HTTPS).
- bool IsGoogleSearchSubdomainUrl(const GURL& url) {
+-}
+-
+-bool IsCanonicalHostYoutubeHostname(base::StringPiece canonical_host,
+- SubdomainPermission subdomain_permission) {
+- static constexpr auto youtube_tlds =
+- base::MakeFixedFlatSet({YOUTUBE_TLD_LIST});
+-
+- return IsValidHostName(canonical_host, "youtube", subdomain_permission,
+- youtube_tlds);
+-}
+-
+-// True if |url| is a valid URL with a host that is in the static list of
+-// Google subdomains for google search, and an HTTP or HTTPS scheme. Requires
+-// |url| to use the standard port for its scheme (80 for HTTP, 443 for HTTPS).
+-bool IsGoogleSearchSubdomainUrl(const GURL& url) {
- if (!IsValidURL(url, PortPermission::DISALLOW_NON_STANDARD_PORTS))
- return false;
-
@@ -341,7 +369,7 @@ diff --git a/components/google/core/common/google_util.cc b/components/google/co
}
} // namespace
-@@ -141,16 +68,6 @@ bool IsGoogleSearchSubdomainUrl(const GURL& url) {
+@@ -141,16 +54,6 @@ bool IsGoogleSearchSubdomainUrl(const GURL& url) {
const char kGoogleHomepageURL[] = "https://www.google.com/";
@@ -358,7 +386,7 @@ diff --git a/components/google/core/common/google_util.cc b/components/google/co
std::string GetGoogleLocale(const std::string& application_locale) {
// Google does not recognize "nb" for Norwegian Bokmal; it uses "no".
return (application_locale == "nb") ? "no" : application_locale;
-@@ -163,25 +80,7 @@ GURL AppendGoogleLocaleParam(const GURL& url,
+@@ -163,25 +66,7 @@ GURL AppendGoogleLocaleParam(const GURL& url,
}
std::string GetGoogleCountryCode(const GURL& google_homepage_url) {
@@ -385,7 +413,7 @@ diff --git a/components/google/core/common/google_util.cc b/components/google/co
}
GURL GetGoogleSearchURL(const GURL& google_homepage_url) {
-@@ -227,93 +126,24 @@ bool IsGoogleDomainUrl(const GURL& url,
+@@ -227,93 +112,24 @@ bool IsGoogleDomainUrl(const GURL& url,
bool IsGoogleHostname(base::StringPiece host,
SubdomainPermission subdomain_permission) {
@@ -483,6 +511,73 @@ diff --git a/components/google/core/common/google_util.cc b/components/google/co
return false;
}
+@@ -382,51 +198,4 @@ GURL AppendToAsyncQueryParam(const GURL& url,
+ return url.ReplaceComponents(replacements);
+ }
+
+-GoogleSearchMode GoogleSearchModeFromUrl(const GURL& url) {
+- static_assert(GoogleSearchMode::kMaxValue == GoogleSearchMode::kFlights,
+- "This function should be updated if new values are added to "
+- "GoogleSearchMode");
+-
+- base::StringPiece query_str = url.query_piece();
+- url::Component query(0, static_cast(url.query_piece().length()));
+- url::Component key, value;
+- GoogleSearchMode mode = GoogleSearchMode::kUnspecified;
+- while (url::ExtractQueryKeyValue(query_str.data(), &query, &key, &value)) {
+- base::StringPiece key_str = query_str.substr(key.begin, key.len);
+- if (key_str != "tbm") {
+- continue;
+- }
+- if (mode != GoogleSearchMode::kUnspecified) {
+- // There is more than one tbm parameter, which is not expected. Return
+- // kUnknown to signify the result can't be trusted.
+- return GoogleSearchMode::kUnknown;
+- }
+- base::StringPiece value_str = query_str.substr(value.begin, value.len);
+- if (value_str == "isch") {
+- mode = GoogleSearchMode::kImages;
+- } else if (value_str == "web") {
+- mode = GoogleSearchMode::kWeb;
+- } else if (value_str == "nws") {
+- mode = GoogleSearchMode::kNews;
+- } else if (value_str == "shop") {
+- mode = GoogleSearchMode::kShopping;
+- } else if (value_str == "vid") {
+- mode = GoogleSearchMode::kVideos;
+- } else if (value_str == "bks") {
+- mode = GoogleSearchMode::kBooks;
+- } else if (value_str == "flm") {
+- mode = GoogleSearchMode::kFlights;
+- } else if (value_str == "lcl") {
+- mode = GoogleSearchMode::kLocal;
+- } else {
+- mode = GoogleSearchMode::kUnknown;
+- }
+- }
+- if (mode == GoogleSearchMode::kUnspecified) {
+- // No tbm query parameter means this is the Web mode.
+- mode = GoogleSearchMode::kWeb;
+- }
+- return mode;
+-}
+-
+ } // namespace google_util
+diff --git a/components/google/core/common/google_util.h b/components/google/core/common/google_util.h
+--- a/components/google/core/common/google_util.h
++++ b/components/google/core/common/google_util.h
+@@ -154,11 +154,6 @@ GURL AppendToAsyncQueryParam(const GURL& url,
+ const std::string& key,
+ const std::string& value);
+
+-// Returns Google Search mode used by the user. This corresponds to the tab
+-// (e.g. web result, image results, video results, etc.) the user is on. This
+-// information is extracted from the "tbm" query parameter on the Search URL.
+-GoogleSearchMode GoogleSearchModeFromUrl(const GURL& url);
+-
+ } // namespace google_util
+
+ #endif // COMPONENTS_GOOGLE_CORE_COMMON_GOOGLE_UTIL_H_
diff --git a/components/page_load_metrics/browser/page_load_metrics_util.cc b/components/page_load_metrics/browser/page_load_metrics_util.cc
--- a/components/page_load_metrics/browser/page_load_metrics_util.cc
+++ b/components/page_load_metrics/browser/page_load_metrics_util.cc