From 37dc3f3f9abd8f38642a6044a90665630fcedd0f Mon Sep 17 00:00:00 2001 From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Sun, 27 Nov 2022 18:51:18 +0100 Subject: [PATCH] Further build and linking fixes --- build/bromite_patches_list.txt | 7 +- .../Add-AllowUserCertificates-flag.patch | 6 +- .../Add-a-proxy-configuration-page.patch | 48 +++--- .../Add-bookmark-import-export-actions.patch | 11 +- .../Add-menu-item-to-bookmark-all-tabs.patch | 2 +- ...ow-building-without-enable_reporting.patch | 17 +- build/patches/Bromite-auto-updater.patch | 38 ++--- ...ch => Bromite-subresource-adblocker.patch} | 6 +- .../Disable-FLoC-and-privacy-sandbox.patch | 11 +- .../Disable-StartSurface-feature.patch | 2 +- build/patches/Disable-TLS-resumption.patch | 12 +- .../patches/Disable-all-predictors-code.patch | 17 +- .../Disable-conversion-measurement-api.patch | 33 +--- ...Disable-fetching-of-all-field-trials.patch | 20 +-- build/patches/Disable-safe-browsing.patch | 21 ++- .../Disable-smart-selection-by-default.patch | 21 +-- build/patches/Enable-ECH-by-default.patch | 2 +- build/patches/Enable-share-intent.patch | 31 ++-- ...story-number-of-days-privacy-setting.patch | 6 +- ...ripts-for-AMP-tracking-ads-and-video.patch | 4 +- .../Partition-Blink-memory-cache.patch | 6 +- .../Partition-blobs-by-top-frame-URL.patch | 26 ++-- ...-modal-dialog-flag-to-close-all-tabs.patch | 13 +- ...referrals-in-cross-origin-navigation.patch | 4 +- .../Restore-Search-Ready-Omnibox-flag.patch | 21 +-- .../Restore-Simplified-NTP-launch.patch | 8 +- .../Restore-offline-indicator-v2-flag.patch | 15 +- build/patches/Timezone-customization.patch | 28 ++-- build/patches/Unexpire-tab-groups-flags.patch | 2 +- build/patches/User-agent-customization.patch | 6 +- ...ed-chromium-no-special-hosts-domains.patch | 147 ++++++++++++++---- 31 files changed, 328 insertions(+), 263 deletions(-) rename build/patches/{Bromite-AdBlockUpdaterService.patch => Bromite-subresource-adblocker.patch} (99%) 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