diff --git a/build/patches/Add-AllowUserCertificates-flag.patch b/build/patches/Add-AllowUserCertificates-flag.patch index 37f42830..0804319c 100644 --- a/build/patches/Add-AllowUserCertificates-flag.patch +++ b/build/patches/Add-AllowUserCertificates-flag.patch @@ -20,7 +20,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -260,6 +260,7 @@ import org.chromium.content_public.browser.LoadUrlParams; +@@ -255,6 +255,7 @@ import org.chromium.content_public.browser.LoadUrlParams; import org.chromium.content_public.browser.SelectionPopupController; import org.chromium.content_public.browser.WebContents; import org.chromium.content_public.common.ContentSwitches; @@ -28,7 +28,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv import org.chromium.printing.PrintManagerDelegateImpl; import org.chromium.printing.PrintingController; import org.chromium.printing.PrintingControllerImpl; -@@ -1118,6 +1119,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -1125,6 +1126,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity super.onStartWithNative(); ChromeActivitySessionTracker.getInstance().onStartWithNative(getProfileProviderSupplier()); @@ -40,7 +40,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv 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 -@@ -196,6 +196,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -201,6 +201,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &feed::kFeedNoViewCache, &feed::kFeedPerformanceStudy, &feed::kFeedRecyclerBinderUnmountOnDetach, @@ -58,7 +58,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f + public static final String ALLOW_USER_CERTIFICATES = "AllowUserCertificates"; public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_PAGE_SUMMARY = "AdaptiveButtonInTopToolbarPageSummary"; - public static final String ANDROID_ANIMATED_PROGRESS_BAR_IN_BROWSER = + // Don't clean up this flag yet, BCIV is launched, so this needs to be enabled by @@ -795,6 +796,8 @@ public abstract class ChromeFeatureList { public static final CachedFlag sAndroidWindowPopupResizeAfterSpawn = newCachedFlag(ANDROID_WINDOW_POPUP_RESIZE_AFTER_SPAWN, false, true); @@ -68,7 +68,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final CachedFlag sAppSpecificHistoryViewIntent = newCachedFlag(APP_SPECIFIC_HISTORY_VIEW_INTENT, true); public static final CachedFlag sAsyncNotificationManager = -@@ -1121,6 +1124,7 @@ public abstract class ChromeFeatureList { +@@ -1129,6 +1132,7 @@ public abstract class ChromeFeatureList { // keep-sorted start sAccountForSuppressedKeyboardInsets, sAndroidAnimatedProgressBarInBrowser, diff --git a/build/patches/Add-Alt-D-hotkey-to-focus-address-bar.patch b/build/patches/Add-Alt-D-hotkey-to-focus-address-bar.patch index 031a4bc8..11c6db76 100644 --- a/build/patches/Add-Alt-D-hotkey-to-focus-address-bar.patch +++ b/build/patches/Add-Alt-D-hotkey-to-focus-address-bar.patch @@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java --- a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java -@@ -917,6 +917,12 @@ public class KeyboardShortcuts { +@@ -941,6 +941,12 @@ public class KeyboardShortcuts { KeyEvent.KEYCODE_ESCAPE, KeyEvent.META_CTRL_ON); } diff --git a/build/patches/Add-IsCleartextPermitted-flag.patch b/build/patches/Add-IsCleartextPermitted-flag.patch index 33fded68..88c9b7f1 100644 --- a/build/patches/Add-IsCleartextPermitted-flag.patch +++ b/build/patches/Add-IsCleartextPermitted-flag.patch @@ -44,7 +44,7 @@ new file mode 100644 diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc --- a/net/url_request/url_request_http_job.cc +++ b/net/url_request/url_request_http_job.cc -@@ -401,6 +401,11 @@ std::unique_ptr URLRequestHttpJob::Create(URLRequest* request) { +@@ -403,6 +403,11 @@ std::unique_ptr URLRequestHttpJob::Create(URLRequest* request) { } } diff --git a/build/patches/Add-PartialLowEndModeOnMidRangeDevices-flag.patch b/build/patches/Add-PartialLowEndModeOnMidRangeDevices-flag.patch index fe83aca6..a337c99f 100644 --- a/build/patches/Add-PartialLowEndModeOnMidRangeDevices-flag.patch +++ b/build/patches/Add-PartialLowEndModeOnMidRangeDevices-flag.patch @@ -15,7 +15,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/base/features.cc b/base/features.cc --- a/base/features.cc +++ b/base/features.cc -@@ -202,6 +202,10 @@ bool IsReducePPMsEnabled() { +@@ -197,6 +197,10 @@ bool IsReducePPMsEnabled() { return g_is_reduce_ppms_enabled.load(std::memory_order_relaxed); } diff --git a/build/patches/Add-a-flag-to-disable-GamePad-API.patch b/build/patches/Add-a-flag-to-disable-GamePad-API.patch index c4a534f9..58d988cc 100644 --- a/build/patches/Add-a-flag-to-disable-GamePad-API.patch +++ b/build/patches/Add-a-flag-to-disable-GamePad-API.patch @@ -16,7 +16,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc --- a/content/child/runtime_features.cc +++ b/content/child/runtime_features.cc -@@ -264,6 +264,8 @@ void SetRuntimeFeaturesFromChromiumFeatures() { +@@ -266,6 +266,8 @@ void SetRuntimeFeaturesFromChromiumFeatures() { {wf::EnablePaymentApp, raw_ref(features::kServiceWorkerPaymentApps)}, {wf::EnablePeriodicBackgroundSync, raw_ref(features::kPeriodicBackgroundSync)}, @@ -40,7 +40,7 @@ new file mode 100644 diff --git a/device/gamepad/public/cpp/gamepad_features.cc b/device/gamepad/public/cpp/gamepad_features.cc --- a/device/gamepad/public/cpp/gamepad_features.cc +++ b/device/gamepad/public/cpp/gamepad_features.cc -@@ -53,4 +53,12 @@ bool IsGamepadMultitouchEnabled() { +@@ -59,4 +59,12 @@ bool IsGamepadMultitouchEnabled() { return false; } @@ -64,8 +64,8 @@ diff --git a/device/gamepad/public/cpp/gamepad_features.h b/device/gamepad/publi #if BUILDFLAG(IS_WIN) GAMEPAD_FEATURES_EXPORT BASE_DECLARE_FEATURE(kIgnorePS5GamepadsInWgi); -@@ -27,6 +28,7 @@ GAMEPAD_FEATURES_EXPORT BASE_DECLARE_FEATURE(kAllowlistHidrawGamepads); - #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) +@@ -32,6 +33,7 @@ GAMEPAD_FEATURES_EXPORT BASE_DECLARE_FEATURE( + #endif // BUILDFLAG(IS_APPLE) GAMEPAD_FEATURES_EXPORT bool IsGamepadMultitouchEnabled(); +GAMEPAD_FEATURES_EXPORT bool IsRestrictGamepadAccessEnabled(); diff --git a/build/patches/Add-a-proxy-configuration-page.patch b/build/patches/Add-a-proxy-configuration-page.patch index 6201a333..d2102773 100644 --- a/build/patches/Add-a-proxy-configuration-page.patch +++ b/build/patches/Add-a-proxy-configuration-page.patch @@ -80,7 +80,7 @@ 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 -@@ -105,6 +105,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -106,6 +106,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private static final String PREF_PASSWORD_LEAK_DETECTION = "password_leak_detection"; private static final String PREF_SYNC_AND_SERVICES_LINK = "sync_and_services_link"; private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox"; @@ -102,7 +102,7 @@ diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resources.grd --- a/chrome/browser/browser_resources.grd +++ b/chrome/browser/browser_resources.grd -@@ -237,6 +237,9 @@ +@@ -241,6 +241,9 @@ @@ -115,7 +115,7 @@ diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resou diff --git a/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc b/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc --- a/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc +++ b/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc -@@ -375,7 +375,7 @@ std::optional CreateProxyConfigDict( +@@ -375,7 +375,7 @@ std::optional CreateProxyConfigDict( return std::nullopt; } return ProxyConfigDictionary::CreateFixedServers(proxy_rules_string, @@ -199,7 +199,7 @@ diff --git a/chrome/browser/net/proxy_service_factory.h b/chrome/browser/net/pro diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc -@@ -206,6 +206,8 @@ +@@ -209,6 +209,8 @@ #include "printing/buildflags/buildflags.h" #include "rlz/buildflags/buildflags.h" @@ -208,7 +208,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse #if BUILDFLAG(ENABLE_BACKGROUND_MODE) #include "chrome/browser/background/extensions/background_mode_manager.h" #endif -@@ -1355,6 +1357,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) { +@@ -1396,6 +1398,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) { component_updater::RegisterPrefs(registry); domain_reliability::RegisterPrefs(registry); embedder_support::OriginTrialPrefs::RegisterPrefs(registry); @@ -663,7 +663,7 @@ new file mode 100644 diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -161,6 +161,8 @@ static_library("ui") { +@@ -159,6 +159,8 @@ static_library("ui") { "webui/metrics_internals/metrics_internals_ui.h", "webui/net_export_ui.cc", "webui/net_export_ui.h", @@ -675,7 +675,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/ui/webui/chrome_web_ui_configs.cc --- a/chrome/browser/ui/webui/chrome_web_ui_configs.cc +++ b/chrome/browser/ui/webui/chrome_web_ui_configs.cc -@@ -59,6 +59,9 @@ +@@ -60,6 +60,9 @@ #include "extensions/buildflags/buildflags.h" #include "printing/buildflags/buildflags.h" @@ -685,8 +685,8 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/u #if BUILDFLAG(ENABLE_WEBUI_CERTIFICATE_VIEWER) #include "chrome/browser/ui/webui/certificate_viewer/certificate_viewer_ui.h" #endif -@@ -439,7 +442,7 @@ void RegisterChromeWebUIConfigs() { - map.AddWebUIConfig(std::make_unique()); +@@ -449,7 +452,7 @@ void RegisterChromeWebUIConfigs() { + #if BUILDFLAG(ENABLE_GLIC) && !BUILDFLAG(IS_ANDROID) map.AddWebUIConfig(std::make_unique()); #endif - @@ -1156,7 +1156,7 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons diff --git a/chrome/common/webui_url_constants.h b/chrome/common/webui_url_constants.h --- a/chrome/common/webui_url_constants.h +++ b/chrome/common/webui_url_constants.h -@@ -197,6 +197,8 @@ inline constexpr char kChromeUINetInternalsHost[] = "net-internals"; +@@ -198,6 +198,8 @@ inline constexpr char kChromeUINetInternalsHost[] = "net-internals"; inline constexpr char kChromeUINetInternalsURL[] = "chrome://net-internals/"; inline constexpr char kChromeUINewTabHost[] = "newtab"; inline constexpr char kChromeUINewTabFooterHost[] = "newtab-footer"; @@ -1186,7 +1186,7 @@ diff --git a/components/proxy_config/pref_proxy_config_tracker_impl.cc b/compone registry->RegisterBooleanPref(proxy_config::prefs::kUseSharedProxies, false); registry->RegisterListPref(proxy_config::prefs::kProxyOverrideRules); #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) -@@ -699,6 +699,7 @@ bool PrefProxyConfigTrackerImpl::PrefConfigToNetConfig( +@@ -705,6 +705,7 @@ bool PrefProxyConfigTrackerImpl::PrefConfigToNetConfig( if (proxy_dict.GetBypassList(&proxy_bypass)) { proxy_config.proxy_rules().bypass_rules.ParseFromString(proxy_bypass); } @@ -1218,26 +1218,26 @@ diff --git a/components/proxy_config/proxy_config_dictionary.cc b/components/pro + return value->GetBool(); +} + - const base::Value::Dict& ProxyConfigDictionary::GetDictionary() const { + const base::DictValue& ProxyConfigDictionary::GetDictionary() const { return dict_; } -@@ -83,13 +93,13 @@ const base::Value::Dict& ProxyConfigDictionary::GetDictionary() const { +@@ -83,13 +93,13 @@ const base::DictValue& ProxyConfigDictionary::GetDictionary() const { // static - base::Value::Dict ProxyConfigDictionary::CreateDirect() { + base::DictValue ProxyConfigDictionary::CreateDirect() { return CreateDictionary(ProxyPrefs::MODE_DIRECT, std::string(), false, - std::string(), std::string()); + std::string(), std::string(), false); } // static - base::Value::Dict ProxyConfigDictionary::CreateAutoDetect() { + base::DictValue ProxyConfigDictionary::CreateAutoDetect() { return CreateDictionary(ProxyPrefs::MODE_AUTO_DETECT, std::string(), false, - std::string(), std::string()); + std::string(), std::string(), false); } // static -@@ -97,16 +107,17 @@ base::Value::Dict ProxyConfigDictionary::CreatePacScript( +@@ -97,16 +107,17 @@ base::DictValue ProxyConfigDictionary::CreatePacScript( const std::string& pac_url, bool pac_mandatory) { return CreateDictionary(ProxyPrefs::MODE_PAC_SCRIPT, pac_url, pac_mandatory, @@ -1246,7 +1246,7 @@ diff --git a/components/proxy_config/proxy_config_dictionary.cc b/components/pro } // static - base::Value::Dict ProxyConfigDictionary::CreateFixedServers( + base::DictValue ProxyConfigDictionary::CreateFixedServers( const std::string& proxy_server, - const std::string& bypass_list) { + const std::string& bypass_list, @@ -1258,26 +1258,26 @@ diff --git a/components/proxy_config/proxy_config_dictionary.cc b/components/pro } else { return CreateDirect(); } -@@ -115,7 +126,7 @@ base::Value::Dict ProxyConfigDictionary::CreateFixedServers( +@@ -115,7 +126,7 @@ base::DictValue ProxyConfigDictionary::CreateFixedServers( // static - base::Value::Dict ProxyConfigDictionary::CreateSystem() { + base::DictValue ProxyConfigDictionary::CreateSystem() { return CreateDictionary(ProxyPrefs::MODE_SYSTEM, std::string(), false, - std::string(), std::string()); + std::string(), std::string(), false); } // static -@@ -124,7 +135,8 @@ base::Value::Dict ProxyConfigDictionary::CreateDictionary( +@@ -124,7 +135,8 @@ base::DictValue ProxyConfigDictionary::CreateDictionary( const std::string& pac_url, bool pac_mandatory, const std::string& proxy_server, - const std::string& bypass_list) { + const std::string& bypass_list, + bool reverse_bypass) { - base::Value::Dict dict; + base::DictValue dict; dict.Set(kProxyMode, base::Value(ProxyModeToString(mode))); if (!pac_url.empty()) { -@@ -133,8 +145,10 @@ base::Value::Dict ProxyConfigDictionary::CreateDictionary( +@@ -133,8 +145,10 @@ base::DictValue ProxyConfigDictionary::CreateDictionary( } if (!proxy_server.empty()) dict.Set(kProxyServer, base::Value(proxy_server)); @@ -1298,27 +1298,27 @@ diff --git a/components/proxy_config/proxy_config_dictionary.h b/components/prox bool HasBypassList() const; + bool HasReverseBypass() const; - const base::Value::Dict& GetDictionary() const; + const base::DictValue& GetDictionary() const; @@ -50,7 +51,8 @@ class PROXY_CONFIG_EXPORT ProxyConfigDictionary { - static base::Value::Dict CreatePacScript(const std::string& pac_url, - bool pac_mandatory); - static base::Value::Dict CreateFixedServers(const std::string& proxy_server, -- const std::string& bypass_list); -+ const std::string& bypass_list, + static base::DictValue CreatePacScript(const std::string& pac_url, + bool pac_mandatory); + static base::DictValue CreateFixedServers(const std::string& proxy_server, +- const std::string& bypass_list); ++ const std::string& bypass_list, + bool reverse_bypass); - static base::Value::Dict CreateSystem(); + static base::DictValue CreateSystem(); // Encodes the proxy server as "=://". @@ -66,7 +68,8 @@ class PROXY_CONFIG_EXPORT ProxyConfigDictionary { - const std::string& pac_url, - bool pac_mandatory, - const std::string& proxy_server, -- const std::string& bypass_list); -+ const std::string& bypass_list, + const std::string& pac_url, + bool pac_mandatory, + const std::string& proxy_server, +- const std::string& bypass_list); ++ const std::string& bypass_list, + bool reverse_bypass); - base::Value::Dict dict_; + base::DictValue dict_; }; diff --git a/components/proxy_config/proxy_policy_handler.cc b/components/proxy_config/proxy_policy_handler.cc --- a/components/proxy_config/proxy_policy_handler.cc diff --git a/build/patches/Add-cromite-flags-support.patch b/build/patches/Add-cromite-flags-support.patch index ece6c581..90ca690e 100644 --- a/build/patches/Add-cromite-flags-support.patch +++ b/build/patches/Add-cromite-flags-support.patch @@ -143,7 +143,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/base/BUILD.gn b/base/BUILD.gn --- a/base/BUILD.gn +++ b/base/BUILD.gn -@@ -183,6 +183,8 @@ generate_allowlist_from_histograms_file("memory_dump_provider_name_variants") { +@@ -187,6 +187,8 @@ generate_allowlist_from_histograms_file("memory_dump_provider_name_variants") { # This does not include test code (test support and anything in the test # directory) which should use source_set as is recommended for GN targets). component("base") { @@ -152,7 +152,7 @@ diff --git a/base/BUILD.gn b/base/BUILD.gn sources = [ "allocator/allocator_check.cc", "allocator/allocator_check.h", -@@ -1069,7 +1071,7 @@ component("base") { +@@ -1066,7 +1068,7 @@ component("base") { "//build/config/compiler:wglobal_constructors", ] @@ -166,7 +166,7 @@ diff --git a/base/android/feature_map.cc b/base/android/feature_map.cc +++ b/base/android/feature_map.cc @@ -46,6 +46,11 @@ const Feature* FeatureMap::FindFeatureExposedToJava( - static bool JNI_FeatureMap_IsEnabled(jlong jfeature_map, + static bool JNI_FeatureMap_IsEnabled(int64_t jfeature_map, std::string& feature_name) { + if (base::FeatureList::IsCromiteFlag(feature_name)) { + const base::Feature* cromite_feature = @@ -223,7 +223,7 @@ diff --git a/base/feature_list.cc b/base/feature_list.cc namespace { // Pointer to the FeatureList instance singleton that was set via -@@ -477,6 +502,46 @@ bool FeatureList::IsEnabled(const Feature& feature) { +@@ -501,6 +526,46 @@ bool FeatureList::IsEnabled(const Feature& feature) { return g_feature_list_instance->IsFeatureEnabled(feature); } @@ -270,7 +270,7 @@ diff --git a/base/feature_list.cc b/base/feature_list.cc // static bool FeatureList::IsValidFeatureOrFieldTrialName(std::string_view name) { return IsStringASCII(name) && name.find_first_of(",<*") == std::string::npos; -@@ -744,6 +809,17 @@ void FeatureList::VisitFeaturesAndParams(FeatureVisitor& visitor, +@@ -768,6 +833,17 @@ void FeatureList::VisitFeaturesAndParams(FeatureVisitor& visitor, void FeatureList::FinalizeInitialization() { DCHECK(!initialized_); @@ -291,7 +291,7 @@ diff --git a/base/feature_list.cc b/base/feature_list.cc diff --git a/base/feature_list.h b/base/feature_list.h --- a/base/feature_list.h +++ b/base/feature_list.h -@@ -233,8 +233,10 @@ StringStorage(const char (&feature)[N]) -> StringStorage; +@@ -231,8 +231,10 @@ StringStorage(const char (&feature)[N]) -> StringStorage; struct BASE_EXPORT LOGICALLY_CONST Feature { constexpr Feature(const char* name, FeatureState default_state, @@ -304,7 +304,7 @@ diff --git a/base/feature_list.h b/base/feature_list.h #if BUILDFLAG(ENABLE_BANNED_BASE_FEATURE_PREFIX) if (std::string_view(name).find(BUILDFLAG(BANNED_BASE_FEATURE_PREFIX)) == 0) { -@@ -261,6 +263,9 @@ struct BASE_EXPORT LOGICALLY_CONST Feature { +@@ -259,6 +261,9 @@ struct BASE_EXPORT LOGICALLY_CONST Feature { // command line switch. const FeatureState default_state; @@ -314,7 +314,7 @@ diff --git a/base/feature_list.h b/base/feature_list.h private: friend class FeatureList; -@@ -541,6 +546,11 @@ class BASE_EXPORT FeatureList { +@@ -539,6 +544,11 @@ class BASE_EXPORT FeatureList { // instance, which is checked in builds with DCHECKs enabled. static bool IsEnabled(const Feature& feature); @@ -326,7 +326,7 @@ diff --git a/base/feature_list.h b/base/feature_list.h // Some characters are not allowed to appear in feature names or the // associated field trial names, as they are used as special characters for // command-line serialization. This function checks that the strings are ASCII -@@ -810,4 +820,88 @@ class BASE_EXPORT FeatureList { +@@ -808,4 +818,88 @@ class BASE_EXPORT FeatureList { } // namespace base @@ -477,8 +477,8 @@ 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/homepage/settings/HomepageSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java -@@ -41,7 +41,7 @@ public class HomepageSettings extends ChromeBaseSettingsFragment { - private final ObservableSupplierImpl mPageTitle = new ObservableSupplierImpl<>(); +@@ -43,7 +43,7 @@ public class HomepageSettings extends ChromeBaseSettingsFragment { + ObservableSuppliers.createMonotonic(); @Override - public void onCreatePreferences(@Nullable Bundle savedInstanceState, @Nullable String rootKey) { @@ -489,7 +489,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settin 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 -@@ -129,7 +129,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -132,7 +132,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment } @Override @@ -506,13 +506,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme import androidx.fragment.app.FragmentManager; +import java.util.function.Supplier; - import org.chromium.base.supplier.ObservableSupplier; + import org.chromium.base.supplier.MonotonicObservableSupplier; import org.chromium.base.supplier.OneshotSupplier; import org.chromium.build.annotations.NullMarked; @@ -71,6 +72,7 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl private final OneshotSupplier mBottomSheetControllerSupplier; - private final ObservableSupplier mModalDialogManagerSupplier; - private final Supplier mSearchCoordinator; + private final MonotonicObservableSupplier mModalDialogManagerSupplier; + private final @Nullable SettingsSearchCoordinator mSearchCoordinator; + private final Supplier mRequireRestartDelegateSupplier; public FragmentDependencyProvider( @@ -520,9 +520,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme @@ -78,19 +80,25 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl OneshotSupplier snackbarManagerSupplier, OneshotSupplier bottomSheetControllerSupplier, - ObservableSupplier modalDialogManagerSupplier, -- Supplier searchCoordinator) { -+ Supplier searchCoordinator, + MonotonicObservableSupplier modalDialogManagerSupplier, +- @Nullable SettingsSearchCoordinator searchCoordinator) { ++ @Nullable SettingsSearchCoordinator searchCoordinator, + Supplier requireRestartDelegateSupplier) { mContext = context; mProfile = profile; @@ -547,31 +547,31 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java -@@ -6,6 +6,7 @@ package org.chromium.chrome.browser.settings; - +@@ -7,6 +7,7 @@ package org.chromium.chrome.browser.settings; + import static org.chromium.build.NullUtil.assertNonNull; import static org.chromium.build.NullUtil.assumeNonNull; +import android.app.Activity; import android.annotation.SuppressLint; import android.app.ActivityManager; import android.content.Context; -@@ -42,6 +43,7 @@ import org.chromium.base.Log; - import org.chromium.base.metrics.RecordHistogram; +@@ -45,6 +46,7 @@ import org.chromium.base.metrics.RecordHistogram; import org.chromium.base.metrics.RecordUserAction; - import org.chromium.base.supplier.ObservableSupplier; + import org.chromium.base.supplier.MonotonicObservableSupplier; + import org.chromium.base.supplier.ObservableSuppliers; +import org.chromium.base.supplier.OneshotSupplier; import org.chromium.base.supplier.OneshotSupplierImpl; import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; -@@ -53,6 +55,7 @@ import org.chromium.chrome.browser.back_press.BackPressHelper.OnKeyDownHandler; - import org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncherImpl; +@@ -58,6 +60,7 @@ import org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncherImpl; import org.chromium.chrome.browser.flags.ChromeFeatureList; + import org.chromium.chrome.browser.init.ActivityLifecycleDispatcherImpl; import org.chromium.chrome.browser.init.ChromeBrowserInitializer; +import org.chromium.chrome.browser.lifetime.ApplicationLifetime; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.ProfileManager; import org.chromium.chrome.browser.profiles.ProfileManagerUtils; -@@ -60,6 +63,7 @@ import org.chromium.chrome.browser.settings.search.SettingsSearchCoordinator; +@@ -66,6 +69,7 @@ import org.chromium.chrome.browser.ui.desktop_windowing.AppHeaderCoordinator; import org.chromium.chrome.browser.ui.device_lock.MissingDeviceLockLauncher; import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarManageable; @@ -579,9 +579,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; import org.chromium.components.browser_ui.bottomsheet.BottomSheetControllerFactory; import org.chromium.components.browser_ui.bottomsheet.ManagedBottomSheetController; -@@ -114,6 +118,40 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity - PreferenceUpdateObserver { - private static final String TAG = "SettingsActivity"; +@@ -126,6 +130,40 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity + // Key used to store activity start time in the Bundle to have it survive activity re-creation. + private static final String KEY_START_TIME = "start_time"; + private static class RequestRestartDelegate implements ChromeBaseSettingsFragment.RequireRestartDelegate { + private OneshotSupplier mSnackbarManagerSupplier; @@ -620,12 +620,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin @VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE) public static final String EXTRA_SHOW_FRAGMENT = "show_fragment"; -@@ -206,7 +244,8 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -229,7 +267,8 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity mSnackbarManagerSupplier, mBottomSheetControllerSupplier, getModalDialogManagerSupplier(), -- () -> mSearchCoordinator), -+ () -> mSearchCoordinator, +- mSearchCoordinator), ++ mSearchCoordinator, + () -> new RequestRestartDelegate(mSnackbarManagerSupplier, this)), /* recursive= */ true); fragmentManager.registerFragmentLifecycleCallbacks( @@ -633,7 +633,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java -@@ -26,8 +26,7 @@ import org.chromium.components.browser_ui.settings.search.SettingsIndexData; +@@ -27,8 +27,7 @@ import org.chromium.components.browser_ui.settings.search.SettingsIndexData; /** Settings fragment containing preferences aimed at Chrome and web developers. */ @NullMarked @@ -643,7 +643,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tracing/setting private static final String UI_PREF_BETA_STABLE_HINT = "beta_stable_hint"; // Non-translated strings: -@@ -58,7 +57,7 @@ public class DeveloperSettings extends ChromeBaseSettingsFragment +@@ -59,7 +58,7 @@ public class DeveloperSettings extends ChromeBaseSettingsFragment } @Override @@ -655,7 +655,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tracing/setting diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -390,6 +390,10 @@ using flags_ui::kOsLinux; +@@ -399,6 +399,10 @@ using flags_ui::kOsLinux; using flags_ui::kOsMac; using flags_ui::kOsWin; @@ -666,9 +666,9 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc namespace about_flags { namespace { -@@ -5135,6 +5139,10 @@ const FeatureEntry::Choice kOmniboxAutofocusOnIncognitoNtpChoices[] = { +@@ -4623,6 +4627,10 @@ const FeatureEntry::FeatureVariation + {"Mute Both", kPermissionsGestureGatedPromptsMuteBoth, nullptr}, }; - #endif // !BUILDFLAG(IS_ANDROID) +#define FEATURE_PARAM_SECTION +#include "cromite_flags/chrome_browser_about_flags_cc.inc" @@ -677,7 +677,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc // RECORDING USER METRICS FOR FLAGS: // ----------------------------------------------------------------------------- // The first line of the entry is the internal name. -@@ -5161,6 +5169,9 @@ const FeatureEntry::Choice kOmniboxAutofocusOnIncognitoNtpChoices[] = { +@@ -4649,6 +4657,9 @@ const FeatureEntry::FeatureVariation const FeatureEntry kFeatureEntries[] = { // Include generated flags for flag unexpiry; see //docs/flag_expiry.md and // //tools/flags/generate_unexpire_flags.py. @@ -690,7 +690,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/browser_features.cc b/chrome/browser/browser_features.cc --- a/chrome/browser/browser_features.cc +++ b/chrome/browser/browser_features.cc -@@ -262,4 +262,5 @@ BASE_FEATURE(kReportPakFileIntegrity, +@@ -265,4 +265,5 @@ BASE_FEATURE(kReportPakFileIntegrity, // show both in Chrome Tabs and Windows. BASE_FEATURE(kRemovalOfIWAsFromTabCapture, base::FEATURE_ENABLED_BY_DEFAULT); @@ -699,7 +699,7 @@ diff --git a/chrome/browser/browser_features.cc b/chrome/browser/browser_feature diff --git a/chrome/browser/browser_features.h b/chrome/browser/browser_features.h --- a/chrome/browser/browser_features.h +++ b/chrome/browser/browser_features.h -@@ -113,6 +113,7 @@ BASE_DECLARE_FEATURE(kRemovalOfIWAsFromTabCapture); +@@ -115,6 +115,7 @@ BASE_DECLARE_FEATURE(kRemovalOfIWAsFromTabCapture); // module, e.g. // //chrome/browser//features.h // @@ -749,7 +749,7 @@ diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn 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 -@@ -814,6 +814,7 @@ BASE_FEATURE(kXplatSyncedSetup, base::FEATURE_DISABLED_BY_DEFAULT); +@@ -818,6 +818,7 @@ BASE_FEATURE(kXplatSyncedSetup, base::FEATURE_DISABLED_BY_DEFAULT); // clang-format on @@ -782,7 +782,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f import java.util.List; import java.util.Map; -@@ -1104,7 +1108,7 @@ public abstract class ChromeFeatureList { +@@ -1112,7 +1116,7 @@ public abstract class ChromeFeatureList { newCachedFlag(WEB_APK_MIN_SHELL_APK_VERSION, true); // keep-sorted end @@ -791,7 +791,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f List.of( // keep-sorted start sAccountForSuppressedKeyboardInsets, -@@ -1262,6 +1266,13 @@ public abstract class ChromeFeatureList { +@@ -1270,6 +1274,13 @@ public abstract class ChromeFeatureList { // keep-sorted end ); @@ -971,7 +971,7 @@ new file mode 100644 diff --git a/chrome/browser/ui/ui_features.cc b/chrome/browser/ui/ui_features.cc --- a/chrome/browser/ui/ui_features.cc +++ b/chrome/browser/ui/ui_features.cc -@@ -578,4 +578,5 @@ BASE_FEATURE(kTabGroupsFocusing, base::FEATURE_DISABLED_BY_DEFAULT); +@@ -580,4 +580,5 @@ BASE_FEATURE_PARAM(bool, BASE_FEATURE(kUpdaterUI, base::FEATURE_DISABLED_BY_DEFAULT); #endif @@ -1012,10 +1012,10 @@ diff --git a/chrome/browser/unexpire_flags.cc b/chrome/browser/unexpire_flags.cc 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 -@@ -1951,5 +1951,5 @@ BASE_FEATURE(kDisableShortcutsEnableDiy, base::FEATURE_ENABLED_BY_DEFAULT); +@@ -1973,5 +1973,5 @@ BASE_FEATURE(kDisableShortcutsEnableDiy, base::FEATURE_ENABLED_BY_DEFAULT); // happen silently without prompting an updating dialog. BASE_FEATURE(kSilentPolicyAndDefaultAppUpdating, - base::FEATURE_DISABLED_BY_DEFAULT); + base::FEATURE_ENABLED_BY_DEFAULT); - +#include "cromite_flags/chrome_common_chrome_features_cc.inc" } // namespace features @@ -1046,7 +1046,7 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java --- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java +++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java -@@ -34,9 +34,11 @@ import org.chromium.content_public.browser.ContentFeatureList; +@@ -38,9 +38,11 @@ import org.chromium.content_public.browser.ContentFeatureList; import org.chromium.content_public.browser.ContentFeatureMap; import org.chromium.ui.base.UiAndroidFeatureList; @@ -1059,7 +1059,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c implements EmbeddableSettingsPage, Preference.OnPreferenceChangeListener, CustomDividerFragment { -@@ -83,7 +85,7 @@ public class AccessibilitySettings extends PreferenceFragmentCompat +@@ -109,7 +111,7 @@ public class AccessibilitySettings extends PreferenceFragmentCompat } @Override @@ -1128,7 +1128,7 @@ diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium diff --git a/components/cached_flags/android/java/src/org/chromium/components/cached_flags/CachedFlag.java b/components/cached_flags/android/java/src/org/chromium/components/cached_flags/CachedFlag.java --- a/components/cached_flags/android/java/src/org/chromium/components/cached_flags/CachedFlag.java +++ b/components/cached_flags/android/java/src/org/chromium/components/cached_flags/CachedFlag.java -@@ -159,7 +159,7 @@ public class CachedFlag extends Flag { +@@ -162,7 +162,7 @@ public class CachedFlag extends Flag { editor.putBoolean(getSharedPreferenceKey(), featureValue); } @@ -1137,7 +1137,7 @@ diff --git a/components/cached_flags/android/java/src/org/chromium/components/ca // Create the key only once to avoid String concatenation every flag check. if (mPreferenceKey == null) { mPreferenceKey = CachedFlagsSharedPreferences.FLAGS_CACHED.createKey(mFeatureName); -@@ -167,6 +167,12 @@ public class CachedFlag extends Flag { +@@ -170,6 +170,12 @@ public class CachedFlag extends Flag { return mPreferenceKey; } @@ -1200,17 +1200,17 @@ diff --git a/components/offline_pages/core/offline_page_feature.h b/components/o diff --git a/components/password_manager/core/browser/features/password_features.cc b/components/password_manager/core/browser/features/password_features.cc --- a/components/password_manager/core/browser/features/password_features.cc +++ b/components/password_manager/core/browser/features/password_features.cc -@@ -184,4 +184,5 @@ BASE_FEATURE(kReduceRequirementsForPasswordChange, - BASE_FEATURE(kUseActionablesForImprovedPasswordChange, - base::FEATURE_DISABLED_BY_DEFAULT); +@@ -177,4 +177,5 @@ BASE_FEATURE(kWebAuthnUsePasskeyFromAnotherDeviceInContextMenu, + + #endif // !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_IOS) +#include "cromite_flags/components_password_manager_core_browser_features_password_features_cc.inc" } // namespace password_manager::features diff --git a/components/permissions/features.cc b/components/permissions/features.cc --- a/components/permissions/features.cc +++ b/components/permissions/features.cc -@@ -120,6 +120,7 @@ BASE_FEATURE(kReturnDeniedForNotificationsWhenNoAppLevelSettings, - BASE_FEATURE(kPermissionPredictionsGeolocationAccuracy, +@@ -125,6 +125,7 @@ BASE_FEATURE(kPermissionPredictionsGeolocationAccuracy, + BASE_FEATURE(kPermissionsGestureGatedPrompts, base::FEATURE_DISABLED_BY_DEFAULT); +#include "cromite_flags/components_permissions_features_cc.inc" @@ -1284,7 +1284,7 @@ diff --git a/components/webui/flags/flags_state.cc b/components/webui/flags/flag CHECK(entry_it != name_to_switch_map.end()); const SwitchEntry& entry = entry_it->second; -@@ -706,6 +721,27 @@ void FlagsState::GetFlagFeatureEntries( +@@ -704,6 +719,27 @@ void FlagsState::GetFlagFeatureEntries( data.Set("links", std::move(links)); } @@ -1312,7 +1312,7 @@ diff --git a/components/webui/flags/flags_state.cc b/components/webui/flags/flag switch (entry.type) { case FeatureEntry::SINGLE_VALUE: case FeatureEntry::SINGLE_DISABLE_VALUE: -@@ -833,6 +869,16 @@ void FlagsState::AddSwitchesToCommandLine( +@@ -831,6 +867,16 @@ void FlagsState::AddSwitchesToCommandLine( for (const std::string& entry_name : enabled_entries) { const auto& entry_it = name_to_switch_map.find(entry_name); if (entry_it == name_to_switch_map.end()) { @@ -1329,7 +1329,7 @@ diff --git a/components/webui/flags/flags_state.cc b/components/webui/flags/flag NOTREACHED(); } -@@ -1104,6 +1150,14 @@ const FeatureEntry* FlagsState::FindFeatureEntryByName( +@@ -1102,6 +1148,14 @@ const FeatureEntry* FlagsState::FindFeatureEntryByName( bool FlagsState::IsSupportedFeature(const FlagsStorage* storage, const std::string& name, int platform_mask) const { @@ -1344,7 +1344,7 @@ diff --git a/components/webui/flags/flags_state.cc b/components/webui/flags/flag for (const auto& entry : feature_entries_) { DCHECK(entry.IsValid()); if (!(entry.supported_platforms & platform_mask)) { -@@ -1142,6 +1196,11 @@ void FlagsState::SetFlags( +@@ -1140,6 +1194,11 @@ void FlagsState::SetFlags( FindFeatureEntryByName(feature_internal_name); // Since this flag is currently enabled, we know for sure that we can find // its feature entry using its internal name. @@ -1575,7 +1575,7 @@ diff --git a/components/webui/flags/resources/experiment.html.ts b/components/we diff --git a/components/webui/flags/resources/experiment.ts b/components/webui/flags/resources/experiment.ts --- a/components/webui/flags/resources/experiment.ts +++ b/components/webui/flags/resources/experiment.ts -@@ -81,6 +81,11 @@ export class ExperimentElement extends CrLitElement { +@@ -85,6 +85,11 @@ export class ExperimentElement extends CrLitElement { enabled: false, is_default: false, supported_platforms: [], @@ -1587,7 +1587,7 @@ diff --git a/components/webui/flags/resources/experiment.ts b/components/webui/f }; // Whether the controls to change the experiment state should be hidden. -@@ -121,9 +126,12 @@ export class ExperimentElement extends CrLitElement { +@@ -125,9 +130,12 @@ export class ExperimentElement extends CrLitElement { } protected getExperimentTitle_(): string { @@ -1629,7 +1629,7 @@ diff --git a/components/webui/version/version_handler_helper.cc b/components/web std::string GetActiveGroupNameAsString( const base::FieldTrial::ActiveGroup& group) { static const unsigned char kNonBreakingHyphenUTF8[] = {0xE2, 0x80, 0x91, -@@ -56,7 +56,7 @@ base::Value::List GetVariationsList() { +@@ -56,7 +56,7 @@ base::ListValue GetVariationsList() { base::FieldTrialListIncludingLowAnonymity::GetActiveFieldTrialGroups( &active_groups); @@ -1641,7 +1641,7 @@ diff --git a/components/webui/version/version_handler_helper.cc b/components/web diff --git a/content/common/features.cc b/content/common/features.cc --- a/content/common/features.cc +++ b/content/common/features.cc -@@ -753,4 +753,5 @@ bool IsEnforceSameDocumentOriginInvariantsEnabled() { +@@ -758,4 +758,5 @@ bool IsEnforceSameDocumentOriginInvariantsEnabled() { blink::features::kTreatMhtmlInitialDocumentLoadsAsCrossDocument); } @@ -1650,7 +1650,7 @@ diff --git a/content/common/features.cc b/content/common/features.cc diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc --- a/content/public/common/content_features.cc +++ b/content/public/common/content_features.cc -@@ -1455,4 +1455,5 @@ bool IsPushSubscriptionChangeEventEnabled() { +@@ -1460,4 +1460,5 @@ bool IsPushSubscriptionChangeEventEnabled() { features::kPushSubscriptionChangeEventOnResubscribe); } @@ -2005,7 +2005,7 @@ new file mode 100755 diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc --- a/media/base/media_switches.cc +++ b/media/base/media_switches.cc -@@ -1779,5 +1779,5 @@ uint32_t GetPassthroughAudioFormats() { +@@ -1826,5 +1826,5 @@ uint32_t GetPassthroughAudioFormats() { return 0; #endif // BUILDFLAG(ENABLE_PASSTHROUGH_AUDIO_CODECS) } @@ -2015,7 +2015,7 @@ diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc diff --git a/media/base/media_switches.h b/media/base/media_switches.h --- a/media/base/media_switches.h +++ b/media/base/media_switches.h -@@ -557,5 +557,5 @@ MEDIA_EXPORT bool IsOutOfProcessVideoDecodingEnabled(); +@@ -582,5 +582,5 @@ MEDIA_EXPORT bool IsOutOfProcessVideoDecodingEnabled(); MEDIA_EXPORT uint32_t GetPassthroughAudioFormats(); } // namespace media @@ -2025,18 +2025,18 @@ diff --git a/media/base/media_switches.h b/media/base/media_switches.h diff --git a/net/base/features.cc b/net/base/features.cc --- a/net/base/features.cc +++ b/net/base/features.cc -@@ -719,4 +719,5 @@ BASE_FEATURE(kUseNSURLDataForGURLConversion, base::FEATURE_ENABLED_BY_DEFAULT); - - BASE_FEATURE(kUseLockFreeX509Verification, base::FEATURE_DISABLED_BY_DEFAULT); +@@ -728,4 +728,5 @@ BASE_FEATURE(kUseLockFreeX509Verification, base::FEATURE_DISABLED_BY_DEFAULT); + BASE_FEATURE(kUseNSURLDataForGURLConversion, base::FEATURE_ENABLED_BY_DEFAULT); + #endif // BUILDFLAG(IS_APPLE) +#include "cromite_flags/net_base_features_cc.inc" } // namespace net::features diff --git a/net/base/features.h b/net/base/features.h --- a/net/base/features.h +++ b/net/base/features.h -@@ -768,6 +768,7 @@ NET_EXPORT BASE_DECLARE_FEATURE(kUseNSURLDataForGURLConversion); - // lock-free certificate verification mechanism. - NET_EXPORT BASE_DECLARE_FEATURE(kUseLockFreeX509Verification); +@@ -764,6 +764,7 @@ NET_EXPORT BASE_DECLARE_FEATURE(kUseLockFreeX509Verification); + NET_EXPORT BASE_DECLARE_FEATURE(kUseNSURLDataForGURLConversion); + #endif // BUILDFLAG(IS_APPLE) +#include "cromite_flags/net_base_features_h.inc" } // namespace net::features @@ -2045,16 +2045,16 @@ diff --git a/net/base/features.h b/net/base/features.h diff --git a/services/network/public/cpp/features.cc b/services/network/public/cpp/features.cc --- a/services/network/public/cpp/features.cc +++ b/services/network/public/cpp/features.cc -@@ -616,4 +616,5 @@ BASE_FEATURE(kNetworkServicePerPriorityTaskQueues, - BASE_FEATURE(kUseUnexportableKeyServiceInBrowserProcess, - base::FEATURE_DISABLED_BY_DEFAULT); +@@ -646,4 +646,5 @@ BASE_FEATURE_PARAM(bool, + /*name=*/"report_inconsistent_header", + /*default_value=*/false); +#include "cromite_flags/services_network_public_cpp_features_cc.inc" } // namespace network::features diff --git a/services/network/public/cpp/features.h b/services/network/public/cpp/features.h --- a/services/network/public/cpp/features.h +++ b/services/network/public/cpp/features.h -@@ -386,6 +386,7 @@ BASE_DECLARE_FEATURE(kNetworkServicePerPriorityTaskQueues); +@@ -395,6 +395,7 @@ BASE_DECLARE_FEATURE_PARAM( COMPONENT_EXPORT(NETWORK_CPP_FLAGS_AND_SWITCHES) BASE_DECLARE_FEATURE(kUseUnexportableKeyServiceInBrowserProcess); @@ -2065,7 +2065,7 @@ diff --git a/services/network/public/cpp/features.h b/services/network/public/cp diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc --- a/third_party/blink/common/features.cc +++ b/third_party/blink/common/features.cc -@@ -2662,4 +2662,5 @@ bool IsXrDevice() { +@@ -2703,4 +2703,5 @@ bool IsXrDevice() { // // DO NOT ADD NEW FEATURES HERE. @@ -2074,7 +2074,7 @@ diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/fea diff --git a/third_party/blink/public/common/features.h b/third_party/blink/public/common/features.h --- a/third_party/blink/public/common/features.h +++ b/third_party/blink/public/common/features.h -@@ -1959,6 +1959,7 @@ BLINK_COMMON_EXPORT bool IsXrDevice(); +@@ -1984,6 +1984,7 @@ BLINK_COMMON_EXPORT bool IsXrDevice(); // // DO NOT ADD NEW FEATURES HERE. @@ -2085,7 +2085,7 @@ diff --git a/third_party/blink/public/common/features.h b/third_party/blink/publ diff --git a/ui/base/ui_base_features.cc b/ui/base/ui_base_features.cc --- a/ui/base/ui_base_features.cc +++ b/ui/base/ui_base_features.cc -@@ -446,4 +446,5 @@ BASE_FEATURE(kStringWidthCache, base::FEATURE_ENABLED_BY_DEFAULT); +@@ -436,4 +436,5 @@ BASE_FEATURE(kStringWidthCache, base::FEATURE_ENABLED_BY_DEFAULT); BASE_FEATURE(kUseClipboardStrictVirtualFileCheck, base::FEATURE_ENABLED_BY_DEFAULT); @@ -2094,7 +2094,7 @@ diff --git a/ui/base/ui_base_features.cc b/ui/base/ui_base_features.cc diff --git a/ui/base/ui_base_features.h b/ui/base/ui_base_features.h --- a/ui/base/ui_base_features.h +++ b/ui/base/ui_base_features.h -@@ -274,6 +274,7 @@ BASE_DECLARE_FEATURE(kStringWidthCache); +@@ -270,6 +270,7 @@ BASE_DECLARE_FEATURE(kStringWidthCache); COMPONENT_EXPORT(UI_BASE_FEATURES) BASE_DECLARE_FEATURE(kUseClipboardStrictVirtualFileCheck); diff --git a/build/patches/Add-cromite-test-support.patch b/build/patches/Add-cromite-test-support.patch index ee8cb478..23f84ab6 100644 --- a/build/patches/Add-cromite-test-support.patch +++ b/build/patches/Add-cromite-test-support.patch @@ -73,7 +73,7 @@ diff --git a/chrome/android/java/res/xml/developer_preferences.xml b/chrome/andr diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java --- a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java -@@ -149,6 +149,7 @@ import org.chromium.ui.base.SelectFileDialog; +@@ -142,6 +142,7 @@ import org.chromium.ui.base.SelectFileDialog; import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.edge_to_edge.EdgeToEdgeStateProvider; import org.chromium.url.GURL; @@ -81,7 +81,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessIni import java.io.File; import java.nio.charset.StandardCharsets; -@@ -729,7 +730,10 @@ public class ProcessInitializationHandler { +@@ -686,7 +687,10 @@ public class ProcessInitializationHandler { tasks.add( () -> { @@ -96,9 +96,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessIni diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java -@@ -38,7 +38,7 @@ public class DeveloperSettings extends ChromeBaseSettingsFragment implements Emb - private final ObservableSupplier mPageTitle = - new ObservableSupplierImpl<>(MSG_DEVELOPER_OPTIONS_TITLE); +@@ -39,7 +39,7 @@ public class DeveloperSettings extends ChromeBaseSettingsFragment implements Emb + private final NonNullObservableSupplier mPageTitle = + ObservableSuppliers.createNonNull(MSG_DEVELOPER_OPTIONS_TITLE); - private static @Nullable Boolean sIsEnabledForTests; + private static @Nullable Boolean sIsEnabledForTests = true; @@ -108,7 +108,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tracing/setting diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -191,6 +191,11 @@ source_set("shell_integration") { +@@ -192,6 +192,11 @@ source_set("shell_integration") { # require many files from it. This makes linking more efficient. static_library("browser") { sources = [ @@ -434,7 +434,7 @@ diff --git a/chrome/browser/ui/startup/bad_flags_prompt.cc b/chrome/browser/ui/s diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn --- a/chrome/common/BUILD.gn +++ b/chrome/common/BUILD.gn -@@ -666,6 +666,7 @@ mojom("mojo_bindings") { +@@ -667,6 +667,7 @@ mojom("mojo_bindings") { "actor.mojom", "chrome_render_frame.mojom", "google_accounts_private_api_extension.mojom", @@ -457,7 +457,7 @@ new file mode 100644 diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn --- a/chrome/renderer/BUILD.gn +++ b/chrome/renderer/BUILD.gn -@@ -79,6 +79,8 @@ static_library("renderer") { +@@ -81,6 +81,8 @@ static_library("renderer") { "chrome_render_thread_observer.cc", "chrome_render_thread_observer.h", "custom_menu_commands.h", @@ -477,7 +477,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer #include "chrome/renderer/google_accounts_private_api_extension.h" #include "chrome/renderer/loadtimes_extension_bindings.h" #include "chrome/renderer/media/flash_embed_rewrite.h" -@@ -650,6 +651,7 @@ void ChromeContentRendererClient::RenderFrameCreated( +@@ -656,6 +657,7 @@ void ChromeContentRendererClient::RenderFrameCreated( TrustedVaultEncryptionKeysExtension::Create(render_frame); GoogleAccountsPrivateApiExtension::Create(render_frame); @@ -793,10 +793,10 @@ diff --git a/content/browser/devtools/devtools_http_handler.cc b/content/browser #include "content/public/common/content_switches.h" #include "content/public/common/url_constants.h" #include "net/base/io_buffer.h" -@@ -608,9 +610,12 @@ void DevToolsHttpHandler::OnJsonRequest( +@@ -610,9 +612,12 @@ void DevToolsHttpHandler::OnJsonRequest( if (command == "version") { - base::Value::Dict version; + base::DictValue version; + auto browser = GetContentClient()->browser()->GetProduct(); + if (base::FeatureList::IsEnabled(features::kEnableCromiteTestSupport)) + browser = "Chrome/0.0.0.0"; @@ -851,7 +851,7 @@ diff --git a/content/browser/log_console_message.h b/content/browser/log_console diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc -@@ -318,6 +318,8 @@ +@@ -322,6 +322,8 @@ #include "url/origin.h" #include "url/url_constants.h" @@ -860,7 +860,7 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/b #if BUILDFLAG(IS_ANDROID) #include "base/android/scoped_service_binding_batch.h" #include "content/browser/accessibility/browser_accessibility_manager_android.h" -@@ -4867,7 +4869,8 @@ void RenderFrameHostImpl::DidAddMessageToConsole( +@@ -4958,7 +4960,8 @@ void RenderFrameHostImpl::DidAddMessageToConsole( if (delegate_->DidAddMessageToConsole(this, log_level, message, line_no, updated_source_id, untrusted_stack_trace)) { @@ -870,7 +870,7 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/b } // Pass through log severity only on builtin components pages to limit console -@@ -4884,8 +4887,14 @@ void RenderFrameHostImpl::DidAddMessageToConsole( +@@ -4975,8 +4978,14 @@ void RenderFrameHostImpl::DidAddMessageToConsole( const bool is_off_the_record = GetSiteInstance()->GetBrowserContext()->IsOffTheRecord(); diff --git a/build/patches/Add-custom-tab-intents-privacy-option.patch b/build/patches/Add-custom-tab-intents-privacy-option.patch index 5e23743a..a7519e1e 100644 --- a/build/patches/Add-custom-tab-intents-privacy-option.patch +++ b/build/patches/Add-custom-tab-intents-privacy-option.patch @@ -160,7 +160,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust @BackgroundInteractBehavior int backgroundInteractBehavior = IntentUtils.safeGetIntExtra( -@@ -1369,7 +1369,9 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid +@@ -1380,7 +1380,9 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid public @CustomTabProfileType int getCustomTabMode() { return AlwaysIncognitoLinkInterceptor.isAlwaysIncognito() ? CustomTabProfileType.INCOGNITO @@ -247,7 +247,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import android.os.Bundle; import android.text.SpannableString; import android.text.style.ClickableSpan; -@@ -83,6 +84,15 @@ import org.chromium.ui.text.SpanApplier; +@@ -84,6 +85,15 @@ import org.chromium.ui.text.SpanApplier; import java.util.concurrent.TimeUnit; import java.util.function.Consumer; @@ -263,7 +263,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import androidx.preference.PreferenceCategory; import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager; import org.chromium.base.shared_preferences.SharedPreferencesManager; -@@ -150,6 +160,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -153,6 +163,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment startTag, endTag, new ChromeClickableSpan(context, onClickCallback)); } @@ -273,7 +273,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting @Override public void onCreatePreferencesCromite(@Nullable Bundle savedInstanceState, @Nullable String rootKey) { mPageTitle.set(getString(R.string.prefs_privacy_security)); -@@ -391,6 +404,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -403,6 +416,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment new SpanApplier.SpanInfo("", "", servicesLink)); } @@ -283,7 +283,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting @Override public boolean onPreferenceChange(Preference preference, Object newValue) { String key = preference.getKey(); -@@ -411,6 +427,31 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -423,6 +439,31 @@ public class PrivacySettings extends ChromeBaseSettingsFragment } else if (PREF_SEARCH_SUGGESTIONS.equals(key)) { UserPrefs.get(getProfile()) .setBoolean(Pref.SEARCH_SUGGEST_ENABLED, (boolean) newValue); @@ -315,7 +315,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting } return true; } -@@ -443,6 +484,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -455,6 +496,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment UserPrefs.get(getProfile()).getBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED)); } @@ -335,7 +335,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting 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 -@@ -696,7 +696,9 @@ BASE_FEATURE(kMagicStackAndroid, base::FEATURE_ENABLED_BY_DEFAULT); +@@ -703,7 +703,9 @@ BASE_FEATURE(kMagicStackAndroid, base::FEATURE_ENABLED_BY_DEFAULT); // Enables an experimental feature which forces mayLaunchUrl to use a different // storage partition. This may reduce performance. This should not be enabled by // default. @@ -349,7 +349,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse 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 -@@ -969,6 +969,8 @@ public abstract class ChromeFeatureList { +@@ -975,6 +975,8 @@ public abstract class ChromeFeatureList { MOST_VISITED_TILES_CUSTOMIZATION, /* defaultValue= */ true, /* defaultValueInTests= */ true); @@ -358,14 +358,14 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final CachedFlag sMostVisitedTilesReselect = newCachedFlag(MOST_VISITED_TILES_RESELECT, false); public static final CachedFlag sMoveToFrontInLaunchIntentDispatcher = -@@ -1217,6 +1219,7 @@ public abstract class ChromeFeatureList { +@@ -1225,6 +1227,7 @@ public abstract class ChromeFeatureList { sMaliciousApkDownloadCheck, sMostVisitedTilesCustomization, sMostVisitedTilesReselect, + sMayLaunchurlUsesSeparateStoragePartition, sMoveToFrontInLaunchIntentDispatcher, - sMultiInstanceApplicationStatusCleanup, sMvcUpdateViewWhenModelChanged, + sNavBarColorAnimation, diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java --- a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java +++ b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java diff --git a/build/patches/Add-exit-menu-item.patch b/build/patches/Add-exit-menu-item.patch index b04cab11..7b83d9f6 100644 --- a/build/patches/Add-exit-menu-item.patch +++ b/build/patches/Add-exit-menu-item.patch @@ -28,7 +28,7 @@ diff --git a/chrome/android/java/res/values/ids.xml b/chrome/android/java/res/va diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -372,6 +372,8 @@ import java.util.Set; +@@ -386,6 +386,8 @@ import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; import java.util.function.Supplier; @@ -37,7 +37,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct /** * This is the main activity for ChromeMobile when not running in document mode. All the tabs are * accessible via a chrome specific tab switching UI. -@@ -3878,6 +3880,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt +@@ -4002,6 +4004,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt .closeTabs( TabClosureParams.closeTab(currentTab).build(), /* allowDialog= */ true); RecordUserAction.record("MobileTabClosed"); @@ -49,7 +49,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -71,6 +71,7 @@ import org.chromium.base.supplier.SettableObservableSupplier; +@@ -70,6 +70,7 @@ import org.chromium.base.supplier.SettableNullableObservableSupplier; import org.chromium.chrome.R; import org.chromium.chrome.browser.ActivityTabProvider; import org.chromium.chrome.browser.ActivityUtils; @@ -57,7 +57,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv import org.chromium.chrome.browser.ChromeActivitySessionTracker; import org.chromium.chrome.browser.ChromeApplicationImpl; import org.chromium.chrome.browser.ChromeKeyboardVisibilityDelegate; -@@ -2654,6 +2655,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -2665,6 +2666,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity return true; } @@ -91,24 +91,24 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLife diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java -@@ -425,6 +425,13 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm - maybeAddDividerLine(modelList, R.id.menu_item_content_filter_divider_line_id); +@@ -444,6 +444,13 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm modelList.add(buildContentFilterHelpCenterMenuItem(currentTab)); } -+ + + modelList.add(new MVCListAdapter.ListItem( + AppMenuHandler.AppMenuItemType.STANDARD, + buildModelForStandardMenuItem( + R.id.exit_id, + R.string.menu_exit, + shouldShowIconBeforeItem() ? R.drawable.ic_exit_to_app_white_24dp : 0))); - } - - private Runnable buildUpdateStateChangedObserver() { ++ + // Default browser promo menu item (entry point). + if (shouldShowDefaultBrowserPromo()) { + maybeAddDividerLine(modelList, R.id.divider_line_id); 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 -@@ -4460,6 +4460,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4490,6 +4490,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d Dark theme diff --git a/build/patches/Add-flag-for-omnibox-autocomplete-filtering.patch b/build/patches/Add-flag-for-omnibox-autocomplete-filtering.patch index 36766f1d..3dc04266 100644 --- a/build/patches/Add-flag-for-omnibox-autocomplete-filtering.patch +++ b/build/patches/Add-flag-for-omnibox-autocomplete-filtering.patch @@ -26,7 +26,7 @@ diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/ #include "base/feature_list.h" #include "base/format_macros.h" #include "base/functional/bind.h" -@@ -552,6 +553,15 @@ AutocompleteController::AutocompleteController( +@@ -553,6 +554,15 @@ AutocompleteController::AutocompleteController( steady_state_omnibox_position_( metrics::OmniboxEventProto::UNKNOWN_POSITION), config_(config) { @@ -88,7 +88,7 @@ diff --git a/components/url_formatter/url_fixer.cc b/components/url_formatter/ur #include "base/files/file_path.h" #include "base/files/file_util.h" #include "base/i18n/char_iterator.h" -@@ -640,6 +642,8 @@ GURL FixupURLInternal(const std::string& text, +@@ -639,6 +641,8 @@ GURL FixupURLInternal(const std::string& text, FixupHost(trimmed, parts.host, parts.scheme.is_valid(), desired_tld, &url); if (chrome_url && !parts.host.is_valid()) { diff --git a/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch b/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch index 0699c6db..13c95ef9 100644 --- a/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch +++ b/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch @@ -76,7 +76,7 @@ diff --git a/net/socket/client_socket_pool_manager.cc b/net/socket/client_socket #include "net/ssl/ssl_config.h" #include "url/gurl.h" #include "url/scheme_host_port.h" -@@ -165,6 +169,19 @@ void ClientSocketPoolManager::set_socket_soft_cap_per_pool_for_test( +@@ -162,6 +166,19 @@ void ClientSocketPoolManager::set_socket_soft_cap_per_pool_for_test( size_t ClientSocketPoolManager::max_sockets_per_group( HttpNetworkSession::SocketPoolType pool_type) { DCHECK_LT(pool_type, HttpNetworkSession::NUM_SOCKET_POOL_TYPES); diff --git a/build/patches/Add-flag-to-disable-IPv6-probes.patch b/build/patches/Add-flag-to-disable-IPv6-probes.patch index 2e674575..d56c78c7 100644 --- a/build/patches/Add-flag-to-disable-IPv6-probes.patch +++ b/build/patches/Add-flag-to-disable-IPv6-probes.patch @@ -45,7 +45,7 @@ new file mode 100644 diff --git a/net/BUILD.gn b/net/BUILD.gn --- a/net/BUILD.gn +++ b/net/BUILD.gn -@@ -1200,6 +1200,7 @@ component("net") { +@@ -1204,6 +1204,7 @@ component("net") { ":net_deps", "//components/network_time/time_tracker", "//components/unexportable_keys", @@ -56,7 +56,7 @@ diff --git a/net/BUILD.gn b/net/BUILD.gn diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc --- a/net/dns/host_resolver_manager.cc +++ b/net/dns/host_resolver_manager.cc -@@ -116,6 +116,7 @@ +@@ -115,6 +115,7 @@ #include "net/log/net_log_event_type.h" #include "net/log/net_log_source.h" #include "net/log/net_log_source_type.h" diff --git a/build/patches/Add-flag-to-disable-external-intent-requests.patch b/build/patches/Add-flag-to-disable-external-intent-requests.patch index 96a32da0..c8920c6e 100644 --- a/build/patches/Add-flag-to-disable-external-intent-requests.patch +++ b/build/patches/Add-flag-to-disable-external-intent-requests.patch @@ -49,7 +49,7 @@ 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/customtabs/CustomTabDelegateFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java -@@ -38,6 +38,7 @@ import org.chromium.chrome.browser.ephemeraltab.EphemeralTabCoordinator; +@@ -39,6 +39,7 @@ import org.chromium.chrome.browser.ephemeraltab.EphemeralTabCoordinator; import org.chromium.chrome.browser.externalnav.ExternalNavigationDelegateImpl; import org.chromium.chrome.browser.flags.ActivityType; import org.chromium.chrome.browser.flags.ChromeFeatureList; @@ -57,7 +57,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust import org.chromium.chrome.browser.fullscreen.BrowserControlsManager; import org.chromium.chrome.browser.fullscreen.FullscreenManager; import org.chromium.chrome.browser.init.ChromeActivityNativeDelegate; -@@ -167,6 +168,7 @@ public class CustomTabDelegateFactory implements TabDelegateFactory { +@@ -168,6 +169,7 @@ public class CustomTabDelegateFactory implements TabDelegateFactory { @Override public boolean shouldDisableAllExternalIntents() { @@ -76,7 +76,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/Ext import org.chromium.chrome.browser.IntentHandler; import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.document.ChromeLauncherActivity; -@@ -135,7 +136,8 @@ public class ExternalNavigationDelegateImpl implements ExternalNavigationDelegat +@@ -137,7 +138,8 @@ public class ExternalNavigationDelegateImpl implements ExternalNavigationDelegat @Override public boolean shouldDisableExternalIntentRequestsForUrl( ExternalNavigationParams params, Intent intent) { @@ -86,7 +86,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/Ext } @Override -@@ -316,7 +318,7 @@ public class ExternalNavigationDelegateImpl implements ExternalNavigationDelegat +@@ -318,7 +320,7 @@ public class ExternalNavigationDelegateImpl implements ExternalNavigationDelegat && params.isInitialNavigationInFrame() // TODO(crbug.com/452537438): Figure out a better way to check whether we are in // desktop windowing mode or if the device can enter desktop windowing mode. @@ -150,7 +150,7 @@ new file mode 100644 diff --git a/components/external_intents/android/external_intents_features.cc b/components/external_intents/android/external_intents_features.cc --- a/components/external_intents/android/external_intents_features.cc +++ b/components/external_intents/android/external_intents_features.cc -@@ -32,7 +32,13 @@ BASE_FEATURE(kExternalNavigationDebugLogs, base::FEATURE_DISABLED_BY_DEFAULT); +@@ -32,8 +32,14 @@ BASE_FEATURE(kExternalNavigationDebugLogs, base::FEATURE_DISABLED_BY_DEFAULT); BASE_FEATURE(kNavigationCaptureRefactorAndroid, base::FEATURE_DISABLED_BY_DEFAULT); @@ -158,12 +158,13 @@ diff --git a/components/external_intents/android/external_intents_features.cc b/ + "IntentBlockExternalFormRedirectsNoGesture", + base::FEATURE_ENABLED_BY_DEFAULT); + - static jlong JNI_ExternalIntentsFeatures_GetFeature(JNIEnv* env, jint ordinal) { + static int64_t JNI_ExternalIntentsFeatures_GetFeature(JNIEnv* env, + int32_t ordinal) { + if (ordinal == -1) -+ return reinterpret_cast(&kIntentBlockExternalFormRedirectsNoGesture); - return reinterpret_cast(UNSAFE_TODO(kFeaturesExposedToJava[ordinal])); ++ return reinterpret_cast(&kIntentBlockExternalFormRedirectsNoGesture); + return reinterpret_cast( + UNSAFE_TODO(kFeaturesExposedToJava[ordinal])); } - diff --git a/components/external_intents/android/external_intents_features.h b/components/external_intents/android/external_intents_features.h --- a/components/external_intents/android/external_intents_features.h +++ b/components/external_intents/android/external_intents_features.h diff --git a/build/patches/Add-flag-to-disable-vibration.patch b/build/patches/Add-flag-to-disable-vibration.patch index 671bd105..217df818 100644 --- a/build/patches/Add-flag-to-disable-vibration.patch +++ b/build/patches/Add-flag-to-disable-vibration.patch @@ -59,10 +59,10 @@ new file mode 100644 diff --git a/third_party/blink/public/platform/web_runtime_features.h b/third_party/blink/public/platform/web_runtime_features.h --- a/third_party/blink/public/platform/web_runtime_features.h +++ b/third_party/blink/public/platform/web_runtime_features.h -@@ -70,6 +70,7 @@ class BLINK_PLATFORM_EXPORT WebRuntimeFeatures : public WebRuntimeFeaturesBase { +@@ -69,6 +69,7 @@ class BLINK_PLATFORM_EXPORT WebRuntimeFeatures : public WebRuntimeFeaturesBase { + static void EnableFingerprintingCanvasMeasureTextNoise(bool); static void EnableFingerprintingCanvasImageDataNoise(bool); static void EnableFluentScrollbars(bool); - static void EnableFluentOverlayScrollbars(bool); + static void EnableVibration(bool); static void EnableLocalNetworkAccessWebRTC(bool); @@ -104,7 +104,7 @@ diff --git a/third_party/blink/renderer/platform/exported/web_runtime_features.c diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -1142,6 +1142,10 @@ +@@ -1170,6 +1170,10 @@ { name: "CompositingDecisionAtAnimationPhaseBoundaries" }, diff --git a/build/patches/Add-kill-switch-for-unsupported-clangd-flags.patch b/build/patches/Add-kill-switch-for-unsupported-clangd-flags.patch index 8796b19d..3c787105 100644 --- a/build/patches/Add-kill-switch-for-unsupported-clangd-flags.patch +++ b/build/patches/Add-kill-switch-for-unsupported-clangd-flags.patch @@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn -@@ -736,7 +736,7 @@ config("compiler") { +@@ -737,7 +737,7 @@ config("compiler") { # TODO(crbug.com/376278218): This causes segfault on Linux ARM builds. # It also causes segfault on Linux s390x: # https://github.com/llvm/llvm-project/issues/149511 @@ -23,7 +23,7 @@ diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn cflags += [ "-Wa,--crel,--allow-experimental-crel" ] } } -@@ -1833,7 +1833,7 @@ config("clang_revision") { +@@ -1836,7 +1836,7 @@ config("clang_revision") { # e.g. by setting in the the project's .gn file. config("clang_warning_suppression") { # Some build configs use older versions of clang that don't support WSMs @@ -32,7 +32,7 @@ diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn from_build_root = rebase_path(clang_warning_suppression_file, root_build_dir) inputs = [ clang_warning_suppression_file ] -@@ -2196,7 +2196,9 @@ config("default_warnings") { +@@ -2211,7 +2211,9 @@ config("default_warnings") { # TODO(crbug.com/432275627): Fix and re-enable. "-Wno-uninitialized-const-pointer", ] @@ -43,7 +43,7 @@ diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn cflags_cc += [ # TODO(crbug.com/328490295): Fix and re-enable for C flags. "-Wenum-compare-conditional", -@@ -2250,6 +2252,15 @@ config("default_warnings") { +@@ -2265,6 +2267,15 @@ config("default_warnings") { ldflags += [ "-Wno-version-check" ] } diff --git a/build/patches/Add-menu-item-to-view-source.patch b/build/patches/Add-menu-item-to-view-source.patch index 8c051b39..44922fc0 100644 --- a/build/patches/Add-menu-item-to-view-source.patch +++ b/build/patches/Add-menu-item-to-view-source.patch @@ -27,7 +27,7 @@ diff --git a/chrome/android/java/res/values/ids.xml b/chrome/android/java/res/va diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -3942,6 +3942,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt +@@ -4066,6 +4066,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_DOWNLOADS_MANAGER); } RecordUserAction.record("MobileMenuDownloadManager"); @@ -39,8 +39,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -2818,6 +2818,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity - return doOpenWebApk(currentTab); +@@ -2829,6 +2829,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity + return AppInstallMenuHandler.doOpenWebApk(this, currentTab); } + if (id == R.id.view_source_id) { @@ -54,7 +54,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java -@@ -1031,6 +1031,30 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties +@@ -1053,6 +1053,30 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties return false; } @@ -88,8 +88,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java -@@ -401,6 +401,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat - modelList.add(buildAddToHomescreenListItem(currentTab, false)); +@@ -406,6 +406,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat + modelList.add(buildOpenInAppItem()); } + // Add view source item @@ -101,8 +101,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java -@@ -373,6 +373,9 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm - modelList.add(buildAddToHomescreenListItem(currentTab, shouldShowIconBeforeItem())); +@@ -391,6 +391,9 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm + modelList.add(buildOpenInAppItem()); } + // Add view source item diff --git a/build/patches/Add-option-to-disable-snapshots.patch b/build/patches/Add-option-to-disable-snapshots.patch index 55b665f4..31b34e6c 100644 --- a/build/patches/Add-option-to-disable-snapshots.patch +++ b/build/patches/Add-option-to-disable-snapshots.patch @@ -84,7 +84,7 @@ 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/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -162,6 +162,7 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; +@@ -160,6 +160,7 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; import org.chromium.chrome.browser.preferences.Pref; import org.chromium.chrome.browser.price_tracking.PriceDropNotificationManagerFactory; import org.chromium.chrome.browser.printing.TabPrinter; @@ -92,7 +92,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.ProfileManager; import org.chromium.chrome.browser.profiles.ProfileManagerUtils; -@@ -691,7 +692,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -690,7 +691,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity new TabContentManager( this, mBrowserControlsManagerSupplier.get(), @@ -110,10 +110,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import org.chromium.base.metrics.RecordHistogram; import org.chromium.base.metrics.RecordUserAction; +import java.util.function.Supplier; - import org.chromium.base.supplier.ObservableSupplier; - import org.chromium.base.supplier.ObservableSupplierImpl; - import org.chromium.build.annotations.NullMarked; -@@ -102,13 +103,27 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; + import org.chromium.base.supplier.MonotonicObservableSupplier; + import org.chromium.base.supplier.ObservableSuppliers; + import org.chromium.base.supplier.SettableMonotonicObservableSupplier; +@@ -103,13 +104,27 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate; @@ -142,7 +142,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting private static final String PREF_CAN_MAKE_PAYMENT = "can_make_payment"; private static final String PREF_PRELOAD_PAGES = "preload_pages"; private static final String PREF_HTTPS_FIRST_MODE = "https_first_mode"; -@@ -193,6 +208,21 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -196,6 +211,21 @@ public class PrivacySettings extends ChromeBaseSettingsFragment if (shouldHideSandboxPref(privacySandboxBridge)) { getPreferenceScreen().removePreference(sandboxPreference); } @@ -164,7 +164,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting Preference privacyGuidePreference = findPreference(PREF_PRIVACY_GUIDE); // Record the launch of PG from the S&P link-row entry point privacyGuidePreference.setOnPreferenceClickListener( -@@ -448,6 +478,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -460,6 +490,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment public static final String PREF_ALLOW_CUSTOM_TAB_INTENTS = "allow_custom_tab_intents"; public static final String PREF_OPEN_EXTERNAL_LINKS_INCOGNITO = "open_external_links_incognito"; @@ -172,7 +172,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting @Override public boolean onPreferenceChange(Preference preference, Object newValue) { -@@ -494,6 +525,13 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -506,6 +537,13 @@ public class PrivacySettings extends ChromeBaseSettingsFragment SharedPreferences.Editor sharedPreferencesEditor = ContextUtils.getAppSharedPreferences().edit(); sharedPreferencesEditor.putBoolean(PREF_OPEN_EXTERNAL_LINKS_INCOGNITO, (boolean)newValue); sharedPreferencesEditor.apply(); @@ -186,7 +186,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting } return true; } -@@ -544,6 +582,10 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -556,6 +594,10 @@ public class PrivacySettings extends ChromeBaseSettingsFragment : R.string.text_off); } @@ -200,7 +200,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting 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 -@@ -6543,6 +6543,14 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -6573,6 +6573,14 @@ To change this setting, BEGIN_LINKdelete the Chrome d Your %1$swww.amazon.com timer ran out. It'll start again tomorrow. diff --git a/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch b/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch index 9de66089..45d26db7 100644 --- a/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch +++ b/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch @@ -29,7 +29,7 @@ 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/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -53,6 +53,7 @@ import org.chromium.base.ApplicationStatus; +@@ -57,6 +57,7 @@ import org.chromium.base.ApplicationStatus; import org.chromium.base.Callback; import org.chromium.base.CallbackController; import org.chromium.base.CallbackUtils; @@ -37,8 +37,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.base.CommandLine; import org.chromium.base.DeviceInfo; import org.chromium.base.IntentUtils; -@@ -2201,8 +2202,10 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt - CipherLazyHolder.sCipherInstance.restoreFromBundle(getSavedInstanceState()); +@@ -2272,8 +2273,10 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt + ActivityRestoreState.NUM_ENTRIES); } + String PREF_CLOSE_TABS_ON_EXIT = "close_tabs_on_exit"; @@ -68,7 +68,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import org.chromium.base.IntentUtils; import org.chromium.base.metrics.RecordHistogram; import org.chromium.base.metrics.RecordUserAction; -@@ -116,6 +118,8 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -117,6 +119,8 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private final SharedPreferencesManager mSharedPreferencesManager = ChromeSharedPreferences.getInstance(); @@ -77,7 +77,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting private ManagedPreferenceDelegate mManagedPreferenceDelegate; @VisibleForTesting static final String PREF_THIRD_PARTY_COOKIES = "third_party_cookies"; private static final String PREF_ADVANCED_PROTECTION_INFO = "advanced_protection_info"; -@@ -389,7 +393,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -401,7 +405,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment @Override public boolean onPreferenceChange(Preference preference, Object newValue) { String key = preference.getKey(); @@ -90,7 +90,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting UserPrefs.get(getProfile()) .setBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue); } else if (PREF_HTTPS_FIRST_MODE_LEGACY.equals(key)) { -@@ -449,6 +457,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -461,6 +469,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment getContext(), getProfile())); } @@ -128,7 +128,7 @@ diff --git a/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/ 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 -@@ -2896,6 +2896,12 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -2905,6 +2905,12 @@ To change this setting, BEGIN_LINKdelete the Chrome d All tabs diff --git a/build/patches/Add-option-to-use-home-page-as-NTP.patch b/build/patches/Add-option-to-use-home-page-as-NTP.patch index 2c464aee..621edd8d 100644 --- a/build/patches/Add-option-to-use-home-page-as-NTP.patch +++ b/build/patches/Add-option-to-use-home-page-as-NTP.patch @@ -24,7 +24,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java -@@ -101,6 +101,7 @@ import org.chromium.components.collaboration.messaging.PersistentNotificationTyp +@@ -103,6 +103,7 @@ import org.chromium.components.collaboration.messaging.PersistentNotificationTyp import org.chromium.components.data_sharing.DataSharingService; import org.chromium.components.data_sharing.GroupMember; import org.chromium.components.data_sharing.member_role.MemberRole; @@ -32,7 +32,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser import org.chromium.components.tab_group_sync.EitherId.EitherGroupId; import org.chromium.components.tab_group_sync.LocalTabGroupId; import org.chromium.components.tab_group_sync.TabGroupSyncService; -@@ -121,6 +122,9 @@ import java.util.Objects; +@@ -123,6 +124,9 @@ import java.util.Objects; import java.util.Set; import java.util.function.Supplier; @@ -42,7 +42,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser /** * A mediator for the TabGridDialog component, responsible for communicating with the components' * coordinator as well as managing the business logic for dialog show/hide. -@@ -1023,9 +1027,15 @@ public class TabGridDialogMediator +@@ -1026,9 +1030,15 @@ public class TabGridDialogMediator UrlConstantResolver urlConstantResolver = UrlConstantResolverFactory.getForProfile(profile); @@ -70,7 +70,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser import org.chromium.chrome.browser.layouts.LayoutStateProvider.LayoutStateObserver; import org.chromium.chrome.browser.layouts.LayoutType; import org.chromium.chrome.browser.profiles.Profile; -@@ -425,10 +426,15 @@ public class TabGroupUiMediator implements BackPressHandler { +@@ -426,10 +427,15 @@ public class TabGroupUiMediator implements BackPressHandler { UrlConstantResolverFactory.getForProfile(currentTabProfile); Tab parentTabToAttach = relatedTabs.get(relatedTabs.size() - 1); @@ -105,7 +105,7 @@ diff --git a/chrome/android/java/res/xml/homepage_preferences.xml b/chrome/andro diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/TabGroupContextMenuCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/TabGroupContextMenuCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/TabGroupContextMenuCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/TabGroupContextMenuCoordinator.java -@@ -92,6 +92,9 @@ import java.util.List; +@@ -93,6 +93,9 @@ import java.util.List; import java.util.function.BiConsumer; import java.util.function.Supplier; @@ -115,7 +115,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over /** * A coordinator for the context menu on the tab strip by long-pressing on the group titles. It is * responsible for creating a list of menu items, setting up the menu and displaying the menu. -@@ -245,9 +248,14 @@ public class TabGroupContextMenuCoordinator extends TabStripReorderingHelper mPageTitle = new ObservableSupplierImpl<>(); -@@ -103,6 +106,15 @@ public class HomepageSettings extends ChromeBaseSettingsFragment { + private final SettableMonotonicObservableSupplier mPageTitle = +@@ -105,6 +108,15 @@ public class HomepageSettings extends ChromeBaseSettingsFragment { mRadioButtons.setOnHomepagePreferenceChangeListener(this::onRadioButtonGroupChanged); mRadioButtons.setupPreferenceValues(createPreferenceValuesForRadioGroup()); @@ -232,7 +232,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java -@@ -406,6 +406,7 @@ public final class ChromePreferenceKeys { +@@ -415,6 +415,7 @@ public final class ChromePreferenceKeys { public static final String HOMEPAGE_USE_CHROME_NTP = "Chrome.Homepage.UseNTP"; public static final String HOMEPAGE_USE_DEFAULT_URI = "homepage_partner_enabled"; @@ -254,7 +254,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro 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 -@@ -1345,6 +1345,9 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1360,6 +1360,9 @@ Your Google account may have other forms of browsing history like searches and a Last hour diff --git a/build/patches/Add-search-engine.patch b/build/patches/Add-search-engine.patch index 2c8e96b0..03281fba 100644 --- a/build/patches/Add-search-engine.patch +++ b/build/patches/Add-search-engine.patch @@ -160,12 +160,12 @@ diff --git a/components/search_engines/search_engine_choice/search_engine_choice diff --git a/components/search_engines/search_engine_type.h b/components/search_engines/search_engine_type.h --- a/components/search_engines/search_engine_type.h +++ b/components/search_engines/search_engine_type.h -@@ -98,11 +98,16 @@ enum SearchEngineType { - SEARCH_ENGINE_FREESPOKE = 78, +@@ -99,11 +99,16 @@ enum SearchEngineType { SEARCH_ENGINE_KAGI = 79, SEARCH_ENGINE_STARTER_PACK_AI_MODE = 80, -+ SEARCH_ENGINE_GOOGLE_EN = 81, -+ SEARCH_ENGINE_DUCKDUCKGOLIGHT = 82, + SEARCH_ENGINE_YAHOO_JP = 81, ++ SEARCH_ENGINE_GOOGLE_EN = 82, ++ SEARCH_ENGINE_DUCKDUCKGOLIGHT = 83, SEARCH_ENGINE_MAX // Bounding value needed for UMA histogram macro. }; @@ -189,7 +189,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon namespace TemplateURLPrepopulateData { // Helpers -------------------------------------------------------------------- -@@ -153,7 +155,7 @@ int GetDataVersion(PrefService* prefs) { +@@ -152,7 +154,7 @@ int GetDataVersion(PrefService* prefs) { kCurrentDataVersion; } @@ -198,7 +198,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon PrefService& prefs, const std::vector& regional_prepopulated_engines) { -@@ -169,6 +171,17 @@ std::vector> GetPrepopulatedEngines( +@@ -168,6 +170,17 @@ std::vector> GetPrepopulatedEngines( &PrepopulatedEngineToTemplateURLData); } @@ -216,7 +216,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon std::unique_ptr GetPrepopulatedEngine( PrefService& prefs, const std::vector& regional_prepopulated_engines, -@@ -189,10 +202,14 @@ std::vector> GetLocalPrepopulatedEngines( +@@ -188,10 +201,14 @@ std::vector> GetLocalPrepopulatedEngines( return std::vector>(); } @@ -402,7 +402,7 @@ diff --git a/tools/json_to_struct/struct_generator.py b/tools/json_to_struct/str diff --git a/tools/variations/fieldtrial_to_struct.py b/tools/variations/fieldtrial_to_struct.py --- a/tools/variations/fieldtrial_to_struct.py +++ b/tools/variations/fieldtrial_to_struct.py -@@ -235,14 +235,14 @@ def main(arguments): +@@ -212,14 +212,14 @@ def main(arguments): json_to_struct.GenerateStruct( basepath, output_root, opts.namespace, schema, description, os.path.split(description_filename)[1], os.path.split(opts.schema)[1], diff --git a/build/patches/Add-setting-to-clear-data-on-exit.patch b/build/patches/Add-setting-to-clear-data-on-exit.patch index 31498a18..3476afc5 100644 --- a/build/patches/Add-setting-to-clear-data-on-exit.patch +++ b/build/patches/Add-setting-to-clear-data-on-exit.patch @@ -49,7 +49,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html 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 -@@ -273,6 +273,7 @@ chrome_java_sources = [ +@@ -274,6 +274,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataCheckBoxPreference.java", "java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFetcher.java", "java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java", @@ -75,7 +75,7 @@ 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/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -219,6 +219,7 @@ import org.chromium.chrome.browser.profiles.ProfileProvider; +@@ -225,6 +225,7 @@ import org.chromium.chrome.browser.profiles.ProfileProvider; import org.chromium.chrome.browser.quick_delete.QuickDeleteController; import org.chromium.chrome.browser.quick_delete.QuickDeleteDelegateImpl; import org.chromium.chrome.browser.quick_delete.QuickDeleteMetricsDelegate; @@ -83,7 +83,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.chrome.browser.read_later.ReadingListBackPressHandler; import org.chromium.chrome.browser.recent_tabs.CrossDevicePaneFactory; import org.chromium.chrome.browser.reengagement.ReengagementNotificationController; -@@ -2206,7 +2207,11 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt +@@ -2256,7 +2257,11 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt } if (!hadCipherData) { hadCipherData = @@ -95,7 +95,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct + } } - String PREF_CLOSE_TABS_ON_EXIT = "close_tabs_on_exit"; + boolean hasSavedOrPersistentInstanceState = diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/BrowsingDataBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/BrowsingDataBridge.java --- a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/BrowsingDataBridge.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/BrowsingDataBridge.java @@ -137,7 +137,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/B diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java --- a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java -@@ -167,6 +167,12 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -168,6 +168,12 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment assert mCheckbox == preference; mParent.updateButtonState(); @@ -150,16 +150,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C return true; } -@@ -248,7 +254,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -249,7 +255,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment private @TimePeriod int mLastSelectedTimePeriod; private boolean mShouldShowPostDeleteFeedback; -- private final ObservableSupplierImpl mPageTitle = new ObservableSupplierImpl<>(); -+ protected final ObservableSupplierImpl mPageTitle = new ObservableSupplierImpl<>(); +- private final SettableMonotonicObservableSupplier mPageTitle = ++ protected final SettableMonotonicObservableSupplier mPageTitle = + ObservableSuppliers.createMonotonic(); /** - * @return All available {@link DialogOption} entries. -@@ -354,7 +360,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -356,7 +362,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment } /** Called when browsing data is about to be cleared. */ @@ -168,7 +168,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C RecordUserAction.record("ClearBrowsingData_AdvancedTab"); } -@@ -440,6 +446,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -442,6 +448,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment BrowsingDataBridge.getForProfile(getProfile()) .setBrowsingDataDeletionPreference( ClearBrowsingDataFragment.getDataType(item.getOption()), @@ -176,7 +176,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C item.isSelected()); } -@@ -447,8 +454,16 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -449,8 +456,16 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment .setBrowsingDataDeletionTimePeriod(mLastSelectedTimePeriod); } @@ -194,7 +194,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C String referrer = fragmentArgs.getString( ClearBrowsingDataFragment.CLEAR_BROWSING_DATA_REFERRER, null); -@@ -474,6 +489,10 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -476,6 +491,10 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment DialogOption.CLEAR_SITE_SETTINGS); } @@ -205,7 +205,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C /** * Decides whether a given dialog option should be selected when the dialog is initialized. * -@@ -482,7 +501,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -484,7 +503,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment */ private boolean isOptionSelectedByDefault(@DialogOption int option) { return BrowsingDataBridge.getForProfile(getProfile()) @@ -214,7 +214,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C } /** -@@ -550,6 +569,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -552,6 +571,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment * options. */ private void onClearButtonClicked() { @@ -222,7 +222,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C if (shouldShowImportantSitesDialog()) { showImportantDialogThenClear(); return; -@@ -579,6 +599,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -581,6 +601,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment Button clearButton = (Button) assumeNonNull(getView()).findViewById(R.id.clear_button); boolean isEnabled = !getSelectedOptions().isEmpty(); clearButton.setEnabled(isEnabled); @@ -230,7 +230,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C } private int getSpinnerIndex( -@@ -656,7 +677,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -658,7 +679,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment .getBoolean(Pref.ALLOW_DELETING_BROWSER_HISTORY)) { enabled = false; browsingDataBridge.setBrowsingDataDeletionPreference( @@ -239,7 +239,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C } // Disable tabs closure if the user is in multi-window mode. -@@ -686,8 +707,12 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -688,8 +709,12 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment mSigninManager.addSignInStateObserver(this); setHasOptionsMenu(true); @@ -250,9 +250,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C + protected void onCustomizePreferences(Bundle savedInstanceState, String rootKey) {} + @Override - public ObservableSupplier getPageTitle() { + public MonotonicObservableSupplier getPageTitle() { return mPageTitle; -@@ -989,7 +1014,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -990,7 +1015,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment public void updateDynamicPreferences( Context context, SettingsIndexData indexData, Profile profile) { Bundle args = createFragmentArgs(context.getClass().getName()); @@ -348,7 +348,7 @@ new file mode 100644 diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp --- a/chrome/app/settings_strings.grdp +++ b/chrome/app/settings_strings.grdp -@@ -2228,6 +2228,16 @@ +@@ -2197,6 +2197,16 @@ Delete browsing data @@ -368,7 +368,7 @@ diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -105,6 +105,7 @@ +@@ -107,6 +107,7 @@ #include "components/enterprise/client_certificates/core/features.h" #include "components/enterprise/data_controls/core/browser/features.h" #include "components/error_page/common/error_page_switches.h" @@ -399,8 +399,8 @@ diff --git a/chrome/browser/android/browsing_data/browsing_data_bridge.cc b/chro static bool JNI_BrowsingDataBridge_GetBrowsingDataDeletionPreference( JNIEnv* env, Profile* profile, -- jint data_type) { -+ jint data_type, +- int32_t data_type) { ++ int32_t data_type, + jint clear_browsing_data_tab) { DCHECK_GE(data_type, 0); DCHECK_LE(data_type, @@ -417,7 +417,7 @@ diff --git a/chrome/browser/android/browsing_data/browsing_data_bridge.cc b/chro @@ -241,6 +251,7 @@ static void JNI_BrowsingDataBridge_SetBrowsingDataDeletionPreference( JNIEnv* env, Profile* profile, - jint data_type, + int32_t data_type, + jint clear_browsing_data_tab, bool value) { DCHECK_GE(data_type, 0); @@ -438,9 +438,9 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager. void ChromeBrowsingDataLifetimeManager::ClearBrowsingDataForOnExitPolicy( bool keep_browser_alive) { -- const base::Value::List& data_types = profile_->GetPrefs()->GetList( +- const base::ListValue& data_types = profile_->GetPrefs()->GetList( - browsing_data::prefs::kClearBrowsingDataOnExitList); -+ base::Value::List data_types = profile_->GetPrefs()->GetList( ++ base::ListValue data_types = profile_->GetPrefs()->GetList( + browsing_data::prefs::kClearBrowsingDataOnExitList).Clone(); + + if (profile_->GetPrefs()->GetBoolean(browsing_data::prefs::kDeleteBrowsingHistoryAtStart)) @@ -529,7 +529,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate. diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chrome/browser/extensions/api/settings_private/prefs_util.cc --- a/chrome/browser/extensions/api/settings_private/prefs_util.cc +++ b/chrome/browser/extensions/api/settings_private/prefs_util.cc -@@ -557,6 +557,23 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { +@@ -577,6 +577,23 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { (*s_allowlist)[browsing_data::prefs::kLastClearBrowsingDataTab] = settings_api::PrefType::kNumber; @@ -589,7 +589,7 @@ diff --git a/chrome/browser/profiles/android/profile_manager_utils.cc b/chrome/b diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc --- a/chrome/browser/profiles/profile_manager.cc +++ b/chrome/browser/profiles/profile_manager.cc -@@ -1523,6 +1523,19 @@ void ProfileManager::DoFinalInit(ProfileInfo* profile_info, +@@ -1534,6 +1534,19 @@ void ProfileManager::DoFinalInit(ProfileInfo* profile_info, } } @@ -609,7 +609,7 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile void ProfileManager::DoFinalInitForServices(Profile* profile, bool go_off_the_record) { if (!do_final_services_init_ || -@@ -2192,9 +2205,9 @@ void ProfileManager::OnBrowserClosed(Browser* browser) { +@@ -2215,9 +2228,9 @@ void ProfileManager::OnBrowserClosed(Browser* browser) { // Do nothing if the closed window is not the last window of the same profile. bool has_other_window = false; ForEachCurrentBrowserWindowInterfaceOrderedByActivation( @@ -624,7 +624,7 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile diff --git a/chrome/browser/profiles/profile_manager.h b/chrome/browser/profiles/profile_manager.h --- a/chrome/browser/profiles/profile_manager.h +++ b/chrome/browser/profiles/profile_manager.h -@@ -231,6 +231,8 @@ class ProfileManager : public Profile::Delegate { +@@ -242,6 +242,8 @@ class ProfileManager : public Profile::Delegate { // profiles. std::vector GetLoadedProfiles() const; @@ -709,7 +709,7 @@ diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_ 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 -@@ -1440,6 +1440,9 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1455,6 +1455,9 @@ Your Google account may have other forms of browsing history like searches and a Some of your history might not show up here. To see all your Chrome history, open full Chrome history. Also, your Google Account may have other forms of browsing history at <link>myactivity.google.com</link>. @@ -736,7 +736,7 @@ new file mode 100644 diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc --- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc +++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc -@@ -2273,6 +2273,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, +@@ -2291,6 +2291,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, {"clearedData", IDS_SETTINGS_CLEARED_DATA}, {"clearBrowsingData", IDS_SETTINGS_CLEAR_BROWSING_DATA}, {"clearBrowsingDataDescription", IDS_SETTINGS_CLEAR_DATA_DESCRIPTION}, @@ -788,7 +788,7 @@ diff --git a/components/browsing_data/core/BUILD.gn b/components/browsing_data/c diff --git a/components/browsing_data/core/browsing_data_policies_utils.cc b/components/browsing_data/core/browsing_data_policies_utils.cc --- a/components/browsing_data/core/browsing_data_policies_utils.cc +++ b/components/browsing_data/core/browsing_data_policies_utils.cc -@@ -18,21 +18,21 @@ +@@ -17,21 +17,21 @@ namespace browsing_data { @@ -1007,13 +1007,13 @@ diff --git a/components/search_engines/template_url_service.cc b/components/sear (created_before.is_null() || turl->date_created() < created_before) && turl->safe_for_autoreplace() && turl->prepopulate_id() == 0 && + turl->is_active() != TemplateURLData::ActiveStatus::kTrue && - turl->starter_pack_id() == 0 && !MatchesDefaultSearchProvider(turl) && - (url_filter.is_null() || - url_filter.Run(turl->GenerateSearchURL(search_terms_data())))) { + turl->starter_pack_id() == + template_url_starter_pack_data::StarterPackId::kNone && + !MatchesDefaultSearchProvider(turl) && diff --git a/content/browser/btm/btm_service_impl.cc b/content/browser/btm/btm_service_impl.cc --- a/content/browser/btm/btm_service_impl.cc +++ b/content/browser/btm/btm_service_impl.cc -@@ -251,7 +251,7 @@ class StateClearer : public BrowsingDataRemover::Observer { +@@ -231,7 +231,7 @@ class StateClearer : public BrowsingDataRemover::Observer { remove_mask &= ~BrowsingDataRemover::DATA_TYPE_PRIVACY_SANDBOX; remover->RemoveWithFilterAndReply( base::Time::Min(), base::Time::Max(), @@ -1033,7 +1033,7 @@ diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage #include "base/functional/bind.h" #include "base/functional/callback_helpers.h" #include "base/functional/concurrent_closures.h" -@@ -1556,6 +1557,7 @@ void StoragePartitionImpl::Initialize( +@@ -1557,6 +1558,7 @@ void StoragePartitionImpl::Initialize( .AppendASCII("Code Cache"); } DCHECK_GE(settings.size_in_bytes(), 0); diff --git a/build/patches/Add-setting-to-invert-tap-and-long-tap.patch b/build/patches/Add-setting-to-invert-tap-and-long-tap.patch index 9d1d5bcb..4cc58c80 100644 --- a/build/patches/Add-setting-to-invert-tap-and-long-tap.patch +++ b/build/patches/Add-setting-to-invert-tap-and-long-tap.patch @@ -70,7 +70,7 @@ diff --git a/chrome/android/java/res/values/ids.xml b/chrome/android/java/res/va diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java -@@ -165,6 +165,24 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting +@@ -167,6 +167,24 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting mSnackbarManagerSupplier.get().showSnackbar(mSnackbar); } @@ -138,7 +138,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr if (FirstRunStatus.getFirstRunFlowComplete() && !isEmptyUrl(mParams.getUrl()) && UrlUtilities.isAcceptedScheme(mParams.getUrl())) { -@@ -1085,6 +1088,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -1083,6 +1086,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { getProfile(), false); }); @@ -168,7 +168,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM 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 -@@ -437,6 +437,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -442,6 +442,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kTabFreezingUsesDiscard, &kTabModelInitFixes, &kTabStorageSqlitePrototype, @@ -179,7 +179,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse 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 -@@ -506,6 +506,8 @@ public abstract class ChromeFeatureList { +@@ -512,6 +512,8 @@ public abstract class ChromeFeatureList { "DisableToolbarSwipeUp"; public static final String MOVE_TOP_TOOLBAR_TO_BOTTOM = "MoveTopToolbarToBottom"; @@ -188,7 +188,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final String NEW_TAB_PAGE_CUSTOMIZATION_TOOLBAR_BUTTON = "NewTabPageCustomizationToolbarButton"; public static final String NEW_TAB_PAGE_CUSTOMIZATION_V2 = "NewTabPageCustomizationV2"; -@@ -1016,6 +1018,8 @@ public abstract class ChromeFeatureList { +@@ -1022,6 +1024,8 @@ public abstract class ChromeFeatureList { newCachedFlag(DISABLE_TOOLBAR_SWIPE_UP, false); public static final CachedFlag sMoveTopToolbarToBottom = newCachedFlag(MOVE_TOP_TOOLBAR_TO_BOTTOM, false); @@ -197,7 +197,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final CachedFlag sPaintPreviewDemo = newCachedFlag(PAINT_PREVIEW_DEMO, false); public static final CachedFlag sPersistAcrossReboots = newCachedFlag(PERSIST_ACROSS_REBOOTS, false); -@@ -1283,6 +1287,7 @@ public abstract class ChromeFeatureList { +@@ -1291,6 +1295,7 @@ public abstract class ChromeFeatureList { sTopControlsRefactorV2, sTouchToSearchCallout, sUnparcelIntentFileDescriptors, @@ -208,7 +208,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 -@@ -1569,6 +1569,12 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1584,6 +1584,12 @@ Your Google account may have other forms of browsing history like searches and a Disable toolbar swipe up @@ -221,7 +221,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro -@@ -3235,6 +3241,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -3247,6 +3253,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d Open in new Chrome tab @@ -249,7 +249,7 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java --- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java +++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java -@@ -64,6 +64,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -89,6 +89,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment private BooleanPreferenceDelegate mMoveTopToolbarToBottomDelegate; private BooleanPreferenceDelegate mDisableToolbarSwipeUpDelegate; @@ -259,7 +259,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c private PageZoomPreference mPageZoomDefaultZoomPref; private ChromeSwitchPreference mPageZoomIncludeOSAdjustment; private ChromeSwitchPreference mPageZoomAlwaysShowPref; -@@ -162,6 +165,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -198,6 +201,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment mDisableToolbarSwipeUpPref.setChecked(mDisableToolbarSwipeUpDelegate.getValue()); mDisableToolbarSwipeUpPref.setOnPreferenceChangeListener(this); @@ -272,7 +272,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c Preference captions = findPreference(PREF_CAPTIONS); captions.setOnPreferenceClickListener( preference -> { -@@ -270,6 +279,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -323,6 +332,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment } else if (PREF_DISABLE_TOOLBAR_SWIPE_UP.equals(preference.getKey())) { mDisableToolbarSwipeUpDelegate.setValue((Boolean) newValue); mDelegate.requestRestart(getActivity()); @@ -344,7 +344,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third_party/blink/renderer/core/html/html_anchor_element.cc --- a/third_party/blink/renderer/core/html/html_anchor_element.cc +++ b/third_party/blink/renderer/core/html/html_anchor_element.cc -@@ -68,6 +68,7 @@ +@@ -69,6 +69,7 @@ #include "third_party/blink/renderer/core/loader/render_blocking_resource_manager.h" #include "third_party/blink/renderer/core/navigation_api/navigation_api.h" #include "third_party/blink/renderer/core/page/chrome_client.h" @@ -352,7 +352,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third #include "third_party/blink/renderer/core/page/page.h" #include "third_party/blink/renderer/core/scroll/scroll_into_view_util.h" #include "third_party/blink/renderer/core/speculation_rules/document_speculation_rules.h" -@@ -421,6 +422,17 @@ void HTMLAnchorElementBase::NavigateToHyperlink( +@@ -422,6 +423,17 @@ void HTMLAnchorElementBase::NavigateToHyperlink( bool is_trusted, base::TimeTicks platform_time_stamp, KURL completed_url) { @@ -370,7 +370,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third LocalDOMWindow* window = GetDocument().domWindow(); if (!window) { return; -@@ -501,6 +513,15 @@ void HTMLAnchorElementBase::NavigateToHyperlink( +@@ -502,6 +514,15 @@ void HTMLAnchorElementBase::NavigateToHyperlink( frame_request.SetImpression(impression); } @@ -386,7 +386,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third Frame* target_frame = frame->Tree().FindOrCreateFrameForNavigation(frame_request, target).frame; -@@ -537,7 +558,7 @@ bool HTMLAnchorElementBase::IsValidInterestInvoker(Element& target) const { +@@ -538,7 +559,7 @@ bool HTMLAnchorElementBase::IsValidInterestInvoker(Element& target) const { return IsLink(); } @@ -395,7 +395,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third event.SetDefaultHandled(); LocalDOMWindow* window = GetDocument().domWindow(); -@@ -589,13 +610,12 @@ void HTMLAnchorElementBase::HandleClick(MouseEvent& event) { +@@ -596,13 +617,12 @@ void HTMLAnchorElementBase::HandleClick(MouseEvent& event) { return; } @@ -413,7 +413,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third // We distinguish single/double click with some modifiers. // See the comment of `EventHandler.delayed_navigation_task_handle_`. auto task_handle = PostDelayedCancellableTask( -@@ -605,7 +625,9 @@ void HTMLAnchorElementBase::HandleClick(MouseEvent& event) { +@@ -612,7 +632,9 @@ void HTMLAnchorElementBase::HandleClick(MouseEvent& event) { frame->GetEventHandler().SetDelayedNavigationTaskHandle( std::move(task_handle)); } else { diff --git a/build/patches/Add-site-engagement-flag.patch b/build/patches/Add-site-engagement-flag.patch index f0f7cd93..b42cd226 100644 --- a/build/patches/Add-site-engagement-flag.patch +++ b/build/patches/Add-site-engagement-flag.patch @@ -37,7 +37,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/engagement/important_sites_util.cc b/chrome/browser/engagement/important_sites_util.cc --- a/chrome/browser/engagement/important_sites_util.cc +++ b/chrome/browser/engagement/important_sites_util.cc -@@ -30,6 +30,7 @@ +@@ -29,6 +29,7 @@ #include "components/prefs/scoped_user_pref_update.h" #include "components/site_engagement/content/site_engagement_score.h" #include "components/site_engagement/content/site_engagement_service.h" @@ -111,7 +111,7 @@ diff --git a/components/feature_engagement/internal/tracker_impl.cc b/components #include "components/feature_engagement/internal/availability_model_impl.h" #include "components/feature_engagement/internal/blocked_iph_features.h" #include "components/feature_engagement/internal/chrome_variations_configuration.h" -@@ -291,6 +292,8 @@ TrackerImpl::TrackerImpl( +@@ -290,6 +291,8 @@ TrackerImpl::TrackerImpl( TrackerImpl::~TrackerImpl() = default; void TrackerImpl::NotifyEvent(const std::string& event) { diff --git a/build/patches/Add-support-for-ISupportHelpAndFeedback.patch b/build/patches/Add-support-for-ISupportHelpAndFeedback.patch index 0d15e920..f2b10d59 100644 --- a/build/patches/Add-support-for-ISupportHelpAndFeedback.patch +++ b/build/patches/Add-support-for-ISupportHelpAndFeedback.patch @@ -5,22 +5,14 @@ Subject: Add support for ISupportHelpAndFeedback Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../chrome/browser/settings/SettingsActivity.java | 9 +++++++-- - .../components/browser_ui/settings/SettingsUtils.java | 4 ++++ - 2 files changed, 11 insertions(+), 2 deletions(-) + .../chrome/browser/settings/SettingsActivity.java | 8 ++++++-- + .../components/browser_ui/settings/SettingsUtils.java | 4 ++++ + 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java -@@ -67,6 +67,7 @@ import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar; - import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; - import org.chromium.components.browser_ui.bottomsheet.BottomSheetControllerFactory; - import org.chromium.components.browser_ui.bottomsheet.ManagedBottomSheetController; -+import org.chromium.components.browser_ui.settings.SettingsUtils; - import org.chromium.components.browser_ui.modaldialog.AppModalPresenter; - import org.chromium.components.browser_ui.settings.EmbeddableSettingsPage; - import org.chromium.components.browser_ui.settings.PreferenceUpdateObserver; -@@ -904,8 +905,12 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -1018,8 +1018,12 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity return true; } else if (item.getItemId() == R.id.menu_id_general_help) { RecordUserAction.record("Settings.MobileHelpAndFeedback"); diff --git a/build/patches/Add-webGL-site-setting.patch b/build/patches/Add-webGL-site-setting.patch index f01f8609..f09dd108 100644 --- a/build/patches/Add-webGL-site-setting.patch +++ b/build/patches/Add-webGL-site-setting.patch @@ -206,7 +206,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context diff --git a/third_party/blink/renderer/core/execution_context/execution_context.h b/third_party/blink/renderer/core/execution_context/execution_context.h --- a/third_party/blink/renderer/core/execution_context/execution_context.h +++ b/third_party/blink/renderer/core/execution_context/execution_context.h -@@ -110,6 +110,8 @@ enum ReasonForCallingCanExecuteScripts { +@@ -111,6 +111,8 @@ enum ReasonForCallingCanExecuteScripts { enum ReferrerPolicySource { kPolicySourceHttpHeader, kPolicySourceMetaTag }; @@ -218,7 +218,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc --- a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc +++ b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc -@@ -343,6 +343,13 @@ void WebGLRenderingContextBase::InitializeWebGLContextLimits( +@@ -342,6 +342,13 @@ void WebGLRenderingContextBase::InitializeWebGLContextLimits( } } @@ -232,7 +232,7 @@ diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_ba unsigned WebGLRenderingContextBase::CurrentMaxGLContexts() { base::AutoLock locker(WebGLContextLimitLock()); DCHECK(webgl_context_limits_initialized_); -@@ -613,25 +620,6 @@ static String ExtractWebGLContextCreationError( +@@ -612,25 +619,6 @@ static String ExtractWebGLContextCreationError( const Platform::WebGLContextInfo& info) { StringBuilder builder; builder.Append("Could not create a WebGL context"); @@ -258,7 +258,7 @@ diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_ba FormatWebGLStatusString("ErrorMessage", info.error_message.Utf8().c_str(), builder); builder.Append('.'); -@@ -692,6 +680,12 @@ WebGLRenderingContextBase::CreateWebGraphicsContext3DProvider( +@@ -691,6 +679,12 @@ WebGLRenderingContextBase::CreateWebGraphicsContext3DProvider( const CanvasContextCreationAttributesCore& attributes, Platform::WebGLContextType context_type, Platform::WebGLContextInfo* context_info) { @@ -274,7 +274,7 @@ diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_ba diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h --- a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h +++ b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h -@@ -2008,6 +2008,8 @@ class MODULES_EXPORT WebGLRenderingContextBase +@@ -2009,6 +2009,8 @@ class MODULES_EXPORT WebGLRenderingContextBase DOMArrayBufferView* pixels, int64_t offset); diff --git a/build/patches/Add-webRTC-site-settings.patch b/build/patches/Add-webRTC-site-settings.patch index 46968304..76580e4e 100644 --- a/build/patches/Add-webRTC-site-settings.patch +++ b/build/patches/Add-webRTC-site-settings.patch @@ -187,7 +187,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc --- a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc +++ b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc -@@ -47,6 +47,7 @@ +@@ -48,6 +48,7 @@ #include "third_party/blink/public/platform/modules/webrtc/webrtc_logging.h" #include "third_party/blink/public/platform/platform.h" #include "third_party/blink/public/platform/task_type.h" @@ -195,7 +195,7 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_d #include "third_party/blink/public/platform/web_url.h" #include "third_party/blink/public/web/modules/mediastream/media_stream_video_source.h" #include "third_party/blink/public/web/web_document.h" -@@ -1046,6 +1047,11 @@ PeerConnectionDependencyFactory::CreatePortAllocator( +@@ -1071,6 +1072,11 @@ PeerConnectionDependencyFactory::CreatePortAllocator( // |request_multiple_routes|. Whether local IP addresses could be // collected depends on if mic/camera permission is granted for this // origin. diff --git a/build/patches/Allow-building-without-enable_reporting.patch b/build/patches/Allow-building-without-enable_reporting.patch index 1ef23938..f1ccbe71 100644 --- a/build/patches/Allow-building-without-enable_reporting.patch +++ b/build/patches/Allow-building-without-enable_reporting.patch @@ -43,7 +43,7 @@ diff --git a/chrome/browser/net/chrome_report_sender.cc b/chrome/browser/net/chr 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 +++ b/content/browser/devtools/protocol/network_handler.cc -@@ -1542,6 +1542,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) { +@@ -1608,6 +1608,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) { } } @@ -51,7 +51,7 @@ diff --git a/content/browser/devtools/protocol/network_handler.cc b/content/brow std::vector ComputeReportingURLs(RenderFrameHostImpl* frame_host) { std::vector urls; frame_host->ForEachRenderFrameHostImplWithAction( -@@ -1555,6 +1556,7 @@ std::vector ComputeReportingURLs(RenderFrameHostImpl* frame_host) { +@@ -1621,6 +1622,7 @@ std::vector ComputeReportingURLs(RenderFrameHostImpl* frame_host) { }); return urls; } @@ -87,7 +87,7 @@ diff --git a/content/browser/network/cross_origin_embedder_policy_reporter.cc b/ + const std::optional& endpoint = + report_only ? report_only_endpoint_ : endpoint_; if (endpoint) { - base::Value::Dict body_to_pass; + base::DictValue body_to_pass; for (const auto& pair : body) { @@ -125,6 +127,7 @@ void CrossOriginEmbedderPolicyReporter::QueueAndNotify( network_anonymization_key_, std::move(body_to_pass)); @@ -111,7 +111,7 @@ diff --git a/content/browser/network/reporting_service_proxy.cc b/content/browse @@ -241,12 +242,14 @@ class ReportingServiceProxyImpl : public blink::mojom::ReportingServiceProxy { const std::string& group, const std::string& type, - base::Value::Dict body) { + base::DictValue body) { +#if BUILDFLAG(ENABLE_REPORTING) auto* rph = RenderProcessHost::FromID(render_process_id_); if (!rph) @@ -126,7 +126,7 @@ diff --git a/content/browser/network/reporting_service_proxy.cc b/content/browse diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc -@@ -16427,12 +16427,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport( +@@ -16524,12 +16524,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport( } } } @@ -138,7 +138,7 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/b - std::move(body)); } - base::Value::Dict RenderFrameHostImpl::ReadCrashReportAPIBody() { + base::DictValue RenderFrameHostImpl::ReadCrashReportAPIBody() { diff --git a/content/browser/security/coop/cross_origin_opener_policy_reporter.cc b/content/browser/security/coop/cross_origin_opener_policy_reporter.cc --- a/content/browser/security/coop/cross_origin_opener_policy_reporter.cc +++ b/content/browser/security/coop/cross_origin_opener_policy_reporter.cc @@ -201,7 +201,7 @@ diff --git a/content/browser/security/coop/cross_origin_opener_policy_reporter.c } void CrossOriginOpenerPolicyReporter::QueueNavigationReport( - base::Value::Dict body, + base::DictValue body, const std::string& endpoint, bool is_report_only) { +#if BUILDFLAG(ENABLE_REPORTING) @@ -292,7 +292,7 @@ diff --git a/net/reporting/reporting_header_parser.cc b/net/reporting/reporting_ diff --git a/net/reporting/reporting_service.cc b/net/reporting/reporting_service.cc --- a/net/reporting/reporting_service.cc +++ b/net/reporting/reporting_service.cc -@@ -236,6 +236,12 @@ class ReportingServiceImpl : public ReportingService { +@@ -227,6 +227,12 @@ class ReportingServiceImpl : public ReportingService { int depth, base::TimeTicks queued_ticks, ReportingTargetType target_type) { @@ -308,17 +308,17 @@ diff --git a/net/reporting/reporting_service.cc b/net/reporting/reporting_servic diff --git a/services/network/network_context.h b/services/network/network_context.h --- a/services/network/network_context.h +++ b/services/network/network_context.h -@@ -493,14 +493,14 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -492,14 +492,14 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext const GURL& url, const std::optional& reporting_source, const net::NetworkAnonymizationKey& network_anonymization_key, -- base::Value::Dict body) override; -+ base::Value::Dict body); +- base::DictValue body) override; ++ base::DictValue body); void QueueEnterpriseReport(const std::string& type, const std::string& group, const GURL& url, -- base::Value::Dict body) override; -+ base::Value::Dict body); +- base::DictValue body) override; ++ base::DictValue body); void QueueSignedExchangeReport( mojom::SignedExchangeReportPtr report, - const net::NetworkAnonymizationKey& network_anonymization_key) override; @@ -329,7 +329,7 @@ diff --git a/services/network/network_context.h b/services/network/network_conte diff --git a/services/network/public/cpp/parsed_headers.cc b/services/network/public/cpp/parsed_headers.cc --- a/services/network/public/cpp/parsed_headers.cc +++ b/services/network/public/cpp/parsed_headers.cc -@@ -140,6 +140,7 @@ mojom::ParsedHeadersPtr PopulateParsedHeaders( +@@ -137,6 +137,7 @@ mojom::ParsedHeadersPtr PopulateParsedHeaders( } #if BUILDFLAG(ENABLE_REPORTING) @@ -340,7 +340,7 @@ diff --git a/services/network/public/cpp/parsed_headers.cc b/services/network/pu diff --git a/services/network/public/mojom/BUILD.gn b/services/network/public/mojom/BUILD.gn --- a/services/network/public/mojom/BUILD.gn +++ b/services/network/public/mojom/BUILD.gn -@@ -1885,7 +1885,6 @@ mojom("mojom") { +@@ -1890,7 +1890,6 @@ mojom("mojom") { export_define_blink = "BLINK_PLATFORM_IMPLEMENTATION=1" export_header_blink = "third_party/blink/public/platform/web_common.h" if (enable_reporting) { @@ -351,7 +351,7 @@ diff --git a/services/network/public/mojom/BUILD.gn b/services/network/public/mo diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom --- a/services/network/public/mojom/network_context.mojom +++ b/services/network/public/mojom/network_context.mojom -@@ -1239,6 +1239,7 @@ interface NetworkContext { +@@ -1229,6 +1229,7 @@ interface NetworkContext { // provided `network_anonymization_key`. // // Spec: https://w3c.github.io/reporting/#concept-reports @@ -359,7 +359,7 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw QueueReport(string type, string group, url.mojom.Url url, -@@ -1246,6 +1247,7 @@ interface NetworkContext { +@@ -1236,6 +1237,7 @@ interface NetworkContext { NetworkAnonymizationKey network_anonymization_key, mojo_base.mojom.DictionaryValue body); @@ -367,7 +367,7 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw QueueEnterpriseReport(string type, string group, url.mojom.Url url, -@@ -1256,6 +1258,7 @@ interface NetworkContext { +@@ -1246,6 +1248,7 @@ interface NetworkContext { // Note that this queued report will never be delivered if no reporting // endpoint matching is registered for with the provided // `network_anonymization_key`. @@ -383,10 +383,10 @@ diff --git a/third_party/blink/renderer/core/frame/csp/content_security_policy.c #include +#include "net/net_buildflags.h" - #include "base/containers/contains.h" #include "base/debug/dump_without_crashing.h" #include "base/feature_list.h" -@@ -1379,6 +1380,7 @@ void ContentSecurityPolicy::ReportViolation( + #include "base/metrics/histogram_functions.h" +@@ -1378,6 +1379,7 @@ void ContentSecurityPolicy::ReportViolation( ShouldBypassContentSecurityPolicy(KURL(violation_data->sourceFile()))) { return; } @@ -394,7 +394,7 @@ diff --git a/third_party/blink/renderer/core/frame/csp/content_security_policy.c PostViolationReport(violation_data, context_frame, report_endpoints, use_reporting_api); -@@ -1386,6 +1388,7 @@ void ContentSecurityPolicy::ReportViolation( +@@ -1385,6 +1387,7 @@ void ContentSecurityPolicy::ReportViolation( // `context_frame` (i.e. we're not processing 'frame-ancestors'). if (delegate_ && !context_frame) delegate_->DispatchViolationEvent(*violation_data, element); @@ -413,7 +413,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ #include "services/network/public/cpp/features.h" #include "services/network/public/mojom/content_security_policy.mojom-blink.h" #include "services/network/public/mojom/source_location.mojom-blink.h" -@@ -2861,9 +2862,11 @@ DocumentResourceCoordinator* LocalFrame::GetDocumentResourceCoordinator() { +@@ -2889,9 +2890,11 @@ DocumentResourceCoordinator* LocalFrame::GetDocumentResourceCoordinator() { return CHECK_DEREF(GetDocument()).GetResourceCoordinator(); } @@ -436,7 +436,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/b #include "net/storage_access_api/status.h" #include "services/metrics/public/cpp/ukm_source_id.h" #include "services/network/public/mojom/fetch_api.mojom-blink-forward.h" -@@ -668,7 +669,9 @@ class CORE_EXPORT LocalFrame final +@@ -671,7 +672,9 @@ class CORE_EXPORT LocalFrame final return client_hints_preferences_; } diff --git a/build/patches/Allow-building-without-supervised-users.patch b/build/patches/Allow-building-without-supervised-users.patch index 8552303e..adce842b 100644 --- a/build/patches/Allow-building-without-supervised-users.patch +++ b/build/patches/Allow-building-without-supervised-users.patch @@ -7,24 +7,25 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/android/BUILD.gn | 1 - .../chrome/browser/feedback/ChromeFeedbackCollector.java | 1 - chrome/browser/feedback/android/BUILD.gn | 2 -- - chrome/browser/prefs/chrome_pref_service_factory.cc | 2 +- + chrome/browser/prefs/chrome_pref_service_factory.cc | 6 ------ chrome/browser/profiles/profile_attributes_entry.cc | 2 +- chrome/browser/profiles/profile_impl.cc | 5 +---- chrome/browser/profiles/profile_manager.cc | 7 ------- .../supervised_user/supervised_user_browser_utils.cc | 1 + chrome/browser/ui/webui/managed_ui_handler.cc | 4 ---- .../browser/ui/webui/management/management_ui_handler.cc | 4 ---- + .../browser/android/content_filters_observer_bridge.cc | 2 +- .../core/browser/supervised_user_pref_store.cc | 1 + .../core/browser/supervised_user_preferences.cc | 6 +++++- .../core/browser/supervised_user_service.cc | 1 + - components/supervised_user/core/common/features.cc | 3 ++- + components/supervised_user/core/common/features.cc | 1 + extensions/browser/api/management/management_api.cc | 1 + - 15 files changed, 14 insertions(+), 27 deletions(-) + 16 files changed, 13 insertions(+), 32 deletions(-) diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -810,7 +810,6 @@ if (_is_default_toolchain) { +@@ -823,7 +823,6 @@ if (_is_default_toolchain) { "//components/offline_pages/core:offline_page_model_enums_java", "//components/sharing_message:sharing_dialog_type_generated_enum", "//components/sharing_message:sharing_send_message_result_generated_enum", @@ -65,15 +66,19 @@ diff --git a/chrome/browser/feedback/android/BUILD.gn b/chrome/browser/feedback/ diff --git a/chrome/browser/prefs/chrome_pref_service_factory.cc b/chrome/browser/prefs/chrome_pref_service_factory.cc --- a/chrome/browser/prefs/chrome_pref_service_factory.cc +++ b/chrome/browser/prefs/chrome_pref_service_factory.cc -@@ -332,7 +332,7 @@ void PrepareFactory( - policy::BrowserPolicyConnector* policy_connector) { - factory->SetManagedPolicies(policy_service, policy_connector); - factory->SetRecommendedPolicies(policy_service, policy_connector); -- if (supervised_user_settings) { -+ if (((false)) && supervised_user_settings) { - // supervised_user_prefs handles the case when content_filters_service is - // nullptr. It's simply not subscribing to empty service's notifications. - scoped_refptr supervised_user_prefs = +@@ -353,12 +353,6 @@ void PrepareFactory( + PrepareFactory(factory, pref_filename, policy_service, + std::move(user_pref_store), std::move(extension_prefs), async, + policy_connector); +- +- scoped_refptr supervised_user_prefs = +- base::MakeRefCounted( +- family_link_settings_service, device_parental_controls); +- DCHECK(async || supervised_user_prefs->IsInitializationComplete()); +- factory->set_supervised_user_prefs(supervised_user_prefs); + } + + class ResetOnLoadObserverImpl : public prefs::mojom::ResetOnLoadObserver { diff --git a/chrome/browser/profiles/profile_attributes_entry.cc b/chrome/browser/profiles/profile_attributes_entry.cc --- a/chrome/browser/profiles/profile_attributes_entry.cc +++ b/chrome/browser/profiles/profile_attributes_entry.cc @@ -89,7 +94,7 @@ diff --git a/chrome/browser/profiles/profile_attributes_entry.cc b/chrome/browse diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc --- a/chrome/browser/profiles/profile_impl.cc +++ b/chrome/browser/profiles/profile_impl.cc -@@ -680,10 +680,6 @@ void ProfileImpl::DoFinalInit(CreateMode create_mode) { +@@ -685,10 +685,6 @@ void ProfileImpl::DoFinalInit(CreateMode create_mode) { prefs->SetTime(prefs::kProfileCreationTime, path_creation_time_); pref_change_registrar_.Init(prefs); @@ -100,7 +105,7 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p // Changes in the profile avatar. pref_change_registrar_.Add( -@@ -1604,6 +1600,7 @@ GURL ProfileImpl::GetHomePage() { +@@ -1612,6 +1608,7 @@ GURL ProfileImpl::GetHomePage() { } void ProfileImpl::UpdateSupervisedUserIdInStorage() { @@ -111,7 +116,7 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc --- a/chrome/browser/profiles/profile_manager.cc +++ b/chrome/browser/profiles/profile_manager.cc -@@ -1265,10 +1265,6 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) { +@@ -1276,10 +1276,6 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) { profile->GetPrefs()->SetString(prefs::kProfileName, profile_name); } @@ -122,7 +127,7 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile } void ProfileManager::RegisterTestingProfile(std::unique_ptr profile, -@@ -2051,9 +2047,6 @@ void ProfileManager::AddProfileToStorage(Profile* profile) { +@@ -2062,9 +2058,6 @@ void ProfileManager::AddProfileToStorage(Profile* profile) { init_params.icon_index = profile->GetPrefs()->GetInteger(prefs::kProfileAvatarIndex); @@ -146,7 +151,7 @@ diff --git a/chrome/browser/supervised_user/supervised_user_browser_utils.cc b/c diff --git a/chrome/browser/ui/webui/managed_ui_handler.cc b/chrome/browser/ui/webui/managed_ui_handler.cc --- a/chrome/browser/ui/webui/managed_ui_handler.cc +++ b/chrome/browser/ui/webui/managed_ui_handler.cc -@@ -89,10 +89,6 @@ void ManagedUIHandler::AddObservers() { +@@ -88,10 +88,6 @@ void ManagedUIHandler::AddObservers() { auto domain = static_cast(i); policy_service->AddObserver(domain, this); } @@ -160,7 +165,7 @@ diff --git a/chrome/browser/ui/webui/managed_ui_handler.cc b/chrome/browser/ui/w diff --git a/chrome/browser/ui/webui/management/management_ui_handler.cc b/chrome/browser/ui/webui/management/management_ui_handler.cc --- a/chrome/browser/ui/webui/management/management_ui_handler.cc +++ b/chrome/browser/ui/webui/management/management_ui_handler.cc -@@ -622,10 +622,6 @@ bool ManagementUIHandler::managed() const { +@@ -620,10 +620,6 @@ bool ManagementUIHandler::managed() const { void ManagementUIHandler::RegisterPrefChange( PrefChangeRegistrar& pref_registrar) { @@ -171,17 +176,29 @@ diff --git a/chrome/browser/ui/webui/management/management_ui_handler.cc b/chrom } void ManagementUIHandler::UpdateManagedState() { +diff --git a/components/supervised_user/core/browser/android/content_filters_observer_bridge.cc b/components/supervised_user/core/browser/android/content_filters_observer_bridge.cc +--- a/components/supervised_user/core/browser/android/content_filters_observer_bridge.cc ++++ b/components/supervised_user/core/browser/android/content_filters_observer_bridge.cc +@@ -39,7 +39,7 @@ void ContentFiltersObserverBridge::OnChange(JNIEnv* env, bool enabled) { + } + + void ContentFiltersObserverBridge::SetEnabled(bool enabled) { +- enabled_ = enabled; ++ enabled_ = false; + NotifyObservers(); + } + diff --git a/components/supervised_user/core/browser/supervised_user_pref_store.cc b/components/supervised_user/core/browser/supervised_user_pref_store.cc --- a/components/supervised_user/core/browser/supervised_user_pref_store.cc +++ b/components/supervised_user/core/browser/supervised_user_pref_store.cc -@@ -171,6 +171,7 @@ void SupervisedUserPrefStore::RecreatePreferences() { +@@ -188,6 +188,7 @@ void SupervisedUserPrefStore::RecreatePreferences() { return; } + if ((true)) return; std::unique_ptr old_prefs = std::move(prefs_); prefs_ = std::make_unique(); - if (settings_service_ && settings_service_->IsActive()) { + diff --git a/components/supervised_user/core/browser/supervised_user_preferences.cc b/components/supervised_user/core/browser/supervised_user_preferences.cc --- a/components/supervised_user/core/browser/supervised_user_preferences.cc +++ b/components/supervised_user/core/browser/supervised_user_preferences.cc @@ -208,7 +225,7 @@ diff --git a/components/supervised_user/core/browser/supervised_user_preferences diff --git a/components/supervised_user/core/browser/supervised_user_service.cc b/components/supervised_user/core/browser/supervised_user_service.cc --- a/components/supervised_user/core/browser/supervised_user_service.cc +++ b/components/supervised_user/core/browser/supervised_user_service.cc -@@ -204,6 +204,7 @@ SupervisedUserService::SupervisedUserService( +@@ -160,6 +160,7 @@ SupervisedUserService::SupervisedUserService( } void SupervisedUserService::SetSettingsServiceActive(bool active) { @@ -219,28 +236,14 @@ diff --git a/components/supervised_user/core/browser/supervised_user_service.cc diff --git a/components/supervised_user/core/common/features.cc b/components/supervised_user/core/common/features.cc --- a/components/supervised_user/core/common/features.cc +++ b/components/supervised_user/core/common/features.cc -@@ -30,7 +30,6 @@ BASE_FEATURE(kAllowSubframeLocalWebApprovals, - #else - base::FEATURE_DISABLED_BY_DEFAULT); - #endif -- - #if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ - BUILDFLAG(IS_WIN) - const int kLocalWebApprovalBottomSheetLoadTimeoutDefaultValueMs = 5000; -@@ -116,6 +115,7 @@ const base::FeatureParam - - namespace { - bool PlatformSupportsLocalSupervision() { -+ if ((true)) return false; - int32_t major, minor, bugfix; - base::SysInfo::OperatingSystemVersionNumbers(&major, &minor, &bugfix); - bool supported_by_os = (major == 16 && minor >= 1) || major > 16; -@@ -154,4 +154,5 @@ bool ClassifyUrlWithoutCredentialsForLocalSupervision() { - BASE_FEATURE(kSupervisedUserUseUrlFilteringService, - base::FEATURE_DISABLED_BY_DEFAULT); - +@@ -19,6 +19,7 @@ namespace supervised_user { + // Enables local parent approvals for the blocked website on the Family Link + // user's device. + BASE_FEATURE(kLocalWebApprovals, base::FEATURE_ENABLED_BY_DEFAULT); +SET_CROMITE_FEATURE_DISABLED(kLocalWebApprovals); - } // namespace supervised_user + + // TODO(crbug.com/391799078): Support local web approval for subframes on + // Desktop. diff --git a/extensions/browser/api/management/management_api.cc b/extensions/browser/api/management/management_api.cc --- a/extensions/browser/api/management/management_api.cc +++ b/extensions/browser/api/management/management_api.cc diff --git a/build/patches/Allow-playing-audio-in-background.patch b/build/patches/Allow-playing-audio-in-background.patch index 04e46e76..ff931da1 100644 --- a/build/patches/Allow-playing-audio-in-background.patch +++ b/build/patches/Allow-playing-audio-in-background.patch @@ -23,7 +23,7 @@ diff --git a/content/public/renderer/render_frame_media_playback_options.cc b/co diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc b/third_party/blink/renderer/platform/media/web_media_player_impl.cc --- a/third_party/blink/renderer/platform/media/web_media_player_impl.cc +++ b/third_party/blink/renderer/platform/media/web_media_player_impl.cc -@@ -1288,6 +1288,12 @@ bool WebMediaPlayerImpl::HasAudio() const { +@@ -1296,6 +1296,12 @@ bool WebMediaPlayerImpl::HasAudio() const { return pipeline_metadata_.has_audio; } @@ -36,7 +36,7 @@ diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc void WebMediaPlayerImpl::EnabledAudioTracksChanged( std::optional enabled_track_id) { DCHECK(main_task_runner_->BelongsToCurrentThread()); -@@ -3650,7 +3656,10 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const { +@@ -3658,7 +3664,10 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const { const bool preserve_audio = HasUnmutedAudio() || audio_source_provider_->IsAudioBeingCaptured(); // Audio only stream is allowed to play when in background. diff --git a/build/patches/Always-use-new-tab-page-for-default-home-page.patch b/build/patches/Always-use-new-tab-page-for-default-home-page.patch index 30aad753..e96a98f3 100644 --- a/build/patches/Always-use-new-tab-page-for-default-home-page.patch +++ b/build/patches/Always-use-new-tab-page-for-default-home-page.patch @@ -68,7 +68,7 @@ diff --git a/chrome/browser/partnercustomizations/java/src/org/chromium/chrome/b diff --git a/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrl.java b/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrl.java --- a/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrl.java +++ b/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrl.java -@@ -88,6 +88,7 @@ public class TemplateUrl { +@@ -96,6 +96,7 @@ public class TemplateUrl { * prepopulated_engines.json. */ public String getNewTabURL() { @@ -79,7 +79,7 @@ diff --git a/components/search_engines/android/java/src/org/chromium/components/ diff --git a/components/search_engines/android/template_url_service_android.cc b/components/search_engines/android/template_url_service_android.cc --- a/components/search_engines/android/template_url_service_android.cc +++ b/components/search_engines/android/template_url_service_android.cc -@@ -402,6 +402,7 @@ bool TemplateUrlServiceAndroid::SetPlayAPISearchEngine( +@@ -412,6 +412,7 @@ bool TemplateUrlServiceAndroid::SetPlayAPISearchEngine( jimage_translate_source_language_param_key, const base::android::JavaRef& jimage_translate_target_language_param_key) { diff --git a/build/patches/Android-Pixel-Perfect-Mode.patch b/build/patches/Android-Pixel-Perfect-Mode.patch index 24f1b0d3..0a8619d2 100644 --- a/build/patches/Android-Pixel-Perfect-Mode.patch +++ b/build/patches/Android-Pixel-Perfect-Mode.patch @@ -92,7 +92,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html third_party/blink/renderer/core/page/page.cc | 4 ++ .../core/page/viewport_description.cc | 2 +- .../canvas2d/base_rendering_context_2d.cc | 5 +- - .../platform/runtime_enabled_features.json5 | 6 ++- + .../platform/runtime_enabled_features.json5 | 4 ++ .../widget/input/input_handler_proxy.cc | 48 +++++++++++++------ .../renderer/platform/widget/widget_base.cc | 26 +++++----- .../renderer/platform/widget/widget_base.h | 2 +- @@ -107,7 +107,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html ui/display/mojom/screen_info_mojom_traits.h | 4 ++ ui/display/screen_info.h | 1 + ui/events/blink/blink_event_util.cc | 2 +- - 97 files changed, 531 insertions(+), 139 deletions(-) + 97 files changed, 530 insertions(+), 138 deletions(-) create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sPixelPerfect.java create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Pixel-perfect-mode.grdp create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Pixel-perfect-mode.inc @@ -117,7 +117,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/android_webview/browser/aw_contents.cc b/android_webview/browser/aw_contents.cc --- a/android_webview/browser/aw_contents.cc +++ b/android_webview/browser/aw_contents.cc -@@ -957,7 +957,7 @@ void AwContents::OnSizeChanged(JNIEnv* env, int w, int h, int ow, int oh) { +@@ -1004,7 +1004,7 @@ void AwContents::OnSizeChanged(JNIEnv* env, int w, int h, int ow, int oh) { DCHECK_CURRENTLY_ON(BrowserThread::UI); gfx::Size size(w, h); web_contents_->GetNativeView()->OnPhysicalBackingSizeChanged(size); @@ -174,7 +174,7 @@ diff --git a/cc/layers/viewport.cc b/cc/layers/viewport.cc diff --git a/cc/mojo_embedder/viz_layer_context.cc b/cc/mojo_embedder/viz_layer_context.cc --- a/cc/mojo_embedder/viz_layer_context.cc +++ b/cc/mojo_embedder/viz_layer_context.cc -@@ -1332,7 +1332,7 @@ void VizLayerContext::SetVisible(bool visible) { +@@ -1355,7 +1355,7 @@ void VizLayerContext::SetVisible(bool visible) { service_->SetVisible(visible); } @@ -186,7 +186,7 @@ diff --git a/cc/mojo_embedder/viz_layer_context.cc b/cc/mojo_embedder/viz_layer_ diff --git a/cc/trees/commit_state.cc b/cc/trees/commit_state.cc --- a/cc/trees/commit_state.cc +++ b/cc/trees/commit_state.cc -@@ -25,6 +25,7 @@ CommitState::CommitState(const CommitState& prev) +@@ -26,6 +26,7 @@ CommitState::CommitState(const CommitState& prev) external_page_scale_factor(prev.external_page_scale_factor), max_page_scale_factor(prev.max_page_scale_factor), min_page_scale_factor(prev.min_page_scale_factor), @@ -197,7 +197,7 @@ diff --git a/cc/trees/commit_state.cc b/cc/trees/commit_state.cc diff --git a/cc/trees/commit_state.h b/cc/trees/commit_state.h --- a/cc/trees/commit_state.h +++ b/cc/trees/commit_state.h -@@ -94,6 +94,7 @@ struct CC_EXPORT CommitState { +@@ -95,6 +95,7 @@ struct CC_EXPORT CommitState { float external_page_scale_factor = 1.f; float max_page_scale_factor = 1.f; float min_page_scale_factor = 1.f; @@ -208,7 +208,7 @@ diff --git a/cc/trees/commit_state.h b/cc/trees/commit_state.h diff --git a/cc/trees/layer_tree_host.cc b/cc/trees/layer_tree_host.cc --- a/cc/trees/layer_tree_host.cc +++ b/cc/trees/layer_tree_host.cc -@@ -1393,7 +1393,7 @@ void LayerTreeHost::SetEventListenerProperties( +@@ -1416,7 +1416,7 @@ void LayerTreeHost::SetEventListenerProperties( SetNeedsCommit(); } @@ -217,7 +217,7 @@ diff --git a/cc/trees/layer_tree_host.cc b/cc/trees/layer_tree_host.cc const gfx::Rect& device_viewport_rect, float device_scale_factor, const viz::LocalSurfaceId& local_surface_id_from_parent) { -@@ -1504,9 +1504,11 @@ void LayerTreeHost::SetOverscrollBehavior(const OverscrollBehavior& behavior) { +@@ -1527,9 +1527,11 @@ void LayerTreeHost::SetOverscrollBehavior(const OverscrollBehavior& behavior) { void LayerTreeHost::SetPageScaleFactorAndLimits(float page_scale_factor, float min_page_scale_factor, @@ -229,7 +229,7 @@ diff --git a/cc/trees/layer_tree_host.cc b/cc/trees/layer_tree_host.cc pending_commit_state()->max_page_scale_factor == max_page_scale_factor) return; DCHECK_GE(page_scale_factor, min_page_scale_factor); -@@ -1522,6 +1524,7 @@ void LayerTreeHost::SetPageScaleFactorAndLimits(float page_scale_factor, +@@ -1545,6 +1547,7 @@ void LayerTreeHost::SetPageScaleFactorAndLimits(float page_scale_factor, pending_commit_state()->page_scale_factor = page_scale_factor; pending_commit_state()->min_page_scale_factor = min_page_scale_factor; @@ -240,7 +240,7 @@ diff --git a/cc/trees/layer_tree_host.cc b/cc/trees/layer_tree_host.cc diff --git a/cc/trees/layer_tree_host.h b/cc/trees/layer_tree_host.h --- a/cc/trees/layer_tree_host.h +++ b/cc/trees/layer_tree_host.h -@@ -570,6 +570,7 @@ class CC_EXPORT LayerTreeHost : public MutatorHostClient { +@@ -583,6 +583,7 @@ class CC_EXPORT LayerTreeHost : public MutatorHostClient { void SetPageScaleFactorAndLimits(float page_scale_factor, float min_page_scale_factor, @@ -248,7 +248,7 @@ diff --git a/cc/trees/layer_tree_host.h b/cc/trees/layer_tree_host.h float max_page_scale_factor); float page_scale_factor() const { return pending_commit_state()->page_scale_factor; -@@ -577,6 +578,9 @@ class CC_EXPORT LayerTreeHost : public MutatorHostClient { +@@ -590,6 +591,9 @@ class CC_EXPORT LayerTreeHost : public MutatorHostClient { float min_page_scale_factor() const { return pending_commit_state()->min_page_scale_factor; } @@ -261,7 +261,7 @@ diff --git a/cc/trees/layer_tree_host.h b/cc/trees/layer_tree_host.h diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc --- a/cc/trees/layer_tree_host_impl.cc +++ b/cc/trees/layer_tree_host_impl.cc -@@ -2788,7 +2788,7 @@ viz::RegionCaptureBounds LayerTreeHostImpl::CollectRegionCaptureBounds() { +@@ -2877,7 +2877,7 @@ viz::RegionCaptureBounds LayerTreeHostImpl::CollectRegionCaptureBounds() { return bounds; } @@ -270,7 +270,7 @@ diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc viz::CompositorFrameMetadata metadata; if (settings().trees_in_viz_in_viz_process) { // In TreesInViz mode, this function is called in client process already, -@@ -2948,7 +2948,7 @@ viz::CompositorFrameMetadata LayerTreeHostImpl::MakeCompositorFrameMetadata() { +@@ -3038,7 +3038,7 @@ viz::CompositorFrameMetadata LayerTreeHostImpl::MakeCompositorFrameMetadata() { return metadata; } @@ -282,7 +282,7 @@ diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc --- a/cc/trees/layer_tree_impl.cc +++ b/cc/trees/layer_tree_impl.cc -@@ -164,6 +164,7 @@ LayerTreeImpl::LayerTreeImpl( +@@ -163,6 +163,7 @@ LayerTreeImpl::LayerTreeImpl( background_color_(SkColors::kTransparent), page_scale_factor_(page_scale_factor), min_page_scale_factor_(0), @@ -290,7 +290,7 @@ diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc max_page_scale_factor_(0), external_page_scale_factor_(1.f), device_scale_factor_(1.f), -@@ -451,7 +452,7 @@ void LayerTreeImpl::InvalidateRasterInducingScrolls( +@@ -450,7 +451,7 @@ void LayerTreeImpl::InvalidateRasterInducingScrolls( } } @@ -299,7 +299,7 @@ diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc if (!InnerViewportScrollNode()) return; -@@ -521,8 +522,13 @@ void LayerTreeImpl::UpdateViewportContainerSizes() { +@@ -520,8 +521,13 @@ void LayerTreeImpl::UpdateViewportContainerSizes() { // Adjust the outer viewport container as well, since adjusting only the // inner may cause its bounds to exceed those of the outer, causing scroll // clamping. @@ -315,7 +315,7 @@ diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc property_trees->SetOuterViewportContainerBoundsDelta(scaled_bounds_delta); // outer_viewport_container_bounds_delta and -@@ -844,6 +850,7 @@ void LayerTreeImpl::PullLayerTreePropertiesFrom(CommitState& commit_state) { +@@ -843,6 +849,7 @@ void LayerTreeImpl::PullLayerTreePropertiesFrom(CommitState& commit_state) { PushPageScaleFromMainThread(commit_state.page_scale_factor, commit_state.min_page_scale_factor, @@ -323,7 +323,7 @@ diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc commit_state.max_page_scale_factor); SetBrowserControlsParams(commit_state.browser_controls_params); -@@ -967,6 +974,7 @@ void LayerTreeImpl::PushPropertiesTo(LayerTreeImpl* target_tree) { +@@ -966,6 +973,7 @@ void LayerTreeImpl::PushPropertiesTo(LayerTreeImpl* target_tree) { // Active tree already shares the page_scale_factor object with pending // tree so only the limits need to be provided. target_tree->PushPageScaleFactorAndLimits(nullptr, min_page_scale_factor(), @@ -331,7 +331,7 @@ diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc max_page_scale_factor()); target_tree->SetExternalPageScaleFactor(external_page_scale_factor_); -@@ -1399,19 +1407,21 @@ void LayerTreeImpl::SetPageScaleOnActiveTree(float active_page_scale) { +@@ -1398,19 +1406,21 @@ void LayerTreeImpl::SetPageScaleOnActiveTree(float active_page_scale) { void LayerTreeImpl::PushPageScaleFromMainThread(float page_scale_factor, float min_page_scale_factor, @@ -355,7 +355,7 @@ diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc if (changed_page_scale) { DidUpdatePageScale(); -@@ -1420,12 +1430,13 @@ void LayerTreeImpl::SetPageScaleFactorAndLimitsForDisplayTree( +@@ -1419,12 +1429,13 @@ void LayerTreeImpl::SetPageScaleFactorAndLimitsForDisplayTree( void LayerTreeImpl::PushPageScaleFactorAndLimits(const float* page_scale_factor, float min_page_scale_factor, @@ -370,7 +370,7 @@ diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc if (page_scale_factor) { DCHECK(!IsActiveTree() || !host_impl_->pending_tree()); -@@ -1530,12 +1541,15 @@ void LayerTreeImpl::PushBrowserControls( +@@ -1529,12 +1540,15 @@ void LayerTreeImpl::PushBrowserControls( } bool LayerTreeImpl::SetPageScaleFactorLimits(float min_page_scale_factor, @@ -386,7 +386,7 @@ diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc max_page_scale_factor_ = max_page_scale_factor; return true; -@@ -2433,7 +2447,7 @@ ScrollbarSet LayerTreeImpl::ScrollbarsFor(ElementId scroll_element_id) const { +@@ -2436,7 +2450,7 @@ ScrollbarSet LayerTreeImpl::ScrollbarsFor(ElementId scroll_element_id) const { return scrollbars; } @@ -395,7 +395,7 @@ diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc const gfx::PointF& screen_space_point, const gfx::Transform& local_space_to_screen_space_transform, const gfx::Rect& local_space_rect, -@@ -3044,7 +3058,7 @@ static gfx::SelectionBound ComputeViewportSelectionBound( +@@ -3047,7 +3061,7 @@ static gfx::SelectionBound ComputeViewportSelectionBound( return viewport_bound; } @@ -424,7 +424,7 @@ diff --git a/cc/trees/layer_tree_impl.h b/cc/trees/layer_tree_impl.h float page_scale_delta() const { return page_scale_factor()->Delta(); } SyncedScale* page_scale_factor(); -@@ -847,6 +848,7 @@ class CC_EXPORT LayerTreeImpl { +@@ -860,6 +861,7 @@ class CC_EXPORT LayerTreeImpl { void SetPageScaleFactorAndLimitsForDisplayTree(float page_scale_factor, float min_page_scale_factor, @@ -432,7 +432,7 @@ diff --git a/cc/trees/layer_tree_impl.h b/cc/trees/layer_tree_impl.h float max_page_scale_factor); LayerTreeHostImpl* host_impl() { return host_impl_; } -@@ -871,8 +873,10 @@ class CC_EXPORT LayerTreeImpl { +@@ -884,8 +886,10 @@ class CC_EXPORT LayerTreeImpl { float ClampPageScaleFactorToLimits(float page_scale_factor) const; void PushPageScaleFactorAndLimits(const float* page_scale_factor, float min_page_scale_factor, @@ -443,9 +443,9 @@ diff --git a/cc/trees/layer_tree_impl.h b/cc/trees/layer_tree_impl.h float max_page_scale_factor); void DidUpdatePageScale(); void PushBrowserControls(const float* top_controls_shown_ratio, -@@ -911,6 +915,7 @@ class CC_EXPORT LayerTreeImpl { - - scoped_refptr page_scale_factor_; +@@ -927,6 +931,7 @@ class CC_EXPORT LayerTreeImpl { + // The minimum and maximum page scale factor. A value of 0 indicates that the + // limit is not enforced. float min_page_scale_factor_; + float browser_control_scale_factor_; float max_page_scale_factor_; @@ -454,7 +454,7 @@ diff --git a/cc/trees/layer_tree_impl.h b/cc/trees/layer_tree_impl.h diff --git a/cc/trees/property_tree.cc b/cc/trees/property_tree.cc --- a/cc/trees/property_tree.cc +++ b/cc/trees/property_tree.cc -@@ -1749,7 +1749,7 @@ void ScrollTree::clear() { +@@ -1765,7 +1765,7 @@ void ScrollTree::clear() { #endif } @@ -463,7 +463,7 @@ diff --git a/cc/trees/property_tree.cc b/cc/trees/property_tree.cc const ScrollNode* scroll_node = Node(scroll_node_id); gfx::SizeF scroll_bounds = this->scroll_bounds(scroll_node_id); -@@ -2302,7 +2302,7 @@ gfx::Vector2dF ScrollTree::ScrollBy(const ScrollNode& scroll_node, +@@ -2318,7 +2318,7 @@ gfx::Vector2dF ScrollTree::ScrollBy(const ScrollNode& scroll_node, return old_offset + scroll - new_offset; } @@ -499,7 +499,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.j diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -45,6 +45,9 @@ import androidx.annotation.NonNull; +@@ -44,6 +44,9 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; @@ -509,7 +509,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv import org.chromium.base.ActivityState; import org.chromium.base.ApplicationStatus; import org.chromium.base.Callback; -@@ -559,7 +562,25 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -553,7 +556,25 @@ public abstract class ChromeActivity extends AsyncInitializationActivity // Ensure that mConfig is initialized before tablet mode changes. mConfig = getResources().getConfiguration(); @@ -539,7 +539,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java -@@ -1004,7 +1004,7 @@ public class CompositorViewHolder extends FrameLayout +@@ -1005,7 +1005,7 @@ public class CompositorViewHolder extends FrameLayout int viewportInsets = controlsInsets + keyboardInset; if (isAttachedToWindow(view)) { @@ -548,7 +548,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/Comp // Dispatch the geometrychange JavaScript event to the page. // TODO(bokan): This doesn't belong in updateWebContentsSize. Ideally the content/ layer -@@ -1024,7 +1024,7 @@ public class CompositorViewHolder extends FrameLayout +@@ -1025,7 +1025,7 @@ public class CompositorViewHolder extends FrameLayout MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY)); view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight()); @@ -572,10 +572,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/bott diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java -@@ -2475,7 +2475,7 @@ class TabImpl implements Tab { - Supplier compositorViewHolderSupplier = - assumeNonNull(getActivity()).getCompositorViewHolderSupplier(); - View compositorView = compositorViewHolderSupplier.get(); +@@ -2490,7 +2490,7 @@ class TabImpl implements Tab { + View compositorView = + assumeNonNull(getActivity()).getCompositorViewHolderSupplier().get(); + assumeNonNull(compositorView); - webContents.setSize(compositorView.getWidth(), compositorView.getHeight()); + webContents.setSize(compositorView.getWidth(), compositorView.getHeight(), 0); @@ -584,7 +584,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java -@@ -26,12 +26,14 @@ import org.chromium.components.browser_ui.settings.EmbeddableSettingsPage; +@@ -27,12 +27,14 @@ import org.chromium.components.browser_ui.settings.EmbeddableSettingsPage; import org.chromium.components.browser_ui.settings.SettingsUtils; import org.chromium.components.browser_ui.settings.search.SettingsIndexData; import org.chromium.chrome.browser.util.PlatformUtil; @@ -599,7 +599,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tracing/setting // Non-translated strings: private static final String MSG_DEVELOPER_OPTIONS_TITLE = "Developer options"; -@@ -83,6 +85,14 @@ public class DeveloperSettings extends ChromeBaseSettingsFragment implements Emb +@@ -84,6 +86,14 @@ public class DeveloperSettings extends ChromeBaseSettingsFragment implements Emb // handle the click so the default action isn't triggered. return true; }); @@ -618,7 +618,7 @@ diff --git a/chrome/browser/android/bottombar/overlay_panel_content.cc b/chrome/ --- a/chrome/browser/android/bottombar/overlay_panel_content.cc +++ b/chrome/browser/android/bottombar/overlay_panel_content.cc @@ -52,7 +52,7 @@ void OverlayPanelContent::OnPhysicalBackingSizeChanged( - jint height) { + int32_t height) { gfx::Size size(width, height); web_contents->GetNativeView()->OnPhysicalBackingSizeChanged(size); - web_contents->GetNativeView()->OnSizeChanged(width, height); @@ -629,7 +629,7 @@ diff --git a/chrome/browser/android/bottombar/overlay_panel_content.cc b/chrome/ diff --git a/chrome/browser/android/compositor/tab_content_manager.cc b/chrome/browser/android/compositor/tab_content_manager.cc --- a/chrome/browser/android/compositor/tab_content_manager.cc +++ b/chrome/browser/android/compositor/tab_content_manager.cc -@@ -27,6 +27,7 @@ +@@ -26,6 +26,7 @@ #include "chrome/browser/android/tab_android.h" #include "chrome/browser/thumbnail/cc/thumbnail.h" #include "components/viz/common/frame_sinks/copy_output_result.h" @@ -637,7 +637,7 @@ diff --git a/chrome/browser/android/compositor/tab_content_manager.cc b/chrome/b #include "content/public/browser/browser_thread.h" #include "content/public/browser/render_frame_host.h" #include "content/public/browser/render_view_host.h" -@@ -75,7 +76,10 @@ class TabContentManager::TabReadbackRequest { +@@ -74,7 +75,10 @@ class TabContentManager::TabReadbackRequest { std::move(result_callback).Run(viz::CopyOutputBitmapWithMetadata()); return; } @@ -783,7 +783,7 @@ diff --git a/components/input/render_widget_host_input_event_router.cc b/compone DCHECK_GT(device_scale_factor, 0.0f); gfx::PointF point_in_pixels = gfx::ConvertPointToPixels(point, device_scale_factor); -@@ -1649,7 +1652,7 @@ bool IsPinchCurrentlyAllowedInTarget(RenderWidgetHostViewInput* target) { +@@ -1573,7 +1576,7 @@ bool IsPinchCurrentlyAllowedInTarget(RenderWidgetHostViewInput* target) { } // namespace @@ -810,12 +810,12 @@ diff --git a/components/input/render_widget_host_view_input.cc b/components/inpu + if (base::FeatureList::IsEnabled(::features::kPixelPerfect)) + device_scale_factor = 1; CHECK_GT(device_scale_factor, 0.0f); - // TODO(crbug.com/41460959): Optimize so that |point_in_pixels| doesn't need - // to be in the coordinate space of the root surface in HitTestQuery. + // HitTestQuery requires |point_in_pixels| to be in the coordinate space of + // the root surface. See crbug.com/41460959 for context. diff --git a/components/input/render_widget_targeter.cc b/components/input/render_widget_targeter.cc --- a/components/input/render_widget_targeter.cc +++ b/components/input/render_widget_targeter.cc -@@ -67,7 +67,7 @@ RenderWidgetTargetResult::RenderWidgetTargetResult( +@@ -68,7 +68,7 @@ RenderWidgetTargetResult::RenderWidgetTargetResult( RenderWidgetTargetResult::~RenderWidgetTargetResult() = default; @@ -824,7 +824,7 @@ diff --git a/components/input/render_widget_targeter.cc b/components/input/rende base::WeakPtr root_view, const blink::WebInputEvent& event, const ui::LatencyInfo& latency) { -@@ -179,7 +179,7 @@ void RenderWidgetTargeter::FindTargetAndCallback( +@@ -180,7 +180,7 @@ void RenderWidgetTargeter::FindTargetAndCallback( ResolveTargetingRequest(std::move(request)); } @@ -836,7 +836,7 @@ diff --git a/components/input/render_widget_targeter.cc b/components/input/rende diff --git a/components/thin_webview/internal/thin_webview.cc b/components/thin_webview/internal/thin_webview.cc --- a/components/thin_webview/internal/thin_webview.cc +++ b/components/thin_webview/internal/thin_webview.cc -@@ -105,7 +105,7 @@ void ThinWebView::ResizeWebContents(const gfx::Size& size) { +@@ -104,7 +104,7 @@ void ThinWebView::ResizeWebContents(const gfx::Size& size) { return; web_contents_->GetNativeView()->OnPhysicalBackingSizeChanged(size); @@ -884,7 +884,7 @@ diff --git a/components/viz/service/input/render_input_router_support_child_fram diff --git a/components/viz/service/layers/layer_context_impl.cc b/components/viz/service/layers/layer_context_impl.cc --- a/components/viz/service/layers/layer_context_impl.cc +++ b/components/viz/service/layers/layer_context_impl.cc -@@ -1917,7 +1917,7 @@ base::expected LayerContextImpl::DoUpdateDisplayTree( +@@ -1955,7 +1955,7 @@ base::expected LayerContextImpl::DoUpdateDisplayTree( return base::unexpected("Invalid page scale factors"); } layers.SetPageScaleFactorAndLimitsForDisplayTree( @@ -940,7 +940,7 @@ diff --git a/content/browser/renderer_host/cross_process_frame_connector.cc b/co visual_properties.is_pinch_gesture_active, visual_properties.visible_viewport_size, visual_properties.compositor_viewport, -@@ -476,7 +480,7 @@ void CrossProcessFrameConnector::SetVisibilityForChildViews( +@@ -512,7 +516,7 @@ void CrossProcessFrameConnector::SetVisibilityForChildViews(bool visible) { current_child_frame_host()->SetVisibilityForChildViews(visible); } @@ -949,7 +949,7 @@ diff --git a/content/browser/renderer_host/cross_process_frame_connector.cc b/co const gfx::Size& local_frame_size) { has_size_ = true; const float dsf = screen_infos_.current().device_scale_factor; -@@ -485,7 +489,7 @@ void CrossProcessFrameConnector::SetLocalFrameSize( +@@ -521,7 +525,7 @@ void CrossProcessFrameConnector::SetLocalFrameSize( gfx::ScaleToRoundedSize(local_frame_size, 1.f / dsf); } @@ -985,7 +985,7 @@ diff --git a/content/browser/renderer_host/input/touch_selection_controller_clie diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc -@@ -9382,7 +9382,7 @@ void RenderFrameHostImpl::ShowPopupMenu( +@@ -9438,7 +9438,7 @@ void RenderFrameHostImpl::ShowPopupMenu( #endif } @@ -997,7 +997,7 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/b diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc --- a/content/browser/renderer_host/render_widget_host_impl.cc +++ b/content/browser/renderer_host/render_widget_host_impl.cc -@@ -1054,7 +1054,20 @@ blink::VisualProperties RenderWidgetHostImpl::GetVisualProperties() { +@@ -1055,7 +1055,20 @@ blink::VisualProperties RenderWidgetHostImpl::GetVisualProperties() { blink::VisualProperties visual_properties; visual_properties.screen_infos = GetScreenInfos(); auto& current_screen_info = visual_properties.screen_infos.mutable_current(); @@ -1019,7 +1019,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/ // For testing, override the raster color profile. // Note: this needs to be done here and not earlier in the pipeline because // Mac uses the display color space to update an NSSurface and this setting -@@ -1159,6 +1172,13 @@ blink::VisualProperties RenderWidgetHostImpl::GetVisualProperties() { +@@ -1160,6 +1173,13 @@ blink::VisualProperties RenderWidgetHostImpl::GetVisualProperties() { visual_properties.compositing_scale_factor = properties_from_parent_local_root_.compositing_scale_factor; @@ -1033,7 +1033,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/ #if BUILDFLAG(IS_MAC) // Only macOS cursor scaling affects CSS custom cursor images for now. visual_properties.cursor_accessibility_scale_factor = -@@ -1339,8 +1359,10 @@ bool RenderWidgetHostImpl::SynchronizeVisualProperties( +@@ -1340,8 +1360,10 @@ bool RenderWidgetHostImpl::SynchronizeVisualProperties( } } @@ -1046,7 +1046,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/ // If we do not have a valid viz::LocalSurfaceId then we are a child frame // waiting on the id to be propagated from our parent. We cannot create a hash -@@ -4024,7 +4046,7 @@ void RenderWidgetHostImpl::IntrinsicSizingInfoChanged( +@@ -4031,7 +4053,7 @@ void RenderWidgetHostImpl::IntrinsicSizingInfoChanged( // porting drag-and-drop calls to Mojo, so that RenderWidgetHostImpl bypasses // RenderWidget to talk the the WebFrameWidget and needs to perform the scale // operation itself. @@ -1058,7 +1058,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/ diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/content/browser/renderer_host/render_widget_host_view_android.cc --- a/content/browser/renderer_host/render_widget_host_view_android.cc +++ b/content/browser/renderer_host/render_widget_host_view_android.cc -@@ -90,6 +90,7 @@ +@@ -91,6 +91,7 @@ #include "content/public/common/content_client.h" #include "content/public/common/content_features.h" #include "content/public/common/content_switches.h" @@ -1066,7 +1066,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/ #include "third_party/blink/public/mojom/input/input_handler.mojom.h" #include "third_party/perfetto/include/perfetto/tracing/track.h" #include "third_party/skia/include/core/SkBitmap.h" -@@ -990,7 +991,7 @@ void RenderWidgetHostViewAndroid::OnRenderFrameMetadataChangedBeforeActivation( +@@ -987,7 +988,7 @@ void RenderWidgetHostViewAndroid::OnRenderFrameMetadataChangedBeforeActivation( ? SK_ColorTRANSPARENT : metadata.root_background_color.toSkColor()); @@ -1075,7 +1075,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/ overscroll_controller_->OnFrameMetadataUpdated( metadata.page_scale_factor, metadata.device_scale_factor, metadata.scrollable_viewport_size, metadata.root_layer_size, -@@ -1293,6 +1294,12 @@ gfx::Size RenderWidgetHostViewAndroid::GetRequestedRendererSizeDevicePx() { +@@ -1289,6 +1290,12 @@ gfx::Size RenderWidgetHostViewAndroid::GetRequestedRendererSizeDevicePx() { default_bounds_dip_.height() * scale_factor); } @@ -1088,7 +1088,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/ const float scale_factor = GetDeviceScaleFactor() / view_.GetDipScale(); return gfx::ScaleToCeiledSize(view_.GetSizeDevicePx(), scale_factor); } -@@ -1318,6 +1325,10 @@ void RenderWidgetHostViewAndroid::SetInsets(const gfx::Insets& insets) { +@@ -1314,6 +1321,10 @@ void RenderWidgetHostViewAndroid::SetInsets(const gfx::Insets& insets) { NOTREACHED(); } @@ -1099,7 +1099,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/ gfx::Size RenderWidgetHostViewAndroid::GetCompositorViewportPixelSize() { if (!view_.parent()) { if (default_bounds_dip_.IsEmpty()) { -@@ -1462,7 +1473,7 @@ viz::SurfaceId RenderWidgetHostViewAndroid::GetCurrentSurfaceId() const { +@@ -1458,7 +1469,7 @@ viz::SurfaceId RenderWidgetHostViewAndroid::GetCurrentSurfaceId() const { : viz::SurfaceId(); } @@ -1108,7 +1108,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/ const gfx::PointF& point, RenderWidgetHostViewInput* target_view, gfx::PointF* transformed_point) { -@@ -1879,7 +1890,7 @@ bool RenderWidgetHostViewAndroid::HasFallbackSurface() const { +@@ -1882,7 +1893,7 @@ bool RenderWidgetHostViewAndroid::HasFallbackSurface() const { return delegated_frame_host_->HasFallbackSurface(); } @@ -1191,13 +1191,13 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_child_frame.h diff --git a/content/browser/web_contents/web_contents_android.cc b/content/browser/web_contents/web_contents_android.cc --- a/content/browser/web_contents/web_contents_android.cc +++ b/content/browser/web_contents/web_contents_android.cc -@@ -831,8 +831,11 @@ WebContentsAndroid::GetFullscreenVideoSize(JNIEnv* env) { +@@ -821,8 +821,11 @@ WebContentsAndroid::GetFullscreenVideoSize(JNIEnv* env) { return Java_WebContentsImpl_createSize(env, size.width(), size.height()); } --void WebContentsAndroid::SetSize(JNIEnv* env, jint width, jint height) { +-void WebContentsAndroid::SetSize(JNIEnv* env, int32_t width, int32_t height) { - web_contents_->GetNativeView()->OnSizeChanged(width, height); -+void WebContentsAndroid::SetSize(JNIEnv* env, jint width, jint height, jint viewport_insets) { ++void WebContentsAndroid::SetSize(JNIEnv* env, int32_t width, int32_t height, jint viewport_insets) { + int fixed_width = width; + int fixed_height = height; + web_contents_->GetNativeView()->OnSizeChanged( @@ -1212,15 +1212,15 @@ diff --git a/content/browser/web_contents/web_contents_android.h b/content/brows base::android::ScopedJavaLocalRef GetFullscreenVideoSize( JNIEnv* env); -- void SetSize(JNIEnv* env, jint width, jint height); -+ void SetSize(JNIEnv* env, jint width, jint height, jint viewport_insets); +- void SetSize(JNIEnv* env, int32_t width, int32_t height); ++ void SetSize(JNIEnv* env, int32_t width, int32_t height, jint viewport_insets); int GetWidth(JNIEnv* env); int GetHeight(JNIEnv* env); diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc --- a/content/child/runtime_features.cc +++ b/content/child/runtime_features.cc -@@ -534,7 +534,11 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs( +@@ -535,7 +535,11 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs( !command_line.HasSwitch(switches::kFingerprintingCanvasImageDataNoise)); // CAUTION: Only add custom enabling logic here if it cannot // be covered by the other functions. @@ -1236,7 +1236,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. diff --git a/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java b/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java --- a/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java +++ b/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java -@@ -527,7 +527,8 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper +@@ -531,7 +531,8 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper boolean shouldSuggest, int sourceType, RenderFrameHost renderFrameHost, @@ -1246,7 +1246,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select mMenuModelBridge = menuModelBridge; RecordHistogram.recordEnumeratedHistogram( "Android.ShowSelectionMenuSourceType", sourceType, MenuSourceType.MAX_VALUE); -@@ -537,6 +538,8 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper +@@ -541,6 +542,8 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper mXDip = xDip; mYDip = yDip; mSelectionRect.set(left, top, right, offsetBottom); @@ -1258,7 +1258,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select diff --git a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java --- a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java +++ b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java -@@ -987,9 +987,9 @@ public class WebContentsImpl +@@ -988,9 +988,9 @@ public class WebContentsImpl } @Override @@ -1270,7 +1270,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/webcon } @Override -@@ -1475,7 +1475,7 @@ public class WebContentsImpl +@@ -1477,7 +1477,7 @@ public class WebContentsImpl Rect getFullscreenVideoSize(long nativeWebContentsAndroid); @@ -1470,7 +1470,7 @@ diff --git a/third_party/blink/renderer/core/css/media_values.cc b/third_party/b diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_party/blink/renderer/core/exported/web_view_impl.cc --- a/third_party/blink/renderer/core/exported/web_view_impl.cc +++ b/third_party/blink/renderer/core/exported/web_view_impl.cc -@@ -1288,8 +1288,19 @@ void WebViewImpl::UpdateICBAndResizeViewport( +@@ -1267,8 +1267,19 @@ void WebViewImpl::UpdateICBAndResizeViewport( if (GetBrowserControls().PermittedState() == cc::BrowserControlsState::kBoth && !GetBrowserControls().ShrinkViewport()) { @@ -1492,7 +1492,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p } GetPageScaleConstraintsSet().DidChangeInitialContainingBlockSize(icb_size); -@@ -1369,7 +1380,8 @@ void WebViewImpl::DidUpdateBrowserControls() { +@@ -1348,7 +1359,8 @@ void WebViewImpl::DidUpdateBrowserControls() { ResizeViewportAnchor::ResizeScope resize_scope(*resize_viewport_anchor_); visual_viewport.SetBrowserControlsAdjustment( @@ -1502,7 +1502,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p } } -@@ -1433,7 +1445,7 @@ void WebViewImpl::ResizeWithBrowserControls( +@@ -1412,7 +1424,7 @@ void WebViewImpl::ResizeWithBrowserControls( float bottom_controls_height, bool browser_controls_shrink_layout) { ResizeWithBrowserControls( @@ -1511,7 +1511,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p {top_controls_height, GetBrowserControls().TopMinHeight(), bottom_controls_height, GetBrowserControls().BottomMinHeight(), GetBrowserControls().AnimateHeightChanges(), -@@ -1443,6 +1455,8 @@ void WebViewImpl::ResizeWithBrowserControls( +@@ -1422,6 +1434,8 @@ void WebViewImpl::ResizeWithBrowserControls( void WebViewImpl::ResizeWithBrowserControls( const gfx::Size& main_frame_widget_size, const gfx::Size& visible_viewport_size, @@ -1520,7 +1520,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p cc::BrowserControlsParams browser_controls_params) { if (should_auto_resize_) { // When auto-resizing only the viewport size comes from the browser, while -@@ -1451,6 +1465,11 @@ void WebViewImpl::ResizeWithBrowserControls( +@@ -1430,6 +1444,11 @@ void WebViewImpl::ResizeWithBrowserControls( return; } @@ -1532,7 +1532,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p if (size_ == main_frame_widget_size && GetPage()->GetVisualViewport().Size() == visible_viewport_size && GetBrowserControls().Params() == browser_controls_params) -@@ -2137,7 +2156,7 @@ void WebViewImpl::DidAttachLocalMainFrame() { +@@ -2114,7 +2133,7 @@ void WebViewImpl::DidAttachLocalMainFrame() { web_preferences_.prefers_reduced_motion); MainFrameImpl()->FrameWidgetImpl()->SetPageScaleStateAndLimits( viewport.Scale(), viewport.IsPinchGestureActive(), @@ -1541,7 +1541,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p // Prevent main frame updates while the main frame is loading until enough // progress is made and BeginMainFrames are explicitly asked for. scoped_defer_main_frame_update_ = -@@ -2984,7 +3003,7 @@ void WebViewImpl::RefreshPageScaleFactor() { +@@ -2961,7 +2980,7 @@ void WebViewImpl::RefreshPageScaleFactor() { auto& viewport = GetPage()->GetVisualViewport(); MainFrameImpl()->FrameWidgetImpl()->SetPageScaleStateAndLimits( viewport.Scale(), viewport.IsPinchGestureActive(), @@ -1550,7 +1550,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p } } -@@ -3061,7 +3080,7 @@ void WebViewImpl::UpdatePageDefinedViewportConstraints( +@@ -3040,7 +3059,7 @@ void WebViewImpl::UpdatePageDefinedViewportConstraints( TextAutosizer::UpdatePageInfoInAllFrames(GetPage()->MainFrame()); } @@ -1559,7 +1559,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p if (should_auto_resize_ || !MainFrameImpl()) return; -@@ -3386,6 +3405,10 @@ float WebViewImpl::MinimumPageScaleFactor() const { +@@ -3368,6 +3387,10 @@ float WebViewImpl::MinimumPageScaleFactor() const { return GetPageScaleConstraintsSet().FinalConstraints().minimum_scale; } @@ -1570,7 +1570,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p float WebViewImpl::MaximumPageScaleFactor() const { return GetPageScaleConstraintsSet().FinalConstraints().maximum_scale; } -@@ -3436,7 +3459,7 @@ void WebViewImpl::SendResizeEventForMainFrame() { +@@ -3418,7 +3441,7 @@ void WebViewImpl::SendResizeEventForMainFrame() { auto& viewport = GetPage()->GetVisualViewport(); MainFrameImpl()->FrameWidgetImpl()->SetPageScaleStateAndLimits( viewport.Scale(), viewport.IsPinchGestureActive(), @@ -1579,7 +1579,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p } } -@@ -3981,7 +4004,7 @@ void WebViewImpl::PageScaleFactorChanged() { +@@ -3963,7 +3986,7 @@ void WebViewImpl::PageScaleFactorChanged() { DCHECK(viewport.IsActiveViewport()); MainFrameImpl()->FrameWidgetImpl()->SetPageScaleStateAndLimits( viewport.Scale(), viewport.IsPinchGestureActive(), @@ -1608,7 +1608,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.h b/third_pa cc::BrowserControlsParams); // Requests a page-scale animation based on the specified point/rect. -@@ -842,6 +845,8 @@ class CORE_EXPORT WebViewImpl final : public WebView, +@@ -841,6 +844,8 @@ class CORE_EXPORT WebViewImpl final : public WebView, // The upper bound on the size when auto-resizing. gfx::Size max_auto_size_; @@ -1620,7 +1620,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.h b/third_pa diff --git a/third_party/blink/renderer/core/frame/local_frame_view.cc b/third_party/blink/renderer/core/frame/local_frame_view.cc --- a/third_party/blink/renderer/core/frame/local_frame_view.cc +++ b/third_party/blink/renderer/core/frame/local_frame_view.cc -@@ -1789,8 +1789,11 @@ void LocalFrameView::PerformPostLayoutTasks(bool visual_viewport_size_changed) { +@@ -1805,8 +1805,11 @@ void LocalFrameView::PerformPostLayoutTasks(bool visual_viewport_size_changed) { } float LocalFrameView::InputEventsScaleFactor() const { @@ -1698,7 +1698,7 @@ diff --git a/third_party/blink/renderer/core/frame/visual_viewport.cc b/third_pa visible_size.Scale(1 / scale_); return gfx::RectF(ScrollPosition(), visible_size); -@@ -868,10 +900,13 @@ gfx::Point VisualViewport::ClampDocumentOffsetAtScale(const gfx::Point& offset, +@@ -869,10 +901,13 @@ gfx::Point VisualViewport::ClampDocumentOffsetAtScale(const gfx::Point& offset, return clamped; } @@ -1741,9 +1741,9 @@ diff --git a/third_party/blink/renderer/core/frame/visual_viewport.h b/third_par // ScrollableArea implementation + //ScrollOffset ClampScrollOffset(const ScrollOffset&) const override; ChromeClient* GetChromeClient() const override; - bool SetScrollOffset( - const ScrollOffset&, -@@ -383,12 +386,14 @@ class CORE_EXPORT VisualViewport : public GarbageCollected, + PhysicalRect ScrollIntoView( + const PhysicalRect&, +@@ -385,12 +388,14 @@ class CORE_EXPORT VisualViewport : public GarbageCollected, // the changed visible content area. The transient URL bar-caused change to // the visible content area is tracked in browser_controls_adjustment. gfx::Size size_; @@ -1761,7 +1761,7 @@ diff --git a/third_party/blink/renderer/core/frame/visual_viewport.h b/third_par diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc --- a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc +++ b/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc -@@ -1881,6 +1881,9 @@ void WebFrameWidgetImpl::UpdateVisualProperties( +@@ -1886,6 +1886,9 @@ void WebFrameWidgetImpl::UpdateVisualProperties( // All non-top-level Widgets (child local-root frames, GuestViews, // etc.) propagate and consume the page scale factor as "external", meaning // that it comes from the top level widget's page scale. @@ -1771,7 +1771,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th if (!ForTopMostMainFrame()) { // The main frame controls the page scale factor, from blink. For other // frame widgets, the page scale from pinch zoom and compositing scale is -@@ -1888,7 +1891,7 @@ void WebFrameWidgetImpl::UpdateVisualProperties( +@@ -1893,7 +1896,7 @@ void WebFrameWidgetImpl::UpdateVisualProperties( // blink doesn't need to know this page scale factor outside the main frame, // the compositor does in order to produce its output at the correct scale. float combined_scale_factor = visual_properties.page_scale_factor * @@ -1780,7 +1780,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th widget_base_->LayerTreeHost()->SetExternalPageScaleFactor( combined_scale_factor, visual_properties.is_pinch_gesture_active); -@@ -1901,7 +1904,7 @@ void WebFrameWidgetImpl::UpdateVisualProperties( +@@ -1906,7 +1909,7 @@ void WebFrameWidgetImpl::UpdateVisualProperties( // Ensure the external scale factor in top-level widgets is reset as it may // be leftover from when a widget was nested and was promoted to top level. widget_base_->LayerTreeHost()->SetExternalPageScaleFactor( @@ -1789,7 +1789,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th /*is_pinch_gesture_active=*/false); } -@@ -1945,6 +1948,18 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( +@@ -1950,6 +1953,18 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( new_compositor_viewport_pixel_rect, device_scale_factor_for_testing_ / non_testing_device_scale_factor_); } @@ -1808,7 +1808,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th if (ForMainFrame()) { if (size_ != new_size) { -@@ -1962,6 +1977,8 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( +@@ -1967,6 +1982,8 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( size_.value(), widget_base_->DIPsToCeiledBlinkSpace( widget_base_->VisibleViewportSize()), @@ -1817,7 +1817,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th visual_properties.browser_controls_params); return; } -@@ -1995,6 +2012,8 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( +@@ -2000,6 +2017,8 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( View()->ResizeWithBrowserControls( size_.value(), widget_base_->VisibleViewportSize(), @@ -1826,7 +1826,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th visual_properties.browser_controls_params); } -@@ -2379,6 +2398,8 @@ void WebFrameWidgetImpl::SetZoomInternal(double zoom_level, +@@ -2384,6 +2403,8 @@ void WebFrameWidgetImpl::SetZoomInternal(double zoom_level, View()->ZoomFactorForViewportLayout() * static_cast(View()->ZoomLevelToZoomFactor(zoom_level)) * static_cast(css_zoom_factor); @@ -1835,7 +1835,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th if (zoom_changed) { // Set the layout shift exclusion window for the zoom level change. if (LocalFrameView* view = document->View()) { -@@ -3434,6 +3455,7 @@ void WebFrameWidgetImpl::SetRootLayer(scoped_refptr layer) { +@@ -3439,6 +3460,7 @@ void WebFrameWidgetImpl::SetRootLayer(scoped_refptr layer) { // be needed in setting the raster scale. SetPageScaleStateAndLimits(1.f, false /* is_pinch_gesture_active */, View()->MinimumPageScaleFactor(), @@ -1843,7 +1843,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th View()->MaximumPageScaleFactor()); } -@@ -4819,9 +4841,10 @@ void WebFrameWidgetImpl::SetPageScaleStateAndLimits( +@@ -4824,9 +4846,10 @@ void WebFrameWidgetImpl::SetPageScaleStateAndLimits( float page_scale_factor, bool is_pinch_gesture_active, float minimum, @@ -1855,7 +1855,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th // Only propagate page scale from the main frame. if (ForMainFrame()) { -@@ -4945,7 +4968,10 @@ void WebFrameWidgetImpl::OrientationChanged() { +@@ -4950,7 +4973,10 @@ void WebFrameWidgetImpl::OrientationChanged() { void WebFrameWidgetImpl::DidUpdateSurfaceAndScreen( const display::ScreenInfos& previous_original_screen_infos) { display::ScreenInfo screen_info = widget_base_->GetScreenInfo(); @@ -1867,7 +1867,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th if (ShouldAutoDetermineCompositingToLCDTextSetting()) { // This causes compositing state to be modified which dirties the -@@ -5144,7 +5170,7 @@ void WebFrameWidgetImpl::SetDeviceScaleFactorForTesting(float factor) { +@@ -5160,7 +5186,7 @@ void WebFrameWidgetImpl::SetDeviceScaleFactorForTesting(float factor) { if (!device_scale_factor_for_testing_) { non_testing_device_scale_factor_ = @@ -1879,7 +1879,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.h b/third_party/blink/renderer/core/frame/web_frame_widget_impl.h --- a/third_party/blink/renderer/core/frame/web_frame_widget_impl.h +++ b/third_party/blink/renderer/core/frame/web_frame_widget_impl.h -@@ -659,6 +659,7 @@ class CORE_EXPORT WebFrameWidgetImpl +@@ -661,6 +661,7 @@ class CORE_EXPORT WebFrameWidgetImpl void SetPageScaleStateAndLimits(float page_scale_factor, bool is_pinch_gesture_active, float minimum, @@ -1899,7 +1899,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_local_frame_impl.cc b/thi TRACE_EVENT0("blink", "WebLocalFrameImpl::createFrameView"); DCHECK(GetFrame()); // If frame() doesn't exist, we probably didn't init -@@ -3042,7 +3042,7 @@ void WebLocalFrameImpl::ShowContextMenuFromExternal( +@@ -3046,7 +3046,7 @@ void WebLocalFrameImpl::ShowContextMenuFromExternal( std::move(context_menu_client), params); } @@ -1911,7 +1911,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_local_frame_impl.cc b/thi diff --git a/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc b/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc --- a/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc +++ b/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc -@@ -1515,6 +1515,7 @@ bool HTMLCanvasElement::PushFrame(scoped_refptr&& image, +@@ -1523,6 +1523,7 @@ bool HTMLCanvasElement::PushFrame(scoped_refptr&& image, } bool HTMLCanvasElement::ShouldAccelerate() const { @@ -1922,7 +1922,7 @@ diff --git a/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc diff --git a/third_party/blink/renderer/core/input/event_handler.cc b/third_party/blink/renderer/core/input/event_handler.cc --- a/third_party/blink/renderer/core/input/event_handler.cc +++ b/third_party/blink/renderer/core/input/event_handler.cc -@@ -2139,7 +2139,7 @@ GestureEventWithHitTestResults EventHandler::HitTestResultForGestureEvent( +@@ -2138,7 +2138,7 @@ GestureEventWithHitTestResults EventHandler::HitTestResultForGestureEvent( hit_test_result); } @@ -1973,7 +1973,7 @@ diff --git a/third_party/blink/renderer/core/page/viewport_description.cc b/thir diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc --- a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc +++ b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc -@@ -463,16 +463,17 @@ ImageData* BaseRenderingContext2D::getImageDataInternal( +@@ -462,16 +462,17 @@ ImageData* BaseRenderingContext2D::getImageDataInternal( } } @@ -1996,12 +1996,10 @@ diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_c diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -6308,6 +6308,10 @@ - // If enabled, the `getDisplayMedia()` family of APIs will ask for NV12 - // frames, which should trigger a zero-copy path in the tab capture code. - name: "ZeroCopyTabCapture", -- } -+ }, +@@ -6439,5 +6439,9 @@ + // crbug.com/435623334. + name: "XSLTSpecialTrial", + }, + { + name: "PixelPerfect", + public: true, @@ -2128,7 +2126,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox const cc::ElementId targeted_element = input_handler_->FindFrameElementIdAtPoint(point); -@@ -1119,7 +1137,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleMouseWheel( +@@ -1121,7 +1139,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleMouseWheel( } } @@ -2137,7 +2135,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox if (input_handler_->HasBlockingWheelEventHandlerAt( gfx::Point(position_in_widget.x(), position_in_widget.y()))) { result = DID_NOT_HANDLE; -@@ -1303,7 +1321,7 @@ InputHandlerProxy::HandleGestureScrollUpdate( +@@ -1318,7 +1336,7 @@ InputHandlerProxy::HandleGestureScrollUpdate( scroll_data->set_unused_delta_y(scroll_result.unused_scroll_delta.y()); }); @@ -2146,7 +2144,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox gesture_event.SourceDevice()); if (elastic_overscroll_controller_) { -@@ -1396,8 +1414,8 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HitTestTouchEvent( +@@ -1411,8 +1429,8 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HitTestTouchEvent( } cc::TouchAction touch_action = cc::TouchAction::kAuto; @@ -2157,7 +2155,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox // TODO(crbug.com/355578906): This is just some rough math for now. The main // thread counterpart is AdjustPointerEvent. The buffer math on the main and // cc thread(s) need to match. -@@ -1512,7 +1530,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleTouchStart( +@@ -1527,7 +1545,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleTouchStart( touch_event.touches_length == 1) { DCHECK(touch_event.touches[0].state == WebTouchPoint::State::kStatePressed); cc::InputHandlerPointerResult pointer_result = HandlePointerDown( @@ -2166,7 +2164,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox if (pointer_result.type == cc::PointerResultType::kScrollbarScroll) { client_->SetAllowedTouchAction(allowed_touch_action); return DID_HANDLE; -@@ -1575,7 +1593,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleTouchMove( +@@ -1590,7 +1608,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleTouchMove( touch_event.touch_start_or_first_touch_move); if (touch_event.touches_length == 1) { cc::InputHandlerPointerResult pointer_result = HandlePointerMove( @@ -2175,7 +2173,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox false /* should_cancel_scrollbar_drag */); if (pointer_result.type == cc::PointerResultType::kScrollbarScroll) { return DID_HANDLE; -@@ -1618,7 +1636,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleTouchEnd( +@@ -1633,7 +1651,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleTouchEnd( touch_event.touches_length); if (touch_event.touches_length == 1) { cc::InputHandlerPointerResult pointer_result = HandlePointerUp( @@ -2187,7 +2185,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox diff --git a/third_party/blink/renderer/platform/widget/widget_base.cc b/third_party/blink/renderer/platform/widget/widget_base.cc --- a/third_party/blink/renderer/platform/widget/widget_base.cc +++ b/third_party/blink/renderer/platform/widget/widget_base.cc -@@ -1682,7 +1682,9 @@ void WidgetBase::RequestAnimationAfterDelayTimerFired(TimerBase*) { +@@ -1683,7 +1683,9 @@ void WidgetBase::RequestAnimationAfterDelayTimerFired(TimerBase*) { client_->ScheduleAnimation(/*urgent=*/urgent_for_input); } @@ -2198,7 +2196,7 @@ diff --git a/third_party/blink/renderer/platform/widget/widget_base.cc b/third_p return client_->GetOriginalScreenInfos().current().device_scale_factor; } -@@ -1716,7 +1718,7 @@ void WidgetBase::UpdateSurfaceAndScreenInfo( +@@ -1717,7 +1719,7 @@ void WidgetBase::UpdateSurfaceAndScreenInfo( // Note carefully that the DSF specified in |new_screen_info| is not the // DSF used by the compositor during device emulation! LayerTreeHost()->SetViewportRectAndScale(compositor_viewport_pixel_rect, @@ -2207,7 +2205,7 @@ diff --git a/third_party/blink/renderer/platform/widget/widget_base.cc b/third_p local_surface_id_from_parent_); // The VisualDeviceViewportIntersectionRect derives from the LayerTreeView's // viewport size, which is set above. -@@ -1846,56 +1848,56 @@ void WidgetBase::CountDroppedPointerDownForEventTiming(unsigned count) { +@@ -1847,56 +1849,56 @@ void WidgetBase::CountDroppedPointerDownForEventTiming(unsigned count) { gfx::PointF WidgetBase::DIPsToBlinkSpace(const gfx::PointF& point) { // TODO(danakj): Should this use non-original scale factor so it changes under // emulation? @@ -2284,8 +2282,8 @@ diff --git a/third_party/blink/renderer/platform/widget/widget_base.h b/third_pa - float GetOriginalDeviceScaleFactor() const; + float GetOriginalDeviceScaleFactor(bool real) const; - private: - static void AssertAreCompatible(const WidgetBase& a, const WidgetBase& b); + // Indicates a change in scheduling needs that should be forwarded to viz. + void RequestEfficientScheduling( diff --git a/ui/android/delegated_frame_host_android.cc b/ui/android/delegated_frame_host_android.cc --- a/ui/android/delegated_frame_host_android.cc +++ b/ui/android/delegated_frame_host_android.cc @@ -2329,9 +2327,9 @@ diff --git a/ui/android/event_forwarder.cc b/ui/android/event_forwarder.cc gfx::PointF root_location(screen_x / dip_scale, screen_y / dip_scale); std::vector mime_types; @@ -240,7 +240,7 @@ bool EventForwarder::OnGestureEvent(JNIEnv* env, - jint type, - jlong time_ms, - jfloat scale) { + int32_t type, + int64_t time_ms, + float scale) { - float dip_scale = view_->GetDipScale(); + float dip_scale = view_->GetDipScaleFactor(); auto size = view_->GetSizeDIPs(); @@ -2346,16 +2344,16 @@ diff --git a/ui/android/event_forwarder.cc b/ui/android/event_forwarder.cc /*ticks_x=*/0.f, /*ticks_y=*/0.f, /*tick_multiplier=*/0.f, -@@ -357,7 +357,7 @@ void EventForwarder::DoubleTap(JNIEnv* env, - jlong time_ms, - jint x, - jint y) { +@@ -353,7 +353,7 @@ void EventForwarder::DoubleTap(JNIEnv* env, + int64_t time_ms, + int32_t x, + int32_t y) { - float dip_scale = view_->GetDipScale(); + float dip_scale = view_->GetDipScaleFactor(); view_->OnGestureEvent(GestureEventAndroid( GESTURE_EVENT_TYPE_DOUBLE_TAP, gfx::PointF(x / dip_scale, y / dip_scale), gfx::PointF(), time_ms, ui::GestureDeviceType::DEVICE_TOUCHSCREEN, 0, 0, -@@ -376,7 +376,7 @@ void EventForwarder::StartFling(JNIEnv* env, +@@ -372,7 +372,7 @@ void EventForwarder::StartFling(JNIEnv* env, if (velocity_x == 0 && velocity_y == 0) return; @@ -2367,9 +2365,9 @@ diff --git a/ui/android/event_forwarder.cc b/ui/android/event_forwarder.cc diff --git a/ui/android/java/src/org/chromium/ui/base/UiAndroidFeatureList.java b/ui/android/java/src/org/chromium/ui/base/UiAndroidFeatureList.java --- a/ui/android/java/src/org/chromium/ui/base/UiAndroidFeatureList.java +++ b/ui/android/java/src/org/chromium/ui/base/UiAndroidFeatureList.java -@@ -64,6 +64,12 @@ public class UiAndroidFeatureList { - newMutableFlagWithSafeDefault( - UiAndroidFeatures.ANDROID_HISTORY_PANE_FAVICONS, /* defaultValue= */ false); +@@ -60,6 +60,12 @@ public class UiAndroidFeatureList { + UiAndroidFeatures.ANDROID_TOUCHPAD_OVERSCROLL_HISTORY_NAVIGATION, + /* defaultValue= */ true); + public static final CachedFlag sPixelPerfect = + newCachedFlag( @@ -2383,7 +2381,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/UiAndroidFeatureList.java diff --git a/ui/android/java/src/org/chromium/ui/display/PhysicalDisplayAndroid.java b/ui/android/java/src/org/chromium/ui/display/PhysicalDisplayAndroid.java --- a/ui/android/java/src/org/chromium/ui/display/PhysicalDisplayAndroid.java +++ b/ui/android/java/src/org/chromium/ui/display/PhysicalDisplayAndroid.java -@@ -35,6 +35,7 @@ import org.chromium.base.StrictModeContext; +@@ -36,6 +36,7 @@ import org.chromium.base.StrictModeContext; import org.chromium.base.ThreadUtils; import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; @@ -2391,7 +2389,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/display/PhysicalDisplayAndroid. import java.util.Arrays; import java.util.List; -@@ -401,6 +402,15 @@ import java.util.function.Consumer; +@@ -402,6 +403,15 @@ import java.util.function.Consumer; float xdpi, float ydpi, Display display) { @@ -2410,7 +2408,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/display/PhysicalDisplayAndroid. diff --git a/ui/android/view_android.cc b/ui/android/view_android.cc --- a/ui/android/view_android.cc +++ b/ui/android/view_android.cc -@@ -118,6 +118,10 @@ float ViewAndroid::GetDipScale() { +@@ -117,6 +117,10 @@ float ViewAndroid::GetDipScale() { return ui::GetScaleFactorForNativeView(this); } @@ -2421,7 +2419,7 @@ diff --git a/ui/android/view_android.cc b/ui/android/view_android.cc ScopedJavaLocalRef ViewAndroid::GetEventForwarder() { if (!event_forwarder_) { DCHECK(!RootPathHasEventForwarder(parent_)) -@@ -153,7 +157,7 @@ void ViewAndroid::AddChild(ViewAndroid* child) { +@@ -152,7 +156,7 @@ void ViewAndroid::AddChild(ViewAndroid* child) { // spurious events with empty size from being sent down. if (child->match_parent() && !bounds_device_px_.IsEmpty() && child->GetSizeDevicePx() != bounds_device_px_.size()) { @@ -2430,7 +2428,7 @@ diff --git a/ui/android/view_android.cc b/ui/android/view_android.cc child->DispatchOnSizeChanged(); } -@@ -502,7 +506,7 @@ void ViewAndroid::OnVerticalScrollDirectionChanged(bool direction_up, +@@ -501,7 +505,7 @@ void ViewAndroid::OnVerticalScrollDirectionChanged(bool direction_up, env, delegate, direction_up, current_scroll_ratio); } @@ -2439,7 +2437,7 @@ diff --git a/ui/android/view_android.cc b/ui/android/view_android.cc // Match-parent view must not receive size events. DCHECK(!match_parent()); -@@ -512,13 +516,15 @@ void ViewAndroid::OnSizeChanged(int width, int height) { +@@ -511,13 +515,15 @@ void ViewAndroid::OnSizeChanged(int width, int height) { return; } @@ -2457,7 +2455,7 @@ diff --git a/ui/android/view_android.cc b/ui/android/view_android.cc if (bounds_device_px_.size() == size_device_px) { return; } -@@ -526,12 +532,15 @@ void ViewAndroid::OnSizeChangedInternal(const gfx::Size& size_device_px) { +@@ -525,12 +531,15 @@ void ViewAndroid::OnSizeChangedInternal(const gfx::Size& size_device_px) { bounds_device_px_.set_size(size_device_px); float scale = GetDipScale(); @@ -2476,7 +2474,7 @@ diff --git a/ui/android/view_android.cc b/ui/android/view_android.cc } } -@@ -592,6 +601,10 @@ gfx::Size ViewAndroid::GetSizeDevicePx() const { +@@ -591,6 +600,10 @@ gfx::Size ViewAndroid::GetSizeDevicePx() const { return bounds_device_px_.size(); } diff --git a/build/patches/Android-Toolbar-Scroll-Ablation-setting.patch b/build/patches/Android-Toolbar-Scroll-Ablation-setting.patch index 24ef4383..9622323c 100644 --- a/build/patches/Android-Toolbar-Scroll-Ablation-setting.patch +++ b/build/patches/Android-Toolbar-Scroll-Ablation-setting.patch @@ -26,7 +26,7 @@ diff --git a/chrome/browser/browser_controls/android/java/src/org/chromium/chrom /** * Constructs a BrowserControlsVisibilityDelegate designed to deal with overrides driven by the -@@ -64,7 +65,8 @@ public class BrowserStateBrowserControlsVisibilityDelegate extends BrowserContro +@@ -65,7 +66,8 @@ public class BrowserStateBrowserControlsVisibilityDelegate extends BrowserContro long currentShowingTime = SystemClock.uptimeMillis() - mCurrentShowingStartTime; if (currentShowingTime >= MINIMUM_SHOW_DURATION_MS) return; @@ -53,7 +53,7 @@ new file mode 100644 diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml --- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml +++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml -@@ -84,6 +84,12 @@ found in the LICENSE file. +@@ -89,6 +89,12 @@ found in the LICENSE file. android:key="disable_toolbar_swipeup" android:title="@string/disable_toolbar_swipe_up" /> diff --git a/build/patches/Android-fonts-fingerprinting-mitigation.patch b/build/patches/Android-fonts-fingerprinting-mitigation.patch index 16583851..bbc4660a 100644 --- a/build/patches/Android-fonts-fingerprinting-mitigation.patch +++ b/build/patches/Android-fonts-fingerprinting-mitigation.patch @@ -31,7 +31,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html content/child/BUILD.gn | 7 + content/renderer/BUILD.gn | 4 + .../renderer/renderer_blink_platform_impl.cc | 55 +- - ...renderer_main_platform_delegate_android.cc | 2 +- + content/renderer/renderer_main.cc | 2 - ...ndroid-fonts-fingerprinting-mitigation.inc | 12 + ...ndroid-fonts-fingerprinting-mitigation.inc | 7 + ...ndroid-fonts-fingerprinting-mitigation.inc | 5 + @@ -48,7 +48,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../skia/src/ports/SkFontMgr_android_ndk.cpp | 2 +- .../src/ports/SkFontMgr_android_parser.cpp | 66 +- .../skia/src/ports/SkFontMgr_android_parser.h | 5 +- - 42 files changed, 2448 insertions(+), 85 deletions(-) + 42 files changed, 2447 insertions(+), 86 deletions(-) create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Android-fonts-fingerprinting-mitigation.grdp create mode 100644 components/component_updater/installer_policies/fonts_pack_component_installer.cc create mode 100644 components/component_updater/installer_policies/fonts_pack_component_installer.h @@ -60,7 +60,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java b/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java --- a/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java +++ b/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java -@@ -929,6 +929,9 @@ public final class ProductionSupportedFlagList { +@@ -970,6 +970,9 @@ public final class ProductionSupportedFlagList { "Hides user preference on the system keyboard by setting the standard " + "eng layout and removing the layout information from the " + "javascript keyboard events."), @@ -122,7 +122,7 @@ diff --git a/chrome/android/java/res/xml/developer_preferences.xml b/chrome/andr diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -7999,6 +7999,13 @@ static_library("browser") { +@@ -8000,6 +8000,13 @@ static_library("browser") { ] } @@ -139,7 +139,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/component_updater/registration.cc b/chrome/browser/component_updater/registration.cc --- a/chrome/browser/component_updater/registration.cc +++ b/chrome/browser/component_updater/registration.cc -@@ -111,10 +111,20 @@ +@@ -101,6 +101,11 @@ #include "chrome/browser/component_updater/file_type_policies_component_installer.h" #endif @@ -150,6 +150,9 @@ diff --git a/chrome/browser/component_updater/registration.cc b/chrome/browser/c + namespace component_updater { + namespace { +@@ -134,6 +139,11 @@ void DeleteOldComponents(const base::FilePath& user_data_dir) { + void RegisterComponentsForUpdate() { auto* const cus = g_browser_process->component_updater(); +#if BUILDFLAG(IS_ANDROID) @@ -203,7 +206,7 @@ diff --git a/chrome/browser/ui/prefs/prefs_tab_helper.cc b/chrome/browser/ui/pre diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn --- a/chrome/renderer/BUILD.gn +++ b/chrome/renderer/BUILD.gn -@@ -267,6 +267,10 @@ static_library("renderer") { +@@ -270,6 +270,10 @@ static_library("renderer") { deps += [ "//components/strings" ] } @@ -217,7 +220,7 @@ diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn diff --git a/components/component_updater/installer_policies/BUILD.gn b/components/component_updater/installer_policies/BUILD.gn --- a/components/component_updater/installer_policies/BUILD.gn +++ b/components/component_updater/installer_policies/BUILD.gn -@@ -32,6 +32,13 @@ static_library("installer_policies_no_content_deps") { +@@ -28,6 +28,13 @@ static_library("installer_policies_no_content_deps") { "trust_token_key_commitments_component_installer_policy.h", ] @@ -667,7 +670,7 @@ diff --git a/components/services/font/public/mojom/font_service.mojom b/componen diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn --- a/content/browser/BUILD.gn +++ b/content/browser/BUILD.gn -@@ -2602,6 +2602,17 @@ source_set("browser") { +@@ -2611,6 +2611,17 @@ source_set("browser") { ] } @@ -685,7 +688,7 @@ diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn if (is_linux || is_chromeos) { sources -= [ "file_system_access/file_path_watcher/file_path_watcher_stub.cc" ] -@@ -2648,6 +2659,13 @@ source_set("browser") { +@@ -2657,6 +2668,13 @@ source_set("browser") { deps += [ "//components/services/font_data:lib" ] } @@ -714,7 +717,7 @@ diff --git a/content/browser/renderer_host/render_process_host_impl_receiver_bin #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) #include "components/services/font/public/mojom/font_service.mojom.h" // nogncheck #include "content/browser/font_service.h" // nogncheck -@@ -351,6 +356,13 @@ void RenderProcessHostImpl::IOThreadHostImpl::BindHostReceiver( +@@ -352,6 +357,13 @@ void RenderProcessHostImpl::IOThreadHostImpl::BindHostReceiver( } #endif @@ -731,7 +734,7 @@ diff --git a/content/browser/renderer_host/render_process_host_impl_receiver_bin diff --git a/content/child/BUILD.gn b/content/child/BUILD.gn --- a/content/child/BUILD.gn +++ b/content/child/BUILD.gn -@@ -135,6 +135,13 @@ target(link_target_type, "child") { +@@ -139,6 +139,13 @@ target(link_target_type, "child") { ] } @@ -748,7 +751,7 @@ diff --git a/content/child/BUILD.gn b/content/child/BUILD.gn diff --git a/content/renderer/BUILD.gn b/content/renderer/BUILD.gn --- a/content/renderer/BUILD.gn +++ b/content/renderer/BUILD.gn -@@ -350,6 +350,10 @@ target(link_target_type, "renderer") { +@@ -351,6 +351,10 @@ target(link_target_type, "renderer") { deps += [ "//services/screen_ai/public/mojom" ] } @@ -848,18 +851,18 @@ diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer #endif #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) -diff --git a/content/renderer/renderer_main_platform_delegate_android.cc b/content/renderer/renderer_main_platform_delegate_android.cc ---- a/content/renderer/renderer_main_platform_delegate_android.cc -+++ b/content/renderer/renderer_main_platform_delegate_android.cc -@@ -35,7 +35,7 @@ void RendererMainPlatformDelegate::PlatformInitialize() { - // Android 14+ user devices with updated system fonts will call statx and - // possibly other system calls that are not allowed in the sandbox. - // See https://crbug.com/40618213 for details. -- [[maybe_unused]] auto mgr = skia::DefaultFontMgr(); -+ // [[maybe_unused]] auto mgr = skia::DefaultFontMgr(); - } +diff --git a/content/renderer/renderer_main.cc b/content/renderer/renderer_main.cc +--- a/content/renderer/renderer_main.cc ++++ b/content/renderer/renderer_main.cc +@@ -200,8 +200,6 @@ int RendererMain(MainFunctionParams parameters) { + // On Linux, Windows, and ChromeOS, the font manager is overridden or + // specially handled in RendererBlinkPlatformImpl(). On other platforms, + // initialise the default one on a thread pool, to avoid blocking on it later. +- base::ThreadPool::PostTask(FROM_HERE, +- base::BindOnce([] { skia::DefaultFontMgr(); })); + #endif - void RendererMainPlatformDelegate::PlatformUninitialize() { + // This function allows pausing execution using the --renderer-startup-dialog diff --git a/cromite_flags/chrome/browser/about_flags_cc/Android-fonts-fingerprinting-mitigation.inc b/cromite_flags/chrome/browser/about_flags_cc/Android-fonts-fingerprinting-mitigation.inc new file mode 100644 --- /dev/null @@ -902,7 +905,7 @@ new file mode 100644 diff --git a/skia/BUILD.gn b/skia/BUILD.gn --- a/skia/BUILD.gn +++ b/skia/BUILD.gn -@@ -443,6 +443,18 @@ component("skia") { +@@ -446,6 +446,18 @@ component("skia") { sources += skia_ports_fci_sources } @@ -3149,7 +3152,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android_ndk.cpp b/third_party/ diff --git a/third_party/skia/src/ports/SkFontMgr_android_parser.cpp b/third_party/skia/src/ports/SkFontMgr_android_parser.cpp --- a/third_party/skia/src/ports/SkFontMgr_android_parser.cpp +++ b/third_party/skia/src/ports/SkFontMgr_android_parser.cpp -@@ -654,14 +654,27 @@ static const XML_Memory_Handling_Suite sk_XML_alloc = { +@@ -650,14 +650,27 @@ static const XML_Memory_Handling_Suite sk_XML_alloc = { */ static int parse_config_file(const char* filename, std::vector>& families, @@ -3183,7 +3186,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android_parser.cpp b/third_par return -1; } -@@ -693,8 +706,8 @@ static int parse_config_file(const char* filename, +@@ -689,8 +702,8 @@ static int parse_config_file(const char* filename, SkDebugf(SK_FONTMGR_ANDROID_PARSER_PREFIX "could not buffer enough to continue\n"); return -1; } @@ -3194,7 +3197,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android_parser.cpp b/third_par XML_Status status = XML_ParseBuffer(parser, len, done); if (XML_STATUS_ERROR == status) { XML_Error error = XML_GetErrorCode(parser); -@@ -706,6 +719,23 @@ static int parse_config_file(const char* filename, +@@ -702,6 +715,23 @@ static int parse_config_file(const char* filename, return -1; } } @@ -3218,7 +3221,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android_parser.cpp b/third_par return self.fVersion; } -@@ -768,8 +798,10 @@ static void append_fallback_font_families_for_locale( +@@ -764,8 +794,10 @@ static void append_fallback_font_families_for_locale( static void append_system_fallback_font_families( std::vector>& fallbackFonts, @@ -3230,7 +3233,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android_parser.cpp b/third_par parse_config_file(FALLBACK_FONTS_FILE, fallbackFonts, basePath, true); append_fallback_font_families_for_locale(fallbackFonts, LOCALE_FALLBACK_FONTS_SYSTEM_DIR, -@@ -778,8 +810,10 @@ static void append_system_fallback_font_families( +@@ -774,8 +806,10 @@ static void append_system_fallback_font_families( static void mixin_vendor_fallback_font_families( std::vector>& fallbackFonts, @@ -3242,17 +3245,17 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android_parser.cpp b/third_par std::vector> vendorFonts; parse_config_file(VENDOR_FONTS_FILE, vendorFonts, basePath, true); append_fallback_font_families_for_locale(vendorFonts, -@@ -811,7 +845,8 @@ static void mixin_vendor_fallback_font_families( +@@ -807,7 +841,8 @@ static void mixin_vendor_fallback_font_families( } void SkFontMgr_Android_Parser::GetSystemFontFamilies( -- std::vector>& fontFamilies) +- std::vector>& fontFamilies) { + std::vector>& fontFamilies, -+ const SkFontMgr_Android_CustomFonts* custom) - { ++ const SkFontMgr_Android_CustomFonts* custom) { + static constexpr char kFontFilePrefix[] = "/fonts/"; + // Version 21 of the system font configuration does not need any fallback configuration files. - SkString basePath(getenv("ANDROID_ROOT")); -@@ -823,8 +858,8 @@ void SkFontMgr_Android_Parser::GetSystemFontFamilies( +@@ -820,8 +855,8 @@ void SkFontMgr_Android_Parser::GetSystemFontFamilies( // Append all the fallback fonts to system fonts std::vector> fallbackFonts; @@ -3263,7 +3266,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android_parser.cpp b/third_par fontFamilies.insert(fontFamilies.end(), std::make_move_iterator(fallbackFonts.begin()), std::make_move_iterator(fallbackFonts.end())); -@@ -833,15 +868,16 @@ void SkFontMgr_Android_Parser::GetSystemFontFamilies( +@@ -830,15 +865,16 @@ void SkFontMgr_Android_Parser::GetSystemFontFamilies( void SkFontMgr_Android_Parser::GetCustomFontFamilies( std::vector>& fontFamilies, const SkString& basePath, diff --git a/build/patches/Ask-for-restart-on-connection-change.patch b/build/patches/Ask-for-restart-on-connection-change.patch index 661223f0..d86378f1 100644 --- a/build/patches/Ask-for-restart-on-connection-change.patch +++ b/build/patches/Ask-for-restart-on-connection-change.patch @@ -244,7 +244,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerV2.java b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerV2.java --- a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerV2.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerV2.java -@@ -31,6 +31,11 @@ import java.lang.annotation.Retention; +@@ -32,6 +32,11 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.function.Supplier; @@ -256,10 +256,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in /** * Class that controls visibility and content of {@link StatusIndicatorCoordinator} to relay * connectivity information. -@@ -104,7 +109,10 @@ public class OfflineIndicatorControllerV2 { +@@ -105,7 +110,10 @@ public class OfflineIndicatorControllerV2 { Context context, StatusIndicatorCoordinator statusIndicator, - ObservableSupplier isUrlBarFocusedSupplier, + NonNullObservableSupplier isUrlBarFocusedSupplier, - Supplier canAnimateNativeBrowserControls) { + Supplier canAnimateNativeBrowserControls, + ObservableSupplier tabModelSelectorSupplier, @@ -268,7 +268,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in // If "force online connection state" switch is set, the offline indicator should never // show. assert !CommandLine.getInstance() -@@ -130,7 +138,10 @@ public class OfflineIndicatorControllerV2 { +@@ -131,7 +139,10 @@ public class OfflineIndicatorControllerV2 { new OfflineDetector( (Boolean offline) -> onConnectionStateChanged(offline), (Boolean isForeground) -> onApplicationStateChanged(isForeground), @@ -283,7 +283,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java -@@ -1534,7 +1534,10 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1618,7 +1618,10 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { mActivity, mStatusIndicatorCoordinator, isUrlBarFocusedSupplier, @@ -406,7 +406,7 @@ diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browse diff --git a/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java b/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java --- a/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java +++ b/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java -@@ -138,6 +138,8 @@ public interface TabWindowManager { +@@ -144,6 +144,8 @@ public interface TabWindowManager { /** Returns the total number of incognito tabs across all tab model selectors. */ int getIncognitoTabCount(); @@ -418,7 +418,7 @@ diff --git a/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/brows diff --git a/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManagerImpl.java b/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManagerImpl.java --- a/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManagerImpl.java +++ b/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManagerImpl.java -@@ -567,6 +567,16 @@ public class TabWindowManagerImpl implements TabWindowManager { +@@ -556,6 +556,16 @@ public class TabWindowManagerImpl implements TabWindowManager { return tabGroupModelFilter.getTabsInGroup(tabGroupId); } @@ -434,7 +434,7 @@ diff --git a/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chr + @Override public @Nullable TabModelSelector getTabModelSelectorById(@WindowId int windowId) { - return mWindowIdToSelectors.get(windowId); + WindowDeps windowDeps = mWindowIdToDeps.get(windowId); diff --git a/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Ask-for-restart-on-connection-change.grdp b/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Ask-for-restart-on-connection-change.grdp new file mode 100644 --- /dev/null @@ -477,7 +477,7 @@ diff --git a/chrome/browser/ui/messages/android/java/res/layout/floating_snackba diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/Snackbar.java b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/Snackbar.java --- a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/Snackbar.java +++ b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/Snackbar.java -@@ -141,6 +141,8 @@ public class Snackbar { +@@ -145,6 +145,8 @@ public class Snackbar { private @Nullable String mTemplateText; private @Nullable String mActionText; private @Nullable Object mActionData; @@ -486,7 +486,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro private int mBackgroundColor; private int mTextApperanceResId; private boolean mDefaultLines = true; -@@ -247,6 +249,20 @@ public class Snackbar { +@@ -251,6 +253,20 @@ public class Snackbar { return this; } @@ -510,7 +510,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager.java b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager.java --- a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager.java +++ b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager.java -@@ -341,6 +341,12 @@ public class SnackbarManager +@@ -403,6 +403,12 @@ public class SnackbarManager new SnackbarView( mActivity, this, @@ -526,7 +526,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarView.java b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarView.java --- a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarView.java +++ b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarView.java -@@ -51,6 +51,7 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { +@@ -56,6 +56,7 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { protected final ViewGroup mSnackbarView; protected final TemplatePreservingTextView mMessageView; private final TextView mActionButtonView; @@ -534,7 +534,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro private final ImageView mProfileImageView; private final int mAnimationDuration; private final ViewGroup mOriginalParent; -@@ -97,6 +98,7 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { +@@ -106,6 +107,7 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { public SnackbarView( Activity activity, SnackbarManager manager, @@ -542,7 +542,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro Snackbar snackbar, ViewGroup parentView, @Nullable WindowAndroid windowAndroid, -@@ -128,6 +130,8 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { +@@ -165,6 +167,8 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { (TemplatePreservingTextView) mContainerView.findViewById(R.id.snackbar_message); mActionButtonView = (TextView) mContainerView.findViewById(R.id.snackbar_button); mActionButtonView.setOnClickListener(manager); @@ -551,7 +551,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro mProfileImageView = (ImageView) mContainerView.findViewById(R.id.snackbar_profile_image); // Add bottom margin to extend the snackbar view into the bottom window inset. This // margin has to be applied to the snackbar view itself to avoid weird visual clipping -@@ -343,6 +347,12 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { +@@ -415,6 +419,12 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { mActionButtonView.setVisibility(View.VISIBLE); mActionButtonView.setContentDescription(snackbar.getActionText()); setViewText(mActionButtonView, snackbar.getActionText(), animate); @@ -567,7 +567,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro diff --git a/content/browser/web_contents/web_contents_android.cc b/content/browser/web_contents/web_contents_android.cc --- a/content/browser/web_contents/web_contents_android.cc +++ b/content/browser/web_contents/web_contents_android.cc -@@ -908,6 +908,22 @@ void WebContentsAndroid::SetFocus(JNIEnv* env, bool focused) { +@@ -898,6 +898,22 @@ void WebContentsAndroid::SetFocus(JNIEnv* env, bool focused) { view->SetFocus(focused); } @@ -604,7 +604,7 @@ diff --git a/content/browser/web_contents/web_contents_android.h b/content/brows diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -4108,8 +4108,10 @@ void WebContentsImpl::Stop() { +@@ -4092,8 +4092,10 @@ void WebContentsImpl::Stop() { void WebContentsImpl::SetPageFrozen(bool frozen) { TRACE_EVENT1("content", "WebContentsImpl::SetPageFrozen", "frozen", frozen); @@ -618,7 +618,7 @@ diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser diff --git a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java --- a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java +++ b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java -@@ -1143,6 +1143,12 @@ public class WebContentsImpl +@@ -1144,6 +1144,12 @@ public class WebContentsImpl WebContentsImplJni.get().setFocus(mNativeWebContentsAndroid, hasFocus); } @@ -631,7 +631,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/webcon @Override public void setDisplayCutoutSafeArea(Rect insets) { if (mNativeWebContentsAndroid == 0) return; -@@ -1486,6 +1492,8 @@ public class WebContentsImpl +@@ -1488,6 +1494,8 @@ public class WebContentsImpl void setFocus(long nativeWebContentsAndroid, boolean focused); @@ -700,7 +700,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc --- a/third_party/blink/renderer/core/dom/document.cc +++ b/third_party/blink/renderer/core/dom/document.cc -@@ -4659,6 +4659,7 @@ void Document::DispatchUnloadEvents(UnloadEventTimingInfo* unload_timing_info) { +@@ -4628,6 +4628,7 @@ void Document::DispatchUnloadEvents(UnloadEventTimingInfo* unload_timing_info) { } void Document::DispatchFreezeEvent() { @@ -711,7 +711,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc -@@ -3311,6 +3311,7 @@ void LocalFrame::DidFreeze() { +@@ -3339,6 +3339,7 @@ void LocalFrame::DidFreeze() { LoaderFreezeMode freeze_mode = GetLoaderFreezeMode(); GetDocument()->Fetcher()->SetDefersLoading(freeze_mode); Loader().SetDefersLoading(freeze_mode); @@ -719,7 +719,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ } void LocalFrame::DidResume() { -@@ -3325,6 +3326,7 @@ void LocalFrame::DidResume() { +@@ -3353,6 +3354,7 @@ void LocalFrame::DidResume() { GetDocument()->Fetcher()->SetDefersLoading(LoaderFreezeMode::kNone); Loader().SetDefersLoading(LoaderFreezeMode::kNone); @@ -730,7 +730,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc b/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc --- a/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc +++ b/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc -@@ -1025,7 +1025,9 @@ SchedulingLifecycleState FrameSchedulerImpl::CalculateLifecycleState( +@@ -1029,7 +1029,9 @@ SchedulingLifecycleState FrameSchedulerImpl::CalculateLifecycleState( if (!parent_page_scheduler_) return SchedulingLifecycleState::kNotThrottled; if (parent_page_scheduler_->IsFrozen()) { @@ -743,7 +743,7 @@ diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/frame_sch diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.cc b/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.cc --- a/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.cc +++ b/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.cc -@@ -236,10 +236,12 @@ void PageSchedulerImpl::SetPageFrozen(bool frozen) { +@@ -235,10 +235,12 @@ void PageSchedulerImpl::SetPageFrozen(bool frozen) { // it is desirable to reject the page freeze to prevent the scheduler from // being put in a bad state. See https://crbug.com/873214 for context of how // this can happen on the browser side. @@ -756,7 +756,7 @@ diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/page_sche PolicyUpdater policy_updater; SetPageFrozenImpl(frozen, policy_updater); } -@@ -804,7 +806,12 @@ bool PageSchedulerImpl::IsBackgrounded() const { +@@ -803,7 +805,12 @@ bool PageSchedulerImpl::IsBackgrounded() const { // expire immediately when a page is backgrounded, which is undesirable in // headless mode. To prevent that, a page is never considerer backgrounded // when virtual time is enabled. diff --git a/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch b/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch index adaf366a..aa729dc6 100644 --- a/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch +++ b/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch @@ -96,7 +96,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/audio_context.cc b/thir #include "third_party/blink/public/platform/modules/webrtc/webrtc_logging.h" #include "third_party/blink/public/platform/web_audio_latency_hint.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h" -@@ -969,7 +970,9 @@ double AudioContext::baseLatency() const { +@@ -1125,7 +1126,9 @@ double AudioContext::baseLatency() const { DCHECK_CALLED_ON_VALID_SEQUENCE(main_thread_sequence_checker_); DCHECK(destination()); @@ -139,7 +139,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/base_audio_context.cc b diff --git a/third_party/blink/renderer/modules/webaudio/base_audio_context.h b/third_party/blink/renderer/modules/webaudio/base_audio_context.h --- a/third_party/blink/renderer/modules/webaudio/base_audio_context.h +++ b/third_party/blink/renderer/modules/webaudio/base_audio_context.h -@@ -327,6 +327,8 @@ class MODULES_EXPORT BaseAudioContext +@@ -328,6 +328,8 @@ class MODULES_EXPORT BaseAudioContext // if the execution context does not exist. bool CheckExecutionContextAndThrowIfNecessary(ExceptionState&); @@ -218,7 +218,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc b/ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -643,9 +643,8 @@ +@@ -663,9 +663,8 @@ { // AudioContext.playoutStats interface. // https://chromestatus.com/feature/5172818344148992 diff --git a/build/patches/Block-gateway-attacks-via-websockets.patch b/build/patches/Block-gateway-attacks-via-websockets.patch index 59cb3cd5..ca2d93d3 100644 --- a/build/patches/Block-gateway-attacks-via-websockets.patch +++ b/build/patches/Block-gateway-attacks-via-websockets.patch @@ -23,7 +23,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/third_party/blink/renderer/core/execution_context/execution_context.h b/third_party/blink/renderer/core/execution_context/execution_context.h --- a/third_party/blink/renderer/core/execution_context/execution_context.h +++ b/third_party/blink/renderer/core/execution_context/execution_context.h -@@ -387,6 +387,7 @@ class CORE_EXPORT ExecutionContext : public Supplementable, +@@ -388,6 +388,7 @@ class CORE_EXPORT ExecutionContext : public Supplementable, void SetAddressSpace(network::mojom::blink::IPAddressSpace ip_address_space); HeapObserverList& ContextLifecycleObserverSet(); @@ -45,7 +45,7 @@ diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.h b/third diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/third_party/blink/renderer/core/loader/frame_fetch_context.cc --- a/third_party/blink/renderer/core/loader/frame_fetch_context.cc +++ b/third_party/blink/renderer/core/loader/frame_fetch_context.cc -@@ -1133,6 +1133,26 @@ bool FrameFetchContext::ShouldBlockRequestByInspector(const KURL& url) const { +@@ -1139,6 +1139,26 @@ bool FrameFetchContext::ShouldBlockRequestByInspector(const KURL& url) const { return should_block_request; } @@ -75,7 +75,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/thi diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.h b/third_party/blink/renderer/core/loader/frame_fetch_context.h --- a/third_party/blink/renderer/core/loader/frame_fetch_context.h +++ b/third_party/blink/renderer/core/loader/frame_fetch_context.h -@@ -192,6 +192,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext, +@@ -196,6 +196,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext, bool ShouldBlockWebSocketByMixedContentCheck(const KURL&) const override; std::unique_ptr CreateWebSocketHandshakeThrottle() override; diff --git a/build/patches/Block-leakage-of-urls-in-sandbox-iframes.patch b/build/patches/Block-leakage-of-urls-in-sandbox-iframes.patch index 46b6d3d0..b09d27ba 100644 --- a/build/patches/Block-leakage-of-urls-in-sandbox-iframes.patch +++ b/build/patches/Block-leakage-of-urls-in-sandbox-iframes.patch @@ -25,7 +25,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc -@@ -5239,7 +5239,17 @@ void RenderFrameHostImpl::SetLastCommittedOrigin( +@@ -5327,7 +5327,17 @@ void RenderFrameHostImpl::SetLastCommittedOrigin( } void RenderFrameHostImpl::SetInheritedBaseUrl(const GURL& inherited_base_url) { @@ -106,7 +106,7 @@ diff --git a/third_party/blink/renderer/core/frame/location.cc b/third_party/bli diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc --- a/third_party/blink/renderer/core/loader/document_loader.cc +++ b/third_party/blink/renderer/core/loader/document_loader.cc -@@ -835,6 +835,11 @@ WebString DocumentLoader::HttpMethod() const { +@@ -833,6 +833,11 @@ WebString DocumentLoader::HttpMethod() const { } const AtomicString& DocumentLoader::GetReferrer() const { @@ -118,7 +118,7 @@ diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_p return referrer_; } -@@ -2917,6 +2922,13 @@ void DocumentLoader::CommitNavigation() { +@@ -2909,6 +2914,13 @@ void DocumentLoader::CommitNavigation() { response_.HttpHeaderField(http_names::kDocumentPolicyReportOnly)); } @@ -135,7 +135,7 @@ diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_p diff --git a/third_party/blink/renderer/core/loader/document_loader.h b/third_party/blink/renderer/core/loader/document_loader.h --- a/third_party/blink/renderer/core/loader/document_loader.h +++ b/third_party/blink/renderer/core/loader/document_loader.h -@@ -768,7 +768,7 @@ class CORE_EXPORT DocumentLoader : public GarbageCollected, +@@ -770,7 +770,7 @@ class CORE_EXPORT DocumentLoader : public GarbageCollected, // |archive_|, but won't have |loading_main_document_from_mhtml_archive_| set. bool loading_main_document_from_mhtml_archive_ = false; const bool loading_srcdoc_ = false; diff --git a/build/patches/Bromite-auto-updater.patch b/build/patches/Bromite-auto-updater.patch index 737ec457..27868812 100644 --- a/build/patches/Bromite-auto-updater.patch +++ b/build/patches/Bromite-auto-updater.patch @@ -92,7 +92,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 -@@ -880,6 +880,8 @@ chrome_java_sources = [ +@@ -890,6 +890,8 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/omaha/OmahaBase.java", "java/src/org/chromium/chrome/browser/omaha/OmahaDelegate.java", "java/src/org/chromium/chrome/browser/omaha/OmahaDelegateBase.java", @@ -119,7 +119,7 @@ diff --git a/chrome/android/java/res/xml/about_chrome_preferences.xml b/chrome/a diff --git a/chrome/android/java/src/org/chromium/chrome/browser/about_settings/AboutChromeSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/about_settings/AboutChromeSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/about_settings/AboutChromeSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/about_settings/AboutChromeSettings.java -@@ -31,10 +31,15 @@ import org.chromium.ui.widget.Toast; +@@ -32,10 +32,15 @@ import org.chromium.ui.widget.Toast; import java.util.Calendar; @@ -136,7 +136,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/about_settings/ static { CalendarFactory.warmUp(); } -@@ -42,6 +47,7 @@ public class AboutChromeSettings extends ChromeBaseSettingsFragment +@@ -43,6 +48,7 @@ public class AboutChromeSettings extends ChromeBaseSettingsFragment private static final int TAPS_FOR_DEVELOPER_SETTINGS = 7; private static final String PREF_APPLICATION_VERSION = "application_version"; @@ -144,7 +144,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/about_settings/ private static final String PREF_OS_VERSION = "os_version"; private static final String PREF_LEGAL_INFORMATION = "legal_information"; -@@ -80,6 +86,13 @@ public class AboutChromeSettings extends ChromeBaseSettingsFragment +@@ -82,6 +88,13 @@ public class AboutChromeSettings extends ChromeBaseSettingsFragment calendar.setTimeInMillis(System.currentTimeMillis()); int currentYear = calendar.get(Calendar.YEAR); p.setSummary(getString(R.string.legal_information_summary, currentYear)); @@ -158,7 +158,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/about_settings/ } @Override -@@ -150,6 +163,19 @@ public class AboutChromeSettings extends ChromeBaseSettingsFragment +@@ -152,6 +165,19 @@ public class AboutChromeSettings extends ChromeBaseSettingsFragment return true; } @@ -690,7 +690,7 @@ new file mode 100644 diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -2614,6 +2614,12 @@ static_library("browser") { +@@ -2595,6 +2595,12 @@ static_library("browser") { } if (is_android) { @@ -1010,7 +1010,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 -@@ -383,6 +383,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -392,6 +392,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kProtectedTabsAndroid, &kPwaRestoreUi, &kPwaRestoreUiAtStartup, @@ -1021,12 +1021,12 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse 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 -@@ -463,6 +463,7 @@ public abstract class ChromeFeatureList { +@@ -471,6 +471,7 @@ public abstract class ChromeFeatureList { public static final String INCOGNITO_NTP_SMALL_ICON = "IncognitoNtpSmallIcon"; public static final String INCOGNITO_SCREENSHOT = "IncognitoScreenshot"; public static final String INCOGNITO_THEME_OVERLAY_TESTING = "IncognitoThemeOverlayTesting"; + public static final String INLINE_UPDATE_FLOW = "InlineUpdateFlow"; - public static final String INSTANCE_SWITCHER_V2 = "InstanceSwitcherV2"; + public static final String INLINE_PDF_V2 = "InlinePdfV2"; public static final String KEYBOARD_ESC_BACK_NAVIGATION = "KeyboardEscBackNavigation"; public static final String LAUNCH_CAUSE_SCREEN_OFF_FIX = "LaunchCauseScreenOffFix"; diff --git a/chrome/browser/media/router/discovery/access_code/access_code_cast_discovery_interface.cc b/chrome/browser/media/router/discovery/access_code/access_code_cast_discovery_interface.cc @@ -1623,7 +1623,7 @@ diff --git a/chrome/browser/save_to_drive/drive_uploader.cc b/chrome/browser/sav 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 -@@ -2313,6 +2313,12 @@ Your Google account may have other forms of browsing history like searches and a +@@ -2328,6 +2328,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 @@ -1636,7 +1636,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro -@@ -4389,7 +4395,10 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4419,7 +4425,10 @@ To change this setting, BEGIN_LINKdelete the Chrome d @@ -1648,7 +1648,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro Newer version is available -@@ -4400,6 +4409,18 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4430,6 +4439,18 @@ To change this setting, BEGIN_LINKdelete the Chrome d Android version is unsupported @@ -1730,7 +1730,7 @@ diff --git a/components/commerce/core/subscriptions/subscriptions_server_proxy.c diff --git a/components/contextual_search/internal/composebox_query_controller.cc b/components/contextual_search/internal/composebox_query_controller.cc --- a/components/contextual_search/internal/composebox_query_controller.cc +++ b/components/contextual_search/internal/composebox_query_controller.cc -@@ -825,7 +825,7 @@ ComposeboxQueryController::CreateEndpointFetcher( +@@ -870,7 +870,7 @@ ComposeboxQueryController::CreateEndpointFetcher( .SetTimeout(timeout) .SetUploadProgressCallback(std::move(upload_progress_callback)) .SetUrl(fetch_url) @@ -1754,7 +1754,7 @@ diff --git a/components/data_sharing/internal/data_sharing_network_loader_impl.c diff --git a/components/data_sharing/internal/preview_server_proxy.cc b/components/data_sharing/internal/preview_server_proxy.cc --- a/components/data_sharing/internal/preview_server_proxy.cc +++ b/components/data_sharing/internal/preview_server_proxy.cc -@@ -346,7 +346,7 @@ std::unique_ptr PreviewServerProxy::CreateEndpointFetcher( +@@ -345,7 +345,7 @@ std::unique_ptr PreviewServerProxy::CreateEndpointFetcher( .SetContentType(kContentType) .SetTimeout(kTimeout) .SetUrl(url) diff --git a/build/patches/Bromite-subresource-adblocker.patch b/build/patches/Bromite-subresource-adblocker.patch index ecc1fe26..505b7bc2 100644 --- a/build/patches/Bromite-subresource-adblocker.patch +++ b/build/patches/Bromite-subresource-adblocker.patch @@ -65,7 +65,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -303,6 +303,7 @@ if (_is_default_toolchain) { +@@ -313,6 +313,7 @@ if (_is_default_toolchain) { "//chrome/android/features/tab_ui/public:ui_java_resources", "//chrome/android/modules/stack_unwinder/provider:java", "//chrome/android/webapk/libs/client:client_java", @@ -76,7 +76,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni --- a/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni -@@ -431,6 +431,7 @@ chrome_java_resources = [ +@@ -436,6 +436,7 @@ chrome_java_resources = [ "java/res/layout/account_management_account_row.xml", "java/res/layout/app_history_filter.xml", "java/res/layout/auto_pip_permission_dialog.xml", @@ -84,7 +84,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja "java/res/layout/auto_sign_in_first_run_dialog.xml", "java/res/layout/autofill_billing_address_dropdown.xml", "java/res/layout/autofill_card_name_and_number.xml", -@@ -633,6 +634,7 @@ chrome_java_resources = [ +@@ -642,6 +643,7 @@ chrome_java_resources = [ "java/res/xml/account_management_preferences.xml", "java/res/xml/ad_services_config.xml", "java/res/xml/appearance_preferences.xml", @@ -95,7 +95,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 -@@ -951,6 +951,8 @@ chrome_java_sources = [ +@@ -962,6 +962,8 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/permissions/PermissionBlockedDialog.java", "java/src/org/chromium/chrome/browser/permissions/PermissionUpdateRequester.java", "java/src/org/chromium/chrome/browser/photo_picker/DecoderServiceImpl.java", @@ -251,7 +251,7 @@ new file mode 100644 diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml --- a/chrome/android/java/res/xml/main_preferences.xml +++ b/chrome/android/java/res/xml/main_preferences.xml -@@ -107,6 +107,11 @@ found in the LICENSE file. +@@ -115,6 +115,11 @@ found in the LICENSE file. android:key="toolbar_shortcut" android:order="21" android:title="@string/toolbar_shortcut"/> @@ -441,7 +441,7 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java -@@ -94,6 +94,8 @@ import java.util.HashMap; +@@ -101,6 +101,8 @@ import java.util.HashMap; import java.util.Locale; import java.util.Map; @@ -450,7 +450,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin /** * The Chrome settings activity. * -@@ -1157,6 +1159,7 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -1277,6 +1279,7 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity && !MAIN_FRAGMENT_TAG.equals(fragment.getTag())) { return; } @@ -461,7 +461,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd -@@ -17479,6 +17479,16 @@ Please help our engineers fix this problem. Tell us what happened right before y +@@ -17579,6 +17579,16 @@ Please help our engineers fix this problem. Tell us what happened right before y Never show this again. @@ -532,7 +532,7 @@ diff --git a/chrome/browser/browser_process.h b/chrome/browser/browser_process.h diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc --- a/chrome/browser/browser_process_impl.cc +++ b/chrome/browser/browser_process_impl.cc -@@ -1345,6 +1345,34 @@ BrowserProcessImpl::component_updater() { +@@ -1368,6 +1368,34 @@ BrowserProcessImpl::component_updater() { return component_updater_.get(); } @@ -589,7 +589,7 @@ diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_proc diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc --- a/chrome/browser/chrome_browser_main.cc +++ b/chrome/browser/chrome_browser_main.cc -@@ -431,6 +431,9 @@ StartupProfileInfo CreateInitialProfile( +@@ -432,6 +432,9 @@ StartupProfileInfo CreateInitialProfile( // missing code in the above test. CHECK(profile_info.profile) << "Cannot get default profile."; @@ -740,7 +740,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h --- a/chrome/common/pref_names.h +++ b/chrome/common/pref_names.h -@@ -2982,6 +2982,11 @@ inline constexpr char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled"; +@@ -2986,6 +2986,11 @@ inline constexpr char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled"; inline constexpr char kAudioCaptureAllowedUrls[] = "hardware.audio_capture_allowed_urls"; @@ -1824,7 +1824,7 @@ diff --git a/components/subresource_filter/core/browser/ruleset_version.h b/comp diff --git a/components/subresource_filter/core/browser/subresource_filter_features.cc b/components/subresource_filter/core/browser/subresource_filter_features.cc --- a/components/subresource_filter/core/browser/subresource_filter_features.cc +++ b/components/subresource_filter/core/browser/subresource_filter_features.cc -@@ -55,75 +55,8 @@ class CommaSeparatedStrings { +@@ -54,75 +54,8 @@ class CommaSeparatedStrings { const std::vector pieces_; }; @@ -1901,7 +1901,7 @@ diff --git a/components/subresource_filter/core/browser/subresource_filter_featu // If ad tagging is enabled, turn on the dryrun automatically. bool ad_tagging_enabled = base::FeatureList::IsEnabled(kAdTagging); const struct { -@@ -131,23 +64,16 @@ std::vector FillEnabledPresetConfigurations( +@@ -130,23 +63,16 @@ std::vector FillEnabledPresetConfigurations( bool enabled_by_default; Configuration (*factory_method)(); } kAvailablePresetConfigurations[] = { @@ -1927,7 +1927,7 @@ diff --git a/components/subresource_filter/core/browser/subresource_filter_featu enabled_configurations.push_back(available_preset.factory_method()); } } -@@ -155,48 +81,12 @@ std::vector FillEnabledPresetConfigurations( +@@ -154,48 +80,12 @@ std::vector FillEnabledPresetConfigurations( return enabled_configurations; } diff --git a/build/patches/Chrome-web-store-protection.patch b/build/patches/Chrome-web-store-protection.patch index a69b4964..0c8dbd49 100644 --- a/build/patches/Chrome-web-store-protection.patch +++ b/build/patches/Chrome-web-store-protection.patch @@ -55,7 +55,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/app/extensions_strings.grdp b/chrome/app/extensions_strings.grdp --- a/chrome/app/extensions_strings.grdp +++ b/chrome/app/extensions_strings.grdp -@@ -88,6 +88,12 @@ +@@ -79,6 +79,12 @@ Developer Mode Off. Some extensions were disabled. @@ -129,7 +129,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_a diff --git a/chrome/browser/extensions/api/developer_private/developer_private_functions.cc b/chrome/browser/extensions/api/developer_private/developer_private_functions.cc --- a/chrome/browser/extensions/api/developer_private/developer_private_functions.cc +++ b/chrome/browser/extensions/api/developer_private/developer_private_functions.cc -@@ -452,6 +452,7 @@ ExtensionFunction::ResponseAction DeveloperPrivateAutoUpdateFunction::Run() { +@@ -451,6 +451,7 @@ ExtensionFunction::ResponseAction DeveloperPrivateAutoUpdateFunction::Run() { ExtensionUpdater::CheckParams params; params.fetch_priority = DownloadFetchPriority::kForeground; params.install_immediately = true; @@ -137,7 +137,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_f params.callback = base::BindOnce(&DeveloperPrivateAutoUpdateFunction::OnComplete, this); updater->CheckNow(std::move(params)); -@@ -588,7 +589,7 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() { +@@ -587,7 +588,7 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() { const developer::ProfileConfigurationUpdate& update = params->update; @@ -146,7 +146,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_f Profile* profile = Profile::FromBrowserContext(browser_context()); CHECK(profile); if (supervised_user::AreExtensionsPermissionsEnabled(profile)) { -@@ -602,6 +603,11 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() { +@@ -601,6 +602,11 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() { ->MarkNoticeAsAcknowledgedGlobally(); } @@ -181,7 +181,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/profile_info_genera diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc b/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc --- a/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc +++ b/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc -@@ -255,6 +255,8 @@ Profile* GetProfileInIncognito(Profile* profile) { +@@ -257,6 +257,8 @@ Profile* GetProfileInIncognito(Profile* profile) { // there was previously stored data, or an empty string otherwise. The Set will // overwrite any previous login. std::string GetWebstoreLogin(Profile* profile) { @@ -190,7 +190,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api if (profile->GetPrefs()->HasPrefPath(kWebstoreLogin)) { return profile->GetPrefs()->GetString(kWebstoreLogin); } -@@ -262,11 +264,15 @@ std::string GetWebstoreLogin(Profile* profile) { +@@ -264,11 +266,15 @@ std::string GetWebstoreLogin(Profile* profile) { } void SetWebstoreLogin(Profile* profile, const std::string& login) { @@ -206,7 +206,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api switch (status) { case kCanRequest: return api::webstore_private::ExtensionInstallStatus::kCanRequest; -@@ -1205,7 +1211,8 @@ ExtensionFunction::ResponseAction +@@ -1207,7 +1213,8 @@ ExtensionFunction::ResponseAction WebstorePrivateIsInIncognitoModeFunction::Run() { Profile* profile = Profile::FromBrowserContext(browser_context()); return RespondNow(ArgumentList(IsInIncognitoMode::Results::Create( @@ -216,7 +216,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api } WebstorePrivateIsPendingCustodianApprovalFunction:: -@@ -1302,11 +1309,14 @@ WebstorePrivateGetReferrerChainFunction::Run() { +@@ -1304,11 +1311,14 @@ WebstorePrivateGetReferrerChainFunction::Run() { request.mutable_referrer_chain_options()->set_recent_navigations_to_collect( recent_navigations_to_collect); @@ -235,7 +235,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api diff --git a/chrome/browser/extensions/chrome_extension_system.cc b/chrome/browser/extensions/chrome_extension_system.cc --- a/chrome/browser/extensions/chrome_extension_system.cc +++ b/chrome/browser/extensions/chrome_extension_system.cc -@@ -96,6 +96,7 @@ UninstallPingSender::FilterResult ShouldSendUninstallPing( +@@ -99,6 +99,7 @@ UninstallPingSender::FilterResult ShouldSendUninstallPing( Profile* profile, const Extension* extension, UninstallReason reason) { @@ -259,7 +259,7 @@ diff --git a/chrome/browser/extensions/cws_info_service_factory.cc b/chrome/brow diff --git a/chrome/browser/extensions/extension_management.cc b/chrome/browser/extensions/extension_management.cc --- a/chrome/browser/extensions/extension_management.cc +++ b/chrome/browser/extensions/extension_management.cc -@@ -440,6 +440,7 @@ bool ExtensionManagement::IsExemptFromMV2DeprecationByPolicy( +@@ -441,6 +441,7 @@ bool ExtensionManagement::IsExemptFromMV2DeprecationByPolicy( bool ExtensionManagement::IsAllowedByUnpublishedAvailabilityPolicy( const Extension* extension) { @@ -283,7 +283,7 @@ diff --git a/chrome/browser/extensions/extension_safety_check_utils.cc b/chrome/ diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc --- a/chrome/browser/extensions/extension_service.cc +++ b/chrome/browser/extensions/extension_service.cc -@@ -247,8 +247,6 @@ ExtensionService::ExtensionService( +@@ -248,8 +248,6 @@ ExtensionService::ExtensionService( UpgradeDetector::GetInstance()->AddObserver(this); #endif @@ -291,8 +291,8 @@ diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/ext - ExtensionManagementFactory::GetForBrowserContext(profile_)->AddObserver(this); - if (autoupdate_enabled) { -@@ -763,7 +761,7 @@ void ExtensionService::OnExtensionManagementSettingsChanged() { + if (auto* extension_install_policy_service = +@@ -772,7 +770,7 @@ void ExtensionService::OnExtensionManagementSettingsChanged() { // unpublished extensions should not be enabled. This update allows // unpublished extensions to be disabled sooner rather than waiting till the // next regularly scheduled fetch. @@ -315,7 +315,7 @@ diff --git a/chrome/browser/extensions/updater/chrome_extension_downloader_facto diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/browser/extensions/updater/extension_updater.cc --- a/chrome/browser/extensions/updater/extension_updater.cc +++ b/chrome/browser/extensions/updater/extension_updater.cc -@@ -55,6 +55,7 @@ +@@ -56,6 +56,7 @@ #include "extensions/common/constants.h" #include "extensions/common/extension.h" #include "extensions/common/extension_id.h" @@ -323,7 +323,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro #include "extensions/common/extension_set.h" #include "extensions/common/extension_updater_uma.h" #include "extensions/common/extension_urls.h" -@@ -228,6 +229,10 @@ void ExtensionUpdater::Start() { +@@ -229,6 +230,10 @@ void ExtensionUpdater::Start() { DCHECK(!weak_ptr_factory_.HasWeakPtrs()); DCHECK(registry_); alive_ = true; @@ -334,7 +334,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro // Check soon, and set up the first delayed check. if (!g_skip_scheduled_checks_for_tests) { CheckSoon(); -@@ -379,7 +384,8 @@ void ExtensionUpdater::AddToDownloader( +@@ -380,7 +385,8 @@ void ExtensionUpdater::AddToDownloader( const Extension& extension = **extension_iter; const ExtensionId& extension_id = extension.id(); if (!Manifest::IsAutoUpdateableLocation(extension.location())) { @@ -344,7 +344,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro continue; } // An extension might be overwritten by policy, and have its update url -@@ -394,7 +400,7 @@ void ExtensionUpdater::AddToDownloader( +@@ -395,7 +401,7 @@ void ExtensionUpdater::AddToDownloader( continue; } @@ -353,7 +353,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro update_check_params->update_info[extension_id] = GetExtensionUpdateData(extension_id); } else if (AddExtensionToDownloader(extension, request_id, -@@ -432,6 +438,12 @@ bool ExtensionUpdater::AddExtensionToDownloader( +@@ -434,6 +440,12 @@ bool ExtensionUpdater::AddExtensionToDownloader( } void ExtensionUpdater::CheckNow(CheckParams params) { @@ -366,7 +366,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro CHECK(enabled_); if (params.ids.empty()) { // Checking all extensions. Cancel pending DoCheckSoon() call if there's -@@ -449,7 +461,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -451,7 +463,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { int request_id = next_request_id_++; @@ -375,17 +375,17 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro if (params.ids.empty()) { NotifyStarted(); } -@@ -518,7 +530,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { - update_check_params.update_info[pending_id] = - GetExtensionUpdateData(pending_id); +@@ -528,7 +540,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { + << " will be reinstalled with ExtensionDownloader."; + } } else if (!Manifest::IsAutoUpdateableLocation(info->install_source())) { - VLOG(2) << "Extension " << pending_id << " is not auto updateable"; + LOG(INFO) << "Extension " << pending_id << " is not auto updateable"; continue; } // We have to mark high-priority extensions (such as policy-forced -@@ -528,7 +540,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { - // See https://crbug.com/904600 and https://crbug.com/965686. +@@ -538,7 +550,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { + // See https://crbug.com/41425994 and https://crbug.com/41460304. const bool is_high_priority_extension_pending = pending_extension_manager->HasHighPriorityPendingExtension(); - if (CanUseUpdateService(pending_id)) { @@ -393,16 +393,16 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro update_check_params.update_info[pending_id] = GetExtensionUpdateData(pending_id); update_check_params.update_info[pending_id].is_corrupt_reinstall = -@@ -551,6 +563,8 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -562,6 +574,8 @@ void ExtensionUpdater::CheckNow(CheckParams params) { LOG(WARNING) << "Corrupt extension with id " << pending_id << " will be reinstalled with ExtensionDownloader."; } + LOG(INFO) << "Extension " << pending_id << " is auto updateable " + << "from " << info->update_url(); } else { - InstallStageTracker::Get(profile_)->ReportFailure( - pending_id, -@@ -563,13 +577,6 @@ void ExtensionUpdater::CheckNow(CheckParams params) { + InstallStageTrackerFactory::GetForBrowserContext(profile_) + ->ReportFailure( +@@ -575,13 +589,6 @@ void ExtensionUpdater::CheckNow(CheckParams params) { AddToDownloader(®istry_->disabled_extensions(), pending_ids, request_id, params.fetch_priority, &update_check_params); ExtensionSet remotely_disabled_extensions; @@ -416,7 +416,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro AddToDownloader(&remotely_disabled_extensions, pending_ids, request_id, params.fetch_priority, &update_check_params); } else { -@@ -577,7 +584,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -589,7 +596,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { const Extension* extension = registry_->GetExtensionById(id, ExtensionRegistry::EVERYTHING); if (extension) { @@ -425,8 +425,8 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro update_check_params.update_info[id] = GetExtensionUpdateData(id); } else if (AddExtensionToDownloader(*extension, request_id, params.fetch_priority)) { -@@ -721,7 +728,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished( - file.extension_id, InstallStageTracker::Stage::INSTALLING); +@@ -736,7 +743,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished( + InstallStageTracker::Stage::INSTALLING); UpdatePingData(file.extension_id, ping); - VLOG(2) << download_url << " written to " << file.path.value(); @@ -434,7 +434,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro FetchedCRXFile fetched(file, file_ownership_passed, request_ids, std::move(callback)); -@@ -732,6 +739,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished( +@@ -747,6 +754,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished( bool ExtensionUpdater::GetPingDataForExtension(const ExtensionId& id, DownloadPingData* ping_data) { @@ -442,7 +442,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro DCHECK(alive_); ping_data->rollcall_days = CalculatePingDaysForExtension(extension_prefs_->LastPingDay(id)); -@@ -851,7 +859,7 @@ bool ExtensionUpdater::CanUseUpdateService( +@@ -865,7 +873,7 @@ bool ExtensionUpdater::CanUseUpdateService( void ExtensionUpdater::InstallCRXFile(FetchedCRXFile crx_file) { std::set request_ids; @@ -451,7 +451,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro << crx_file.info.path.value(); // The delegate is now responsible for cleaning up the temp file at -@@ -1060,7 +1068,7 @@ void ExtensionUpdater::NotifyIfFinished(int request_id) { +@@ -1075,7 +1083,7 @@ void ExtensionUpdater::NotifyIfFinished(int request_id) { if (!request.in_progress_ids.empty() || request.awaiting_update_service) { return; // This request is not done yet. } @@ -472,7 +472,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.h b/chrome/brow // An extension update check can be originated by a user or by a scheduled // task. When the value of |fetch_priority| is FOREGROUND, the update // request was initiated by a user. -@@ -397,6 +399,8 @@ class ExtensionUpdater : public KeyedService, +@@ -398,6 +400,8 @@ class ExtensionUpdater : public KeyedService, base::TimeDelta frequency_; bool will_check_soon_ = false; @@ -519,7 +519,7 @@ diff --git a/chrome/browser/resources/extensions/manager.html.ts b/chrome/browse diff --git a/chrome/browser/resources/extensions/manager.ts b/chrome/browser/resources/extensions/manager.ts --- a/chrome/browser/resources/extensions/manager.ts +++ b/chrome/browser/resources/extensions/manager.ts -@@ -146,6 +146,8 @@ export class ExtensionsManagerElement extends ExtensionsManagerElementBase { +@@ -143,6 +143,8 @@ export class ExtensionsManagerElement extends ExtensionsManagerElementBase { */ didInitPage_: {type: Boolean}, @@ -528,7 +528,7 @@ diff --git a/chrome/browser/resources/extensions/manager.ts b/chrome/browser/res narrow_: {type: Boolean}, showDrawer_: {type: Boolean}, -@@ -167,6 +169,8 @@ export class ExtensionsManagerElement extends ExtensionsManagerElementBase { +@@ -164,6 +166,8 @@ export class ExtensionsManagerElement extends ExtensionsManagerElementBase { accessor inDevMode: boolean = loadTimeData.getBoolean('inDevMode'); accessor isMv2DeprecationNoticeDismissed: boolean = loadTimeData.getBoolean('MV2DeprecationNoticeDismissed'); @@ -537,7 +537,7 @@ diff --git a/chrome/browser/resources/extensions/manager.ts b/chrome/browser/res accessor showActivityLog: boolean = loadTimeData.getBoolean('showActivityLog'); accessor enableEnhancedSiteControls: boolean = -@@ -231,6 +235,7 @@ export class ExtensionsManagerElement extends ExtensionsManagerElementBase { +@@ -228,6 +232,7 @@ export class ExtensionsManagerElement extends ExtensionsManagerElementBase { this.canLoadUnpacked = profileInfo.canLoadUnpacked; this.isMv2DeprecationNoticeDismissed = profileInfo.isMv2DeprecationNoticeDismissed; @@ -681,7 +681,7 @@ diff --git a/chrome/browser/ui/webui/extensions/extensions_ui.cc b/chrome/browse #include "chrome/browser/extensions/manifest_v2_experiment_manager.h" #include "chrome/browser/extensions/mv2_experiment_stage.h" #include "chrome/browser/extensions/permissions_url_constants.h" -@@ -381,6 +382,8 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile, +@@ -385,6 +386,8 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile, {"itemSuspiciousInstallLearnMore", IDS_EXTENSIONS_ADDED_WITHOUT_KNOWLEDGE_LEARN_MORE}, {"toolbarDevMode", IDS_EXTENSIONS_DEVELOPER_MODE}, @@ -690,7 +690,7 @@ diff --git a/chrome/browser/ui/webui/extensions/extensions_ui.cc b/chrome/browse {"toolbarLoadUnpacked", IDS_EXTENSIONS_TOOLBAR_LOAD_UNPACKED}, {"toolbarLoadUnpackedDone", IDS_EXTENSIONS_TOOLBAR_LOAD_UNPACKED_DONE}, {"toolbarPack", IDS_EXTENSIONS_TOOLBAR_PACK}, -@@ -466,6 +469,10 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile, +@@ -470,6 +473,10 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile, "hostPermissionsLearnMoreLink", extension_permissions_constants::kRuntimeHostPermissionsHelpURL); source->AddBoolean(kInDevModeKey, in_dev_mode); @@ -727,7 +727,7 @@ diff --git a/chrome/browser/update_client/chrome_update_query_params_delegate.cc diff --git a/chrome/common/extensions/api/developer_private.idl b/chrome/common/extensions/api/developer_private.idl --- a/chrome/common/extensions/api/developer_private.idl +++ b/chrome/common/extensions/api/developer_private.idl -@@ -273,6 +273,7 @@ namespace developerPrivate { +@@ -269,6 +269,7 @@ namespace developerPrivate { boolean isIncognitoAvailable; boolean isChildAccount; boolean isMv2DeprecationNoticeDismissed; @@ -735,7 +735,7 @@ diff --git a/chrome/common/extensions/api/developer_private.idl b/chrome/common/ }; dictionary GetExtensionsInfoOptions { -@@ -296,6 +297,7 @@ namespace developerPrivate { +@@ -292,6 +293,7 @@ namespace developerPrivate { dictionary ProfileConfigurationUpdate { boolean? inDeveloperMode; boolean? isMv2DeprecationNoticeDismissed; @@ -1017,7 +1017,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro ExtensionIdSet extension_ids_with_errors; for (const auto& failure : failures) extension_ids_with_errors.insert(failure.first.id); -@@ -860,7 +843,7 @@ ExtensionDownloader::GetUpdateAvailability( +@@ -861,7 +844,7 @@ ExtensionDownloader::GetUpdateAvailability( // extensions that have already existed in the system. if (!delegate_->GetExtensionExistingVersion(extension_id, &extension_version)) { @@ -1026,7 +1026,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro return UpdateAvailability::kBadUpdateSpecification; } VLOG(2) << extension_id << " is at '" << extension_version << "'"; -@@ -871,11 +854,11 @@ ExtensionDownloader::GetUpdateAvailability( +@@ -872,11 +855,11 @@ ExtensionDownloader::GetUpdateAvailability( const std::string& update_version_str = update->version; if (VLOG_IS_ON(2)) { if (update_version_str.empty()) @@ -1040,7 +1040,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro << " latest version is '" << update_version_str << "'"; } -@@ -885,21 +868,21 @@ ExtensionDownloader::GetUpdateAvailability( +@@ -886,14 +869,14 @@ ExtensionDownloader::GetUpdateAvailability( // we don't want it. if (update_version_str.empty()) { // If update manifest doesn't have version number => no update. @@ -1057,15 +1057,16 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro << update_version_str << "'"; continue; } - - const base::Version existing_version(extension_version); - if (update_version.CompareTo(existing_version) <= 0) { -- VLOG(2) << extension_id << " version is not older than '" -+ LOG(INFO) << extension_id << " version is not older than '" - << update_version_str << "'"; - bool can_rollback = - update_version.CompareTo(existing_version) < 0 && -@@ -926,7 +909,9 @@ ExtensionDownloader::GetUpdateAvailability( +@@ -921,7 +904,7 @@ ExtensionDownloader::GetUpdateAvailability( + update->browser_min_version)) { + // TODO(asargent) - We may want this to show up in the extensions UI + // eventually. (http://crbug.com/12547). +- DLOG(WARNING) << "Updated version of extension " << extension_id ++ LOG(INFO) << "Updated version of extension " << extension_id + << " available, but requires chrome version " + << update->browser_min_version; + has_noupdate = true; +@@ -929,7 +912,9 @@ ExtensionDownloader::GetUpdateAvailability( } // Stop checking as soon as an update for |extension_id| is found. @@ -1076,7 +1077,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro *update_result_out = const_cast(update); return UpdateAvailability::kAvailable; } -@@ -1171,7 +1156,7 @@ void ExtensionDownloader::CreateExtensionLoader() { +@@ -1175,7 +1160,7 @@ void ExtensionDownloader::CreateExtensionLoader() { int load_flags = net::LOAD_DISABLE_CACHE; bool is_secure = fetch->url.SchemeIsCryptographic(); extension_loader_resource_request_->load_flags = load_flags; @@ -1085,7 +1086,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro extension_loader_resource_request_->credentials_mode = network::mojom::CredentialsMode::kOmit; } else { -@@ -1179,7 +1164,7 @@ void ExtensionDownloader::CreateExtensionLoader() { +@@ -1183,7 +1168,7 @@ void ExtensionDownloader::CreateExtensionLoader() { net::SiteForCookies::FromUrl(fetch->url); } @@ -1094,7 +1095,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro is_secure) { if (access_token_.empty()) { // We should try OAuth2, but we have no token cached. This -@@ -1202,7 +1187,7 @@ void ExtensionDownloader::CreateExtensionLoader() { +@@ -1206,7 +1191,7 @@ void ExtensionDownloader::CreateExtensionLoader() { base::StringPrintf("Bearer %s", access_token_.c_str())); } @@ -1103,7 +1104,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro StartExtensionLoader(); } -@@ -1224,7 +1209,7 @@ void ExtensionDownloader::StartExtensionLoader() { +@@ -1228,7 +1213,7 @@ void ExtensionDownloader::StartExtensionLoader() { destination: WEBSITE } policy { @@ -1112,7 +1113,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro cookies_store: "user" setting: "This feature cannot be disabled. It is only enabled when the user " -@@ -1295,6 +1280,7 @@ void ExtensionDownloader::OnExtensionLoadComplete(base::FilePath crx_path) { +@@ -1299,6 +1284,7 @@ void ExtensionDownloader::OnExtensionLoadComplete(base::FilePath crx_path) { RETRY_HISTOGRAM("CrxFetchSuccess", extensions_queue_.active_request_failure_count(), url); @@ -1120,7 +1121,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro std::unique_ptr fetch_data = std::move(extensions_queue_.reset_active_request().fetch); delegate_->OnExtensionDownloadStageChanged( -@@ -1315,7 +1301,7 @@ void ExtensionDownloader::OnExtensionLoadComplete(base::FilePath crx_path) { +@@ -1319,7 +1305,7 @@ void ExtensionDownloader::OnExtensionLoadComplete(base::FilePath crx_path) { } else { const std::set request_ids = active_request.GetRequestIds(); const ExtensionDownloaderDelegate::PingResult& ping = ping_results_[id]; @@ -1129,7 +1130,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro << "' response code:" << response_code; if (ShouldRetryRequest(extension_loader_.get()) && extensions_queue_.active_request_failure_count() < kMaxRetries) { -@@ -1409,6 +1395,7 @@ void ExtensionDownloader::NotifyExtensionsDownloadFailedWithList( +@@ -1413,6 +1399,7 @@ void ExtensionDownloader::NotifyExtensionsDownloadFailedWithList( bool ExtensionDownloader::IterateFetchCredentialsAfterFailure( ExtensionFetch* fetch, int response_code) { @@ -1193,8 +1194,8 @@ diff --git a/extensions/browser/updater/safe_manifest_parser.cc b/extensions/bro diff --git a/extensions/common/extension_features.cc b/extensions/common/extension_features.cc --- a/extensions/common/extension_features.cc +++ b/extensions/common/extension_features.cc -@@ -186,4 +186,11 @@ BASE_FEATURE(kSearchEngineUnconditionalDialog, - BASE_FEATURE(kWebRequestPersistFilteredEvents, +@@ -218,4 +218,11 @@ BASE_FEATURE(kWebRequestPersistFilteredEvents, + BASE_FEATURE(kWebRequestAlternativeAddListener, base::FEATURE_ENABLED_BY_DEFAULT); +CROMITE_FEATURE(kEnableExtensionAutoupdate, @@ -1208,9 +1209,9 @@ diff --git a/extensions/common/extension_features.cc b/extensions/common/extensi diff --git a/extensions/common/extension_features.h b/extensions/common/extension_features.h --- a/extensions/common/extension_features.h +++ b/extensions/common/extension_features.h -@@ -310,6 +310,16 @@ BASE_DECLARE_FEATURE(kWebRequestSecurityInfo); - // browser startup). - BASE_DECLARE_FEATURE(kWebRequestPersistFilteredEvents); +@@ -333,6 +333,16 @@ BASE_DECLARE_FEATURE(kWebRequestPersistFilteredEvents); + // WebRequestInternal's custom API. + BASE_DECLARE_FEATURE(kWebRequestAlternativeAddListener); +// Activates the auto update of extensions. +// the only data provided by default is the list of extensions. @@ -1228,7 +1229,7 @@ diff --git a/extensions/common/extension_features.h b/extensions/common/extensio diff --git a/tools/typescript/definitions/developer_private.d.ts b/tools/typescript/definitions/developer_private.d.ts --- a/tools/typescript/definitions/developer_private.d.ts +++ b/tools/typescript/definitions/developer_private.d.ts -@@ -265,6 +265,7 @@ declare global { +@@ -264,6 +264,7 @@ declare global { isIncognitoAvailable: boolean; isChildAccount: boolean; isMv2DeprecationNoticeDismissed: boolean; @@ -1236,7 +1237,7 @@ diff --git a/tools/typescript/definitions/developer_private.d.ts b/tools/typescr } export interface ExtensionConfigurationUpdate { -@@ -282,6 +283,7 @@ declare global { +@@ -281,6 +282,7 @@ declare global { export interface ProfileConfigurationUpdate { inDeveloperMode?: boolean; isMv2DeprecationNoticeDismissed?: boolean; diff --git a/build/patches/Clear-CORS-Preflight-Cache-on-clearing-data.patch b/build/patches/Clear-CORS-Preflight-Cache-on-clearing-data.patch index bf7b288f..a8552c82 100644 --- a/build/patches/Clear-CORS-Preflight-Cache-on-clearing-data.patch +++ b/build/patches/Clear-CORS-Preflight-Cache-on-clearing-data.patch @@ -79,7 +79,7 @@ diff --git a/services/network/cors/preflight_result.cc b/services/network/cors/p diff --git a/services/network/network_context.cc b/services/network/network_context.cc --- a/services/network/network_context.cc +++ b/services/network/network_context.cc -@@ -1368,6 +1368,7 @@ void NetworkContext::ClearHttpCache(base::Time start_time, +@@ -1372,6 +1372,7 @@ void NetworkContext::ClearHttpCache(base::Time start_time, base::Time end_time, mojom::ClearDataFilterPtr filter, ClearHttpCacheCallback callback) { diff --git a/build/patches/Client-hints-overrides.patch b/build/patches/Client-hints-overrides.patch index fffac682..1bc9d113 100644 --- a/build/patches/Client-hints-overrides.patch +++ b/build/patches/Client-hints-overrides.patch @@ -65,7 +65,7 @@ diff --git a/components/client_hints/browser/client_hints.cc b/components/client diff --git a/components/embedder_support/user_agent_utils.cc b/components/embedder_support/user_agent_utils.cc --- a/components/embedder_support/user_agent_utils.cc +++ b/components/embedder_support/user_agent_utils.cc -@@ -186,9 +186,7 @@ const blink::UserAgentBrandList GetUserAgentBrandList( +@@ -163,9 +163,7 @@ const blink::UserAgentBrandList GetUserAgentBrandList( bool parse_result = base::StringToInt(major_version, &major_version_number); DCHECK(parse_result); std::optional brand; @@ -76,7 +76,7 @@ diff --git a/components/embedder_support/user_agent_utils.cc b/components/embedd std::string brand_version = output_version_type == blink::UserAgentBrandVersionType::kFullVersion -@@ -676,6 +674,7 @@ blink::UserAgentMetadata GetUserAgentMetadata(bool only_low_entropy_ch) { +@@ -662,6 +660,7 @@ blink::UserAgentMetadata GetUserAgentMetadata(bool only_low_entropy_ch) { } // High entropy client hints. @@ -262,7 +262,7 @@ diff --git a/third_party/blink/renderer/core/frame/navigator_ua_data.idl b/third diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/third_party/blink/renderer/core/loader/frame_fetch_context.cc --- a/third_party/blink/renderer/core/loader/frame_fetch_context.cc +++ b/third_party/blink/renderer/core/loader/frame_fetch_context.cc -@@ -233,6 +233,8 @@ bool ShouldSendClientHint(const network::PermissionsPolicy& policy, +@@ -232,6 +232,8 @@ bool ShouldSendClientHint(const network::PermissionsPolicy& policy, bool is_1p_origin, network::mojom::blink::WebClientHintsType type, const ClientHintsPreferences& hints_preferences) { @@ -271,7 +271,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/thi // For subresource requests, sending the hint in the fetch request based on // the permissions policy. if (!policy.IsFeatureEnabledForOrigin( -@@ -726,7 +728,7 @@ void FrameFetchContext::AddClientHintsIfNecessary( +@@ -732,7 +734,7 @@ void FrameFetchContext::AddClientHintsIfNecessary( } // Only send User Agent hints if the info is available @@ -283,7 +283,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/thi diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -614,6 +614,11 @@ +@@ -622,6 +622,11 @@ name: "AriaNotifyV2", status: {"Android": "test", "Win": "test", "Mac": "test", "Linux": "test"}, }, @@ -295,7 +295,7 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 { name: "AriaRowColIndexText", status: "stable", -@@ -1020,8 +1025,7 @@ +@@ -1039,8 +1044,7 @@ // Allows top-level sites to restrict collection of high-entropy UA client // hints (from 3Ps, or itself) via the getHighEntropyValues API. // crbug.com/385161047 diff --git a/build/patches/Close-Sessions-On-Ip-Change.patch b/build/patches/Close-Sessions-On-Ip-Change.patch index 9b036f01..59aad17e 100644 --- a/build/patches/Close-Sessions-On-Ip-Change.patch +++ b/build/patches/Close-Sessions-On-Ip-Change.patch @@ -88,7 +88,7 @@ new file mode 100644 diff --git a/net/base/features.cc b/net/base/features.cc --- a/net/base/features.cc +++ b/net/base/features.cc -@@ -293,7 +293,7 @@ BASE_FEATURE(kRelatedWebsitePartitionAPI, base::FEATURE_DISABLED_BY_DEFAULT); +@@ -289,7 +289,7 @@ BASE_FEATURE(kRelatedWebsitePartitionAPI, base::FEATURE_DISABLED_BY_DEFAULT); // NetworkChangeNotifier::AreNetworkHandlesSupported). #if BUILDFLAG(IS_ANDROID) inline constexpr auto kMigrateSessionsOnNetworkChangeV2Default = diff --git a/build/patches/Content-settings-infrastructure.patch b/build/patches/Content-settings-infrastructure.patch index 7be1fa2f..cccdb73a 100644 --- a/build/patches/Content-settings-infrastructure.patch +++ b/build/patches/Content-settings-infrastructure.patch @@ -139,7 +139,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/C diff --git a/chrome/browser/content_settings/page_specific_content_settings_delegate.cc b/chrome/browser/content_settings/page_specific_content_settings_delegate.cc --- a/chrome/browser/content_settings/page_specific_content_settings_delegate.cc +++ b/chrome/browser/content_settings/page_specific_content_settings_delegate.cc -@@ -191,7 +191,7 @@ namespace { +@@ -193,7 +193,7 @@ namespace { void GetGuestViewDefaultContentSettingRules( bool incognito, RendererContentSettingRules* rules) { @@ -710,7 +710,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/site_settings_util. /** * Determine localization string for i18n for a given content settings type. * Sorted alphabetically by |ContentSettingsType|. -@@ -114,6 +162,13 @@ export function getLocalizationStringForContentType( +@@ -113,6 +161,13 @@ export function getLocalizationStringForContentType( case ContentSettingsTypes.SMART_CARD_READERS: return null; default: @@ -727,7 +727,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/site_settings_util. diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -1630,6 +1630,7 @@ static_library("ui") { +@@ -1622,6 +1622,7 @@ static_library("ui") { "//components/commerce/core/webui", "//components/contextual_search:public", "//components/endpoint_fetcher", @@ -735,9 +735,9 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn "//components/enterprise/common:files_scan_data", "//components/feedback/proto", "//components/headless/console_message_logger", -@@ -4818,6 +4819,7 @@ static_library("ui") { +@@ -4822,6 +4823,7 @@ static_library("ui") { + "//components/payments/core:currency_formatter", "//components/power_bookmarks/core", - "//components/power_bookmarks/storage", "//components/prefs", + "//components/strings:components_strings_grit", "//components/services/app_service", @@ -1224,7 +1224,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide #include "components/password_manager/core/browser/leak_detection_dialog_utils.h" #include "components/password_manager/core/browser/manage_passwords_referrer.h" #include "components/password_manager/core/common/password_manager_features.h" -@@ -4200,6 +4204,56 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, +@@ -4235,6 +4239,56 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, policy_indicator::AddLocalizedStrings(html_source); AddSecurityKeysStrings(html_source); @@ -1293,7 +1293,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b #include "components/content_settings/core/common/content_settings.h" #include "components/content_settings/core/common/content_settings_pattern.h" #include "components/content_settings/core/common/content_settings_types.h" -@@ -262,13 +264,13 @@ constexpr auto kContentSettingsTypeGroupNames = std::to_array< +@@ -260,13 +262,13 @@ constexpr auto kContentSettingsTypeGroupNames = std::to_array< {ContentSettingsType::SUSPICIOUS_NOTIFICATION_SHOW_ORIGINAL, nullptr}, }); @@ -1314,7 +1314,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b struct SiteSettingSourceStringMapping { SiteSettingSource source; -@@ -530,6 +532,13 @@ bool HasRegisteredGroupName(ContentSettingsType type) { +@@ -528,6 +530,13 @@ bool HasRegisteredGroupName(ContentSettingsType type) { return true; } } @@ -1328,7 +1328,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b return false; } -@@ -543,11 +552,24 @@ ContentSettingsType ContentSettingsTypeFromGroupName(std::string_view name) { +@@ -541,11 +550,24 @@ ContentSettingsType ContentSettingsTypeFromGroupName(std::string_view name) { return entry.type; } } @@ -1354,7 +1354,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b for (const auto& entry : kContentSettingsTypeGroupNames) { if (type == entry.type) { // Content setting types that aren't represented in the settings UI -@@ -562,7 +584,6 @@ std::string_view ContentSettingsTypeToGroupName(ContentSettingsType type) { +@@ -560,7 +582,6 @@ std::string_view ContentSettingsTypeToGroupName(ContentSettingsType type) { return entry.name ? entry.name : std::string_view(); } } @@ -1362,7 +1362,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b NOTREACHED() << static_cast(type) << " is not a recognized content settings type."; } -@@ -671,6 +692,13 @@ std::vector GetVisiblePermissionCategories( +@@ -669,6 +690,13 @@ std::vector GetVisiblePermissionCategories( } } @@ -1593,7 +1593,7 @@ diff --git a/components/browser_ui/site_settings/android/java/res/xml/site_setti diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/AllSiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/AllSiteSettings.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/AllSiteSettings.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/AllSiteSettings.java -@@ -402,7 +402,8 @@ public class AllSiteSettings extends BaseSiteSettingsFragment +@@ -403,7 +403,8 @@ public class AllSiteSettings extends BaseSiteSettingsFragment if (queryHasChanged) getInfoForOrigins(); }); @@ -1603,7 +1603,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c MenuItem help = menu.add( Menu.NONE, -@@ -412,6 +413,8 @@ public class AllSiteSettings extends BaseSiteSettingsFragment +@@ -413,6 +414,8 @@ public class AllSiteSettings extends BaseSiteSettingsFragment help.setIcon( TraceEventVectorDrawableCompat.create( getResources(), R.drawable.ic_help_24dp, getContext().getTheme())); @@ -2295,7 +2295,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java -@@ -368,6 +368,10 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -372,6 +372,10 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment } else { @ContentSetting Integer contentSetting = website.site().getContentSetting(browserContextHandle, type); @@ -2306,7 +2306,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c if (contentSetting != null) { return ContentSetting.BLOCK == contentSetting; } -@@ -559,6 +563,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -563,6 +567,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment ? new HashSet<>(getArguments().getStringArrayList(EXTRA_SELECTED_DOMAINS)) : null; @@ -2314,8 +2314,8 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c configureGlobalToggles(); if (mCategory.getType() == SiteSettingsCategory.Type.REQUEST_DESKTOP_SITE) { RecordUserAction.record("DesktopSiteContentSetting.SettingsPage.Entered"); -@@ -600,7 +605,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment - if (queryHasChanged) getInfoForOrigins(); +@@ -610,7 +615,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment + } }); - if (getSiteSettingsDelegate().isHelpAndFeedbackEnabled()) { @@ -2324,7 +2324,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c MenuItem help = menu.add( Menu.NONE, -@@ -610,12 +616,20 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -620,12 +626,20 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment help.setIcon( TraceEventVectorDrawableCompat.create( getResources(), R.drawable.ic_help_24dp, getContext().getTheme())); @@ -2345,7 +2345,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c if (mCategory.getType() == SiteSettingsCategory.Type.PROTECTED_MEDIA) { getSiteSettingsDelegate() .launchProtectedContentHelpAndFeedbackActivity(getActivity()); -@@ -693,6 +707,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -703,6 +717,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment public boolean onPreferenceChange(Preference preference, Object newValue) { BrowserContextHandle browserContextHandle = getBrowserContextHandle(); PrefService prefService = UserPrefs.get(browserContextHandle); @@ -2357,7 +2357,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c if (BINARY_RADIO_BUTTON_KEY.equals(preference.getKey()) || BINARY_TOGGLE_KEY.equals(preference.getKey())) { assert !mCategory.isManaged(); -@@ -867,7 +886,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -877,7 +896,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment ? R.string.website_settings_add_site_description_javascript_optimizer_block : R.string.website_settings_add_site_description_javascript_optimizer_allow; } @@ -2366,7 +2366,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } // OnPreferenceClickListener: -@@ -985,17 +1004,15 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -995,17 +1014,15 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment break; } @@ -2387,7 +2387,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c String exceptionDialogMessage = exceptionDialogMessageResourceId != 0 ? getString(exceptionDialogMessageResourceId) -@@ -1006,7 +1023,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1016,7 +1033,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment getStyledContext(), ADD_EXCEPTION_KEY, exceptionDialogMessage, @@ -2396,7 +2396,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c mCategory, this)); -@@ -1190,8 +1207,16 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1200,8 +1217,16 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment private boolean isBlocked() { switch (mGlobalToggleLayout) { case GlobalToggleLayout.TRI_STATE_TOGGLE: @@ -2411,9 +2411,9 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c getPreferenceScreen().findPreference(TRI_STATE_TOGGLE_KEY); + if (triStateToggle == null) return true; return (triStateToggle.getCheckedSetting() == ContentSetting.BLOCK); - case GlobalToggleLayout.TRI_STATE_COOKIE_TOGGLE: - TriStateCookieSettingsPreference triStateCookieToggle = -@@ -1348,7 +1373,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment + case GlobalToggleLayout.COOKIE_TOGGLE: + CookieSettingsPreference cookieToggle = +@@ -1357,7 +1382,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment } else if (res_id != -1) { infoText.setSummary(res_id); } else { @@ -2426,7 +2426,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } // Hide the anti-abuse text preferences, as needed. -@@ -1387,6 +1416,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1396,6 +1425,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment } else { screen.removePreference(mLocationTriStatePref); } @@ -2434,7 +2434,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c maybeShowReasonToggleDisabled(screen); -@@ -1595,6 +1625,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1602,6 +1632,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment iconIds = ContentSettingsResources.getTriStateSettingIconIDs(contentType); } triStateToggle.initialize( @@ -2442,7 +2442,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c setting, descriptionIds, iconIds, -@@ -1906,6 +1937,14 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1913,6 +1944,14 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment setLocationAccessEnabled.accept(allowButton.isChecked()); } @@ -2507,7 +2507,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c boolean isOneTime = isOneTime(type); if (type == ContentSettingsType.GEOLOCATION_WITH_OPTIONS && !isOneTime) { return createTwoActionLocationSwitchPreference(); -@@ -1345,7 +1360,14 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1348,7 +1363,14 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment value = ContentSetting.BLOCK; } @@ -2523,7 +2523,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c setUpPreferenceCommon(preference, value); preference.setOnPreferenceChangeListener(this); -@@ -1395,10 +1417,14 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1398,10 +1420,14 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment oneTimePreference.setBackgroundColor(mHighlightColor); } } else { @@ -2542,7 +2542,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c AppCompatResources.getColorStateList(getContext(), mHighlightColor) .getDefaultColor()); } -@@ -1704,7 +1730,13 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1707,7 +1733,13 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment if (newValue instanceof Boolean) { permission = (Boolean) newValue ? getEnabledValue(type) : ContentSetting.BLOCK; } else { @@ -2927,7 +2927,7 @@ diff --git a/components/content_settings/core/browser/content_settings_registry. namespace content_settings { -@@ -869,6 +870,7 @@ void ContentSettingsRegistry::Init() { +@@ -841,6 +842,7 @@ void ContentSettingsRegistry::Init() { WebsiteSettingsRegistry::PLATFORM_CHROMEOS, ContentSettingsInfo::INHERIT_IN_INCOGNITO, PermissionSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY); @@ -3274,7 +3274,7 @@ diff --git a/components/content_settings/core/common/content_settings_mojom_trai diff --git a/components/content_settings/core/common/content_settings_types.mojom b/components/content_settings/core/common/content_settings_types.mojom --- a/components/content_settings/core/common/content_settings_types.mojom +++ b/components/content_settings/core/common/content_settings_types.mojom -@@ -496,5 +496,7 @@ enum ContentSettingsType { +@@ -487,5 +487,7 @@ enum ContentSettingsType { // when suspicious warning is shown. If the user has selected this, the // notification permission will not be revoked based on suspicious verdict. SUSPICIOUS_NOTIFICATION_SHOW_ORIGINAL, @@ -3421,8 +3421,8 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp +#include "components/content_settings/core/browser/website_settings_registry.h" #include "components/content_settings/core/common/content_settings.h" #include "components/content_settings/core/common/content_settings_types.h" - #include "components/content_settings/core/common/features.h" -@@ -213,6 +214,15 @@ void PageInfoControllerAndroid::SetPermissionInfo( + #include "components/content_settings/core/common/content_settings_utils.h" +@@ -210,6 +211,15 @@ void PageInfoControllerAndroid::SetPermissionInfo( } } @@ -3438,7 +3438,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp std::map user_specified_settings_to_display; -@@ -291,6 +301,14 @@ std::optional PageInfoControllerAndroid::GetSettingToDisplay( +@@ -288,6 +298,14 @@ std::optional PageInfoControllerAndroid::GetSettingToDisplay( return permission.setting; } @@ -3464,7 +3464,7 @@ diff --git a/components/page_info/page_info.cc b/components/page_info/page_info. #include "components/content_settings/browser/ui/cookie_controls_controller.h" #include "components/content_settings/core/browser/content_settings_registry.h" #include "components/content_settings/core/browser/content_settings_uma_util.h" -@@ -1393,6 +1394,14 @@ bool PageInfo::ShouldShowPermission( +@@ -1404,6 +1405,14 @@ bool PageInfo::ShouldShowPermission( } #endif // BUILDFLAG(IS_ANDROID) @@ -3479,7 +3479,7 @@ diff --git a/components/page_info/page_info.cc b/components/page_info/page_info. // Note |ContentSettingsType::ADS| will show up regardless of its default // value when it has been activated on the current origin. if (info.type == ContentSettingsType::ADS) { -@@ -1516,7 +1525,19 @@ void PageInfo::PresentSitePermissions() { +@@ -1527,7 +1536,19 @@ void PageInfo::PresentSitePermissions() { HostContentSettingsMap* content_settings = GetContentSettings(); DCHECK(web_contents_); @@ -3640,7 +3640,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context #include "third_party/blink/renderer/bindings/core/v8/sanitize_script_errors.h" #include "third_party/blink/renderer/core/core_export.h" #include "third_party/blink/renderer/core/execution_context/security_context.h" -@@ -97,6 +98,10 @@ class SecurityOrigin; +@@ -98,6 +99,10 @@ class SecurityOrigin; class ScriptState; class ScriptWrappable; class TrustedTypePolicyFactory; diff --git a/build/patches/Cromite-Branding--improve-settings-ui.patch b/build/patches/Cromite-Branding--improve-settings-ui.patch index 0fa3d0f9..fa926ddc 100644 --- a/build/patches/Cromite-Branding--improve-settings-ui.patch +++ b/build/patches/Cromite-Branding--improve-settings-ui.patch @@ -18,7 +18,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni --- a/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni -@@ -658,7 +658,7 @@ chrome_java_resources = [ +@@ -667,7 +667,7 @@ chrome_java_resources = [ "java/res/xml/manage_sync_preferences.xml", "java/res/xml/personalize_google_services_preferences.xml", "java/res/xml/incognito_preferences.xml", @@ -39,7 +39,7 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j android:order="1001" android:title="@string/prefs_section_account_and_google_services"/> 2301 bytes chrome/browser/BUILD.gn | 1 + .../browser/hub/HubToolbarMediator.java | 2 +- - .../android/res/layout/hub_toolbar_layout.xml | 82 ++++++++------- + .../android/res/layout/hub_toolbar_layout.xml | 83 +++++++++------- .../chrome/browser/omaha/UpdateConfigs.java | 2 +- chrome/browser/prefs/BUILD.gn | 1 + .../prefs/chrome_pref_service_factory.cc | 6 +- @@ -50,7 +50,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../strings/android_chrome_strings.grd | 4 +- .../toolbar/chrome_labs/chrome_labs_utils.cc | 1 + chrome/common/url_constants.h | 4 +- - .../install_static/chromium_install_modes.cc | 2 +- + .../install_static/chromium_install_modes.h | 2 +- .../strings/android/browser_ui_strings.grd | 2 +- .../drawable-hdpi/fre_product_logo.png | Bin 3912 -> 22295 bytes .../drawable-mdpi/fre_product_logo.png | Bin 2490 -> 12171 bytes @@ -69,7 +69,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html content/child/runtime_features.cc | 44 ++++----- .../Cromite-Branding.inc | 1 + tools/grit/grit/grd_reader.py | 35 +++++++ - 65 files changed, 266 insertions(+), 174 deletions(-) + 65 files changed, 266 insertions(+), 175 deletions(-) create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Cromite-Branding.inc diff --git a/build/BUILD.gn b/build/BUILD.gn @@ -107,7 +107,7 @@ diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml --- a/chrome/android/java/AndroidManifest.xml +++ b/chrome/android/java/AndroidManifest.xml -@@ -200,7 +200,7 @@ by a child template that "extends" this file. +@@ -203,7 +203,7 @@ by a child template that "extends" this file. +- android:order="2"/> ++ android:order="1002"/> @@ -9243,7 +9242,7 @@ diff --git a/chrome/app/extensions_strings.grdp b/chrome/app/extensions_strings. No description provided -@@ -542,7 +542,7 @@ +@@ -533,7 +533,7 @@ My extensions @@ -13209,7 +13208,7 @@ e)fqMZZ`3a)Ds&5H @@ -13240,11 +13239,12 @@ diff --git a/chrome/browser/hub/internal/android/res/layout/hub_toolbar_layout.x + android:layout_width="@dimen/hub_toolbar_action_button_start_margin" + android:layout_height="match_parent"/> +- - +- android:visibility="visible"/> - - @@ -13380,7 +13380,7 @@ diff --git a/chrome/browser/prefs/chrome_pref_service_factory.cc b/chrome/browse diff --git a/chrome/browser/profiles/profile_shortcut_manager_win.cc b/chrome/browser/profiles/profile_shortcut_manager_win.cc --- a/chrome/browser/profiles/profile_shortcut_manager_win.cc +++ b/chrome/browser/profiles/profile_shortcut_manager_win.cc -@@ -79,7 +79,7 @@ const int kMaxProfileShortcutFileNameLength = 64; +@@ -78,7 +78,7 @@ const int kMaxProfileShortcutFileNameLength = 64; // Incrementing this number will cause profile icons to be regenerated on // profile startup (it should be incremented whenever the product/avatar icons // change, etc). @@ -13411,7 +13411,7 @@ diff --git a/chrome/browser/resources/settings/settings_menu/settings_menu.html #menu { color: var(--google-grey-700); display: flex; -@@ -177,7 +189,7 @@ +@@ -167,7 +179,7 @@ @@ -13446,7 +13446,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.build.annotations.NullMarked; import org.chromium.chrome.browser.omnibox.OmniboxMetrics; import org.chromium.chrome.browser.omnibox.R; -@@ -112,8 +113,11 @@ public class OmniboxSuggestionsContainer extends FrameLayout { +@@ -110,8 +111,11 @@ public class OmniboxSuggestionsContainer extends FrameLayout { // Omnibox. // Making the container `clickable=true` achieves similar goal, but this consumes all // activators, including keyboard key. @@ -13459,11 +13459,11 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow + return false; } - private void maybeUpdateLayoutParams(int topMargin) { + /** 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 -@@ -2378,7 +2378,7 @@ Your Google account may have other forms of browsing history like searches and a +@@ -2393,7 +2393,7 @@ Your Google account may have other forms of browsing history like searches and a About Chrome @@ -13472,7 +13472,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro Application version -@@ -5868,7 +5868,7 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -5912,7 +5912,7 @@ To change this setting, BEGIN_LINKdelete the Chrome d @@ -13484,7 +13484,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/browser/ui/toolbar/chrome_labs/chrome_labs_utils.cc b/chrome/browser/ui/toolbar/chrome_labs/chrome_labs_utils.cc --- a/chrome/browser/ui/toolbar/chrome_labs/chrome_labs_utils.cc +++ b/chrome/browser/ui/toolbar/chrome_labs/chrome_labs_utils.cc -@@ -140,6 +140,7 @@ bool AreNewChromeLabsExperimentsAvailable(Profile* profile) { +@@ -139,6 +139,7 @@ bool AreNewChromeLabsExperimentsAvailable(Profile* profile) { } bool IsChromeLabsEnabled() { @@ -13513,22 +13513,22 @@ diff --git a/chrome/common/url_constants.h b/chrome/common/url_constants.h #if BUILDFLAG(GOOGLE_CHROME_BRANDING) // The URL for the "Clear browsing data in Chrome" help center article. -diff --git a/chrome/install_static/chromium_install_modes.cc b/chrome/install_static/chromium_install_modes.cc ---- a/chrome/install_static/chromium_install_modes.cc -+++ b/chrome/install_static/chromium_install_modes.cc -@@ -14,7 +14,7 @@ namespace install_static { +diff --git a/chrome/install_static/chromium_install_modes.h b/chrome/install_static/chromium_install_modes.h +--- a/chrome/install_static/chromium_install_modes.h ++++ b/chrome/install_static/chromium_install_modes.h +@@ -21,7 +21,7 @@ inline constexpr wchar_t kCompanyPathName[] = L""; - const wchar_t kCompanyPathName[] = L""; - --const wchar_t kProductPathName[] = L"Chromium"; -+const wchar_t kProductPathName[] = L"Cromite"; - - const size_t kProductPathNameLength = _countof(kProductPathName) - 1; + // The brand-specific product name to be included as a component of the install + // and user data directory paths. +-inline constexpr wchar_t kProductPathName[] = L"Chromium"; ++inline constexpr wchar_t kProductPathName[] = L"Cromite"; + // The brand-specific safe browsing client name. + inline constexpr char kSafeBrowsingName[] = "chromium"; diff --git a/components/browser_ui/strings/android/browser_ui_strings.grd b/components/browser_ui/strings/android/browser_ui_strings.grd --- a/components/browser_ui/strings/android/browser_ui_strings.grd +++ b/components/browser_ui/strings/android/browser_ui_strings.grd -@@ -994,7 +994,7 @@ +@@ -1003,7 +1003,7 @@ @@ -18436,7 +18436,7 @@ i?Ib$(ofrX17!1R|`h|N%TnD<%35@j2bgPM^i2nno*_EOI diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/omnibox/browser/autocomplete_controller.cc --- a/components/omnibox/browser/autocomplete_controller.cc +++ b/components/omnibox/browser/autocomplete_controller.cc -@@ -1105,6 +1105,7 @@ bool AutocompleteController::ShouldRunProvider( +@@ -1123,6 +1123,7 @@ bool AutocompleteController::ShouldRunProvider( #if BUILDFLAG(IS_ANDROID) if (omnibox::IsAndroidHub(input_.current_page_classification())) { @@ -19197,7 +19197,7 @@ diff --git a/components/webui/version/resources/about_version_mobile.css b/compo diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc --- a/content/child/runtime_features.cc +++ b/content/child/runtime_features.cc -@@ -576,19 +576,22 @@ void ResolveInvalidConfigurations() { +@@ -575,19 +575,22 @@ void ResolveInvalidConfigurations() { base::FeatureList::IsEnabled( features::kPrivacySandboxAdsAPIsM1Override)) && !base::FeatureList::IsEnabled(blink::features::kFencedFrames)) { @@ -19224,7 +19224,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. << "Fenced frames must be enabled in order to enable local " "unpartitioned " << "data access. Use --" << switches::kEnableFeatures << "=" -@@ -596,12 +599,14 @@ void ResolveInvalidConfigurations() { +@@ -595,12 +598,14 @@ void ResolveInvalidConfigurations() { WebRuntimeFeatures::EnableFeatureFromString( "FencedFramesLocalUnpartitionedDataAccess", false); } @@ -19240,7 +19240,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. << "Topics cannot be enabled in this configuration. Use --" << switches::kEnableFeatures << "=" << network::features::kBrowsingTopics.name << " in addition."; -@@ -609,30 +614,23 @@ void ResolveInvalidConfigurations() { +@@ -608,30 +613,23 @@ void ResolveInvalidConfigurations() { WebRuntimeFeatures::EnableTopicsDocumentAPI(false); WebRuntimeFeatures::EnableTopicsImgAPI(false); } else { @@ -19277,7 +19277,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. << "AttributionReporting cannot be enabled in this " "configuration. Use --" << switches::kEnableFeatures << "=" -@@ -640,23 +638,25 @@ void ResolveInvalidConfigurations() { +@@ -639,23 +637,25 @@ void ResolveInvalidConfigurations() { << " in addition."; WebRuntimeFeatures::EnableAttributionReporting(false); } diff --git a/build/patches/Customize-selection-popup.patch b/build/patches/Customize-selection-popup.patch index c6c66ecc..4e7b2a48 100644 --- a/build/patches/Customize-selection-popup.patch +++ b/build/patches/Customize-selection-popup.patch @@ -81,7 +81,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionMod diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -888,10 +888,17 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt +@@ -926,10 +926,17 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt @TabLaunchType int type, @TabCreationState int creationState, boolean markedForSelection) { @@ -106,7 +106,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/tab_activity_glue/ActivityTabWebContentsDelegateAndroid.java b/chrome/android/java/src/org/chromium/chrome/browser/app/tab_activity_glue/ActivityTabWebContentsDelegateAndroid.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/tab_activity_glue/ActivityTabWebContentsDelegateAndroid.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/tab_activity_glue/ActivityTabWebContentsDelegateAndroid.java -@@ -248,6 +248,14 @@ public class ActivityTabWebContentsDelegateAndroid extends TabWebContentsDelegat +@@ -250,6 +250,14 @@ public class ActivityTabWebContentsDelegateAndroid extends TabWebContentsDelegat // Skip opening a new Tab if it doesn't make sense. if (mTab.isClosing()) return false; @@ -118,10 +118,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/tab_activit + tabLaunchType = TabLaunchType.FROM_LONGPRESS_BACKGROUND_IN_GROUP; + } + - WindowAndroid window = mTab.getWindowAndroid(); - boolean openingPopup = - window != null -@@ -300,7 +308,7 @@ public class ActivityTabWebContentsDelegateAndroid extends TabWebContentsDelegat + if (ChromeFeatureList.isEnabled(ChromeFeatureList.DOCUMENT_PICTURE_IN_PICTURE_API) + && disposition == WindowOpenDisposition.NEW_PICTURE_IN_PICTURE) { + assertNonNull(pictureInPictureWindowOptions); +@@ -263,7 +271,7 @@ public class ActivityTabWebContentsDelegateAndroid extends TabWebContentsDelegat mTab, /* shouldPin= */ false, webContents, @@ -133,15 +133,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/tab_activit diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java -@@ -18,6 +18,7 @@ import android.view.ViewGroup; +@@ -19,6 +19,7 @@ import android.view.ViewGroup; import androidx.annotation.VisibleForTesting; import org.chromium.base.Callback; +import org.chromium.base.ContextUtils; import org.chromium.base.ObserverList; import org.chromium.base.TraceEvent; - import org.chromium.base.supplier.NonNullObservableSupplier; -@@ -249,6 +250,13 @@ public class LayoutManagerImpl + import org.chromium.base.supplier.MonotonicObservableSupplier; +@@ -250,6 +251,13 @@ public class LayoutManagerImpl != TabLaunchType .FROM_COLLABORATION_BACKGROUND_IN_GROUP) || (!getTabModelSelector().isIncognitoSelected() && incognito); @@ -176,15 +176,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java -@@ -36,6 +36,7 @@ import androidx.core.view.WindowInsetsCompat; +@@ -35,6 +35,7 @@ import androidx.core.view.WindowInsetsCompat; + import org.chromium.base.Callback; import org.chromium.base.CallbackController; - import org.chromium.base.DeviceInfo; +import org.chromium.base.ContextUtils; + import org.chromium.base.DeviceInfo; + import org.chromium.base.Log; import org.chromium.base.TraceEvent; - import org.chromium.base.lifetime.Destroyable; - import org.chromium.base.metrics.RecordUserAction; -@@ -1033,11 +1034,16 @@ public class RootUiCoordinator +@@ -1050,11 +1051,16 @@ public class RootUiCoordinator TrackerFactory.getTrackerForProfile(tab.getProfile()) .notifyEvent(EventConstants.WEB_SEARCH_PERFORMED); @@ -265,7 +265,7 @@ diff --git a/components/android_autofill/browser/java/src/org/chromium/component diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml --- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml +++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml -@@ -84,4 +84,28 @@ found in the LICENSE file. +@@ -89,4 +89,28 @@ found in the LICENSE file. android:key="disable_toolbar_swipeup" android:title="@string/disable_toolbar_swipe_up" /> @@ -390,7 +390,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select diff --git a/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java b/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java --- a/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java +++ b/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java -@@ -1115,7 +1115,7 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper +@@ -1127,7 +1127,7 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper private boolean handleAssistMenuItemClick(int order) { // Primary assist action is always the first action in the list so offset by 1. diff --git a/build/patches/Dictionary-suggestions-for-the-Omnibox.patch b/build/patches/Dictionary-suggestions-for-the-Omnibox.patch index 7011ead1..959e9934 100644 --- a/build/patches/Dictionary-suggestions-for-the-Omnibox.patch +++ b/build/patches/Dictionary-suggestions-for-the-Omnibox.patch @@ -10,9 +10,9 @@ Original License: BSD-3-Clause - https://spdx.org/licenses/BSD-3-Clause.html License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- chrome/android/java/res/layout/url_bar.xml | 1 + - .../browser/omnibox/LocationBarMediator.java | 14 ++++++++--- + .../browser/omnibox/LocationBarMediator.java | 12 +++++++++- .../chrome/browser/omnibox/UrlBar.java | 24 +++++++++++++++++++ - 3 files changed, 36 insertions(+), 3 deletions(-) + 3 files changed, 36 insertions(+), 1 deletion(-) diff --git a/chrome/android/java/res/layout/url_bar.xml b/chrome/android/java/res/layout/url_bar.xml --- a/chrome/android/java/res/layout/url_bar.xml @@ -28,12 +28,11 @@ diff --git a/chrome/android/java/res/layout/url_bar.xml b/chrome/android/java/re diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java -@@ -411,8 +411,17 @@ class LocationBarMediator +@@ -415,7 +415,17 @@ class LocationBarMediator if (!mUrlFocusedWithPastedText && !shouldRetainOmniboxOnFocus && mLocationBarLayout.shouldClearTextOnFocus()) { -- setUrlBarText( -- UrlBarData.EMPTY, UrlBar.ScrollType.NO_SCROLL, SelectionState.SELECT_END); +- setUrlBarText(UrlBarData.EMPTY, UrlBar.ScrollType.NO_SCROLL, UrlBarData.SELECT_END); + UrlBarData data = mLocationBarDataProvider.getUrlBarData(); + @SelectionState int selectionState = SelectionState.SELECT_ALL; + GURL url = mLocationBarDataProvider.getUrlBarData().url; @@ -48,14 +47,6 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow } else if (shouldRetainOmniboxOnFocus) { mUrlCoordinator.setSelectAllOnFocus(true); } -@@ -1921,7 +1930,6 @@ class LocationBarMediator - mUrlCoordinator.setKeyboardVisibility(true, false); - } - -- - // UrlBarDelegate implementation. - - @Override diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java @@ -75,7 +66,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow private boolean mPendingScroll; private boolean mIsInCct; -@@ -374,6 +376,28 @@ public class UrlBar extends AutocompleteEditText { +@@ -369,6 +371,28 @@ public class UrlBar extends AutocompleteEditText { fixupTextDirection(); mShouldSendTypingStartedEvent = focused; diff --git a/build/patches/Disable-Accessibility-service-by-default.patch b/build/patches/Disable-Accessibility-service-by-default.patch index ce09af05..6bd326c7 100644 --- a/build/patches/Disable-Accessibility-service-by-default.patch +++ b/build/patches/Disable-Accessibility-service-by-default.patch @@ -42,7 +42,7 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil diff --git a/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java b/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java --- a/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java +++ b/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java -@@ -1205,6 +1205,11 @@ public class WebContentsAccessibilityImpl extends AccessibilityNodeProviderCompa +@@ -1226,6 +1226,11 @@ public class WebContentsAccessibilityImpl extends AccessibilityNodeProviderCompa structure.setChildCount(0); return; } diff --git a/build/patches/Disable-Android-Tab-Declutter.patch b/build/patches/Disable-Android-Tab-Declutter.patch index de287a54..afb0ab93 100644 --- a/build/patches/Disable-Android-Tab-Declutter.patch +++ b/build/patches/Disable-Android-Tab-Declutter.patch @@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml --- a/chrome/android/java/res/xml/main_preferences.xml +++ b/chrome/android/java/res/xml/main_preferences.xml -@@ -97,7 +97,8 @@ found in the LICENSE file. +@@ -100,7 +100,8 @@ found in the LICENSE file. android:fragment="org.chromium.chrome.browser.tasks.tab_management.TabsSettings" android:key="tabs" android:order="18" @@ -22,8 +22,8 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j + android:title="@string/tabs_settings_title" + app:isPreferenceVisible="false"/> arena; CSSPropertyValueSet* empty_properties = ImmutableCSSPropertyValueSet::Create(base::span(), diff --git a/build/patches/Disable-CSSDynamicRangeLimit.patch b/build/patches/Disable-CSSDynamicRangeLimit.patch index 73c23e9b..ab894f77 100644 --- a/build/patches/Disable-CSSDynamicRangeLimit.patch +++ b/build/patches/Disable-CSSDynamicRangeLimit.patch @@ -15,7 +15,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -1431,7 +1431,7 @@ +@@ -1454,7 +1454,7 @@ }, { name: "CSSDynamicRangeLimit", diff --git a/build/patches/Disable-Compose-feature.patch b/build/patches/Disable-Compose-feature.patch index 66be0f42..9c58c02b 100644 --- a/build/patches/Disable-Compose-feature.patch +++ b/build/patches/Disable-Compose-feature.patch @@ -23,7 +23,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_ui.cc b/chrome/browser/ui #include "chrome/browser/history_embeddings/history_embeddings_utils.h" #include "chrome/browser/optimization_guide/optimization_guide_keyed_service.h" #include "chrome/browser/optimization_guide/optimization_guide_keyed_service_factory.h" -@@ -358,7 +360,7 @@ SettingsUI::SettingsUI(content::WebUI* web_ui) +@@ -366,7 +368,7 @@ SettingsUI::SettingsUI(content::WebUI* web_ui) base::FeatureList::IsEnabled(permissions::features::kKeyboardLockPrompt)); #if BUILDFLAG(ENABLE_COMPOSE) diff --git a/build/patches/Disable-Compression-Dictionary-Transport.patch b/build/patches/Disable-Compression-Dictionary-Transport.patch index 2e89fa59..86423137 100644 --- a/build/patches/Disable-Compression-Dictionary-Transport.patch +++ b/build/patches/Disable-Compression-Dictionary-Transport.patch @@ -12,16 +12,16 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -1449,8 +1449,7 @@ void ChromeContentBrowserClient::RegisterProfilePrefs( +@@ -1478,8 +1478,7 @@ void ChromeContentBrowserClient::RegisterProfilePrefs( registry->RegisterBooleanPref(prefs::kSandboxExternalProtocolBlocked, true); registry->RegisterBooleanPref(prefs::kSSLErrorOverrideAllowed, true); registry->RegisterListPref(prefs::kSSLErrorOverrideAllowedForOrigins); - registry->RegisterBooleanPref(prefs::kCompressionDictionaryTransportEnabled, - true); + registry->RegisterBooleanPref(prefs::kCompressionDictionaryTransportEnabled, false); - #if BUILDFLAG(ENABLE_ON_DEVICE_TRANSLATION) - registry->RegisterBooleanPref(prefs::kTranslatorAPIAllowed, true); - #endif + registry->RegisterBooleanPref( + prefs::kSuppressDifferentOriginSubframeJSDialogs, true); + #if BUILDFLAG(IS_ANDROID) diff --git a/cromite_flags/services/network/public/cpp/features_cc/Disable-Compression-Dictionary-Transport.inc b/cromite_flags/services/network/public/cpp/features_cc/Disable-Compression-Dictionary-Transport.inc new file mode 100644 --- /dev/null diff --git a/build/patches/Disable-Device-Attributes-API.patch b/build/patches/Disable-Device-Attributes-API.patch index a9353d30..3604dfe2 100644 --- a/build/patches/Disable-Device-Attributes-API.patch +++ b/build/patches/Disable-Device-Attributes-API.patch @@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/device_api/device_service_impl.cc b/chrome/browser/device_api/device_service_impl.cc --- a/chrome/browser/device_api/device_service_impl.cc +++ b/chrome/browser/device_api/device_service_impl.cc -@@ -154,6 +154,7 @@ bool IsPermissionsPolicyFeatureEnabled() { +@@ -146,6 +146,7 @@ bool IsAffiliatedUser() { bool IsTrustedContext(content::RenderFrameHost& host, const url::Origin& origin) { @@ -18,7 +18,7 @@ diff --git a/chrome/browser/device_api/device_service_impl.cc b/chrome/browser/d // Do not create the service for the incognito mode. if (GetProfile(host)->IsIncognitoProfile()) { return false; -@@ -349,6 +350,10 @@ void DeviceServiceImpl::GetAnnotatedLocation( +@@ -322,6 +323,10 @@ void DeviceServiceImpl::GetAnnotatedLocation( void DeviceServiceImpl::GetDeviceAttribute( void (DeviceAttributeApi::*method)(DeviceAttributeCallback callback), DeviceAttributeCallback callback) { @@ -26,7 +26,7 @@ diff --git a/chrome/browser/device_api/device_service_impl.cc b/chrome/browser/d + device_attribute_api_->ReportNotAllowedError(std::move(callback)); + return; + } - if (!IsAffiliatedUser()) { + if (!IsAffiliatedUser() && + !IsDevModeInstalledIwaOrigin(render_frame_host(), origin())) { device_attribute_api_->ReportNotAffiliatedError(std::move(callback)); - return; -- diff --git a/build/patches/Disable-FedCm.patch b/build/patches/Disable-FedCm.patch index 078d4cda..e702855e 100644 --- a/build/patches/Disable-FedCm.patch +++ b/build/patches/Disable-FedCm.patch @@ -47,7 +47,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -2316,7 +2316,7 @@ +@@ -2373,7 +2373,7 @@ { name: "FedCm", public: true, diff --git a/build/patches/Disable-GetInstalledRelatedApps-API.patch b/build/patches/Disable-GetInstalledRelatedApps-API.patch index 69bbfa73..3e30891e 100644 --- a/build/patches/Disable-GetInstalledRelatedApps-API.patch +++ b/build/patches/Disable-GetInstalledRelatedApps-API.patch @@ -58,7 +58,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -3080,9 +3080,8 @@ +@@ -3161,9 +3161,8 @@ status: "stable", }, { diff --git a/build/patches/Disable-PrivacyGuide.patch b/build/patches/Disable-PrivacyGuide.patch index 65dba78d..e2eca9ce 100644 --- a/build/patches/Disable-PrivacyGuide.patch +++ b/build/patches/Disable-PrivacyGuide.patch @@ -22,7 +22,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/browser/ui/webui/settings/settings_ui.cc b/chrome/browser/ui/webui/settings/settings_ui.cc --- a/chrome/browser/ui/webui/settings/settings_ui.cc +++ b/chrome/browser/ui/webui/settings/settings_ui.cc -@@ -335,8 +335,7 @@ SettingsUI::SettingsUI(content::WebUI* web_ui) +@@ -343,8 +343,7 @@ SettingsUI::SettingsUI(content::WebUI* web_ui) #endif // BUILDFLAG(IS_CHROMEOS) bool show_privacy_guide = diff --git a/build/patches/Disable-Real-Box.patch b/build/patches/Disable-Real-Box.patch index 33f2ecea..7d65bd76 100644 --- a/build/patches/Disable-Real-Box.patch +++ b/build/patches/Disable-Real-Box.patch @@ -13,7 +13,7 @@ Real-box is search box in ntp diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc -@@ -2031,7 +2031,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -2091,7 +2091,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, registry->RegisterBooleanPref( prefs::kLensRegionSearchEnabled, true, user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); @@ -64,7 +64,7 @@ diff --git a/chrome/browser/ui/webui/cr_components/searchbox/searchbox_handler.c diff --git a/components/search/ntp_features.cc b/components/search/ntp_features.cc --- a/components/search/ntp_features.cc +++ b/components/search/ntp_features.cc -@@ -108,7 +108,7 @@ BASE_FEATURE(kNtpDriveModuleShowSixFiles, base::FEATURE_ENABLED_BY_DEFAULT); +@@ -97,7 +97,7 @@ BASE_FEATURE(kNtpDriveModuleSegmentation, base::FEATURE_DISABLED_BY_DEFAULT); // If enabled, logo will be shown. // This is a kill switch. Keep indefinitely. @@ -73,7 +73,7 @@ diff --git a/components/search/ntp_features.cc b/components/search/ntp_features. // If enabled, middle slot promo will be shown. // This is a kill switch. Keep indefinitely. -@@ -150,7 +150,7 @@ BASE_FEATURE(kNtpModuleSignInRequirement, base::FEATURE_ENABLED_BY_DEFAULT); +@@ -139,7 +139,7 @@ BASE_FEATURE(kNtpModuleSignInRequirement, base::FEATURE_ENABLED_BY_DEFAULT); // If enabled, OneGoogleBar will be shown. // This is a kill switch. Keep indefinitely. diff --git a/build/patches/Disable-Sticky-User-Activation-Across-Same-Origin-Navigation.patch b/build/patches/Disable-Sticky-User-Activation-Across-Same-Origin-Navigation.patch index 0696240a..cc708909 100644 --- a/build/patches/Disable-Sticky-User-Activation-Across-Same-Origin-Navigation.patch +++ b/build/patches/Disable-Sticky-User-Activation-Across-Same-Origin-Navigation.patch @@ -14,7 +14,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -5072,8 +5072,8 @@ +@@ -5202,8 +5202,8 @@ { // Preserves the sticky user activation state after a page navigates to // another same-origin page. https://crbug.com/433729626 diff --git a/build/patches/Disable-TLS-resumption.patch b/build/patches/Disable-TLS-resumption.patch index 45100e3e..a0475038 100644 --- a/build/patches/Disable-TLS-resumption.patch +++ b/build/patches/Disable-TLS-resumption.patch @@ -90,7 +90,7 @@ diff --git a/net/http/http_network_session.cc b/net/http/http_network_session.cc diff --git a/net/quic/quic_session_pool.cc b/net/quic/quic_session_pool.cc --- a/net/quic/quic_session_pool.cc +++ b/net/quic/quic_session_pool.cc -@@ -381,6 +381,38 @@ base::TimeDelta GetAdditionalDelayForMainJob() { +@@ -380,6 +380,38 @@ base::TimeDelta GetAdditionalDelayForMainJob() { } // namespace @@ -175,7 +175,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket Disconnect(); } -@@ -711,6 +737,8 @@ int SSLClientSocketImpl::Init() { +@@ -710,6 +736,8 @@ int SSLClientSocketImpl::Init() { } if (session) SSL_set_session(ssl_.get(), session.get()); @@ -184,7 +184,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket } transport_adapter_ = std::make_unique( -@@ -988,6 +1016,35 @@ int SSLClientSocketImpl::DoHandshakeComplete(int result) { +@@ -994,6 +1022,35 @@ int SSLClientSocketImpl::DoHandshakeComplete(int result) { : SSLHandshakeDetails::kTLS13Full; } } @@ -220,7 +220,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket UMA_HISTOGRAM_ENUMERATION("Net.SSLHandshakeDetails", details); // Measure TLS connections that implement the renegotiation_info and EMS -@@ -1627,6 +1684,8 @@ bool SSLClientSocketImpl::IsRenegotiationAllowed() const { +@@ -1624,6 +1681,8 @@ bool SSLClientSocketImpl::IsRenegotiationAllowed() const { } bool SSLClientSocketImpl::IsCachingEnabled() const { diff --git a/build/patches/Disable-Viewport-Segments.patch b/build/patches/Disable-Viewport-Segments.patch index 7bf7f824..b8f4890f 100644 --- a/build/patches/Disable-Viewport-Segments.patch +++ b/build/patches/Disable-Viewport-Segments.patch @@ -21,7 +21,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -5695,8 +5695,7 @@ +@@ -5829,8 +5829,7 @@ status: "stable", }, { diff --git a/build/patches/Disable-WebGPU.patch b/build/patches/Disable-WebGPU.patch index 71448dac..aca14c05 100644 --- a/build/patches/Disable-WebGPU.patch +++ b/build/patches/Disable-WebGPU.patch @@ -12,7 +12,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc --- a/content/child/runtime_features.cc +++ b/content/child/runtime_features.cc -@@ -555,6 +555,8 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs( +@@ -554,6 +554,8 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs( WebRuntimeFeatures::EnableRemotePlayback(false); @@ -24,7 +24,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc --- a/gpu/config/gpu_finch_features.cc +++ b/gpu/config/gpu_finch_features.cc -@@ -190,7 +190,7 @@ BASE_FEATURE(kEnableDrDc, +@@ -201,7 +201,7 @@ BASE_FEATURE(kEnableDrDc, // enabled by default on supported platforms. #if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS) || \ BUILDFLAG(IS_ANDROID) || BUILDFLAG(USE_WEBGPU_ON_VULKAN_VIA_GL_INTEROP) diff --git a/build/patches/Disable-all-predictors-code.patch b/build/patches/Disable-all-predictors-code.patch index e6e5c8e8..82d2fd31 100644 --- a/build/patches/Disable-all-predictors-code.patch +++ b/build/patches/Disable-all-predictors-code.patch @@ -97,7 +97,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -718,8 +718,6 @@ static_library("browser") { +@@ -698,8 +698,6 @@ static_library("browser") { "navigation_predictor/navigation_predictor_keyed_service_factory.h", "navigation_predictor/navigation_predictor_metrics_document_data.cc", "navigation_predictor/navigation_predictor_metrics_document_data.h", @@ -106,7 +106,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "navigation_predictor/preloading_model_keyed_service.cc", "navigation_predictor/preloading_model_keyed_service.h", "navigation_predictor/preloading_model_keyed_service_factory.cc", -@@ -2329,7 +2327,6 @@ static_library("browser") { +@@ -2311,7 +2309,6 @@ static_library("browser") { "//components/resources", "//components/safe_browsing/content/browser", "//components/safe_browsing/content/browser:safe_browsing_service", @@ -229,7 +229,7 @@ diff --git a/chrome/browser/optimization_guide/model_validator_keyed_service.cc 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 -@@ -422,7 +422,6 @@ void OptimizationGuideKeyedService::RemoveObserverForOptimizationTargetModel( +@@ -438,7 +438,6 @@ void OptimizationGuideKeyedService::RemoveObserverForOptimizationTargetModel( void OptimizationGuideKeyedService::RegisterOptimizationTypes( const std::vector& optimization_types) { @@ -240,7 +240,7 @@ diff --git a/chrome/browser/optimization_guide/optimization_guide_keyed_service. diff --git a/chrome/browser/password_manager/password_change_delegate_impl.cc b/chrome/browser/password_manager/password_change_delegate_impl.cc --- a/chrome/browser/password_manager/password_change_delegate_impl.cc +++ b/chrome/browser/password_manager/password_change_delegate_impl.cc -@@ -354,12 +354,14 @@ void PasswordChangeDelegateImpl::StartPasswordChangeFlow() { +@@ -343,12 +343,14 @@ void PasswordChangeDelegateImpl::StartPasswordChangeFlow() { // a local ML model for field classification. // TODO(452883239): Clean this up when model is downloaded on start-up for // everybody. @@ -270,7 +270,7 @@ diff --git a/chrome/browser/permissions/BUILD.gn b/chrome/browser/permissions/BU diff --git a/chrome/browser/permissions/chrome_permissions_client.cc b/chrome/browser/permissions/chrome_permissions_client.cc --- a/chrome/browser/permissions/chrome_permissions_client.cc +++ b/chrome/browser/permissions/chrome_permissions_client.cc -@@ -475,8 +475,6 @@ ChromePermissionsClient::CreatePermissionUiSelectors( +@@ -477,8 +477,6 @@ ChromePermissionsClient::CreatePermissionUiSelectors( #endif selectors.emplace_back(std::make_unique( Profile::FromBrowserContext(browser_context))); @@ -495,7 +495,7 @@ diff --git a/chrome/browser/predictors/predictors_features.cc b/chrome/browser/p diff --git a/chrome/browser/preloading/prefetch/search_prefetch/field_trial_settings.cc b/chrome/browser/preloading/prefetch/search_prefetch/field_trial_settings.cc --- a/chrome/browser/preloading/prefetch/search_prefetch/field_trial_settings.cc +++ b/chrome/browser/preloading/prefetch/search_prefetch/field_trial_settings.cc -@@ -148,3 +148,7 @@ const base::FeatureParam +@@ -202,3 +202,7 @@ const base::FeatureParam kSuppressesSearchPrefetchOnSlowNetworkThreshold{ &kSuppressesSearchPrefetchOnSlowNetwork, "slow_network_threshold_for_search_prefetch", base::Milliseconds(208)}; @@ -517,7 +517,7 @@ diff --git a/chrome/browser/preloading/prefetch/search_prefetch/search_prefetch_ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc -@@ -1208,7 +1208,6 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -1221,7 +1221,6 @@ void ChromeBrowserMainExtraPartsProfiles:: #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) policy::UserPolicyOidcSigninServiceFactory::GetInstance(); #endif @@ -587,7 +587,7 @@ diff --git a/chrome/browser/ui/android/preloading/java/src/org/chromium/chrome/b diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.cc b/chrome/browser/ui/autofill/chrome_autofill_client.cc --- a/chrome/browser/ui/autofill/chrome_autofill_client.cc +++ b/chrome/browser/ui/autofill/chrome_autofill_client.cc -@@ -566,7 +566,7 @@ void ChromeAutofillClient::GetAiPageContent(GetAiPageContentCallback callback) { +@@ -572,7 +572,7 @@ void ChromeAutofillClient::GetAiPageContent(GetAiPageContentCallback callback) { } AutofillAiManager* ChromeAutofillClient::GetAutofillAiManager() { @@ -596,7 +596,7 @@ diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.cc b/chrome/brows } AutofillAiModelCache* ChromeAutofillClient::GetAutofillAiModelCache() { -@@ -1396,18 +1396,7 @@ void ChromeAutofillClient::TriggerPlusAddressUserPerceptionSurvey( +@@ -1404,18 +1404,7 @@ void ChromeAutofillClient::TriggerPlusAddressUserPerceptionSurvey( optimization_guide::ModelQualityLogsUploaderService* ChromeAutofillClient::GetMqlsUploadService() { @@ -618,7 +618,7 @@ diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.cc b/chrome/brows diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc --- a/chrome/browser/ui/tab_helpers.cc +++ b/chrome/browser/ui/tab_helpers.cc -@@ -458,7 +458,6 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -459,7 +459,6 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { } MixedContentSettingsTabHelper::CreateForWebContents(web_contents); NavigationMetricsRecorder::CreateForWebContents(web_contents); @@ -812,7 +812,7 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_aloud_app_model.h diff --git a/chrome/renderer/accessibility/read_anything/read_anything_app_controller.cc b/chrome/renderer/accessibility/read_anything/read_anything_app_controller.cc --- a/chrome/renderer/accessibility/read_anything/read_anything_app_controller.cc +++ b/chrome/renderer/accessibility/read_anything/read_anything_app_controller.cc -@@ -26,7 +26,9 @@ +@@ -27,7 +27,9 @@ #include "build/build_config.h" #include "chrome/common/read_anything/read_anything_util.h" #include "chrome/renderer/accessibility/ax_tree_distiller.h" @@ -822,7 +822,7 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_anything_app_contr #include "chrome/renderer/accessibility/read_anything/read_aloud_traversal_utils.h" #include "chrome/renderer/accessibility/read_anything/read_anything_app_model.h" #include "chrome/renderer/accessibility/read_anything/read_anything_node_utils.h" -@@ -1928,6 +1930,7 @@ void ReadAnythingAppController::OnConnected() { +@@ -2103,6 +2105,7 @@ void ReadAnythingAppController::OnConnected() { render_frame()->GetBrowserInterfaceBroker().GetInterface( std::move(page_handler_factory_receiver)); @@ -830,15 +830,15 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_anything_app_contr // Get the dependency parser model used by phrase-based highlighting. if (read_aloud_model_.GetDependencyParserModel().IsAvailable()) { return; -@@ -1936,6 +1939,7 @@ void ReadAnythingAppController::OnConnected() { +@@ -2111,6 +2114,7 @@ void ReadAnythingAppController::OnConnected() { page_handler_->GetDependencyParserModel( base::BindOnce(&ReadAnythingAppController::UpdateDependencyParserModel, weak_ptr_factory_.GetWeakPtr())); +#endif + SetDistillationState( + read_anything::mojom::ReadAnythingDistillationState::kNotAttempted); } - - void ReadAnythingAppController::OnCopy() const { -@@ -2192,8 +2196,10 @@ std::u16string ReadAnythingAppController::GetCurrentTextContent() { +@@ -2372,8 +2376,10 @@ std::u16string ReadAnythingAppController::GetCurrentTextContent() { } void ReadAnythingAppController::PreprocessTextForSpeech() { @@ -849,7 +849,7 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_anything_app_contr } void ReadAnythingAppController::MovePositionToNextGranularity() { -@@ -2536,14 +2542,18 @@ bool ReadAnythingAppController::IsDocsLoadMoreButtonVisible() const { +@@ -2721,14 +2727,18 @@ bool ReadAnythingAppController::IsDocsLoadMoreButtonVisible() const { void ReadAnythingAppController::UpdateDependencyParserModel( base::File model_file) { @@ -880,8 +880,8 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_anything_app_contr +#endif class ReadAnythingAppControllerTest; class ReadAnythingAppControllerScreen2xDataCollectionModeTest; - -@@ -339,7 +341,9 @@ class ReadAnythingAppController + class ReadAnythingAppControllerReadabilityTest; +@@ -365,7 +367,9 @@ class ReadAnythingAppController // available. void UpdateDependencyParserModel(base::File model_file); @@ -894,7 +894,7 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_anything_app_contr diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn -@@ -5846,8 +5846,6 @@ if (!is_android) { +@@ -5902,8 +5902,6 @@ if (!is_android) { "//chrome/browser/ui/exclusive_access:test_support", "//chrome/browser/ui/hats", "//components/safe_browsing/content/browser:safe_browsing_blocking_page", @@ -918,7 +918,7 @@ diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn diff --git a/chrome/utility/services.cc b/chrome/utility/services.cc --- a/chrome/utility/services.cc +++ b/chrome/utility/services.cc -@@ -242,13 +242,6 @@ auto RunMirroringService( +@@ -251,13 +251,6 @@ auto RunMirroringService( #endif // !BUILDFLAG(IS_ANDROID) @@ -932,7 +932,7 @@ diff --git a/chrome/utility/services.cc b/chrome/utility/services.cc #if BUILDFLAG(ENABLE_BROWSER_SPEECH_SERVICE) auto RunSpeechRecognitionService( mojo::PendingReceiver receiver) { -@@ -436,7 +429,6 @@ void RegisterMainThreadServices(mojo::ServiceFactory& services) { +@@ -445,7 +438,6 @@ void RegisterMainThreadServices(mojo::ServiceFactory& services) { services.Add(RunUnzipper); services.Add(RunCSVPasswordParser); services.Add(ContentBookmarkParser); @@ -943,7 +943,7 @@ diff --git a/chrome/utility/services.cc b/chrome/utility/services.cc diff --git a/components/BUILD.gn b/components/BUILD.gn --- a/components/BUILD.gn +++ b/components/BUILD.gn -@@ -630,7 +630,7 @@ test("components_unittests") { +@@ -627,7 +627,7 @@ test("components_unittests") { "//components/media_router/common/providers/cast/channel:unit_tests", "//components/one_time_tokens/core/browser:unit_tests", "//components/page_info:unit_tests", @@ -955,7 +955,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn diff --git a/components/autofill/core/browser/foundations/autofill_manager.cc b/components/autofill/core/browser/foundations/autofill_manager.cc --- a/components/autofill/core/browser/foundations/autofill_manager.cc +++ b/components/autofill/core/browser/foundations/autofill_manager.cc -@@ -136,8 +136,10 @@ struct AutofillManager::AsyncContext { +@@ -140,8 +140,10 @@ struct AutofillManager::AsyncContext { std::vector forms; std::vector regex_predictions; @@ -966,7 +966,7 @@ diff --git a/components/autofill/core/browser/foundations/autofill_manager.cc b/ GeoIpCountryCode country_code; LanguageCode current_page_language; std::unique_ptr log_manager; -@@ -903,12 +905,14 @@ void AutofillManager::UpdateFormCache( +@@ -1027,12 +1029,14 @@ void AutofillManager::UpdateFormCache( auto apply_predictions = [](FormStructure& form_structure, const AsyncContext& context, size_t i) { @@ -981,7 +981,7 @@ diff --git a/components/autofill/core/browser/foundations/autofill_manager.cc b/ if (!context.regex_predictions.empty()) { context.regex_predictions[i].ApplyTo(form_structure.fields()); } -@@ -1022,6 +1026,7 @@ void AutofillManager::LogCurrentFieldTypes( +@@ -1148,6 +1152,7 @@ void AutofillManager::LogCurrentFieldTypes( } } @@ -989,7 +989,7 @@ diff --git a/components/autofill/core/browser/foundations/autofill_manager.cc b/ void AutofillManager::SubscribeToMlModelChanges( FieldClassificationModelHandler& handler) { switch (handler.optimization_target()) { -@@ -1045,5 +1050,6 @@ void AutofillManager::SubscribeToMlModelChanges( +@@ -1171,5 +1176,6 @@ void AutofillManager::SubscribeToMlModelChanges( NOTREACHED(); } } @@ -999,7 +999,7 @@ diff --git a/components/autofill/core/browser/foundations/autofill_manager.cc b/ diff --git a/components/autofill/core/browser/foundations/autofill_manager.h b/components/autofill/core/browser/foundations/autofill_manager.h --- a/components/autofill/core/browser/foundations/autofill_manager.h +++ b/components/autofill/core/browser/foundations/autofill_manager.h -@@ -38,6 +38,7 @@ +@@ -39,6 +39,7 @@ #include "components/autofill/core/common/mojom/autofill_types.mojom.h" #include "components/autofill/core/common/signatures.h" #include "components/autofill/core/common/unique_ids.h" @@ -1007,7 +1007,7 @@ diff --git a/components/autofill/core/browser/foundations/autofill_manager.h b/c #include "components/translate/core/browser/translate_driver.h" namespace autofill { -@@ -378,10 +379,12 @@ class AutofillManager +@@ -375,10 +376,12 @@ class AutofillManager // Reparses all known forms. void ReparseKnownForms(); @@ -1023,7 +1023,7 @@ diff --git a/components/autofill/core/browser/foundations/autofill_manager.h b/c diff --git a/components/autofill/core/browser/integrators/optimization_guide/autofill_optimization_guide_decider.cc b/components/autofill/core/browser/integrators/optimization_guide/autofill_optimization_guide_decider.cc --- a/components/autofill/core/browser/integrators/optimization_guide/autofill_optimization_guide_decider.cc +++ b/components/autofill/core/browser/integrators/optimization_guide/autofill_optimization_guide_decider.cc -@@ -284,6 +284,7 @@ void AutofillOptimizationGuideDecider::OnPaymentsDataLoaded( +@@ -282,6 +282,7 @@ void AutofillOptimizationGuideDecider::OnPaymentsDataLoaded( // If we do not have any optimization types to register, do not do anything. if (!optimization_types.empty()) { @@ -1031,7 +1031,7 @@ diff --git a/components/autofill/core/browser/integrators/optimization_guide/aut decider_->RegisterOptimizationTypes( std::vector( std::move(optimization_types).extract())); -@@ -388,7 +389,7 @@ bool AutofillOptimizationGuideDecider::ShouldBlockSingleFieldSuggestions( +@@ -386,7 +387,7 @@ bool AutofillOptimizationGuideDecider::ShouldBlockSingleFieldSuggestions( const AutofillField* field) const { // If the field's storable type is `IBAN_VALUE`, check whether IBAN // suggestions should be blocked based on `url`. @@ -1040,7 +1040,7 @@ diff --git a/components/autofill/core/browser/integrators/optimization_guide/aut optimization_guide::OptimizationGuideDecision decision = decider_->CanApplyOptimization( url, optimization_guide::proto::IBAN_AUTOFILL_BLOCKED, -@@ -414,7 +415,7 @@ bool AutofillOptimizationGuideDecider::ShouldBlockFormFieldSuggestion( +@@ -412,7 +413,7 @@ bool AutofillOptimizationGuideDecider::ShouldBlockFormFieldSuggestion( const CreditCard& card) const { if (auto optimization_type = GetVcnMerchantOptOutOptimizationTypeForCard(card); @@ -1052,7 +1052,7 @@ diff --git a/components/autofill/core/browser/integrators/optimization_guide/aut diff --git a/components/autofill/core/browser/ml_model/field_classification_model_handler.cc b/components/autofill/core/browser/ml_model/field_classification_model_handler.cc --- a/components/autofill/core/browser/ml_model/field_classification_model_handler.cc +++ b/components/autofill/core/browser/ml_model/field_classification_model_handler.cc -@@ -101,8 +101,7 @@ bool ParsingSupportsMultipleFieldsOfType(FieldType type) { +@@ -102,8 +102,7 @@ bool ParsingSupportsMultipleFieldsOfType(FieldType type) { FieldClassificationModelHandler::FieldClassificationModelHandler( optimization_guide::OptimizationGuideModelProvider* model_provider, @@ -1062,7 +1062,7 @@ diff --git a/components/autofill/core/browser/ml_model/field_classification_mode : optimization_guide::ModelHandler< FieldClassificationModelEncoder::ModelOutput, const FieldClassificationModelEncoder::ModelInput&>( -@@ -114,8 +113,7 @@ FieldClassificationModelHandler::FieldClassificationModelHandler( +@@ -115,8 +114,7 @@ FieldClassificationModelHandler::FieldClassificationModelHandler( optimization_target, CreateModelMetadata()), optimization_target_(optimization_target), @@ -1072,7 +1072,7 @@ diff --git a/components/autofill/core/browser/ml_model/field_classification_mode // Store the model in memory as soon as it is available and keep it loaded for // the whole browser session since we query predictions very regularly. // TODO(crbug.com/40276177): Maybe change both back to default behavior if we -@@ -166,6 +164,7 @@ void FieldClassificationModelHandler::ApplySmallFormRules( +@@ -167,6 +165,7 @@ void FieldClassificationModelHandler::ApplySmallFormRules( } } @@ -1080,7 +1080,7 @@ diff --git a/components/autofill/core/browser/ml_model/field_classification_mode autofill_ml_internals::mojom::MlPredictionLogPtr FieldClassificationModelHandler::CreateMlPredictionLog( const FormData& form) const { -@@ -238,6 +237,7 @@ FieldClassificationModelHandler::CreateMlPredictionLog( +@@ -239,6 +238,7 @@ FieldClassificationModelHandler::CreateMlPredictionLog( prediction_log->start_time = base::Time::Now(); return prediction_log; } @@ -1088,7 +1088,7 @@ diff --git a/components/autofill/core/browser/ml_model/field_classification_mode void PopulateMlPredictionLogAfterInference( autofill_ml_internals::mojom::MlPredictionLog& prediction_log, -@@ -267,9 +267,11 @@ void FieldClassificationModelHandler::GetModelPredictionsForForm( +@@ -268,9 +268,11 @@ void FieldClassificationModelHandler::GetModelPredictionsForForm( std::optional prediction_log = std::nullopt; @@ -1100,7 +1100,7 @@ diff --git a/components/autofill/core/browser/ml_model/field_classification_mode FieldClassificationModelEncoder::ModelInput encoded_input = state_->encoder.EncodeForm(form); -@@ -335,11 +337,13 @@ void FieldClassificationModelHandler::GetModelPredictionsForForm( +@@ -336,11 +338,13 @@ void FieldClassificationModelHandler::GetModelPredictionsForForm( predicted_types); } } @@ -1174,7 +1174,7 @@ diff --git a/components/omnibox/browser/aim_eligibility_service_features.cc b/co diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/omnibox/browser/autocomplete_controller.cc --- a/components/omnibox/browser/autocomplete_controller.cc +++ b/components/omnibox/browser/autocomplete_controller.cc -@@ -52,7 +52,9 @@ +@@ -53,7 +53,9 @@ #include "components/omnibox/browser/autocomplete_match.h" #include "components/omnibox/browser/autocomplete_match_type.h" #include "components/omnibox/browser/autocomplete_provider.h" @@ -1184,7 +1184,7 @@ diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/ #include "components/omnibox/browser/autocomplete_scoring_signals_annotator.h" #include "components/omnibox/browser/bookmark_provider.h" #include "components/omnibox/browser/bookmark_scoring_signals_annotator.h" -@@ -127,6 +129,7 @@ using ProviderType = AutocompleteProvider::Type; +@@ -128,6 +130,7 @@ using ProviderType = AutocompleteProvider::Type; constexpr bool is_android = !!BUILDFLAG(IS_ANDROID); @@ -1192,7 +1192,7 @@ diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/ void RecordMlScoreCoverage(size_t matches_with_non_null_scores, size_t total_scored_matches) { int percent_score_coverage = -@@ -235,6 +238,7 @@ void RecordTotalMatchesScored(size_t num_scored) { +@@ -236,6 +239,7 @@ void RecordTotalMatchesScored(size_t num_scored) { base::UmaHistogramCounts1000("Omnibox.URLScoringModelExecuted.Matches", num_scored); } @@ -1299,7 +1299,7 @@ diff --git a/components/optimization_guide/core/hints/hints_manager.cc b/compone diff --git a/components/optimization_guide/core/optimization_guide_features.cc b/components/optimization_guide/core/optimization_guide_features.cc --- a/components/optimization_guide/core/optimization_guide_features.cc +++ b/components/optimization_guide/core/optimization_guide_features.cc -@@ -40,11 +40,7 @@ namespace features { +@@ -42,11 +42,7 @@ namespace features { namespace { constexpr auto enabled_by_default_mobile_only = @@ -1311,7 +1311,7 @@ diff --git a/components/optimization_guide/core/optimization_guide_features.cc b } // namespace -@@ -253,8 +249,7 @@ size_t MaxHostKeyedHintCacheSize() { +@@ -279,8 +275,7 @@ size_t MaxHostKeyedHintCacheSize() { } bool ShouldPersistHintsToDisk() { @@ -1321,7 +1321,7 @@ diff --git a/components/optimization_guide/core/optimization_guide_features.cc b } RequestContextSet GetAllowedContextsForPersonalizedMetadata() { -@@ -602,5 +597,9 @@ std::optional GetMainFrameGetAIPageContentTimeout() { +@@ -641,5 +636,9 @@ std::optional GetMainFrameGetAIPageContentTimeout() { return kGetAIPageContentMainFrameTimeoutParam.Get(); } @@ -1347,7 +1347,7 @@ diff --git a/components/optimization_guide/features.gni b/components/optimizatio diff --git a/components/page_content_annotations/core/page_content_annotations_features.cc b/components/page_content_annotations/core/page_content_annotations_features.cc --- a/components/page_content_annotations/core/page_content_annotations_features.cc +++ b/components/page_content_annotations/core/page_content_annotations_features.cc -@@ -55,6 +55,7 @@ const base::FeatureParam kPageContentExtractionTriggeringMode{ +@@ -56,6 +56,7 @@ const base::FeatureParam kPageContentExtractionTriggeringMode{ bool IsSupportedLocale(const std::string& locale, const std::string& supported_locales) { @@ -1355,7 +1355,7 @@ diff --git a/components/page_content_annotations/core/page_content_annotations_f if (supported_locales == "*") { return true; } -@@ -74,6 +75,7 @@ bool IsSupportedLocale(const std::string& locale, +@@ -75,6 +76,7 @@ bool IsSupportedLocale(const std::string& locale, bool IsSupportedCountry(const std::string& country_code, const std::string& supported_countries) { @@ -1363,7 +1363,7 @@ diff --git a/components/page_content_annotations/core/page_content_annotations_f if (supported_countries == "*") { return true; } -@@ -273,6 +275,7 @@ bool IsSupportedLocaleForFeature( +@@ -274,6 +276,7 @@ bool IsSupportedLocaleForFeature( const std::string& locale, const base::Feature& feature, const std::string& default_value = "de,en,es,fr,it,nl,pt,tr") { @@ -1371,7 +1371,7 @@ diff --git a/components/page_content_annotations/core/page_content_annotations_f if (!base::FeatureList::IsEnabled(feature)) { return false; } -@@ -290,6 +293,7 @@ bool IsSupportedLocaleForFeature( +@@ -291,6 +294,7 @@ bool IsSupportedLocaleForFeature( bool IsSupportedCountryForFeature(const std::string& country_code, const base::Feature& feature, const std::string& default_value) { @@ -1379,7 +1379,7 @@ diff --git a/components/page_content_annotations/core/page_content_annotations_f if (!base::FeatureList::IsEnabled(feature)) { return false; } -@@ -304,4 +308,7 @@ bool IsSupportedCountryForFeature(const std::string& country_code, +@@ -305,4 +309,7 @@ bool IsSupportedCountryForFeature(const std::string& country_code, return IsSupportedCountry(country_code, value); } @@ -1401,7 +1401,7 @@ diff --git a/components/page_content_annotations/core/page_content_annotations_m diff --git a/components/safe_browsing/content/browser/client_side_phishing_model.cc b/components/safe_browsing/content/browser/client_side_phishing_model.cc --- a/components/safe_browsing/content/browser/client_side_phishing_model.cc +++ b/components/safe_browsing/content/browser/client_side_phishing_model.cc -@@ -466,7 +466,7 @@ void ClientSidePhishingModel::OnImageEmbeddingModelFileAndEmbeddingListLoaded( +@@ -486,7 +486,7 @@ void ClientSidePhishingModel::OnImageEmbeddingModelFileAndEmbeddingListLoaded( model_metadata.value()); } @@ -1410,7 +1410,7 @@ diff --git a/components/safe_browsing/content/browser/client_side_phishing_model if (image_embedding_model_metadata.has_value()) { embedding_model_opt_guide_metadata_image_embedding_version_ = image_embedding_model_metadata->image_embedding_model_version(); -@@ -490,9 +490,9 @@ void ClientSidePhishingModel::OnImageEmbeddingModelFileAndEmbeddingListLoaded( +@@ -510,9 +510,9 @@ void ClientSidePhishingModel::OnImageEmbeddingModelFileAndEmbeddingListLoaded( embedding_list_version_num); } } @@ -1438,7 +1438,7 @@ diff --git a/components/safe_browsing/content/browser/notification_content_detec diff --git a/components/viz/service/BUILD.gn b/components/viz/service/BUILD.gn --- a/components/viz/service/BUILD.gn +++ b/components/viz/service/BUILD.gn -@@ -315,8 +315,8 @@ viz_component("service") { +@@ -316,8 +316,8 @@ viz_component("service") { "//services/metrics/public/mojom", "//services/tracing/public/cpp", "//services/viz/privileged/mojom", @@ -1452,8 +1452,8 @@ diff --git a/components/viz/service/BUILD.gn b/components/viz/service/BUILD.gn diff --git a/components/viz/service/gl/gpu_service_impl.cc b/components/viz/service/gl/gpu_service_impl.cc --- a/components/viz/service/gl/gpu_service_impl.cc +++ b/components/viz/service/gl/gpu_service_impl.cc -@@ -663,24 +663,6 @@ void GpuServiceImpl::BindWebNNContextProvider( - std::move(pending_receiver), client_id)); +@@ -652,24 +652,6 @@ void GpuServiceImpl::BindWebNNContextProvider( + std::move(pending_receiver), client_id, is_incognito)); return; } - @@ -1469,18 +1469,18 @@ diff --git a/components/viz/service/gl/gpu_service_impl.cc b/components/viz/serv - std::move(shared_context_state), gpu_feature_info_, gpu_info_, - shared_image_manager(), - base::BindOnce(&GpuServiceImpl::LoseAllContexts, weak_ptr_), -- main_runner(), GetGpuScheduler(), client_id, gpu_host_); +- main_runner(), GetGpuScheduler(), gpu_host_); - } - -- webnn_context_provider_->BindWebNNContextProvider( -- std::move(pending_receiver)); +- webnn_context_provider_->BindWebNNContextProvider(std::move(pending_receiver), +- {is_incognito, client_id}); } void GpuServiceImpl::GetVideoMemoryUsageStats( diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn --- a/content/browser/BUILD.gn +++ b/content/browser/BUILD.gn -@@ -271,9 +271,9 @@ source_set("browser") { +@@ -272,9 +272,9 @@ source_set("browser") { "//services/viz/public/cpp/gpu", "//services/viz/public/mojom", "//services/webnn:buildflags", @@ -1652,7 +1652,7 @@ diff --git a/services/on_device_model/safety/BUILD.gn b/services/on_device_model diff --git a/services/webnn/BUILD.gn b/services/webnn/BUILD.gn --- a/services/webnn/BUILD.gn +++ b/services/webnn/BUILD.gn -@@ -175,7 +175,7 @@ component("webnn_service") { +@@ -182,7 +182,7 @@ component("webnn_service") { } } @@ -1671,12 +1671,12 @@ diff --git a/services/webnn/features.gni b/services/webnn/features.gni - webnn_use_tflite = is_android || is_chromeos || is_linux || is_apple || is_win + webnn_use_tflite = false #is_android || is_chromeos || is_linux || is_apple || is_win - # Enable the GPU delegate provided by the Optimization Guide library. - webnn_use_chrome_ml_api = enable_ml_internal + # TODO(crbug.com/454732289): Enable LiteRT after migration is complete. + webnn_use_litert = false diff --git a/services/webnn/webnn_context_provider_impl.cc b/services/webnn/webnn_context_provider_impl.cc --- a/services/webnn/webnn_context_provider_impl.cc +++ b/services/webnn/webnn_context_provider_impl.cc -@@ -237,35 +237,7 @@ void WebNNContextProviderImpl::CreateWebNNContext( +@@ -258,35 +258,7 @@ void WebNNContextProviderImpl::CreateWebNNContext( } #if BUILDFLAG(IS_WIN) @@ -1694,7 +1694,7 @@ diff --git a/services/webnn/webnn_context_provider_impl.cc b/services/webnn/webn - std::move(read_tensor_producer), std::move(read_tensor_consumer), - command_buffer_id, std::move(gpu_sequence), - std::move(owning_task_runner), std::move(receiver), std::move(remote), -- std::move(callback), +- std::move(callback), params.is_incognito, - /*ep_package_info=*/{}); - return; - } @@ -1706,7 +1706,7 @@ diff --git a/services/webnn/webnn_context_provider_impl.cc b/services/webnn/webn - std::move(read_tensor_producer), std::move(read_tensor_consumer), - command_buffer_id, std::move(gpu_sequence), - std::move(owning_task_runner), std::move(receiver), std::move(remote), -- std::move(callback))); +- std::move(callback), params.is_incognito)); - return; - } else if (dml::ShouldCreateDmlContext(*options)) { + if (dml::ShouldCreateDmlContext(*options)) { @@ -1716,7 +1716,7 @@ diff --git a/services/webnn/webnn_context_provider_impl.cc b/services/webnn/webn diff --git a/third_party/blink/renderer/core/html/parser/html_document_parser.cc b/third_party/blink/renderer/core/html/parser/html_document_parser.cc --- a/third_party/blink/renderer/core/html/parser/html_document_parser.cc +++ b/third_party/blink/renderer/core/html/parser/html_document_parser.cc -@@ -1832,6 +1832,7 @@ ALWAYS_INLINE bool HTMLDocumentParser::ShouldCheckTimeBudget( +@@ -1797,6 +1797,7 @@ ALWAYS_INLINE bool HTMLDocumentParser::ShouldCheckTimeBudget( } bool HTMLDocumentParser::ShouldSkipPreloadScan() { @@ -1727,7 +1727,7 @@ diff --git a/third_party/blink/renderer/core/html/parser/html_document_parser.cc diff --git a/third_party/blink/renderer/core/speculation_rules/document_speculation_rules.cc b/third_party/blink/renderer/core/speculation_rules/document_speculation_rules.cc --- a/third_party/blink/renderer/core/speculation_rules/document_speculation_rules.cc +++ b/third_party/blink/renderer/core/speculation_rules/document_speculation_rules.cc -@@ -665,6 +665,7 @@ void DocumentSpeculationRules::UpdateSpeculationCandidates() { +@@ -664,6 +664,7 @@ void DocumentSpeculationRules::UpdateSpeculationCandidates() { return; } @@ -1738,7 +1738,7 @@ diff --git a/third_party/blink/renderer/core/speculation_rules/document_speculat diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -4073,7 +4073,7 @@ +@@ -4209,7 +4209,7 @@ // // It also has some feature params defined throughout the codebase. name: "Prerender2", diff --git a/build/patches/Disable-all-promo-dialogs.patch b/build/patches/Disable-all-promo-dialogs.patch index 3bf18a32..9b7051cc 100644 --- a/build/patches/Disable-all-promo-dialogs.patch +++ b/build/patches/Disable-all-promo-dialogs.patch @@ -18,7 +18,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java -@@ -1880,6 +1880,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1976,6 +1976,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { } private boolean maybeShowPromo(Profile profile) { @@ -29,7 +29,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc --- a/chrome/browser/ui/browser_ui_prefs.cc +++ b/chrome/browser/ui/browser_ui_prefs.cc -@@ -185,7 +185,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -188,7 +188,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref(prefs::kEnterpriseHardwarePlatformAPIEnabled, false); @@ -104,7 +104,7 @@ diff --git a/components/user_education/common/feature_promo/feature_promo_regist diff --git a/components/user_education/common/feature_promo/impl/feature_promo_controller_20.cc b/components/user_education/common/feature_promo/impl/feature_promo_controller_20.cc --- a/components/user_education/common/feature_promo/impl/feature_promo_controller_20.cc +++ b/components/user_education/common/feature_promo/impl/feature_promo_controller_20.cc -@@ -106,6 +106,7 @@ FeaturePromoResult FeaturePromoController20::CanShowPromoCommon( +@@ -109,6 +109,7 @@ FeaturePromoResult FeaturePromoController20::CanShowPromoCommon( const UserEducationContextPtr& context, ShowSource source, CanShowPromoOutputs* outputs) const { @@ -129,7 +129,7 @@ diff --git a/components/user_education/common/feature_promo/impl/feature_promo_c auto* const spec = registry()->GetParamsForFeature(*params.feature); - if (!spec) { + if (((true)) || !spec) { - PostShowPromoResult(std::move(params.show_promo_result_callback), + PostShowPromoResult(*params.feature, + std::move(params.show_promo_result_callback), FeaturePromoResult::kError); - return; -- diff --git a/build/patches/Disable-conversion-measurement-api.patch b/build/patches/Disable-conversion-measurement-api.patch index 0d6e6a6b..8722e496 100644 --- a/build/patches/Disable-conversion-measurement-api.patch +++ b/build/patches/Disable-conversion-measurement-api.patch @@ -16,7 +16,6 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../apk/AndroidManifest.xml | 3 - chrome/android/java/AndroidManifest.xml | 4 - .../ChromeSiteSettingsDelegate.java | 2 + - .../k_anonymity_trust_token_getter.cc | 2 +- .../privacy_page/privacy_page_index.html | 9 - chrome/browser/resources/settings/route.ts | 2 +- .../site_settings/site_settings_page.ts | 1 + @@ -47,14 +46,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html third_party/blink/renderer/core/page/page.cc | 2 +- .../platform/runtime_enabled_features.json5 | 20 +- ui/events/android/motion_event_android.cc | 8 +- - 36 files changed, 103 insertions(+), 437 deletions(-) + 35 files changed, 102 insertions(+), 436 deletions(-) create mode 100644 cromite_flags/services/network/public/cpp/features_cc/Disable-conversion-measurement-api.inc create mode 100644 cromite_flags/third_party/blink/common/features_cc/Disable-conversion-measurement-api.inc diff --git a/android_webview/browser/aw_content_browser_client.cc b/android_webview/browser/aw_content_browser_client.cc --- a/android_webview/browser/aw_content_browser_client.cc +++ b/android_webview/browser/aw_content_browser_client.cc -@@ -1357,6 +1357,7 @@ network::mojom::AttributionSupport +@@ -1350,6 +1350,7 @@ network::mojom::AttributionSupport AwContentBrowserClient::GetAttributionSupport( AttributionReportingOsApiState state, bool client_os_disabled) { @@ -62,7 +61,7 @@ diff --git a/android_webview/browser/aw_content_browser_client.cc b/android_webv // WebView only supports OS-level attribution and not web-attribution. switch (state) { case AttributionReportingOsApiState::kDisabled: -@@ -1375,6 +1376,8 @@ bool AwContentBrowserClient::IsAttributionReportingOperationAllowed( +@@ -1368,6 +1369,8 @@ bool AwContentBrowserClient::IsAttributionReportingOperationAllowed( const url::Origin* destination_origin, const url::Origin* reporting_origin, bool* can_bypass) { @@ -83,7 +82,7 @@ diff --git a/android_webview/java/src/org/chromium/android_webview/AwSettings.ja @SpeculativeLoadingAllowedFlags private int mSpeculativeLoadingAllowedFlags = -@@ -1806,7 +1806,7 @@ public class AwSettings { +@@ -1813,7 +1813,7 @@ public class AwSettings { public void setAttributionBehavior(@AttributionBehavior int behavior) { synchronized (mAwSettingsLock) { if (mAttributionBehavior != behavior) { @@ -95,7 +94,7 @@ diff --git a/android_webview/java/src/org/chromium/android_webview/AwSettings.ja diff --git a/android_webview/tools/system_webview_shell/apk/AndroidManifest.xml b/android_webview/tools/system_webview_shell/apk/AndroidManifest.xml --- a/android_webview/tools/system_webview_shell/apk/AndroidManifest.xml +++ b/android_webview/tools/system_webview_shell/apk/AndroidManifest.xml -@@ -184,9 +184,6 @@ +@@ -190,9 +190,6 @@ android:exported="true"> @@ -138,18 +137,6 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/C case SiteSettingsCategory.Type.AUTO_DARK_WEB_CONTENT: return ChromeFeatureList.isEnabled( ChromeFeatureList.DARKEN_WEBSITES_CHECKBOX_IN_THEMES_SETTING); -diff --git a/chrome/browser/k_anonymity_service/k_anonymity_trust_token_getter.cc b/chrome/browser/k_anonymity_service/k_anonymity_trust_token_getter.cc ---- a/chrome/browser/k_anonymity_service/k_anonymity_trust_token_getter.cc -+++ b/chrome/browser/k_anonymity_service/k_anonymity_trust_token_getter.cc -@@ -122,7 +122,7 @@ KAnonymityTrustTokenGetter::~KAnonymityTrustTokenGetter() = default; - - void KAnonymityTrustTokenGetter::TryGetTrustTokenAndKey( - TryGetTrustTokenAndKeyCallback callback) { -- if (!identity_manager_ || -+ if (((true)) || !identity_manager_ || - !identity_manager_->HasPrimaryAccount(signin::ConsentLevel::kSignin)) { - std::move(callback).Run(std::nullopt); - return; diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page_index.html b/chrome/browser/resources/settings/privacy_page/privacy_page_index.html --- a/chrome/browser/resources/settings/privacy_page/privacy_page_index.html +++ b/chrome/browser/resources/settings/privacy_page/privacy_page_index.html @@ -308,16 +295,16 @@ diff --git a/content/browser/attribution_reporting/attribution_data_host_manager diff --git a/content/browser/attribution_reporting/attribution_host.cc b/content/browser/attribution_reporting/attribution_host.cc --- a/content/browser/attribution_reporting/attribution_host.cc +++ b/content/browser/attribution_reporting/attribution_host.cc -@@ -132,8 +132,6 @@ AttributionHost::AttributionHost(WebContents* web_contents) - attribution_reporting::features::kConversionMeasurement)); - - #if BUILDFLAG(IS_ANDROID) -- input_event_tracker_android_ = -- std::make_unique(web_contents); +@@ -136,8 +136,6 @@ AttributionHost::AttributionHost(WebContents* web_contents) + // AttributionInputEventTrackerAndroid without a native view will crash. For + // now, just disable this code if the view is null. + if (web_contents->GetNativeView()) { +- input_event_tracker_android_ = +- std::make_unique(web_contents); + } #endif } - -@@ -342,6 +340,7 @@ void AttributionHost::NotifyNavigationRegistrationData( +@@ -347,6 +345,7 @@ void AttributionHost::NotifyNavigationRegistrationData( return; } @@ -414,7 +401,7 @@ diff --git a/content/browser/attribution_reporting/attribution_storage_sql.cc b/ diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc -@@ -10569,6 +10569,7 @@ bool RenderFrameHostImpl::IsFencedFrameReportingFromRendererAllowed( +@@ -10620,6 +10620,7 @@ bool RenderFrameHostImpl::IsFencedFrameReportingFromRendererAllowed( return false; } @@ -422,7 +409,7 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/b if (!IsActive()) { // reportEvent is not allowed when this RenderFrameHost or one of its // ancestors is not active. -@@ -14679,6 +14680,16 @@ void RenderFrameHostImpl::BindTrustTokenQueryAnswerer( +@@ -14778,6 +14779,16 @@ void RenderFrameHostImpl::BindTrustTokenQueryAnswerer( return; } @@ -442,7 +429,7 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/b 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 -@@ -1511,15 +1511,6 @@ void StoragePartitionImpl::Initialize( +@@ -1512,15 +1512,6 @@ void StoragePartitionImpl::Initialize( bucket_manager_ = std::make_unique(this); @@ -458,7 +445,7 @@ diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage if (base::FeatureList::IsEnabled(network::features::kInterestGroupStorage)) { // Auction worklets on non-Android use dedicated processes; on Android due // to high cost of process launch they try to reuse renderers. -@@ -1571,9 +1562,6 @@ void StoragePartitionImpl::Initialize( +@@ -1572,9 +1563,6 @@ void StoragePartitionImpl::Initialize( font_access_manager_ = FontAccessManager::Create(); @@ -945,7 +932,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/Attrib diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc --- a/content/public/browser/content_browser_client.cc +++ b/content/public/browser/content_browser_client.cc -@@ -648,6 +648,7 @@ void ContentBrowserClient::OnAuctionComplete( +@@ -644,6 +644,7 @@ void ContentBrowserClient::OnAuctionComplete( network::mojom::AttributionSupport ContentBrowserClient::GetAttributionSupport( AttributionReportingOsApiState state, bool client_os_disabled) { @@ -953,7 +940,7 @@ diff --git a/content/public/browser/content_browser_client.cc b/content/public/b switch (state) { case AttributionReportingOsApiState::kDisabled: return network::mojom::AttributionSupport::kWeb; -@@ -665,13 +666,13 @@ bool ContentBrowserClient::IsAttributionReportingOperationAllowed( +@@ -661,13 +662,13 @@ bool ContentBrowserClient::IsAttributionReportingOperationAllowed( const url::Origin* destination_origin, const url::Origin* reporting_origin, bool* can_bypass) { @@ -969,7 +956,7 @@ diff --git a/content/public/browser/content_browser_client.cc b/content/public/b } bool ContentBrowserClient::IsAttributionReportingAllowedForContext( -@@ -679,7 +680,7 @@ bool ContentBrowserClient::IsAttributionReportingAllowedForContext( +@@ -675,7 +676,7 @@ bool ContentBrowserClient::IsAttributionReportingAllowedForContext( content::RenderFrameHost* rfh, const url::Origin& context_origin, const url::Origin& reporting_origin) { @@ -1023,7 +1010,7 @@ diff --git a/services/network/attribution/request_headers_internal.cc b/services diff --git a/services/network/network_context.cc b/services/network/network_context.cc --- a/services/network/network_context.cc +++ b/services/network/network_context.cc -@@ -1312,6 +1312,10 @@ void NetworkContext::ClearTrustTokenData(mojom::ClearDataFilterPtr filter, +@@ -1316,6 +1316,10 @@ void NetworkContext::ClearTrustTokenData(mojom::ClearDataFilterPtr filter, void NetworkContext::ClearTrustTokenSessionOnlyData( ClearTrustTokenSessionOnlyDataCallback callback) { @@ -1034,7 +1021,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont // Only called when Private State Tokens is enabled, i.e., // `trust_token_store_` is non-null. DCHECK(trust_token_store_); -@@ -2709,26 +2713,6 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( +@@ -2723,26 +2727,6 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( builder.set_network_quality_estimator( network_service_->network_quality_estimator()); } @@ -1118,7 +1105,7 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 origin_trial_feature_name: "AdInterestGroupAPI", implied_by: ["Fledge", "Parakeet"], public: true, -@@ -630,8 +630,8 @@ +@@ -638,8 +638,8 @@ status: "stable", }, { @@ -1129,7 +1116,7 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 base_feature: "none", public: true, }, -@@ -4132,8 +4132,8 @@ +@@ -4268,8 +4268,8 @@ base_feature: "none", }, { @@ -1140,7 +1127,7 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 base_feature: "none", public: true, }, -@@ -5372,16 +5372,16 @@ +@@ -5502,16 +5502,16 @@ status: "experimental", }, { diff --git a/build/patches/Disable-crash-reporting.patch b/build/patches/Disable-crash-reporting.patch index 4ef72377..adfd3336 100644 --- a/build/patches/Disable-crash-reporting.patch +++ b/build/patches/Disable-crash-reporting.patch @@ -12,7 +12,7 @@ Subject: Disable crash reporting diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -2690,15 +2690,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( +@@ -2719,15 +2719,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( base::NumberToString(pid)); } #endif @@ -31,7 +31,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc -@@ -16356,6 +16356,7 @@ void RenderFrameHostImpl::OnSameDocumentCommitProcessed( +@@ -16453,6 +16453,7 @@ void RenderFrameHostImpl::OnSameDocumentCommitProcessed( void RenderFrameHostImpl::MaybeGenerateCrashReport( base::TerminationStatus status, int exit_code) { @@ -42,7 +42,7 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/b diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -10371,7 +10371,7 @@ void WebContentsImpl::RendererUnresponsive( +@@ -10382,7 +10382,7 @@ void WebContentsImpl::RendererUnresponsive( base::UmaHistogramEnumeration( "ReportingAndNEL.UnresponsiveRenderer.CrashReportOutcome", outcome); diff --git a/build/patches/Disable-css-preferred-text-scale.patch b/build/patches/Disable-css-preferred-text-scale.patch index b03c0b63..d87577d3 100644 --- a/build/patches/Disable-css-preferred-text-scale.patch +++ b/build/patches/Disable-css-preferred-text-scale.patch @@ -34,7 +34,7 @@ diff --git a/third_party/blink/renderer/core/css/document_style_environment_vari diff --git a/third_party/blink/renderer/core/css/style_environment_variables.cc b/third_party/blink/renderer/core/css/style_environment_variables.cc --- a/third_party/blink/renderer/core/css/style_environment_variables.cc +++ b/third_party/blink/renderer/core/css/style_environment_variables.cc -@@ -49,7 +49,9 @@ void SetDefaultEnvironmentVariables(StyleEnvironmentVariables* instance) { +@@ -48,7 +48,9 @@ void SetDefaultEnvironmentVariables(StyleEnvironmentVariables* instance) { instance->SetVariable(UADefinedVariable::kKeyboardInsetHeight, kKeyboardInsetDefault); @@ -62,7 +62,7 @@ diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/re diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -1593,6 +1593,9 @@ +@@ -1600,6 +1600,9 @@ name: "CSSPositionStickyStaticScrollPosition", status: "test", }, diff --git a/build/patches/Disable-device-bound-session.patch b/build/patches/Disable-device-bound-session.patch index 2dbea5ef..44dee66b 100644 --- a/build/patches/Disable-device-bound-session.patch +++ b/build/patches/Disable-device-bound-session.patch @@ -25,7 +25,7 @@ diff --git a/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc b namespace { // The number of restarts to wait until removing the enable-benchmarking flag. -@@ -884,7 +888,9 @@ void RecordStartupMetrics() { +@@ -899,7 +903,9 @@ void RecordStartupMetrics() { #endif // BUILDFLAG(IS_WIN) #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) diff --git a/build/patches/Disable-feeds-support-by-default.patch b/build/patches/Disable-feeds-support-by-default.patch index 68ae22a8..0ebf0a94 100644 --- a/build/patches/Disable-feeds-support-by-default.patch +++ b/build/patches/Disable-feeds-support-by-default.patch @@ -83,7 +83,7 @@ diff --git a/components/feed/core/shared_prefs/pref_names.cc b/components/feed/c diff --git a/components/feed/feed_feature_list.cc b/components/feed/feed_feature_list.cc --- a/components/feed/feed_feature_list.cc +++ b/components/feed/feed_feature_list.cc -@@ -85,4 +85,7 @@ bool IsWebFeedEnabledForLocale(const std::string& country) { +@@ -86,4 +86,7 @@ bool IsWebFeedEnabledForLocale(const std::string& country) { !base::FeatureList::IsEnabled(kWebFeedKillSwitch); } diff --git a/build/patches/Disable-fetching-of-all-field-trials.patch b/build/patches/Disable-fetching-of-all-field-trials.patch index fdf36a09..98e69d56 100644 --- a/build/patches/Disable-fetching-of-all-field-trials.patch +++ b/build/patches/Disable-fetching-of-all-field-trials.patch @@ -75,7 +75,7 @@ diff --git a/android_webview/common/aw_content_client.cc b/android_webview/commo diff --git a/android_webview/nonembedded/BUILD.gn b/android_webview/nonembedded/BUILD.gn --- a/android_webview/nonembedded/BUILD.gn +++ b/android_webview/nonembedded/BUILD.gn -@@ -107,7 +107,6 @@ android_library("services_java") { +@@ -108,7 +108,6 @@ android_library("services_java") { "java/src/org/chromium/android_webview/services/AwMinidumpUploadJobService.java", "java/src/org/chromium/android_webview/services/AwMinidumpUploaderDelegate.java", "java/src/org/chromium/android_webview/services/AwNetLogService.java", @@ -83,7 +83,7 @@ diff --git a/android_webview/nonembedded/BUILD.gn b/android_webview/nonembedded/ "java/src/org/chromium/android_webview/services/ComponentUpdaterResetSafeModeAction.java", "java/src/org/chromium/android_webview/services/ComponentUpdaterSafeModeUtils.java", "java/src/org/chromium/android_webview/services/ComponentsProviderPathUtil.java", -@@ -126,7 +125,6 @@ android_library("services_java") { +@@ -127,7 +126,6 @@ android_library("services_java") { "java/src/org/chromium/android_webview/services/SafeModeService.java", "java/src/org/chromium/android_webview/services/SafeModeVariationsSeedContentProvider.java", "java/src/org/chromium/android_webview/services/StartupFeatureMetadataHolder.java", @@ -159,7 +159,7 @@ diff --git a/chrome/browser/metrics/chrome_browser_sampling_trials.cc b/chrome/b diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc --- a/chrome/browser/net/system_network_context_manager.cc +++ b/chrome/browser/net/system_network_context_manager.cc -@@ -952,7 +952,6 @@ void SystemNetworkContextManager::AddSSLConfigToNetworkContextParams( +@@ -935,7 +935,6 @@ void SystemNetworkContextManager::AddSSLConfigToNetworkContextParams( void SystemNetworkContextManager::ConfigureDefaultNetworkContextParams( network::mojom::NetworkContextParams* network_context_params) { @@ -308,7 +308,7 @@ diff --git a/components/variations/net/variations_url_loader_throttle.cc b/compo diff --git a/components/variations/service/variations_field_trial_creator.cc b/components/variations/service/variations_field_trial_creator.cc --- a/components/variations/service/variations_field_trial_creator.cc +++ b/components/variations/service/variations_field_trial_creator.cc -@@ -130,6 +130,7 @@ Study::CpuArchitecture GetCurrentCpuArchitecture() { +@@ -129,6 +129,7 @@ Study::CpuArchitecture GetCurrentCpuArchitecture() { } #if BUILDFLAG(FIELDTRIAL_TESTING_ENABLED) @@ -316,7 +316,7 @@ diff --git a/components/variations/service/variations_field_trial_creator.cc b/c // Determines whether the field trial testing config defined in // testing/variations/fieldtrial_testing_config.json should be applied. If the // "disable_fieldtrial_testing_config" GN flag is set to true, then the testing -@@ -373,9 +374,6 @@ bool VariationsFieldTrialCreator::SetUpFieldTrials( +@@ -370,9 +371,6 @@ bool VariationsFieldTrialCreator::SetUpFieldTrials( metrics_state_manager->GetLowEntropySource()); } @@ -326,7 +326,7 @@ diff --git a/components/variations/service/variations_field_trial_creator.cc b/c platform_field_trials->RegisterFeatureOverrides(feature_list.get()); base::FeatureList::SetInstance(std::move(feature_list)); -@@ -721,6 +719,7 @@ CreateTrialsResult VariationsFieldTrialCreator::CreateTrialsFromSeed( +@@ -678,6 +676,7 @@ CreateTrialsResult VariationsFieldTrialCreator::CreateTrialsFromSeed( base::FeatureList* feature_list, SafeSeedManager* safe_seed_manager, std::unique_ptr client_state) { @@ -334,7 +334,7 @@ diff --git a/components/variations/service/variations_field_trial_creator.cc b/c TRACE_EVENT0("startup", "VariationsFieldTrialCreator::CreateTrialsFromSeed"); DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); CHECK(!create_trials_from_seed_called_); -@@ -840,6 +839,7 @@ CreateTrialsResult VariationsFieldTrialCreator::CreateTrialsFromSeed( +@@ -789,6 +788,7 @@ CreateTrialsResult VariationsFieldTrialCreator::CreateTrialsFromSeed( void VariationsFieldTrialCreator::LoadSeedFromJsonFile( const base::FilePath& json_seed_path) { @@ -369,7 +369,7 @@ diff --git a/components/variations/service/variations_service.cc b/components/va } // Returns the already downloaded first run seed, and clear the seed from the -@@ -636,7 +621,7 @@ bool VariationsService::DoFetchFromURL(const GURL& url, bool is_http_retry) { +@@ -632,7 +617,7 @@ bool VariationsService::DoFetchFromURL(const GURL& url, bool is_http_retry) { // debugger or if the machine was suspended) and OnURLFetchComplete() hasn't // had a chance to run yet from the previous request. In this case, don't // start a new request and just let the previous one finish. @@ -417,7 +417,7 @@ diff --git a/content/browser/origin_trials/origin_trials_utils.cc b/content/brow diff --git a/content/browser/renderer_host/navigation_request.cc b/content/browser/renderer_host/navigation_request.cc --- a/content/browser/renderer_host/navigation_request.cc +++ b/content/browser/renderer_host/navigation_request.cc -@@ -836,6 +836,7 @@ void PersistOriginTrialsFromHeaders( +@@ -838,6 +838,7 @@ void PersistOriginTrialsFromHeaders( const network::mojom::URLResponseHead* response, BrowserContext* browser_context, ukm::SourceId source_id) { @@ -458,7 +458,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc --- a/third_party/blink/renderer/core/loader/document_loader.cc +++ b/third_party/blink/renderer/core/loader/document_loader.cc -@@ -211,13 +211,6 @@ std::vector CopyInitiatorOriginTrials( +@@ -212,13 +212,6 @@ std::vector CopyInitiatorOriginTrials( const Vector& initiator_origin_trial_features) { std::vector result; diff --git a/build/patches/Disable-idle-detection.patch b/build/patches/Disable-idle-detection.patch index 0fee7be4..fb3465cf 100644 --- a/build/patches/Disable-idle-detection.patch +++ b/build/patches/Disable-idle-detection.patch @@ -31,7 +31,7 @@ new file mode 100644 diff --git a/services/network/public/cpp/permissions_policy/permissions_policy_features.json5 b/services/network/public/cpp/permissions_policy/permissions_policy_features.json5 --- a/services/network/public/cpp/permissions_policy/permissions_policy_features.json5 +++ b/services/network/public/cpp/permissions_policy/permissions_policy_features.json5 -@@ -385,6 +385,7 @@ +@@ -403,6 +403,7 @@ { name: "IdleDetection", permissions_policy_name: "idle-detection", diff --git a/build/patches/Disable-integration-with-Gemini.patch b/build/patches/Disable-integration-with-Gemini.patch index f9a64c75..83643bc8 100644 --- a/build/patches/Disable-integration-with-Gemini.patch +++ b/build/patches/Disable-integration-with-Gemini.patch @@ -19,7 +19,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/contextual_cueing/contextual_cueing_helper.cc b/chrome/browser/contextual_cueing/contextual_cueing_helper.cc --- a/chrome/browser/contextual_cueing/contextual_cueing_helper.cc +++ b/chrome/browser/contextual_cueing/contextual_cueing_helper.cc -@@ -382,6 +382,7 @@ void ContextualCueingHelper::OnCueingDecision( +@@ -401,6 +401,7 @@ void ContextualCueingHelper::OnCueingDecision( return; } @@ -27,7 +27,7 @@ diff --git a/chrome/browser/contextual_cueing/contextual_cueing_helper.cc b/chro // Handle side panel auto-open case: bypass nudge and open panel directly. // If auto-open fails or is disabled, falls through to standard nudge. const bool should_open_side_panel = -@@ -421,6 +422,7 @@ void ContextualCueingHelper::OnCueingDecision( +@@ -440,6 +441,7 @@ void ContextualCueingHelper::OnCueingDecision( contextual_cueing_service_->GetWeakPtr(), web_contents(), document_available_time, decision_result->is_dynamic)); @@ -46,8 +46,8 @@ diff --git a/chrome/browser/extensions/api/pdf_viewer_private/BUILD.gn b/chrome/ "//chrome/browser/pdf", "//chrome/browser/pdf:pdf_pref_names", "//chrome/browser/profiles:profile", -@@ -48,8 +47,6 @@ source_set("browser_tests") { - # sources = [ "pdf_viewer_private_browsertest.cc" ] +@@ -46,8 +45,6 @@ source_set("browser_tests") { + sources = [ "pdf_viewer_private_browsertest.cc" ] deps = [ ":pdf_viewer_private", - "//chrome/browser/glic", @@ -68,7 +68,7 @@ diff --git a/chrome/browser/extensions/api/pdf_viewer_private/pdf_viewer_private #include "chrome/browser/pdf/pdf_pref_names.h" #include "chrome/browser/pdf/pdf_viewer_stream_manager.h" #include "chrome/browser/profiles/profile.h" -@@ -306,24 +303,7 @@ ExtensionFunction::ResponseAction PdfViewerPrivateGlicSummarizeFunction::Run() { +@@ -305,24 +302,7 @@ ExtensionFunction::ResponseAction PdfViewerPrivateGlicSummarizeFunction::Run() { return RespondNow(Error("No tab.")); } @@ -142,9 +142,9 @@ diff --git a/chrome/common/features.gni b/chrome/common/features.gni enable_chrome_notifications = is_mac || is_win || is_linux # Enables inclusion of glic in the build. -- enable_glic = is_mac || is_win || is_linux || is_chromeos +- enable_glic = is_mac || is_win || is_linux || is_chromeos || is_android + enable_glic = false - # Enables inclusion of glic in the build on Android. - # This is temporary, and will eventually be replaced by enable_glic. + # Skips unmigrated actor files in the build on Android. This is temporary, and + # will eventually be removed once migration is done. Adding this flag likely -- diff --git a/build/patches/Disable-media-router-and-remoting-by-default.patch b/build/patches/Disable-media-router-and-remoting-by-default.patch index 6d580bac..c508b278 100644 --- a/build/patches/Disable-media-router-and-remoting-by-default.patch +++ b/build/patches/Disable-media-router-and-remoting-by-default.patch @@ -43,7 +43,7 @@ diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browse diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc --- a/chrome/browser/profiles/profile_impl.cc +++ b/chrome/browser/profiles/profile_impl.cc -@@ -422,7 +422,7 @@ void ProfileImpl::RegisterProfilePrefs( +@@ -426,7 +426,7 @@ void ProfileImpl::RegisterProfilePrefs( #endif registry->RegisterBooleanPref(prefs::kForceEphemeralProfiles, false); @@ -55,7 +55,7 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc --- a/content/child/runtime_features.cc +++ b/content/child/runtime_features.cc -@@ -548,6 +548,8 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs( +@@ -547,6 +547,8 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs( WebRuntimeFeatures::EnableV8IdleTasks(true); } @@ -67,7 +67,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. diff --git a/third_party/blink/renderer/modules/remoteplayback/remote_playback.cc b/third_party/blink/renderer/modules/remoteplayback/remote_playback.cc --- a/third_party/blink/renderer/modules/remoteplayback/remote_playback.cc +++ b/third_party/blink/renderer/modules/remoteplayback/remote_playback.cc -@@ -94,7 +94,7 @@ KURL GetAvailabilityUrl(const KURL& source, +@@ -96,7 +96,7 @@ KURL GetAvailabilityUrl(const KURL& source, } bool IsBackgroundAvailabilityMonitoringDisabled() { @@ -79,7 +79,7 @@ diff --git a/third_party/blink/renderer/modules/remoteplayback/remote_playback.c diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -4291,14 +4291,10 @@ +@@ -4416,14 +4416,10 @@ base_feature: "none", }, { diff --git a/build/patches/Disable-minikin-hyphenation.patch b/build/patches/Disable-minikin-hyphenation.patch index 41d83131..2d4cce39 100644 --- a/build/patches/Disable-minikin-hyphenation.patch +++ b/build/patches/Disable-minikin-hyphenation.patch @@ -9,10 +9,13 @@ Subject: Disable minikin hyphenation diff --git a/third_party/blink/public/public_features.gni b/third_party/blink/public/public_features.gni --- a/third_party/blink/public/public_features.gni +++ b/third_party/blink/public/public_features.gni -@@ -10,4 +10,4 @@ import("//build/config/ui.gni") +@@ -10,7 +10,7 @@ import("//build/config/ui.gni") enable_unhandled_tap = is_android # Use Minikin hyphenation engine. -use_minikin_hyphenation = !is_apple +use_minikin_hyphenation = false + + # Web Smart Card API is currently supported only on chromeos. + # TODO(crbug.com/470349523): Migrate more smart card files to this flag. -- diff --git a/build/patches/Disable-plugins-enumeration.patch b/build/patches/Disable-plugins-enumeration.patch index 76a3f59e..87811971 100644 --- a/build/patches/Disable-plugins-enumeration.patch +++ b/build/patches/Disable-plugins-enumeration.patch @@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc -@@ -2379,9 +2379,7 @@ const mojom::RendererContentSettingsPtr& LocalFrame::GetContentSettings() +@@ -2407,9 +2407,7 @@ WebAutofillClient* LocalFrame::GetAutofillClient() { } PluginData* LocalFrame::GetPluginData() const { diff --git a/build/patches/Disable-prefers-reduced-motion.patch b/build/patches/Disable-prefers-reduced-motion.patch index eb27ceeb..2cd99356 100644 --- a/build/patches/Disable-prefers-reduced-motion.patch +++ b/build/patches/Disable-prefers-reduced-motion.patch @@ -15,7 +15,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/ui/accessibility/android/java/src/org/chromium/ui/accessibility/AccessibilityState.java b/ui/accessibility/android/java/src/org/chromium/ui/accessibility/AccessibilityState.java --- a/ui/accessibility/android/java/src/org/chromium/ui/accessibility/AccessibilityState.java +++ b/ui/accessibility/android/java/src/org/chromium/ui/accessibility/AccessibilityState.java -@@ -503,7 +503,7 @@ public class AccessibilityState { +@@ -520,7 +520,7 @@ public class AccessibilityState { /** Returns whether the user settings specify preferred reduced motion. */ @CalledByNative public static boolean prefersReducedMotion() { diff --git a/build/patches/Disable-prefers-reduced-transparency-media-query.patch b/build/patches/Disable-prefers-reduced-transparency-media-query.patch index 8edf109f..1b6ae680 100644 --- a/build/patches/Disable-prefers-reduced-transparency-media-query.patch +++ b/build/patches/Disable-prefers-reduced-transparency-media-query.patch @@ -13,7 +13,7 @@ This feature can be used for fingerprinting as it exposes a user preference diff --git a/third_party/blink/renderer/core/css/media_query_exp.cc b/third_party/blink/renderer/core/css/media_query_exp.cc --- a/third_party/blink/renderer/core/css/media_query_exp.cc +++ b/third_party/blink/renderer/core/css/media_query_exp.cc -@@ -135,7 +135,7 @@ static inline bool FeatureWithValidIdent(const String& media_feature, +@@ -137,7 +137,7 @@ static inline bool FeatureWithValidIdent(const String& media_feature, } if (media_feature == @@ -25,7 +25,7 @@ diff --git a/third_party/blink/renderer/core/css/media_query_exp.cc b/third_part diff --git a/third_party/blink/renderer/core/css/parser/media_query_parser.cc b/third_party/blink/renderer/core/css/parser/media_query_parser.cc --- a/third_party/blink/renderer/core/css/parser/media_query_parser.cc +++ b/third_party/blink/renderer/core/css/parser/media_query_parser.cc -@@ -83,8 +83,8 @@ bool MediaQueryParser::MediaQueryFeatureSet::IsAllowedWithoutValue( +@@ -81,8 +81,8 @@ bool MediaQueryParser::MediaQueryFeatureSet::IsAllowedWithoutValue( feature == media_feature_names::kUpdateMediaFeature || (feature == media_feature_names::kPrefersReducedDataMediaFeature && RuntimeEnabledFeatures::PrefersReducedDataEnabled()) || @@ -50,7 +50,7 @@ diff --git a/third_party/blink/renderer/core/preferences/preference_manager.idl diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -4063,6 +4063,10 @@ +@@ -4199,6 +4199,10 @@ name: "PrefersReducedData", status: "experimental", }, diff --git a/build/patches/Disable-privacy-issues-in-password-manager.patch b/build/patches/Disable-privacy-issues-in-password-manager.patch index 490be04a..3258ecfd 100644 --- a/build/patches/Disable-privacy-issues-in-password-manager.patch +++ b/build/patches/Disable-privacy-issues-in-password-manager.patch @@ -24,7 +24,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml --- a/chrome/android/java/AndroidManifest.xml +++ b/chrome/android/java/AndroidManifest.xml -@@ -502,15 +502,6 @@ by a child template that "extends" this file. +@@ -505,15 +505,6 @@ by a child template that "extends" this file. android:excludeFromRecents="true" android:exported="false" /> @@ -91,7 +91,7 @@ diff --git a/chrome/browser/password_manager/password_receiver_service_factory.c diff --git a/components/affiliations/core/browser/affiliation_backend.cc b/components/affiliations/core/browser/affiliation_backend.cc --- a/components/affiliations/core/browser/affiliation_backend.cc +++ b/components/affiliations/core/browser/affiliation_backend.cc -@@ -390,6 +390,7 @@ void AffiliationBackend::OnFetchFinished( +@@ -391,6 +391,7 @@ void AffiliationBackend::OnFetchFinished( } bool AffiliationBackend::OnCanSendNetworkRequest() { @@ -102,7 +102,7 @@ diff --git a/components/affiliations/core/browser/affiliation_backend.cc b/compo diff --git a/components/affiliations/core/browser/affiliation_service_impl.cc b/components/affiliations/core/browser/affiliation_service_impl.cc --- a/components/affiliations/core/browser/affiliation_service_impl.cc +++ b/components/affiliations/core/browser/affiliation_service_impl.cc -@@ -315,6 +315,10 @@ void AffiliationServiceImpl::GetPSLExtensions( +@@ -314,6 +314,10 @@ void AffiliationServiceImpl::GetPSLExtensions( void AffiliationServiceImpl::UpdateAffiliationsAndBranding( const std::vector& facets, base::OnceClosure callback) { @@ -172,7 +172,7 @@ diff --git a/components/password_manager/core/browser/leak_detection/leak_detect diff --git a/components/password_manager/core/browser/password_manager.cc b/components/password_manager/core/browser/password_manager.cc --- a/components/password_manager/core/browser/password_manager.cc +++ b/components/password_manager/core/browser/password_manager.cc -@@ -604,7 +604,7 @@ void PasswordManager::RegisterProfilePrefs( +@@ -603,7 +603,7 @@ void PasswordManager::RegisterProfilePrefs( #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) || \ BUILDFLAG(IS_CHROMEOS) registry->RegisterBooleanPref(prefs::kBiometricAuthenticationBeforeFilling, @@ -181,7 +181,7 @@ diff --git a/components/password_manager/core/browser/password_manager.cc b/comp #endif // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) || // BUILDFLAG(IS_CHROMEOS) #if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_IOS) // Desktop -@@ -636,7 +636,7 @@ void PasswordManager::RegisterProfilePrefs( +@@ -635,7 +635,7 @@ void PasswordManager::RegisterProfilePrefs( registry->RegisterBooleanPref(prefs::kAccountStoreMigratedToOSCryptAsync, false); registry->RegisterBooleanPref( diff --git a/build/patches/Disable-privacy-sandbox.patch b/build/patches/Disable-privacy-sandbox.patch index bd35858b..3062f423 100644 --- a/build/patches/Disable-privacy-sandbox.patch +++ b/build/patches/Disable-privacy-sandbox.patch @@ -19,7 +19,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../privacy_sandbox_settings_delegate.cc | 1 + .../settings/privacy_page/cookies_page.ts | 2 +- chrome/test/BUILD.gn | 2 -- - .../site_settings/RwsCookieSettings.java | 4 ++-- + .../site_settings/CookieSettings.java | 4 ++-- .../history/core/browser/history_backend.cc | 13 +------------ .../privacy_sandbox_attestations/BUILD.gn | 6 ------ .../preload/BUILD.gn | 2 +- @@ -45,7 +45,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -1693,7 +1693,6 @@ if (_is_default_toolchain) { +@@ -1736,7 +1736,6 @@ if (_is_default_toolchain) { java_group("chrome_public_non_pak_assets") { deps = [ "//chrome/android/webapk/libs/runtime_library:runtime_library_assets", @@ -56,7 +56,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -3451,6 +3451,9 @@ bool ChromeContentBrowserClient::IsAttributionReportingOperationAllowed( +@@ -3495,6 +3495,9 @@ bool ChromeContentBrowserClient::IsAttributionReportingOperationAllowed( const url::Origin* destination_origin, const url::Origin* reporting_origin, bool* can_bypass) { @@ -66,7 +66,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch Profile* profile = Profile::FromBrowserContext(browser_context); auto* privacy_sandbox_settings = -@@ -8083,7 +8086,7 @@ bool ChromeContentBrowserClient::ShouldDisableOriginAgentClusterDefault( +@@ -8162,7 +8165,7 @@ bool ChromeContentBrowserClient::ShouldDisableOriginAgentClusterDefault( } bool ChromeContentBrowserClient::WillProvidePublicFirstPartySets() { @@ -90,7 +90,7 @@ diff --git a/chrome/browser/first_party_sets/first_party_sets_navigation_throttl diff --git a/chrome/browser/first_party_sets/first_party_sets_policy_service.cc b/chrome/browser/first_party_sets/first_party_sets_policy_service.cc --- a/chrome/browser/first_party_sets/first_party_sets_policy_service.cc +++ b/chrome/browser/first_party_sets/first_party_sets_policy_service.cc -@@ -58,6 +58,7 @@ const base::Value::Dict* GetOverridesPolicyForProfile( +@@ -57,6 +57,7 @@ const base::DictValue* GetOverridesPolicyForProfile(const PrefService* prefs) { } ServiceState GetServiceState(Profile* profile, bool pref_enabled) { @@ -98,7 +98,7 @@ diff --git a/chrome/browser/first_party_sets/first_party_sets_policy_service.cc if (profile->IsSystemProfile() || profile->IsGuestSession() || profile->IsOffTheRecord()) { return ServiceState::kPermanentlyDisabled; -@@ -101,7 +102,7 @@ void FirstPartySetsPolicyService::Init() { +@@ -100,7 +101,7 @@ void FirstPartySetsPolicyService::Init() { service_state_ = GetServiceState( profile, privacy_sandbox_settings_->AreRelatedWebsiteSetsEnabled()); @@ -164,7 +164,7 @@ diff --git a/chrome/browser/resources/settings/privacy_page/cookies_page.ts b/ch diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn -@@ -2046,8 +2046,6 @@ if (is_android) { +@@ -2078,8 +2078,6 @@ if (is_android) { "//components/privacy_sandbox/privacy_sandbox_attestations", "//components/privacy_sandbox/privacy_sandbox_attestations:metrics", "//components/privacy_sandbox/privacy_sandbox_attestations:test_support", @@ -173,10 +173,10 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn "//components/privacy_sandbox/privacy_sandbox_attestations/proto", "//components/qr_code_generator:bitmap_generator", "//components/safe_browsing/content/common:interfaces", -diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/RwsCookieSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/RwsCookieSettings.java ---- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/RwsCookieSettings.java -+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/RwsCookieSettings.java -@@ -134,7 +134,7 @@ public class RwsCookieSettings extends BaseSiteSettingsFragment +diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/CookieSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/CookieSettings.java +--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/CookieSettings.java ++++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/CookieSettings.java +@@ -134,7 +134,7 @@ public class CookieSettings extends BaseSiteSettingsFragment mAllowRwsPreference.setChecked( getSiteSettingsDelegate().isRelatedWebsiteSetsDataAccessEnabled()); @@ -185,7 +185,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c mAllowRwsPreference.setEnabled(false); } mAllowRwsPreference.setOnPreferenceChangeListener(this); -@@ -150,7 +150,7 @@ public class RwsCookieSettings extends BaseSiteSettingsFragment +@@ -150,7 +150,7 @@ public class CookieSettings extends BaseSiteSettingsFragment public boolean onPreferenceChange(Preference preference, Object newValue) { String key = preference.getKey(); if (ALLOW_RWS_COOKIE_PREFERENCE.equals(key)) { @@ -266,7 +266,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_attestations/privacy_san void RecordLoadAPKAssetStatusHistogram(LoadAPKAssetStatus status) { base::UmaHistogramEnumeration(kAttestationsLoadAPKAssetStatusUMA, status); -@@ -468,8 +468,6 @@ void PrivacySandboxAttestations::OnAttestationsParsed( +@@ -469,8 +469,6 @@ void PrivacySandboxAttestations::OnAttestationsParsed( if (attestations_map.has_value() && (!file_version_.IsValid() || file_version_.CompareTo(version) < 0)) { // Parsing succeeded and the attestations file has newer version. @@ -275,7 +275,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_attestations/privacy_san } SetIsPreInstalled(is_pre_installed); -@@ -495,7 +493,7 @@ void PrivacySandboxAttestations::OnAttestationsFileCheckComplete() { +@@ -496,7 +494,7 @@ void PrivacySandboxAttestations::OnAttestationsFileCheckComplete() { // the in-memory attestations map. // TODO(crbug.com/406020732): Consider also loading the attestations component // from APK assets if the parsing has finished with error. @@ -331,7 +331,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_prefs.cc b/components/pr diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/components/privacy_sandbox/privacy_sandbox_settings_impl.cc --- a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc +++ b/components/privacy_sandbox/privacy_sandbox_settings_impl.cc -@@ -132,7 +132,7 @@ std::set GetTopicsSetFromString( +@@ -131,7 +131,7 @@ std::set GetTopicsSetFromString( // static bool PrivacySandboxSettingsImpl::IsAllowed(Status status) { @@ -340,7 +340,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo } // static -@@ -247,7 +247,8 @@ PrivacySandboxSettingsImpl::GetFinchPrioritizedTopics() { +@@ -246,7 +246,8 @@ PrivacySandboxSettingsImpl::GetFinchPrioritizedTopics() { return finch_prioritized_topics_; } @@ -350,7 +350,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo Status status = GetM1TopicAllowedStatus(); JoinHistogram(kIsTopicsAllowedHistogram, status); return IsAllowed(status); -@@ -279,7 +280,8 @@ bool PrivacySandboxSettingsImpl::IsTopicsAllowedForContext( +@@ -278,7 +279,8 @@ bool PrivacySandboxSettingsImpl::IsTopicsAllowedForContext( return IsAllowed(status); } @@ -360,7 +360,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo const auto& blocked_topics = pref_service_->GetList(prefs::kPrivacySandboxBlockedTopics); -@@ -494,6 +496,7 @@ bool PrivacySandboxSettingsImpl:: +@@ -493,6 +495,7 @@ bool PrivacySandboxSettingsImpl:: void PrivacySandboxSettingsImpl::SetFledgeJoiningAllowed( const std::string& top_frame_etld_plus1, bool allowed) { @@ -368,7 +368,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo ScopedDictPrefUpdate scoped_pref_update( pref_service_, prefs::kPrivacySandboxFledgeJoinBlocked); -@@ -563,7 +566,8 @@ void PrivacySandboxSettingsImpl::ClearFledgeJoiningAllowedSettings( +@@ -562,7 +565,8 @@ void PrivacySandboxSettingsImpl::ClearFledgeJoiningAllowedSettings( } bool PrivacySandboxSettingsImpl::IsFledgeJoiningAllowed( @@ -378,7 +378,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo ScopedDictPrefUpdate scoped_pref_update( pref_service_, prefs::kPrivacySandboxFledgeJoinBlocked); auto& pref_data = scoped_pref_update.Get(); -@@ -900,7 +904,10 @@ void PrivacySandboxSettingsImpl::SetDelegateForTesting( +@@ -899,7 +903,10 @@ void PrivacySandboxSettingsImpl::SetDelegateForTesting( delegate_ = std::move(delegate); } @@ -390,7 +390,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo pref_service_->SetTime(prefs::kPrivacySandboxTopicsDataAccessibleSince, base::Time::Now()); -@@ -913,6 +920,7 @@ PrivacySandboxSettingsImpl::Status +@@ -912,6 +919,7 @@ PrivacySandboxSettingsImpl::Status PrivacySandboxSettingsImpl::GetSiteAccessAllowedStatus( const url::Origin& top_frame_origin, const GURL& url) const { @@ -398,7 +398,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo // Relying on |host_content_settings_map_| instead of |cookie_settings_| // allows to query whether the site associated with the |url| is allowed to // access Site data (aka ContentSettingsType::COOKIES) without considering any -@@ -927,6 +935,7 @@ PrivacySandboxSettingsImpl::GetSiteAccessAllowedStatus( +@@ -926,6 +934,7 @@ PrivacySandboxSettingsImpl::GetSiteAccessAllowedStatus( PrivacySandboxSettingsImpl::Status PrivacySandboxSettingsImpl::GetPrivacySandboxAllowedStatus( bool should_ignore_restriction /*=false*/) const { @@ -453,7 +453,7 @@ diff --git a/content/browser/shared_storage/shared_storage_document_service_impl diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc --- a/content/public/browser/content_browser_client.cc +++ b/content/public/browser/content_browser_client.cc -@@ -1708,7 +1708,7 @@ bool ContentBrowserClient::ShouldPreconnectNavigation( +@@ -1717,7 +1717,7 @@ bool ContentBrowserClient::ShouldPreconnectNavigation( } bool ContentBrowserClient::IsFirstPartySetsEnabled() { @@ -489,7 +489,7 @@ new file mode 100644 diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc --- a/third_party/blink/common/features.cc +++ b/third_party/blink/common/features.cc -@@ -2600,6 +2600,7 @@ BASE_FEATURE(kUnframedIwa, base::FEATURE_DISABLED_BY_DEFAULT); +@@ -2641,6 +2641,7 @@ BASE_FEATURE(kUnframedIwa, base::FEATURE_DISABLED_BY_DEFAULT); // constants for features in the section above. bool IsAllowURNsInIframeEnabled() { diff --git a/build/patches/Disable-references-to-fonts.googleapis.com.patch b/build/patches/Disable-references-to-fonts.googleapis.com.patch index aceed8fd..47a6c4a2 100644 --- a/build/patches/Disable-references-to-fonts.googleapis.com.patch +++ b/build/patches/Disable-references-to-fonts.googleapis.com.patch @@ -13,11 +13,11 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../org/chromium/chrome/browser/fonts/FontPreloader.java | 1 + .../side_panel/read_anything/app/read_anything_toolbar.ts | 4 +--- .../content/browser/dom_distiller_viewer_source.cc | 2 +- - .../dom_distiller/core/html/dom_distiller_viewer.html | 2 -- + .../dom_distiller/core/html/dom_distiller_viewer.html | 4 ---- components/dom_distiller/core/html/preview.html | 2 +- .../content/browser/font/AndroidFontLookupImpl.java | 1 + .../crashpad/crashpad/doc/support/crashpad_doxygen.css | 3 +-- - 13 files changed, 11 insertions(+), 45 deletions(-) + 13 files changed, 11 insertions(+), 47 deletions(-) diff --git a/chrome/android/java/res/font/reader_mode_lexend.xml b/chrome/android/java/res/font/reader_mode_lexend.xml --- a/chrome/android/java/res/font/reader_mode_lexend.xml @@ -120,7 +120,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/fonts/FontPrelo diff --git a/chrome/browser/resources/side_panel/read_anything/app/read_anything_toolbar.ts b/chrome/browser/resources/side_panel/read_anything/app/read_anything_toolbar.ts --- a/chrome/browser/resources/side_panel/read_anything/app/read_anything_toolbar.ts +++ b/chrome/browser/resources/side_panel/read_anything/app/read_anything_toolbar.ts -@@ -419,9 +419,7 @@ export class ReadAnythingToolbarElement extends ReadAnythingToolbarElementBase { +@@ -429,9 +429,7 @@ export class ReadAnythingToolbarElement extends ReadAnythingToolbarElementBase { const link = document.createElement('link'); link.rel = 'preload'; link.as = 'style'; @@ -146,15 +146,21 @@ diff --git a/components/dom_distiller/content/browser/dom_distiller_viewer_sourc diff --git a/components/dom_distiller/core/html/dom_distiller_viewer.html b/components/dom_distiller/core/html/dom_distiller_viewer.html --- a/components/dom_distiller/core/html/dom_distiller_viewer.html +++ b/components/dom_distiller/core/html/dom_distiller_viewer.html -@@ -17,8 +17,6 @@ found in the LICENSE file. +@@ -17,14 +17,10 @@ found in the LICENSE file. $1 $i18n{title} - - - - + +- + + $2 + diff --git a/components/dom_distiller/core/html/preview.html b/components/dom_distiller/core/html/preview.html --- a/components/dom_distiller/core/html/preview.html +++ b/components/dom_distiller/core/html/preview.html diff --git a/build/patches/Disable-remote-altsvc-for-h3-connections.patch b/build/patches/Disable-remote-altsvc-for-h3-connections.patch index f22e540e..ece1de50 100644 --- a/build/patches/Disable-remote-altsvc-for-h3-connections.patch +++ b/build/patches/Disable-remote-altsvc-for-h3-connections.patch @@ -26,7 +26,7 @@ diff --git a/net/http/http_server_properties_manager.cc b/net/http/http_server_p diff --git a/net/http/http_stream_factory_job_controller.cc b/net/http/http_stream_factory_job_controller.cc --- a/net/http/http_stream_factory_job_controller.cc +++ b/net/http/http_stream_factory_job_controller.cc -@@ -1346,11 +1346,7 @@ HttpStreamFactory::JobController::GetAdvertisedAltSvcInternal( +@@ -1347,11 +1347,7 @@ HttpStreamFactory::JobController::GetAdvertisedAltSvcInternal( // single user on a multi-user system to hijack the alternate protocol. // These systems also enforce ports <1024 as restricted ports. So don't // allow protocol upgrades to user-controllable ports. @@ -39,7 +39,7 @@ diff --git a/net/http/http_stream_factory_job_controller.cc b/net/http/http_stre continue; } -@@ -1394,8 +1390,7 @@ HttpStreamFactory::JobController::GetAdvertisedAltSvcInternal( +@@ -1395,8 +1391,7 @@ HttpStreamFactory::JobController::GetAdvertisedAltSvcInternal( GURL destination = CreateAltSvcUrl( request_info.url, alternative_service_info.GetHostPortPair()); diff --git a/build/patches/Disable-requests-for-single-word-Omnibar-searches.patch b/build/patches/Disable-requests-for-single-word-Omnibar-searches.patch index 065ba8b7..882bb35e 100644 --- a/build/patches/Disable-requests-for-single-word-Omnibar-searches.patch +++ b/build/patches/Disable-requests-for-single-word-Omnibar-searches.patch @@ -12,7 +12,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/ui/omnibox/chrome_omnibox_navigation_observer.cc b/chrome/browser/ui/omnibox/chrome_omnibox_navigation_observer.cc --- a/chrome/browser/ui/omnibox/chrome_omnibox_navigation_observer.cc +++ b/chrome/browser/ui/omnibox/chrome_omnibox_navigation_observer.cc -@@ -78,6 +78,7 @@ bool OnlyChangeIsFromHTTPToHTTPS(const GURL& origin, const GURL& destination) { +@@ -79,6 +79,7 @@ bool OnlyChangeIsFromHTTPToHTTPS(const GURL& origin, const GURL& destination) { return origin_with_https == destination; } @@ -20,7 +20,7 @@ diff --git a/chrome/browser/ui/omnibox/chrome_omnibox_navigation_observer.cc b/c // Choose the appropriate URLLoaderFactory: either an explicitly specified or a // default for the given profile. network::mojom::URLLoaderFactory* GetURLLoaderFactory( -@@ -90,6 +91,7 @@ network::mojom::URLLoaderFactory* GetURLLoaderFactory( +@@ -91,6 +92,7 @@ network::mojom::URLLoaderFactory* GetURLLoaderFactory( ->GetURLLoaderFactoryForBrowserProcess() .get(); } @@ -28,7 +28,7 @@ diff --git a/chrome/browser/ui/omnibox/chrome_omnibox_navigation_observer.cc b/c // Helper to keep ChromeOmniboxNavigationObserver alive while the initiated // navigation is pending. -@@ -256,13 +258,6 @@ ChromeOmniboxNavigationObserver::ChromeOmniboxNavigationObserver( +@@ -257,13 +259,6 @@ ChromeOmniboxNavigationObserver::ChromeOmniboxNavigationObserver( profile_(profile), show_infobar_(std::move(show_infobar)) { NavigationUserData::CreateForNavigationHandle(navigation, this); diff --git a/build/patches/Disable-safety-check.patch b/build/patches/Disable-safety-check.patch index 6cbf144f..94997dc7 100644 --- a/build/patches/Disable-safety-check.patch +++ b/build/patches/Disable-safety-check.patch @@ -23,7 +23,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -445,7 +445,6 @@ if (_is_default_toolchain) { +@@ -458,7 +458,6 @@ if (_is_default_toolchain) { "//chrome/browser/recent_tabs:java", "//chrome/browser/regional_capabilities/android:java", "//chrome/browser/safe_browsing/android:java", @@ -31,7 +31,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/safety_hub/android:java", "//chrome/browser/screenshot_monitor:java", "//chrome/browser/search_engines/android:java", -@@ -1129,8 +1128,6 @@ if (_is_default_toolchain) { +@@ -1147,8 +1146,6 @@ if (_is_default_toolchain) { "//chrome/browser/recent_tabs:junit", "//chrome/browser/recent_tabs/internal:junit", "//chrome/browser/safe_browsing/android:junit", @@ -40,7 +40,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/search_engines/android:junit", "//chrome/browser/search_resumption:junit", "//chrome/browser/serial/android:junit", -@@ -1422,8 +1419,6 @@ if (_is_default_toolchain) { +@@ -1460,8 +1457,6 @@ if (_is_default_toolchain) { "//chrome/browser/quick_delete:javatests", "//chrome/browser/renderer_host/android:javatests", "//chrome/browser/safe_browsing/android:javatests", @@ -52,7 +52,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn 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 -@@ -990,7 +990,6 @@ chrome_java_sources = [ +@@ -1001,7 +1001,6 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingPasswordReuseDialogBridge.java", "java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingReferringAppBridge.java", "java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingSettingsNavigation.java", @@ -63,19 +63,19 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml --- a/chrome/android/java/res/xml/main_preferences.xml +++ b/chrome/android/java/res/xml/main_preferences.xml -@@ -55,7 +55,7 @@ found in the LICENSE file. +@@ -54,7 +54,7 @@ found in the LICENSE file. android:fragment="org.chromium.chrome.browser.safety_hub.SafetyHubFragment" android:key="safety_hub" - android:order="10" + android:order="9" - android:title="@string/prefs_safety_check"/> + android:title="@string/prefs_safety_check" app:isPreferenceVisible="false"/> - - windowAndroid.getModalDialogManager(), +- () -> assertNonNull(windowAndroid.getModalDialogManager()), - accountEmail, - new SettingsCustomTabLauncherImpl()); } @@ -156,7 +156,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme if (fragment instanceof CredentialEntryFragmentViewBase) { CredentialEditUiFactory.create((CredentialEntryFragmentViewBase) fragment, mProfile); } -@@ -216,14 +198,6 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl +@@ -218,14 +200,6 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl .setModalDialogManagerSupplier( (Supplier<@Nullable ModalDialogManager>) mModalDialogManagerSupplier); } @@ -171,7 +171,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme if (fragment instanceof INeedSnackbarManager) { ((INeedSnackbarManager)fragment).setSnackbarManagerSupplier(mSnackbarManagerSupplier); } -@@ -238,8 +212,5 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl +@@ -240,8 +214,5 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl if (fragment instanceof ManageSyncSettings) { ((ManageSyncSettings) fragment).setSnackbarManagerSupplier(mSnackbarManagerSupplier); } @@ -183,7 +183,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java -@@ -378,7 +378,7 @@ public class MainSettings extends ChromeBaseSettingsFragment +@@ -385,7 +385,7 @@ public class MainSettings extends ChromeBaseSettingsFragment } private static boolean shouldShowSafetyHubPref() { @@ -215,7 +215,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/search/SearchIndexProviderRegistry.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/search/SearchIndexProviderRegistry.java --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/search/SearchIndexProviderRegistry.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/search/SearchIndexProviderRegistry.java -@@ -123,8 +123,6 @@ public final class SearchIndexProviderRegistry { +@@ -124,8 +124,6 @@ public final class SearchIndexProviderRegistry { .SEARCH_INDEX_DATA_PROVIDER, org.chromium.chrome.browser.privacy.settings.PrivacySettings .SEARCH_INDEX_DATA_PROVIDER, @@ -227,7 +227,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/search diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -3411,7 +3411,6 @@ static_library("browser") { +@@ -3395,7 +3395,6 @@ static_library("browser") { "//chrome/browser/recent_tabs:jni_headers", "//chrome/browser/regional_capabilities", "//chrome/browser/safe_browsing/android:safe_browsing_enums", diff --git a/build/patches/Disable-smart-selection-by-default.patch b/build/patches/Disable-smart-selection-by-default.patch index 5d625b24..6e07695b 100644 --- a/build/patches/Disable-smart-selection-by-default.patch +++ b/build/patches/Disable-smart-selection-by-default.patch @@ -45,7 +45,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextualsearc 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 -@@ -276,6 +276,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -282,6 +282,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kCCTFreInSameTask, &kCCTGoogleBottomBar, &kCCTGoogleBottomBarVariantLayouts, @@ -56,7 +56,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse 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 -@@ -610,6 +610,7 @@ public abstract class ChromeFeatureList { +@@ -611,6 +611,7 @@ public abstract class ChromeFeatureList { public static final String SEARCH_IN_SETTINGS = "SearchInSettings"; public static final String SEARCH_RESUMPTION_MODULE_ANDROID = "SearchResumptionModuleAndroid"; public static final String SEED_ACCOUNTS_REVAMP = "SeedAccountsRevamp"; @@ -67,7 +67,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f diff --git a/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java b/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java --- a/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java +++ b/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java -@@ -984,7 +984,6 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper +@@ -996,7 +996,6 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper public boolean canWebSearch() { return hasSelection() && !isFocusedNodeEditable() diff --git a/build/patches/Disable-some-signed-exchange-features.patch b/build/patches/Disable-some-signed-exchange-features.patch index 10b51fcb..9cc0a016 100644 --- a/build/patches/Disable-some-signed-exchange-features.patch +++ b/build/patches/Disable-some-signed-exchange-features.patch @@ -11,7 +11,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -1432,7 +1432,7 @@ void ChromeContentBrowserClient::RegisterProfilePrefs( +@@ -1460,7 +1460,7 @@ void ChromeContentBrowserClient::RegisterProfilePrefs( site_isolation::prefs::kWebTriggeredIsolatedOrigins); registry->RegisterDictionaryPref( prefs::kDevToolsBackgroundServicesExpirationDict); diff --git a/build/patches/Disable-speechSynthesis-getVoices-API.patch b/build/patches/Disable-speechSynthesis-getVoices-API.patch index 77e555ad..cbf57c90 100644 --- a/build/patches/Disable-speechSynthesis-getVoices-API.patch +++ b/build/patches/Disable-speechSynthesis-getVoices-API.patch @@ -31,7 +31,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc --- a/chrome/renderer/chrome_content_renderer_client.cc +++ b/chrome/renderer/chrome_content_renderer_client.cc -@@ -1411,7 +1411,7 @@ ChromeContentRendererClient::CreateWorkerContentSettingsClient( +@@ -1426,7 +1426,7 @@ ChromeContentRendererClient::CreateWorkerContentSettingsClient( std::unique_ptr ChromeContentRendererClient::CreateSpeechRecognitionClient( content::RenderFrame* render_frame) { diff --git a/build/patches/Disable-text-fragments-by-default.patch b/build/patches/Disable-text-fragments-by-default.patch index c1c7cc25..2cc29102 100644 --- a/build/patches/Disable-text-fragments-by-default.patch +++ b/build/patches/Disable-text-fragments-by-default.patch @@ -34,7 +34,7 @@ diff --git a/chrome/browser/ui/prefs/prefs_tab_helper.cc b/chrome/browser/ui/pre diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc --- a/content/child/runtime_features.cc +++ b/content/child/runtime_features.cc -@@ -276,6 +276,8 @@ void SetRuntimeFeaturesFromChromiumFeatures() { +@@ -278,6 +278,8 @@ void SetRuntimeFeaturesFromChromiumFeatures() { {wf::EnableTouchDragAndDrop, raw_ref(features::kTouchDragAndDrop)}, {wf::EnableTouchDragAndContextMenu, raw_ref(features::kTouchDragAndContextMenu)}, @@ -74,9 +74,9 @@ new file mode 100644 diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc --- a/third_party/blink/renderer/core/dom/document.cc +++ b/third_party/blink/renderer/core/dom/document.cc -@@ -4992,9 +4992,14 @@ void Document::SetURL(const KURL& url) { - TRACE_EVENT_FLAG_FLOW_IN | TRACE_EVENT_FLAG_FLOW_OUT, - "url", new_url.GetString().Utf8()); +@@ -4974,9 +4974,14 @@ void Document::SetURL(const KURL& url) { + TRACE_EVENT("blink", "Document::SetURL", perfetto::Flow::FromPointer(this), + "url", new_url.GetString().Utf8()); + // If text fragment identifiers are enabled, we strip the fragment directive + // from the URL fragment. @@ -92,7 +92,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -5297,10 +5297,9 @@ +@@ -5427,10 +5427,9 @@ }, { name: "TextFragmentIdentifiers", diff --git a/build/patches/Disable-third-party-origin-trials.patch b/build/patches/Disable-third-party-origin-trials.patch index d4b9672c..3a9809be 100644 --- a/build/patches/Disable-third-party-origin-trials.patch +++ b/build/patches/Disable-third-party-origin-trials.patch @@ -76,7 +76,7 @@ diff --git a/components/embedder_support/origin_trials/origin_trial_policy_impl. diff --git a/content/browser/renderer_host/navigation_request.cc b/content/browser/renderer_host/navigation_request.cc --- a/content/browser/renderer_host/navigation_request.cc +++ b/content/browser/renderer_host/navigation_request.cc -@@ -9791,7 +9791,6 @@ void NavigationRequest::SetSourceSiteInstanceToInitiatorIfNeeded() { +@@ -9948,7 +9948,6 @@ void NavigationRequest::SetSourceSiteInstanceToInitiatorIfNeeded() { void NavigationRequest::ForceEnableOriginTrials( const std::vector& trials) { DCHECK(!HasCommitted()); @@ -116,7 +116,7 @@ diff --git a/content/browser/renderer_host/origin_trial_state_host_impl.cc b/con diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc -@@ -532,10 +532,6 @@ void FillNavigationParamsRequest( +@@ -533,10 +533,6 @@ void FillNavigationParamsRequest( common_params.initiator_origin.value(); } @@ -127,9 +127,9 @@ diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_fra navigation_params->was_discarded = commit_params.was_discarded; navigation_params->document_ukm_source_id = commit_params.document_ukm_source_id; -@@ -558,8 +554,8 @@ void FillNavigationParamsRequest( +@@ -559,8 +555,8 @@ void FillNavigationParamsRequest( navigation_params->had_transient_user_activation = - common_params.has_user_gesture; + common_params.has_possibly_filtered_user_gesture; - navigation_params->force_enabled_origin_trials = base::ToVector( - commit_params.force_enabled_origin_trials, &WebString::FromASCII); @@ -138,7 +138,7 @@ diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_fra navigation_params->early_hints_preloaded_resources = base::ToVector( commit_params.early_hints_preloaded_resources, blink::ToWebURL); -@@ -646,7 +642,7 @@ blink::mojom::CommonNavigationParamsPtr MakeCommonNavigationParams( +@@ -647,7 +643,7 @@ blink::mojom::CommonNavigationParamsPtr MakeCommonNavigationParams( info->url_request.HasUserGesture(), info->url_request.HasTextFragmentToken(), info->should_check_main_world_content_security_policy, @@ -190,7 +190,7 @@ diff --git a/third_party/blink/common/origin_trials/trial_token_validator.cc b/t diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc --- a/third_party/blink/renderer/core/loader/document_loader.cc +++ b/third_party/blink/renderer/core/loader/document_loader.cc -@@ -197,13 +197,6 @@ namespace { +@@ -198,13 +198,6 @@ namespace { Vector CopyInitiatorOriginTrials( const std::vector& initiator_origin_trial_features) { Vector result; @@ -204,7 +204,7 @@ diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_p return result; } -@@ -217,16 +210,13 @@ std::vector CopyInitiatorOriginTrials( +@@ -218,16 +211,13 @@ std::vector CopyInitiatorOriginTrials( Vector CopyForceEnabledOriginTrials( const std::vector& force_enabled_origin_trials) { Vector result; @@ -223,7 +223,7 @@ diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_p } bool IsPagePopupRunningInWebTest(LocalFrame* frame) { -@@ -3249,10 +3239,6 @@ void DocumentLoader::CreateParserPostCommit() { +@@ -3240,10 +3230,6 @@ void DocumentLoader::CreateParserPostCommit() { mojom::blink::OriginTrialFeature::kTouchEventFeatureDetection); } diff --git a/build/patches/Disable-various-metrics.patch b/build/patches/Disable-various-metrics.patch index c66ad897..6312ffa7 100644 --- a/build/patches/Disable-various-metrics.patch +++ b/build/patches/Disable-various-metrics.patch @@ -54,17 +54,17 @@ diff --git a/chrome/browser/android/ntp/most_visited_sites_bridge.cc b/chrome/br namespace { -@@ -262,7 +260,6 @@ void MostVisitedSitesBridge::AddOrRemoveBlockedUrl( - void MostVisitedSitesBridge::RecordPageImpression( - JNIEnv* env, - jint jtiles_count) { +@@ -261,7 +259,6 @@ void MostVisitedSitesBridge::AddOrRemoveBlockedUrl( + + void MostVisitedSitesBridge::RecordPageImpression(JNIEnv* env, + int32_t jtiles_count) { - ntp_tiles::metrics::RecordPageImpression(jtiles_count); } void MostVisitedSitesBridge::RecordTileImpression( -@@ -273,15 +270,6 @@ void MostVisitedSitesBridge::RecordTileImpression( - jint jtitle_source, - jint jsource, +@@ -272,15 +269,6 @@ void MostVisitedSitesBridge::RecordTileImpression( + int32_t jtitle_source, + int32_t jsource, const JavaRef& jurl) { - GURL url = url::GURLAndroid::ToNativeGURL(env, jurl); - TileTitleSource title_source = static_cast(jtitle_source); @@ -77,11 +77,11 @@ diff --git a/chrome/browser/android/ntp/most_visited_sites_bridge.cc b/chrome/br - jindex, source, title_source, visual_type, icon_type, url)); } - void MostVisitedSitesBridge::RecordOpenedMostVisitedItem( -@@ -290,11 +278,6 @@ void MostVisitedSitesBridge::RecordOpenedMostVisitedItem( - jint tile_type, - jint title_source, - jint source) { + void MostVisitedSitesBridge::RecordOpenedMostVisitedItem(JNIEnv* env, +@@ -288,11 +276,6 @@ void MostVisitedSitesBridge::RecordOpenedMostVisitedItem(JNIEnv* env, + int32_t tile_type, + int32_t title_source, + int32_t source) { - ntp_tiles::metrics::RecordTileClick(ntp_tiles::NTPTileImpression( - index, static_cast(source), - static_cast(title_source), @@ -89,11 +89,11 @@ diff --git a/chrome/browser/android/ntp/most_visited_sites_bridge.cc b/chrome/br - /*url_for_rappor=*/GURL())); } - jdouble MostVisitedSitesBridge::GetSuggestionScore(JNIEnv* env, + double MostVisitedSitesBridge::GetSuggestionScore(JNIEnv* env, diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc --- a/chrome/browser/browser_process_impl.cc +++ b/chrome/browser/browser_process_impl.cc -@@ -1239,7 +1239,7 @@ void BrowserProcessImpl::RegisterPrefs(PrefRegistrySimple* registry) { +@@ -1247,7 +1247,7 @@ void BrowserProcessImpl::RegisterPrefs(PrefRegistrySimple* registry) { #endif // BUILDFLAG(IS_CHROMEOS) registry->RegisterBooleanPref(metrics::prefs::kMetricsReportingEnabled, @@ -105,9 +105,9 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -1378,7 +1378,6 @@ ChromeContentBrowserClient::ChromeContentBrowserClient() { +@@ -1406,7 +1406,6 @@ ChromeContentBrowserClient::ChromeContentBrowserClient() { extra_parts_.push_back( - std::make_unique()); + std::make_unique()); #endif - #if !BUILDFLAG(IS_ANDROID) @@ -116,7 +116,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch diff --git a/chrome/browser/chrome_content_browser_client_navigation_throttles.cc b/chrome/browser/chrome_content_browser_client_navigation_throttles.cc --- a/chrome/browser/chrome_content_browser_client_navigation_throttles.cc +++ b/chrome/browser/chrome_content_browser_client_navigation_throttles.cc -@@ -14,7 +14,6 @@ +@@ -17,7 +17,6 @@ #include "chrome/browser/first_party_sets/first_party_sets_navigation_throttle.h" #include "chrome/browser/history/history_service_factory.h" #include "chrome/browser/interstitials/enterprise_util.h" @@ -124,7 +124,7 @@ diff --git a/chrome/browser/chrome_content_browser_client_navigation_throttles.c #include "chrome/browser/plugins/pdf_iframe_navigation_throttle.h" #include "chrome/browser/policy/chrome_policy_blocklist_service_factory.h" #include "chrome/browser/policy/policy_util.h" -@@ -261,18 +260,6 @@ void MaybeCreateAndAddVisitedLinkNavigationThrottle( +@@ -270,18 +269,6 @@ void MaybeCreateAndAddVisitedLinkNavigationThrottle( void CreateAndAddChromeThrottlesForNavigation( content::NavigationThrottleRegistry& registry) { content::NavigationHandle& handle = registry.GetNavigationHandle(); @@ -142,8 +142,8 @@ diff --git a/chrome/browser/chrome_content_browser_client_navigation_throttles.c - #if BUILDFLAG(IS_ANDROID) // TODO(davidben): This is insufficient to integrate with prerender properly. - // https://crbug.com/370595 -@@ -369,8 +356,6 @@ void CreateAndAddChromeThrottlesForNavigation( + // https://crbug.com/40364296 +@@ -389,8 +376,6 @@ void CreateAndAddChromeThrottlesForNavigation( throttle_manager->MaybeCreateAndAddNavigationThrottles(registry); } @@ -155,7 +155,7 @@ diff --git a/chrome/browser/chrome_content_browser_client_navigation_throttles.c diff --git a/chrome/browser/metrics/chrome_metrics_services_manager_client.cc b/chrome/browser/metrics/chrome_metrics_services_manager_client.cc --- a/chrome/browser/metrics/chrome_metrics_services_manager_client.cc +++ b/chrome/browser/metrics/chrome_metrics_services_manager_client.cc -@@ -86,6 +86,10 @@ BASE_FEATURE(kPostFREFixMetricsReportingFeature, +@@ -85,6 +85,10 @@ BASE_FEATURE(kPostFREFixMetricsReportingFeature, // Name of the variations param that defines the sampling rate. const char kRateParamName[] = "sampling_rate_per_mille"; @@ -201,7 +201,7 @@ diff --git a/components/ntp_tiles/BUILD.gn b/components/ntp_tiles/BUILD.gn "most_visited_sites.cc", "most_visited_sites.h", "ntp_tile.cc", -@@ -125,7 +123,6 @@ source_set("unit_tests") { +@@ -126,7 +124,6 @@ source_set("unit_tests") { "custom_links_manager_impl_unittest.cc", "custom_links_store_unittest.cc", "icon_cacher_impl_unittest.cc", @@ -223,7 +223,7 @@ diff --git a/components/ntp_tiles/custom_links_manager_impl.cc b/components/ntp_ diff --git a/components/ntp_tiles/most_visited_sites.cc b/components/ntp_tiles/most_visited_sites.cc --- a/components/ntp_tiles/most_visited_sites.cc +++ b/components/ntp_tiles/most_visited_sites.cc -@@ -942,10 +942,6 @@ void MostVisitedSites::SaveTilesAndNotify( +@@ -963,10 +963,6 @@ void MostVisitedSites::SaveTilesAndNotify( ? RemoveInvalidPreinstallApps(new_tiles) : new_tiles; diff --git a/build/patches/Disallow-Android-App-Scheme-as-referrer.patch b/build/patches/Disallow-Android-App-Scheme-as-referrer.patch index d1092c52..e1356528 100644 --- a/build/patches/Disallow-Android-App-Scheme-as-referrer.patch +++ b/build/patches/Disallow-Android-App-Scheme-as-referrer.patch @@ -9,7 +9,7 @@ Subject: Disallow Android App Scheme as referrer diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc --- a/chrome/renderer/chrome_content_renderer_client.cc +++ b/chrome/renderer/chrome_content_renderer_client.cc -@@ -551,11 +551,6 @@ void ChromeContentRendererClient::RenderThreadStarted() { +@@ -557,11 +557,6 @@ void ChromeContentRendererClient::RenderThreadStarted() { // TODO(nyquist): Add test to ensure this happens when the flag is set. WebSecurityPolicy::RegisterURLSchemeAsDisplayIsolated(dom_distiller_scheme); diff --git a/build/patches/Do-not-build-API-keys-infobar.patch b/build/patches/Do-not-build-API-keys-infobar.patch index c63b0111..f16da2c5 100644 --- a/build/patches/Do-not-build-API-keys-infobar.patch +++ b/build/patches/Do-not-build-API-keys-infobar.patch @@ -16,21 +16,21 @@ diff --git a/chrome/browser/ui/startup/BUILD.gn b/chrome/browser/ui/startup/BUIL sources += [ "automation_infobar_delegate.h", - "google_api_keys_infobar_delegate.h", + "google_chrome_scheme_util.h", "infobar_utils.h", "launch_mode_recorder.h", - "obsolete_system_infobar_delegate.h", -@@ -155,7 +154,6 @@ source_set("impl") { +@@ -174,7 +173,6 @@ source_set("impl") { if (!is_android) { sources += [ "automation_infobar_delegate.cc", - "google_api_keys_infobar_delegate.cc", + "google_chrome_scheme_util.cc", "infobar_utils.cc", "launch_mode_recorder.cc", - "obsolete_system_infobar_delegate.cc", diff --git a/chrome/browser/ui/startup/infobar_utils.cc b/chrome/browser/ui/startup/infobar_utils.cc --- a/chrome/browser/ui/startup/infobar_utils.cc +++ b/chrome/browser/ui/startup/infobar_utils.cc -@@ -180,10 +180,6 @@ void AddInfoBarsIfNecessary(BrowserWindowInterface* browser, +@@ -186,10 +186,6 @@ void AddInfoBarsIfNecessary(BrowserWindowInterface* browser, infobars::ContentInfoBarManager* infobar_manager = infobars::ContentInfoBarManager::FromWebContents(web_contents); diff --git a/build/patches/Do-not-compile-QR-code-sharing.patch b/build/patches/Do-not-compile-QR-code-sharing.patch index 540e6599..cb6e28b6 100644 --- a/build/patches/Do-not-compile-QR-code-sharing.patch +++ b/build/patches/Do-not-compile-QR-code-sharing.patch @@ -19,7 +19,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -2858,7 +2858,6 @@ if (_is_default_toolchain) { +@@ -2900,7 +2900,6 @@ if (_is_default_toolchain) { "../browser/share/android/java/src/org/chromium/chrome/browser/share/link_to_text/LinkToTextBridge.java", "../browser/share/android/java/src/org/chromium/chrome/browser/share/long_screenshots/bitmap_generation/LongScreenshotsTabService.java", "../browser/share/android/java/src/org/chromium/chrome/browser/share/long_screenshots/bitmap_generation/LongScreenshotsTabServiceFactory.java", @@ -30,7 +30,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java -@@ -135,7 +135,6 @@ import org.chromium.chrome.browser.recent_tabs.RestoreTabsFeatureHelper; +@@ -141,7 +141,6 @@ import org.chromium.chrome.browser.recent_tabs.RestoreTabsFeatureHelper; import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; import org.chromium.chrome.browser.share.ShareDelegate; import org.chromium.chrome.browser.share.ShareDelegate.ShareOrigin; @@ -38,7 +38,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi import org.chromium.chrome.browser.share.scroll_capture.ScrollCaptureManager; import org.chromium.chrome.browser.tab.AccessibilityVisibilityHandler; import org.chromium.chrome.browser.tab.AutofillSessionLifetimeController; -@@ -770,10 +769,6 @@ public class RootUiCoordinator +@@ -785,10 +784,6 @@ public class RootUiCoordinator } public void onAttachFragment(Fragment fragment) { @@ -52,7 +52,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc -@@ -1615,7 +1615,7 @@ void RegisterLocalState(PrefRegistrySimple* registry) { +@@ -1665,7 +1665,7 @@ void RegisterLocalState(PrefRegistrySimple* registry) { registry->RegisterBooleanPref(prefs::kUiAutomationProviderEnabled, false); #endif @@ -155,7 +155,7 @@ diff --git a/chrome/browser/sharing_hub/sharing_hub_features.cc b/chrome/browser diff --git a/chrome/browser/ui/browser_command_controller.cc b/chrome/browser/ui/browser_command_controller.cc --- a/chrome/browser/ui/browser_command_controller.cc +++ b/chrome/browser/ui/browser_command_controller.cc -@@ -2093,10 +2093,10 @@ void BrowserCommandController::UpdateCommandsForFullscreenMode() { +@@ -2119,10 +2119,10 @@ void BrowserCommandController::UpdateCommandsForFullscreenMode() { command_updater_.UpdateCommandEnabled(IDC_CHROME_WHATS_NEW, show_main_ui); #endif command_updater_.UpdateCommandEnabled(IDC_CONTENT_CONTEXT_SHARING_SUBMENU, @@ -172,7 +172,7 @@ diff --git a/chrome/browser/ui/browser_command_controller.cc b/chrome/browser/ui diff --git a/chrome/browser/ui/browser_commands.cc b/chrome/browser/ui/browser_commands.cc --- a/chrome/browser/ui/browser_commands.cc +++ b/chrome/browser/ui/browser_commands.cc -@@ -2016,6 +2016,7 @@ void SendTabToSelf(Browser* browser) { +@@ -1994,6 +1994,7 @@ void SendTabToSelf(Browser* browser) { } bool CanGenerateQrCode(const Browser* browser) { diff --git a/build/patches/Do-not-link-with-libatomic.patch b/build/patches/Do-not-link-with-libatomic.patch index 7d8203bb..e207b947 100644 --- a/build/patches/Do-not-link-with-libatomic.patch +++ b/build/patches/Do-not-link-with-libatomic.patch @@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/base/BUILD.gn b/base/BUILD.gn --- a/base/BUILD.gn +++ b/base/BUILD.gn -@@ -1138,7 +1138,7 @@ component("base") { +@@ -1162,7 +1162,7 @@ component("base") { # more robust check for this. if (!use_sysroot && (is_android || is_chromeos || (is_linux && !is_castos)) && host_toolchain != "//build/toolchain/cros:host") { diff --git a/build/patches/Do-not-store-passwords-by-default.patch b/build/patches/Do-not-store-passwords-by-default.patch index 886cbd72..8912ead6 100644 --- a/build/patches/Do-not-store-passwords-by-default.patch +++ b/build/patches/Do-not-store-passwords-by-default.patch @@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/components/password_manager/core/browser/password_manager.cc b/components/password_manager/core/browser/password_manager.cc --- a/components/password_manager/core/browser/password_manager.cc +++ b/components/password_manager/core/browser/password_manager.cc -@@ -548,10 +548,10 @@ PasswordForm CreateFormForLeakCheck(const PasswordForm& pending_credentials, +@@ -547,10 +547,10 @@ PasswordForm CreateFormForLeakCheck(const PasswordForm& pending_credentials, void PasswordManager::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref( @@ -23,7 +23,7 @@ diff --git a/components/password_manager/core/browser/password_manager.cc b/comp user_prefs::PrefRegistrySyncable::SYNCABLE_PRIORITY_PREF); registry->RegisterBooleanPref( prefs::kWasAutoSignInFirstRunExperienceShown, false, -@@ -588,8 +588,8 @@ void PasswordManager::RegisterProfilePrefs( +@@ -587,8 +587,8 @@ void PasswordManager::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); registry->RegisterBooleanPref(prefs::kPasswordsPrefWithNewLabelUsed, false); #if BUILDFLAG(IS_ANDROID) diff --git a/build/patches/DoH-improvements.patch b/build/patches/DoH-improvements.patch index 6cfea2bc..2dd723de 100644 --- a/build/patches/DoH-improvements.patch +++ b/build/patches/DoH-improvements.patch @@ -33,8 +33,8 @@ diff --git a/chrome/browser/net/secure_dns_config.cc b/chrome/browser/net/secure diff --git a/chrome/browser/net/secure_dns_util.cc b/chrome/browser/net/secure_dns_util.cc --- a/chrome/browser/net/secure_dns_util.cc +++ b/chrome/browser/net/secure_dns_util.cc -@@ -43,7 +43,7 @@ bool EntryIsForCountry(const net::DohProviderEntry* entry, - return CountryId(country_code) == country_id; +@@ -35,7 +35,7 @@ bool EntryIsForCountry(const net::DohProviderEntry* entry, + return country_codes::CountryId(country_code) == country_id; }); if (matches) { - DCHECK(!entry->ui_name.empty()); @@ -84,10 +84,10 @@ diff --git a/chrome/browser/privacy/secure_dns_bridge.cc b/chrome/browser/privac diff --git a/chrome/browser/ui/webui/settings/settings_secure_dns_handler.cc b/chrome/browser/ui/webui/settings/settings_secure_dns_handler.cc --- a/chrome/browser/ui/webui/settings/settings_secure_dns_handler.cc +++ b/chrome/browser/ui/webui/settings/settings_secure_dns_handler.cc -@@ -128,7 +128,7 @@ base::Value::List SecureDnsHandler::GetSecureDnsResolverList() { +@@ -128,7 +128,7 @@ base::ListValue SecureDnsHandler::GetSecureDnsResolverList() { for (const net::DohProviderEntry* entry : providers_) { net::DnsOverHttpsConfig doh_config({entry->doh_server_config}); - base::Value::Dict dict; + base::DictValue dict; - dict.Set("name", entry->ui_name); + dict.Set("name", entry->ui_name_cromite.empty() ? entry->provider : entry->ui_name_cromite); dict.Set("value", doh_config.ToString()); @@ -96,7 +96,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_secure_dns_handler.cc b/c diff --git a/net/dns/dns_client.cc b/net/dns/dns_client.cc --- a/net/dns/dns_client.cc +++ b/net/dns/dns_client.cc -@@ -307,11 +307,14 @@ class DnsClientImpl : public DnsClient { +@@ -306,11 +306,14 @@ class DnsClientImpl : public DnsClient { private: std::optional BuildEffectiveConfig() const { DnsConfig config; @@ -113,7 +113,7 @@ diff --git a/net/dns/dns_client.cc b/net/dns/dns_client.cc config = config_overrides_.ApplyOverrides(system_config_.value()); } -@@ -327,8 +330,10 @@ class DnsClientImpl : public DnsClient { +@@ -326,8 +329,10 @@ class DnsClientImpl : public DnsClient { config.nameservers.clear(); } @@ -128,7 +128,7 @@ diff --git a/net/dns/dns_client.cc b/net/dns/dns_client.cc diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc --- a/net/dns/host_resolver_manager.cc +++ b/net/dns/host_resolver_manager.cc -@@ -650,6 +650,7 @@ void HostResolverManager::SetDnsConfigOverrides(DnsConfigOverrides overrides) { +@@ -649,6 +649,7 @@ void HostResolverManager::SetDnsConfigOverrides(DnsConfigOverrides overrides) { bool changed = dns_client_->SetConfigOverrides(std::move(overrides)); if (changed) { @@ -139,7 +139,7 @@ diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc diff --git a/net/dns/public/doh_provider_entry.cc b/net/dns/public/doh_provider_entry.cc --- a/net/dns/public/doh_provider_entry.cc +++ b/net/dns/public/doh_provider_entry.cc -@@ -381,16 +381,13 @@ DohProviderEntry::DohProviderEntry( +@@ -406,16 +406,13 @@ DohProviderEntry::DohProviderEntry( doh_server_config( ParseValidDohTemplate(std::move(dns_over_https_template), dns_over_https_server_ip_strs)), diff --git a/build/patches/Enable-Cert-Management-UI.patch b/build/patches/Enable-Cert-Management-UI.patch index 1d39a2a5..07ebc92e 100644 --- a/build/patches/Enable-Cert-Management-UI.patch +++ b/build/patches/Enable-Cert-Management-UI.patch @@ -15,7 +15,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/net/profile_network_context_service.cc b/chrome/browser/net/profile_network_context_service.cc --- a/chrome/browser/net/profile_network_context_service.cc +++ b/chrome/browser/net/profile_network_context_service.cc -@@ -619,7 +619,12 @@ void ProfileNetworkContextService::RegisterProfilePrefs( +@@ -605,7 +605,12 @@ void ProfileNetworkContextService::RegisterProfilePrefs( registry->RegisterListPref(prefs::kCAHintCertificates); #if !BUILDFLAG(IS_CHROMEOS) // Include user added platform certs by default. diff --git a/build/patches/Enable-Certificate-Transparency.patch b/build/patches/Enable-Certificate-Transparency.patch index 4fb44df7..48ee5e72 100644 --- a/build/patches/Enable-Certificate-Transparency.patch +++ b/build/patches/Enable-Certificate-Transparency.patch @@ -35,7 +35,7 @@ diff --git a/chrome/browser/browser_features.h b/chrome/browser/browser_features diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc --- a/chrome/browser/net/system_network_context_manager.cc +++ b/chrome/browser/net/system_network_context_manager.cc -@@ -1137,7 +1137,7 @@ bool SystemNetworkContextManager::IsCertificateTransparencyEnabled() { +@@ -1120,7 +1120,7 @@ bool SystemNetworkContextManager::IsCertificateTransparencyEnabled() { // - on an opt-in basis for other builds and embedders, controlled with the // kCertificateTransparencyAskBeforeEnabling flag return base::FeatureList::IsEnabled( @@ -113,7 +113,7 @@ diff --git a/services/network/sct_auditing/sct_auditing_handler.cc b/services/ne // Only audit valid SCTs. This ensures that they come from a known log, have // a valid signature, and thus are expected to be public certificates. If -@@ -321,6 +322,7 @@ void SCTAuditingHandler::AddReporter( +@@ -320,6 +321,7 @@ void SCTAuditingHandler::AddReporter( if (mode_ == mojom::SCTAuditingMode::kDisabled) { return; } diff --git a/build/patches/Enable-ClientHello-Segmentation.patch b/build/patches/Enable-ClientHello-Segmentation.patch index 60ded55b..180416cb 100644 --- a/build/patches/Enable-ClientHello-Segmentation.patch +++ b/build/patches/Enable-ClientHello-Segmentation.patch @@ -62,7 +62,7 @@ new file mode 100644 diff --git a/net/http/http_proxy_connect_job.cc b/net/http/http_proxy_connect_job.cc --- a/net/http/http_proxy_connect_job.cc +++ b/net/http/http_proxy_connect_job.cc -@@ -893,7 +893,7 @@ void HttpProxyConnectJob::ChangePriorityInternal(RequestPriority priority) { +@@ -884,7 +884,7 @@ void HttpProxyConnectJob::ChangePriorityInternal(RequestPriority priority) { } } @@ -71,7 +71,7 @@ diff --git a/net/http/http_proxy_connect_job.cc b/net/http/http_proxy_connect_jo // Only record latency for connections to the first proxy in a chain. if (next_state_ == STATE_TRANSPORT_CONNECT_COMPLETE && params_->proxy_chain_index() == 0) { -@@ -902,6 +902,7 @@ void HttpProxyConnectJob::OnTimedOutInternal() { +@@ -893,6 +893,7 @@ void HttpProxyConnectJob::OnTimedOutInternal() { HttpConnectResult::kTimedOut, base::TimeTicks::Now() - connect_start_time_); } @@ -82,7 +82,7 @@ diff --git a/net/http/http_proxy_connect_job.cc b/net/http/http_proxy_connect_jo diff --git a/net/http/http_proxy_connect_job.h b/net/http/http_proxy_connect_job.h --- a/net/http/http_proxy_connect_job.h +++ b/net/http/http_proxy_connect_job.h -@@ -283,7 +283,7 @@ class NET_EXPORT_PRIVATE HttpProxyConnectJob : public ConnectJob, +@@ -280,7 +280,7 @@ class NET_EXPORT_PRIVATE HttpProxyConnectJob : public ConnectJob, // ConnectJob implementation. void ChangePriorityInternal(RequestPriority priority) override; @@ -94,7 +94,7 @@ diff --git a/net/http/http_proxy_connect_job.h b/net/http/http_proxy_connect_job diff --git a/net/socket/connect_job.cc b/net/socket/connect_job.cc --- a/net/socket/connect_job.cc +++ b/net/socket/connect_job.cc -@@ -220,16 +220,19 @@ void ConnectJob::StopTimerAndLogConnectCompletion(int net_error) { +@@ -215,16 +215,19 @@ void ConnectJob::StopTimerAndLogConnectCompletion(int net_error) { } void ConnectJob::OnTimeout() { @@ -120,7 +120,7 @@ diff --git a/net/socket/connect_job.cc b/net/socket/connect_job.cc diff --git a/net/socket/connect_job.h b/net/socket/connect_job.h --- a/net/socket/connect_job.h +++ b/net/socket/connect_job.h -@@ -344,7 +344,7 @@ class NET_EXPORT_PRIVATE ConnectJob { +@@ -326,7 +326,7 @@ class NET_EXPORT_PRIVATE ConnectJob { void OnTimeout(); // Invoked to notify subclasses that the has request timed out. @@ -132,9 +132,9 @@ diff --git a/net/socket/connect_job.h b/net/socket/connect_job.h diff --git a/net/socket/ssl_client_socket.h b/net/socket/ssl_client_socket.h --- a/net/socket/ssl_client_socket.h +++ b/net/socket/ssl_client_socket.h -@@ -99,6 +99,8 @@ class NET_EXPORT SSLClientSocket : public SSLSocket { - virtual std::vector> - GetServerTrustAnchorIDsForRetry() = 0; +@@ -111,6 +111,8 @@ class NET_EXPORT SSLClientSocket : public SSLSocket { + // advertised in DNS. + virtual std::vector> GetServerTrustAnchorIDs() = 0; + virtual bool IsTlsFragmentationFailed() const = 0; + @@ -155,7 +155,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket std::vector SSLClientSocketImpl::GetECHRetryConfigs() { const uint8_t* retry_configs; size_t retry_configs_len; -@@ -395,6 +399,10 @@ int SSLClientSocketImpl::Connect(CompletionOnceCallback callback) { +@@ -394,6 +398,10 @@ int SSLClientSocketImpl::Connect(CompletionOnceCallback callback) { return rv; } @@ -166,7 +166,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket // Set SSL to client mode. Handshake happens in the loop below. SSL_set_connect_state(ssl_.get()); -@@ -919,6 +927,7 @@ int SSLClientSocketImpl::DoHandshake() { +@@ -925,6 +933,7 @@ int SSLClientSocketImpl::DoHandshake() { int rv = SSL_do_handshake(ssl_.get()); int net_error = OK; @@ -174,7 +174,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket if (rv <= 0) { int ssl_error = SSL_get_error(ssl_.get(), rv); if (ssl_error == SSL_ERROR_WANT_X509_LOOKUP && !send_client_cert_) { -@@ -944,8 +953,11 @@ int SSLClientSocketImpl::DoHandshake() { +@@ -950,8 +959,11 @@ int SSLClientSocketImpl::DoHandshake() { return ERR_IO_PENDING; } @@ -193,7 +193,7 @@ diff --git a/net/socket/ssl_client_socket_impl.h b/net/socket/ssl_client_socket_ @@ -77,6 +77,7 @@ class NET_EXPORT_PRIVATE SSLClientSocketImpl // SSLClientSocket implementation. std::vector GetECHRetryConfigs() override; - std::vector> GetServerTrustAnchorIDsForRetry() override; + std::vector> GetServerTrustAnchorIDs() override; + bool IsTlsFragmentationFailed() const override; // SSLSocket implementation. @@ -230,7 +230,7 @@ diff --git a/net/socket/ssl_connect_job.cc b/net/socket/ssl_connect_job.cc SSLConnectJob::~SSLConnectJob() { // In the case the job was canceled, need to delete nested job first to -@@ -346,7 +350,10 @@ int SSLConnectJob::DoSSLConnect() { +@@ -336,7 +340,10 @@ int SSLConnectJob::DoSSLConnect() { next_state_ = STATE_SSL_CONNECT_COMPLETE; // Set the timeout to just the time allowed for the SSL handshake. @@ -242,16 +242,16 @@ diff --git a/net/socket/ssl_connect_job.cc b/net/socket/ssl_connect_job.cc // Get the transport's connect start and DNS times. const LoadTimingInfo::ConnectTiming& socket_connect_timing = -@@ -400,6 +407,8 @@ int SSLConnectJob::DoSSLConnect() { +@@ -390,6 +397,8 @@ int SSLConnectJob::DoSSLConnect() { } } + ssl_config.enable_client_hello_fragmentation = enable_client_hello_fragmentation_; + net_log().AddEvent(NetLogEventType::SSL_CONNECT_JOB_SSL_CONNECT, [&] { - base::Value::Dict dict; + base::DictValue dict; dict.Set("ech_enabled", ssl_client_context()->config().ech_enabled); -@@ -431,6 +440,12 @@ int SSLConnectJob::DoSSLConnectComplete(int result) { +@@ -440,6 +449,12 @@ int SSLConnectJob::DoSSLConnectComplete(int result) { // retry on a potentially unreliably network connection. // // TODO(crbug.com/40085786): Remove this now redundant retry. @@ -264,7 +264,7 @@ diff --git a/net/socket/ssl_connect_job.cc b/net/socket/ssl_connect_job.cc if (disable_legacy_crypto_with_fallback_ && (result == ERR_CONNECTION_CLOSED || result == ERR_CONNECTION_RESET || result == ERR_SSL_PROTOCOL_ERROR || -@@ -527,6 +542,16 @@ SSLConnectJob::State SSLConnectJob::GetInitialState( +@@ -539,6 +554,16 @@ SSLConnectJob::State SSLConnectJob::GetInitialState( NOTREACHED(); } @@ -284,7 +284,7 @@ diff --git a/net/socket/ssl_connect_job.cc b/net/socket/ssl_connect_job.cc diff --git a/net/socket/ssl_connect_job.h b/net/socket/ssl_connect_job.h --- a/net/socket/ssl_connect_job.h +++ b/net/socket/ssl_connect_job.h -@@ -168,6 +168,8 @@ class NET_EXPORT_PRIVATE SSLConnectJob : public ConnectJob, +@@ -165,6 +165,8 @@ class NET_EXPORT_PRIVATE SSLConnectJob : public ConnectJob, int DoSSLConnect(); int DoSSLConnectComplete(int result); @@ -293,7 +293,7 @@ diff --git a/net/socket/ssl_connect_job.h b/net/socket/ssl_connect_job.h // Returns the initial state for the state machine based on the // |connection_type|. static State GetInitialState(SSLSocketParams::ConnectionType connection_type); -@@ -196,6 +198,7 @@ class NET_EXPORT_PRIVATE SSLConnectJob : public ConnectJob, +@@ -193,6 +195,7 @@ class NET_EXPORT_PRIVATE SSLConnectJob : public ConnectJob, // attempt. On error, the connection will be retried with legacy crypto // enabled. bool disable_legacy_crypto_with_fallback_ = true; diff --git a/build/patches/Enable-Document-Open-Inheritance-Removal.patch b/build/patches/Enable-Document-Open-Inheritance-Removal.patch index 145f680d..44f2e99e 100644 --- a/build/patches/Enable-Document-Open-Inheritance-Removal.patch +++ b/build/patches/Enable-Document-Open-Inheritance-Removal.patch @@ -11,7 +11,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc --- a/third_party/blink/renderer/core/dom/document.cc +++ b/third_party/blink/renderer/core/dom/document.cc -@@ -3838,70 +3838,6 @@ void Document::open(LocalDOMWindow* entered_window, +@@ -3802,70 +3802,6 @@ void Document::open(LocalDOMWindow* entered_window, // https://chromestatus.com/metrics/feature/timeline/popularity/4375 CountUse(WebFeature::kDocumentOpenMutateSandbox); } @@ -85,7 +85,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -2065,7 +2065,6 @@ +@@ -2108,7 +2108,6 @@ { name: "DocumentOpenSandboxInheritanceRemoval", status: "stable", diff --git a/build/patches/Enable-Global-Privacy-Control.patch b/build/patches/Enable-Global-Privacy-Control.patch index c83f925a..dbc9d004 100644 --- a/build/patches/Enable-Global-Privacy-Control.patch +++ b/build/patches/Enable-Global-Privacy-Control.patch @@ -57,7 +57,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni --- a/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni -@@ -650,6 +650,7 @@ chrome_java_resources = [ +@@ -659,6 +659,7 @@ chrome_java_resources = [ "java/res/xml/contextual_search_preferences.xml", "java/res/xml/developer_preferences.xml", "java/res/xml/do_not_track_preferences.xml", @@ -68,7 +68,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 -@@ -962,6 +962,7 @@ chrome_java_sources = [ +@@ -973,6 +973,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/settings/AdBlockPreferences.java", "java/src/org/chromium/chrome/browser/policy/PolicyAuditor.java", "java/src/org/chromium/chrome/browser/policy/PolicyAuditorBridge.java", @@ -174,7 +174,7 @@ new file mode 100644 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 -@@ -131,6 +131,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -132,6 +132,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private static final String PREF_HTTPS_FIRST_MODE_LEGACY = "https_first_mode_legacy"; private static final String PREF_SECURE_DNS = "secure_dns"; private static final String PREF_USAGE_STATS = "usage_stats_reporting"; @@ -182,7 +182,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting private static final String PREF_SAFE_BROWSING = "safe_browsing"; private static final String PREF_PASSWORD_LEAK_DETECTION = "password_leak_detection"; private static final String PREF_SYNC_AND_SERVICES_LINK = "sync_and_services_link"; -@@ -582,6 +583,14 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -594,6 +595,14 @@ public class PrivacySettings extends ChromeBaseSettingsFragment : R.string.text_off); } @@ -200,7 +200,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp --- a/chrome/app/settings_strings.grdp +++ b/chrome/app/settings_strings.grdp -@@ -1967,6 +1967,21 @@ +@@ -1933,6 +1933,21 @@ Learn more about Do Not Track @@ -225,7 +225,7 @@ diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chrome/browser/extensions/api/settings_private/prefs_util.cc --- a/chrome/browser/extensions/api/settings_private/prefs_util.cc +++ b/chrome/browser/extensions/api/settings_private/prefs_util.cc -@@ -416,6 +416,7 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { +@@ -436,6 +436,7 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { (*s_allowlist)[::prefs::kBlockAll3pcToggleEnabled] = settings_api::PrefType::kBoolean; (*s_allowlist)[::prefs::kEnableDoNotTrack] = settings_api::PrefType::kBoolean; @@ -244,11 +244,11 @@ diff --git a/chrome/browser/renderer_preferences_util.cc b/chrome/browser/render + pref_service->GetBoolean(prefs::kEnableGPC); prefs->enable_encrypted_media = pref_service->GetBoolean(prefs::kEnableEncryptedMedia); - prefs->webrtc_ip_handling_policy = blink::ToWebRTCIPHandlingPolicy( + diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resources/settings/BUILD.gn --- a/chrome/browser/resources/settings/BUILD.gn +++ b/chrome/browser/resources/settings/BUILD.gn -@@ -130,6 +130,7 @@ build_webui("build") { +@@ -127,6 +127,7 @@ build_webui("build") { "performance_page/tab_discard/exception_tabbed_add_dialog.ts", "privacy_page/cookies_page.ts", "privacy_page/do_not_track_toggle.ts", @@ -467,7 +467,7 @@ diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_u diff --git a/chrome/browser/ui/prefs/pref_watcher.cc b/chrome/browser/ui/prefs/pref_watcher.cc --- a/chrome/browser/ui/prefs/pref_watcher.cc +++ b/chrome/browser/ui/prefs/pref_watcher.cc -@@ -150,6 +150,8 @@ PrefWatcher::PrefWatcher(Profile* profile) : profile_(profile) { +@@ -153,6 +153,8 @@ PrefWatcher::PrefWatcher(Profile* profile) : profile_(profile) { renderer_callback); profile_pref_change_registrar_.Add(prefs::kEnableDoNotTrack, renderer_callback); @@ -479,7 +479,7 @@ diff --git a/chrome/browser/ui/prefs/pref_watcher.cc b/chrome/browser/ui/prefs/p diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc --- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc +++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc -@@ -2221,6 +2221,9 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, +@@ -2239,6 +2239,9 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, {"doNotTrackDialogMessage", IDS_SETTINGS_ENABLE_DO_NOT_TRACK_DIALOG_TEXT}, {"doNotTrackDialogLearnMoreA11yLabel", IDS_SETTINGS_ENABLE_DO_NOT_TRACK_DIALOG_LEARN_MORE_ACCESSIBILITY_LABEL}, @@ -520,7 +520,7 @@ diff --git a/content/browser/loader/browser_initiated_resource_request.cc b/cont diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc -@@ -4472,6 +4472,10 @@ void RenderFrameImpl::FinalizeRequestInternal( +@@ -4494,6 +4494,10 @@ void RenderFrameImpl::FinalizeRequestInternal( request.SetHttpHeaderField( blink::WebString::FromUTF8(blink::kDoNotTrackHeader), "1"); } @@ -604,7 +604,7 @@ diff --git a/third_party/blink/public/mojom/renderer_preferences.mojom b/third_p diff --git a/third_party/blink/renderer/bindings/idl_in_modules.gni b/third_party/blink/renderer/bindings/idl_in_modules.gni --- a/third_party/blink/renderer/bindings/idl_in_modules.gni +++ b/third_party/blink/renderer/bindings/idl_in_modules.gni -@@ -1276,6 +1276,11 @@ static_idl_files_in_modules = [ +@@ -1275,6 +1275,11 @@ static_idl_files_in_modules = [ "//third_party/blink/renderer/modules/xr/xr_webgl_sub_image.idl", ] @@ -619,7 +619,7 @@ diff --git a/third_party/blink/renderer/bindings/idl_in_modules.gni b/third_part diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_party/blink/renderer/core/exported/web_view_impl.cc --- a/third_party/blink/renderer/core/exported/web_view_impl.cc +++ b/third_party/blink/renderer/core/exported/web_view_impl.cc -@@ -3752,6 +3752,9 @@ void WebViewImpl::UpdateRendererPreferences( +@@ -3734,6 +3734,9 @@ void WebViewImpl::UpdateRendererPreferences( GetSettings()->SetCaretBrowsingEnabled( renderer_preferences_.caret_browsing_enabled); @@ -632,7 +632,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p diff --git a/third_party/blink/renderer/modules/BUILD.gn b/third_party/blink/renderer/modules/BUILD.gn --- a/third_party/blink/renderer/modules/BUILD.gn +++ b/third_party/blink/renderer/modules/BUILD.gn -@@ -167,6 +167,10 @@ component("modules") { +@@ -166,6 +166,10 @@ component("modules") { "//third_party/blink/renderer/modules/xr", ] @@ -744,7 +744,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/url_loader/dedicat diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -3433,6 +3433,11 @@ +@@ -3556,6 +3556,11 @@ status: "stable", base_feature: "none", }, diff --git a/build/patches/Enable-HEVC-by-default.patch b/build/patches/Enable-HEVC-by-default.patch index 7d61b8e1..320a1665 100644 --- a/build/patches/Enable-HEVC-by-default.patch +++ b/build/patches/Enable-HEVC-by-default.patch @@ -12,7 +12,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc --- a/media/base/media_switches.cc +++ b/media/base/media_switches.cc -@@ -371,7 +371,7 @@ BASE_FEATURE(kEnableTabMuting, base::FEATURE_DISABLED_BY_DEFAULT); +@@ -382,7 +382,7 @@ BASE_FEATURE(kEnableTabMuting, base::FEATURE_DISABLED_BY_DEFAULT); #if BUILDFLAG(ENABLE_PLATFORM_HEVC) // Enables HEVC hardware accelerated decoding. diff --git a/build/patches/Enable-ImprovedBookmarks-by-default.patch b/build/patches/Enable-ImprovedBookmarks-by-default.patch index 40033310..17846862 100644 --- a/build/patches/Enable-ImprovedBookmarks-by-default.patch +++ b/build/patches/Enable-ImprovedBookmarks-by-default.patch @@ -14,8 +14,8 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/android/java/res/layout/bookmark_search_box_row.xml b/chrome/android/java/res/layout/bookmark_search_box_row.xml --- a/chrome/android/java/res/layout/bookmark_search_box_row.xml +++ b/chrome/android/java/res/layout/bookmark_search_box_row.xml -@@ -58,8 +58,8 @@ found in the LICENSE file. - +@@ -36,8 +36,8 @@ found in the LICENSE file. + - RegisterFilePathPref(prefs::kDiskCacheDir, base::FilePath()); registry->RegisterIntegerPref(prefs::kDiskCacheSize, 0); registry->RegisterStringPref(prefs::kIsolateOrigins, std::string()); @@ -29,7 +29,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch registry->RegisterBooleanPref(prefs::kTabFreezingEnabled, true); registry->RegisterIntegerPref(prefs::kSCTAuditingHashdanceReportCount, 0); registry->RegisterBooleanPref(prefs::kDataURLWhitespacePreservationEnabled, -@@ -1425,7 +1425,7 @@ void ChromeContentBrowserClient::RegisterProfilePrefs( +@@ -1453,7 +1453,7 @@ void ChromeContentBrowserClient::RegisterProfilePrefs( // user policy in addition to the same named ones in Local State (which are // used for mapping the command-line flags). registry->RegisterStringPref(prefs::kIsolateOrigins, std::string()); @@ -49,7 +49,7 @@ diff --git a/components/site_isolation/site_isolation_policy.cc b/components/sit // The memory threshold behavior differs for desktop and Android: // - Android uses a 1900MB default threshold for partial site isolation modes // and a 3200MB default threshold for strict site isolation. See docs in -@@ -208,6 +209,7 @@ bool SiteIsolationPolicy::IsOriginIsolationForJsOptExceptionsSupported() { +@@ -210,6 +211,7 @@ bool SiteIsolationPolicy::IsOriginIsolationForJsOptExceptionsSupported() { // static bool SiteIsolationPolicy::IsEnterprisePolicyApplicable() { @@ -57,7 +57,7 @@ diff --git a/components/site_isolation/site_isolation_policy.cc b/components/sit #if BUILDFLAG(IS_ANDROID) // https://crbug.com/844118: Limiting policy to devices with > 1GB RAM. // Using 1077 rather than 1024 because it helps ensure that devices with -@@ -224,6 +226,7 @@ bool SiteIsolationPolicy::IsEnterprisePolicyApplicable() { +@@ -226,6 +228,7 @@ bool SiteIsolationPolicy::IsEnterprisePolicyApplicable() { // static bool SiteIsolationPolicy::ShouldDisableSiteIsolationDueToMemoryThreshold( content::SiteIsolationMode site_isolation_mode) { diff --git a/build/patches/Enable-component-updater.patch b/build/patches/Enable-component-updater.patch index 85f98465..e6340444 100644 --- a/build/patches/Enable-component-updater.patch +++ b/build/patches/Enable-component-updater.patch @@ -176,7 +176,7 @@ diff --git a/android_webview/nonembedded/webview_apk_process.h b/android_webview diff --git a/chrome/browser/component_updater/registration.cc b/chrome/browser/component_updater/registration.cc --- a/chrome/browser/component_updater/registration.cc +++ b/chrome/browser/component_updater/registration.cc -@@ -116,6 +116,8 @@ namespace component_updater { +@@ -135,6 +135,8 @@ void DeleteOldComponents(const base::FilePath& user_data_dir) { void RegisterComponentsForUpdate() { auto* const cus = g_browser_process->component_updater(); @@ -231,7 +231,7 @@ diff --git a/components/component_updater/component_installer.cc b/components/co if (!installer_policy_) { @@ -149,6 +153,7 @@ Result ComponentInstaller::InstallHelper(const base::FilePath& unpack_path, - std::optional local_manifest = + std::optional local_manifest = update_client::ReadManifest(unpack_path); if (!local_manifest) { + LOG(ERROR) << "Bad manifest"; @@ -280,7 +280,7 @@ diff --git a/components/component_updater/component_installer.cc b/components/co return false; } - std::optional manifest = update_client::ReadManifest(path); + std::optional manifest = update_client::ReadManifest(path); if (!manifest) { - DVLOG(1) << "Manifest does not exist: " << path.MaybeAsASCII(); + LOG(INFO) << "Manifest does not exist: " << path.MaybeAsASCII(); @@ -312,9 +312,9 @@ diff --git a/components/component_updater/component_installer.cc b/components/co << " at " << path.MaybeAsASCII() << " with version " << version << "."; -@@ -326,13 +334,13 @@ std::optional - ComponentInstaller::GetValidInstallationManifest(const base::FilePath& path) { - std::optional manifest = update_client::ReadManifest(path); +@@ -326,13 +334,13 @@ std::optional ComponentInstaller::GetValidInstallationManifest( + const base::FilePath& path) { + std::optional manifest = update_client::ReadManifest(path); if (!manifest) { - VPLOG(0) << "Failed to read manifest for " << installer_policy_->GetName() + LOG(INFO) << "Failed to read manifest for " << installer_policy_->GetName() @@ -366,7 +366,7 @@ diff --git a/components/component_updater/component_installer.cc b/components/co @@ -594,7 +602,7 @@ void ComponentInstaller::FinishRegistration( } - void ComponentInstaller::ComponentReady(base::Value::Dict manifest) { + void ComponentInstaller::ComponentReady(base::DictValue manifest) { - VLOG(1) << "Component ready, version " << current_version_.GetString() + LOG(INFO) << "Component ready, version " << current_version_.GetString() << " in " << current_install_dir_.value(); @@ -699,7 +699,7 @@ diff --git a/components/update_client/protocol_parser_json.cc b/components/updat namespace update_client { -@@ -263,6 +264,7 @@ bool ProtocolParserJSON::DoParse(std::string_view response_json, +@@ -262,6 +263,7 @@ bool ProtocolParserJSON::DoParse(std::string_view response_json, Results* results) { CHECK(results); @@ -838,7 +838,7 @@ diff --git a/components/update_client/utils.cc b/components/update_client/utils. diff --git a/extensions/browser/sandboxed_unpacker.cc b/extensions/browser/sandboxed_unpacker.cc --- a/extensions/browser/sandboxed_unpacker.cc +++ b/extensions/browser/sandboxed_unpacker.cc -@@ -909,7 +909,7 @@ bool SandboxedUnpacker::ValidateSignature( +@@ -908,7 +908,7 @@ bool SandboxedUnpacker::ValidateSignature( const crx_file::VerifierResult result = crx_file::Verify( crx_path, required_format, std::vector>(), hash, diff --git a/build/patches/Enable-darken-websites-checkbox-in-themes.patch b/build/patches/Enable-darken-websites-checkbox-in-themes.patch index 9ba0234b..0db12cf4 100644 --- a/build/patches/Enable-darken-websites-checkbox-in-themes.patch +++ b/build/patches/Enable-darken-websites-checkbox-in-themes.patch @@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -2062,9 +2062,9 @@ +@@ -2057,9 +2057,9 @@ "expiry_milestone": 160 }, { diff --git a/build/patches/Enable-fwrapv-in-Clang-for-non-UBSan-builds.patch b/build/patches/Enable-fwrapv-in-Clang-for-non-UBSan-builds.patch index 1de6614f..13717ba4 100644 --- a/build/patches/Enable-fwrapv-in-Clang-for-non-UBSan-builds.patch +++ b/build/patches/Enable-fwrapv-in-Clang-for-non-UBSan-builds.patch @@ -45,7 +45,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn -@@ -476,6 +476,10 @@ config("compiler") { +@@ -477,6 +477,10 @@ config("compiler") { } } diff --git a/build/patches/Enable-gwp-asan-on-Android.patch b/build/patches/Enable-gwp-asan-on-Android.patch index a553801c..a28f67be 100644 --- a/build/patches/Enable-gwp-asan-on-Android.patch +++ b/build/patches/Enable-gwp-asan-on-Android.patch @@ -33,7 +33,7 @@ diff --git a/android_webview/lib/aw_main_delegate.cc b/android_webview/lib/aw_ma diff --git a/build/config/compiler/compiler.gni b/build/config/compiler/compiler.gni --- a/build/config/compiler/compiler.gni +++ b/build/config/compiler/compiler.gni -@@ -208,10 +208,11 @@ if (is_chromeos || (enable_cast_receiver && is_linux)) { +@@ -204,10 +204,11 @@ if (is_chromeos || (enable_cast_receiver && is_linux)) { enable_frame_pointers = true } } else if (is_android) { @@ -49,7 +49,7 @@ diff --git a/build/config/compiler/compiler.gni b/build/config/compiler/compiler diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml --- a/chrome/android/java/AndroidManifest.xml +++ b/chrome/android/java/AndroidManifest.xml -@@ -198,6 +198,7 @@ by a child template that "extends" this file. +@@ -201,6 +201,7 @@ by a child template that "extends" this file. GetSwitchValueASCII(switches::kProcessType); const bool is_browser_process = process_type.empty(); diff --git a/build/patches/Enable-menu-on-reload-button.patch b/build/patches/Enable-menu-on-reload-button.patch index 28bafa0c..b4fd10a6 100644 --- a/build/patches/Enable-menu-on-reload-button.patch +++ b/build/patches/Enable-menu-on-reload-button.patch @@ -14,7 +14,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd -@@ -4841,10 +4841,10 @@ are declared in tools/grit/grit_args.gni. +@@ -4859,10 +4859,10 @@ are declared in tools/grit/grit_args.gni. Normal Reload @@ -30,10 +30,10 @@ diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources diff --git a/chrome/browser/ui/views/toolbar/toolbar_view.cc b/chrome/browser/ui/views/toolbar/toolbar_view.cc --- a/chrome/browser/ui/views/toolbar/toolbar_view.cc +++ b/chrome/browser/ui/views/toolbar/toolbar_view.cc -@@ -560,7 +560,7 @@ void ToolbarView::Update(WebContents* tab) { +@@ -691,7 +691,7 @@ void ToolbarView::Update(WebContents* tab) { if (ReloadControl* reload_control = GetReloadButton(); reload_control) { - reload_control->SetMenuEnabled( + reload_control->SetDevToolsStatus( - chrome::IsDebuggerAttachedToCurrentTab(browser_)); + true); } diff --git a/build/patches/Enable-network-isolation-features.patch b/build/patches/Enable-network-isolation-features.patch index 3187d36f..4288b993 100644 --- a/build/patches/Enable-network-isolation-features.patch +++ b/build/patches/Enable-network-isolation-features.patch @@ -21,7 +21,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/net/profile_network_context_service.cc b/chrome/browser/net/profile_network_context_service.cc --- a/chrome/browser/net/profile_network_context_service.cc +++ b/chrome/browser/net/profile_network_context_service.cc -@@ -443,8 +443,8 @@ bool GetHttpCacheBackendResetParam(PrefService* local_state) { +@@ -440,8 +440,8 @@ bool GetHttpCacheBackendResetParam(PrefService* local_state) { experiment_parts.push_back(kDiskCacheExperimentNameNone); // SplitCacheByIncludeCredentials experiment: experiment_parts.push_back(credentials_field_trial diff --git a/build/patches/Enable-platform-aac-audio-and-h264-video.patch b/build/patches/Enable-platform-aac-audio-and-h264-video.patch index 6bd7dc2f..4da350a9 100644 --- a/build/patches/Enable-platform-aac-audio-and-h264-video.patch +++ b/build/patches/Enable-platform-aac-audio-and-h264-video.patch @@ -38,8 +38,8 @@ new file mode 100644 diff --git a/media/BUILD.gn b/media/BUILD.gn --- a/media/BUILD.gn +++ b/media/BUILD.gn -@@ -29,6 +29,8 @@ buildflag_header("media_buildflags") { - enable_platform_dts_audio && (is_win || is_linux) +@@ -26,6 +26,8 @@ buildflag_header("media_buildflags") { + header = "media_buildflags.h" flags = [ + "ENABLE_PLATFORM_AAC_AUDIO=$enable_platform_aac_audio", @@ -62,7 +62,7 @@ diff --git a/media/base/android/java/src/org/chromium/media/AudioManagerAndroid. diff --git a/media/base/android/media_codec_util.cc b/media/base/android/media_codec_util.cc --- a/media/base/android/media_codec_util.cc +++ b/media/base/android/media_codec_util.cc -@@ -16,6 +16,7 @@ +@@ -15,6 +15,7 @@ #include "base/logging.h" #include "base/strings/string_util.h" #include "base/system/sys_info.h" @@ -70,7 +70,7 @@ diff --git a/media/base/android/media_codec_util.cc b/media/base/android/media_c #include "media/base/android/media_codec_bridge.h" #include "media/base/video_codecs.h" #include "third_party/re2/src/re2/re2.h" -@@ -103,6 +104,9 @@ std::string MediaCodecUtil::CodecToAndroidMimeType(AudioCodec codec) { +@@ -102,6 +103,9 @@ std::string MediaCodecUtil::CodecToAndroidMimeType(AudioCodec codec) { // static std::string MediaCodecUtil::CodecToAndroidMimeType(AudioCodec codec, SampleFormat sample_format) { @@ -118,7 +118,7 @@ diff --git a/media/filters/ffmpeg_audio_decoder.cc b/media/filters/ffmpeg_audio_ diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc --- a/media/filters/ffmpeg_demuxer.cc +++ b/media/filters/ffmpeg_demuxer.cc -@@ -725,6 +725,7 @@ void FFmpegDemuxerStream::InitBitstreamConverter() { +@@ -726,6 +726,7 @@ void FFmpegDemuxerStream::InitBitstreamConverter() { // FFmpeg doesn't understand xHE-AAC profiles yet, which can't be put in // ADTS anyways, so skip bitstream conversion when the profile is // unknown. @@ -157,7 +157,7 @@ diff --git a/media/filters/ffmpeg_video_decoder.cc b/media/filters/ffmpeg_video_ diff --git a/media/filters/win/media_foundation_audio_decoder.cc b/media/filters/win/media_foundation_audio_decoder.cc --- a/media/filters/win/media_foundation_audio_decoder.cc +++ b/media/filters/win/media_foundation_audio_decoder.cc -@@ -102,11 +102,15 @@ std::optional GetTypeInfo( +@@ -101,11 +101,15 @@ std::optional GetTypeInfo( #endif #if BUILDFLAG(USE_PROPRIETARY_CODECS) case AudioCodec::kAAC: @@ -173,7 +173,7 @@ diff --git a/media/filters/win/media_foundation_audio_decoder.cc b/media/filters #endif #if BUILDFLAG(ENABLE_PLATFORM_AC4_AUDIO) case AudioCodec::kAC4: -@@ -328,8 +332,13 @@ void MediaFoundationAudioDecoder::Reset(base::OnceClosure reset_cb) { +@@ -323,8 +327,13 @@ void MediaFoundationAudioDecoder::Reset(base::OnceClosure reset_cb) { } bool MediaFoundationAudioDecoder::NeedsBitstreamConversion() const { @@ -190,7 +190,7 @@ diff --git a/media/filters/win/media_foundation_audio_decoder.cc b/media/filters diff --git a/media/gpu/windows/supported_profile_helpers.cc b/media/gpu/windows/supported_profile_helpers.cc --- a/media/gpu/windows/supported_profile_helpers.cc +++ b/media/gpu/windows/supported_profile_helpers.cc -@@ -290,7 +290,11 @@ SupportedResolutionRangeMap GetSupportedD3DVideoDecoderResolutions( +@@ -344,7 +344,11 @@ SupportedResolutionRangeMap GetSupportedD3DVideoDecoderResolutions( // // On Windows 7 the maximum resolution supported by media foundation is // 1920 x 1088. We use 1088 to account for 16x16 macro-blocks. @@ -202,7 +202,7 @@ diff --git a/media/gpu/windows/supported_profile_helpers.cc b/media/gpu/windows/ SupportedResolutionRange h264_profile; h264_profile.min_resolution = kMinResolution; h264_profile.max_landscape_resolution = kDefaultMaxH264Resolution; -@@ -298,7 +302,14 @@ SupportedResolutionRangeMap GetSupportedD3DVideoDecoderResolutions( +@@ -352,7 +356,14 @@ SupportedResolutionRangeMap GetSupportedD3DVideoDecoderResolutions( // We don't have a way to map DXVA support to specific H.264 profiles, so just // mark all the common ones with the same level of support. constexpr VideoCodecProfile kSupportedH264Profiles[] = { diff --git a/build/patches/Enable-search-engine-settings-desktop-ui.patch b/build/patches/Enable-search-engine-settings-desktop-ui.patch index c90f0417..a86e0c23 100644 --- a/build/patches/Enable-search-engine-settings-desktop-ui.patch +++ b/build/patches/Enable-search-engine-settings-desktop-ui.patch @@ -32,7 +32,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html chrome/browser/search/background/BUILD.gn | 2 +- .../browser/search_engines/android/BUILD.gn | 1 + .../java/res/layout/search_engine_layout.xml | 25 ++ - .../settings/SearchEngineSettings.java | 21 ++ + .../settings/SearchEngineSettings.java | 20 ++ chrome/browser/ui/BUILD.gn | 25 +- .../edit_search_engine_controller.cc | 8 +- .../edit_search_engine_controller.h | 6 +- @@ -40,7 +40,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../keyword_editor_controller.h | 6 +- .../template_url_table_model.cc | 9 +- .../search_engines/template_url_table_model.h | 6 +- - .../browser/ui/webui/chrome_web_ui_configs.cc | 9 +- + .../browser/ui/webui/chrome_web_ui_configs.cc | 8 + chrome/browser/ui/webui/favicon_source.cc | 12 + chrome/browser/ui/webui/favicon_source.h | 2 + .../webui/settings/search_engines_handler.cc | 28 +- @@ -81,7 +81,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html ui/webui/resources/images/BUILD.gn | 2 +- ui/webui/resources/js/BUILD.gn | 2 +- ui/webui/resources/js/load_time_data.ts | 17 +- - 74 files changed, 1160 insertions(+), 76 deletions(-) + 74 files changed, 1159 insertions(+), 75 deletions(-) create mode 100644 chrome/app/settings_strings_android.grdp create mode 100644 chrome/browser/search_engines/android/java/res/layout/search_engine_layout.xml create mode 100644 chrome/browser/ui/webui/settings/settings_localized_strings_provider_android.cc @@ -132,7 +132,7 @@ diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources -@@ -528,7 +533,7 @@ are declared in tools/grit/grit_args.gni. +@@ -534,7 +539,7 @@ are declared in tools/grit/grit_args.gni. Disable @@ -144,7 +144,7 @@ diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp --- a/chrome/app/settings_strings.grdp +++ b/chrome/app/settings_strings.grdp -@@ -2428,6 +2428,9 @@ +@@ -2397,6 +2397,9 @@ URL with %s in place of query @@ -422,7 +422,7 @@ new file mode 100644 diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -3705,6 +3705,9 @@ static_library("browser") { +@@ -3686,6 +3686,9 @@ static_library("browser") { "//components/user_scripts/android", ] } @@ -435,7 +435,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/chrome_browser_interface_binders_webui_parts_desktop.cc b/chrome/browser/chrome_browser_interface_binders_webui_parts_desktop.cc --- a/chrome/browser/chrome_browser_interface_binders_webui_parts_desktop.cc +++ b/chrome/browser/chrome_browser_interface_binders_webui_parts_desktop.cc -@@ -377,6 +377,9 @@ void PopulateChromeWebUIFrameBindersPartsDesktop( +@@ -378,6 +378,9 @@ void PopulateChromeWebUIFrameBindersPartsDesktop( #endif // !BUILDFLAG(IS_CHROMEOS) >(map); @@ -489,7 +489,7 @@ diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resourc diff --git a/chrome/browser/resources/settings/lazy_load.ts b/chrome/browser/resources/settings/lazy_load.ts --- a/chrome/browser/resources/settings/lazy_load.ts +++ b/chrome/browser/resources/settings/lazy_load.ts -@@ -143,7 +143,7 @@ export {CrTextareaElement} from 'chrome://resources/cr_elements/cr_textarea/cr_t +@@ -142,7 +142,7 @@ export {CrTextareaElement} from 'chrome://resources/cr_elements/cr_textarea/cr_t export {CrToastElement} from 'chrome://resources/cr_elements/cr_toast/cr_toast.js'; export {getToastManager} from 'chrome://resources/cr_elements/cr_toast/cr_toast_manager.js'; export {CrTooltipElement} from 'chrome://resources/cr_elements/cr_tooltip/cr_tooltip.js'; @@ -786,7 +786,7 @@ diff --git a/chrome/browser/resources/settings/settings.html b/chrome/browser/re diff --git a/chrome/browser/resources/settings/settings_ui/settings_ui.html b/chrome/browser/resources/settings/settings_ui/settings_ui.html --- a/chrome/browser/resources/settings/settings_ui/settings_ui.html +++ b/chrome/browser/resources/settings/settings_ui/settings_ui.html -@@ -44,6 +44,9 @@ +@@ -31,6 +31,9 @@ display: flex; flex: 1; overflow: overlay; @@ -796,7 +796,7 @@ diff --git a/chrome/browser/resources/settings/settings_ui/settings_ui.html b/ch position: relative; } -@@ -84,6 +87,9 @@ +@@ -71,6 +74,9 @@ GetDefaultSearchProvider() != template_url || template_url->SupportsReplacement( template_url_service_->search_terms_data())); @@ -1142,7 +1141,7 @@ diff --git a/chrome/browser/ui/search_engines/template_url_table_model.h b/chrom diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/ui/webui/chrome_web_ui_configs.cc --- a/chrome/browser/ui/webui/chrome_web_ui_configs.cc +++ b/chrome/browser/ui/webui/chrome_web_ui_configs.cc -@@ -65,6 +65,11 @@ +@@ -66,6 +66,11 @@ #include "components/user_scripts/browser/ui/user_scripts_ui.h" #endif @@ -1154,18 +1153,16 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/u #if BUILDFLAG(ENABLE_WEBUI_CERTIFICATE_VIEWER) #include "chrome/browser/ui/webui/certificate_viewer/certificate_viewer_ui.h" #endif -@@ -456,8 +461,10 @@ void RegisterChromeWebUIConfigs() { - #if BUILDFLAG(ENTERPRISE_WATERMARK) - map.AddWebUIConfig(std::make_unique()); - #endif -- - #if BUILDFLAG(IS_MAC) +@@ -471,6 +476,9 @@ void RegisterChromeWebUIConfigs() { map.AddWebUIConfig(std::make_unique()); #endif // BUILDFLAG(IS_MAC) + +#if BUILDFLAG(IS_ANDROID) + map.AddWebUIConfig(std::make_unique()); +#endif // BUILDFLAG(IS_ANDROID) - } + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ + BUILDFLAG(IS_CHROMEOS) + map.AddWebUIConfig(std::make_unique()); diff --git a/chrome/browser/ui/webui/favicon_source.cc b/chrome/browser/ui/webui/favicon_source.cc --- a/chrome/browser/ui/webui/favicon_source.cc +++ b/chrome/browser/ui/webui/favicon_source.cc @@ -1243,9 +1240,9 @@ diff --git a/chrome/browser/ui/webui/favicon_source.h b/chrome/browser/ui/webui/ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome/browser/ui/webui/settings/search_engines_handler.cc --- a/chrome/browser/ui/webui/settings/search_engines_handler.cc +++ b/chrome/browser/ui/webui/settings/search_engines_handler.cc -@@ -36,10 +36,12 @@ - #include "components/search_engines/template_url.h" +@@ -37,10 +37,12 @@ #include "components/search_engines/template_url_service.h" + #include "components/search_engines/template_url_starter_pack_data.h" #include "content/public/browser/web_ui.h" +#if !BUILDFLAG(IS_ANDROID) #include "extensions/browser/extension_registry.h" @@ -1256,7 +1253,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome #if BUILDFLAG(IS_CHROMEOS) #include "ash/public/cpp/new_window_delegate.h" -@@ -51,6 +53,7 @@ namespace { +@@ -52,6 +54,7 @@ namespace { const char kSearchEngineField[] = "searchEngine"; const char kKeywordField[] = "keyword"; const char kQueryUrlField[] = "queryUrl"; @@ -1264,7 +1261,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome // Dummy number used for indicating that a new search engine is added. const int kNewSearchEngineIndex = -1; -@@ -254,9 +257,10 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine( +@@ -255,9 +258,10 @@ base::DictValue SearchEnginesHandler::CreateDictionaryForEngine( IDS_SEARCH_ENGINES_EDITOR_DESCRIPTION_COLUMN)); dict.Set("keyword", table_model->GetText( index, IDS_SEARCH_ENGINES_EDITOR_KEYWORD_COLUMN)); @@ -1273,10 +1270,10 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome template_url->url_ref().DisplayURL(UIThreadSearchTermsData())); + dict.Set("suggestionurl", + template_url->suggestions_url_ref().DisplayURL(UIThreadSearchTermsData())); - dict.Set("urlLocked", ((template_url->prepopulate_id() > 0) || - (template_url->starter_pack_id() > 0))); - GURL icon_url = template_url->favicon_url(); -@@ -273,6 +277,8 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine( + dict.Set("urlLocked", + ((template_url->prepopulate_id() > 0) || + (template_url->starter_pack_id() != +@@ -276,6 +280,8 @@ base::DictValue SearchEnginesHandler::CreateDictionaryForEngine( #endif } @@ -1285,7 +1282,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome // The icons that are used for search engines in the EEA region are bundled // with Chrome. We use the favicon service for countries outside the EEA // region to guarantee having icons for all search engines. -@@ -289,6 +295,7 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine( +@@ -292,6 +298,7 @@ base::DictValue SearchEnginesHandler::CreateDictionaryForEngine( base::StrCat({"chrome://theme/", template_url->GetBuiltinImageResourceId(), "@2x"})); } @@ -1293,15 +1290,15 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome dict.Set("modelIndex", base::checked_cast(index)); -@@ -305,6 +312,7 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine( - dict.Set("isOmniboxExtension", type == TemplateURL::OMNIBOX_API_EXTENSION); - dict.Set("isPrepopulated", template_url->prepopulate_id() > 0); - dict.Set("isStarterPack", template_url->starter_pack_id() > 0); +@@ -310,6 +317,7 @@ base::DictValue SearchEnginesHandler::CreateDictionaryForEngine( + dict.Set("isStarterPack", + template_url->starter_pack_id() != + template_url_starter_pack_data::StarterPackId::kNone); +#if !BUILDFLAG(IS_ANDROID) if (type == TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION || type == TemplateURL::OMNIBOX_API_EXTENSION) { const extensions::Extension* extension = -@@ -321,6 +329,7 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine( +@@ -325,6 +333,7 @@ base::DictValue SearchEnginesHandler::CreateDictionaryForEngine( dict.Set("extension", std::move(ext_info)); } } @@ -1309,7 +1306,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome return dict; } -@@ -423,12 +432,13 @@ void SearchEnginesHandler::HandleSearchEngineEditStarted( +@@ -427,12 +436,13 @@ void SearchEnginesHandler::HandleSearchEngineEditStarted( void SearchEnginesHandler::OnEditedKeyword(TemplateURL* template_url, const std::u16string& title, const std::u16string& keyword, @@ -1326,7 +1323,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome } edit_controller_.reset(); -@@ -458,6 +468,8 @@ bool SearchEnginesHandler::CheckFieldValidity(const std::string& field_name, +@@ -462,6 +472,8 @@ bool SearchEnginesHandler::CheckFieldValidity(const std::string& field_name, is_valid = edit_controller_->IsKeywordValid(base::UTF8ToUTF16(field_value)); } else if (field_name.compare(kQueryUrlField) == 0) { is_valid = edit_controller_->IsURLValid(field_value); @@ -1335,7 +1332,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome } else { NOTREACHED(); } -@@ -480,18 +492,20 @@ void SearchEnginesHandler::HandleSearchEngineEditCompleted( +@@ -484,18 +496,20 @@ void SearchEnginesHandler::HandleSearchEngineEditCompleted( return; } @@ -1375,7 +1372,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.h b/chrome/ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc --- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc +++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc -@@ -2881,6 +2881,8 @@ void AddSearchEnginesStrings(content::WebUIDataSource* html_source) { +@@ -2901,6 +2901,8 @@ void AddSearchEnginesStrings(content::WebUIDataSource* html_source) { {"searchEnginesQueryURL", IDS_SETTINGS_SEARCH_ENGINES_QUERY_URL}, {"searchEnginesQueryURLExplanation", IDS_SETTINGS_SEARCH_ENGINES_QUERY_URL_EXPLANATION}, @@ -1384,7 +1381,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide {"searchEnginesMakeDefault", IDS_SETTINGS_SEARCH_ENGINES_MAKE_DEFAULT}, {"searchEnginesActivate", IDS_SETTINGS_SEARCH_ENGINES_ACTIVATE}, {"searchEnginesDeactivate", IDS_SETTINGS_SEARCH_ENGINES_DEACTIVATE}, -@@ -4194,7 +4196,11 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, +@@ -4229,7 +4231,11 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, AddSiteSettingsStrings(html_source, profile); AddSiteDataPageStrings(html_source, profile); AddStorageAccessStrings(html_source); @@ -1921,7 +1918,7 @@ new file mode 100644 diff --git a/components/search_engines/android/template_url_service_android.cc b/components/search_engines/android/template_url_service_android.cc --- a/components/search_engines/android/template_url_service_android.cc +++ b/components/search_engines/android/template_url_service_android.cc -@@ -421,7 +421,7 @@ bool TemplateUrlServiceAndroid::SetPlayAPISearchEngine( +@@ -431,7 +431,7 @@ bool TemplateUrlServiceAndroid::SetPlayAPISearchEngine( if (regulatory_api_turl->safe_for_autoreplace()) { template_url_service_->ResetTemplateURL( regulatory_api_turl, regulatory_api_turl->short_name(), @@ -1944,7 +1941,7 @@ diff --git a/components/search_engines/search_engines_switches.cc b/components/s diff --git a/components/search_engines/template_url.cc b/components/search_engines/template_url.cc --- a/components/search_engines/template_url.cc +++ b/components/search_engines/template_url.cc -@@ -2224,6 +2224,10 @@ void TemplateURL::SetURL(const std::string& url) { +@@ -2225,6 +2225,10 @@ void TemplateURL::SetURL(const std::string& url) { url_ref().InvalidateCachedValues(); } @@ -1958,7 +1955,7 @@ diff --git a/components/search_engines/template_url.cc b/components/search_engin diff --git a/components/search_engines/template_url.h b/components/search_engines/template_url.h --- a/components/search_engines/template_url.h +++ b/components/search_engines/template_url.h -@@ -1015,6 +1015,7 @@ class TemplateURL { +@@ -1022,6 +1022,7 @@ class TemplateURL { bool CreatedByRegulatoryProgram() const; void SetURL(const std::string& url); @@ -1986,7 +1983,7 @@ diff --git a/components/search_engines/template_url_service.cc b/components/sear return Add(std::move(template_url)); } -@@ -1029,7 +1031,8 @@ void TemplateURLService::IncrementUsageCount(TemplateURL* url) { +@@ -1031,7 +1033,8 @@ void TemplateURLService::IncrementUsageCount(TemplateURL* url) { void TemplateURLService::ResetTemplateURL(TemplateURL* url, const std::u16string& title, const std::u16string& keyword, @@ -1996,7 +1993,7 @@ diff --git a/components/search_engines/template_url_service.cc b/components/sear DCHECK(!IsCreatedByExtension(*url)); DCHECK(!keyword.empty()); DCHECK(!search_url.empty()); -@@ -1049,6 +1052,7 @@ void TemplateURLService::ResetTemplateURL(TemplateURL* url, +@@ -1051,6 +1054,7 @@ void TemplateURLService::ResetTemplateURL(TemplateURL* url, // The urls have changed, reset the favicon url. data.favicon_url = GURL(); } @@ -2007,7 +2004,7 @@ diff --git a/components/search_engines/template_url_service.cc b/components/sear diff --git a/components/search_engines/template_url_service.h b/components/search_engines/template_url_service.h --- a/components/search_engines/template_url_service.h +++ b/components/search_engines/template_url_service.h -@@ -259,7 +259,8 @@ class TemplateURLService final : public WebDataServiceConsumer, +@@ -261,7 +261,8 @@ class TemplateURLService final : public WebDataServiceConsumer, TemplateURL* AddWithOverrides(std::unique_ptr template_url, const std::u16string& short_name, const std::u16string& keyword, @@ -2017,7 +2014,7 @@ diff --git a/components/search_engines/template_url_service.h b/components/searc // Removes the keyword from the model. This deletes the supplied TemplateURL. // This fails if the supplied template_url is the default search provider. -@@ -345,7 +346,8 @@ class TemplateURLService final : public WebDataServiceConsumer, +@@ -347,7 +348,8 @@ class TemplateURLService final : public WebDataServiceConsumer, void ResetTemplateURL(TemplateURL* url, const std::u16string& title, const std::u16string& keyword, @@ -2040,7 +2037,7 @@ diff --git a/content/browser/webui/web_ui_impl.cc b/content/browser/webui/web_ui + void WebUIImpl::ProcessWebUIMessage(const GURL& source_url, const std::string& message, - base::Value::List args) { + base::ListValue args) { @@ -416,9 +420,15 @@ void WebUIImpl::ProcessWebUIMessage(const GURL& source_url, return; } @@ -2066,7 +2063,7 @@ diff --git a/content/browser/webui/web_ui_impl.h b/content/browser/webui/web_ui_ @@ -92,6 +92,7 @@ class CONTENT_EXPORT WebUIImpl : public WebUI, public mojom::WebUIHost { void ProcessWebUIMessage(const GURL& source_url, const std::string& message, - base::Value::List args) override; + base::ListValue args) override; + void DoNotCrashOnUnhandledMessage() override; bool CanCallJavascript() override; void CallJavascriptFunctionUnsafe( @@ -2120,7 +2117,7 @@ diff --git a/third_party/polymer/v3_0/BUILD.gn b/third_party/polymer/v3_0/BUILD. if (is_chromeos_ash) { js_files += [ "iron-a11y-announcer/iron-a11y-announcer.js", -@@ -233,6 +243,12 @@ ts_library("library") { +@@ -230,6 +240,12 @@ ts_library("library") { [ "components-chromium/iron-fit-behavior/iron-fit-behavior.d.ts" ] } @@ -2316,7 +2313,7 @@ diff --git a/ui/webui/resources/cr_elements/BUILD.gn b/ui/webui/resources/cr_ele --- a/ui/webui/resources/cr_elements/BUILD.gn +++ b/ui/webui/resources/cr_elements/BUILD.gn @@ -49,7 +49,7 @@ build_webui("build") { - "cr_icon_button/cr_icon_button.css", + "cr_tabs/cr_tabs.css", ] - if ((!is_android && !is_ios) || is_desktop_android) { @@ -2324,16 +2321,16 @@ diff --git a/ui/webui/resources/cr_elements/BUILD.gn b/ui/webui/resources/cr_ele web_component_files += [ "cr_a11y_announcer/cr_a11y_announcer.ts" ] ts_files += [ -@@ -144,7 +144,7 @@ build_webui("build") { +@@ -142,7 +142,7 @@ build_webui("build") { ] } - if (!is_android && !is_ios) { + if (!is_ios) { ts_files += [ - "cr_container_shadow_mixin.ts", "cr_radio_button/cr_radio_button_mixin.ts", -@@ -238,7 +238,7 @@ build_webui("build") { + "cr_ripple/cr_ripple_mixin_polymer.ts", +@@ -237,7 +237,7 @@ build_webui("build") { "../js:build_ts", "//third_party/lit/v3_0:build_ts", ] @@ -2357,7 +2354,7 @@ diff --git a/ui/webui/resources/cr_elements/cr_dialog/cr_dialog.css b/ui/webui/r diff --git a/ui/webui/resources/cr_elements/cr_shared_style_lit.css b/ui/webui/resources/cr_elements/cr_shared_style_lit.css --- a/ui/webui/resources/cr_elements/cr_shared_style_lit.css +++ b/ui/webui/resources/cr_elements/cr_shared_style_lit.css -@@ -61,7 +61,7 @@ iron-list.cr-separators > *:not([first]) { +@@ -64,7 +64,7 @@ iron-list.cr-separators > *:not([first]) { height: inherit; margin: 0 auto; max-width: var(--cr-centered-card-max-width); @@ -2369,21 +2366,25 @@ diff --git a/ui/webui/resources/cr_elements/cr_shared_style_lit.css b/ui/webui/r diff --git a/ui/webui/resources/cr_elements/cr_shared_vars.css b/ui/webui/resources/cr_elements/cr_shared_vars.css --- a/ui/webui/resources/cr_elements/cr_shared_vars.css +++ b/ui/webui/resources/cr_elements/cr_shared_vars.css -@@ -226,6 +226,14 @@ html { - --cr-form-field-label-font-size: .625rem; - --cr-form-field-label-height: 1em; - --cr-form-field-label-line-height: 1; +@@ -295,6 +295,8 @@ html { + --cr-checked-color: var( + --color-checkbox-foreground-checked, + var(--cr-fallback-color-primary)); + + --cr-centered-card-min-width: 550px; -+} + } + + @media (prefers-color-scheme: dark) { +@@ -365,3 +367,9 @@ html { + --cr-fallback-color-disabled-foreground: GrayText; + } + } + +html[chrome-android] { + --cr-section-indent-width: 0px; + --cr-centered-card-width-percentage: 1; + --cr-centered-card-min-width: 0px; - } - - html { ++} diff --git a/ui/webui/resources/css/BUILD.gn b/ui/webui/resources/css/BUILD.gn --- a/ui/webui/resources/css/BUILD.gn +++ b/ui/webui/resources/css/BUILD.gn diff --git a/build/patches/Enable-share-intent.patch b/build/patches/Enable-share-intent.patch index e80da800..065768d7 100644 --- a/build/patches/Enable-share-intent.patch +++ b/build/patches/Enable-share-intent.patch @@ -35,7 +35,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni --- a/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni -@@ -589,6 +589,7 @@ chrome_java_resources = [ +@@ -598,6 +598,7 @@ chrome_java_resources = [ "java/res/layout/shopping_accessory_view_layout.xml", "java/res/layout/status_indicator_container.xml", "java/res/layout/suggestions_tile_view_condensed.xml", @@ -46,7 +46,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 -@@ -1047,6 +1047,7 @@ chrome_java_sources = [ +@@ -1057,6 +1057,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/signin/SigninCheckerProvider.java", "java/src/org/chromium/chrome/browser/signin/SigninFirstRunFragment.java", "java/src/org/chromium/chrome/browser/signin/SigninManagerImpl.java", @@ -57,7 +57,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml --- a/chrome/android/java/AndroidManifest.xml +++ b/chrome/android/java/AndroidManifest.xml -@@ -274,12 +274,6 @@ by a child template that "extends" this file. +@@ -277,12 +277,6 @@ by a child template that "extends" this file. @@ -70,7 +70,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -@@ -358,6 +352,10 @@ by a child template that "extends" this file. +@@ -361,6 +355,10 @@ by a child template that "extends" this file. @@ -81,7 +81,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -@@ -394,6 +392,24 @@ by a child template that "extends" this file. +@@ -397,6 +395,24 @@ by a child template that "extends" this file. @@ -298,7 +298,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessIni import org.chromium.chrome.browser.usb.UsbNotificationManager; import org.chromium.chrome.browser.util.AfterStartupTaskUtils; import org.chromium.chrome.browser.webapps.ChromeWebApkHost; -@@ -735,6 +736,7 @@ public class ProcessInitializationHandler { +@@ -692,6 +693,7 @@ public class ProcessInitializationHandler { tasks.add(WebApkUninstallTracker::runDeferredTasks); @@ -473,7 +473,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 -@@ -406,6 +406,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -411,6 +411,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kRelatedSearchesAllLanguage, &kRelatedSearchesSwitch, &kReloadTabUiResourcesIfChanged, @@ -484,7 +484,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse 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 -@@ -575,6 +575,7 @@ public abstract class ChromeFeatureList { +@@ -576,6 +576,7 @@ public abstract class ChromeFeatureList { public static final String RECENTLY_CLOSED_TABS_AND_WINDOWS = "RecentlyClosedTabsAndWindows"; public static final String RECORD_INCOGNITO_NTP_TIME_TO_FIRST_NAVIGATION_METRIC = "RecordIncognitoNtpTimeToFirstNavigationMetric"; @@ -495,7 +495,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 -@@ -6447,6 +6447,19 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -6477,6 +6477,19 @@ To change this setting, BEGIN_LINKdelete the Chrome d Make sure a phone app is enabled on this device diff --git a/build/patches/Enable-snackbar-swipe.patch b/build/patches/Enable-snackbar-swipe.patch index 5f19ecfc..35b314f6 100644 --- a/build/patches/Enable-snackbar-swipe.patch +++ b/build/patches/Enable-snackbar-swipe.patch @@ -6,20 +6,21 @@ Allows swipe of snackbar notifications License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- - .../ui/messages/snackbar/SnackbarView.java | 85 +++++++++++++++++-- - 1 file changed, 77 insertions(+), 8 deletions(-) + .../ui/messages/snackbar/SnackbarView.java | 91 ++++++++++++++++--- + 1 file changed, 77 insertions(+), 14 deletions(-) diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarView.java b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarView.java --- a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarView.java +++ b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarView.java -@@ -8,13 +8,16 @@ import android.animation.Animator; - import android.animation.AnimatorListenerAdapter; +@@ -9,14 +9,17 @@ import android.animation.AnimatorListenerAdapter; + import android.animation.AnimatorSet; import android.animation.ObjectAnimator; import android.app.Activity; +import android.content.Context; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.graphics.drawable.GradientDrawable; + import android.util.Pair; +import android.view.MotionEvent; import android.view.Gravity; import android.view.LayoutInflater; @@ -29,17 +30,16 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro import android.view.View.OnLayoutChangeListener; import android.view.ViewGroup; import android.widget.FrameLayout; -@@ -30,6 +33,9 @@ import org.chromium.build.annotations.Nullable; - import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeController; +@@ -35,6 +38,8 @@ import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarSwipeHandler.Del import org.chromium.chrome.ui.messages.R; import org.chromium.components.browser_ui.styles.SemanticColorUtils; -+import org.chromium.components.browser_ui.widget.gesture.SwipeGestureListener; + import org.chromium.components.browser_ui.widget.gesture.SwipeGestureListener; +import org.chromium.components.browser_ui.widget.gesture.SwipeGestureListener.ScrollDirection; +import org.chromium.components.browser_ui.widget.gesture.SwipeGestureListener.SwipeHandler; import org.chromium.components.browser_ui.widget.text.TemplatePreservingTextView; import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.insets.InsetObserver; -@@ -42,7 +48,7 @@ import org.chromium.ui.interpolators.Interpolators; +@@ -47,7 +52,7 @@ import org.chromium.ui.interpolators.Interpolators; // TODO (jianli): Change this class and its methods back to package protected after the offline // indicator experiment is done. @NullMarked @@ -48,7 +48,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro private static final int MAX_LINES = 5; private static final int DEFAULT_LINES = 2; -@@ -83,6 +89,16 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { +@@ -92,6 +97,16 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { } }; @@ -65,18 +65,27 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro /** * Creates an instance of the {@link SnackbarView}. * -@@ -116,13 +132,12 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { - +@@ -145,21 +160,15 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { + adjustViewPosition(); + } + }); +- SwipeGestureListener swipeGestureListener = +- new SwipeGestureListener(activity, mSnackbarSwipeHandler); +- ++ mSwipeGestureListener = ++ new SwipeGestureListenerImpl(mContainerView.getContext(), this); // Make sure clicks are not consumed by content beneath the container view. mContainerView.setClickable(true); - mContainerView.setOnClickListener((event) -> manager.resetSnackbarTimeout()); - mContainerView.setOnTouchListener( - (view, event) -> { +- if (swipeGestureListener.onTouchEvent(event)) return true; +- // Disable touch inputs during animation. +- if (mIsAnimating) return true; - mContainerView.performClick(); - return true; - }); - -+ mSwipeGestureListener = new SwipeGestureListenerImpl(mContainerView.getContext(), this); + if (!snackbar.isTypePersistent()) { + mContainerView.setOnTouchListener(this); + } @@ -85,7 +94,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro mSnackbarView = mContainerView.findViewById(R.id.snackbar); mAnimationDuration = mContainerView.getResources().getInteger(android.R.integer.config_mediumAnimTime); -@@ -235,6 +250,60 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { +@@ -292,6 +301,60 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { return mContainerView.isShown(); } diff --git a/build/patches/Enables-deactivation-of-the-js-debugger-statement.patch b/build/patches/Enables-deactivation-of-the-js-debugger-statement.patch index 84a7adf9..5697d305 100644 --- a/build/patches/Enables-deactivation-of-the-js-debugger-statement.patch +++ b/build/patches/Enables-deactivation-of-the-js-debugger-statement.patch @@ -28,7 +28,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/third_party/devtools-frontend/src/front_end/core/sdk/DebuggerModel.ts b/third_party/devtools-frontend/src/front_end/core/sdk/DebuggerModel.ts --- a/third_party/devtools-frontend/src/front_end/core/sdk/DebuggerModel.ts +++ b/third_party/devtools-frontend/src/front_end/core/sdk/DebuggerModel.ts -@@ -186,6 +186,9 @@ export class DebuggerModel extends SDKModel { +@@ -185,6 +185,9 @@ export class DebuggerModel extends SDKModel { Common.Settings.Settings.instance() .moduleSetting('disable-async-stack-traces') .addChangeListener(this.asyncStackTracesStateChanged, this); @@ -38,7 +38,7 @@ diff --git a/third_party/devtools-frontend/src/front_end/core/sdk/DebuggerModel. Common.Settings.Settings.instance() .moduleSetting('breakpoints-active') .addChangeListener(this.breakpointsActiveChanged, this); -@@ -199,6 +202,7 @@ export class DebuggerModel extends SDKModel { +@@ -198,6 +201,7 @@ export class DebuggerModel extends SDKModel { Common.Settings.Settings.instance() .moduleSetting('js-source-maps-enabled') .addChangeListener(event => this.#sourceMapManager.setEnabled((event.data as boolean))); @@ -46,7 +46,7 @@ diff --git a/third_party/devtools-frontend/src/front_end/core/sdk/DebuggerModel. const resourceTreeModel = (target.model(ResourceTreeModel) as ResourceTreeModel); if (resourceTreeModel) { -@@ -390,6 +394,11 @@ export class DebuggerModel extends SDKModel { +@@ -389,6 +393,11 @@ export class DebuggerModel extends SDKModel { return this.agent.invoke_setAsyncCallStackDepth({maxDepth}); } @@ -101,7 +101,7 @@ diff --git a/third_party/devtools-frontend/src/front_end/core/sdk/sdk-meta.ts b/ diff --git a/third_party/devtools-frontend/src/front_end/generated/InspectorBackendCommands.ts b/third_party/devtools-frontend/src/front_end/generated/InspectorBackendCommands.ts --- a/third_party/devtools-frontend/src/front_end/generated/InspectorBackendCommands.ts +++ b/third_party/devtools-frontend/src/front_end/generated/InspectorBackendCommands.ts -@@ -1489,6 +1489,10 @@ inspectorBackend.registerCommand("Debugger.resume", [{"name": "terminateOnResume +@@ -1535,6 +1535,10 @@ inspectorBackend.registerCommand("Debugger.resume", [{"name": "terminateOnResume inspectorBackend.registerCommand("Debugger.searchInContent", [{"name": "scriptId", "type": "string", "optional": false, "description": "Id of the script to search in.", "typeRef": "Runtime.ScriptId"}, {"name": "query", "type": "string", "optional": false, "description": "String to search for.", "typeRef": null}, {"name": "caseSensitive", "type": "boolean", "optional": true, "description": "If true, search is case sensitive.", "typeRef": null}, {"name": "isRegex", "type": "boolean", "optional": true, "description": "If true, treats string parameter as regex.", "typeRef": null}], ["result"], "Searches for given string in script content."); inspectorBackend.registerCommand("Debugger.setAsyncCallStackDepth", [{"name": "maxDepth", "type": "number", "optional": false, "description": "Maximum depth of async call stacks. Setting to `0` will effectively disable collecting async call stacks (default).", "typeRef": null}], [], "Enables or disables async call stacks tracking."); inspectorBackend.registerCommand("Debugger.setBlackboxExecutionContexts", [{"name": "uniqueIds", "type": "array", "optional": false, "description": "Array of execution context unique ids for the debugger to ignore.", "typeRef": "string"}], [], "Replace previous blackbox execution contexts with passed ones. Forces backend to skip stepping/pausing in scripts in these execution contexts. VM will try to leave blackboxed script by performing 'step in' several times, finally resorting to 'step out' if unsuccessful."); @@ -115,7 +115,7 @@ diff --git a/third_party/devtools-frontend/src/front_end/generated/InspectorBack diff --git a/third_party/devtools-frontend/src/front_end/generated/protocol-mapping.d.ts b/third_party/devtools-frontend/src/front_end/generated/protocol-mapping.d.ts --- a/third_party/devtools-frontend/src/front_end/generated/protocol-mapping.d.ts +++ b/third_party/devtools-frontend/src/front_end/generated/protocol-mapping.d.ts -@@ -5195,6 +5195,10 @@ export namespace ProtocolMapping { +@@ -5475,6 +5475,10 @@ export namespace ProtocolMapping { paramsType: [Protocol.Debugger.SetBlackboxExecutionContextsRequest]; returnType: void; }; @@ -129,7 +129,7 @@ diff --git a/third_party/devtools-frontend/src/front_end/generated/protocol-mapp diff --git a/third_party/devtools-frontend/src/front_end/generated/protocol-proxy-api.d.ts b/third_party/devtools-frontend/src/front_end/generated/protocol-proxy-api.d.ts --- a/third_party/devtools-frontend/src/front_end/generated/protocol-proxy-api.d.ts +++ b/third_party/devtools-frontend/src/front_end/generated/protocol-proxy-api.d.ts -@@ -4648,6 +4648,8 @@ declare namespace ProtocolProxyApi { +@@ -4925,6 +4925,8 @@ declare namespace ProtocolProxyApi { */ invoke_setBlackboxExecutionContexts(params: Protocol.Debugger.SetBlackboxExecutionContextsRequest): Promise; @@ -141,7 +141,7 @@ diff --git a/third_party/devtools-frontend/src/front_end/generated/protocol-prox diff --git a/third_party/devtools-frontend/src/front_end/generated/protocol.ts b/third_party/devtools-frontend/src/front_end/generated/protocol.ts --- a/third_party/devtools-frontend/src/front_end/generated/protocol.ts +++ b/third_party/devtools-frontend/src/front_end/generated/protocol.ts -@@ -20379,6 +20379,10 @@ export namespace Debugger { +@@ -20821,6 +20821,10 @@ export namespace Debugger { uniqueIds: string[]; } @@ -155,7 +155,7 @@ diff --git a/third_party/devtools-frontend/src/front_end/generated/protocol.ts b diff --git a/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.json b/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.json --- a/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.json +++ b/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.json -@@ -30891,8 +30891,17 @@ +@@ -31640,8 +31640,17 @@ "$ref": "WasmDisassemblyChunk" } ] @@ -175,7 +175,7 @@ diff --git a/third_party/devtools-frontend/src/third_party/blink/public/devtools "name": "nextWasmDisassemblyChunk", "description": "Disassemble the next chunk of lines for the module corresponding to the\nstream. If disassembly is complete, this API will invalidate the streamId\nand return an empty chunk. Any subsequent calls for the now invalid stream\nwill return errors.", "experimental": true, -@@ -34082,4 +34091,4 @@ +@@ -34831,4 +34840,4 @@ ] } ] @@ -199,7 +199,7 @@ diff --git a/v8/include/js_protocol.pdl b/v8/include/js_protocol.pdl diff --git a/v8/src/common/message-template.h b/v8/src/common/message-template.h --- a/v8/src/common/message-template.h +++ b/v8/src/common/message-template.h -@@ -775,6 +775,7 @@ namespace internal { +@@ -777,6 +777,7 @@ namespace internal { /* AggregateError */ \ T(AllPromisesRejected, "All promises were rejected") \ T(CannotDeepFreezeObject, "Cannot DeepFreeze object of type %") \ @@ -238,7 +238,7 @@ diff --git a/v8/src/debug/debug-interface.h b/v8/src/debug/debug-interface.h diff --git a/v8/src/debug/debug.h b/v8/src/debug/debug.h --- a/v8/src/debug/debug.h +++ b/v8/src/debug/debug.h -@@ -438,6 +438,9 @@ class V8_EXPORT_PRIVATE Debug { +@@ -437,6 +437,9 @@ class V8_EXPORT_PRIVATE Debug { void set_break_points_active(bool v) { break_points_active_ = v; } bool break_points_active() const { return break_points_active_; } @@ -248,7 +248,7 @@ diff --git a/v8/src/debug/debug.h b/v8/src/debug/debug.h StackFrameId break_frame_id() { return thread_local_.break_frame_id_; } Handle return_value_handle(); -@@ -618,6 +621,8 @@ class V8_EXPORT_PRIVATE Debug { +@@ -614,6 +617,8 @@ class V8_EXPORT_PRIVATE Debug { // Termination exception because side effect check has failed. bool side_effect_check_failed_; @@ -300,7 +300,7 @@ diff --git a/v8/src/inspector/v8-debugger-agent-impl.h b/v8/src/inspector/v8-deb diff --git a/v8/src/runtime/runtime-debug.cc b/v8/src/runtime/runtime-debug.cc --- a/v8/src/runtime/runtime-debug.cc +++ b/v8/src/runtime/runtime-debug.cc -@@ -132,9 +132,10 @@ RUNTIME_FUNCTION(Runtime_DebugBreakAtEntry) { +@@ -176,9 +176,10 @@ RUNTIME_FUNCTION(Runtime_DebugBreakAtEntry) { } RUNTIME_FUNCTION(Runtime_HandleDebuggerStatement) { @@ -313,7 +313,7 @@ diff --git a/v8/src/runtime/runtime-debug.cc b/v8/src/runtime/runtime-debug.cc isolate->debug()->HandleDebugBreak( kIgnoreIfTopFrameBlackboxed, v8::debug::BreakReasons({v8::debug::BreakReason::kDebuggerStatement})); -@@ -142,6 +143,18 @@ RUNTIME_FUNCTION(Runtime_HandleDebuggerStatement) { +@@ -186,6 +187,18 @@ RUNTIME_FUNCTION(Runtime_HandleDebuggerStatement) { return isolate->TerminateExecution(); } } diff --git a/build/patches/Experimental-user-scripts-support.patch b/build/patches/Experimental-user-scripts-support.patch index 1484ab74..8e543eab 100644 --- a/build/patches/Experimental-user-scripts-support.patch +++ b/build/patches/Experimental-user-scripts-support.patch @@ -229,7 +229,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -168,7 +168,11 @@ if (_is_default_toolchain) { +@@ -169,7 +169,11 @@ if (_is_default_toolchain) { sources = chrome_java_resources sources += [ "//chrome/android/java/res_app/layout/main.xml" ] @@ -242,7 +242,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn ":chrome_base_module_resources", ":ui_locale_string_resources", "//chrome/android/webapk/libs/common:splash_resources", -@@ -699,6 +703,7 @@ if (_is_default_toolchain) { +@@ -714,6 +718,7 @@ if (_is_default_toolchain) { "//components/ukm/android:java", "//components/url_formatter/android:url_formatter_java", "//components/user_prefs/android:java", @@ -250,7 +250,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//components/variations:variations_java", "//components/variations/android:variations_java", "//components/viz/service:service_java", -@@ -1694,6 +1699,7 @@ if (_is_default_toolchain) { +@@ -1737,6 +1742,7 @@ if (_is_default_toolchain) { java_group("chrome_public_non_pak_assets") { deps = [ "//chrome/android/webapk/libs/runtime_library:runtime_library_assets", @@ -261,7 +261,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml --- a/chrome/android/java/res/xml/main_preferences.xml +++ b/chrome/android/java/res/xml/main_preferences.xml -@@ -141,6 +141,11 @@ found in the LICENSE file. +@@ -149,6 +149,11 @@ found in the LICENSE file. android:key="useragent_settings" android:order="20" android:title="@string/prefs_useragent_settings"/> @@ -300,7 +300,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java --- a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java -@@ -158,6 +158,8 @@ import java.util.Date; +@@ -151,6 +151,8 @@ import java.util.Date; import java.util.List; import java.util.Locale; @@ -309,7 +309,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessIni /** * Handles the initialization dependences of the browser process. This is meant to handle the * initialization that is not tied to any particular Activity, and the logic that should only be -@@ -672,6 +674,8 @@ public class ProcessInitializationHandler { +@@ -629,6 +631,8 @@ public class ProcessInitializationHandler { DefaultBrowserInfo.initBrowserFetcher(); @@ -338,7 +338,7 @@ diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -3690,6 +3690,13 @@ static_library("browser") { +@@ -3671,6 +3671,13 @@ static_library("browser") { ] deps += [ "//chrome/android/modules/dev_ui/provider:native" ] } @@ -355,7 +355,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -190,6 +190,7 @@ +@@ -191,6 +191,7 @@ #include "components/ui_devtools/switches.h" #include "components/variations/variations_switches.h" #include "components/version_info/channel.h" @@ -366,15 +366,15 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc -@@ -258,6 +258,7 @@ +@@ -261,6 +261,7 @@ #include "components/ntp_tiles/popular_sites_impl.h" #include "components/permissions/contexts/geolocation_permission_context_android.h" #include "components/webapps/browser/android/install_prompt_prefs.h" +#include "components/user_scripts/browser/user_script_prefs.h" #else // BUILDFLAG(IS_ANDROID) #include "chrome/browser/actor/ui/actor_ui_state_manager_prefs.h" - #include "chrome/browser/contextual_cueing/contextual_cueing_prefs.h" -@@ -1760,6 +1761,9 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, + #include "chrome/browser/gcm/gcm_product_util.h" +@@ -1820,6 +1821,9 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, omnibox::RegisterProfilePrefs(registry); ZeroSuggestProvider::RegisterProfilePrefs(registry); NtpCustomBackgroundService::RegisterProfilePrefs(registry); @@ -400,7 +400,7 @@ diff --git a/chrome/browser/profiles/BUILD.gn b/chrome/browser/profiles/BUILD.gn diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc -@@ -588,6 +588,11 @@ +@@ -594,6 +594,11 @@ #include "chrome/browser/net/nss_service_factory.h" #endif @@ -412,7 +412,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc void AddProfilesExtraParts(ChromeBrowserMainParts* main_parts) { main_parts->AddParts(std::make_unique()); } -@@ -1443,6 +1448,10 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -1454,6 +1459,10 @@ void ChromeBrowserMainExtraPartsProfiles:: #endif WebDataServiceFactory::GetInstance(); webrtc_event_logging::WebRtcEventLogManagerKeyedServiceFactory::GetInstance(); @@ -426,7 +426,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc --- a/chrome/browser/profiles/profile_manager.cc +++ b/chrome/browser/profiles/profile_manager.cc -@@ -124,6 +124,10 @@ +@@ -123,6 +123,10 @@ #include "extensions/common/manifest.h" #endif @@ -437,7 +437,7 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile #if BUILDFLAG(ENABLE_SESSION_SERVICE) #include "chrome/browser/sessions/app_session_service_factory.h" #include "chrome/browser/sessions/session_service_factory.h" -@@ -1569,6 +1573,13 @@ void ProfileManager::DoFinalInitForServices(Profile* profile, +@@ -1580,6 +1584,13 @@ void ProfileManager::DoFinalInitForServices(Profile* profile, // initializing the supervised flag if necessary). ChildAccountServiceFactory::GetForProfile(profile)->Init(); ListFamilyMembersServiceFactory::GetForProfile(profile)->Init(); @@ -515,7 +515,7 @@ diff --git a/chrome/browser/profiles/renderer_updater.h b/chrome/browser/profile diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/ui/webui/chrome_web_ui_configs.cc --- a/chrome/browser/ui/webui/chrome_web_ui_configs.cc +++ b/chrome/browser/ui/webui/chrome_web_ui_configs.cc -@@ -61,6 +61,9 @@ +@@ -62,6 +62,9 @@ #include "chrome/browser/ui/webui/proxy_config_ui.h" @@ -525,7 +525,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/u #if BUILDFLAG(ENABLE_WEBUI_CERTIFICATE_VIEWER) #include "chrome/browser/ui/webui/certificate_viewer/certificate_viewer_ui.h" -@@ -447,7 +450,9 @@ void RegisterChromeWebUIConfigs() { +@@ -457,7 +460,9 @@ void RegisterChromeWebUIConfigs() { map.AddWebUIConfig( std::make_unique()); #endif @@ -569,7 +569,7 @@ diff --git a/chrome/common/renderer_configuration.mojom b/chrome/common/renderer diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn --- a/chrome/renderer/BUILD.gn +++ b/chrome/renderer/BUILD.gn -@@ -240,6 +240,12 @@ static_library("renderer") { +@@ -243,6 +243,12 @@ static_library("renderer") { deps += [ "//components/webapps/isolated_web_apps:scheme" ] } @@ -585,7 +585,7 @@ diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc --- a/chrome/renderer/chrome_content_renderer_client.cc +++ b/chrome/renderer/chrome_content_renderer_client.cc -@@ -260,6 +260,11 @@ +@@ -266,6 +266,11 @@ #include "chrome/renderer/media/chrome_key_systems.h" #endif @@ -597,7 +597,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer using autofill::AutofillAgent; using autofill::PasswordAutofillAgent; using autofill::PasswordGenerationAgent; -@@ -429,6 +434,14 @@ void ChromeContentRendererClient::RenderThreadStarted() { +@@ -435,6 +440,14 @@ void ChromeContentRendererClient::RenderThreadStarted() { WebString::FromASCII(extensions::kExtensionScheme)); #endif // BUILDFLAG(ENABLE_EXTENSIONS_CORE) @@ -612,7 +612,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer #if BUILDFLAG(ENABLE_SPELLCHECK) if (!spellcheck_) InitSpellCheck(); -@@ -623,6 +636,15 @@ void ChromeContentRendererClient::RenderFrameCreated( +@@ -629,6 +642,15 @@ void ChromeContentRendererClient::RenderFrameCreated( render_frame, std::make_unique()); #endif @@ -628,7 +628,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer #if BUILDFLAG(ENABLE_PAINT_PREVIEW) new paint_preview::PaintPreviewRecorderImpl(render_frame); #endif -@@ -1405,6 +1427,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentStart( +@@ -1420,6 +1442,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentStart( render_frame); // |render_frame| might be dead by now. #endif @@ -646,7 +646,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer } void ChromeContentRendererClient::RunScriptsAtDocumentEnd( -@@ -1414,6 +1447,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentEnd( +@@ -1429,6 +1462,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentEnd( render_frame); // |render_frame| might be dead by now. #endif @@ -664,7 +664,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer } void ChromeContentRendererClient::RunScriptsAtDocumentIdle( -@@ -1423,6 +1467,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentIdle( +@@ -1438,6 +1482,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentIdle( render_frame); // |render_frame| might be dead by now. #endif @@ -11494,7 +11494,7 @@ new file mode 100644 diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ids.spec --- a/tools/gritsettings/resource_ids.spec +++ b/tools/gritsettings/resource_ids.spec -@@ -1254,6 +1254,12 @@ +@@ -1265,6 +1265,12 @@ "META": {"sizes": {"includes": [10]}}, "includes": [7495], }, diff --git a/build/patches/Eyeo-Adblock-for-Cromite.patch b/build/patches/Eyeo-Adblock-for-Cromite.patch index 80a867ad..12febdb9 100644 --- a/build/patches/Eyeo-Adblock-for-Cromite.patch +++ b/build/patches/Eyeo-Adblock-for-Cromite.patch @@ -160,7 +160,7 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j -@@ -91,11 +82,6 @@ Use of this source code is governed by the GPLv3 that can be found in the compon +@@ -94,11 +85,6 @@ Use of this source code is governed by the GPLv3 that can be found in the compon android:key="autofill_options" android:order="16" android:title="@string/autofill_options_title" /> @@ -172,7 +172,7 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j @@ -878,7 +878,7 @@ diff --git a/chrome/browser/adblock/android/java/src/org/chromium/chrome/browser diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -6467,7 +6467,9 @@ ChromeContentBrowserClient:: +@@ -6515,7 +6515,9 @@ ChromeContentBrowserClient:: } bool ChromeContentBrowserClient::WillInterceptWebSocket( @@ -889,7 +889,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch #if BUILDFLAG(ENABLE_EXTENSIONS_CORE) if (!frame) { return false; -@@ -6490,9 +6492,11 @@ bool ChromeContentBrowserClient::WillInterceptWebSocket( +@@ -6538,9 +6540,11 @@ bool ChromeContentBrowserClient::WillInterceptWebSocket( } void ChromeContentBrowserClient::CreateWebSocket( @@ -904,7 +904,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch diff --git a/chrome/browser/chrome_content_browser_client.h b/chrome/browser/chrome_content_browser_client.h --- a/chrome/browser/chrome_content_browser_client.h +++ b/chrome/browser/chrome_content_browser_client.h -@@ -727,11 +727,15 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient { +@@ -729,11 +729,15 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient { CreateURLLoaderHandlerForServiceWorkerNavigationPreload( content::FrameTreeNodeId frame_tree_node_id, const network::ResourceRequest& resource_request) override; @@ -1171,7 +1171,7 @@ diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chro #include "components/autofill/core/common/autofill_prefs.h" #include "components/bookmarks/common/bookmark_pref_names.h" #include "components/browsing_data/core/pref_names.h" -@@ -182,6 +183,19 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { +@@ -200,6 +201,19 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { } s_allowlist = new PrefsUtil::TypedPrefMap(); @@ -1194,7 +1194,7 @@ diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chro diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc -@@ -255,7 +255,6 @@ +@@ -256,7 +256,6 @@ #include "chrome/common/buildflags.h" #include "chrome/common/chrome_features.h" #include "components/adblock/content/browser/factories/adblock_request_throttle_factory.h" @@ -1202,10 +1202,10 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc #include "components/adblock/content/browser/factories/content_security_policy_injector_factory.h" #include "components/adblock/content/browser/factories/element_hider_factory.h" #include "components/adblock/content/browser/factories/resource_classification_runner_factory.h" -@@ -953,7 +952,6 @@ void ChromeBrowserMainExtraPartsProfiles:: - // Makes manual testing possible. - FakeSmartCardDeviceServiceFactory::GetInstance(); - #endif +@@ -972,7 +971,6 @@ void ChromeBrowserMainExtraPartsProfiles:: + FederatedIdentityApiPermissionContextFactory::GetInstance(); + FederatedIdentityAutoReauthnPermissionContextFactory::GetInstance(); + FederatedIdentityPermissionContextFactory::GetInstance(); - adblock::AdblockTelemetryServiceFactory::GetInstance(); adblock::AdblockRequestThrottleFactory::GetInstance(); adblock::ContentSecurityPolicyInjectorFactory::GetInstance(); @@ -1213,15 +1213,15 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resources/settings/BUILD.gn --- a/chrome/browser/resources/settings/BUILD.gn +++ b/chrome/browser/resources/settings/BUILD.gn -@@ -68,6 +68,7 @@ build_webui("build") { +@@ -65,6 +65,7 @@ build_webui("build") { "ai_page/ai_tab_organization_subpage.ts", "ai_page/history_search_page.ts", "ai_page/offer_writing_help_page.ts", + "adblock_page/adblock_page.ts", "appearance_page/appearance_fonts_page.ts", - "appearance_page/appearance_page_index.ts", "appearance_page/appearance_page.ts", -@@ -446,6 +447,7 @@ build_webui("build") { + "appearance_page/appearance_page_index.ts", +@@ -443,6 +444,7 @@ build_webui("build") { ts_definitions = [ "//tools/typescript/definitions/autofill_private.d.ts", "//tools/typescript/definitions/chrome_event.d.ts", @@ -1854,7 +1854,7 @@ diff --git a/chrome/browser/resources/settings/settings_main/settings_main.ts b/ diff --git a/chrome/browser/resources/settings/settings_menu/settings_menu.html b/chrome/browser/resources/settings/settings_menu/settings_menu.html --- a/chrome/browser/resources/settings/settings_menu/settings_menu.html +++ b/chrome/browser/resources/settings/settings_menu/settings_menu.html -@@ -161,6 +161,11 @@ +@@ -151,6 +151,11 @@ $i18n{a11yPageTitle} @@ -1869,7 +1869,7 @@ diff --git a/chrome/browser/resources/settings/settings_menu/settings_menu.html diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc --- a/chrome/browser/ui/tab_helpers.cc +++ b/chrome/browser/ui/tab_helpers.cc -@@ -345,7 +345,8 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -353,7 +353,8 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { auto* original_profile = profile->GetOriginalProfile(); adblock::EnsureBackgroundServicesStarted(original_profile); adblock::RegisterAdblockWebContentObserver< @@ -12909,7 +12909,7 @@ diff --git a/content/browser/websockets/websocket_connector_impl.cc b/content/br + process, frame, base::BindOnce(ConnectCalledByContentBrowserClient, requested_protocols, site_for_cookies, storage_access_api_status, - isolation_info_, process_id_, frame_id_, origin_, + isolation_info_, frame_id_, origin_, client_security_state_->Clone(), options, std::move(throttling_profile_id)), - url, site_for_cookies, user_agent, std::move(handshake_client)); @@ -12920,7 +12920,7 @@ diff --git a/content/browser/websockets/websocket_connector_impl.cc b/content/br diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc --- a/content/public/browser/content_browser_client.cc +++ b/content/public/browser/content_browser_client.cc -@@ -1145,7 +1145,7 @@ void ContentBrowserClient::WillCreateURLLoaderFactory( +@@ -1148,7 +1148,7 @@ void ContentBrowserClient::WillCreateURLLoaderFactory( DCHECK(browser_context); } @@ -12929,7 +12929,7 @@ diff --git a/content/public/browser/content_browser_client.cc b/content/public/b return false; } -@@ -1154,9 +1154,11 @@ uint32_t ContentBrowserClient::GetWebSocketOptions(RenderFrameHost* frame) { +@@ -1157,9 +1157,11 @@ uint32_t ContentBrowserClient::GetWebSocketOptions(RenderFrameHost* frame) { } void ContentBrowserClient::CreateWebSocket( @@ -12944,7 +12944,7 @@ diff --git a/content/public/browser/content_browser_client.cc b/content/public/b diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h --- a/content/public/browser/content_browser_client.h +++ b/content/public/browser/content_browser_client.h -@@ -2140,7 +2140,7 @@ class CONTENT_EXPORT ContentBrowserClient { +@@ -2145,7 +2145,7 @@ class CONTENT_EXPORT ContentBrowserClient { scoped_refptr navigation_response_task_runner); // Returns true when the embedder wants to intercept a websocket connection. @@ -12953,7 +12953,7 @@ diff --git a/content/public/browser/content_browser_client.h b/content/public/br // Returns the WebSocket creation options. virtual uint32_t GetWebSocketOptions(RenderFrameHost* frame); -@@ -2162,9 +2162,11 @@ class CONTENT_EXPORT ContentBrowserClient { +@@ -2167,9 +2167,11 @@ class CONTENT_EXPORT ContentBrowserClient { // Always called on the UI thread and only when the Network Service is // enabled. virtual void CreateWebSocket( @@ -12999,7 +12999,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/core/css/style_engine.cc b/third_party/blink/renderer/core/css/style_engine.cc --- a/third_party/blink/renderer/core/css/style_engine.cc +++ b/third_party/blink/renderer/core/css/style_engine.cc -@@ -652,6 +652,14 @@ void StyleEngine::PrepareUpdateActiveStyleSheetsInShadow( +@@ -653,6 +653,14 @@ void StyleEngine::PrepareUpdateActiveStyleSheetsInShadow( collection->PrepareUpdateActiveStyleSheets(medium); } @@ -13043,7 +13043,7 @@ diff --git a/third_party/blink/renderer/core/dom/events/event_target.cc b/third_ diff --git a/third_party/blink/renderer/core/exported/web_document.cc b/third_party/blink/renderer/core/exported/web_document.cc --- a/third_party/blink/renderer/core/exported/web_document.cc +++ b/third_party/blink/renderer/core/exported/web_document.cc -@@ -300,6 +300,16 @@ WebStyleSheetKey WebDocument::InsertAbpElemhideStylesheet( +@@ -301,6 +301,16 @@ WebStyleSheetKey WebDocument::InsertAbpElemhideStylesheet( Document* document = Unwrap(); DCHECK(document); @@ -13060,7 +13060,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_document.cc b/third_pa auto* parsed_sheet = MakeGarbageCollected( MakeGarbageCollected(*document)); parsed_sheet->ParseString(source_code); -@@ -321,9 +331,6 @@ WebStyleSheetKey WebDocument::InsertAbpElemhideStylesheet( +@@ -322,9 +332,6 @@ WebStyleSheetKey WebDocument::InsertAbpElemhideStylesheet( {SchedulingPolicy::DisableBackForwardCache()}); } @@ -13073,7 +13073,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_document.cc b/third_pa diff --git a/third_party/blink/renderer/core/html/html_element.cc b/third_party/blink/renderer/core/html/html_element.cc --- a/third_party/blink/renderer/core/html/html_element.cc +++ b/third_party/blink/renderer/core/html/html_element.cc -@@ -2917,13 +2917,7 @@ void HTMLElement::setSpellcheck(bool enable) { +@@ -2942,13 +2942,7 @@ void HTMLElement::setSpellcheck(bool enable) { } void HTMLElement::click() { diff --git a/build/patches/Fix-chromium-build-bugs.patch b/build/patches/Fix-chromium-build-bugs.patch index f2f4be1b..6260243f 100644 --- a/build/patches/Fix-chromium-build-bugs.patch +++ b/build/patches/Fix-chromium-build-bugs.patch @@ -5,22 +5,22 @@ Subject: Fix chromium build bugs because of https://bugs.chromium.org/p/chromium/issues/detail?id=1491776#c10 --- - BUILD.gn | 1 - - .../navigation_predictor_metrics_document_data.h | 2 ++ - chrome/browser/safe_browsing/BUILD.gn | 1 + - .../component_updater/installer_policies/BUILD.gn | 1 + - components/contextual_tasks/internal/BUILD.gn | 1 + - .../omnibox/browser/autocomplete_classifier.cc | 4 ++-- - components/omnibox/browser/omnibox_field_trial.cc | 4 ++-- - .../phishing_classifier/phishing_image_embedder.cc | 14 +++----------- - content/browser/browser_interface_binders.cc | 1 + - services/webnn/dml/graph_impl_dml.cc | 1 + - 10 files changed, 14 insertions(+), 16 deletions(-) + BUILD.gn | 1 - + .../navigation_predictor_metrics_document_data.h | 2 ++ + chrome/browser/safe_browsing/BUILD.gn | 1 + + .../installer_policies/BUILD.gn | 1 + + components/contextual_tasks/internal/BUILD.gn | 1 + + .../omnibox/browser/autocomplete_classifier.cc | 4 ++-- + .../omnibox/browser/omnibox_field_trial.cc | 4 ++-- + .../phishing_image_embedder.cc | 16 +++------------- + content/browser/browser_interface_binders.cc | 1 + + services/webnn/dml/graph_impl_dml.cc | 1 + + 10 files changed, 14 insertions(+), 18 deletions(-) diff --git a/BUILD.gn b/BUILD.gn --- a/BUILD.gn +++ b/BUILD.gn -@@ -410,7 +410,6 @@ group("gn_all") { +@@ -409,7 +409,6 @@ group("gn_all") { "//android_webview:empty_group", "//android_webview/test", "//android_webview/tools/automated_ui_tests:webview_ui_test_app_test_apk", @@ -43,7 +43,7 @@ diff --git a/chrome/browser/navigation_predictor/navigation_predictor_metrics_do diff --git a/chrome/browser/safe_browsing/BUILD.gn b/chrome/browser/safe_browsing/BUILD.gn --- a/chrome/browser/safe_browsing/BUILD.gn +++ b/chrome/browser/safe_browsing/BUILD.gn -@@ -309,6 +309,7 @@ static_library("safe_browsing") { +@@ -317,6 +317,7 @@ static_library("safe_browsing") { "//components/version_info", "//content/public/browser", "//services/preferences/public/mojom", @@ -54,7 +54,7 @@ diff --git a/chrome/browser/safe_browsing/BUILD.gn b/chrome/browser/safe_browsin diff --git a/components/component_updater/installer_policies/BUILD.gn b/components/component_updater/installer_policies/BUILD.gn --- a/components/component_updater/installer_policies/BUILD.gn +++ b/components/component_updater/installer_policies/BUILD.gn -@@ -52,6 +52,7 @@ static_library("installer_policies_no_content_deps") { +@@ -47,6 +47,7 @@ static_library("installer_policies_no_content_deps") { "//components/update_client", "//mojo/public/cpp/base:protobuf_support", "//services/network/public/cpp", @@ -90,7 +90,7 @@ diff --git a/components/omnibox/browser/autocomplete_classifier.cc b/components/ diff --git a/components/omnibox/browser/omnibox_field_trial.cc b/components/omnibox/browser/omnibox_field_trial.cc --- a/components/omnibox/browser/omnibox_field_trial.cc +++ b/components/omnibox/browser/omnibox_field_trial.cc -@@ -818,11 +818,11 @@ MLConfig& MLConfig::operator=(const MLConfig& other) = default; +@@ -804,11 +804,11 @@ MLConfig& MLConfig::operator=(const MLConfig& other) = default; ScopedMLConfigForTesting::ScopedMLConfigForTesting() : original_config_(std::make_unique(GetMLConfig())) { @@ -107,18 +107,20 @@ diff --git a/components/omnibox/browser/omnibox_field_trial.cc b/components/omni diff --git a/components/safe_browsing/content/renderer/phishing_classifier/phishing_image_embedder.cc b/components/safe_browsing/content/renderer/phishing_classifier/phishing_image_embedder.cc --- a/components/safe_browsing/content/renderer/phishing_classifier/phishing_image_embedder.cc +++ b/components/safe_browsing/content/renderer/phishing_classifier/phishing_image_embedder.cc -@@ -50,17 +50,9 @@ void PhishingImageEmbedder::BeginImageEmbedding(DoneCallback done_callback) { - - void PhishingImageEmbedder::OnPlaybackDone(std::unique_ptr bitmap) { +@@ -57,19 +57,9 @@ void PhishingImageEmbedder::BeginImageEmbedding( + void PhishingImageEmbedder::OnPlaybackDone(bool can_extract_visual_features, + std::unique_ptr bitmap) { #if BUILDFLAG(BUILD_WITH_TFLITE_LIB) - if (bitmap) { - bitmap_ = std::move(bitmap); +- - ScorerStorage::GetInstance() - ->GetScorer() - ->ApplyVisualTfLiteModelImageEmbedding( - *bitmap_, - base::BindOnce(&PhishingImageEmbedder::OnImageEmbeddingDone, -- weak_factory_.GetWeakPtr())); +- weak_factory_.GetWeakPtr(), +- can_extract_visual_features)); - } else { - RunFailureCallback(); - } @@ -131,7 +133,7 @@ diff --git a/components/safe_browsing/content/renderer/phishing_classifier/phish diff --git a/content/browser/browser_interface_binders.cc b/content/browser/browser_interface_binders.cc --- a/content/browser/browser_interface_binders.cc +++ b/content/browser/browser_interface_binders.cc -@@ -359,6 +359,7 @@ void BindDateTimeChooserForFrame( +@@ -365,6 +365,7 @@ void BindDateTimeChooserForFrame( void BindTextSuggestionHostForFrame( RenderFrameHost* host, mojo::PendingReceiver receiver) { diff --git a/build/patches/Fonts-fingerprinting-mitigation.patch b/build/patches/Fonts-fingerprinting-mitigation.patch index e35c3930..062c121c 100644 --- a/build/patches/Fonts-fingerprinting-mitigation.patch +++ b/build/patches/Fonts-fingerprinting-mitigation.patch @@ -20,13 +20,13 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../Fonts-fingerprinting-mitigation.inc | 10 + skia/ext/skia_utils_win.cc | 20 ++ skia/ext/skia_utils_win.h | 3 + - third_party/blink/public/common/features.h | 4 + + third_party/blink/public/common/features.h | 3 + third_party/blink/renderer/platform/BUILD.gn | 1 + .../renderer/platform/fonts/font_cache.h | 2 +- .../fonts/skia/bromite_allowed_fonts.h | 271 ++++++++++++++++++ .../platform/fonts/skia/font_cache_skia.cc | 44 ++- .../platform/fonts/win/font_cache_skia_win.cc | 7 +- - 11 files changed, 363 insertions(+), 9 deletions(-) + 11 files changed, 362 insertions(+), 9 deletions(-) create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Fonts-fingerprinting-mitigation.inc create mode 100644 cromite_flags/content/common/features_cc/Fonts-fingerprinting-mitigation.inc create mode 100644 cromite_flags/third_party/blink/common/features_cc/Fonts-fingerprinting-mitigation.inc @@ -120,17 +120,16 @@ diff --git a/skia/ext/skia_utils_win.h b/skia/ext/skia_utils_win.h diff --git a/third_party/blink/public/common/features.h b/third_party/blink/public/common/features.h --- a/third_party/blink/public/common/features.h +++ b/third_party/blink/public/common/features.h -@@ -251,6 +251,10 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE_PARAM(int, - BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kLessAggressiveParkableString); +@@ -441,6 +441,9 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE( + + BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kFencedFrames); - BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kCombineNewWindowIPCs); -+ +// Filter the list of fonts allowing the use of only standard fonts +BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kFontsFingerprintMitigation); + - BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kConsumeCodeCacheOffThread); + BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE( + kFencedFramesCrossOriginEventReporting); - BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kContentCaptureConstantStreaming); diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn --- a/third_party/blink/renderer/platform/BUILD.gn +++ b/third_party/blink/renderer/platform/BUILD.gn @@ -469,7 +468,7 @@ diff --git a/third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc b namespace { const FontPlatformData* CreateFontPlatformDataForTypeface( sk_sp typeface, -@@ -264,7 +287,7 @@ const SimpleFontData* FontCache::GetLastResortFallbackFont( +@@ -263,7 +286,7 @@ const SimpleFontData* FontCache::GetLastResortFallbackFont( sk_sp FontCache::CreateTypeface( const FontDescription& font_description, const FontFaceCreationParams& creation_params, @@ -478,7 +477,7 @@ diff --git a/third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc b #if !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_FUCHSIA) // TODO(fuchsia): Revisit this and other font code for Fuchsia. -@@ -282,6 +305,16 @@ sk_sp FontCache::CreateTypeface( +@@ -281,6 +304,16 @@ sk_sp FontCache::CreateTypeface( DCHECK_NE(family, font_family_names::kSystemUi); // convert the name to utf8 name = family.Utf8(); @@ -495,7 +494,7 @@ diff --git a/third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc b #if BUILDFLAG(IS_ANDROID) // If this is a locale-specific family, try looking up locale-specific -@@ -289,11 +322,11 @@ sk_sp FontCache::CreateTypeface( +@@ -288,11 +321,11 @@ sk_sp FontCache::CreateTypeface( if (const char* locale_family = GetLocaleSpecificFamilyName(family)) { if (sk_sp typeface = CreateLocaleSpecificTypeface(font_description, locale_family)) @@ -510,7 +509,7 @@ diff --git a/third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc b } #if !BUILDFLAG(IS_WIN) -@@ -303,6 +336,7 @@ const FontPlatformData* FontCache::CreateFontPlatformData( +@@ -302,6 +335,7 @@ const FontPlatformData* FontCache::CreateFontPlatformData( float font_size, AlternateFontName alternate_name) { std::string name; @@ -518,7 +517,7 @@ diff --git a/third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc b sk_sp typeface; #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) -@@ -323,7 +357,7 @@ const FontPlatformData* FontCache::CreateFontPlatformData( +@@ -322,7 +356,7 @@ const FontPlatformData* FontCache::CreateFontPlatformData( noto_color_emoji_from_gmscore)) { typeface = CreateTypefaceFromUniqueName(creation_params); } else { @@ -530,7 +529,7 @@ diff --git a/third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc b diff --git a/third_party/blink/renderer/platform/fonts/win/font_cache_skia_win.cc b/third_party/blink/renderer/platform/fonts/win/font_cache_skia_win.cc --- a/third_party/blink/renderer/platform/fonts/win/font_cache_skia_win.cc +++ b/third_party/blink/renderer/platform/fonts/win/font_cache_skia_win.cc -@@ -442,6 +442,7 @@ const FontPlatformData* FontCache::CreateFontPlatformData( +@@ -433,6 +433,7 @@ const FontPlatformData* FontCache::CreateFontPlatformData( sk_sp typeface; std::string name; @@ -538,7 +537,7 @@ diff --git a/third_party/blink/renderer/platform/fonts/win/font_cache_skia_win.c if (alternate_font_name == AlternateFontName::kLocalUniqueFace && RuntimeEnabledFeatures::FontSrcLocalMatchingEnabled()) { -@@ -453,7 +454,7 @@ const FontPlatformData* FontCache::CreateFontPlatformData( +@@ -444,7 +445,7 @@ const FontPlatformData* FontCache::CreateFontPlatformData( return nullptr; } else { @@ -547,7 +546,7 @@ diff --git a/third_party/blink/renderer/platform/fonts/win/font_cache_skia_win.c // For a family match, Windows will always give us a valid pointer here, // even if the face name is non-existent. We have to double-check and see if -@@ -487,7 +488,7 @@ const FontPlatformData* FontCache::CreateFontPlatformData( +@@ -478,7 +479,7 @@ const FontPlatformData* FontCache::CreateFontPlatformData( FontDescription adjusted_font_description = font_description; adjusted_font_description.SetWeight(variant_weight); typeface = @@ -556,7 +555,7 @@ diff --git a/third_party/blink/renderer/platform/fonts/win/font_cache_skia_win.c if (!typeface || !TypefacesMatchesFamily(typeface.get(), adjusted_name)) { return nullptr; -@@ -499,7 +500,7 @@ const FontPlatformData* FontCache::CreateFontPlatformData( +@@ -490,7 +491,7 @@ const FontPlatformData* FontCache::CreateFontPlatformData( FontDescription adjusted_font_description = font_description; adjusted_font_description.SetStretch(variant_stretch); typeface = diff --git a/build/patches/History-number-of-days-privacy-setting.patch b/build/patches/History-number-of-days-privacy-setting.patch index 8f5f5b32..90366c02 100644 --- a/build/patches/History-number-of-days-privacy-setting.patch +++ b/build/patches/History-number-of-days-privacy-setting.patch @@ -57,7 +57,7 @@ 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 -@@ -66,6 +66,7 @@ import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; +@@ -67,6 +67,7 @@ import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; import org.chromium.components.browser_ui.settings.SettingsFragment; import org.chromium.components.browser_ui.settings.SettingsNavigation; import org.chromium.components.browser_ui.settings.SettingsUtils; @@ -65,7 +65,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import org.chromium.components.browser_ui.settings.search.SettingsIndexData; import org.chromium.components.browser_ui.site_settings.ContentSettingsResources; import org.chromium.components.browser_ui.site_settings.SingleCategorySettings; -@@ -100,6 +101,9 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; +@@ -101,6 +102,9 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate; @@ -75,7 +75,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. */ @NullMarked public class PrivacySettings extends ChromeBaseSettingsFragment -@@ -163,6 +167,8 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -166,6 +170,8 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private ChromeSwitchPreference allowCustomTabIntentsPref; private ChromeSwitchPreference openExternalLinksPref; @@ -84,7 +84,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting @Override public void onCreatePreferencesCromite(@Nullable Bundle savedInstanceState, @Nullable String rootKey) { mPageTitle.set(getString(R.string.prefs_privacy_security)); -@@ -296,6 +302,40 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -303,6 +309,40 @@ public class PrivacySettings extends ChromeBaseSettingsFragment Preference syncAndServicesLink = findPreference(PREF_SYNC_AND_SERVICES_LINK); syncAndServicesLink.setSummary(buildFooterString()); @@ -125,7 +125,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting Preference thirdPartyCookies = findPreference(PREF_THIRD_PARTY_COOKIES); if (thirdPartyCookies != null) { thirdPartyCookies -@@ -646,6 +686,29 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -658,6 +698,29 @@ public class PrivacySettings extends ChromeBaseSettingsFragment || ((System.currentTimeMillis() - updateTimeMs) < TimeUnit.DAYS.toMillis(90)); } @@ -166,7 +166,7 @@ diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chro #include "components/embedder_support/pref_names.h" #include "components/language/core/browser/pref_names.h" #include "components/live_caption/pref_names.h" -@@ -237,6 +238,9 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { +@@ -257,6 +258,9 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { (*s_allowlist)[::prefs::kSplitViewDragAndDropEnabled] = settings_api::PrefType::kBoolean; @@ -191,7 +191,7 @@ diff --git a/chrome/browser/history/history_service_factory.cc b/chrome/browser/ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc --- a/chrome/browser/profiles/profile_impl.cc +++ b/chrome/browser/profiles/profile_impl.cc -@@ -374,6 +374,7 @@ std::unique_ptr Profile::CreateProfile(const base::FilePath& path, +@@ -378,6 +378,7 @@ std::unique_ptr Profile::CreateProfile(const base::FilePath& path, void ProfileImpl::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref(prefs::kSavingBrowserHistoryDisabled, false); @@ -202,7 +202,7 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.html b/chrome/browser/resources/settings/privacy_page/privacy_page.html --- a/chrome/browser/resources/settings/privacy_page/privacy_page.html +++ b/chrome/browser/resources/settings/privacy_page/privacy_page.html -@@ -67,6 +67,15 @@ +@@ -65,6 +65,15 @@ sub-label="$i18n{siteSettingsSublabel}" on-click="onSiteSettingsLinkRowClick_" role-description="$i18n{subpageArrowRoleDescription}"> @@ -264,7 +264,7 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.ts b/ch 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 -@@ -1267,6 +1267,18 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1282,6 +1282,18 @@ Your Google account may have other forms of browsing history like searches and a Browsing history @@ -286,7 +286,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc --- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc +++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc -@@ -2307,6 +2307,11 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, +@@ -2325,6 +2325,11 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, IDS_SETTINGS_SAFEBROWSING_ENHANCED_THINGS_TO_CONSIDER_BULLET_THREE}, {"safeBrowsingStandard", IDS_SETTINGS_SAFEBROWSING_STANDARD}, {"safeBrowsingStandardDesc", IDS_SETTINGS_SAFEBROWSING_STANDARD_DESC}, @@ -425,7 +425,7 @@ new file mode 100644 diff --git a/components/history/core/browser/browsing_history_service.cc b/components/history/core/browser/browsing_history_service.cc --- a/components/history/core/browser/browsing_history_service.cc +++ b/components/history/core/browser/browsing_history_service.cc -@@ -682,7 +682,7 @@ void BrowsingHistoryService::QueryComplete( +@@ -805,7 +805,7 @@ void BrowsingHistoryService::QueryComplete( // Exhausted the local results; continue querying to get remote results. // Start querying at the point where local history ends. base::Time expiry_treshold = @@ -434,7 +434,7 @@ diff --git a/components/history/core/browser/browsing_history_service.cc b/compo if (state->remote_end_time_for_continuation.is_null()) { state->remote_end_time_for_continuation = base::Time::Max(); } -@@ -758,7 +758,7 @@ void BrowsingHistoryService::RecordResultsMetrics( +@@ -890,7 +890,7 @@ void BrowsingHistoryService::RecordResultsMetrics( // Count the number of local, remote, and combined entries, each split by // entries before vs after the local expiry threshold (90 days). const base::Time local_expiry_threshold = diff --git a/build/patches/Immediately-destroy-shared-workers-when-closing-the-page.patch b/build/patches/Immediately-destroy-shared-workers-when-closing-the-page.patch index 565a782a..7fb0e838 100644 --- a/build/patches/Immediately-destroy-shared-workers-when-closing-the-page.patch +++ b/build/patches/Immediately-destroy-shared-workers-when-closing-the-page.patch @@ -15,7 +15,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/content/browser/worker_host/shared_worker_host.cc b/content/browser/worker_host/shared_worker_host.cc --- a/content/browser/worker_host/shared_worker_host.cc +++ b/content/browser/worker_host/shared_worker_host.cc -@@ -69,7 +69,7 @@ namespace { +@@ -71,7 +71,7 @@ namespace { // TODO(crbug.com/400473072): revisit the duration. // Also, we may want to use the same constant we use for service workers. // Current value come from `ServiceWorkerVersion::kRequestTimeout`. @@ -24,9 +24,9 @@ diff --git a/content/browser/worker_host/shared_worker_host.cc b/content/browser // These values are persisted to logs. Entries should not be renumbered and // numeric values should never be reused. -@@ -1037,17 +1037,6 @@ void SharedWorkerHost::OnClientConnectionLost() { - break; - } +@@ -1153,17 +1153,6 @@ void SharedWorkerHost::OnClientConnectionLost() { + // the freeze state to freeze the worker if no active clients remain. + OnClientStateChanged(); } - if (instance_.extended_lifetime()) { - if (!clients_.empty()) { // Early return. diff --git a/build/patches/Internal-firewall.patch b/build/patches/Internal-firewall.patch index fc219d06..44296e88 100644 --- a/build/patches/Internal-firewall.patch +++ b/build/patches/Internal-firewall.patch @@ -60,7 +60,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -2516,6 +2516,7 @@ static_library("browser") { +@@ -2496,6 +2496,7 @@ static_library("browser") { "//third_party/ungoogled:switches", "//services/device/public/mojom", "//services/device/public/mojom:usb", @@ -71,7 +71,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -236,6 +236,7 @@ +@@ -237,6 +237,7 @@ #include "sandbox/policy/features.h" #include "sandbox/policy/switches.h" #include "services/device/public/cpp/device_features.h" @@ -82,7 +82,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/download/android/download_controller.cc b/chrome/browser/download/android/download_controller.cc --- a/chrome/browser/download/android/download_controller.cc +++ b/chrome/browser/download/android/download_controller.cc -@@ -190,6 +190,36 @@ void LogAppVerificationPromptToPrefs(download::DownloadItem* item) { +@@ -193,6 +193,36 @@ void LogAppVerificationPromptToPrefs(download::DownloadItem* item) { update->Append(base::TimeToValue(base::Time::Now())); } @@ -119,7 +119,7 @@ diff --git a/chrome/browser/download/android/download_controller.cc b/chrome/bro } // namespace static void JNI_DownloadController_CancelDownload(JNIEnv* env, -@@ -224,7 +254,7 @@ static void JNI_DownloadController_DownloadUrl( +@@ -227,7 +257,7 @@ static void JNI_DownloadController_DownloadUrl( std::unique_ptr dl_params = content::DownloadRequestUtils::CreateDownloadForWebContentsMainFrame( web_contents, GURL(url), @@ -301,7 +301,7 @@ new file mode 100644 diff --git a/net/BUILD.gn b/net/BUILD.gn --- a/net/BUILD.gn +++ b/net/BUILD.gn -@@ -1202,6 +1202,7 @@ component("net") { +@@ -1206,6 +1206,7 @@ component("net") { "//components/unexportable_keys", "//components/network_session_configurator/common", "//net/http:transport_security_state_generated_files", @@ -312,7 +312,7 @@ diff --git a/net/BUILD.gn b/net/BUILD.gn diff --git a/net/traffic_annotation/network_traffic_annotation.h b/net/traffic_annotation/network_traffic_annotation.h --- a/net/traffic_annotation/network_traffic_annotation.h +++ b/net/traffic_annotation/network_traffic_annotation.h -@@ -365,10 +365,6 @@ struct MutablePartialNetworkTrafficAnnotationTag { +@@ -363,10 +363,6 @@ struct MutablePartialNetworkTrafficAnnotationTag { } // namespace net // Placeholder for unannotated usages. @@ -326,7 +326,7 @@ diff --git a/net/traffic_annotation/network_traffic_annotation.h b/net/traffic_a diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc --- a/net/url_request/url_request_http_job.cc +++ b/net/url_request/url_request_http_job.cc -@@ -432,6 +432,9 @@ URLRequestHttpJob::URLRequestHttpJob( +@@ -434,6 +434,9 @@ URLRequestHttpJob::URLRequestHttpJob( : URLRequestJob(request), http_user_agent_settings_(http_user_agent_settings) { ResetTimer(); @@ -336,7 +336,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque } URLRequestHttpJob::~URLRequestHttpJob() { -@@ -726,6 +729,18 @@ void URLRequestHttpJob::MaybeStartTransactionInternal(int result) { +@@ -734,6 +737,18 @@ void URLRequestHttpJob::MaybeStartTransactionInternal(int result) { void URLRequestHttpJob::StartTransactionInternal() { DCHECK(!override_response_headers_); @@ -1669,7 +1669,7 @@ new file mode 100644 diff --git a/services/network/network_context.cc b/services/network/network_context.cc --- a/services/network/network_context.cc +++ b/services/network/network_context.cc -@@ -105,6 +105,7 @@ +@@ -106,6 +106,7 @@ #include "net/url_request/url_request.h" #include "net/url_request/url_request_context.h" #include "net/url_request/url_request_context_builder.h" @@ -1677,7 +1677,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont #include "services/network/brokered_client_socket_factory.h" #include "services/network/connection_change_observer.h" #include "services/network/cookie_manager.h" -@@ -1830,6 +1831,9 @@ void NetworkContext::OnNewSCTAuditingReportSent() { +@@ -1825,6 +1826,9 @@ void NetworkContext::OnNewSCTAuditingReportSent() { void NetworkContext::CreateUDPSocket( mojo::PendingReceiver receiver, mojo::PendingRemote listener) { @@ -1687,7 +1687,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont socket_factory_->CreateUDPSocket(std::move(receiver), std::move(listener)); } -@@ -1843,6 +1847,17 @@ void NetworkContext::CreateRestrictedUDPSocket( +@@ -1838,6 +1842,17 @@ void NetworkContext::CreateRestrictedUDPSocket( bool allow_multicast, CreateRestrictedUDPSocketCallback callback) { // SimpleHostResolver is transitively owned by |this|. @@ -1705,7 +1705,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont socket_factory_->CreateRestrictedUDPSocket( addr, mode, traffic_annotation, std::move(params), std::move(receiver), std::move(listener), SimpleHostResolver::Create(this), allow_multicast, -@@ -1855,6 +1870,17 @@ void NetworkContext::CreateTCPServerSocket( +@@ -1850,6 +1865,17 @@ void NetworkContext::CreateTCPServerSocket( const net::MutableNetworkTrafficAnnotationTag& traffic_annotation, mojo::PendingReceiver receiver, CreateTCPServerSocketCallback callback) { @@ -1723,7 +1723,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont socket_factory_->CreateTCPServerSocket( local_addr, std::move(options), static_cast(traffic_annotation), -@@ -1869,6 +1895,21 @@ void NetworkContext::CreateTCPConnectedSocket( +@@ -1864,6 +1890,21 @@ void NetworkContext::CreateTCPConnectedSocket( mojo::PendingReceiver receiver, mojo::PendingRemote observer, CreateTCPConnectedSocketCallback callback) { @@ -1745,7 +1745,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont socket_factory_->CreateTCPConnectedSocket( local_addr, remote_addr_list, std::move(tcp_connected_socket_options), static_cast(traffic_annotation), -@@ -1880,6 +1921,20 @@ void NetworkContext::CreateTCPBoundSocket( +@@ -1875,6 +1916,20 @@ void NetworkContext::CreateTCPBoundSocket( const net::MutableNetworkTrafficAnnotationTag& traffic_annotation, mojo::PendingReceiver receiver, CreateTCPBoundSocketCallback callback) { @@ -1766,7 +1766,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont socket_factory_->CreateTCPBoundSocket( local_addr, static_cast(traffic_annotation), -@@ -1947,6 +2002,24 @@ void NetworkContext::CreateWebSocket( +@@ -1942,6 +1997,24 @@ void NetworkContext::CreateWebSocket( mojo::PendingRemote auth_handler, mojo::PendingRemote header_client, const std::optional& throttling_profile_id) { @@ -2068,7 +2068,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/fetch_utils.cc b/t diff --git a/third_party/blink/renderer/platform/loader/fetch/url_loader/url_loader.cc b/third_party/blink/renderer/platform/loader/fetch/url_loader/url_loader.cc --- a/third_party/blink/renderer/platform/loader/fetch/url_loader/url_loader.cc +++ b/third_party/blink/renderer/platform/loader/fetch/url_loader/url_loader.cc -@@ -278,7 +278,7 @@ void URLLoader::Context::Start( +@@ -279,7 +279,7 @@ void URLLoader::Context::Start( download_to_blob_registry.InitWithNewPipeAndPassReceiver()); } net::NetworkTrafficAnnotationTag tag = @@ -2077,9 +2077,9 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/url_loader/url_loa resource_request_sender_->SendSync( std::move(request), tag, loader_options, sync_load_response, url_loader_factory_, std::move(throttles), timeout_interval, -@@ -291,7 +291,7 @@ void URLLoader::Context::Start( - TRACE_EVENT_WITH_FLOW0("loading", "URLLoader::Context::Start", this, - TRACE_EVENT_FLAG_FLOW_OUT); +@@ -292,7 +292,7 @@ void URLLoader::Context::Start( + TRACE_EVENT("loading", "URLLoader::Context::Start", + perfetto::Flow::FromPointer(this)); net::NetworkTrafficAnnotationTag tag = - FetchUtils::GetTrafficAnnotationTag(*request); + FetchUtils::GetTrafficAnnotationTag(*request); // check for deprecation diff --git a/build/patches/JIT-site-settings.patch b/build/patches/JIT-site-settings.patch index 114b54df..b4c46bf4 100644 --- a/build/patches/JIT-site-settings.patch +++ b/build/patches/JIT-site-settings.patch @@ -291,7 +291,7 @@ diff --git a/components/content_settings/core/browser/content_settings_registry. diff --git a/content/browser/renderer_host/navigation_request.cc b/content/browser/renderer_host/navigation_request.cc --- a/content/browser/renderer_host/navigation_request.cc +++ b/content/browser/renderer_host/navigation_request.cc -@@ -4261,12 +4261,17 @@ UrlInfo NavigationRequest::GetUrlInfo() { +@@ -4326,12 +4326,17 @@ UrlInfo NavigationRequest::GetUrlInfo() { // Compute the WebExposedIsolationInfo that will be bundled into UrlInfo. auto web_exposed_isolation_info = ComputeWebExposedIsolationInfo(); @@ -313,7 +313,7 @@ diff --git a/content/browser/renderer_host/navigation_request.cc b/content/brows diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc -@@ -3618,6 +3618,9 @@ void RenderProcessHostImpl::AppendRendererCommandLine( +@@ -3597,6 +3597,9 @@ void RenderProcessHostImpl::AppendRendererCommandLine( if (IsJitDisabled()) { AppendToCommaSeparatedSwitch( command_line, blink::switches::kJavaScriptFlags, "--jitless"); @@ -326,7 +326,7 @@ diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content diff --git a/content/browser/site_info.cc b/content/browser/site_info.cc --- a/content/browser/site_info.cc +++ b/content/browser/site_info.cc -@@ -317,6 +317,13 @@ SiteInfo SiteInfo::Create(const IsolationContext& isolation_context, +@@ -319,6 +319,13 @@ SiteInfo SiteInfo::Create(const IsolationContext& isolation_context, is_jitless = is_jitless || GetContentClient()->browser()->IsJitDisabledForSite( browser_context, agent_cluster_url_or_default); diff --git a/build/patches/Keep-ComputePressure-disabled.patch b/build/patches/Keep-ComputePressure-disabled.patch index 81017315..1b354473 100644 --- a/build/patches/Keep-ComputePressure-disabled.patch +++ b/build/patches/Keep-ComputePressure-disabled.patch @@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -1187,11 +1187,9 @@ +@@ -1215,11 +1215,9 @@ status: "stable", }, { diff --git a/build/patches/Keep-Manta-Service-Disabled.patch b/build/patches/Keep-Manta-Service-Disabled.patch index 28d5c091..92894995 100644 --- a/build/patches/Keep-Manta-Service-Disabled.patch +++ b/build/patches/Keep-Manta-Service-Disabled.patch @@ -10,7 +10,7 @@ Subject: Keep Manta Service Disabled diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc -@@ -1031,7 +1031,6 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -1044,7 +1044,6 @@ void ChromeBrowserMainExtraPartsProfiles:: #if !BUILDFLAG(IS_ANDROID) ManagedConfigurationAPIFactory::GetInstance(); #endif diff --git a/build/patches/Keep-disabled-CpuPerformance.patch b/build/patches/Keep-disabled-CpuPerformance.patch index f533396f..387f68cc 100644 --- a/build/patches/Keep-disabled-CpuPerformance.patch +++ b/build/patches/Keep-disabled-CpuPerformance.patch @@ -13,7 +13,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -1273,8 +1273,7 @@ +@@ -1301,8 +1301,7 @@ // CPU Performance API, work in progress. // https://chromestatus.com/feature/5189864286978048 // https://github.com/explainers-by-googlers/cpu-performance diff --git a/build/patches/Keep-disabled-FetchLaterAPI.patch b/build/patches/Keep-disabled-FetchLaterAPI.patch index 7f041ca6..567a4b0b 100644 --- a/build/patches/Keep-disabled-FetchLaterAPI.patch +++ b/build/patches/Keep-disabled-FetchLaterAPI.patch @@ -67,7 +67,7 @@ diff --git a/content/browser/loader/keep_alive_url_loader.cc b/content/browser/l network_loader_factory_(std::move(network_loader_factory)), stored_url_load_(std::make_unique()), policy_container_host_(std::move(policy_container_host)), -@@ -511,7 +540,7 @@ void KeepAliveURLLoader::StartInternal(bool is_retry) { +@@ -512,7 +541,7 @@ void KeepAliveURLLoader::StartInternal(bool is_retry) { url_loader_ = blink::ThrottlingURLLoader::CreateLoaderAndStart( network_loader_factory_, throttles_getter_.Run(), request_id_, options_, &resource_request_, forwarding_client_.get(), @@ -190,7 +190,7 @@ diff --git a/third_party/blink/renderer/platform/loader/child_url_loader_factory diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc --- a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc +++ b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc -@@ -3103,7 +3103,7 @@ void ResourceFetcher::PrepareForLeakDetection() { +@@ -3112,7 +3112,7 @@ void ResourceFetcher::PrepareForLeakDetection() { void ResourceFetcher::StopFetchingInternal(StopFetchingTarget target) { // TODO(toyoshim): May want to suspend scheduler while canceling loaders so // that the cancellations below do not awake unnecessary scheduling. @@ -202,7 +202,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -2413,8 +2413,8 @@ +@@ -2476,8 +2476,8 @@ { // The Blink runtime-enabled feature name for the API's IDL. // https://chromestatus.com/feature/4654499737632768 diff --git a/build/patches/Keep-empty-tabs-between-sessions.patch b/build/patches/Keep-empty-tabs-between-sessions.patch index 173ec522..dd98f44c 100644 --- a/build/patches/Keep-empty-tabs-between-sessions.patch +++ b/build/patches/Keep-empty-tabs-between-sessions.patch @@ -13,7 +13,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/multiwindow/MultiWindowUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/multiwindow/MultiWindowUtils.java --- a/chrome/android/java/src/org/chromium/chrome/browser/multiwindow/MultiWindowUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/multiwindow/MultiWindowUtils.java -@@ -1115,7 +1115,7 @@ public class MultiWindowUtils implements ActivityStateListener { +@@ -1128,7 +1128,7 @@ public class MultiWindowUtils implements ActivityStateListener { int totalCount = 0; for (TabModel model : models) { for (Tab tab : model) { @@ -25,7 +25,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/multiwindow/Mul diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreImpl.java -@@ -1961,13 +1961,6 @@ public class TabPersistentStoreImpl implements TabPersistentStore { +@@ -1966,13 +1966,6 @@ public class TabPersistentStoreImpl implements TabPersistentStore { continue; } @@ -43,8 +43,8 @@ diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browse --- a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistenceUtils.java +++ b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistenceUtils.java @@ -17,16 +17,6 @@ public class TabPersistenceUtils { + * * @param tab The tab to check. - * @return True if the tab should be skipped, false otherwise. */ - public static boolean shouldSkipTab(Tab tab) { - // Don't skip the tab if it is pinned. @@ -57,6 +57,6 @@ diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browse - return tab.getTabGroupId() == null; - } - private TabPersistenceUtils() {} - } + /** + * Returns true if the tab should be skipped when loading persisted tabs. -- diff --git a/build/patches/Keep-flag-to-allow-screenshots-in-Incognito-mode.patch b/build/patches/Keep-flag-to-allow-screenshots-in-Incognito-mode.patch index 6616545c..66be5a80 100644 --- a/build/patches/Keep-flag-to-allow-screenshots-in-Incognito-mode.patch +++ b/build/patches/Keep-flag-to-allow-screenshots-in-Incognito-mode.patch @@ -28,7 +28,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/incognito/Incog diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -5599,10 +5599,10 @@ +@@ -5679,10 +5679,10 @@ "expiry_milestone": -1 }, { diff --git a/build/patches/Keyboard-protection-flag.patch b/build/patches/Keyboard-protection-flag.patch index ff037aba..3d215fd3 100644 --- a/build/patches/Keyboard-protection-flag.patch +++ b/build/patches/Keyboard-protection-flag.patch @@ -23,7 +23,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java b/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java --- a/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java +++ b/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java -@@ -924,6 +924,11 @@ public final class ProductionSupportedFlagList { +@@ -965,6 +965,11 @@ public final class ProductionSupportedFlagList { + " also enable the same behaviour as this flag. Additionally, developer" + " preferences via the AndroidX API or manifest metadata supersedes this" + " flag."), @@ -233,7 +233,7 @@ diff --git a/third_party/blink/renderer/core/events/keyboard_event.h b/third_par diff --git a/ui/base/ui_base_features.cc b/ui/base/ui_base_features.cc --- a/ui/base/ui_base_features.cc +++ b/ui/base/ui_base_features.cc -@@ -150,6 +150,14 @@ bool ShouldUseCursorEventHook() { +@@ -140,6 +140,14 @@ bool ShouldUseCursorEventHook() { // Allows system keyboard event capture via the keyboard lock API. BASE_FEATURE(kSystemKeyboardLock, base::FEATURE_ENABLED_BY_DEFAULT); diff --git a/build/patches/Lock-Profile-Cookie-Database.patch b/build/patches/Lock-Profile-Cookie-Database.patch index 4e282cf4..df8b8239 100644 --- a/build/patches/Lock-Profile-Cookie-Database.patch +++ b/build/patches/Lock-Profile-Cookie-Database.patch @@ -16,7 +16,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/net/profile_network_context_service.cc b/chrome/browser/net/profile_network_context_service.cc --- a/chrome/browser/net/profile_network_context_service.cc +++ b/chrome/browser/net/profile_network_context_service.cc -@@ -1398,6 +1398,14 @@ void ProfileNetworkContextService::ConfigureNetworkContextParamsInternal( +@@ -1371,6 +1371,14 @@ void ProfileNetworkContextService::ConfigureNetworkContextParamsInternal( network_context_params->file_paths->cookie_database_name = base::FilePath(chrome::kCookieFilename); @@ -56,7 +56,7 @@ new file mode 100644 diff --git a/services/network/network_context.cc b/services/network/network_context.cc --- a/services/network/network_context.cc +++ b/services/network/network_context.cc -@@ -3216,7 +3216,7 @@ NetworkContext::MakeSessionCleanupCookieStore() const { +@@ -3226,7 +3226,7 @@ NetworkContext::MakeSessionCleanupCookieStore() const { #if BUILDFLAG(IS_WIN) const bool enable_exclusive_access = @@ -68,7 +68,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom --- a/services/network/public/mojom/network_context.mojom +++ b/services/network/public/mojom/network_context.mojom -@@ -357,6 +357,14 @@ struct NetworkContextParams { +@@ -358,6 +358,14 @@ struct NetworkContextParams { // If true, cookies will be stored encrypted. bool enable_encrypted_cookies = true; diff --git a/build/patches/Log-dangling-attributes-in-some-html-elements.patch b/build/patches/Log-dangling-attributes-in-some-html-elements.patch index f53c8f5c..f649e6d1 100644 --- a/build/patches/Log-dangling-attributes-in-some-html-elements.patch +++ b/build/patches/Log-dangling-attributes-in-some-html-elements.patch @@ -42,10 +42,10 @@ new file mode 100644 diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc --- a/third_party/blink/renderer/core/dom/document.cc +++ b/third_party/blink/renderer/core/dom/document.cc -@@ -5100,6 +5100,14 @@ void Document::ProcessBaseElement() { +@@ -5082,6 +5082,14 @@ void Document::ProcessBaseElement() { KURL base_element_url; if (href) { - String stripped_href = StripLeadingAndTrailingHTMLSpaces(*href); + StringView stripped_href = StripLeadingAndTrailingHtmlSpaces(*href); + if (stripped_href.Contains('\n') || stripped_href.Contains('<')) { + AddConsoleMessage(MakeGarbageCollected( + mojom::ConsoleMessageSource::kSecurity, @@ -57,7 +57,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink if (!stripped_href.empty()) base_element_url = KURL(FallbackBaseURL(), stripped_href); } -@@ -5117,6 +5125,14 @@ void Document::ProcessBaseElement() { +@@ -5099,6 +5107,14 @@ void Document::ProcessBaseElement() { !GetExecutionContext()->GetSecurityOrigin()->CanRequest( base_element_url)) { UseCounter::Count(*this, WebFeature::kBaseWithCrossOriginHref); @@ -72,7 +72,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink } } -@@ -5147,6 +5163,8 @@ void Document::ProcessBaseElement() { +@@ -5129,6 +5145,8 @@ void Document::ProcessBaseElement() { if (target->Contains('<')) UseCounter::Count(*this, WebFeature::kBaseWithOpenBracketInTarget); base_target_ = *target; @@ -115,7 +115,7 @@ diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/ diff --git a/third_party/blink/renderer/core/dom/element.h b/third_party/blink/renderer/core/dom/element.h --- a/third_party/blink/renderer/core/dom/element.h +++ b/third_party/blink/renderer/core/dom/element.h -@@ -821,7 +821,8 @@ class CORE_EXPORT Element : public ContainerNode { +@@ -819,7 +819,8 @@ class CORE_EXPORT Element : public ContainerNode { virtual bool HasLegalLinkAttribute(const QualifiedName&) const; // Only called by the parser immediately after element construction. @@ -157,7 +157,7 @@ diff --git a/third_party/blink/renderer/core/editing/serializers/markup_formatte diff --git a/third_party/blink/renderer/core/html/forms/html_form_element.cc b/third_party/blink/renderer/core/html/forms/html_form_element.cc --- a/third_party/blink/renderer/core/html/forms/html_form_element.cc +++ b/third_party/blink/renderer/core/html/forms/html_form_element.cc -@@ -320,7 +320,7 @@ void HTMLFormElement::PrepareForSubmission( +@@ -537,7 +537,7 @@ void HTMLFormElement::PrepareForSubmission( if (form_control_element && form_control_element->BlocksFormSubmission()) { UseCounter::Count(GetDocument(), WebFeature::kFormSubmittedWithUnclosedFormControl); @@ -197,7 +197,7 @@ diff --git a/third_party/blink/renderer/core/html/html_base_element.h b/third_pa diff --git a/third_party/blink/renderer/core/html/html_frame_element_base.cc b/third_party/blink/renderer/core/html/html_frame_element_base.cc --- a/third_party/blink/renderer/core/html/html_frame_element_base.cc +++ b/third_party/blink/renderer/core/html/html_frame_element_base.cc -@@ -120,6 +120,16 @@ void HTMLFrameElementBase::ParseAttribute( +@@ -121,6 +121,16 @@ void HTMLFrameElementBase::ParseAttribute( frame_name_ = value; } else if (name == html_names::kNameAttr) { frame_name_ = value; @@ -212,12 +212,12 @@ diff --git a/third_party/blink/renderer/core/html/html_frame_element_base.cc b/t + //frame_name_ = g_empty_atom; + } } else if (name == html_names::kMarginwidthAttr) { - SetMarginWidth(value.ToInt()); + SetMarginWidth(StringToInt(value).value_or(0)); } else if (name == html_names::kMarginheightAttr) { diff --git a/third_party/blink/renderer/core/html/html_iframe_element.cc b/third_party/blink/renderer/core/html/html_iframe_element.cc --- a/third_party/blink/renderer/core/html/html_iframe_element.cc +++ b/third_party/blink/renderer/core/html/html_iframe_element.cc -@@ -170,6 +170,12 @@ void HTMLIFrameElement::CollectStyleForPresentationAttribute( +@@ -171,6 +171,12 @@ void HTMLIFrameElement::CollectStyleForPresentationAttribute( } } @@ -230,7 +230,7 @@ diff --git a/third_party/blink/renderer/core/html/html_iframe_element.cc b/third void HTMLIFrameElement::ParseAttribute( const AttributeModificationParams& params) { const QualifiedName& name = params.name; -@@ -184,6 +190,16 @@ void HTMLIFrameElement::ParseAttribute( +@@ -185,6 +191,16 @@ void HTMLIFrameElement::ParseAttribute( } AtomicString old_name = name_; name_ = value; @@ -334,7 +334,7 @@ diff --git a/third_party/blink/renderer/core/page/frame_tree.cc b/third_party/bl diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -3305,6 +3305,12 @@ +@@ -3421,6 +3421,12 @@ name: "MacDisableCtrlHomeEnd", status: "stable", }, @@ -346,5 +346,5 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 + }, { name: "MachineLearningNeuralNetwork", - // Enabled by webnn::mojom::features::kWebMachineLearningNeuralNetwork. + origin_trial_feature_name: "WebMachineLearningNeuralNetwork", -- diff --git a/build/patches/Logcat-crash-reports-UI.patch b/build/patches/Logcat-crash-reports-UI.patch index 7d3b42de..fecb3f14 100644 --- a/build/patches/Logcat-crash-reports-UI.patch +++ b/build/patches/Logcat-crash-reports-UI.patch @@ -154,7 +154,7 @@ diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -644,6 +644,7 @@ static_library("ui") { +@@ -641,6 +641,7 @@ static_library("ui") { "//third_party/re2", "//third_party/webrtc_overrides:webrtc_component", "//third_party/zlib", @@ -208,16 +208,16 @@ diff --git a/chrome/browser/ui/webui/crashes/crashes_ui.cc b/chrome/browser/ui/w CrashesDOMHandler& operator=(const CrashesDOMHandler&) = delete; @@ -94,6 +112,8 @@ class CrashesDOMHandler : public WebUIMessageHandler { // Asynchronously fetches the list of crashes. Called from JS. - void HandleRequestCrashes(const base::Value::List& args); + void HandleRequestCrashes(const base::ListValue& args); + void RequestCrashesList(); + #if BUILDFLAG(IS_CHROMEOS) // Asynchronously triggers crash uploading. Called from JS. - void HandleRequestUploads(const base::Value::List& args); + void HandleRequestUploads(const base::ListValue& args); @@ -105,13 +125,30 @@ class CrashesDOMHandler : public WebUIMessageHandler { // Asynchronously requests a user triggered upload. Called from JS. - void HandleRequestSingleCrashUpload(const base::Value::List& args); + void HandleRequestSingleCrashUpload(const base::ListValue& args); + std::string RequestSingleUpload(const std::string& local_id) const; + void RequestSingleUploadCallback(const std::string& local_id, const std::string& filename); @@ -266,7 +266,7 @@ diff --git a/chrome/browser/ui/webui/crashes/crashes_ui.cc b/chrome/browser/ui/w void CrashesDOMHandler::OnJavascriptDisallowed() { @@ -145,6 +192,10 @@ void CrashesDOMHandler::OnJavascriptDisallowed() { - void CrashesDOMHandler::HandleRequestCrashes(const base::Value::List& args) { + void CrashesDOMHandler::HandleRequestCrashes(const base::ListValue& args) { AllowJavascript(); + RequestCrashesList(); +} @@ -288,7 +288,7 @@ diff --git a/chrome/browser/ui/webui/crashes/crashes_ui.cc b/chrome/browser/ui/w @@ -228,14 +278,117 @@ void CrashesDOMHandler::UpdateUI() { void CrashesDOMHandler::HandleRequestSingleCrashUpload( - const base::Value::List& args) { + const base::ListValue& args) { - // Only allow manual uploads if crash uploads aren’t disabled by policy. - if (!ChromeMetricsServiceAccessor::IsMetricsAndCrashReportingEnabled() && - IsMetricsReportingPolicyManaged()) { @@ -439,7 +439,7 @@ diff --git a/components/crash/core/browser/crashes_ui_util.h b/components/crash/ +inline constexpr char kCrashesUIHandleRequestNewExtraction[] = "requestNewExtraction"; // Converts and appends the most recent uploads to |out_value|. - void UploadListToValue(UploadList* upload_list, base::Value::List* out_value); + void UploadListToValue(UploadList* upload_list, base::ListValue* out_value); diff --git a/components/crash/core/browser/resources/crashes.css b/components/crash/core/browser/resources/crashes.css --- a/components/crash/core/browser/resources/crashes.css +++ b/components/crash/core/browser/resources/crashes.css @@ -454,7 +454,7 @@ diff --git a/components/crash/core/browser/resources/crashes.css b/components/cr } h1 { -@@ -27,7 +29,6 @@ html[dir=rtl] h1 { +@@ -26,7 +28,6 @@ html[dir=rtl] h1 { background-color: rgb(235, 239, 250); border: 1px solid #bbb; border-radius: 2px; @@ -462,7 +462,7 @@ diff --git a/components/crash/core/browser/resources/crashes.css b/components/cr font-size: 100%; padding: 4px; } -@@ -80,3 +81,65 @@ html[dir=rtl] h1 { +@@ -79,3 +80,65 @@ html[dir=rtl] h1 { .not-uploaded { color: #a0a0a0; } diff --git a/build/patches/Modify-default-preferences.patch b/build/patches/Modify-default-preferences.patch index 02a2433d..bfd17562 100644 --- a/build/patches/Modify-default-preferences.patch +++ b/build/patches/Modify-default-preferences.patch @@ -33,7 +33,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -82,6 +82,7 @@ +@@ -84,6 +84,7 @@ #include "components/autofill/core/common/autofill_payments_features.h" #include "components/autofill/core/common/autofill_switches.h" #include "components/autofill/core/common/autofill_util.h" @@ -56,7 +56,7 @@ diff --git a/chrome/browser/background/extensions/background_mode_manager.cc b/c diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -1421,7 +1421,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs( +@@ -1449,7 +1449,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs( void ChromeContentBrowserClient::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref(prefs::kDisable3DAPIs, false); @@ -68,15 +68,15 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc -@@ -1316,7 +1316,7 @@ void RegisterProfilePrefsForMigration( +@@ -1341,7 +1341,7 @@ void RegisterProfilePrefsForMigration( registry->RegisterTimePref(kMerchantTrustPageInfoLastOpenTime, base::Time()); // Deprecated 12/2025. - registry->RegisterBooleanPref(kCloudPrintProxyEnabled, true); + registry->RegisterBooleanPref(kCloudPrintProxyEnabled, false); registry->RegisterStringPref(kCloudPrintEmail, std::string()); - } + #if BUILDFLAG(IS_ANDROID) diff --git a/chrome/browser/preloading/preloading_prefs.h b/chrome/browser/preloading/preloading_prefs.h --- a/chrome/browser/preloading/preloading_prefs.h +++ b/chrome/browser/preloading/preloading_prefs.h @@ -125,7 +125,7 @@ diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_u user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); registry->RegisterDictionaryPref(prefs::kBrowserWindowPlacement); registry->RegisterDictionaryPref(prefs::kBrowserWindowPlacementPopup); -@@ -207,7 +207,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -210,7 +210,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { #endif registry->RegisterBooleanPref( @@ -156,7 +156,7 @@ diff --git a/components/bookmarks/browser/BUILD.gn b/components/bookmarks/browse diff --git a/components/bookmarks/browser/bookmark_utils.cc b/components/bookmarks/browser/bookmark_utils.cc --- a/components/bookmarks/browser/bookmark_utils.cc +++ b/components/bookmarks/browser/bookmark_utils.cc -@@ -28,6 +28,7 @@ +@@ -27,6 +27,7 @@ #include "components/bookmarks/browser/bookmark_client.h" #include "components/bookmarks/browser/bookmark_model.h" #include "components/bookmarks/browser/bookmark_node.h" @@ -164,7 +164,7 @@ diff --git a/components/bookmarks/browser/bookmark_utils.cc b/components/bookmar #include "components/bookmarks/browser/scoped_group_bookmark_actions.h" #include "components/bookmarks/common/bookmark_pref_names.h" #include "components/pref_registry/pref_registry_syncable.h" -@@ -449,11 +450,13 @@ bool DoesBookmarkContainWords(const std::u16string& title, +@@ -450,11 +451,13 @@ bool DoesBookmarkContainWords(const std::u16string& title, void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref( diff --git a/build/patches/Move-some-account-settings-back-to-privacy-settings.patch b/build/patches/Move-some-account-settings-back-to-privacy-settings.patch index 7c23d0e1..5c805837 100644 --- a/build/patches/Move-some-account-settings-back-to-privacy-settings.patch +++ b/build/patches/Move-some-account-settings-back-to-privacy-settings.patch @@ -37,7 +37,7 @@ 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 -@@ -81,6 +81,13 @@ import org.chromium.ui.text.SpanApplier; +@@ -82,6 +82,13 @@ import org.chromium.ui.text.SpanApplier; import java.util.concurrent.TimeUnit; import java.util.function.Consumer; @@ -51,7 +51,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. */ @NullMarked public class PrivacySettings extends ChromeBaseSettingsFragment -@@ -100,6 +107,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -101,6 +108,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private static final String PREF_INCOGNITO_LOCK = "incognito_lock"; private static final String PREF_JAVASCRIPT_OPTIMIZER = "javascript_optimizer"; @VisibleForTesting static final String PREF_DO_NOT_TRACK = "do_not_track"; @@ -68,7 +68,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting @VisibleForTesting static final String PREF_THIRD_PARTY_COOKIES = "third_party_cookies"; private static final String PREF_ADVANCED_PROTECTION_INFO = "advanced_protection_info"; -@@ -202,6 +219,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -209,6 +226,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment (ChromeSwitchPreference) findPreference(PREF_PASSWORD_LEAK_DETECTION); passwordLeakTogglePref.setOnPreferenceChangeListener(this); @@ -85,7 +85,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting ChromeSwitchPreference canMakePaymentPref = (ChromeSwitchPreference) findPreference(PREF_CAN_MAKE_PAYMENT); canMakePaymentPref.setOnPreferenceChangeListener(this); -@@ -372,6 +399,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -384,6 +411,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment } else if (PREF_PASSWORD_LEAK_DETECTION.equals(key)) { UserPrefs.get(getProfile()) .setBoolean(Pref.PASSWORD_LEAK_DETECTION_ENABLED, (boolean) newValue); @@ -95,7 +95,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting } return true; } -@@ -384,6 +414,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -396,6 +426,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment /** Updates the preferences. */ public void updatePreferences() { @@ -108,7 +108,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting 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 -@@ -460,6 +460,10 @@ For more settings that use data to improve your Chrome experience, go to diff --git a/build/patches/Multiple-fingerprinting-mitigations.patch b/build/patches/Multiple-fingerprinting-mitigations.patch index dfa78e38..bbce2909 100644 --- a/build/patches/Multiple-fingerprinting-mitigations.patch +++ b/build/patches/Multiple-fingerprinting-mitigations.patch @@ -55,7 +55,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -2497,6 +2497,7 @@ static_library("browser") { +@@ -2477,6 +2477,7 @@ static_library("browser") { "//services/device/public/cpp/bluetooth", "//services/device/public/cpp/geolocation", "//services/device/public/cpp/usb", @@ -66,7 +66,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -262,6 +262,8 @@ +@@ -263,6 +263,8 @@ #include "ui/ui_features.h" #include "url/url_features.h" @@ -78,7 +78,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn --- a/content/browser/BUILD.gn +++ b/content/browser/BUILD.gn -@@ -297,6 +297,7 @@ source_set("browser") { +@@ -298,6 +298,7 @@ source_set("browser") { "//third_party/re2", "//third_party/snappy", "//third_party/sqlite", @@ -89,7 +89,7 @@ diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc -@@ -220,6 +220,7 @@ +@@ -218,6 +218,7 @@ #include "url/gurl.h" #include "url/origin.h" @@ -97,7 +97,7 @@ diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content #if BUILDFLAG(IS_ANDROID) #include "base/android/child_process_binding_types.h" #include "content/browser/font_unique_name_lookup/font_unique_name_lookup_service.h" -@@ -3690,6 +3691,8 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( +@@ -3669,6 +3670,8 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( switches::kDisableBestEffortTasks, switches::kDisableBreakpad, switches::kDisableFileSystem, @@ -109,7 +109,7 @@ diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content diff --git a/content/child/BUILD.gn b/content/child/BUILD.gn --- a/content/child/BUILD.gn +++ b/content/child/BUILD.gn -@@ -109,6 +109,7 @@ target(link_target_type, "child") { +@@ -113,6 +113,7 @@ target(link_target_type, "child") { "//third_party/blink/public/common:buildflags", "//third_party/blink/public/strings", "//third_party/ced", @@ -129,7 +129,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. #if BUILDFLAG(IS_ANDROID) #include "base/android/android_info.h" #endif -@@ -521,6 +523,10 @@ void SetRuntimeFeaturesFromCommandLine(const base::CommandLine& command_line) { +@@ -522,6 +524,10 @@ void SetRuntimeFeaturesFromCommandLine(const base::CommandLine& command_line) { // as a last resort. void SetCustomizedRuntimeFeaturesFromCombinedArgs( const base::CommandLine& command_line) { @@ -167,8 +167,8 @@ diff --git a/third_party/blink/public/platform/web_runtime_features.h b/third_pa + static void EnableFingerprintingCanvasMeasureTextNoise(bool); + static void EnableFingerprintingCanvasImageDataNoise(bool); static void EnableFluentScrollbars(bool); - static void EnableFluentOverlayScrollbars(bool); + static void EnableLocalNetworkAccessWebRTC(bool); diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc --- a/third_party/blink/renderer/core/dom/document.cc +++ b/third_party/blink/renderer/core/dom/document.cc @@ -180,9 +180,9 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink #include "base/task/single_thread_task_runner.h" #include "base/time/time.h" #include "base/trace_event/trace_event.h" -@@ -1089,6 +1090,16 @@ Document::Document(const DocumentInit& initializer, - TRACE_EVENT_WITH_FLOW0("blink", "Document::Document", TRACE_ID_LOCAL(this), - TRACE_EVENT_FLAG_FLOW_OUT); +@@ -1043,6 +1044,16 @@ Document::Document(const DocumentInit& initializer, + data_(MakeGarbageCollected(GetExecutionContext())) { + TRACE_EVENT("blink", "Document::Document", perfetto::Flow::FromPointer(this)); DCHECK(agent_); + if (RuntimeEnabledFeatures::FingerprintingCanvasMeasureTextNoiseEnabled() || + RuntimeEnabledFeatures::FingerprintingCanvasImageDataNoiseEnabled()) { @@ -197,7 +197,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink if (base::FeatureList::IsEnabled(features::kDelayAsyncScriptExecution) && features::kDelayAsyncScriptExecutionDelayByDefaultParam.Get()) { script_runner_delayer_->Activate(); -@@ -2795,6 +2806,14 @@ void Document::UpdateStyleAndLayoutTreeForThisDocument() { +@@ -2747,6 +2758,14 @@ void Document::UpdateStyleAndLayoutTreeForThisDocument() { #endif } @@ -215,7 +215,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/renderer/core/dom/document.h --- a/third_party/blink/renderer/core/dom/document.h +++ b/third_party/blink/renderer/core/dom/document.h -@@ -570,6 +570,10 @@ class CORE_EXPORT Document : public ContainerNode, +@@ -571,6 +571,10 @@ class CORE_EXPORT Document : public ContainerNode, has_xml_declaration_ = has_xml_declaration ? 1 : 0; } @@ -226,7 +226,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/ V8VisibilityState visibilityState() const; String visibilityStateAsString() const; bool IsPageVisible() const; -@@ -2821,6 +2825,9 @@ class CORE_EXPORT Document : public ContainerNode, +@@ -2842,6 +2846,9 @@ class CORE_EXPORT Document : public ContainerNode, base::ElapsedTimer start_time_; @@ -377,7 +377,7 @@ diff --git a/third_party/blink/renderer/core/svg/svg_text_content_element.cc b/t diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc --- a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc +++ b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc -@@ -99,6 +99,10 @@ +@@ -98,6 +98,10 @@ #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" #include "ui/gfx/geometry/skia_conversions.h" @@ -388,7 +388,7 @@ diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_c // Including "base/time/time.h" triggers a bug in IWYU. // https://github.com/include-what-you-use/include-what-you-use/issues/1122 // IWYU pragma: no_include "base/numerics/clamped_math.h" -@@ -524,6 +528,10 @@ ImageData* BaseRenderingContext2D::getImageDataInternal( +@@ -523,6 +527,10 @@ ImageData* BaseRenderingContext2D::getImageDataInternal( snapshot->PaintImageForCurrentFrame().GetSkImageInfo().bounds(); DCHECK(!bounds.intersect(SkIRect::MakeXYWH(sx, sy, sw, sh))); } @@ -399,7 +399,7 @@ diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_c } return image_data; -@@ -1171,9 +1179,23 @@ TextMetrics* BaseRenderingContext2D::measureText(const String& text) { +@@ -1165,9 +1173,23 @@ TextMetrics* BaseRenderingContext2D::measureText(const String& text) { TextDirection direction = ToTextDirection(state.GetDirection(), host, computed_style); @@ -427,7 +427,7 @@ diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_c diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn --- a/third_party/blink/renderer/platform/BUILD.gn +++ b/third_party/blink/renderer/platform/BUILD.gn -@@ -1751,7 +1751,9 @@ component("platform") { +@@ -1754,7 +1754,9 @@ component("platform") { "//third_party/blink/renderer:non_test_config", ] @@ -438,7 +438,7 @@ diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/re allow_circular_includes_from = [ "//third_party/blink/renderer/platform/blob", -@@ -1835,6 +1837,7 @@ component("platform") { +@@ -1838,6 +1840,7 @@ component("platform") { "//third_party/blink/public/strings", "//third_party/blink/renderer/platform/wtf", "//third_party/ced", @@ -449,8 +449,8 @@ diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/re diff --git a/third_party/blink/renderer/platform/exported/web_runtime_features.cc b/third_party/blink/renderer/platform/exported/web_runtime_features.cc --- a/third_party/blink/renderer/platform/exported/web_runtime_features.cc +++ b/third_party/blink/renderer/platform/exported/web_runtime_features.cc -@@ -68,6 +68,14 @@ void WebRuntimeFeatures::EnableFluentOverlayScrollbars(bool enable) { - RuntimeEnabledFeatures::SetFluentOverlayScrollbarsEnabled(enable); +@@ -64,6 +64,14 @@ void WebRuntimeFeatures::EnableFluentScrollbars(bool enable) { + ScrollbarThemeSettings::SetFluentScrollbarsEnabled(enable); } +void WebRuntimeFeatures::EnableFingerprintingCanvasMeasureTextNoise(bool enable) { @@ -669,7 +669,7 @@ diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.cc diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.h b/third_party/blink/renderer/platform/graphics/static_bitmap_image.h --- a/third_party/blink/renderer/platform/graphics/static_bitmap_image.h +++ b/third_party/blink/renderer/platform/graphics/static_bitmap_image.h -@@ -38,6 +38,8 @@ class PLATFORM_EXPORT StaticBitmapImage : public Image { +@@ -37,6 +37,8 @@ class PLATFORM_EXPORT StaticBitmapImage : public Image { StaticBitmapImage(ImageOrientation orientation) : orientation_(orientation) {} @@ -681,7 +681,7 @@ diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.h diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -3618,6 +3618,12 @@ +@@ -3750,6 +3750,12 @@ status: {"Mac": "test", "default": "stable"}, base_feature: "none", }, diff --git a/build/patches/Override-Navigator-Language.patch b/build/patches/Override-Navigator-Language.patch index bb4da9b5..bcfbd0a1 100644 --- a/build/patches/Override-Navigator-Language.patch +++ b/build/patches/Override-Navigator-Language.patch @@ -61,7 +61,7 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc -@@ -76,6 +76,7 @@ +@@ -75,6 +75,7 @@ #include "components/input/features.h" #include "components/input/utils.h" #include "components/metrics/histogram_controller.h" @@ -69,7 +69,7 @@ diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content #include "components/metrics/single_sample_metrics.h" #include "components/services/storage/privileged/mojom/indexed_db_control.mojom.h" #include "components/services/storage/public/cpp/buckets/bucket_id.h" -@@ -3600,8 +3601,11 @@ void RenderProcessHostImpl::AppendRendererCommandLine( +@@ -3579,8 +3580,11 @@ void RenderProcessHostImpl::AppendRendererCommandLine( PropagateBrowserCommandLineToRenderer(browser_command_line, command_line); // Pass on the browser locale. diff --git a/build/patches/Partition-Blink-memory-cache.patch b/build/patches/Partition-Blink-memory-cache.patch index c4d8cedc..a1eccebe 100644 --- a/build/patches/Partition-Blink-memory-cache.patch +++ b/build/patches/Partition-Blink-memory-cache.patch @@ -41,7 +41,7 @@ diff --git a/third_party/blink/renderer/core/html/parser/html_srcset_parser.cc b diff --git a/third_party/blink/renderer/core/inspector/inspector_network_agent.cc b/third_party/blink/renderer/core/inspector/inspector_network_agent.cc --- a/third_party/blink/renderer/core/inspector/inspector_network_agent.cc +++ b/third_party/blink/renderer/core/inspector/inspector_network_agent.cc -@@ -2809,7 +2809,7 @@ bool InspectorNetworkAgent::FetchResourceContent(Document* document, +@@ -2808,7 +2808,7 @@ bool InspectorNetworkAgent::FetchResourceContent(Document* document, if (!cached_resource) { cached_resource = MemoryCache::Get()->ResourceForURL( url, document->Fetcher()->GetCacheIdentifier( @@ -65,7 +65,7 @@ diff --git a/third_party/blink/renderer/core/inspector/inspector_page_agent.cc b diff --git a/third_party/blink/renderer/core/loader/image_loader.cc b/third_party/blink/renderer/core/loader/image_loader.cc --- a/third_party/blink/renderer/core/loader/image_loader.cc +++ b/third_party/blink/renderer/core/loader/image_loader.cc -@@ -741,7 +741,8 @@ bool ImageLoader::ShouldLoadImmediately(const KURL& url) const { +@@ -749,7 +749,8 @@ bool ImageLoader::ShouldLoadImmediately(const KURL& url) const { if (!url.IsNull()) { Resource* resource = MemoryCache::Get()->ResourceForURL( url, element_->GetDocument().Fetcher()->GetCacheIdentifier( @@ -128,7 +128,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/memory_cache.h b/t diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc --- a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc +++ b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc -@@ -1017,7 +1017,8 @@ Resource* ResourceFetcher::CreateResourceForStaticData( +@@ -1016,7 +1016,8 @@ Resource* ResourceFetcher::CreateResourceForStaticData( const String cache_identifier = GetCacheIdentifier(factory.GetType(), url, @@ -138,7 +138,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c // Most off-main-thread resource fetches use Resource::kRaw and don't reach // this point, but off-main-thread module fetches might. -@@ -1468,7 +1469,8 @@ Resource* ResourceFetcher::RequestResource(FetchParameters& params, +@@ -1477,7 +1478,8 @@ Resource* ResourceFetcher::RequestResource(FetchParameters& params, } else if (IsMainThread()) { const String cache_identifier = GetCacheIdentifier( resource_type, params.GetResourceRequest().Url(), @@ -148,7 +148,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c resource = MemoryCache::Get()->ResourceForURL(params.Url(), cache_identifier); -@@ -1778,7 +1780,8 @@ Resource* ResourceFetcher::CreateResourceForLoading( +@@ -1787,7 +1789,8 @@ Resource* ResourceFetcher::CreateResourceForLoading( const ResourceFactory& factory) { const String cache_identifier = GetCacheIdentifier(factory.GetType(), params.GetResourceRequest().Url(), @@ -158,7 +158,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c DCHECK(!IsMainThread() || params.IsStaleRevalidation() || !MemoryCache::Get()->ResourceForURL(params.GetResourceRequest().Url(), cache_identifier)); -@@ -2918,11 +2921,47 @@ void ResourceFetcher::UpdateImagePrioritiesAndSpeculativeDecodes() { +@@ -2927,11 +2930,47 @@ void ResourceFetcher::UpdateImagePrioritiesAndSpeculativeDecodes() { } String ResourceFetcher::GetCacheIdentifier(const KURL& url, @@ -211,7 +211,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c } // Requests that can be satisfied via `archive_` (i.e. MHTML) or -@@ -2937,12 +2976,13 @@ String ResourceFetcher::GetCacheIdentifier(const KURL& url, +@@ -2946,12 +2985,13 @@ String ResourceFetcher::GetCacheIdentifier(const KURL& url, return bundle->GetCacheIdentifier(); } @@ -227,7 +227,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c // For SVG resource documents, use the SVG-specific cache identifier when the // feature is enabled and a cache identifier is available from the fetch // context. -@@ -2955,7 +2995,7 @@ String ResourceFetcher::GetCacheIdentifier(ResourceType type, +@@ -2964,7 +3004,7 @@ String ResourceFetcher::GetCacheIdentifier(ResourceType type, } // Fallback to the standard cache identifier logic. @@ -261,7 +261,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -5141,8 +5141,8 @@ +@@ -5270,8 +5270,8 @@ status: "stable", }, { diff --git a/build/patches/Partition-HSTS-cache-by-NAK.patch b/build/patches/Partition-HSTS-cache-by-NAK.patch index dd935e20..775cf985 100644 --- a/build/patches/Partition-HSTS-cache-by-NAK.patch +++ b/build/patches/Partition-HSTS-cache-by-NAK.patch @@ -43,7 +43,7 @@ diff --git a/chrome/browser/ssl/https_upgrades_interceptor.cc b/chrome/browser/s diff --git a/chrome/browser/ui/webui/net_internals/net_internals_ui.cc b/chrome/browser/ui/webui/net_internals/net_internals_ui.cc --- a/chrome/browser/ui/webui/net_internals/net_internals_ui.cc +++ b/chrome/browser/ui/webui/net_internals/net_internals_ui.cc -@@ -395,7 +395,10 @@ void NetInternalsMessageHandler::OnDomainSecurityPolicyDelete( +@@ -393,7 +393,10 @@ void NetInternalsMessageHandler::OnDomainSecurityPolicyDelete( // There cannot be a unicode entry in the HSTS set. return; } @@ -54,7 +54,7 @@ diff --git a/chrome/browser/ui/webui/net_internals/net_internals_ui.cc b/chrome/ *domain, base::BindOnce(&IgnoreBoolCallback)); } -@@ -405,7 +408,10 @@ void NetInternalsMessageHandler::OnHSTSQuery(const base::Value::List& list) { +@@ -403,7 +406,10 @@ void NetInternalsMessageHandler::OnHSTSQuery(const base::ListValue& list) { DCHECK(callback_id && domain); AllowJavascript(); @@ -65,7 +65,7 @@ diff --git a/chrome/browser/ui/webui/net_internals/net_internals_ui.cc b/chrome/ *domain, base::BindOnce(&NetInternalsMessageHandler::ResolveCallbackWithResult, weak_factory_.GetWeakPtr(), *callback_id)); -@@ -431,8 +437,12 @@ void NetInternalsMessageHandler::OnHSTSAdd(const base::Value::List& list) { +@@ -429,8 +435,12 @@ void NetInternalsMessageHandler::OnHSTSAdd(const base::ListValue& list) { const bool sts_include_subdomains = list[1].GetBool(); base::Time expiry = base::Time::Now() + base::Days(1000); @@ -288,18 +288,18 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ + return GetSTSState(nak, host, &unused_sts) || GetPKPState(nak, host, &unused_pkp); } - base::Value::Dict TransportSecurityState::NetLogUpgradeToSSLParam( + base::DictValue TransportSecurityState::NetLogUpgradeToSSLParam( + const NetworkAnonymizationKey& nak, std::string_view host) { STSState sts_state; - base::Value::Dict dict; + base::DictValue dict; dict.Set("host", host); - dict.Set("get_sts_state_result", GetSTSState(host, &sts_state)); + dict.Set("get_sts_state_result", GetSTSState(nak, host, &sts_state)); dict.Set("should_upgrade_to_ssl", sts_state.ShouldUpgradeToSSL()); dict.Set("host_found_in_hsts_bypass_list", hsts_host_bypass_list_.find(host) != hsts_host_bypass_list_.end()); -@@ -268,12 +292,13 @@ base::Value::Dict TransportSecurityState::NetLogUpgradeToSSLParam( +@@ -268,12 +292,13 @@ base::DictValue TransportSecurityState::NetLogUpgradeToSSLParam( } SSLUpgradeDecision TransportSecurityState::GetSSLUpgradeDecision( @@ -597,8 +597,8 @@ diff --git a/net/http/transport_security_state.h b/net/http/transport_security_s typedef std::map STSStateMap; typedef std::map PKPStateMap; -- base::Value::Dict NetLogUpgradeToSSLParam(std::string_view host); -+ base::Value::Dict NetLogUpgradeToSSLParam(const NetworkAnonymizationKey& nak, std::string_view host); +- base::DictValue NetLogUpgradeToSSLParam(std::string_view host); ++ base::DictValue NetLogUpgradeToSSLParam(const NetworkAnonymizationKey& nak, std::string_view host); // IsBuildTimely returns true if the current build is new enough ensure that // built in security information (i.e. HSTS preloading and pinning @@ -653,7 +653,7 @@ diff --git a/net/quic/crypto/proof_verifier_chromium.cc b/net/quic/crypto/proof_ diff --git a/net/quic/quic_chromium_client_session.cc b/net/quic/quic_chromium_client_session.cc --- a/net/quic/quic_chromium_client_session.cc +++ b/net/quic/quic_chromium_client_session.cc -@@ -1542,7 +1542,7 @@ bool QuicChromiumClientSession::CanPool( +@@ -1549,7 +1549,7 @@ bool QuicChromiumClientSession::CanPool( return SpdySession::CanPool(transport_security_state_, ssl_info, *ssl_config_service_, session_key_.host(), @@ -665,7 +665,7 @@ diff --git a/net/quic/quic_chromium_client_session.cc b/net/quic/quic_chromium_c diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket_impl.cc --- a/net/socket/ssl_client_socket_impl.cc +++ b/net/socket/ssl_client_socket_impl.cc -@@ -1234,7 +1234,8 @@ ssl_verify_result_t SSLClientSocketImpl::HandleVerifyResult() { +@@ -1250,7 +1250,8 @@ ssl_verify_result_t SSLClientSocketImpl::HandleVerifyResult() { context_->transport_security_state()->CheckPublicKeyPins( host_and_port_.host(), server_cert_verify_result_.is_issued_by_known_root, @@ -675,7 +675,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket switch (pin_validity) { case TransportSecurityState::PKPStatus::VIOLATED: server_cert_verify_result_.cert_status |= -@@ -1254,7 +1255,7 @@ ssl_verify_result_t SSLClientSocketImpl::HandleVerifyResult() { +@@ -1270,7 +1271,7 @@ ssl_verify_result_t SSLClientSocketImpl::HandleVerifyResult() { IsCertStatusError(server_cert_verify_result_.cert_status) && result != ERR_CERT_KNOWN_INTERCEPTION_BLOCKED && context_->transport_security_state()->ShouldSSLErrorsBeFatal( @@ -687,7 +687,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc --- a/net/spdy/spdy_session.cc +++ b/net/spdy/spdy_session.cc -@@ -731,7 +731,8 @@ bool SpdySession::CanPool(TransportSecurityState* transport_security_state, +@@ -724,7 +724,8 @@ bool SpdySession::CanPool(TransportSecurityState* transport_security_state, const SSLInfo& ssl_info, const SSLConfigService& ssl_config_service, std::string_view old_hostname, @@ -697,7 +697,7 @@ diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc // Pooling is prohibited if the server cert is not valid for the new domain, // and for connections on which client certs were sent. It is also prohibited // when channel ID was sent if the hosts are from different eTLDs+1. -@@ -749,7 +750,7 @@ bool SpdySession::CanPool(TransportSecurityState* transport_security_state, +@@ -742,7 +743,7 @@ bool SpdySession::CanPool(TransportSecurityState* transport_security_state, if (transport_security_state->CheckPublicKeyPins( new_hostname, ssl_info.is_issued_by_known_root, @@ -706,7 +706,7 @@ diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc TransportSecurityState::PKPStatus::VIOLATED) { return false; } -@@ -987,7 +988,8 @@ bool SpdySession::VerifyDomainAuthentication(std::string_view domain) const { +@@ -980,7 +981,8 @@ bool SpdySession::VerifyDomainAuthentication(std::string_view domain) const { return true; // This is not a secure session, so all domains are okay. return CanPool(transport_security_state_, ssl_info, *ssl_config_service_, @@ -716,7 +716,7 @@ diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc } void SpdySession::EnqueueStreamWrite( -@@ -3102,7 +3104,8 @@ void SpdySession::OnAltSvc( +@@ -3096,7 +3098,8 @@ void SpdySession::OnAltSvc( return; } if (!CanPool(transport_security_state_, ssl_info, *ssl_config_service_, @@ -742,7 +742,7 @@ diff --git a/net/spdy/spdy_session.h b/net/spdy/spdy_session.h diff --git a/net/url_request/url_request_context_builder.cc b/net/url_request/url_request_context_builder.cc --- a/net/url_request/url_request_context_builder.cc +++ b/net/url_request/url_request_context_builder.cc -@@ -410,20 +410,6 @@ std::unique_ptr URLRequestContextBuilder::Build() { +@@ -405,20 +405,6 @@ std::unique_ptr URLRequestContextBuilder::Build() { context->set_transport_security_state( std::make_unique(hsts_policy_bypass_list_)); @@ -766,7 +766,7 @@ diff --git a/net/url_request/url_request_context_builder.cc b/net/url_request/ur diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc --- a/net/url_request/url_request_http_job.cc +++ b/net/url_request/url_request_http_job.cc -@@ -371,6 +371,7 @@ std::unique_ptr URLRequestHttpJob::Create(URLRequest* request) { +@@ -373,6 +373,7 @@ std::unique_ptr URLRequestHttpJob::Create(URLRequest* request) { if (TransportSecurityState* hsts = request->context()->transport_security_state()) { upgrade_decision = hsts->GetSSLUpgradeDecision( @@ -774,7 +774,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque url.GetHost(), /*is_top_level_nav=*/ request->isolation_info().IsOutermostMainFrameRequest(), -@@ -1218,7 +1219,7 @@ void URLRequestHttpJob::ProcessStrictTransportSecurityHeader() { +@@ -1233,7 +1234,7 @@ void URLRequestHttpJob::ProcessStrictTransportSecurityHeader() { std::optional value; if ((value = headers->EnumerateHeader(nullptr, "Strict-Transport-Security"))) { @@ -783,7 +783,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque } } -@@ -1298,7 +1299,7 @@ void URLRequestHttpJob::OnStartCompleted(int result) { +@@ -1313,7 +1314,7 @@ void URLRequestHttpJob::OnStartCompleted(int result) { TransportSecurityState* state = context->transport_security_state(); NotifySSLCertificateError( result, transaction_->GetResponseInfo()->ssl_info, @@ -795,7 +795,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque diff --git a/services/network/network_context.cc b/services/network/network_context.cc --- a/services/network/network_context.cc +++ b/services/network/network_context.cc -@@ -2068,6 +2068,7 @@ void NetworkContext::CreateHostResolver( +@@ -2077,6 +2077,7 @@ void NetworkContext::CreateHostResolver( void NetworkContext::VerifyCertInternal( const scoped_refptr& certificate, const net::HostPortPair& host_port, @@ -803,7 +803,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont const std::string& ocsp_result, const std::string& sct_list, CTVerificationMode ct_verification_mode, -@@ -2079,6 +2080,7 @@ void NetworkContext::VerifyCertInternal( +@@ -2088,6 +2089,7 @@ void NetworkContext::VerifyCertInternal( pending_cert_verify->result = std::make_unique(); pending_cert_verify->certificate = certificate; pending_cert_verify->host_port = host_port; @@ -811,7 +811,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont net::CertVerifier* cert_verifier = g_cert_verifier_for_testing ? g_cert_verifier_for_testing : url_request_context_->cert_verifier(); -@@ -2109,20 +2111,22 @@ void NetworkContext::VerifyCertInternal( +@@ -2118,20 +2120,22 @@ void NetworkContext::VerifyCertInternal( void NetworkContext::VerifyCert( const scoped_refptr& certificate, const net::HostPortPair& host_port, @@ -836,7 +836,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont CTVerificationMode::kSignedExchange, std::move(callback)); } -@@ -2163,17 +2167,19 @@ void NetworkContext::SetCorsOriginAccessListsForOrigin( +@@ -2172,17 +2176,19 @@ void NetworkContext::SetCorsOriginAccessListsForOrigin( std::move(callback).Run(); } @@ -859,7 +859,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont bool is_top_level_nav, IsHSTSActiveForHostCallback callback) { net::TransportSecurityState* security_state = -@@ -2185,10 +2191,10 @@ void NetworkContext::IsHSTSActiveForHost(const std::string& host, +@@ -2194,10 +2200,10 @@ void NetworkContext::IsHSTSActiveForHost(const std::string& host, } std::move(callback).Run( @@ -870,9 +870,9 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont -void NetworkContext::GetHSTSState(const std::string& domain, +void NetworkContext::GetHSTSState(const net::NetworkAnonymizationKey& nak, const std::string& domain, GetHSTSStateCallback callback) { - base::Value::Dict result; + base::DictValue result; -@@ -2226,10 +2232,10 @@ void NetworkContext::GetHSTSState(const std::string& domain, +@@ -2235,10 +2241,10 @@ void NetworkContext::GetHSTSState(const std::string& domain, net::TransportSecurityState::STSState dynamic_sts_state; net::TransportSecurityState::PKPState dynamic_pkp_state; bool found_sts_dynamic = transport_security_state->GetDynamicSTSState( @@ -885,7 +885,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont if (found_sts_dynamic) { result.Set("dynamic_upgrade_mode", static_cast(dynamic_sts_state.upgrade_mode)); -@@ -2267,6 +2273,7 @@ void NetworkContext::GetHSTSState(const std::string& domain, +@@ -2276,6 +2282,7 @@ void NetworkContext::GetHSTSState(const std::string& domain, } void NetworkContext::DeleteDynamicDataForHost( @@ -893,7 +893,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont const std::string& host, DeleteDynamicDataForHostCallback callback) { net::TransportSecurityState* transport_security_state = -@@ -2277,7 +2284,7 @@ void NetworkContext::DeleteDynamicDataForHost( +@@ -2286,7 +2293,7 @@ void NetworkContext::DeleteDynamicDataForHost( } std::move(callback).Run( @@ -902,7 +902,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont } void NetworkContext::EnableStaticKeyPinningForTesting( -@@ -2335,7 +2342,7 @@ void NetworkContext::PreconnectSockets( +@@ -2345,7 +2352,7 @@ void NetworkContext::PreconnectSockets( DCHECK(!require_network_anonymization_key_ || !network_anonymization_key.IsEmpty()); @@ -911,7 +911,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont // |PreconnectSockets| may receive arguments from the renderer, which is not // guaranteed to validate them. -@@ -3186,7 +3193,9 @@ void NetworkContext::OnConnectionError() { +@@ -3196,7 +3203,9 @@ void NetworkContext::OnConnectionError() { } } @@ -922,7 +922,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont // TODO(lilyhoughton) This needs to be gotten rid of once explicit // construction with a URLRequestContext is no longer supported. -@@ -3212,6 +3221,7 @@ GURL NetworkContext::GetHSTSRedirectForPreconnect(const GURL& original_url) { +@@ -3222,6 +3231,7 @@ GURL NetworkContext::GetHSTSRedirectForPreconnect(const GURL& original_url) { // top-level navigation so we need to disallow HSTS upgrades for every // preconnect. if (!url_request_context_->transport_security_state()->ShouldUpgradeToSSL( @@ -930,7 +930,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont original_url.GetHost(), /*is_top_level_nav=*/false)) { RecordHSTSPreconnectUpgradeReason( HSTSRedirectUpgradeReason::kNotUpgradedNoHSTSPin); -@@ -3273,7 +3283,8 @@ void NetworkContext::OnVerifyCertComplete(uint64_t cert_verify_id, int result) { +@@ -3283,7 +3293,8 @@ void NetworkContext::OnVerifyCertComplete(uint64_t cert_verify_id, int result) { url_request_context_->transport_security_state()->CheckPublicKeyPins( pending_cert_verify->host_port.host(), pending_cert_verify->result->is_issued_by_known_root, @@ -980,7 +980,7 @@ diff --git a/services/network/network_context.h b/services/network/network_conte const std::string& host, DeleteDynamicDataForHostCallback callback) override; void SetCorsOriginAccessListsForOrigin( -@@ -792,7 +796,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -797,7 +801,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext mojo::PendingRemote cookie_observer, net::FirstPartySetMetadata first_party_set_metadata); @@ -990,7 +990,7 @@ diff --git a/services/network/network_context.h b/services/network/network_conte #if BUILDFLAG(IS_P2P_ENABLED) void DestroySocketManager(P2PSocketManager* socket_manager); -@@ -804,6 +809,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -809,6 +814,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext void VerifyCertInternal( const scoped_refptr& certificate, const net::HostPortPair& host_port, @@ -998,7 +998,7 @@ diff --git a/services/network/network_context.h b/services/network/network_conte const std::string& ocsp_result, const std::string& sct_list, CTVerificationMode ct_verification_mode, -@@ -979,6 +985,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -984,6 +990,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext VerifyCertCallback callback; scoped_refptr certificate; net::HostPortPair host_port; @@ -1009,7 +1009,7 @@ diff --git a/services/network/network_context.h b/services/network/network_conte diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom --- a/services/network/public/mojom/network_context.mojom +++ b/services/network/public/mojom/network_context.mojom -@@ -1565,6 +1565,7 @@ interface NetworkContext { +@@ -1561,6 +1561,7 @@ interface NetworkContext { // Checks the given certificate against the CertVerifier and CTVerifier. VerifyCert(X509Certificate certificate, HostPortPair host_port, @@ -1017,7 +1017,7 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw string ocsp_response, string sct_list) => (int32 error_code, CertVerifyResult cv_result, bool pkp_bypassed); -@@ -1573,6 +1574,7 @@ interface NetworkContext { +@@ -1569,6 +1570,7 @@ interface NetworkContext { // This implementation is specific for use by Signed Exchange. VerifyCertForSignedExchange(X509Certificate certificate, HostPortPair host_port, @@ -1025,7 +1025,7 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw string ocsp_response, string sct_list) => (int32 error_code, CertVerifyResult cv_result, bool pkp_bypassed); -@@ -1586,18 +1588,18 @@ interface NetworkContext { +@@ -1582,18 +1584,18 @@ interface NetworkContext { // Adds explicitly-specified data as if it was processed from an // HSTS header. Used by tests and implementation of chrome://net-internals. @@ -1047,7 +1047,7 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw // Sets allowed and blocked origins respectively for the URLLoaderFactory // consumers to access beyond the same-origin policy. The list is managed per -@@ -1616,7 +1618,7 @@ interface NetworkContext { +@@ -1612,7 +1614,7 @@ interface NetworkContext { // Deletes any dynamic data stored for |host| from the transport // security state. Returns true iff an entry was deleted. // See net::TransportSecurityState::DeleteDynamicDataForHost for more detail. diff --git a/build/patches/Partition-MediaDeviceId-by-default.patch b/build/patches/Partition-MediaDeviceId-by-default.patch index 6c959d1e..178836e1 100644 --- a/build/patches/Partition-MediaDeviceId-by-default.patch +++ b/build/patches/Partition-MediaDeviceId-by-default.patch @@ -52,7 +52,7 @@ diff --git a/content/browser/media/media_devices_util.cc b/content/browser/media diff --git a/content/browser/renderer_host/media/media_devices_manager.cc b/content/browser/renderer_host/media/media_devices_manager.cc --- a/content/browser/renderer_host/media/media_devices_manager.cc +++ b/content/browser/renderer_host/media/media_devices_manager.cc -@@ -1113,6 +1113,11 @@ void MediaDevicesManager::OnDevicesEnumerated( +@@ -1112,6 +1112,11 @@ void MediaDevicesManager::OnDevicesEnumerated( } } } diff --git a/build/patches/Partition-blobs-by-top-frame-URL.patch b/build/patches/Partition-blobs-by-top-frame-URL.patch index f2ea541e..e24e6fa0 100644 --- a/build/patches/Partition-blobs-by-top-frame-URL.patch +++ b/build/patches/Partition-blobs-by-top-frame-URL.patch @@ -23,7 +23,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc -@@ -13097,6 +13097,8 @@ void RenderFrameHostImpl::ReportBlockingCrossPartitionBlobURL( +@@ -13145,6 +13145,8 @@ void RenderFrameHostImpl::ReportBlockingCrossPartitionBlobURL( } bool RenderFrameHostImpl::IsFullCookieAccessAllowed() { @@ -137,7 +137,7 @@ diff --git a/storage/browser/blob/blob_url_registry.h b/storage/browser/blob/blo diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/blob_url_store_impl.cc --- a/storage/browser/blob/blob_url_store_impl.cc +++ b/storage/browser/blob/blob_url_store_impl.cc -@@ -113,9 +113,35 @@ BlobURLStoreImpl::~BlobURLStoreImpl() { +@@ -115,9 +115,35 @@ BlobURLStoreImpl::~BlobURLStoreImpl() { } } @@ -173,7 +173,7 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/ RegisterCallback callback) { // TODO(crbug.com/40061399): Generate blob URLs here, rather than // validating the URLs the renderer process generated. -@@ -123,10 +149,18 @@ void BlobURLStoreImpl::Register( +@@ -125,10 +151,18 @@ void BlobURLStoreImpl::Register( std::move(callback).Run(); return; } @@ -193,7 +193,7 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/ urls_.insert(url); std::move(callback).Run(); } -@@ -148,7 +182,7 @@ bool BlobURLStoreImpl::ShouldPartitionBlobUrlAccess( +@@ -150,7 +184,7 @@ bool BlobURLStoreImpl::ShouldPartitionBlobUrlAccess( features::kBlockCrossPartitionBlobUrlFetching) && !partitioning_disabled_by_policy_; @@ -202,7 +202,7 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/ has_storage_access_handle && mapping_status == BlobUrlRegistry::MappingStatus:: -@@ -158,7 +192,9 @@ bool BlobURLStoreImpl::ShouldPartitionBlobUrlAccess( +@@ -160,7 +194,9 @@ bool BlobURLStoreImpl::ShouldPartitionBlobUrlAccess( void BlobURLStoreImpl::ResolveAsURLLoaderFactory( const GURL& url, @@ -213,7 +213,7 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/ if (!registry_) { BlobURLLoaderFactory::Create(mojo::NullRemote(), url, std::move(receiver)); return; -@@ -181,6 +217,7 @@ void BlobURLStoreImpl::ResolveAsURLLoaderFactory( +@@ -183,6 +219,7 @@ void BlobURLStoreImpl::ResolveAsURLLoaderFactory( if (IsBlobUrlAccessCrossPartitionSameOrigin(mapping_status)) { if (ShouldPartitionBlobUrlAccess(has_storage_access_handle, mapping_status)) { @@ -221,7 +221,7 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/ partitioning_blob_url_closure_.Run( url, blink::mojom::PartitioningBlobURLInfo:: kBlockedCrossPartitionFetching); -@@ -192,6 +229,13 @@ void BlobURLStoreImpl::ResolveAsURLLoaderFactory( +@@ -194,6 +231,13 @@ void BlobURLStoreImpl::ResolveAsURLLoaderFactory( } } @@ -235,7 +235,7 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/ BlobURLLoaderFactory::Create(registry_->GetBlobFromUrl(url), url, std::move(receiver)); } -@@ -199,7 +243,9 @@ void BlobURLStoreImpl::ResolveAsURLLoaderFactory( +@@ -201,7 +245,9 @@ void BlobURLStoreImpl::ResolveAsURLLoaderFactory( void BlobURLStoreImpl::ResolveAsBlobURLToken( const GURL& url, mojo::PendingReceiver token, @@ -246,7 +246,7 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/ // This function is known to be heap allocation heavy and performance // critical. Extra memory safety checks can introduce regression // (https://crbug.com/414710225) and these are disabled here. -@@ -216,6 +262,7 @@ void BlobURLStoreImpl::ResolveAsBlobURLToken( +@@ -218,6 +264,7 @@ void BlobURLStoreImpl::ResolveAsBlobURLToken( registry_->IsUrlMapped(BlobUrlUtils::ClearUrlFragment(url), storage_key_); if (IsBlobUrlAccessCrossPartitionSameOrigin(mapping_status)) { @@ -254,7 +254,7 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/ if (ShouldPartitionBlobUrlAccess(has_storage_access_handle, mapping_status)) { partitioning_blob_url_closure_.Run( -@@ -226,12 +273,17 @@ void BlobURLStoreImpl::ResolveAsBlobURLToken( +@@ -228,12 +275,17 @@ void BlobURLStoreImpl::ResolveAsBlobURLToken( partitioning_blob_url_closure_.Run(url, std::nullopt); } } diff --git a/build/patches/Partitioning-all-cookies-by-top-frame-domain.patch b/build/patches/Partitioning-all-cookies-by-top-frame-domain.patch index 83e0d3e8..2dad560b 100644 --- a/build/patches/Partitioning-all-cookies-by-top-frame-domain.patch +++ b/build/patches/Partitioning-all-cookies-by-top-frame-domain.patch @@ -50,7 +50,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -3630,7 +3630,7 @@ bool ChromeContentBrowserClient::IsFullCookieAccessAllowed( +@@ -3675,7 +3675,7 @@ bool ChromeContentBrowserClient::IsFullCookieAccessAllowed( scoped_refptr cookie_settings = CookieSettingsFactory::GetForProfile(profile); if (!cookie_settings) { @@ -76,7 +76,7 @@ diff --git a/chrome/browser/extensions/api/cookies/cookies_helpers.cc b/chrome/b diff --git a/chrome/browser/net/profile_network_context_service.cc b/chrome/browser/net/profile_network_context_service.cc --- a/chrome/browser/net/profile_network_context_service.cc +++ b/chrome/browser/net/profile_network_context_service.cc -@@ -1132,16 +1132,16 @@ ProfileNetworkContextService::CreateCookieManagerParams( +@@ -1086,16 +1086,16 @@ ProfileNetworkContextService::CreateCookieManagerParams( // UI to interact with SameSite cookies on accounts.google.com, which is used // for displaying a list of available accounts on the NTP // (chrome://new-tab-page), etc. @@ -113,7 +113,7 @@ diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_settings_delegate.cc diff --git a/chrome/browser/storage_access_api/storage_access_grant_permission_context.cc b/chrome/browser/storage_access_api/storage_access_grant_permission_context.cc --- a/chrome/browser/storage_access_api/storage_access_grant_permission_context.cc +++ b/chrome/browser/storage_access_api/storage_access_grant_permission_context.cc -@@ -222,6 +222,7 @@ FederatedIdentityPermissionContext* IsAutograntViaFedCmAllowed( +@@ -208,6 +208,7 @@ FederatedIdentityPermissionContext* IsAutograntViaFedCmAllowed( const url::Origin& embedding_origin, const net::SchemefulSite& embedding_site, const net::SchemefulSite& requesting_site) { @@ -121,7 +121,7 @@ diff --git a/chrome/browser/storage_access_api/storage_access_grant_permission_c CHECK(browser_context); if (!rfh->IsFeatureEnabled( network::mojom::PermissionsPolicyFeature::kIdentityCredentialsGet)) { -@@ -483,6 +484,18 @@ void StorageAccessGrantPermissionContext::CheckForAutoGrantOrAutoDenial( +@@ -462,6 +463,18 @@ void StorageAccessGrantPermissionContext::CheckForAutoGrantOrAutoDenial( std::unique_ptr request_data, permissions::BrowserPermissionCallback callback, net::FirstPartySetMetadata metadata) { @@ -172,7 +172,7 @@ diff --git a/components/content_settings/core/browser/cookie_settings.cc b/compo if (url.is_empty() || first_party_url.is_empty()) { return; } -@@ -352,10 +353,7 @@ bool CookieSettings::ShouldBlockThirdPartyCookiesInternal() const { +@@ -353,10 +354,7 @@ bool CookieSettings::ShouldBlockThirdPartyCookiesInternal() const { } bool CookieSettings::MitigationsEnabledFor3pcdInternal() const { @@ -187,7 +187,7 @@ diff --git a/components/content_settings/core/browser/cookie_settings.cc b/compo diff --git a/components/content_settings/core/common/cookie_settings_base.cc b/components/content_settings/core/common/cookie_settings_base.cc --- a/components/content_settings/core/common/cookie_settings_base.cc +++ b/components/content_settings/core/common/cookie_settings_base.cc -@@ -597,48 +597,11 @@ CookieSettingsBase::DecideAccess(const GURL& url, +@@ -596,48 +596,11 @@ CookieSettingsBase::DecideAccess(const GURL& url, ThirdPartyCookieAllowMechanism::kAllowByGlobalSetting}; } @@ -236,7 +236,7 @@ diff --git a/components/content_settings/core/common/cookie_settings_base.cc b/c if (is_explicit_setting) { return AllowAllCookies{ -@@ -674,7 +637,7 @@ CookieSettingsBase::GetCookieSettingInternal( +@@ -673,7 +636,7 @@ CookieSettingsBase::GetCookieSettingInternal( } return CookieSettingWithMetadata{/*cookie_setting=*/CONTENT_SETTING_ALLOW, /*allow_partitioned_cookies=*/true, @@ -295,7 +295,7 @@ new file mode 100644 diff --git a/net/cookies/canonical_cookie.cc b/net/cookies/canonical_cookie.cc --- a/net/cookies/canonical_cookie.cc +++ b/net/cookies/canonical_cookie.cc -@@ -1094,11 +1094,6 @@ CanonicalCookie::IsCanonicalForFromStorage() const { +@@ -1114,11 +1114,6 @@ CanonicalCookie::IsCanonicalForFromStorage() const { return Fail(CanonicalizationFailure::kEmptyNameWithHiddenPrefix); } @@ -323,7 +323,7 @@ diff --git a/net/cookies/cookie_deletion_info.cc b/net/cookies/cookie_deletion_i diff --git a/net/cookies/cookie_monster.cc b/net/cookies/cookie_monster.cc --- a/net/cookies/cookie_monster.cc +++ b/net/cookies/cookie_monster.cc -@@ -2265,6 +2265,7 @@ size_t CookieMonster::GarbageCollectPartitionedCookies( +@@ -2269,6 +2269,7 @@ size_t CookieMonster::GarbageCollectPartitionedCookies( if (cookie_partition_it == partitioned_cookies_.end()) return num_deleted; @@ -334,18 +334,18 @@ diff --git a/net/cookies/cookie_monster.cc b/net/cookies/cookie_monster.cc diff --git a/net/cookies/cookie_util.cc b/net/cookies/cookie_util.cc --- a/net/cookies/cookie_util.cc +++ b/net/cookies/cookie_util.cc -@@ -802,6 +802,7 @@ bool IsCookiePartitionedValid(const GURL& url, - bool secure, - bool is_partitioned, - bool partition_has_nonce) { +@@ -828,6 +828,7 @@ bool IsCookiePartitionedValid( + base::optional_ref url, + bool secure, + base::optional_ref partition_key) { + if ((true)) return true; - if (!is_partitioned) { + if (!partition_key || CookiePartitionKey::HasNonce(partition_key)) { return true; } diff --git a/net/cookies/cookie_util.h b/net/cookies/cookie_util.h --- a/net/cookies/cookie_util.h +++ b/net/cookies/cookie_util.h -@@ -132,7 +132,7 @@ enum class SecFetchStorageAccessOutcome { +@@ -133,7 +133,7 @@ enum class SecFetchStorageAccessOutcome { enum class ActivateStorageAccessLoadOutcome { // Applies when the `Activate-Storage-Access` header behavior is not enabled // under the existing feature flags or content settings. @@ -354,7 +354,7 @@ diff --git a/net/cookies/cookie_util.h b/net/cookies/cookie_util.h // Applies when a response includes the `Activate-Storage-Access: load` // header, but its corresponding request either has an omitted storage access // status, or has a storage access status of `none`. -@@ -153,7 +153,7 @@ enum class ActivateStorageAccessLoadOutcome { +@@ -154,7 +154,7 @@ enum class ActivateStorageAccessLoadOutcome { enum class ActivateStorageAccessRetryOutcome { // Applies when the `Activate-Storage-Access` header behavior is not enabled // under the existing feature flags or content settings. @@ -384,12 +384,12 @@ diff --git a/net/cookies/parsed_cookie.h b/net/cookies/parsed_cookie.h + return partitioned_index_ != 0; + } bool HasInternalHtab() const { return internal_htab_; } - // Returns the number of attributes, for example, returning 2 for: - // "BLAH=hah; path=/; domain=.google.com" + std::optional + NamelessCookieLineParseTypeForMetrics() const { diff --git a/net/extras/sqlite/sqlite_persistent_cookie_store.cc b/net/extras/sqlite/sqlite_persistent_cookie_store.cc --- a/net/extras/sqlite/sqlite_persistent_cookie_store.cc +++ b/net/extras/sqlite/sqlite_persistent_cookie_store.cc -@@ -817,6 +817,14 @@ bool SQLitePersistentCookieStore::Backend::DoInitializeDatabase() { +@@ -851,6 +851,14 @@ bool SQLitePersistentCookieStore::Backend::DoInitializeDatabase() { if (!restore_old_session_cookies_) DeleteSessionCookiesOnStartup(); @@ -420,7 +420,7 @@ diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc --- a/net/url_request/url_request_http_job.cc +++ b/net/url_request/url_request_http_job.cc -@@ -1627,6 +1627,7 @@ bool URLRequestHttpJob::NeedsRetryWithStorageAccess() { +@@ -1645,6 +1645,7 @@ bool URLRequestHttpJob::NeedsRetryWithStorageAccess() { auto determine_storage_access_retry_outcome = [&]() -> cookie_util::ActivateStorageAccessRetryOutcome { using enum cookie_util::ActivateStorageAccessRetryOutcome; @@ -454,7 +454,7 @@ diff --git a/services/network/cookie_settings.cc b/services/network/cookie_setti diff --git a/services/network/cors/cors_url_loader.cc b/services/network/cors/cors_url_loader.cc --- a/services/network/cors/cors_url_loader.cc +++ b/services/network/cors/cors_url_loader.cc -@@ -860,6 +860,7 @@ void CorsURLLoader::StartRequest() { +@@ -851,6 +851,7 @@ void CorsURLLoader::StartRequest() { } if (request_.credentials_mode == mojom::CredentialsMode::kInclude && @@ -481,7 +481,7 @@ diff --git a/services/network/restricted_cookie_manager.cc b/services/network/re diff --git a/services/network/url_loader.cc b/services/network/url_loader.cc --- a/services/network/url_loader.cc +++ b/services/network/url_loader.cc -@@ -2588,6 +2588,7 @@ bool URLLoader::ShouldSetLoadWithStorageAccess() const { +@@ -2617,6 +2617,7 @@ bool URLLoader::ShouldSetLoadWithStorageAccess() const { auto determine_storage_access_load_outcome = [&]() -> net::cookie_util::ActivateStorageAccessLoadOutcome { @@ -503,7 +503,7 @@ diff --git a/third_party/blink/renderer/modules/cookie_store/cookie_init.idl b/t diff --git a/third_party/blink/renderer/modules/cookie_store/cookie_store.cc b/third_party/blink/renderer/modules/cookie_store/cookie_store.cc --- a/third_party/blink/renderer/modules/cookie_store/cookie_store.cc +++ b/third_party/blink/renderer/modules/cookie_store/cookie_store.cc -@@ -413,6 +413,7 @@ ScriptPromise CookieStore::set(ScriptState* script_state, +@@ -411,6 +411,7 @@ ScriptPromise CookieStore::set(ScriptState* script_state, CookieInit* set_options = CookieInit::Create(); set_options->setName(name); set_options->setValue(value); @@ -511,7 +511,7 @@ diff --git a/third_party/blink/renderer/modules/cookie_store/cookie_store.cc b/t return set(script_state, set_options, exception_state); } -@@ -436,6 +437,7 @@ ScriptPromise CookieStore::Delete( +@@ -434,6 +435,7 @@ ScriptPromise CookieStore::Delete( set_options->setName(name); set_options->setValue(name.empty() ? "deleted" : ""); set_options->setExpires(0); @@ -519,7 +519,7 @@ diff --git a/third_party/blink/renderer/modules/cookie_store/cookie_store.cc b/t return DoWrite(script_state, set_options, exception_state); } -@@ -451,6 +453,7 @@ ScriptPromise CookieStore::Delete( +@@ -449,6 +451,7 @@ ScriptPromise CookieStore::Delete( set_options->setPath(options->path()); set_options->setSameSite(V8CookieSameSite::Enum::kStrict); set_options->setPartitioned(options->partitioned()); diff --git a/build/patches/Private-network-access-content-settings.patch b/build/patches/Private-network-access-content-settings.patch index 6fe3a816..39c157c3 100644 --- a/build/patches/Private-network-access-content-settings.patch +++ b/build/patches/Private-network-access-content-settings.patch @@ -12,7 +12,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../insecure_private_network.grdp | 18 ++++ .../insecure_private_network.inc | 25 +++++ .../INSECURE_PRIVATE_NETWORK.inc | 3 + - .../private_network_access_util.cc | 6 +- + .../local_network_access_util.cc | 6 +- ...rivate-network-access-content-settings.inc | 2 + services/network/public/cpp/features.cc | 2 +- 8 files changed, 178 insertions(+), 7 deletions(-) @@ -25,7 +25,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -4106,6 +4106,31 @@ bool ShouldPromptOnMultipleMatchingCertificates(const Profile* profile) { +@@ -4151,6 +4151,31 @@ bool ShouldPromptOnMultipleMatchingCertificates(const Profile* profile) { return false; } @@ -57,8 +57,8 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch } // namespace base::OnceClosure ChromeContentBrowserClient::SelectClientCertificate( -@@ -7665,12 +7690,17 @@ content::ContentBrowserClient::PrivateNetworkRequestPolicyOverride - ChromeContentBrowserClient::ShouldOverridePrivateNetworkRequestPolicy( +@@ -7745,12 +7770,17 @@ content::ContentBrowserClient::LocalNetworkAccessRequestPolicyOverride + ChromeContentBrowserClient::ShouldOverrideLocalNetworkAccessRequestPolicy( content::BrowserContext* browser_context, const url::Origin& origin) { -#if BUILDFLAG(IS_ANDROID) @@ -71,8 +71,8 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch + } + } + if ((true)) { - return content::ContentBrowserClient::PrivateNetworkRequestPolicyOverride:: - kBlockInsteadOfWarn; + return content::ContentBrowserClient:: + LocalNetworkAccessRequestPolicyOverride::kBlockInsteadOfWarn; } -#endif @@ -237,9 +237,9 @@ new file mode 100644 + // Stores whether to allow insecure websites to make private network requests. + // See also: https://wicg.github.io/cors-rfc1918 + INSECURE_PRIVATE_NETWORK, -diff --git a/content/browser/renderer_host/private_network_access_util.cc b/content/browser/renderer_host/private_network_access_util.cc ---- a/content/browser/renderer_host/private_network_access_util.cc -+++ b/content/browser/renderer_host/private_network_access_util.cc +diff --git a/content/browser/renderer_host/local_network_access_util.cc b/content/browser/renderer_host/local_network_access_util.cc +--- a/content/browser/renderer_host/local_network_access_util.cc ++++ b/content/browser/renderer_host/local_network_access_util.cc @@ -121,13 +121,13 @@ Policy DerivePolicyForNonSecureContext( // Requests from the `unknown` address space are controlled separately // because it is unclear why they happen in the first place. The goal is @@ -275,7 +275,7 @@ new file mode 100644 diff --git a/services/network/public/cpp/features.cc b/services/network/public/cpp/features.cc --- a/services/network/public/cpp/features.cc +++ b/services/network/public/cpp/features.cc -@@ -222,7 +222,7 @@ BASE_FEATURE_PARAM(bool, +@@ -236,7 +236,7 @@ BASE_FEATURE_PARAM(bool, kLocalNetworkAccessChecksWarn, &kLocalNetworkAccessChecks, /*name=*/"LocalNetworkAccessChecksWarn", diff --git a/build/patches/PublicKeyCredential-fingerprinting-mitigations.patch b/build/patches/PublicKeyCredential-fingerprinting-mitigations.patch index 2ce1059c..4f6660b2 100644 --- a/build/patches/PublicKeyCredential-fingerprinting-mitigations.patch +++ b/build/patches/PublicKeyCredential-fingerprinting-mitigations.patch @@ -13,15 +13,15 @@ the Windows platform diff --git a/content/browser/webauth/authenticator_common_impl.cc b/content/browser/webauth/authenticator_common_impl.cc --- a/content/browser/webauth/authenticator_common_impl.cc +++ b/content/browser/webauth/authenticator_common_impl.cc -@@ -2028,6 +2028,7 @@ void AuthenticatorCommonImpl::GetClientCapabilities( - base::FeatureList::IsEnabled(device::kWebAuthnPasskeyUpgrade))); +@@ -2020,6 +2020,7 @@ void AuthenticatorCommonImpl::GetClientCapabilities( + MakeCapability(client_capabilities::kConditionalCreate, true)); IsHybridTransportSupported( + caller_origin, base::BindOnce(&MakeCapability, client_capabilities::kHybridTransport) .Then(barrier_callback)); -@@ -2055,11 +2056,25 @@ void AuthenticatorCommonImpl::GetClientCapabilities( +@@ -2047,11 +2048,25 @@ void AuthenticatorCommonImpl::GetClientCapabilities( } void AuthenticatorCommonImpl::IsHybridTransportSupported( @@ -47,7 +47,7 @@ diff --git a/content/browser/webauth/authenticator_common_impl.cc b/content/brow device::BluetoothAdapterFactory::Get()->GetAdapter( base::BindOnce([](scoped_refptr adapter) { -@@ -2105,6 +2120,13 @@ void AuthenticatorCommonImpl::ContinueIsUvpaaAfterOverrideCheck( +@@ -2097,6 +2112,13 @@ void AuthenticatorCommonImpl::ContinueIsUvpaaAfterOverrideCheck( IsUserVerifyingPlatformAuthenticatorAvailableCallback callback, bool is_get_client_capabilities_call, std::optional is_uvpaa_override) { 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 b3e1ecf3..e02f7e6c 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 @@ -45,7 +45,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser 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 -@@ -253,6 +253,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -259,6 +259,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kAsyncNotificationManagerForDownload, &kAutomotiveBackButtonBarStreamline, &kAuxiliarySearchDonation, @@ -56,9 +56,9 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse 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 -@@ -361,6 +361,7 @@ public abstract class ChromeFeatureList { - public static final String CLEAR_INSTANCE_INFO_WHEN_CLOSED_INTENTIONALLY = - "ClearInstanceInfoWhenClosedIntentionally"; +@@ -367,6 +367,7 @@ public abstract class ChromeFeatureList { + public static final String CLANK_STARTUP_LATENCY_INJECTION = "ClankStartupLatencyInjection"; + public static final String CLANK_WHATS_NEW = "ClankWhatsNew"; public static final String CLEAR_INTENT_WHEN_RECREATED = "ClearIntentWhenRecreated"; + public static final String CLOSE_ALL_TABS_MODAL_DIALOG = "CloseAllTabsModalDialog"; public static final String COMMAND_LINE_ON_NON_ROOTED = "CommandLineOnNonRooted"; diff --git a/build/patches/Re-introduce-override_build_timestamp.patch b/build/patches/Re-introduce-override_build_timestamp.patch index 330f5f92..b201aa4e 100644 --- a/build/patches/Re-introduce-override_build_timestamp.patch +++ b/build/patches/Re-introduce-override_build_timestamp.patch @@ -16,7 +16,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/base/BUILD.gn b/base/BUILD.gn --- a/base/BUILD.gn +++ b/base/BUILD.gn -@@ -4467,8 +4467,12 @@ if (current_toolchain == default_toolchain) { +@@ -4504,8 +4504,12 @@ if (current_toolchain == default_toolchain) { outputs = [ _build_date_header_internal ] args = [ rebase_path(_build_date_header_internal, root_build_dir), diff --git a/build/patches/Reduce-HTTP-headers-in-DoH-requests-to-bare-minimum.patch b/build/patches/Reduce-HTTP-headers-in-DoH-requests-to-bare-minimum.patch index 43fff542..29dafbcc 100644 --- a/build/patches/Reduce-HTTP-headers-in-DoH-requests-to-bare-minimum.patch +++ b/build/patches/Reduce-HTTP-headers-in-DoH-requests-to-bare-minimum.patch @@ -24,7 +24,7 @@ diff --git a/net/base/load_flags_list.h b/net/base/load_flags_list.h diff --git a/net/dns/dns_transaction.cc b/net/dns/dns_transaction.cc --- a/net/dns/dns_transaction.cc +++ b/net/dns/dns_transaction.cc -@@ -510,7 +510,7 @@ class DnsHTTPAttempt : public DnsAttempt, public URLRequest::Delegate { +@@ -508,7 +508,7 @@ class DnsHTTPAttempt : public DnsAttempt, public URLRequest::Delegate { // avoid deadlock and enable the use of preconfigured IP addresses. request_->SetSecureDnsPolicy(SecureDnsPolicy::kBootstrap); request_->SetLoadFlags(request_->load_flags() | LOAD_DISABLE_CACHE | @@ -36,7 +36,7 @@ diff --git a/net/dns/dns_transaction.cc b/net/dns/dns_transaction.cc diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc --- a/net/url_request/url_request_http_job.cc +++ b/net/url_request/url_request_http_job.cc -@@ -531,6 +531,7 @@ void URLRequestHttpJob::OnGotFirstPartySetMetadata( +@@ -536,6 +536,7 @@ void URLRequestHttpJob::OnGotFirstPartySetMetadata( // fields in the referrer. GURL referrer(request_->referrer()); @@ -44,7 +44,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque // Our consumer should have made sure that this is a safe referrer (e.g. via // URLRequestJob::ComputeReferrerForPolicy). if (referrer.is_valid()) { -@@ -538,11 +539,14 @@ void URLRequestHttpJob::OnGotFirstPartySetMetadata( +@@ -543,11 +544,14 @@ void URLRequestHttpJob::OnGotFirstPartySetMetadata( request_info_.extra_headers.SetHeader(HttpRequestHeaders::kReferer, referer_value); } @@ -59,7 +59,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque AddExtraHeaders(); -@@ -794,10 +798,10 @@ void URLRequestHttpJob::StartTransactionInternal() { +@@ -802,10 +806,10 @@ void URLRequestHttpJob::StartTransactionInternal() { void URLRequestHttpJob::AddExtraHeaders() { request_info_.extra_headers.SetAcceptEncodingIfMissing( request()->url(), request()->accepted_stream_types(), 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 ab21c06d..3c35efb5 100644 --- a/build/patches/Remove-HTTP-referrals-in-cross-origin-navigation.patch +++ b/build/patches/Remove-HTTP-referrals-in-cross-origin-navigation.patch @@ -44,7 +44,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni --- a/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni -@@ -658,6 +658,8 @@ chrome_java_resources = [ +@@ -667,6 +667,8 @@ chrome_java_resources = [ "java/res/xml/personalize_google_services_preferences.xml", "java/res/xml/incognito_preferences.xml", "java/res/xml/privacy_preferences.xml", @@ -56,7 +56,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 -@@ -971,6 +971,8 @@ chrome_java_sources = [ +@@ -982,6 +982,8 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/privacy_sandbox/CctHandler.java", "java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandbox3pcdRollbackMessageController.java", "java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxSurveyController.java", @@ -170,7 +170,7 @@ new file mode 100644 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 -@@ -40,6 +40,7 @@ import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; +@@ -41,6 +41,7 @@ import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; import org.chromium.chrome.browser.preferences.Pref; import org.chromium.chrome.browser.prefetch.settings.PreloadPagesSettingsFragment; @@ -178,7 +178,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import org.chromium.chrome.browser.privacy.secure_dns.SecureDnsSettings; import org.chromium.chrome.browser.privacy_guide.PrivacyGuideFragment; import org.chromium.chrome.browser.privacy_guide.PrivacyGuideInteractions; -@@ -118,6 +119,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -119,6 +120,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private static final String PREF_SAFE_BROWSING = "safe_browsing"; private static final String PREF_PASSWORD_LEAK_DETECTION = "password_leak_detection"; private static final String PREF_SYNC_AND_SERVICES_LINK = "sync_and_services_link"; @@ -186,7 +186,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting 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"; -@@ -542,6 +544,10 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -554,6 +556,10 @@ public class PrivacySettings extends ChromeBaseSettingsFragment : R.string.text_off); } @@ -395,7 +395,7 @@ new file mode 100644 diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chrome/browser/extensions/api/settings_private/prefs_util.cc --- a/chrome/browser/extensions/api/settings_private/prefs_util.cc +++ b/chrome/browser/extensions/api/settings_private/prefs_util.cc -@@ -241,6 +241,11 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { +@@ -261,6 +261,11 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { (*s_allowlist)[::prefs::kExpireDaysThreshold] = settings_api::PrefType::kNumber; @@ -442,7 +442,7 @@ diff --git a/chrome/browser/renderer_preferences_util.cc b/chrome/browser/render diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.html b/chrome/browser/resources/settings/privacy_page/privacy_page.html --- a/chrome/browser/resources/settings/privacy_page/privacy_page.html +++ b/chrome/browser/resources/settings/privacy_page/privacy_page.html -@@ -76,6 +76,16 @@ +@@ -74,6 +74,16 @@ menu-options="[[historyExpireDaysThresholdOptions_]]"> @@ -504,7 +504,7 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.ts b/ch 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 -@@ -1095,6 +1095,30 @@ For more settings that use data to improve your Chrome experience, go to @@ -562,7 +562,7 @@ diff --git a/chrome/browser/ui/prefs/prefs_tab_helper.cc b/chrome/browser/ui/pre diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc --- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc +++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc -@@ -2312,6 +2312,10 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, +@@ -2330,6 +2330,10 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, {"dayHistory", IDS_SETTINGS_DAY_HISTORY_DESCRIPTION}, {"daysHistory", IDS_SETTINGS_DAYS_HISTORY_DESCRIPTION}, {"foreverHistory", IDS_SETTINGS_FOREVER_HISTORY_DESCRIPTION}, @@ -639,7 +639,7 @@ diff --git a/components/download/content/internal/context_menu_download.cc b/com diff --git a/content/browser/renderer_host/navigation_request.cc b/content/browser/renderer_host/navigation_request.cc --- a/content/browser/renderer_host/navigation_request.cc +++ b/content/browser/renderer_host/navigation_request.cc -@@ -397,6 +397,15 @@ void AddAdditionalRequestHeaders( +@@ -399,6 +399,15 @@ void AddAdditionalRequestHeaders( blink::mojom::Referrer(GURL(), network::mojom::ReferrerPolicy::kNever); } @@ -658,7 +658,7 @@ diff --git a/content/browser/renderer_host/navigation_request.cc b/content/brows diff --git a/services/network/public/cpp/resource_request.h b/services/network/public/cpp/resource_request.h --- a/services/network/public/cpp/resource_request.h +++ b/services/network/public/cpp/resource_request.h -@@ -177,7 +177,7 @@ struct COMPONENT_EXPORT(NETWORK_CPP_BASE) ResourceRequest { +@@ -211,7 +211,7 @@ struct COMPONENT_EXPORT(NETWORK_CPP_BASE) ResourceRequest { std::vector navigation_redirect_chain; GURL referrer; diff --git a/build/patches/Remove-binary-blob-integrations.patch b/build/patches/Remove-binary-blob-integrations.patch index b171574e..c03239d3 100644 --- a/build/patches/Remove-binary-blob-integrations.patch +++ b/build/patches/Remove-binary-blob-integrations.patch @@ -78,7 +78,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../media_router/caf/CastUtils.java | 8 - .../CafExpandedControllerActivity.java | 46 +- .../CafRemotingMediaRouteProvider.java | 4 +- - .../remoting/FlingingControllerAdapter.java | 96 --- + .../remoting/FlingingControllerAdapter.java | 96 -- .../caf/remoting/RemotingMediaSource.java | 8 +- .../remoting/RemotingSessionController.java | 31 - .../test/android/cast_emulator/BUILD.gn | 1 - @@ -94,7 +94,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../webauthn/ConditionalUiState.java | 15 + .../webauthn/Fido2CredentialRequest.java | 113 +-- .../webauthn/GmsCoreGetCredentialsHelper.java | 79 +- - .../components/webauthn/GmsCoreUtils.java | 74 +- + .../components/webauthn/GmsCoreUtils.java | 70 +- .../webauthn/IdentityCredentialsHelper.java | 143 +-- .../webauthn/WebauthnModeProvider.java | 15 - .../cred_man/CredManMetricsHelper.java | 17 +- @@ -106,12 +106,12 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html services/device/geolocation/BUILD.gn | 4 - services/shape_detection/BUILD.gn | 2 - third_party/android_deps/BUILD.gn | 11 - - third_party/android_deps/autorolled/BUILD.gn | 811 ------------------ + third_party/android_deps/autorolled/BUILD.gn | 869 ------------------ .../preconditions/javatests/BUILD.gn | 1 - .../gms/ChromiumPlayServicesAvailability.java | 17 +- third_party/androidx/customizations.gni | 14 +- third_party/cardboard/BUILD.gn | 4 - - 87 files changed, 134 insertions(+), 2720 deletions(-) + 87 files changed, 134 insertions(+), 2774 deletions(-) create mode 100644 components/webauthn/android/java/src/org/chromium/components/webauthn/ConditionalUiState.java diff --git a/android_webview/expectations/system_webview_bundle.AndroidManifest.expected b/android_webview/expectations/system_webview_bundle.AndroidManifest.expected @@ -153,10 +153,10 @@ diff --git a/build/config/android/config.gni b/build/config/android/config.gni diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -288,14 +288,6 @@ if (_is_default_toolchain) { - ":java_overlay_resources", +@@ -298,14 +298,6 @@ if (_is_default_toolchain) { ":system_ai_service_proto_java", ":usage_stats_proto_java", + ":xr_java", - "$google_play_services_package:google_play_services_auth_base_java", - "$google_play_services_package:google_play_services_base_java", - "$google_play_services_package:google_play_services_basement_java", @@ -168,7 +168,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//base:content_uri_utils_java", "//base:flagged_apis_java", "//base:process_launcher_java", -@@ -742,12 +734,9 @@ if (_is_default_toolchain) { +@@ -757,12 +749,9 @@ if (_is_default_toolchain) { "//services/shape_detection/public/mojom:mojom_java", "//skia/public/mojom:mojom_java", "//third_party/android_deps:chromium_play_services_availability_java", @@ -181,7 +181,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//third_party/android_deps:protobuf_lite_runtime_java", "//third_party/android_media:android_media_java", "//third_party/android_swipe_refresh:android_swipe_refresh_java", -@@ -1905,7 +1894,6 @@ if (_is_default_toolchain) { +@@ -1948,7 +1937,6 @@ if (_is_default_toolchain) { ] deps = [ ":chrome_java", @@ -189,7 +189,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//base:base_java", "//base:base_java_test_support", "//build/android:build_java", -@@ -2011,7 +1999,6 @@ if (_is_default_toolchain) { +@@ -2054,7 +2042,6 @@ if (_is_default_toolchain) { "java/src/org/chromium/chrome/browser/base/SplitCompatBackupAgent.java", "java/src/org/chromium/chrome/browser/base/SplitCompatContentProvider.java", "java/src/org/chromium/chrome/browser/base/SplitCompatCustomTabsService.java", @@ -197,7 +197,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "java/src/org/chromium/chrome/browser/base/SplitCompatIntentService.java", "java/src/org/chromium/chrome/browser/base/SplitCompatJobService.java", "java/src/org/chromium/chrome/browser/base/SplitCompatMinidumpUploadJobService.java", -@@ -2039,14 +2026,10 @@ if (_is_default_toolchain) { +@@ -2082,14 +2069,10 @@ if (_is_default_toolchain) { "java/src/org/chromium/chrome/browser/photo_picker/DecoderService.java", "java/src/org/chromium/chrome/browser/provider/ChromeBrowserProvider.java", "java/src/org/chromium/chrome/browser/provider/PageContentProvider.java", @@ -212,7 +212,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//base:base_java", "//chrome/browser/autofill/android:third_party_provider_java", "//chrome/browser/download/android:file_provider_java", -@@ -2065,7 +2048,6 @@ if (_is_default_toolchain) { +@@ -2108,7 +2091,6 @@ if (_is_default_toolchain) { "//components/module_installer/android:module_installer_java", "//components/policy/android:policy_java", "//components/variations/android:variations_java", @@ -223,7 +223,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn 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 -@@ -997,10 +997,6 @@ chrome_java_sources = [ +@@ -1008,10 +1008,6 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/segmentation_platform/SignalAccumulator.java", "java/src/org/chromium/chrome/browser/segmentation_platform/TabGroupingActionProvider.java", "java/src/org/chromium/chrome/browser/selection/ChromeSelectionDropdownMenuDelegate.java", @@ -257,7 +257,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -@@ -828,16 +823,6 @@ by a child template that "extends" this file. +@@ -831,16 +826,6 @@ by a child template that "extends" this file. @@ -274,7 +274,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro @@ -464,7 +464,7 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/settings/LanguageSettings.java b/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/settings/LanguageSettings.java --- a/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/settings/LanguageSettings.java +++ b/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/settings/LanguageSettings.java -@@ -25,7 +25,6 @@ import org.chromium.build.annotations.Nullable; +@@ -26,7 +26,6 @@ import org.chromium.build.annotations.Nullable; import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.language.AppLocaleUtils; import org.chromium.chrome.browser.language.GlobalAppLocaleController; @@ -472,7 +472,7 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse import org.chromium.chrome.browser.language.R; import org.chromium.chrome.browser.preferences.Pref; import org.chromium.chrome.browser.preferences.PrefServiceUtil; -@@ -148,11 +147,6 @@ public class LanguageSettings extends ChromeBaseSettingsFragment +@@ -150,11 +149,6 @@ public class LanguageSettings extends ChromeBaseSettingsFragment * translate target language, and detailed translate preferences. */ private void createDetailedPreferences() { @@ -689,7 +689,7 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom diff --git a/chrome/browser/push_messaging/push_messaging_service_factory.cc b/chrome/browser/push_messaging/push_messaging_service_factory.cc --- a/chrome/browser/push_messaging/push_messaging_service_factory.cc +++ b/chrome/browser/push_messaging/push_messaging_service_factory.cc -@@ -24,13 +24,7 @@ +@@ -28,13 +28,7 @@ // static PushMessagingServiceImpl* PushMessagingServiceFactory::GetForProfile( content::BrowserContext* context) { @@ -718,7 +718,7 @@ diff --git a/chrome/browser/safe_browsing/notification_telemetry/notification_te diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -131,8 +131,6 @@ static_library("ui") { +@@ -129,8 +129,6 @@ static_library("ui") { "webui/flags/flags_ui.h", "webui/flags/flags_ui_handler.cc", "webui/flags/flags_ui_handler.h", @@ -727,7 +727,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn "webui/history_clusters/history_clusters_internals_ui_config.cc", "webui/history_clusters/history_clusters_internals_ui_config.h", "webui/interstitials/interstitial_ui.cc", -@@ -475,7 +473,6 @@ static_library("ui") { +@@ -472,7 +470,6 @@ static_library("ui") { "//components/feedback/content", "//components/feedback/redaction_tool", "//components/find_in_page", @@ -738,7 +738,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/android/omnibox/BUILD.gn --- a/chrome/browser/ui/android/omnibox/BUILD.gn +++ b/chrome/browser/ui/android/omnibox/BUILD.gn -@@ -175,8 +175,6 @@ android_library("java") { +@@ -176,8 +176,6 @@ android_library("java") { deps = [ ":java_resources", @@ -747,7 +747,7 @@ diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/andr "//base:base_java", "//base/version_info/android:version_constants_java", "//build/android:build_java", -@@ -522,8 +520,6 @@ robolectric_library("junit") { +@@ -520,8 +518,6 @@ robolectric_library("junit") { deps = [ ":java", ":java_resources", @@ -759,7 +759,7 @@ diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/andr diff --git a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fullscreen_signin/FullscreenSigninMediator.java b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fullscreen_signin/FullscreenSigninMediator.java --- a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fullscreen_signin/FullscreenSigninMediator.java +++ b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fullscreen_signin/FullscreenSigninMediator.java -@@ -278,11 +278,9 @@ public class FullscreenSigninMediator +@@ -279,11 +279,9 @@ public class FullscreenSigninMediator AccountUtils.getAccountsIfFulfilledOrEmpty(mAccountManagerFacade.getAccounts()), this::onChildAccountStatusReady); @@ -775,7 +775,7 @@ diff --git a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/brows diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/ui/webui/chrome_web_ui_configs.cc --- a/chrome/browser/ui/webui/chrome_web_ui_configs.cc +++ b/chrome/browser/ui/webui/chrome_web_ui_configs.cc -@@ -247,7 +247,6 @@ void RegisterChromeWebUIConfigs() { +@@ -257,7 +257,6 @@ void RegisterChromeWebUIConfigs() { map.AddWebUIConfig(std::make_unique()); map.AddWebUIConfig(std::make_unique()); map.AddWebUIConfig(std::make_unique()); @@ -1134,7 +1134,7 @@ diff --git a/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/w diff --git a/chrome/test/android/BUILD.gn b/chrome/test/android/BUILD.gn --- a/chrome/test/android/BUILD.gn +++ b/chrome/test/android/BUILD.gn -@@ -382,8 +382,6 @@ android_library("chrome_java_integration_test_support") { +@@ -396,8 +396,6 @@ android_library("chrome_java_integration_test_support") { deps = [ ":chrome_java_test_support_common", @@ -1146,7 +1146,7 @@ diff --git a/chrome/test/android/BUILD.gn b/chrome/test/android/BUILD.gn diff --git a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java --- a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java +++ b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java -@@ -2853,14 +2853,6 @@ public class ExternalNavigationHandler { +@@ -2912,14 +2912,6 @@ public class ExternalNavigationHandler { * @return Whether the given intent is going to open an Instant App. */ private static boolean isIntentToInstantApp(Intent intent) { @@ -3079,7 +3079,7 @@ diff --git a/components/omnibox/common/android/java/src/org/chromium/components/ import org.chromium.base.BaseSwitches; import org.chromium.base.CommandLine; import org.chromium.base.ContextUtils; -@@ -199,12 +197,6 @@ public class OmniboxFeatures { +@@ -198,12 +196,6 @@ public class OmniboxFeatures { "geolocation_request_min_update_interval_millis", (int) (9 * DateUtils.MINUTE_IN_MILLIS)); @@ -3210,7 +3210,7 @@ diff --git a/components/signin/public/android/BUILD.gn b/components/signin/publi "//base:base_java", "//base:service_loader_java", "//build/android:build_java", -@@ -200,7 +198,6 @@ robolectric_library("junit") { +@@ -195,7 +193,6 @@ robolectric_library("junit") { deps = [ ":java", ":signin_java_test_support", @@ -3561,9 +3561,9 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut -import com.google.android.gms.tasks.OnSuccessListener; - import org.chromium.base.PackageUtils; + import org.chromium.base.ResettersForTesting; import org.chromium.base.task.PostTask; - import org.chromium.base.task.TaskTraits; -@@ -14,28 +11,13 @@ import org.chromium.build.annotations.NullMarked; +@@ -15,28 +12,13 @@ import org.chromium.build.annotations.NullMarked; @NullMarked public class GmsCoreUtils { @@ -3594,7 +3594,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } /** -@@ -44,26 +26,22 @@ public class GmsCoreUtils { +@@ -45,22 +27,22 @@ public class GmsCoreUtils { * version. */ public static boolean isGetMatchingCredentialIdsSupported() { @@ -3617,15 +3617,11 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut /** Returns whether the passkey cache is supported. */ public static boolean isPasskeyCacheSupported() { - return getGmsCoreVersion() >= GMSCORE_MIN_VERSION_PASSKEY_CACHE; -- } -- -- public static void setGmsCoreVersionForTesting(int version) { -- sGmsCorePackageVersion = version; + return false; } - /** -@@ -71,30 +49,30 @@ public class GmsCoreUtils { + public static void setGmsCoreVersionForTesting(int version) { +@@ -74,30 +56,30 @@ public class GmsCoreUtils { * inner callback's invocation to the UI thread to avoid contention over state. Intent callbacks * can be run on a different thread from the one on which they were originally invoked. */ @@ -3937,7 +3933,7 @@ diff --git a/content/public/android/BUILD.gn b/content/public/android/BUILD.gn diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn --- a/content/test/BUILD.gn +++ b/content/test/BUILD.gn -@@ -3806,10 +3806,6 @@ if (is_android) { +@@ -3824,10 +3824,6 @@ if (is_android) { testonly = true sources = content_java_sources_needing_jni deps = [ @@ -3964,7 +3960,7 @@ diff --git a/device/BUILD.gn b/device/BUILD.gn diff --git a/services/BUILD.gn b/services/BUILD.gn --- a/services/BUILD.gn +++ b/services/BUILD.gn -@@ -163,12 +163,6 @@ if (is_android) { +@@ -165,12 +165,6 @@ if (is_android) { "shape_detection/android/junit/src/org/chromium/shape_detection/BitmapUtilsTest.java", ] deps = [ @@ -3977,7 +3973,7 @@ diff --git a/services/BUILD.gn b/services/BUILD.gn "//base:base_java", "//base:base_java_test_support", "//base:base_junit_test_support", -@@ -200,10 +194,6 @@ if (is_android) { +@@ -204,10 +198,6 @@ if (is_android) { "shape_detection/android/javatests/src/org/chromium/shape_detection/TextDetectionImplTest.java", ] deps = [ @@ -4179,13 +4175,13 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_ - info_path = "autorolled/committed/libs/com_google_android_gms_play_services_cast_framework/com_google_android_gms_play_services_cast_framework.info" - enable_bytecode_checks = false - deps = [ +- "$google_play_services_package:google_android_datatransport_transport_api_java", +- "$google_play_services_package:google_android_datatransport_transport_backend_cct_java", +- "$google_play_services_package:google_android_datatransport_transport_runtime_java", - "$google_play_services_package:google_play_services_base_java", - "$google_play_services_package:google_play_services_basement_java", - "$google_play_services_package:google_play_services_cast_java", - "$google_play_services_package:google_play_services_tasks_java", -- "//third_party/android_deps:google_android_datatransport_transport_api_java", -- "//third_party/android_deps:google_android_datatransport_transport_backend_cct_java", -- "//third_party/android_deps:google_android_datatransport_transport_runtime_java", - "//third_party/android_deps:guava_java", - "//third_party/androidx:androidx_appcompat_appcompat_java", - "//third_party/androidx:androidx_collection_collection_java", @@ -4404,6 +4400,9 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_ - info_path = "autorolled/committed/libs/com_google_firebase_firebase_messaging/com_google_firebase_firebase_messaging.info" - enable_bytecode_checks = false - deps = [ +- "$google_play_services_package:google_android_datatransport_transport_api_java", +- "$google_play_services_package:google_android_datatransport_transport_backend_cct_java", +- "$google_play_services_package:google_android_datatransport_transport_runtime_java", - "$google_play_services_package:google_firebase_firebase_common_java", - "$google_play_services_package:google_firebase_firebase_components_java", - "$google_play_services_package:google_firebase_firebase_datatransport_java", @@ -4420,9 +4419,6 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_ - "$google_play_services_package:google_play_services_stats_java", - "$google_play_services_package:google_play_services_tasks_java", - "//third_party/android_deps:com_google_errorprone_error_prone_annotations_java", -- "//third_party/android_deps:google_android_datatransport_transport_api_java", -- "//third_party/android_deps:google_android_datatransport_transport_backend_cct_java", -- "//third_party/android_deps:google_android_datatransport_transport_runtime_java", - "//third_party/androidx:androidx_annotation_annotation_java", - "//third_party/kotlin_stdlib:kotlin_stdlib_java", - ] @@ -4432,7 +4428,72 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_ # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. if (!defined(guava_android_target)) { java_prebuilt("com_google_guava_guava_java") { -@@ -974,190 +605,6 @@ template("define_autorolled_targets") { +@@ -582,64 +213,6 @@ template("define_autorolled_targets") { + supports_android = true + enable_bytecode_checks = false + } +- +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +- android_aar_prebuilt("com_google_mlkit_common_java") { +- aar_path = "autorolled/cipd/libs/com_google_mlkit_common/common.aar" +- info_path = "autorolled/committed/libs/com_google_mlkit_common/com_google_mlkit_common.info" +- enable_bytecode_checks = false +- deps = [ +- "$google_play_services_package:google_android_datatransport_transport_api_java", +- "$google_play_services_package:google_android_datatransport_transport_backend_cct_java", +- "$google_play_services_package:google_android_datatransport_transport_runtime_java", +- "$google_play_services_package:google_firebase_firebase_components_java", +- "$google_play_services_package:google_firebase_firebase_encoders_java", +- "$google_play_services_package:google_firebase_firebase_encoders_json_java", +- "$google_play_services_package:google_play_services_base_java", +- "$google_play_services_package:google_play_services_basement_java", +- "$google_play_services_package:google_play_services_tasks_java", +- "//third_party/androidx:androidx_appcompat_appcompat_java", +- "//third_party/androidx:androidx_core_core_java", +- ] +- } +- +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +- android_aar_prebuilt("com_google_mlkit_genai_common_java") { +- aar_path = +- "autorolled/cipd/libs/com_google_mlkit_genai_common/genai-common.aar" +- info_path = "autorolled/committed/libs/com_google_mlkit_genai_common/com_google_mlkit_genai_common.info" +- enable_bytecode_checks = false +- deps = [ +- "$google_play_services_package:google_play_services_basement_java", +- "//third_party/android_deps:org_jetbrains_kotlinx_kotlinx_coroutines_core_java", +- "//third_party/android_deps:org_jetbrains_kotlinx_kotlinx_coroutines_guava_java", +- "//third_party/kotlin_stdlib:kotlin_stdlib_java", +- ] +- } +- +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +- android_aar_prebuilt("com_google_mlkit_genai_prompt_java") { +- aar_path = +- "autorolled/cipd/libs/com_google_mlkit_genai_prompt/genai-prompt.aar" +- info_path = "autorolled/committed/libs/com_google_mlkit_genai_prompt/com_google_mlkit_genai_prompt.info" +- enable_bytecode_checks = false +- deps = [ +- "$google_play_services_package:google_android_datatransport_transport_api_java", +- "$google_play_services_package:google_android_datatransport_transport_backend_cct_java", +- "$google_play_services_package:google_android_datatransport_transport_runtime_java", +- "$google_play_services_package:google_firebase_firebase_encoders_java", +- "$google_play_services_package:google_firebase_firebase_encoders_json_java", +- "$google_play_services_package:google_play_services_basement_java", +- "$google_play_services_package:google_play_services_tasks_java", +- "//third_party/android_deps:com_google_mlkit_common_java", +- "//third_party/android_deps:com_google_mlkit_genai_common_java", +- "//third_party/android_deps:guava_java", +- "//third_party/android_deps:org_jetbrains_kotlinx_kotlinx_coroutines_core_java", +- "//third_party/android_deps:org_jetbrains_kotlinx_kotlinx_coroutines_guava_java", +- "//third_party/kotlin_stdlib:kotlin_stdlib_java", +- ] +- } +- + # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. + if (!defined(android_proto_runtime)) { + java_prebuilt("com_google_protobuf_protobuf_javalite_java") { +@@ -1044,190 +617,6 @@ template("define_autorolled_targets") { ] } @@ -4468,10 +4529,10 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_ - "//third_party/androidx:*", - ] - deps = [ +- "$google_play_services_package:google_android_datatransport_transport_api_java", +- "$google_play_services_package:google_android_datatransport_transport_runtime_java", - "$google_play_services_package:google_firebase_firebase_encoders_java", - "$google_play_services_package:google_firebase_firebase_encoders_json_java", -- "//third_party/android_deps:google_android_datatransport_transport_api_java", -- "//third_party/android_deps:google_android_datatransport_transport_runtime_java", - "//third_party/androidx:androidx_annotation_annotation_java", - ] - } @@ -4492,9 +4553,9 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_ - "//third_party/androidx:*", - ] - deps = [ +- "$google_play_services_package:google_android_datatransport_transport_api_java", - "$google_play_services_package:google_firebase_firebase_encoders_java", - "$google_play_services_package:google_firebase_firebase_encoders_proto_java", -- "//third_party/android_deps:google_android_datatransport_transport_api_java", - "//third_party/android_deps:javax_inject_javax_inject_java", - "//third_party/androidx:androidx_annotation_annotation_java", - ] @@ -4623,7 +4684,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_ # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. java_prebuilt("com_google_auto_value_auto_value_annotations_java") { jar_path = "autorolled/cipd/libs/com_google_auto_value_auto_value_annotations/auto-value-annotations.jar" -@@ -1174,242 +621,6 @@ template("define_autorolled_targets") { +@@ -1244,242 +633,6 @@ template("define_autorolled_targets") { testonly = true } @@ -4708,9 +4769,9 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_ - "//third_party/androidx:*", - ] - deps = [ -- "//third_party/android_deps:google_android_datatransport_transport_api_java", -- "//third_party/android_deps:google_android_datatransport_transport_backend_cct_java", -- "//third_party/android_deps:google_android_datatransport_transport_runtime_java", +- "$google_play_services_package:google_android_datatransport_transport_api_java", +- "$google_play_services_package:google_android_datatransport_transport_backend_cct_java", +- "$google_play_services_package:google_android_datatransport_transport_runtime_java", - "//third_party/androidx:androidx_annotation_annotation_java", - ] - } @@ -4866,7 +4927,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_ # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. java_prebuilt("com_google_guava_failureaccess_java") { jar_path = "autorolled/cipd/libs/com_google_guava_failureaccess/failureaccess.jar" -@@ -1945,28 +1156,6 @@ template("define_autorolled_targets") { +@@ -2013,28 +1166,6 @@ template("define_autorolled_targets") { deps = [ "//third_party/android_deps:org_jetbrains_kotlinx_kotlinx_coroutines_core_jvm_java" ] } @@ -4948,7 +5009,7 @@ diff --git a/third_party/android_deps/util/org/chromium/gms/ChromiumPlayServices diff --git a/third_party/androidx/customizations.gni b/third_party/androidx/customizations.gni --- a/third_party/androidx/customizations.gni +++ b/third_party/androidx/customizations.gni -@@ -163,7 +163,7 @@ template("androidx_java_prebuilt") { +@@ -160,7 +160,7 @@ template("androidx_java_prebuilt") { } } @@ -4957,7 +5018,7 @@ diff --git a/third_party/androidx/customizations.gni b/third_party/androidx/cust _androidx_prebuilt(target_name) { forward_variables_from(invoker, "*") target_type = "android_aar_prebuilt" -@@ -180,6 +180,18 @@ template("androidx_android_aar_prebuilt") { +@@ -177,6 +177,18 @@ template("androidx_android_aar_prebuilt") { } } diff --git a/build/patches/Remove-blocklisted-URLs-upon-bookmark-creation.patch b/build/patches/Remove-blocklisted-URLs-upon-bookmark-creation.patch index 5e209d20..f516f91c 100644 --- a/build/patches/Remove-blocklisted-URLs-upon-bookmark-creation.patch +++ b/build/patches/Remove-blocklisted-URLs-upon-bookmark-creation.patch @@ -31,7 +31,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows /** * Constructor. -@@ -122,6 +129,13 @@ public class TabBookmarker { +@@ -123,6 +130,13 @@ public class TabBookmarker { return; } diff --git a/build/patches/Remove-detection-of-captive-portals.patch b/build/patches/Remove-detection-of-captive-portals.patch index 0e6d2765..e4ed780e 100644 --- a/build/patches/Remove-detection-of-captive-portals.patch +++ b/build/patches/Remove-detection-of-captive-portals.patch @@ -12,7 +12,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/net/profile_network_context_service.cc b/chrome/browser/net/profile_network_context_service.cc --- a/chrome/browser/net/profile_network_context_service.cc +++ b/chrome/browser/net/profile_network_context_service.cc -@@ -608,7 +608,7 @@ void ProfileNetworkContextService::ConfigureNetworkContextParams( +@@ -594,7 +594,7 @@ void ProfileNetworkContextService::ConfigureNetworkContextParams( void ProfileNetworkContextService::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref(embedder_support::kAlternateErrorPagesEnabled, diff --git a/build/patches/Remove-help-menu-item.patch b/build/patches/Remove-help-menu-item.patch index d73dde88..851dc70a 100644 --- a/build/patches/Remove-help-menu-item.patch +++ b/build/patches/Remove-help-menu-item.patch @@ -26,7 +26,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java --- a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java -@@ -1196,9 +1196,6 @@ public class KeyboardShortcuts { +@@ -1236,9 +1236,6 @@ public class KeyboardShortcuts { return true; } return false; @@ -39,7 +39,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcu diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -2669,15 +2669,6 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -2680,15 +2680,6 @@ public abstract class ChromeActivity extends AsyncInitializationActivity final Tab currentTab = getActivityTab(); @@ -58,7 +58,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java --- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java -@@ -142,6 +142,7 @@ public class AutofillPaymentMethodsFragment extends ChromeBaseSettingsFragment +@@ -144,6 +144,7 @@ public class AutofillPaymentMethodsFragment extends ChromeBaseSettingsFragment MenuItem help = menu.add(Menu.NONE, R.id.menu_id_targeted_help, Menu.NONE, R.string.menu_help); help.setIcon(R.drawable.ic_help_24dp); @@ -69,7 +69,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settin diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillProfilesFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillProfilesFragment.java --- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillProfilesFragment.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillProfilesFragment.java -@@ -173,6 +173,7 @@ public class AutofillProfilesFragment extends ChromeBaseSettingsFragment +@@ -175,6 +175,7 @@ public class AutofillProfilesFragment extends ChromeBaseSettingsFragment MenuItem help = menu.add(Menu.NONE, R.id.menu_id_targeted_help, Menu.NONE, R.string.menu_help); help.setIcon(R.drawable.ic_help_24dp); @@ -80,7 +80,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settin diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java --- a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java -@@ -903,6 +903,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -905,6 +905,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment TraceEventVectorDrawableCompat.create( getResources(), R.drawable.ic_help_24dp, getActivity().getTheme())); help.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); @@ -91,7 +91,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java -@@ -1257,7 +1257,6 @@ public abstract class BaseCustomTabActivity extends ChromeActivity { +@@ -1266,7 +1266,6 @@ public abstract class BaseCustomTabActivity extends ChromeActivity { // Disable creating new tabs, bookmark, print, help, focus_url, etc. if (id == R.id.focus_url_bar || id == R.id.all_bookmarks_menu_id @@ -102,7 +102,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Base 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 -@@ -589,6 +589,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -601,6 +601,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment help.setIcon( TraceEventVectorDrawableCompat.create( getResources(), R.drawable.ic_help_24dp, getActivity().getTheme())); @@ -113,7 +113,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java -@@ -866,6 +866,7 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -977,6 +977,7 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity help.setIcon( TraceEventVectorDrawableCompat.create( getResources(), R.drawable.ic_help_24dp, getTheme())); @@ -124,7 +124,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/GoogleServicesSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/GoogleServicesSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/GoogleServicesSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/GoogleServicesSettings.java -@@ -174,6 +174,7 @@ public class GoogleServicesSettings extends ChromeBaseSettingsFragment +@@ -176,6 +176,7 @@ public class GoogleServicesSettings extends ChromeBaseSettingsFragment MenuItem help = menu.add(Menu.NONE, R.id.menu_id_targeted_help, Menu.NONE, R.string.menu_help); help.setIcon(R.drawable.ic_help_24dp); @@ -135,18 +135,18 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/G diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/ManageSyncSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/ManageSyncSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/ManageSyncSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/ManageSyncSettings.java -@@ -323,6 +323,7 @@ public class ManageSyncSettings extends ChromeBaseSettingsFragment +@@ -290,6 +290,7 @@ public class ManageSyncSettings extends ChromeBaseSettingsFragment MenuItem help = menu.add(Menu.NONE, R.id.menu_id_targeted_help, Menu.NONE, R.string.menu_help); help.setIcon(R.drawable.ic_help_24dp); + help.setVisible(false); - if (mIsFromSigninScreen) { - ActionBar actionBar = ((AppCompatActivity) getActivity()).getSupportActionBar(); - assert actionBar != null; + } + + @Override diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java -@@ -414,7 +414,7 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm +@@ -432,7 +432,7 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm } // Help @@ -169,7 +169,7 @@ diff --git a/chrome/browser/autofill/android/java/res/menu/prefeditor_editor_men diff --git a/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/options/AutofillOptionsFragment.java b/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/options/AutofillOptionsFragment.java --- a/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/options/AutofillOptionsFragment.java +++ b/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/options/AutofillOptionsFragment.java -@@ -124,6 +124,7 @@ public class AutofillOptionsFragment extends ChromeBaseSettingsFragment { +@@ -134,6 +134,7 @@ public class AutofillOptionsFragment extends ChromeBaseSettingsFragment { MenuItem help = menu.add(Menu.NONE, R.id.menu_id_targeted_help, Menu.NONE, R.string.menu_help); help.setIcon(R.drawable.ic_help_24dp); @@ -180,7 +180,7 @@ diff --git a/chrome/browser/autofill/android/java/src/org/chromium/chrome/browse diff --git a/chrome/browser/prefetch/android/java/src/org/chromium/chrome/browser/prefetch/settings/PreloadPagesSettingsFragmentBase.java b/chrome/browser/prefetch/android/java/src/org/chromium/chrome/browser/prefetch/settings/PreloadPagesSettingsFragmentBase.java --- a/chrome/browser/prefetch/android/java/src/org/chromium/chrome/browser/prefetch/settings/PreloadPagesSettingsFragmentBase.java +++ b/chrome/browser/prefetch/android/java/src/org/chromium/chrome/browser/prefetch/settings/PreloadPagesSettingsFragmentBase.java -@@ -46,6 +46,7 @@ public abstract class PreloadPagesSettingsFragmentBase extends ChromeBaseSetting +@@ -48,6 +48,7 @@ public abstract class PreloadPagesSettingsFragmentBase extends ChromeBaseSetting help.setIcon( TraceEventVectorDrawableCompat.create( getResources(), R.drawable.ic_help_24dp, getActivity().getTheme())); @@ -202,7 +202,7 @@ diff --git a/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome diff --git a/chrome/browser/safe_browsing/android/java/src/org/chromium/chrome/browser/safe_browsing/settings/SafeBrowsingSettingsFragmentBase.java b/chrome/browser/safe_browsing/android/java/src/org/chromium/chrome/browser/safe_browsing/settings/SafeBrowsingSettingsFragmentBase.java --- a/chrome/browser/safe_browsing/android/java/src/org/chromium/chrome/browser/safe_browsing/settings/SafeBrowsingSettingsFragmentBase.java +++ b/chrome/browser/safe_browsing/android/java/src/org/chromium/chrome/browser/safe_browsing/settings/SafeBrowsingSettingsFragmentBase.java -@@ -64,6 +64,7 @@ public abstract class SafeBrowsingSettingsFragmentBase extends ChromeBaseSetting +@@ -66,6 +66,7 @@ public abstract class SafeBrowsingSettingsFragmentBase extends ChromeBaseSetting help.setIcon( TraceEventVectorDrawableCompat.create( getResources(), R.drawable.ic_help_24dp, getActivity().getTheme())); diff --git a/build/patches/Remove-navigator.connection-info.patch b/build/patches/Remove-navigator.connection-info.patch index 1055dcda..891f107a 100644 --- a/build/patches/Remove-navigator.connection-info.patch +++ b/build/patches/Remove-navigator.connection-info.patch @@ -60,7 +60,7 @@ diff --git a/third_party/blink/renderer/modules/netinfo/network_information.cc b diff --git a/third_party/blink/renderer/platform/network/network_state_notifier.cc b/third_party/blink/renderer/platform/network/network_state_notifier.cc --- a/third_party/blink/renderer/platform/network/network_state_notifier.cc +++ b/third_party/blink/renderer/platform/network/network_state_notifier.cc -@@ -106,6 +106,21 @@ NetworkStateNotifier::ScopedNotifier::~ScopedNotifier() { +@@ -105,6 +105,21 @@ NetworkStateNotifier::ScopedNotifier::~ScopedNotifier() { } } diff --git a/build/patches/Remove-segmentation-platform.patch b/build/patches/Remove-segmentation-platform.patch index f6dc97cd..4e7c45b6 100644 --- a/build/patches/Remove-segmentation-platform.patch +++ b/build/patches/Remove-segmentation-platform.patch @@ -48,8 +48,8 @@ diff --git a/components/segmentation_platform/public/features.cc b/components/se --- a/components/segmentation_platform/public/features.cc +++ b/components/segmentation_platform/public/features.cc @@ -243,4 +243,7 @@ constexpr base::FeatureParam kWindowTimeMinutes{&kAndroidTipsNotifications, - "window_time_minutes", - /*default_value=*/120}; + + BASE_FEATURE(kAndroidTipsNotificationsV2, base::FEATURE_DISABLED_BY_DEFAULT); +SET_CROMITE_FEATURE_DISABLED(kSegmentationPlatformFeature); +SET_CROMITE_FEATURE_DISABLED(kSegmentationPlatformFeedSegmentFeature); diff --git a/build/patches/Remove-support-for-device-memory-and-cpu-recovery.patch b/build/patches/Remove-support-for-device-memory-and-cpu-recovery.patch index 18ed0f99..733cdba5 100644 --- a/build/patches/Remove-support-for-device-memory-and-cpu-recovery.patch +++ b/build/patches/Remove-support-for-device-memory-and-cpu-recovery.patch @@ -139,14 +139,15 @@ diff --git a/storage/browser/quota/quota_device_info_helper.cc b/storage/browser diff --git a/third_party/blink/common/device_memory/approximated_device_memory.cc b/third_party/blink/common/device_memory/approximated_device_memory.cc --- a/third_party/blink/common/device_memory/approximated_device_memory.cc +++ b/third_party/blink/common/device_memory/approximated_device_memory.cc -@@ -4,13 +4,18 @@ +@@ -4,6 +4,7 @@ #include "third_party/blink/public/common/device_memory/approximated_device_memory.h" +#include "build/build_config.h" #include "base/check_op.h" + #include "base/feature_list.h" #include "base/system/sys_info.h" - +@@ -12,7 +13,11 @@ namespace blink { // static diff --git a/build/patches/Remove-voice-recognition-integration.patch b/build/patches/Remove-voice-recognition-integration.patch index bfc2bcb1..04ee356a 100644 --- a/build/patches/Remove-voice-recognition-integration.patch +++ b/build/patches/Remove-voice-recognition-integration.patch @@ -5,19 +5,19 @@ Subject: Remove voice recognition integration License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- .../BaseCustomTabRootUiCoordinator.java | 2 +- - .../chrome/browser/ntp/NewTabPage.java | 29 +-------- - .../browser/ntp/search/SearchBoxMediator.java | 1 - + .../chrome/browser/ntp/NewTabPage.java | 29 +------- + .../browser/ntp/search/SearchBoxMediator.java | 1 + .../browser/searchwidget/SearchActivity.java | 3 +- .../SearchActivityLocationBarLayout.java | 8 --- .../tabbed_mode/TabbedRootUiCoordinator.java | 2 +- .../browser/toolbar/ToolbarManager.java | 5 -- - .../ui/AdaptiveToolbarUiCoordinator.java | 48 -------------- + .../ui/AdaptiveToolbarUiCoordinator.java | 48 ------------- .../chrome/browser/ui/RootUiCoordinator.java | 18 ----- chrome/browser/ui/android/omnibox/BUILD.gn | 1 - .../chrome/browser/omnibox/LocationBar.java | 6 -- .../omnibox/LocationBarCoordinator.java | 14 +--- .../browser/omnibox/LocationBarLayout.java | 6 -- - .../browser/omnibox/LocationBarMediator.java | 65 ++----------------- + .../browser/omnibox/LocationBarMediator.java | 71 ++----------------- .../chrome/browser/omnibox/OmniboxStub.java | 8 --- .../suggestions/AutocompleteController.java | 25 ------- .../suggestions/AutocompleteCoordinator.java | 8 --- @@ -25,12 +25,12 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../omnibox/voice/VoiceRecognitionUtil.java | 1 + chrome/browser/ui/android/toolbar/BUILD.gn | 1 - .../toolbar/VoiceToolbarButtonController.java | 1 + - 21 files changed, 12 insertions(+), 250 deletions(-) + 21 files changed, 13 insertions(+), 255 deletions(-) diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabRootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabRootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabRootUiCoordinator.java -@@ -508,7 +508,7 @@ public class BaseCustomTabRootUiCoordinator extends RootUiCoordinator { +@@ -519,7 +519,7 @@ public class BaseCustomTabRootUiCoordinator extends RootUiCoordinator { mIntentDataProvider.get(), AppCompatResources.getDrawable(mActivity, R.drawable.ic_open_in_new_white_24dp), mOpenInBrowserRunnable, @@ -42,15 +42,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Base diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java -@@ -83,7 +83,6 @@ import org.chromium.chrome.browser.ntp_customization.theme.chrome_colors.NtpThem +@@ -80,7 +80,6 @@ import org.chromium.chrome.browser.ntp_customization.NtpCustomizationUtils.NtpBa + import org.chromium.chrome.browser.ntp_customization.theme.chrome_colors.NtpThemeColorInfo; import org.chromium.chrome.browser.ntp_customization.theme.upload_image.BackgroundImageInfo; - import org.chromium.chrome.browser.omnibox.OmniboxFocusReason; import org.chromium.chrome.browser.omnibox.OmniboxStub; -import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImpl; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.readaloud.ReadAloudController; -@@ -149,7 +148,6 @@ public class NewTabPage +@@ -148,7 +147,6 @@ public class NewTabPage TemplateUrlServiceObserver, BrowserControlsStateProvider.Observer, FeedSurfaceDelegate, @@ -92,7 +92,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. if (feedReliabilityLogger != null) { feedReliabilityLogger.onOmniboxFocused(); } -@@ -1102,12 +1091,6 @@ public class NewTabPage +@@ -1093,12 +1082,6 @@ public class NewTabPage mOmniboxStub.addUrlFocusChangeListener(feedReliabilityLogger); } } @@ -105,7 +105,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. } /** -@@ -1126,11 +1109,6 @@ public class NewTabPage +@@ -1117,11 +1100,6 @@ public class NewTabPage } } @@ -117,7 +117,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. /** Adds an observer to be notified on most visited tile clicks. */ public void addMostVisitedTileClickObserver(MostVisitedTileClickObserver observer) { mMostVisitedTileClickObservers.addObserver(observer); -@@ -1215,9 +1193,6 @@ public class NewTabPage +@@ -1206,9 +1184,6 @@ public class NewTabPage mOmniboxStub.removeUrlFocusChangeListener(feedReliabilityLogger); } mFeedSurfaceProvider.destroy(); @@ -130,26 +130,26 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/search/SearchBoxMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/search/SearchBoxMediator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/search/SearchBoxMediator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/search/SearchBoxMediator.java -@@ -91,7 +91,6 @@ class SearchBoxMediator implements DestroyObserver, NativeInitObserver { - mModel.set(SearchBoxProperties.VOICE_SEARCH_DRAWABLE, drawable); +@@ -91,6 +91,7 @@ class SearchBoxMediator implements DestroyObserver { - ColorStateList colorStateList = NtpCustomizationUtils.getSearchBoxIconColorTint(mContext); -- mModel.set(SearchBoxProperties.VOICE_SEARCH_COLOR_STATE_LIST, colorStateList); - } - - /** Called to set a click listener for the search box. */ + /** Called to add a click listener for the voice search button. */ + void addVoiceSearchButtonClickListener(OnClickListener listener) { ++ if ((true)) return; + boolean hasExistingListeners = !mVoiceSearchClickListeners.isEmpty(); + mVoiceSearchClickListeners.add(listener); + if (hasExistingListeners) return; diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java -@@ -71,7 +71,6 @@ import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; +@@ -72,7 +72,6 @@ import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; import org.chromium.chrome.browser.tab.TabFavicon; import org.chromium.chrome.browser.tabmodel.TabModelSelector; import org.chromium.chrome.browser.tabwindow.TabWindowInfo; -import org.chromium.chrome.browser.toolbar.VoiceToolbarButtonController; + import org.chromium.chrome.browser.ui.edge_to_edge.NoOpTopInsetProvider; import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarManageable; - import org.chromium.chrome.browser.ui.native_page.NativePage; -@@ -333,7 +332,7 @@ public class SearchActivity extends AsyncInitializationActivity +@@ -337,7 +336,7 @@ public class SearchActivity extends AsyncInitializationActivity this::bringTabGroupToFront, /*omniboxUma*/ (url, transition, isNtp) -> {}, /* bookmarkState= */ (url) -> false, @@ -161,7 +161,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivityLocationBarLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivityLocationBarLayout.java --- a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivityLocationBarLayout.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivityLocationBarLayout.java -@@ -27,7 +27,6 @@ import org.chromium.chrome.browser.omnibox.UrlBarData; +@@ -26,7 +26,6 @@ import org.chromium.chrome.browser.omnibox.UrlBarData; import org.chromium.chrome.browser.omnibox.status.StatusCoordinator; import org.chromium.chrome.browser.omnibox.styles.OmniboxResourceProvider; import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteCoordinator; @@ -169,7 +169,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se import org.chromium.chrome.browser.toolbar.top.ToolbarPhone; import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityExtras.IntentOrigin; import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityExtras.SearchType; -@@ -213,13 +212,6 @@ public class SearchActivityLocationBarLayout extends LocationBarLayout { +@@ -214,13 +213,6 @@ public class SearchActivityLocationBarLayout extends LocationBarLayout { return false; } @@ -186,7 +186,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java -@@ -1027,7 +1027,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1107,7 +1107,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { mTabBookmarkerSupplier, mBookmarkModelSupplier, mActivityTabProvider, @@ -198,7 +198,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java -@@ -123,7 +123,6 @@ import org.chromium.chrome.browser.omnibox.OmniboxStub; +@@ -121,7 +121,6 @@ import org.chromium.chrome.browser.omnibox.OmniboxStub; import org.chromium.chrome.browser.omnibox.OverrideUrlLoadingDelegateImpl; import org.chromium.chrome.browser.omnibox.UrlFocusChangeListener; import org.chromium.chrome.browser.omnibox.suggestions.OmniboxSuggestionsDropdownScrollListener; @@ -206,7 +206,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar import org.chromium.chrome.browser.page_info.ChromePageInfo; import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations; import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; -@@ -3336,10 +3335,6 @@ public class ToolbarManager +@@ -3302,10 +3301,6 @@ public class ToolbarManager return mLocationBar.getOmniboxStub(); } @@ -220,7 +220,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveToolbarUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveToolbarUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveToolbarUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveToolbarUiCoordinator.java -@@ -26,8 +26,6 @@ import org.chromium.chrome.browser.dom_distiller.ReaderModeIphController; +@@ -29,8 +29,6 @@ import org.chromium.chrome.browser.dom_distiller.ReaderModeIphController; import org.chromium.chrome.browser.dom_distiller.ReaderModeToolbarButtonController; import org.chromium.chrome.browser.identity_disc.IdentityDiscController; import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher; @@ -229,7 +229,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveTool import org.chromium.chrome.browser.price_history.PriceHistoryBottomSheetContentCoordinator; import org.chromium.chrome.browser.price_insights.PriceInsightsButtonController; import org.chromium.chrome.browser.price_tracking.CurrentTabPriceTrackingStateSupplier; -@@ -40,7 +38,6 @@ import org.chromium.chrome.browser.segmentation_platform.ContextualPageActionCon +@@ -43,7 +41,6 @@ import org.chromium.chrome.browser.segmentation_platform.ContextualPageActionCon import org.chromium.chrome.browser.share.ShareButtonController; import org.chromium.chrome.browser.share.ShareDelegate; import org.chromium.chrome.browser.tabmodel.TabModelSelector; @@ -237,15 +237,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveTool import org.chromium.chrome.browser.toolbar.adaptive.AdaptiveButtonActionMenuCoordinator; import org.chromium.chrome.browser.toolbar.adaptive.AdaptiveToolbarBehavior; import org.chromium.chrome.browser.toolbar.adaptive.AdaptiveToolbarButtonController; -@@ -72,7 +69,6 @@ public class AdaptiveToolbarUiCoordinator { +@@ -76,7 +73,6 @@ public class AdaptiveToolbarUiCoordinator { private CurrentTabPriceTrackingStateSupplier mCurrentTabPriceTrackingStateSupplier; private ContextualPageActionController mContextualPageActionController; private AdaptiveToolbarButtonController mAdaptiveToolbarButtonController; - private VoiceToolbarButtonController mVoiceToolbarButtonController; private BottomSheetController mBottomSheetController; - private ObservableSupplier mProfileSupplier; + private MonotonicObservableSupplier mProfileSupplier; private Supplier mScrimSupplier; -@@ -236,45 +232,6 @@ public class AdaptiveToolbarUiCoordinator { +@@ -249,45 +245,6 @@ public class AdaptiveToolbarUiCoordinator { } } @@ -291,7 +291,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveTool /** * Returns the list of {@link ButtonDataProvider}. The order in which the providers determines * which one will be shown first. -@@ -288,11 +245,6 @@ public class AdaptiveToolbarUiCoordinator { +@@ -301,11 +258,6 @@ public class AdaptiveToolbarUiCoordinator { return mContextualPageActionController; } @@ -306,15 +306,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveTool diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java -@@ -122,7 +122,6 @@ import org.chromium.chrome.browser.ntp_customization.edge_to_edge.TopInsetCoordi +@@ -125,7 +125,6 @@ import org.chromium.chrome.browser.ntp_customization.edge_to_edge.TopInsetCoordi import org.chromium.chrome.browser.omnibox.OmniboxActionDelegateImpl; - import org.chromium.chrome.browser.omnibox.OmniboxFocusReason; + import org.chromium.chrome.browser.omnibox.OmniboxChipManager; import org.chromium.chrome.browser.omnibox.geo.GeolocationHeader; -import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; - import org.chromium.chrome.browser.paint_preview.DemoPaintPreview; - import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer; - import org.chromium.chrome.browser.password_manager.PasswordManagerLauncher; -@@ -343,7 +342,6 @@ public class RootUiCoordinator + import org.chromium.chrome.browser.open_in_app.OpenInAppEntryPoint; + import org.chromium.chrome.browser.open_in_app.OpenInAppMenuItemProvider; + import org.chromium.chrome.browser.open_in_app.OpenInAppUtils; +@@ -354,7 +353,6 @@ public class RootUiCoordinator private LayoutManagerImpl mLayoutManager; protected OneshotSupplier mIntentMetadataOneshotSupplier; protected OneshotSupplierImpl mPromoShownOneshotSupplier = new OneshotSupplierImpl<>(); @@ -322,7 +322,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi private MediaCaptureOverlayController mCaptureController; private @Nullable ScrollCaptureManager mScrollCaptureManager; protected final ActivityLifecycleDispatcher mActivityLifecycleDispatcher; -@@ -821,9 +819,6 @@ public class RootUiCoordinator +@@ -836,9 +834,6 @@ public class RootUiCoordinator } if (mToolbarManager != null) { @@ -332,7 +332,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi mToolbarManager.destroy(); mToolbarManager = null; } -@@ -1813,23 +1808,10 @@ public class RootUiCoordinator +@@ -1900,23 +1895,10 @@ public class RootUiCoordinator if (!mSupportsAppMenuSupplier.getAsBoolean()) { mToolbarManager.getToolbar().disableMenuButton(); } @@ -359,7 +359,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/android/omnibox/BUILD.gn --- a/chrome/browser/ui/android/omnibox/BUILD.gn +++ b/chrome/browser/ui/android/omnibox/BUILD.gn -@@ -165,7 +165,6 @@ android_library("java") { +@@ -166,7 +166,6 @@ android_library("java") { "java/src/org/chromium/chrome/browser/omnibox/suggestions/tail/TailSuggestionView.java", "java/src/org/chromium/chrome/browser/omnibox/suggestions/tail/TailSuggestionViewBinder.java", "java/src/org/chromium/chrome/browser/omnibox/suggestions/tail/TailSuggestionViewProperties.java", @@ -393,7 +393,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java -@@ -60,7 +60,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.OmniboxLoadUrlParams; +@@ -62,7 +62,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.OmniboxLoadUrlParams; import org.chromium.chrome.browser.omnibox.suggestions.OmniboxSuggestionsDropdownScrollListener; import org.chromium.chrome.browser.omnibox.suggestions.OmniboxSuggestionsVisualState; import org.chromium.chrome.browser.omnibox.suggestions.basic.BasicSuggestionProcessor.BookmarkState; @@ -401,7 +401,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; import org.chromium.chrome.browser.share.ShareDelegate; -@@ -633,12 +632,6 @@ public class LocationBarCoordinator +@@ -642,12 +641,6 @@ public class LocationBarCoordinator return mLocationBarLayout.getSecurityIconView(); } @@ -414,7 +414,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow @Override public @Nullable OmniboxStub getOmniboxStub() { return mLocationBarMediator; -@@ -802,7 +795,7 @@ public class LocationBarCoordinator +@@ -804,7 +797,7 @@ public class LocationBarCoordinator public void startAutocompletePrefetch() { if (!mNativeInitialized) return; mAutocompleteCoordinator.prefetchZeroSuggestResults( @@ -423,7 +423,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow } /** -@@ -1014,11 +1007,6 @@ public class LocationBarCoordinator +@@ -1016,11 +1009,6 @@ public class LocationBarCoordinator // End tablet-specific methods. @@ -438,7 +438,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarLayout.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarLayout.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarLayout.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarLayout.java -@@ -30,7 +30,6 @@ import org.chromium.chrome.browser.omnibox.status.StatusCoordinator; +@@ -31,7 +31,6 @@ import org.chromium.chrome.browser.omnibox.status.StatusCoordinator; import org.chromium.chrome.browser.omnibox.status.StatusView; import org.chromium.chrome.browser.omnibox.styles.OmniboxResourceProvider; import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteCoordinator; @@ -446,7 +446,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.components.browser_ui.widget.CompositeTouchDelegate; import org.chromium.components.embedder_support.util.UrlUtilities; import org.chromium.ui.base.DeviceFormFactor; -@@ -506,11 +505,6 @@ public class LocationBarLayout extends ConstraintLayout { +@@ -511,11 +510,6 @@ public class LocationBarLayout extends ConstraintLayout { mSearchEngineUtils = searchEngineUtils; } @@ -469,7 +469,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.prefetch.settings.PreloadPagesSettingsBridge; import org.chromium.chrome.browser.prefetch.settings.PreloadPagesState; import org.chromium.chrome.browser.profiles.Profile; -@@ -126,8 +125,6 @@ import java.util.function.Supplier; +@@ -128,8 +127,6 @@ import java.util.function.Supplier; class LocationBarMediator implements LocationBarDataProvider.Observer, OmniboxStub, @@ -478,7 +478,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow UrlBarDelegate, OnKeyListener, FuseboxAttachmentChangeListener, -@@ -187,7 +184,6 @@ class LocationBarMediator +@@ -189,7 +186,6 @@ class LocationBarMediator }; private final LocationBarLayout mLocationBarLayout; @@ -486,7 +486,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow private final LocationBarDataProvider mLocationBarDataProvider; private final @Nullable BrowserControlsStateProvider mBrowserControlsStateProvider; private final LocationBarEmbedderUiOverrides mEmbedderUiOverrides; -@@ -285,8 +281,6 @@ class LocationBarMediator +@@ -291,8 +287,6 @@ class LocationBarMediator mEmbedderUiOverrides = embedderUiOverrides; mOverrideUrlLoadingDelegate = overrideUrlLoadingDelegate; mLocaleManager = localeManager; @@ -495,7 +495,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow mProfileSupplier = profileSupplier; mProfileSupplier.addObserver(mCallbackController.makeCancelable(this::setProfile)); mTemplateUrlServiceSupplier = templateUrlServiceSupplier; -@@ -389,9 +383,6 @@ class LocationBarMediator +@@ -393,9 +387,6 @@ class LocationBarMediator mStatusCoordinator = null; mAutocompleteCoordinator = null; mUrlCoordinator = null; @@ -505,7 +505,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow mLocationBarDataProvider.removeObserver(this); mDeferredNativeRunnables.clear(); mUrlFocusChangeListeners.clear(); -@@ -533,11 +524,6 @@ class LocationBarMediator +@@ -535,11 +526,6 @@ class LocationBarMediator mLocationBarLayout.setUnfocusedWidth(unfocusedWidth); } @@ -517,7 +517,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow /* package */ void setLensControllerForTesting(LensController lensController) { mLensController = lensController; } -@@ -860,10 +846,6 @@ class LocationBarMediator +@@ -894,10 +880,6 @@ class LocationBarMediator // Hide keyboard before launch voice search to avoid keyboard action announcement in // TalkBack to be picked up by voice search. mUrlCoordinator.setKeyboardVisibility(false, false); @@ -528,8 +528,8 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow } /** package */ -@@ -1550,10 +1532,7 @@ class LocationBarMediator - } +@@ -1669,10 +1651,7 @@ class LocationBarMediator + if (mCurrentInput != null && !mCurrentInput.isConventionalRequestType()) return false; if (isUrlBarFocusedWithUserInput()) return false; - if (!mNativeInitialized @@ -540,16 +540,16 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow return false; } boolean isToolbarMicEnabled = mIsToolbarMicEnabledSupplier.getAsBoolean(); -@@ -1571,6 +1550,7 @@ class LocationBarMediator +@@ -1690,6 +1669,7 @@ class LocationBarMediator @VisibleForTesting boolean shouldShowLensButton() { + if ((true)) return false; - if (mAutocompleteRequestTypeSupplier.get() != AutocompleteRequestType.SEARCH) { - return false; - } -@@ -1907,11 +1887,6 @@ class LocationBarMediator - } + if (mCurrentInput != null && !mCurrentInput.isConventionalRequestType()) return false; + + if (isUrlBarFocusedWithUserInput()) return false; +@@ -1966,11 +1946,6 @@ class LocationBarMediator + refreshAutocompleteForCurrentInput(); } - @Override @@ -560,24 +560,23 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow @Override public void addUrlFocusChangeListener(UrlFocusChangeListener listener) { mUrlFocusChangeListeners.addObserver(listener); -@@ -1927,7 +1902,7 @@ class LocationBarMediator - return mUrlHasFocus; +@@ -1987,33 +1962,13 @@ class LocationBarMediator } + /** {@see VoiceRecognitionHandler.Delegate#clearOmniboxFocus()} */ - @Override + // @Override public void clearOmniboxFocus() { - setUrlBarFocus( - /* shouldBeFocused= */ false, -@@ -1936,25 +1911,7 @@ class LocationBarMediator - AutocompleteRequestType.SEARCH); + setUrlBarFocus(null); } +- /** {@see VoiceRecognitionHandler.Delegate#notifyVoiceRecognitionCanceled()} */ - @Override - public void notifyVoiceRecognitionCanceled() {} - - // VoiceRecognitionHandler.Delegate implementation. - +- /** {@see VoiceRecognitionHandler.Delegate#loadUrlFromVoice(String)} */ - @Override - public void loadUrlFromVoice(String url) { - loadUrl( @@ -591,32 +590,37 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow - updateButtonVisibility(); - } - + /** {@see VoiceRecognitionHandler.Delegate#setSearchQuery(String)} */ - @Override + // @Override public void setSearchQuery(String query) { - if (TextUtils.isEmpty(query)) return; - -@@ -1978,20 +1935,6 @@ class LocationBarMediator + // TODO(crbug.com/477922724): Remove VoiceRecognitionHandler.Delegate and make VRH use the + // OmniboxStub directly. +@@ -2032,24 +1987,6 @@ class LocationBarMediator mUrlCoordinator.setKeyboardVisibility(true, false); } +- /** {@see VoiceRecognitionHandler.Delegate#getLocationBarDataProvider()} */ - @Override - public LocationBarDataProvider getLocationBarDataProvider() { - return mLocationBarDataProvider; - } - +- /** {@see VoiceRecognitionHandler.Delegate#getAutocompleteCoordinator()} */ - @Override - public AutocompleteCoordinator getAutocompleteCoordinator() { - return mAutocompleteCoordinator; - } - +- /** {@see VoiceRecognitionHandler.Delegate#getWindowAndroid()} */ - @Override - public WindowAndroid getWindowAndroid() { - return mWindowAndroid; - } - +- // UrlBarDelegate implementation. + @Override diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/OmniboxStub.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/OmniboxStub.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/OmniboxStub.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/OmniboxStub.java @@ -625,10 +629,10 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.build.annotations.Nullable; import org.chromium.chrome.browser.lens.LensEntryPoint; -import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; - import org.chromium.components.omnibox.AutocompleteRequestType; + import org.chromium.components.omnibox.AutocompleteInput; - import java.util.List; -@@ -47,13 +46,6 @@ public interface OmniboxStub { + /** +@@ -33,13 +32,6 @@ public interface OmniboxStub { */ boolean isUrlBarFocused(); @@ -648,7 +652,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow @@ -15,7 +15,6 @@ import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; import org.chromium.chrome.browser.omnibox.OmniboxMetrics; - import org.chromium.chrome.browser.omnibox.fusebox.ComposeBoxQueryControllerBridge; + import org.chromium.chrome.browser.omnibox.fusebox.ComposeboxQueryControllerBridge; -import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler.VoiceResult; import org.chromium.chrome.browser.preloading.PreloadingFeatureMap; import org.chromium.chrome.browser.profiles.Profile; @@ -702,7 +706,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.share.ShareDelegate; import org.chromium.chrome.browser.tab.Tab; -@@ -301,13 +300,6 @@ public class AutocompleteCoordinator implements OmniboxSuggestionsVisualState { +@@ -325,13 +324,6 @@ public class AutocompleteCoordinator implements OmniboxSuggestionsVisualState { } } @@ -719,7 +723,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java -@@ -46,7 +46,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteDelegate.Auto +@@ -47,7 +47,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteDelegate.Auto import org.chromium.chrome.browser.omnibox.suggestions.action.OmniboxActionFactoryImpl; import org.chromium.chrome.browser.omnibox.suggestions.action.OmniboxActionInSuggest; import org.chromium.chrome.browser.omnibox.suggestions.basic.BasicSuggestionProcessor.BookmarkState; @@ -727,7 +731,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.preloading.PreloadingFeatureMap; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.share.ShareDelegate; -@@ -541,15 +540,6 @@ class AutocompleteMediator +@@ -579,15 +578,6 @@ class AutocompleteMediator mShouldPreventOmniboxAutocomplete = prevent; } @@ -757,7 +761,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/toolbar/BUILD.gn b/chrome/browser/ui/android/toolbar/BUILD.gn --- a/chrome/browser/ui/android/toolbar/BUILD.gn +++ b/chrome/browser/ui/android/toolbar/BUILD.gn -@@ -39,7 +39,6 @@ android_library("java") { +@@ -39,7 +39,6 @@ android_library("core_java") { "java/src/org/chromium/chrome/browser/toolbar/ToolbarResourceUtils.java", "java/src/org/chromium/chrome/browser/toolbar/ToolbarTabController.java", "java/src/org/chromium/chrome/browser/toolbar/ToolbarTabControllerImpl.java", diff --git a/build/patches/Remove-window-name-on-cross-origin-navigation.patch b/build/patches/Remove-window-name-on-cross-origin-navigation.patch index 41974d6a..e39c0d2c 100644 --- a/build/patches/Remove-window-name-on-cross-origin-navigation.patch +++ b/build/patches/Remove-window-name-on-cross-origin-navigation.patch @@ -34,7 +34,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc --- a/third_party/blink/renderer/core/loader/document_loader.cc +++ b/third_party/blink/renderer/core/loader/document_loader.cc -@@ -2990,7 +2990,8 @@ void DocumentLoader::CommitNavigation() { +@@ -2982,7 +2982,8 @@ void DocumentLoader::CommitNavigation() { // that the name would be nulled and if the name is accessed after we will // fire a UseCounter. If we decide to move forward with this change, we'd // actually clean the name here. @@ -44,7 +44,7 @@ diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_p frame_->Tree().ExperimentalSetNulledName(); } -@@ -3001,6 +3002,7 @@ void DocumentLoader::CommitNavigation() { +@@ -2993,6 +2994,7 @@ void DocumentLoader::CommitNavigation() { // TODO(shuuran): CrossSiteCrossBrowsingContextGroupSetNulledName will just // record the fact that the name would be nulled and if the name is accessed // after we will fire a UseCounter. diff --git a/build/patches/Replace-DoH-probe-domain-with-RIPE-domain.patch b/build/patches/Replace-DoH-probe-domain-with-RIPE-domain.patch index b50a1514..a66d005d 100644 --- a/build/patches/Replace-DoH-probe-domain-with-RIPE-domain.patch +++ b/build/patches/Replace-DoH-probe-domain-with-RIPE-domain.patch @@ -25,7 +25,7 @@ diff --git a/chrome/browser/net/dns_probe_runner.cc b/chrome/browser/net/dns_pro diff --git a/net/dns/dns_transaction.h b/net/dns/dns_transaction.h --- a/net/dns/dns_transaction.h +++ b/net/dns/dns_transaction.h -@@ -28,7 +28,7 @@ class NetLogWithSource; +@@ -27,7 +27,7 @@ class NetLogWithSource; class ResolveContext; // The hostname probed by CreateDohProbeRunner(). diff --git a/build/patches/Restore-LastTabStandingTracker.patch b/build/patches/Restore-LastTabStandingTracker.patch index adeae19e..35c24de2 100644 --- a/build/patches/Restore-LastTabStandingTracker.patch +++ b/build/patches/Restore-LastTabStandingTracker.patch @@ -27,7 +27,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -1531,6 +1531,16 @@ static_library("browser") { +@@ -1507,6 +1507,16 @@ static_library("browser") { "webdata_services/web_data_service_factory.cc", ] @@ -58,7 +58,7 @@ diff --git a/chrome/browser/content_settings/host_content_settings_map_factory.c @@ -65,6 +66,7 @@ HostContentSettingsMapFactory::HostContentSettingsMapFactory() .WithAshInternals(ProfileSelection::kOwnInstance) .Build()) { - DependsOn(SupervisedUserSettingsServiceFactory::GetInstance()); + DependsOn(supervised_user::FamilyLinkSettingsServiceFactory::GetInstance()); + DependsOn(LastTabStandingTrackerFactory::GetInstance()); #if BUILDFLAG(IS_ANDROID) DependsOn( @@ -383,7 +383,7 @@ new file mode 100644 diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc -@@ -140,6 +140,7 @@ +@@ -141,6 +141,7 @@ #include "chrome/browser/password_manager/profile_password_store_factory.h" #include "chrome/browser/payments/browser_binding/browser_bound_key_deleter_service_factory.h" #include "chrome/browser/performance_manager/persistence/site_data/site_data_cache_facade_factory.h" @@ -391,7 +391,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc #include "chrome/browser/permissions/notifications_engagement_service_factory.h" #include "chrome/browser/permissions/one_time_permissions_tracker_factory.h" #include "chrome/browser/permissions/origin_keyed_permission_action_service_factory.h" -@@ -1116,6 +1117,7 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -1129,6 +1130,7 @@ void ChromeBrowserMainExtraPartsProfiles:: #if BUILDFLAG(BUILD_WITH_TFLITE_LIB) OnDeviceTailModelServiceFactory::GetInstance(); #endif @@ -402,7 +402,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc --- a/chrome/browser/ui/tab_helpers.cc +++ b/chrome/browser/ui/tab_helpers.cc -@@ -50,6 +50,7 @@ +@@ -53,6 +53,7 @@ #include "chrome/browser/page_info/page_info_features.h" #include "chrome/browser/page_load_metrics/page_load_metrics_initialize.h" #include "chrome/browser/password_manager/chrome_password_manager_client.h" @@ -410,7 +410,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc #include "chrome/browser/permissions/one_time_permissions_tracker_helper.h" #include "chrome/browser/picture_in_picture/auto_picture_in_picture_tab_helper.h" #include "chrome/browser/predictors/loading_predictor_factory.h" -@@ -444,6 +445,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -445,6 +446,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { HistoryEmbeddingsTabHelper::CreateForWebContents(web_contents); HttpsOnlyModeTabHelper::CreateForWebContents(web_contents); webapps::InstallableManager::CreateForWebContents(web_contents); diff --git a/build/patches/Restore-Search-Ready-Omnibox-flag.patch b/build/patches/Restore-Search-Ready-Omnibox-flag.patch index c4129e21..7a558320 100644 --- a/build/patches/Restore-Search-Ready-Omnibox-flag.patch +++ b/build/patches/Restore-Search-Ready-Omnibox-flag.patch @@ -23,7 +23,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 -@@ -397,6 +397,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -402,6 +402,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kRecordIncognitoNtpTimeToFirstNavigationMetric, &kRecordSuppressionMetrics, &kReengagementNotification, @@ -34,7 +34,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse 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 -@@ -488,6 +488,7 @@ public abstract class ChromeFeatureList { +@@ -496,6 +496,7 @@ public abstract class ChromeFeatureList { "MayLaunchUrlUsesSeparateStoragePartition"; public static final String MEDIA_INDICATORS_ANDROID = "MediaIndicatorsAndroid"; public static final String MOST_VISITED_TILES_CUSTOMIZATION = "MostVisitedTilesCustomization"; @@ -48,7 +48,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow @@ -57,6 +57,7 @@ class DropdownItemViewInfoListBuilder { private @Nullable OmniboxImageSupplier mImageSupplier; private final BookmarkState mBookmarkState; - private final ObservableSupplier<@ControlsPosition Integer> mToolbarPositionSupplier; + private final MonotonicObservableSupplier<@ControlsPosition Integer> mToolbarPositionSupplier; + private EditUrlSuggestionProcessor mEditUrlSuggestionProcessor; DropdownItemViewInfoListBuilder( diff --git a/build/patches/Restore-Simplified-NTP-launch.patch b/build/patches/Restore-Simplified-NTP-launch.patch index 5a9f367f..ad5b9d8f 100644 --- a/build/patches/Restore-Simplified-NTP-launch.patch +++ b/build/patches/Restore-Simplified-NTP-launch.patch @@ -80,15 +80,15 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja "java/res/drawable-hdpi/ic_phone_googblue_36dp.png", "java/res/drawable-hdpi/ic_photo_camera.png", "java/res/drawable-hdpi/ic_place_googblue_36dp.png", -@@ -538,6 +543,7 @@ chrome_java_resources = [ - "java/res/layout/manage_sync_settings_bottom_bar.xml", +@@ -545,6 +550,7 @@ chrome_java_resources = [ + "java/res/layout/manage_space_activity.xml", "java/res/layout/material_tooltip.xml", "java/res/layout/multiline_spinner_item.xml", + "java/res/layout/mv_tiles_container.xml", "java/res/layout/mv_tiles_layout.xml", "java/res/layout/navigation_bubble.xml", "java/res/layout/navigation_sheet.xml", -@@ -547,8 +553,10 @@ chrome_java_resources = [ +@@ -554,8 +560,10 @@ chrome_java_resources = [ "java/res/layout/new_custom_tab_toolbar.xml", "java/res/layout/new_tab_page_incognito.xml", "java/res/layout/new_tab_page_layout.xml", @@ -102,7 +102,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 -@@ -634,6 +634,7 @@ chrome_java_sources = [ +@@ -639,6 +639,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/feedback/FeedFeedbackCollector.java", "java/src/org/chromium/chrome/browser/feedback/HelpAndFeedbackLauncherImpl.java", "java/src/org/chromium/chrome/browser/feedback/ScreenshotTask.java", @@ -110,7 +110,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java "java/src/org/chromium/chrome/browser/findinpage/FindToolbar.java", "java/src/org/chromium/chrome/browser/findinpage/FindToolbarManager.java", "java/src/org/chromium/chrome/browser/findinpage/FindToolbarObserver.java", -@@ -1071,6 +1072,7 @@ chrome_java_sources = [ +@@ -1081,6 +1082,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesMetadataUtils.java", "java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesCoordinator.java", "java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesLayout.java", @@ -571,12 +571,12 @@ diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res + 6dp + 4dp 20dp - @dimen/signin_promo_lateral_paddings 17dp + 22dp diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -3472,7 +3472,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt +@@ -3593,7 +3593,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt mRootUiCoordinator.getExclusiveAccessManager(), mBackPressManager, mMultiInstanceManager, @@ -607,7 +607,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDe * {@link TabDelegateFactory} class to be used in all {@link Tab} instances owned by a {@link * ChromeTabbedActivity}. @@ -92,6 +95,8 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory { - private final ObservableSupplier mTopInsetCoordinatorSupplier; + private final TopInsetProvider mTopInsetProvider; private final StartupMetricsTracker mStartupMetricsTracker; private final @Nullable ExclusiveAccessManager mExclusiveAccessManager; + private final ObservableSupplier mBookmarkManagerOpenerSupplier; @@ -700,7 +700,7 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/IdentityDiscController.java b/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/IdentityDiscController.java --- a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/IdentityDiscController.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/IdentityDiscController.java -@@ -151,7 +151,10 @@ public class IdentityDiscController +@@ -152,7 +152,10 @@ public class IdentityDiscController mButtonData.setButtonSpec( buttonSpecWithDrawableAndDescription(mButtonData.getButtonSpec(), email)); @@ -732,8 +732,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider; import org.chromium.chrome.browser.flags.ChromeFeatureList; @@ -104,6 +106,7 @@ public class NativePageFactory { - private final ObservableSupplier mEdgeToEdgeControllerSupplier; - private final ObservableSupplier mTopInsetCoordinatorSupplier; + private final MonotonicObservableSupplier mEdgeToEdgeControllerSupplier; + private final TopInsetProvider mTopInsetProvider; private final StartupMetricsTracker mStartupMetricsTracker; + private final ObservableSupplier mBookmarkManagerOpenerSupplier; private @Nullable NewTabPageCreationTracker mNewTabPageCreationTracker; @@ -767,7 +767,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat } return mNativePageBuilder; } -@@ -223,9 +229,10 @@ public class NativePageFactory { +@@ -224,9 +230,10 @@ public class NativePageFactory { private final BackPressManager mBackPressManager; private final MultiInstanceManager mMultiInstanceManager; private final RecentlyClosedEntriesManager mRecentlyClosedEntriesManager; @@ -779,7 +779,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat Supplier newTabPageCreationTracker, BottomSheetController sheetController, BrowserControlsManager browserControlsManager, -@@ -247,7 +254,8 @@ public class NativePageFactory { +@@ -248,7 +255,8 @@ public class NativePageFactory { StartupMetricsTracker startupMetricsTracker, BackPressManager backPressManager, MultiInstanceManager multiInstanceManager, @@ -789,7 +789,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat mActivity = activity; mNewTabPageCreationTracker = newTabPageCreationTracker; mBottomSheetController = sheetController; -@@ -271,6 +279,7 @@ public class NativePageFactory { +@@ -272,6 +280,7 @@ public class NativePageFactory { mBackPressManager = backPressManager; mMultiInstanceManager = multiInstanceManager; mRecentlyClosedEntriesManager = recentlyClosedEntriesManager; @@ -797,9 +797,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat } protected NativePage buildNewTabPage(Tab tab, String url) { -@@ -315,7 +324,8 @@ public class NativePageFactory { +@@ -316,7 +325,8 @@ public class NativePageFactory { mEdgeToEdgeControllerSupplier, - mTopInsetCoordinatorSupplier, + mTopInsetProvider, mStartupMetricsTracker, - mMultiInstanceManager); + mMultiInstanceManager, @@ -822,7 +822,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java -@@ -137,6 +137,9 @@ import org.chromium.ui.base.WindowAndroid; +@@ -136,6 +136,9 @@ import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.modaldialog.ModalDialogManager; import org.chromium.url.GURL; @@ -832,9 +832,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. import java.util.List; import java.util.function.Supplier; -@@ -544,7 +547,8 @@ public class NewTabPage - ObservableSupplier edgeToEdgeControllerSupplier, - ObservableSupplier topInsetCoordinatorSupplier, +@@ -548,7 +551,8 @@ public class NewTabPage + MonotonicObservableSupplier edgeToEdgeControllerSupplier, + TopInsetProvider topInsetProvider, StartupMetricsTracker startupMetricsTracker, - MultiInstanceManager multiInstanceManager) { + MultiInstanceManager multiInstanceManager, @@ -842,7 +842,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. mConstructedTimeNs = System.nanoTime(); TraceEvent.begin(TAG); -@@ -573,7 +577,7 @@ public class NewTabPage +@@ -578,7 +582,7 @@ public class NewTabPage nativePageHost, tabModelSelector, mTab, @@ -854,7 +854,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java -@@ -13,6 +13,7 @@ import android.graphics.Rect; +@@ -14,6 +14,7 @@ import android.graphics.Rect; import android.text.Editable; import android.util.AttributeSet; import android.view.DragEvent; @@ -878,7 +878,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL import org.chromium.chrome.browser.tab_ui.InvalidationAwareThumbnailProvider; import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; import org.chromium.chrome.browser.ui.native_page.TouchEnabledDelegate; -@@ -123,6 +126,8 @@ public class NewTabPageLayout extends LinearLayout +@@ -120,6 +123,8 @@ public class NewTabPageLayout extends LinearLayout private @Nullable DisplayStyleObserver mDisplayStyleObserver; private CallbackController mCallbackController = new CallbackController(); @@ -887,7 +887,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL /** * Whether the tiles shown in the layout have finished loading. * With {@link #mHasShownView}, it's one of the 2 flags used to track initialisation progress. -@@ -135,7 +140,7 @@ public class NewTabPageLayout extends LinearLayout +@@ -132,14 +137,14 @@ public class NewTabPageLayout extends LinearLayout */ private boolean mHasShownView; @@ -895,8 +895,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL + private boolean mSearchProviderHasLogo = false; private boolean mSearchProviderIsGoogle; private boolean mShowingNonStandardGoogleLogo; - private boolean mIsOmniboxMobileParityUpdateV2Enabled; -@@ -143,7 +148,7 @@ public class NewTabPageLayout extends LinearLayout + private boolean mInitialized; private float mUrlFocusChangePercent; @@ -905,15 +904,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL private boolean mIsViewMoving; /** Flag used to request some layout changes after the next layout pass is completed. */ -@@ -336,6 +341,7 @@ public class NewTabPageLayout extends LinearLayout +@@ -310,6 +315,7 @@ public class NewTabPageLayout extends LinearLayout initializeMostVisitedTilesCoordinator( mProfile, lifecycleDispatcher, tileGroupDelegate, touchEnabledDelegate); - initializeDseIconView(shouldShowDseIcon()); + initializeDseIconView(); + initializeShortcuts(); initializeSearchBoxTextView(); initializeVoiceSearchButton(); initializeLensButton(); -@@ -785,8 +791,8 @@ public class NewTabPageLayout extends LinearLayout +@@ -776,8 +782,8 @@ public class NewTabPageLayout extends LinearLayout private void calculateTabletMvtWidth(int totalWidth) { if (mMvTilesContainerLayout.getVisibility() == GONE) return; @@ -924,16 +923,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL updateMvtOnTablet(); } -@@ -836,7 +842,7 @@ public class NewTabPageLayout extends LinearLayout - && mInitialized) { +@@ -828,7 +834,7 @@ public class NewTabPageLayout extends LinearLayout return; } + boolean isSearchProviderIsGoogleChanged = mSearchProviderIsGoogle != isGoogle; - mSearchProviderHasLogo = hasLogo; + mSearchProviderHasLogo = false; mSearchProviderIsGoogle = isGoogle; if (!mSearchProviderIsGoogle) { -@@ -880,6 +886,7 @@ public class NewTabPageLayout extends LinearLayout +@@ -893,6 +899,7 @@ public class NewTabPageLayout extends LinearLayout * @param disable Whether to disable the animations. */ void setUrlFocusAnimationsDisabled(boolean disable) { @@ -941,7 +940,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL if (disable == mDisableUrlFocusChangeAnimations) return; mDisableUrlFocusChangeAnimations = disable; if (!disable) onUrlFocusAnimationChanged(); -@@ -1281,6 +1288,22 @@ public class NewTabPageLayout extends LinearLayout +@@ -1284,6 +1291,22 @@ public class NewTabPageLayout extends LinearLayout return mMostVisitedTilesCoordinator; } @@ -971,7 +970,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/Sug * Maximum number of tiles that is explicitly supported. UMA relies on this value, so even if * the UI supports it, getting more can raise unexpected issues. */ -- public static final int MAX_TILE_COUNT = 12; +- public static final int MAX_TILE_COUNT = 8; + public static final int MAX_TILE_COUNT = 24; /** Maximum number of custom tiles supported. In C++ backend this is `kMaxNumCustomLinks`. */ @@ -1526,7 +1525,7 @@ diff --git a/chrome/browser/engagement/important_sites_util.cc b/chrome/browser/ 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 -@@ -348,6 +348,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -356,6 +356,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kKeyboardEscBackNavigation, &kLaunchCauseScreenOffFix, &kLensOnQuickActionSearchWidget, @@ -1537,7 +1536,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse 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 -@@ -489,6 +489,7 @@ public abstract class ChromeFeatureList { +@@ -497,6 +497,7 @@ public abstract class ChromeFeatureList { "MayLaunchUrlUsesSeparateStoragePartition"; public static final String MEDIA_INDICATORS_ANDROID = "MediaIndicatorsAndroid"; public static final String MOST_VISITED_TILES_CUSTOMIZATION = "MostVisitedTilesCustomization"; @@ -1545,10 +1544,10 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final String SEARCH_READY_OMNIBOX = "SearchReadyOmnibox"; public static final String MOST_VISITED_TILES_RESELECT = "MostVisitedTilesReselect"; public static final String MOVE_TO_FRONT_IN_LAUNCH_INTENT_DISPATCHER = -@@ -961,7 +962,7 @@ public abstract class ChromeFeatureList { - newCachedFlag( +@@ -967,7 +968,7 @@ public abstract class ChromeFeatureList { LOCK_TOP_CONTROLS_ON_LARGE_TABLETS_V2, - /* defaultValue= */ false); + /* defaultValue= */ false, + /* defaultValueInTests= */ true); - public static final CachedFlag sMagicStackAndroid = newCachedFlag(MAGIC_STACK_ANDROID, true); + public static final CachedFlag sMagicStackAndroid = newCachedFlag(MAGIC_STACK_ANDROID, false); public static final CachedFlag sMaliciousApkDownloadCheck = @@ -1557,7 +1556,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f diff --git a/chrome/browser/ntp_tiles/chrome_most_visited_sites_factory.cc b/chrome/browser/ntp_tiles/chrome_most_visited_sites_factory.cc --- a/chrome/browser/ntp_tiles/chrome_most_visited_sites_factory.cc +++ b/chrome/browser/ntp_tiles/chrome_most_visited_sites_factory.cc -@@ -77,9 +77,6 @@ ChromeMostVisitedSitesFactory::NewForProfile(Profile* profile) { +@@ -74,9 +74,6 @@ ChromeMostVisitedSitesFactory::NewForProfile(Profile* profile) { } std::unique_ptr data_decoder; @@ -1581,7 +1580,7 @@ diff --git a/chrome/browser/segmentation_platform/android/java/src/org/chromium/ 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 -@@ -4027,6 +4027,12 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4048,6 +4048,12 @@ To change this setting, BEGIN_LINKdelete the Chrome d Recent tabs @@ -1621,7 +1620,7 @@ diff --git a/components/ntp_tiles/custom_links_store.cc b/components/ntp_tiles/c diff --git a/components/omnibox/common/omnibox_features.cc b/components/omnibox/common/omnibox_features.cc --- a/components/omnibox/common/omnibox_features.cc +++ b/components/omnibox/common/omnibox_features.cc -@@ -192,6 +192,7 @@ BASE_FEATURE(kRemoveSearchReadyOmnibox, DISABLED); +@@ -194,6 +194,7 @@ BASE_FEATURE(kRemoveSearchReadyOmnibox, DISABLED); BASE_FEATURE(kDefaultTypedNavigationsToHttps, "OmniboxDefaultTypedNavigationsToHttps", enable_if(IS_IOS)); @@ -1629,7 +1628,7 @@ diff --git a/components/omnibox/common/omnibox_features.cc b/components/omnibox/ // Override the delay to create a spare renderer when the omnibox is focused // on Android. -@@ -278,6 +279,7 @@ BASE_FEATURE(kOmniboxMobileParityUpdate, ENABLED); +@@ -277,6 +278,7 @@ BASE_FEATURE(kOmniboxMobileParityUpdate, ENABLED); // Updates various NTP/Omnibox assets and descriptions for visual alignment on // Android and iOS, V2. BASE_FEATURE(kOmniboxMobileParityUpdateV2, ENABLED); diff --git a/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch b/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch index 5812084a..3f2a3a95 100644 --- a/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch +++ b/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch @@ -67,7 +67,7 @@ diff --git a/chrome/browser/segmentation_platform/segmentation_platform_config.c 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 -@@ -5108,6 +5108,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -5152,6 +5152,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d View @@ -185,7 +185,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow private @AdaptiveToolbarButtonVariant int mSelected; private @AdaptiveToolbarButtonVariant int mAutoButtonCaption; private @Nullable AdaptiveToolbarStatePredictor mStatePredictor; -@@ -67,6 +68,7 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut +@@ -77,6 +78,7 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut mAutoButton = (RadioButtonWithDescription) holder.findViewById(R.id.adaptive_option_based_on_usage); @@ -193,7 +193,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow mNewTabButton = (RadioButtonWithDescription) holder.findViewById(R.id.adaptive_option_new_tab); mShareButton = (RadioButtonWithDescription) holder.findViewById(R.id.adaptive_option_share); -@@ -74,6 +76,7 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut +@@ -84,6 +86,7 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut (RadioButtonWithDescription) holder.findViewById(R.id.adaptive_option_voice_search); mTranslateButton = (RadioButtonWithDescription) holder.findViewById(R.id.adaptive_option_translate); @@ -201,7 +201,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow mAddToBookmarksButton = (RadioButtonWithDescription) holder.findViewById(R.id.adaptive_option_add_to_bookmarks); -@@ -81,6 +84,8 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut +@@ -91,6 +94,8 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut (RadioButtonWithDescription) holder.findViewById(R.id.adaptive_option_read_aloud); mPageSummaryButton = (RadioButtonWithDescription) holder.findViewById(R.id.adaptive_option_page_summary); @@ -210,7 +210,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow mIsBound = true; -@@ -158,13 +163,6 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut +@@ -168,13 +173,6 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut mAutoButton.setDescriptionText( getContext().getString(resId, getButtonString(uiState.autoButtonCaption))); @@ -224,7 +224,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow updateVoiceButtonVisibility(); updateReadAloudButtonVisibility(); updatePageSummaryButtonVisibility(); -@@ -191,6 +189,8 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut +@@ -203,6 +201,8 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut mSelected = AdaptiveToolbarButtonVariant.READ_ALOUD; } else if (mPageSummaryButton.isChecked()) { mSelected = AdaptiveToolbarButtonVariant.PAGE_SUMMARY; @@ -233,7 +233,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow } else { assert false : "No matching setting found."; } -@@ -230,6 +230,8 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut +@@ -242,6 +242,8 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut return mReadAloudButton; case AdaptiveToolbarButtonVariant.PAGE_SUMMARY: return mPageSummaryButton; @@ -242,7 +242,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow } return null; } -@@ -261,6 +263,9 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut +@@ -273,6 +275,9 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut case AdaptiveToolbarButtonVariant.OPEN_IN_BROWSER: stringRes = R.string.menu_open_in_product_default; break; diff --git a/build/patches/Restore-chrome-password-store.patch b/build/patches/Restore-chrome-password-store.patch index a5300cdc..965adc0d 100644 --- a/build/patches/Restore-chrome-password-store.patch +++ b/build/patches/Restore-chrome-password-store.patch @@ -133,7 +133,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -799,6 +799,10 @@ if (_is_default_toolchain) { +@@ -812,6 +812,10 @@ if (_is_default_toolchain) { "//url/mojom:url_mojom_origin_java", ] @@ -144,7 +144,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn deps += feed_deps srcjar_deps = [ -@@ -943,6 +947,10 @@ if (_is_default_toolchain) { +@@ -960,6 +964,10 @@ if (_is_default_toolchain) { "//components/visited_url_ranking/internal:internal_java", ] @@ -158,7 +158,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni --- a/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni -@@ -649,3 +649,8 @@ chrome_java_resources = [ +@@ -658,3 +658,8 @@ chrome_java_resources = [ "java/res/xml/tracing_preferences.xml", "java/res/xml/unified_account_settings_preferences.xml", ] @@ -170,7 +170,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 -@@ -907,6 +907,7 @@ chrome_java_sources = [ +@@ -917,6 +917,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/password_manager/PasswordManagerDialogViewBinder.java", "java/src/org/chromium/chrome/browser/password_manager/PasswordManagerErrorMessageHelperBridge.java", "java/src/org/chromium/chrome/browser/password_manager/PasswordManagerLauncher.java", @@ -181,7 +181,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java diff --git a/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/ManualFillingMediator.java b/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/ManualFillingMediator.java --- a/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/ManualFillingMediator.java +++ b/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/ManualFillingMediator.java -@@ -608,10 +608,7 @@ class ManualFillingMediator +@@ -611,10 +611,7 @@ class ManualFillingMediator // suggestions for non credential fields. The check for feature flag needs to happen before // `IS_CREDENTIAL_FIELD_OR_HAS_AUTOFILL_SUGGESTIONS` check to ensure we get the unbiased // metrics. @@ -196,7 +196,7 @@ diff --git a/chrome/android/features/keyboard_accessory/internal/java/src/org/ch diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml --- a/chrome/android/java/AndroidManifest.xml +++ b/chrome/android/java/AndroidManifest.xml -@@ -480,10 +480,9 @@ by a child template that "extends" this file. +@@ -483,10 +483,9 @@ by a child template that "extends" this file. @@ -309,7 +309,7 @@ diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml --- a/chrome/android/java/res/xml/main_preferences.xml +++ b/chrome/android/java/res/xml/main_preferences.xml -@@ -61,7 +61,8 @@ found in the LICENSE file. +@@ -64,7 +64,8 @@ found in the LICENSE file. android:key="autofill_section" android:order="11" android:title="@string/prefs_section_autofill"/> @@ -322,7 +322,7 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java --- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java -@@ -812,6 +812,7 @@ public class AutofillPaymentMethodsFragment extends ChromeBaseSettingsFragment +@@ -829,6 +829,7 @@ public class AutofillPaymentMethodsFragment extends ChromeBaseSettingsFragment } private static boolean disabledSettingsInThirdPartyMode(Profile profile) { @@ -333,7 +333,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settin diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillProfilesFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillProfilesFragment.java --- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillProfilesFragment.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillProfilesFragment.java -@@ -462,6 +462,7 @@ public class AutofillProfilesFragment extends ChromeBaseSettingsFragment +@@ -465,6 +465,7 @@ public class AutofillProfilesFragment extends ChromeBaseSettingsFragment } private static boolean disabledSettingsInThirdPartyMode(Profile profile) { @@ -1080,7 +1080,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java -@@ -625,15 +625,6 @@ public class MainSettings extends ChromeBaseSettingsFragment +@@ -655,15 +655,6 @@ public class MainSettings extends ChromeBaseSettingsFragment return SettingsNavigationHelper.showAutofillProfileSettings( getActivity()); }); @@ -1096,10 +1096,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe // This is temporary code needed for migrating people to UPM. With UPM there is no // longer passwords setting page in Chrome, so we need to ask users to export their -@@ -685,12 +676,6 @@ public class MainSettings extends ChromeBaseSettingsFragment +@@ -718,12 +709,6 @@ public class MainSettings extends ChromeBaseSettingsFragment Context context, Profile profile, - ObservableSupplier modalDialogManagerSupplier) { + MonotonicObservableSupplier modalDialogManagerSupplier) { - PasswordManagerLauncher.showPasswordSettings( - context, - profile, @@ -1140,7 +1140,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -3330,6 +3330,13 @@ static_library("browser") { +@@ -3312,6 +3312,13 @@ static_library("browser") { "touch_to_fill/password_manager/touch_to_fill_controller_webauthn_delegate.h", ] @@ -1157,7 +1157,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/AutofillClientProviderUtils.java b/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/AutofillClientProviderUtils.java --- a/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/AutofillClientProviderUtils.java +++ b/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/AutofillClientProviderUtils.java -@@ -121,6 +121,7 @@ public class AutofillClientProviderUtils { +@@ -140,6 +140,7 @@ public class AutofillClientProviderUtils { @CalledByNative public static void setAutofillOptionsDeepLinkPref(boolean featureOn) { @@ -6076,7 +6076,7 @@ diff --git a/chrome/browser/password_manager/password_manager_settings_service_f diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc -@@ -2525,13 +2525,6 @@ void MigrateObsoleteProfilePrefs(PrefService* profile_prefs, +@@ -2593,13 +2593,6 @@ void MigrateObsoleteProfilePrefs(PrefService* profile_prefs, profile_prefs->ClearPref(kObsoletePasswordsUseUPMLocalAndSeparateStores); profile_prefs->ClearPref(kObsoleteEmptyProfileStoreLoginDatabase); profile_prefs->ClearPref(kObsoleteUpmAutoExportCsvNeedsDeletion); @@ -6093,7 +6093,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/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 -@@ -700,7 +700,7 @@ For more settings that use data to improve your Chrome experience, go to @@ -6102,7 +6102,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro Password saving is turned on by your administrator -@@ -800,6 +800,127 @@ For more settings that use data to improve your Chrome experience, go to @@ -6247,7 +6247,7 @@ new file mode 100644 diff --git a/components/autofill/core/common/autofill_features.cc b/components/autofill/core/common/autofill_features.cc --- a/components/autofill/core/common/autofill_features.cc +++ b/components/autofill/core/common/autofill_features.cc -@@ -418,6 +418,7 @@ BASE_FEATURE(kAutofillDeduplicateAccountAddresses, +@@ -385,6 +385,7 @@ BASE_FEATURE(kAutofillCreditCardUserPerceptionSurvey, // If enabled, other apps can open the Autofill Options in Chrome. BASE_FEATURE(kAutofillDeepLinkAutofillOptions, base::FEATURE_ENABLED_BY_DEFAULT); @@ -6278,7 +6278,7 @@ diff --git a/components/browser_ui/settings/android/java/src/org/chromium/compon diff --git a/components/password_manager/core/browser/features/password_manager_features_util.cc b/components/password_manager/core/browser/features/password_manager_features_util.cc --- a/components/password_manager/core/browser/features/password_manager_features_util.cc +++ b/components/password_manager/core/browser/features/password_manager_features_util.cc -@@ -28,6 +28,7 @@ namespace password_manager::features_util { +@@ -19,6 +19,7 @@ namespace password_manager::features_util { namespace { bool IsUserEligibleForAccountStorage(const syncer::SyncService* sync_service) { @@ -6310,7 +6310,7 @@ diff --git a/components/password_manager/core/browser/import/password_importer.c diff --git a/components/password_manager/core/browser/password_manager.cc b/components/password_manager/core/browser/password_manager.cc --- a/components/password_manager/core/browser/password_manager.cc +++ b/components/password_manager/core/browser/password_manager.cc -@@ -624,9 +624,7 @@ void PasswordManager::RegisterProfilePrefs( +@@ -623,9 +623,7 @@ void PasswordManager::RegisterProfilePrefs( registry->RegisterIntegerPref(prefs::kTotalPasswordsAvailableForProfile, 0); registry->RegisterIntegerPref(prefs::kPasswordRemovalReasonForAccount, 0); registry->RegisterIntegerPref(prefs::kPasswordRemovalReasonForProfile, 0); @@ -6521,7 +6521,7 @@ diff --git a/components/password_manager/core/common/password_manager_pref_names diff --git a/components/sync/service/sync_prefs.cc b/components/sync/service/sync_prefs.cc --- a/components/sync/service/sync_prefs.cc +++ b/components/sync/service/sync_prefs.cc -@@ -714,7 +714,7 @@ bool SyncPrefs::IsTypeSupportedInTransportMode(UserSelectableType type) { +@@ -707,7 +707,7 @@ bool SyncPrefs::IsTypeSupportedInTransportMode(UserSelectableType type) { kSeparateLocalAndAccountSearchEngines); #endif case UserSelectableType::kPasswords: diff --git a/build/patches/Restore-classic-new-tab-page.patch b/build/patches/Restore-classic-new-tab-page.patch index 597fe35e..54aa481c 100644 --- a/build/patches/Restore-classic-new-tab-page.patch +++ b/build/patches/Restore-classic-new-tab-page.patch @@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/search/search.cc b/chrome/browser/search/search.cc --- a/chrome/browser/search/search.cc +++ b/chrome/browser/search/search.cc -@@ -95,17 +95,6 @@ enum NewTabURLState { +@@ -94,17 +94,6 @@ enum NewTabURLState { NEW_TAB_URL_MAX }; @@ -28,7 +28,7 @@ diff --git a/chrome/browser/search/search.cc b/chrome/browser/search/search.cc bool IsMatchingServiceWorker(const GURL& my_url, const GURL& document_url) { // The origin should match. if (!MatchesOrigin(my_url, document_url)) { -@@ -142,20 +131,6 @@ bool IsNTPOrRelatedURLHelper(const GURL& url, Profile* profile) { +@@ -141,20 +130,6 @@ bool IsNTPOrRelatedURLHelper(const GURL& url, Profile* profile) { IsMatchingServiceWorker(url, new_tab_url)); } @@ -36,11 +36,11 @@ diff --git a/chrome/browser/search/search.cc b/chrome/browser/search/search.cc - if (!profile.IsChild()) { - return true; - } -- supervised_user::SupervisedUserService* supervised_user_service = -- SupervisedUserServiceFactory::GetForProfile(&profile); -- supervised_user::SupervisedUserURLFilter* url_filter = -- supervised_user_service->GetURLFilter(); -- if (url_filter->GetFilteringBehavior(url).IsBlocked()) { +- +- supervised_user::SupervisedUserUrlFilteringService* url_filtering_service = +- supervised_user::SupervisedUserUrlFilteringServiceFactory::GetForProfile( +- &profile); +- if (url_filtering_service->GetFilteringBehavior(url).IsBlocked()) { - return false; - } - return true; @@ -49,7 +49,7 @@ diff --git a/chrome/browser/search/search.cc b/chrome/browser/search/search.cc // Used to look up the URL to use for the New Tab page. Also tracks how we // arrived at that URL so it can be logged with UMA. struct NewTabURLDetails { -@@ -178,33 +153,8 @@ struct NewTabURLDetails { +@@ -177,33 +152,8 @@ struct NewTabURLDetails { const GURL local_url(default_is_google ? chrome::kChromeUINewTabPageURL : chrome::kChromeUINewTabPageThirdPartyURL); diff --git a/build/patches/Restore-offline-indicator-v2-flag.patch b/build/patches/Restore-offline-indicator-v2-flag.patch index ca3c9ba8..0737fdb3 100644 --- a/build/patches/Restore-offline-indicator-v2-flag.patch +++ b/build/patches/Restore-offline-indicator-v2-flag.patch @@ -92,7 +92,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java -@@ -1465,7 +1465,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1549,7 +1549,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { private void initStatusIndicatorCoordinator(LayoutManagerImpl layoutManager) { // TODO(crbug.com/40112282): Disable on tablets for now as we need to do one or two extra // things for tablets. @@ -102,7 +102,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab return; } -@@ -1499,6 +1500,11 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1583,6 +1584,11 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { hubManager.setStatusIndicatorHeight(mStatusIndicatorHeight); }); @@ -111,16 +111,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab + return; + } + - ObservableSupplierImpl isUrlBarFocusedSupplier = new ObservableSupplierImpl<>(); - isUrlBarFocusedSupplier.set(mToolbarManager.isUrlBarFocused()); + SettableNonNullObservableSupplier isUrlBarFocusedSupplier = + ObservableSuppliers.createNonNull(mToolbarManager.isUrlBarFocused()); mUrlFocusChangeListener = 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 -@@ -373,6 +373,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { - &kNotificationPermissionBottomSheet, +@@ -381,6 +381,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kNotificationPermissionVariant, &kNotificationTrampoline, + &kNotificationTrampolineNoNewTask, + &kOfflineIndicatorV2, &kOmahaMinSdkVersionAndroid, &kPCCTMinimumHeight, @@ -128,10 +128,10 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse 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 { - "NotificationPermissionBottomSheet"; - public static final String NOTIFICATION_PERMISSION_VARIANT = "NotificationPermissionVariant"; +@@ -517,6 +517,7 @@ public abstract class ChromeFeatureList { public static final String NOTIFICATION_TRAMPOLINE = "NotificationTrampoline"; + public static final String NOTIFICATION_TRAMPOLINE_NO_NEW_TASK = + "NotificationTrampolineNoNewTask"; + public static final String OFFLINE_INDICATOR_V2 = "OfflineIndicatorV2"; public static final String OMAHA_MIN_SDK_VERSION_ANDROID = "OmahaMinSdkVersionAndroid"; public static final String OMNIBOX_AUTOFOCUS_ON_INCOGNITO_NTP = diff --git a/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch b/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch index 7a8b5901..55bd07b9 100644 --- a/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch +++ b/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch @@ -21,7 +21,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -2338,6 +2338,10 @@ +@@ -2358,6 +2358,10 @@ "yangsharon@google.com", "alexmos@google.com", "creis@google.com" ], "expiry_milestone": 150 }, @@ -49,7 +49,7 @@ new file mode 100644 diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml --- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml +++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml -@@ -55,4 +55,10 @@ found in the LICENSE file. +@@ -60,4 +60,10 @@ found in the LICENSE file. android:summary="@string/touchpad_overscroll_history_navigation_summary" android:title="@string/touchpad_overscroll_history_navigation_title" /> diff --git a/build/patches/Revert-removal-of-execution-context-address-space.patch b/build/patches/Revert-removal-of-execution-context-address-space.patch index 0cf9ab89..69b94eaa 100644 --- a/build/patches/Revert-removal-of-execution-context-address-space.patch +++ b/build/patches/Revert-removal-of-execution-context-address-space.patch @@ -17,41 +17,41 @@ This reverts commit 11f6a3e29bee9a6590a4fd56b28e8048200c18d0. Original License: BSD-3-Clause - https://spdx.org/licenses/BSD-3-Clause.html License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../execution_context/execution_context.cc | 9 +++++++ - .../execution_context/execution_context.h | 4 +++ - .../core/exported/web_shared_worker_impl.cc | 1 + - .../renderer/core/frame/policy_container.cc | 10 ++++++++ - .../renderer/core/frame/policy_container.h | 11 ++++++++ - .../layout_worklet_global_scope_proxy.cc | 1 + - ...ed_service_worker_module_script_fetcher.cc | 1 + - .../modulescript/module_script_loader_test.cc | 1 + - .../worker_module_script_fetcher.cc | 3 ++- - .../renderer/core/workers/dedicated_worker.cc | 9 +++++++ - .../renderer/core/workers/dedicated_worker.h | 3 +++ - .../workers/dedicated_worker_global_scope.cc | 9 ++++++- - .../workers/dedicated_worker_global_scope.h | 1 + - .../workers/global_scope_creation_params.cc | 2 ++ - .../workers/global_scope_creation_params.h | 7 ++++++ - .../core/workers/installed_scripts_manager.cc | 16 ++++++++++++ - .../core/workers/installed_scripts_manager.h | 5 ++++ - .../core/workers/main_thread_worklet_test.cc | 1 + - .../workers/shared_worker_global_scope.cc | 7 ++++++ - .../core/workers/shared_worker_global_scope.h | 1 + - .../threaded_worklet_messaging_proxy.cc | 5 +++- - .../core/workers/threaded_worklet_test.cc | 1 + - .../workers/worker_classic_script_loader.cc | 5 +++- - .../workers/worker_classic_script_loader.h | 6 +++++ - .../core/workers/worker_global_scope.h | 2 ++ - .../core/workers/worker_thread_test.cc | 2 ++ - .../core/workers/worker_thread_test_helper.h | 6 +++++ - .../paint_worklet_global_scope_proxy.cc | 2 +- - .../exported/web_embedded_worker_impl.cc | 4 ++- - .../service_worker_global_scope.cc | 25 +++++++++++++------ - .../service_worker_global_scope.h | 2 ++ - .../audio_worklet_global_scope_test.cc | 1 + - .../webaudio/audio_worklet_thread_test.cc | 1 + - .../worklet/worklet_thread_test_common.cc | 2 +- - 34 files changed, 151 insertions(+), 15 deletions(-) + .../core/execution_context/execution_context.cc | 9 +++++++++ + .../core/execution_context/execution_context.h | 4 ++++ + .../core/exported/web_shared_worker_impl.cc | 1 + + .../renderer/core/frame/policy_container.cc | 10 ++++++++++ + .../blink/renderer/core/frame/policy_container.h | 11 +++++++++++ + .../custom/layout_worklet_global_scope_proxy.cc | 1 + + ...alled_service_worker_module_script_fetcher.cc | 1 + + .../modulescript/module_script_loader_test.cc | 1 + + .../modulescript/worker_module_script_fetcher.cc | 3 ++- + .../renderer/core/workers/dedicated_worker.cc | 9 +++++++++ + .../renderer/core/workers/dedicated_worker.h | 3 +++ + .../workers/dedicated_worker_global_scope.cc | 9 ++++++++- + .../core/workers/dedicated_worker_global_scope.h | 1 + + .../core/workers/global_scope_creation_params.cc | 2 ++ + .../core/workers/global_scope_creation_params.h | 7 +++++++ + .../core/workers/installed_scripts_manager.cc | 16 ++++++++++++++++ + .../core/workers/installed_scripts_manager.h | 5 +++++ + .../core/workers/main_thread_worklet_test.cc | 1 + + .../core/workers/shared_worker_global_scope.cc | 7 +++++++ + .../core/workers/shared_worker_global_scope.h | 1 + + .../workers/threaded_worklet_messaging_proxy.cc | 5 ++++- + .../core/workers/threaded_worklet_test.cc | 1 + + .../core/workers/worker_classic_script_loader.cc | 5 ++++- + .../core/workers/worker_classic_script_loader.h | 6 ++++++ + .../renderer/core/workers/worker_global_scope.h | 2 ++ + .../renderer/core/workers/worker_thread_test.cc | 2 ++ + .../core/workers/worker_thread_test_helper.h | 6 ++++++ + .../csspaint/paint_worklet_global_scope_proxy.cc | 2 +- + .../modules/exported/web_embedded_worker_impl.cc | 4 +++- + .../service_worker_global_scope.cc | 13 +++++++++++-- + .../service_worker/service_worker_global_scope.h | 2 ++ + .../webaudio/audio_worklet_global_scope_test.cc | 1 + + .../webaudio/audio_worklet_thread_test.cc | 1 + + .../worklet/worklet_thread_test_common.cc | 2 +- + 34 files changed, 145 insertions(+), 9 deletions(-) diff --git a/third_party/blink/renderer/core/execution_context/execution_context.cc b/third_party/blink/renderer/core/execution_context/execution_context.cc --- a/third_party/blink/renderer/core/execution_context/execution_context.cc @@ -83,7 +83,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context #include "services/network/public/mojom/referrer_policy.mojom-blink-forward.h" #include "third_party/blink/public/common/fingerprinting_protection/noise_token.h" #include "third_party/blink/public/common/tokens/tokens.h" -@@ -382,6 +383,9 @@ class CORE_EXPORT ExecutionContext : public Supplementable, +@@ -383,6 +384,9 @@ class CORE_EXPORT ExecutionContext : public Supplementable, const String& message = g_empty_string, const String& source_file = g_empty_string) const {} @@ -96,7 +96,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context diff --git a/third_party/blink/renderer/core/exported/web_shared_worker_impl.cc b/third_party/blink/renderer/core/exported/web_shared_worker_impl.cc --- a/third_party/blink/renderer/core/exported/web_shared_worker_impl.cc +++ b/third_party/blink/renderer/core/exported/web_shared_worker_impl.cc -@@ -275,6 +275,7 @@ void WebSharedWorkerImpl::StartWorkerContext( +@@ -276,6 +276,7 @@ void WebSharedWorkerImpl::StartWorkerContext( MakeGarbageCollected(), std::make_unique( std::move(content_settings)), @@ -322,10 +322,10 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_sco creation_params->referrer_policy; + std::optional response_address_space = + creation_params->response_address_space; - const bool parent_cross_origin_isolated_capability = - creation_params->parent_cross_origin_isolated_capability; const bool parent_is_isolated_context = -@@ -120,7 +122,7 @@ DedicatedWorkerGlobalScope* DedicatedWorkerGlobalScope::Create( + creation_params->parent_is_isolated_context; + base::TimeTicks start_time; +@@ -118,7 +120,7 @@ DedicatedWorkerGlobalScope* DedicatedWorkerGlobalScope::Create( // Pass dummy origin trial tokens here as it is already set to outside's // origin trial tokens in DedicatedWorkerGlobalScope's constructor. global_scope->Initialize(response_script_url, response_referrer_policy, @@ -334,7 +334,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_sco nullptr /* response_origin_trial_tokens */); return global_scope; } else { -@@ -247,6 +249,7 @@ const AtomicString& DedicatedWorkerGlobalScope::InterfaceName() const { +@@ -234,6 +236,7 @@ const AtomicString& DedicatedWorkerGlobalScope::InterfaceName() const { void DedicatedWorkerGlobalScope::Initialize( const KURL& response_url, network::mojom::ReferrerPolicy response_referrer_policy, @@ -342,7 +342,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_sco Vector response_csp, const Vector* /* response_origin_trial_tokens */) { TRACE_EVENT("blink.worker", "DedicatedWorkerGlobalScope::Initialize", -@@ -262,6 +265,9 @@ void DedicatedWorkerGlobalScope::Initialize( +@@ -249,6 +252,9 @@ void DedicatedWorkerGlobalScope::Initialize( // parsing the `Referrer-Policy` header of response." SetReferrerPolicy(response_referrer_policy); @@ -352,7 +352,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_sco // The following is the Content-Security-Policy part of "Initialize worker // global scope's policy container" // https://html.spec.whatwg.org/#initialize-worker-policy-container -@@ -489,6 +495,7 @@ void DedicatedWorkerGlobalScope::DidFetchClassicScript( +@@ -476,6 +482,7 @@ void DedicatedWorkerGlobalScope::DidFetchClassicScript( // Pass dummy origin trial tokens here as it is already set to outside's // origin trial tokens in DedicatedWorkerGlobalScope's constructor. Initialize(classic_script_loader->ResponseURL(), response_referrer_policy, @@ -363,7 +363,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_sco diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.h b/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.h --- a/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.h +++ b/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.h -@@ -113,6 +113,7 @@ class CORE_EXPORT DedicatedWorkerGlobalScope final : public WorkerGlobalScope { +@@ -112,6 +112,7 @@ class CORE_EXPORT DedicatedWorkerGlobalScope final : public WorkerGlobalScope { void Initialize( const KURL& response_url, network::mojom::ReferrerPolicy response_referrer_policy, @@ -646,7 +646,7 @@ diff --git a/third_party/blink/renderer/core/workers/worker_global_scope.h b/thi #include "third_party/blink/public/common/tokens/tokens.h" #include "third_party/blink/public/mojom/loader/code_cache.mojom-blink-forward.h" #include "third_party/blink/public/mojom/script/script_type.mojom-blink-forward.h" -@@ -176,6 +177,7 @@ class CORE_EXPORT WorkerGlobalScope +@@ -174,6 +175,7 @@ class CORE_EXPORT WorkerGlobalScope virtual void Initialize( const KURL& response_url, network::mojom::ReferrerPolicy response_referrer_policy, @@ -737,7 +737,7 @@ diff --git a/third_party/blink/renderer/modules/exported/web_embedded_worker_imp diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc --- a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc +++ b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc -@@ -472,6 +472,7 @@ void ServiceWorkerGlobalScope::DidFetchClassicScript( +@@ -473,6 +473,7 @@ void ServiceWorkerGlobalScope::DidFetchClassicScript( // is set, and with the following callback steps given evaluationStatus:" RunClassicScript( classic_script_loader->ResponseURL(), referrer_policy, @@ -745,7 +745,7 @@ diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_gl classic_script_loader->GetContentSecurityPolicy() ? mojo::Clone(classic_script_loader->GetContentSecurityPolicy() ->GetParsedPolicies()) -@@ -485,6 +486,7 @@ void ServiceWorkerGlobalScope::DidFetchClassicScript( +@@ -486,6 +487,7 @@ void ServiceWorkerGlobalScope::DidFetchClassicScript( void ServiceWorkerGlobalScope::Initialize( const KURL& response_url, network::mojom::ReferrerPolicy response_referrer_policy, @@ -753,7 +753,7 @@ diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_gl Vector response_csp, const Vector* response_origin_trial_tokens) { // Step 4.5. "Set workerGlobalScope's url to serviceWorker's script url." -@@ -498,6 +500,9 @@ void ServiceWorkerGlobalScope::Initialize( +@@ -499,6 +501,9 @@ void ServiceWorkerGlobalScope::Initialize( // script resource's referrer policy." SetReferrerPolicy(response_referrer_policy); @@ -763,7 +763,7 @@ diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_gl // This is quoted from the "Content Security Policy" algorithm in the service // workers spec: // "Whenever a user agent invokes Run Service Worker algorithm with a service -@@ -508,6 +513,9 @@ void ServiceWorkerGlobalScope::Initialize( +@@ -509,6 +514,9 @@ void ServiceWorkerGlobalScope::Initialize( // - If serviceWorker's script resource was delivered with a // Content-Security-Policy-Report-Only HTTP header containing the value // policy, the user agent must monitor policy for serviceWorker." @@ -773,25 +773,16 @@ diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_gl InitContentSecurityPolicyFromVector(std::move(response_csp)); BindContentSecurityPolicyToExecutionContext(); -@@ -550,26 +558,27 @@ void ServiceWorkerGlobalScope::LoadAndRunInstalledClassicScript( +@@ -551,7 +559,7 @@ void ServiceWorkerGlobalScope::LoadAndRunInstalledClassicScript( kDoNotSupportReferrerPolicyLegacyKeywords, &referrer_policy); } - RunClassicScript(script_url, referrer_policy, -- ParseContentSecurityPolicyHeaders( -- script_data->GetContentSecurityPolicyResponseHeaders()), -- script_data->CreateOriginTrialTokens().get(), -- script_data->TakeSourceText(), script_data->TakeMetaData(), -- stack_id); -+ RunClassicScript( -+ script_url, referrer_policy, script_data->GetResponseAddressSpace(), -+ ParseContentSecurityPolicyHeaders( -+ script_data->GetContentSecurityPolicyResponseHeaders()), -+ script_data->CreateOriginTrialTokens().get(), -+ script_data->TakeSourceText(), script_data->TakeMetaData(), stack_id); - } - - // https://w3c.github.io/ServiceWorker/#run-service-worker-algorithm ++ RunClassicScript(script_url, referrer_policy, script_data->GetResponseAddressSpace(), + ParseContentSecurityPolicyHeaders( + script_data->GetContentSecurityPolicyResponseHeaders()), + script_data->CreateOriginTrialTokens().get(), +@@ -563,13 +571,14 @@ void ServiceWorkerGlobalScope::LoadAndRunInstalledClassicScript( void ServiceWorkerGlobalScope::RunClassicScript( const KURL& response_url, network::mojom::ReferrerPolicy response_referrer_policy, @@ -803,12 +794,10 @@ diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_gl const v8_inspector::V8StackTraceId& stack_id) { // Step 4.5-4.11 are implemented in Initialize(). - Initialize(response_url, response_referrer_policy, std::move(response_csp), -- response_origin_trial_tokens); -+ Initialize(response_url, response_referrer_policy, response_address_space, -+ std::move(response_csp), response_origin_trial_tokens); ++ Initialize(response_url, response_referrer_policy, response_address_space, std::move(response_csp), + response_origin_trial_tokens); // Step 4.12. "Let evaluationStatus be the result of running the classic - // script script if script is a classic script, otherwise, the result of diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h --- a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h +++ b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h diff --git a/build/patches/Revert-remove-allowscript-content-setting-secondary-url.patch b/build/patches/Revert-remove-allowscript-content-setting-secondary-url.patch index 8d327a86..b5ea23d7 100644 --- a/build/patches/Revert-remove-allowscript-content-setting-secondary-url.patch +++ b/build/patches/Revert-remove-allowscript-content-setting-secondary-url.patch @@ -211,7 +211,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc -@@ -4147,19 +4147,6 @@ bool LocalFrame::IsSameOrigin() { +@@ -4175,19 +4175,6 @@ bool LocalFrame::IsSameOrigin() { return security_origin->IsSameOriginWith(top_security_origin); } @@ -234,7 +234,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h --- a/third_party/blink/renderer/core/frame/local_frame.h +++ b/third_party/blink/renderer/core/frame/local_frame.h -@@ -930,12 +930,6 @@ class CORE_EXPORT LocalFrame final +@@ -933,12 +933,6 @@ class CORE_EXPORT LocalFrame final return *v8_local_compile_hints_producer_; } @@ -288,7 +288,7 @@ diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.h b/third diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/third_party/blink/renderer/core/loader/frame_fetch_context.cc --- a/third_party/blink/renderer/core/loader/frame_fetch_context.cc +++ b/third_party/blink/renderer/core/loader/frame_fetch_context.cc -@@ -636,7 +636,8 @@ void FrameFetchContext::AddClientHintsIfNecessary( +@@ -642,7 +642,8 @@ void FrameFetchContext::AddClientHintsIfNecessary( // Check if |url| is allowed to run JavaScript. If not, client hints are not // attached to the requests that initiate on the render side. @@ -298,7 +298,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/thi return; } -@@ -1099,15 +1100,26 @@ void FrameFetchContext::SetFirstPartyCookie(ResourceRequest& request) { +@@ -1105,15 +1106,26 @@ void FrameFetchContext::SetFirstPartyCookie(ResourceRequest& request) { } } @@ -354,7 +354,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.h b/thir static ResourceFetcher* CreateFetcherForCommittedDocument(DocumentLoader&, Document&); FrameFetchContext(DocumentLoader& document_loader, -@@ -178,7 +189,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext, +@@ -182,7 +193,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext, // BaseFetchContext overrides: net::SiteForCookies GetSiteForCookies() const override; SubresourceFilter* GetSubresourceFilter() const override; diff --git a/build/patches/Set-caret-blink-interval-to-default.patch b/build/patches/Set-caret-blink-interval-to-default.patch index caa9f0e5..93910c14 100644 --- a/build/patches/Set-caret-blink-interval-to-default.patch +++ b/build/patches/Set-caret-blink-interval-to-default.patch @@ -12,7 +12,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_party/blink/renderer/core/exported/web_view_impl.cc --- a/third_party/blink/renderer/core/exported/web_view_impl.cc +++ b/third_party/blink/renderer/core/exported/web_view_impl.cc -@@ -3749,9 +3749,7 @@ void WebViewImpl::UpdateRendererPreferences( +@@ -3731,9 +3731,7 @@ void WebViewImpl::UpdateRendererPreferences( UpdateFontRenderingFromRendererPrefs(); blink::SetCaretBlinkInterval( diff --git a/build/patches/Show-site-settings-for-cookies-javascript-and-ads.patch b/build/patches/Show-site-settings-for-cookies-javascript-and-ads.patch index 6968faa3..4a96057d 100644 --- a/build/patches/Show-site-settings-for-cookies-javascript-and-ads.patch +++ b/build/patches/Show-site-settings-for-cookies-javascript-and-ads.patch @@ -24,7 +24,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } else if (type == ContentSettingsType.GEOLOCATION) { setUpLocationPreference(preference); } else if (type == ContentSettingsType.GEOLOCATION_WITH_OPTIONS) { -@@ -1248,17 +1250,8 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1251,17 +1253,8 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment private void setUpAdsInformationalBanner() { // Add the informational banner which shows at the top of the UI if ad blocking is // activated on this site. @@ -42,7 +42,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } @RequiresNonNull({"mSite"}) -@@ -1611,12 +1604,13 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1614,12 +1607,13 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment @ContentSetting @Nullable Integer currentValue = mSite.getContentSetting(browserContextHandle, ContentSettingsType.JAVASCRIPT); @@ -62,7 +62,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } // Not possible to embargo JAVASCRIPT. setupContentSettingsPreference( -@@ -1626,6 +1620,29 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1629,6 +1623,29 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment isOneTime(ContentSettingsType.JAVASCRIPT)); } @@ -92,7 +92,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c /** * Updates the ads list preference based on whether the site is a candidate for blocking. This * has some custom behavior. 1. If the site is a candidate and has activation, the permission -@@ -1643,9 +1660,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1646,9 +1663,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment } // If the ad blocker is activated, then this site will have ads blocked unless there is an // explicit permission disallowing the blocking. diff --git a/build/patches/Site-setting-for-images.patch b/build/patches/Site-setting-for-images.patch index 0cf918ce..00645b98 100644 --- a/build/patches/Site-setting-for-images.patch +++ b/build/patches/Site-setting-for-images.patch @@ -324,7 +324,7 @@ diff --git a/third_party/blink/public/platform/web_content_settings_client.h b/t diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc -@@ -4134,19 +4134,6 @@ bool LocalFrame::IsSameOrigin() { +@@ -4162,19 +4162,6 @@ bool LocalFrame::IsSameOrigin() { return security_origin->IsSameOriginWith(top_security_origin); } @@ -347,7 +347,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h --- a/third_party/blink/renderer/core/frame/local_frame.h +++ b/third_party/blink/renderer/core/frame/local_frame.h -@@ -929,12 +929,6 @@ class CORE_EXPORT LocalFrame final +@@ -932,12 +932,6 @@ class CORE_EXPORT LocalFrame final return *v8_local_compile_hints_producer_; } @@ -382,7 +382,7 @@ diff --git a/third_party/blink/renderer/core/html/image_document.cc b/third_part diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/third_party/blink/renderer/core/loader/frame_fetch_context.cc --- a/third_party/blink/renderer/core/loader/frame_fetch_context.cc +++ b/third_party/blink/renderer/core/loader/frame_fetch_context.cc -@@ -321,6 +321,7 @@ ResourceFetcher* FrameFetchContext::CreateFetcherForCommittedDocument( +@@ -320,6 +320,7 @@ ResourceFetcher* FrameFetchContext::CreateFetcherForCommittedDocument( fetcher->SetResourceLoadObserver( MakeGarbageCollected( loader, document, fetcher->GetProperties())); @@ -390,7 +390,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/thi fetcher->SetAutoLoadImages( frame->GetSettings()->GetLoadsImagesAutomatically()); fetcher->SetEarlyHintsPreloadedResources( -@@ -518,16 +519,13 @@ void FrameFetchContext::AddResourceTiming( +@@ -517,16 +518,13 @@ void FrameFetchContext::AddResourceTiming( ->AddResourceTiming(std::move(info), initiator_type); } @@ -422,8 +422,8 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.h b/thir - bool AllowImage() const override; + bool AllowImage(bool images_enabled, const KURL&) const override; - void CheckGuardrailsPolicyForRequest( - ResourceType resource_type, + void CheckGuardrailsPolicyForAssetSize(GuardrailPolicyAssetType asset_type, + size_t bytes, diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/renderer/core/page/page.cc --- a/third_party/blink/renderer/core/page/page.cc +++ b/third_party/blink/renderer/core/page/page.cc @@ -442,7 +442,7 @@ diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/re diff --git a/third_party/blink/renderer/platform/loader/fetch/fetch_context.h b/third_party/blink/renderer/platform/loader/fetch/fetch_context.h --- a/third_party/blink/renderer/platform/loader/fetch/fetch_context.h +++ b/third_party/blink/renderer/platform/loader/fetch/fetch_context.h -@@ -114,7 +114,7 @@ class PLATFORM_EXPORT FetchContext : public GarbageCollected { +@@ -115,7 +115,7 @@ class PLATFORM_EXPORT FetchContext : public GarbageCollected { virtual void AddResourceTiming(mojom::blink::ResourceTimingInfoPtr, const AtomicString& initiator_type); @@ -454,7 +454,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/fetch_context.h b/ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc --- a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc +++ b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc -@@ -823,6 +823,7 @@ ResourceFetcher::ResourceFetcher(const ResourceFetcherInit& init) +@@ -822,6 +822,7 @@ ResourceFetcher::ResourceFetcher(const ResourceFetcherInit& init) blob_registry_remote_(init.context_lifecycle_notifier), context_lifecycle_notifier_(init.context_lifecycle_notifier), auto_load_images_(true), @@ -462,7 +462,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c allow_stale_resources_(false), image_fetched_(false) { InstanceCounters::IncrementCounter(InstanceCounters::kResourceFetcherCounter); -@@ -1989,7 +1990,7 @@ bool ResourceFetcher::IsImageResourceDisallowedToBeReused( +@@ -1998,7 +1999,7 @@ bool ResourceFetcher::IsImageResourceDisallowedToBeReused( return false; } @@ -471,7 +471,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c } ResourceFetcher::RevalidationPolicy -@@ -2234,8 +2235,20 @@ void ResourceFetcher::SetAutoLoadImages(bool enable) { +@@ -2243,8 +2244,20 @@ void ResourceFetcher::SetAutoLoadImages(bool enable) { ReloadImagesIfNotDeferred(); } diff --git a/build/patches/Supporting-Dangling-Ptr-Detection-via-BackupRefPtr.patch b/build/patches/Supporting-Dangling-Ptr-Detection-via-BackupRefPtr.patch index 51557930..68829d4c 100644 --- a/build/patches/Supporting-Dangling-Ptr-Detection-via-BackupRefPtr.patch +++ b/build/patches/Supporting-Dangling-Ptr-Detection-via-BackupRefPtr.patch @@ -26,7 +26,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/base/allocator/partition_alloc_features.cc b/base/allocator/partition_alloc_features.cc --- a/base/allocator/partition_alloc_features.cc +++ b/base/allocator/partition_alloc_features.cc -@@ -95,6 +95,7 @@ BASE_FEATURE_PARAM(int, +@@ -99,6 +99,7 @@ BASE_FEATURE_PARAM(int, partition_alloc::internal::SlotSpanRingMaxSize::kMedium); BASE_FEATURE(kPartitionAllocWithAdvancedChecks, FEATURE_DISABLED_BY_DEFAULT); @@ -34,7 +34,7 @@ diff --git a/base/allocator/partition_alloc_features.cc b/base/allocator/partiti constexpr FeatureParam::Option kPartitionAllocWithAdvancedChecksEnabledProcessesOptions[] = { {PartitionAllocWithAdvancedChecksEnabledProcesses::kBrowserOnly, -@@ -161,6 +162,7 @@ BASE_FEATURE(kPartitionAllocBackupRefPtr, +@@ -175,6 +176,7 @@ BASE_FEATURE(kPartitionAllocBackupRefPtr, FEATURE_DISABLED_BY_DEFAULT #endif ); @@ -42,7 +42,7 @@ diff --git a/base/allocator/partition_alloc_features.cc b/base/allocator/partiti constexpr FeatureParam::Option kBackupRefPtrEnabledProcessesOptions[] = { -@@ -215,6 +217,7 @@ BASE_FEATURE(kPartitionAllocMemoryTagging, +@@ -229,6 +231,7 @@ BASE_FEATURE(kPartitionAllocMemoryTagging, FEATURE_DISABLED_BY_DEFAULT #endif ); @@ -53,7 +53,7 @@ diff --git a/base/allocator/partition_alloc_features.cc b/base/allocator/partiti diff --git a/base/allocator/partition_alloc_support.cc b/base/allocator/partition_alloc_support.cc --- a/base/allocator/partition_alloc_support.cc +++ b/base/allocator/partition_alloc_support.cc -@@ -289,6 +289,20 @@ void StartMemoryReclaimer(scoped_refptr task_runner) { +@@ -286,6 +286,20 @@ void StartMemoryReclaimer(scoped_refptr task_runner) { std::map ProposeSyntheticFinchTrials() { std::map trials; @@ -74,7 +74,7 @@ diff --git a/base/allocator/partition_alloc_support.cc b/base/allocator/partitio #if PA_BUILDFLAG(ENABLE_DANGLING_RAW_PTR_CHECKS) trials.emplace("DanglingPointerDetector", "Enabled"); #else -@@ -300,13 +314,18 @@ std::map ProposeSyntheticFinchTrials() { +@@ -297,13 +311,18 @@ std::map ProposeSyntheticFinchTrials() { trials.emplace("VectorRawPtrExperiment", "Disabled"); #if PA_BUILDFLAG(HAS_MEMORY_TAGGING) @@ -96,7 +96,7 @@ diff --git a/base/allocator/partition_alloc_support.cc b/base/allocator/partitio } #if BUILDFLAG(IS_ANDROID) BootloaderOverride bootloader_override = GetBootloaderOverride(); -@@ -922,10 +941,7 @@ bool PartitionAllocSupport::ShouldEnablePartitionAllocWithAdvancedChecks( +@@ -939,10 +958,7 @@ bool PartitionAllocSupport::ShouldEnablePartitionAllocWithAdvancedChecks( base::features::kPartitionAllocWithAdvancedChecks)) { return false; } @@ -111,7 +111,7 @@ diff --git a/base/allocator/partition_alloc_support.cc b/base/allocator/partitio diff --git a/base/allocator/partition_allocator/partition_alloc.gni b/base/allocator/partition_allocator/partition_alloc.gni --- a/base/allocator/partition_allocator/partition_alloc.gni +++ b/base/allocator/partition_allocator/partition_alloc.gni -@@ -210,8 +210,8 @@ declare_args() { +@@ -208,8 +208,8 @@ declare_args() { # This will write a fixed cookie pattern at the end of each allocation, and # later verify the pattern remain unchanged to ensure there is no OOB write. # It comes with performance and memory cost, hence enabled only in debug. @@ -122,7 +122,7 @@ diff --git a/base/allocator/partition_allocator/partition_alloc.gni b/base/alloc # This will change partition cookie size to 4B or 8B, whichever equivalent to # size of InSlotMetadata. This option is useful for InSlotMetadata corruption -@@ -353,7 +353,7 @@ declare_args() { +@@ -360,7 +360,7 @@ declare_args() { # This is meant to be used primarily on bots. It is much easier to override # the feature flags using a binary flag instead of updating multiple bots's # scripts to pass command line arguments. @@ -134,7 +134,7 @@ diff --git a/base/allocator/partition_allocator/partition_alloc.gni b/base/alloc diff --git a/build_overrides/partition_alloc.gni b/build_overrides/partition_alloc.gni --- a/build_overrides/partition_alloc.gni +++ b/build_overrides/partition_alloc.gni -@@ -114,7 +114,7 @@ use_partition_alloc_as_malloc_default = +@@ -106,7 +106,7 @@ use_partition_alloc_as_malloc_default = enable_backup_ref_ptr_support_default = use_partition_alloc_as_malloc_default @@ -143,7 +143,7 @@ diff --git a/build_overrides/partition_alloc.gni b/build_overrides/partition_all enable_dangling_raw_ptr_checks_default = # The DanglingPointerDetector relies on BackupRefPtr: -@@ -141,6 +141,7 @@ enable_dangling_raw_ptr_checks_default = +@@ -133,6 +133,7 @@ enable_dangling_raw_ptr_checks_default = # Only the `android-rel` CQ bot has enforced DanglingPointerDetector checks # at the moment. The other Android bots are not ready for it yet. !is_android diff --git a/build/patches/Switch-to-fstack-protector-strong.patch b/build/patches/Switch-to-fstack-protector-strong.patch index f6031a2e..03022972 100644 --- a/build/patches/Switch-to-fstack-protector-strong.patch +++ b/build/patches/Switch-to-fstack-protector-strong.patch @@ -19,7 +19,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn -@@ -464,7 +464,7 @@ config("compiler") { +@@ -465,7 +465,7 @@ config("compiler") { } else if (is_posix || is_fuchsia) { if (current_os != "aix") { # Not available on aix. diff --git a/build/patches/TEMP-Add-a-log-to-track-strange-behavior.patch b/build/patches/TEMP-Add-a-log-to-track-strange-behavior.patch index 177be4f6..d6a85a09 100644 --- a/build/patches/TEMP-Add-a-log-to-track-strange-behavior.patch +++ b/build/patches/TEMP-Add-a-log-to-track-strange-behavior.patch @@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc --- a/net/spdy/spdy_session.cc +++ b/net/spdy/spdy_session.cc -@@ -3071,6 +3071,7 @@ void SpdySession::OnHeaders(spdy::SpdyStreamId stream_id, +@@ -3065,6 +3065,7 @@ void SpdySession::OnHeaders(spdy::SpdyStreamId stream_id, if (it == active_streams_.end()) { // NOTE: it may just be that the stream was cancelled. LOG(WARNING) << "Received HEADERS for invalid stream " << stream_id; diff --git a/build/patches/Temp-disable-UseContextSnapshot.patch b/build/patches/Temp-disable-UseContextSnapshot.patch index d23a9766..c248d456 100644 --- a/build/patches/Temp-disable-UseContextSnapshot.patch +++ b/build/patches/Temp-disable-UseContextSnapshot.patch @@ -12,7 +12,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc --- a/content/public/common/content_features.cc +++ b/content/public/common/content_features.cc -@@ -1072,6 +1072,7 @@ BASE_FEATURE(kUnrestrictedSharedArrayBuffer, base::FEATURE_DISABLED_BY_DEFAULT); +@@ -1071,6 +1071,7 @@ BASE_FEATURE(kUnrestrictedSharedArrayBuffer, base::FEATURE_DISABLED_BY_DEFAULT); #if BUILDFLAG(IS_ANDROID) && BUILDFLAG(INCLUDE_BOTH_V8_SNAPSHOTS) // If enabled, blink's context snapshot is used rather than the v8 snapshot. BASE_FEATURE(kUseContextSnapshot, base::FEATURE_ENABLED_BY_DEFAULT); diff --git a/build/patches/Temp-disable-experimental-web-platform-features.patch b/build/patches/Temp-disable-experimental-web-platform-features.patch index 038bee78..02cc2c00 100644 --- a/build/patches/Temp-disable-experimental-web-platform-features.patch +++ b/build/patches/Temp-disable-experimental-web-platform-features.patch @@ -9,7 +9,7 @@ Subject: Temp disable experimental-web-platform-features diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -5428,10 +5428,10 @@ const FeatureEntry kFeatureEntries[] = { +@@ -4909,10 +4909,10 @@ const FeatureEntry kFeatureEntries[] = { {"enable-gpu-rasterization", flag_descriptions::kGpuRasterizationName, flag_descriptions::kGpuRasterizationDescription, kOsAll, MULTI_VALUE_TYPE(kEnableGpuRasterizationChoices)}, diff --git a/build/patches/Temp-disable-predictive-back-gesture.patch b/build/patches/Temp-disable-predictive-back-gesture.patch index 17153c1f..776890d2 100644 --- a/build/patches/Temp-disable-predictive-back-gesture.patch +++ b/build/patches/Temp-disable-predictive-back-gesture.patch @@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml --- a/chrome/android/java/AndroidManifest.xml +++ b/chrome/android/java/AndroidManifest.xml -@@ -218,7 +218,7 @@ by a child template that "extends" this file. +@@ -221,7 +221,7 @@ by a child template that "extends" this file. android:networkSecurityConfig="@xml/network_security_config" android:allowAudioPlaybackCapture="false" android:appComponentFactory="org.chromium.chrome.browser.base.SplitCompatAppComponentFactory" diff --git a/build/patches/Temp-guard-FileSystemAccessPersistentPermissions.patch b/build/patches/Temp-guard-FileSystemAccessPersistentPermissions.patch index 886e8275..12811b2c 100644 --- a/build/patches/Temp-guard-FileSystemAccessPersistentPermissions.patch +++ b/build/patches/Temp-guard-FileSystemAccessPersistentPermissions.patch @@ -10,7 +10,7 @@ Subject: Temp guard FileSystemAccessPersistentPermissions diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc b/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc --- a/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc +++ b/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc -@@ -512,7 +512,7 @@ bool ShouldBlockAccessToPath( +@@ -511,7 +511,7 @@ bool ShouldBlockAccessToPath( auto should_block_with_rule = [&](const base::FilePath& block_path, BlockType block_type) -> bool { if (path == block_path || path.IsParent(block_path)) { @@ -19,7 +19,7 @@ diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permiss << " because it is a parent of " << block_path; return true; } -@@ -561,7 +561,7 @@ bool ShouldBlockAccessToPath( +@@ -560,7 +560,7 @@ bool ShouldBlockAccessToPath( } // The nearest ancestor blocks access to its children, so block access. diff --git a/build/patches/Timezone-customization.patch b/build/patches/Timezone-customization.patch index 4da099c9..84093b0a 100644 --- a/build/patches/Timezone-customization.patch +++ b/build/patches/Timezone-customization.patch @@ -566,7 +566,7 @@ new file mode 100644 diff --git a/components/browser_ui/site_settings/android/website_preference_bridge.cc b/components/browser_ui/site_settings/android/website_preference_bridge.cc --- a/components/browser_ui/site_settings/android/website_preference_bridge.cc +++ b/components/browser_ui/site_settings/android/website_preference_bridge.cc -@@ -1351,5 +1351,21 @@ JNI_WebsitePreferenceBridge_ToHostOnlyPattern(JNIEnv* env, +@@ -1322,5 +1322,21 @@ JNI_WebsitePreferenceBridge_ToHostOnlyPattern(JNIEnv* env, return ConvertUTF8ToJavaString(env, host_only_pattern.ToString()); } @@ -664,7 +664,7 @@ new file mode 100644 diff --git a/components/content_settings/core/browser/content_settings_pref_provider.cc b/components/content_settings/core/browser/content_settings_pref_provider.cc --- a/components/content_settings/core/browser/content_settings_pref_provider.cc +++ b/components/content_settings/core/browser/content_settings_pref_provider.cc -@@ -106,6 +106,8 @@ void PrefProvider::RegisterProfilePrefs( +@@ -108,6 +108,8 @@ void PrefProvider::RegisterProfilePrefs( info->GetPrefRegistrationFlags()); } @@ -673,7 +673,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov // Obsolete prefs ---------------------------------------------------------- // These prefs have been removed, but need to be registered so they can -@@ -193,6 +195,10 @@ PrefProvider::PrefProvider(PrefService* prefs, +@@ -196,6 +198,10 @@ PrefProvider::PrefProvider(PrefService* prefs, event_args->set_number_of_exceptions( num_exceptions); // PrefProvider::PrefProvider. }); @@ -684,7 +684,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov } PrefProvider::~PrefProvider() { -@@ -583,4 +589,14 @@ void PrefProvider::SetClockForTesting(const base::Clock* clock) { +@@ -588,4 +594,14 @@ void PrefProvider::SetClockForTesting(const base::Clock* clock) { } } @@ -738,7 +738,7 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.cc diff --git a/components/content_settings/core/browser/host_content_settings_map.cc b/components/content_settings/core/browser/host_content_settings_map.cc --- a/components/content_settings/core/browser/host_content_settings_map.cc +++ b/components/content_settings/core/browser/host_content_settings_map.cc -@@ -749,6 +749,14 @@ void HostContentSettingsMap::SetClockForTesting(const base::Clock* clock) { +@@ -748,6 +748,14 @@ void HostContentSettingsMap::SetClockForTesting(const base::Clock* clock) { } } @@ -824,7 +824,7 @@ diff --git a/components/content_settings/core/common/content_settings_mojom_trai diff --git a/components/content_settings/core/common/pref_names.h b/components/content_settings/core/common/pref_names.h --- a/components/content_settings/core/common/pref_names.h +++ b/components/content_settings/core/common/pref_names.h -@@ -277,6 +277,9 @@ inline constexpr char kDesktopSiteWindowSettingEnabled[] = +@@ -281,6 +281,9 @@ inline constexpr char kDesktopSiteWindowSettingEnabled[] = "desktop_site.window_setting"; #endif diff --git a/build/patches/Use-browser-navigation-handler.patch b/build/patches/Use-browser-navigation-handler.patch index 0dba0782..5521ee6a 100644 --- a/build/patches/Use-browser-navigation-handler.patch +++ b/build/patches/Use-browser-navigation-handler.patch @@ -32,7 +32,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java -@@ -107,6 +107,7 @@ import org.chromium.ui.util.MotionEventUtils; +@@ -106,6 +106,7 @@ import org.chromium.ui.util.MotionEventUtils; import org.chromium.url.GURL; import java.util.ArrayList; @@ -227,7 +227,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/Side diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java -@@ -92,6 +92,7 @@ import org.chromium.chrome.browser.firstrun.FirstRunStatus; +@@ -98,6 +98,7 @@ import org.chromium.chrome.browser.firstrun.FirstRunStatus; import org.chromium.chrome.browser.flags.ActivityType; import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.flags.ChromeSwitches; @@ -235,7 +235,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab import org.chromium.chrome.browser.fullscreen.BrowserControlsManager; import org.chromium.chrome.browser.fullscreen.FullscreenManager; import org.chromium.chrome.browser.gesturenav.BackActionDelegate; -@@ -869,7 +870,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -930,7 +931,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { @Override public void onInflationComplete() { mCoordinator = mActivity.findViewById(R.id.coordinator); @@ -303,7 +303,7 @@ new file mode 100644 diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml --- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml +++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml -@@ -114,4 +114,13 @@ found in the LICENSE file. +@@ -119,4 +119,13 @@ found in the LICENSE file. android:summary="@string/selection_popup_smart_text_summary" android:title="@string/selection_popup_smart_text_title" /> diff --git a/build/patches/Use-list-mode-for-tab-switcher.patch b/build/patches/Use-list-mode-for-tab-switcher.patch index 5f5c4e2c..c1f965d3 100644 --- a/build/patches/Use-list-mode-for-tab-switcher.patch +++ b/build/patches/Use-list-mode-for-tab-switcher.patch @@ -55,7 +55,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/android/features/tab_ui/BUILD.gn b/chrome/android/features/tab_ui/BUILD.gn --- a/chrome/android/features/tab_ui/BUILD.gn +++ b/chrome/android/features/tab_ui/BUILD.gn -@@ -51,6 +51,8 @@ android_resources("java_resources") { +@@ -52,6 +52,8 @@ android_resources("java_resources") { "java/res/drawable/pinned_tab_strip_item_background.xml", "java/res/drawable/price_card_background.xml", "java/res/drawable/price_card_scrim.xml", @@ -64,7 +64,7 @@ diff --git a/chrome/android/features/tab_ui/BUILD.gn b/chrome/android/features/t "java/res/drawable/tab_grid_card_background.xml", "java/res/drawable/tab_grid_card_highlight.xml", "java/res/drawable/tab_grid_dialog_background.xml", -@@ -111,6 +113,8 @@ android_resources("java_resources") { +@@ -114,6 +116,8 @@ android_resources("java_resources") { "java/res/layout/tab_group_visual_data_dialog.xml", "java/res/layout/tab_group_visual_data_text_input_layout.xml", "java/res/layout/tab_hover_card_holder.xml", @@ -162,7 +162,7 @@ diff --git a/chrome/android/features/tab_ui/java/res/values/dimens.xml b/chrome/ 52dp -@@ -114,6 +118,7 @@ found in the LICENSE file. +@@ -115,6 +119,7 @@ found in the LICENSE file. 3dp 8dp 24dp @@ -173,7 +173,7 @@ diff --git a/chrome/android/features/tab_ui/java/res/values/dimens.xml b/chrome/ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator.java -@@ -235,7 +235,9 @@ public class TabGridDialogCoordinator implements TabGridDialogMediator.DialogCon +@@ -242,7 +242,9 @@ public class TabGridDialogCoordinator implements TabGridDialogMediator.DialogCon // take in a mode parameter instead. mTabListCoordinator = new TabListCoordinator( @@ -184,7 +184,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser activity, mBrowserControlsStateProvider, mModalDialogManager, -@@ -352,6 +354,11 @@ public class TabGridDialogCoordinator implements TabGridDialogMediator.DialogCon +@@ -359,6 +361,11 @@ public class TabGridDialogCoordinator implements TabGridDialogMediator.DialogCon : "SnackbarManager should have been created or the activity was already" + " finishing."; @@ -196,7 +196,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser ViewGroup container = mDialogView.findViewById(R.id.dialog_container_view); mTabListEditorCoordinator = new TabListEditorCoordinator( -@@ -362,7 +369,7 @@ public class TabGridDialogCoordinator implements TabGridDialogMediator.DialogCon +@@ -369,7 +376,7 @@ public class TabGridDialogCoordinator implements TabGridDialogMediator.DialogCon mCurrentTabGroupModelFilterSupplier, mTabContentManager, mTabListCoordinator::setRecyclerViewPosition, @@ -208,7 +208,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java -@@ -53,6 +53,7 @@ import org.chromium.chrome.browser.tab.TabLaunchType; +@@ -55,6 +55,7 @@ import org.chromium.chrome.browser.tab.TabLaunchType; import org.chromium.chrome.browser.tab.TabSelectionType; import org.chromium.chrome.browser.tab_group_sync.TabGroupSyncServiceFactory; import org.chromium.chrome.browser.tab_ui.RecyclerViewPosition; @@ -216,7 +216,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser import org.chromium.chrome.browser.tabmodel.TabClosingSource; import org.chromium.chrome.browser.tabmodel.TabClosureParamsUtils; import org.chromium.chrome.browser.tabmodel.TabCreatorUtil; -@@ -898,6 +899,13 @@ public class TabGridDialogMediator +@@ -901,6 +902,13 @@ public class TabGridDialogMediator TabGridDialogProperties.DIALOG_UNGROUP_BAR_HOVERED_TEXT_COLOR, ungroupBarHoveredTextColor); mModel.set(TabGridDialogProperties.IS_INCOGNITO, isIncognito); @@ -301,7 +301,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListContainerViewBinder.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListContainerViewBinder.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListContainerViewBinder.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListContainerViewBinder.java -@@ -211,14 +211,27 @@ class TabListContainerViewBinder { +@@ -305,14 +305,27 @@ class TabListContainerViewBinder { } if (width <= 0 || height <= 0) return 0; @@ -340,7 +340,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListCoordinator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListCoordinator.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListCoordinator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListCoordinator.java -@@ -120,13 +120,13 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO +@@ -122,13 +122,13 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO * *

NOTE: STRIP and GRID modes will have height equal to that of the container view. */ @@ -356,7 +356,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser int NUM_ENTRIES = 4; } -@@ -373,6 +373,8 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO +@@ -374,6 +374,8 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO assumeNonNull(model); if (mMode == TabListMode.GRID) { TabGridViewBinder.onViewRecycled(model, viewHolder.itemView); @@ -365,7 +365,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser } else if (mMode == TabListMode.STRIP) { TabStripViewBinder.onViewRecycled(model, viewHolder.itemView); } -@@ -479,6 +481,21 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO +@@ -446,6 +448,21 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO .inflate(R.layout.tab_strip_item, parentView, false); }, TabStripViewBinder::bind); @@ -387,7 +387,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser } else { throw new IllegalArgumentException( "Attempting to create a tab list UI with invalid mode"); -@@ -533,7 +550,7 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO +@@ -508,7 +525,7 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO parentView.addView(mRecyclerView); } @@ -396,7 +396,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser boolean hasFixedSize = mMode != TabListMode.STRIP || !TabUiUtils.isDataSharingFunctionalityEnabled(); mRecyclerView.setAdapter(mAdapter); -@@ -565,9 +582,13 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO +@@ -540,9 +557,13 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO Rect frame = new Rect(); mActivity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame); updateGridCardLayout(frame.width()); @@ -412,7 +412,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser @Override public void onLayoutCompleted(RecyclerView.State state) { super.onLayoutCompleted(state); -@@ -654,7 +675,7 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO +@@ -684,7 +705,7 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO public void addTabListItemSizeChangedObserver(TabListItemSizeChangedObserver observer) { mTabListItemSizeChangedObserverList.addObserver(observer); Size size = mMediator.getDefaultGridCardSize(); @@ -421,7 +421,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser observer.onSizeChanged(mMediator.getCurrentSpanCount(), size); } -@@ -689,7 +710,7 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO +@@ -719,7 +740,7 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO Size getThumbnailSize() { Size size = mMediator.getDefaultGridCardSize(); @@ -430,7 +430,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser return TabUtils.deriveThumbnailSize(size, mActivity); } -@@ -743,7 +764,7 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO +@@ -773,7 +794,7 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO } private void configureRecyclerViewTouchHelpers() { @@ -442,7 +442,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorCoordinator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorCoordinator.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorCoordinator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorCoordinator.java -@@ -410,7 +410,7 @@ public class TabListEditorCoordinator { +@@ -411,7 +411,7 @@ public class TabListEditorCoordinator { mSnackbarManager = snackbarManager; mTabActionState = initialTabActionState; mTabContentManager = tabContentManager; @@ -466,7 +466,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java -@@ -2584,8 +2584,26 @@ class TabListMediator implements TabListNotificationHandler { +@@ -2586,8 +2586,26 @@ class TabListMediator implements TabListNotificationHandler { private void updateFaviconForTab( PropertyModel model, Tab tab, @Nullable Bitmap icon, @Nullable GURL iconUrl) { if (mActionsOnAllRelatedTabs && isTabInTabGroup(tab)) { @@ -984,7 +984,7 @@ new file mode 100644 diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherPaneBase.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherPaneBase.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherPaneBase.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherPaneBase.java -@@ -294,7 +294,7 @@ public abstract class TabSwitcherPaneBase extends PaneBase +@@ -298,7 +298,7 @@ public abstract class TabSwitcherPaneBase extends PaneBase || isFullSpaceModeOnAndroidXr; @Nullable Tab tab = getCurrentTab(); @@ -993,7 +993,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser return FadeHubLayoutAnimationFactory.createFadeInAnimatorProvider( hubContainerView, HUB_LAYOUT_FADE_DURATION_MS, mOnToolbarAlphaChange); } else if (isFullSpaceModeOnAndroidXr && getTabListMode() == TabListMode.GRID) { -@@ -323,7 +323,7 @@ public abstract class TabSwitcherPaneBase extends PaneBase +@@ -327,7 +327,7 @@ public abstract class TabSwitcherPaneBase extends PaneBase HubContainerView hubContainerView) { assert !DeviceFormFactor.isNonMultiDisplayContextOnTablet(hubContainerView.getContext()); Tab tab = getCurrentTab(); @@ -1005,7 +1005,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherPaneCoordinatorFactory.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherPaneCoordinatorFactory.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherPaneCoordinatorFactory.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherPaneCoordinatorFactory.java -@@ -148,7 +148,10 @@ public class TabSwitcherPaneCoordinatorFactory { +@@ -150,7 +150,10 @@ public class TabSwitcherPaneCoordinatorFactory { mModalDialogManager = modalDialogManager; mBottomSheetController = bottomSheetController; mDataSharingTabManager = dataSharingTabManager; @@ -1044,7 +1044,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser diff --git a/chrome/android/features/tab_ui/tab_management_java_sources.gni b/chrome/android/features/tab_ui/tab_management_java_sources.gni --- a/chrome/android/features/tab_ui/tab_management_java_sources.gni +++ b/chrome/android/features/tab_ui/tab_management_java_sources.gni -@@ -185,6 +185,8 @@ internal_tab_management_java_sources = [ +@@ -184,6 +184,8 @@ internal_tab_management_java_sources = [ "//chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListNotificationHandler.java", "//chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListOnScrollListener.java", "//chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListRecyclerView.java", @@ -1072,7 +1072,7 @@ 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/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -198,6 +198,7 @@ import org.chromium.chrome.browser.tabmodel.TabModelSelectorTabObserver; +@@ -197,6 +197,7 @@ import org.chromium.chrome.browser.tabmodel.TabModelSelectorTabObserver; import org.chromium.chrome.browser.tabmodel.TabModelUtils; import org.chromium.chrome.browser.task_manager.TaskManager; import org.chromium.chrome.browser.task_manager.TaskManagerFactory; @@ -1080,7 +1080,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv import org.chromium.chrome.browser.theme.ThemeModuleUtils; import org.chromium.chrome.browser.tinker_tank.TinkerTankDelegate; import org.chromium.chrome.browser.toolbar.ControlContainer; -@@ -692,8 +693,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -691,8 +692,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity new TabContentManager( this, mBrowserControlsManagerSupplier.get(), @@ -1100,7 +1100,7 @@ diff --git a/chrome/browser/android/favicon_helper.cc b/chrome/browser/android/f using base::android::ScopedJavaLocalRef; +using JobFinishedCallback = base::OnceCallback; - static jlong JNI_FaviconHelper_Init(JNIEnv* env) { + static int64_t JNI_FaviconHelper_Init(JNIEnv* env) { return reinterpret_cast(new FaviconHelper()); } @@ -1690,7 +1690,7 @@ new file mode 100644 diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java -@@ -68,6 +68,7 @@ import org.chromium.build.annotations.Nullable; +@@ -67,6 +67,7 @@ import org.chromium.build.annotations.Nullable; import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.ntp_customization.NtpCustomizationUtils; import org.chromium.chrome.browser.omnibox.LocationBar; @@ -1698,7 +1698,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.omnibox.LocationBarBackgroundDrawable; import org.chromium.chrome.browser.omnibox.LocationBarBackgroundDrawable.HairlineBehavior; import org.chromium.chrome.browser.omnibox.LocationBarCoordinator; -@@ -2115,7 +2116,7 @@ public class ToolbarPhone extends ToolbarLayout +@@ -2119,7 +2120,7 @@ public class ToolbarPhone extends ToolbarLayout // On entering the tab switcher, set the focusability of the url bar to be false. This will // occur at the start of the enter event, and will later be reset to true upon finishing the // exit event. @@ -1707,7 +1707,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow mLocationBar.setUrlBarFocusable(false); } -@@ -2344,7 +2345,8 @@ public class ToolbarPhone extends ToolbarLayout +@@ -2348,7 +2349,8 @@ public class ToolbarPhone extends ToolbarLayout ToggleTabStackButtonCoordinator tabSwitcherButtonCoordinator = getTabSwitcherButtonCoordinator(); assumeNonNull(tabSwitcherButtonCoordinator); @@ -1720,7 +1720,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow diff --git a/components/browser_ui/styles/android/BUILD.gn b/components/browser_ui/styles/android/BUILD.gn --- a/components/browser_ui/styles/android/BUILD.gn +++ b/components/browser_ui/styles/android/BUILD.gn -@@ -235,6 +235,7 @@ android_resources("java_resources") { +@@ -237,6 +237,7 @@ android_resources("java_resources") { "java/res/drawable/ic_visibility_off_black.xml", "java/res/drawable/ic_volume_off_fill_24dp.xml", "java/res/drawable/ic_volume_up_fill_24dp.xml", diff --git a/build/patches/User-agent-customization.patch b/build/patches/User-agent-customization.patch index e7c3d40d..eed2f1ec 100644 --- a/build/patches/User-agent-customization.patch +++ b/build/patches/User-agent-customization.patch @@ -79,7 +79,7 @@ diff --git a/base/base_switches.h b/base/base_switches.h diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni --- a/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni -@@ -659,6 +659,8 @@ chrome_java_resources = [ +@@ -668,6 +668,8 @@ chrome_java_resources = [ "java/res/xml/search_widget_info.xml", "java/res/xml/tracing_preferences.xml", "java/res/xml/unified_account_settings_preferences.xml", @@ -91,7 +91,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 -@@ -941,6 +941,7 @@ chrome_java_sources = [ +@@ -952,6 +952,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", @@ -213,7 +213,7 @@ new file mode 100644 diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml --- a/chrome/android/java/res/xml/main_preferences.xml +++ b/chrome/android/java/res/xml/main_preferences.xml -@@ -136,6 +136,11 @@ found in the LICENSE file. +@@ -144,6 +144,11 @@ found in the LICENSE file. android:key="content_settings" android:order="26" android:title="@string/prefs_site_settings"/> @@ -258,7 +258,7 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -2835,7 +2835,10 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -2846,7 +2846,10 @@ public abstract class ChromeActivity extends AsyncInitializationActivity profile, currentTab.getUrl(), usingDesktopUserAgent); // Use TabUtils.switchUserAgent() instead of Tab.reload(). Because we need to reload // with LoadOriginalRequestURL. See http://crbug/1418587 for details. @@ -298,7 +298,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrow diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl.java -@@ -239,6 +239,41 @@ public class PrivacyPreferencesManagerImpl implements PrivacyPreferencesManager +@@ -241,6 +241,41 @@ public class PrivacyPreferencesManagerImpl implements PrivacyPreferencesManager return getCrashUploadPermittedSupplier(); } @@ -340,7 +340,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting @NativeMethods public interface Natives { boolean isMetricsReportingEnabled(); -@@ -246,5 +281,12 @@ public class PrivacyPreferencesManagerImpl implements PrivacyPreferencesManager +@@ -248,5 +283,12 @@ public class PrivacyPreferencesManagerImpl implements PrivacyPreferencesManager void setMetricsReportingEnabled(boolean enabled); boolean isMetricsReportingDisabledByPolicy(); @@ -550,7 +550,7 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java -@@ -84,6 +84,9 @@ import org.chromium.components.autofill.AutofillProvider; +@@ -83,6 +83,9 @@ import org.chromium.components.autofill.AutofillProvider; import org.chromium.components.autofill.AutofillProviderUMA; import org.chromium.components.autofill.AutofillSelectionActionMenuDelegate; import org.chromium.components.autofill.AutofillSelectionMenuItemHelper; @@ -570,7 +570,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav /** * Implementation of the interface {@link Tab}. Contains and manages a {@link ContentView}. This * class is not intended to be extended. -@@ -2423,9 +2429,6 @@ class TabImpl implements Tab { +@@ -2438,9 +2444,6 @@ class TabImpl implements Tab { } if (mWebContents != null) { @@ -580,7 +580,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav mWebContents.getNavigationController().loadIfNecessary(); } mIsBeingRestored = true; -@@ -2825,6 +2828,11 @@ class TabImpl implements Tab { +@@ -2840,6 +2843,11 @@ class TabImpl implements Tab { url = webContents.getVisibleUrl(); } @@ -592,7 +592,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav boolean shouldRequestDesktopSite = DesktopSiteUtils.shouldOverrideDesktopSite(mProfile, url, getContext()); -@@ -2854,7 +2862,7 @@ class TabImpl implements Tab { +@@ -2871,7 +2879,7 @@ class TabImpl implements Tab { } boolean usingDesktopUserAgent = getWebContents().getNavigationController().getUseDesktopUserAgent(); @@ -601,7 +601,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav } /** Sets the TabLaunchType for tabs launched with an unset launch type. */ -@@ -3035,6 +3043,54 @@ class TabImpl implements Tab { +@@ -3060,6 +3068,54 @@ class TabImpl implements Tab { ResettersForTesting.register(this::clearNativePtr); } @@ -677,8 +677,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.ja diff --git a/chrome/browser/android/content/content_utils.cc b/chrome/browser/android/content/content_utils.cc --- a/chrome/browser/android/content/content_utils.cc +++ b/chrome/browser/android/content/content_utils.cc -@@ -8,9 +8,22 @@ - #include "content/public/browser/web_contents.h" +@@ -9,9 +9,22 @@ + #include "third_party/blink/public/common/features.h" #include "third_party/blink/public/common/user_agent/user_agent_metadata.h" +#include "base/android/jni_android.h" @@ -700,7 +700,7 @@ diff --git a/chrome/browser/android/content/content_utils.cc b/chrome/browser/an static std::string JNI_ContentUtils_GetBrowserUserAgent(JNIEnv* env) { return embedder_support::GetUserAgent(); } -@@ -19,6 +32,22 @@ static void JNI_ContentUtils_SetUserAgentOverride( +@@ -20,6 +33,22 @@ static void JNI_ContentUtils_SetUserAgentOverride( JNIEnv* env, const base::android::JavaRef& jweb_contents, bool j_override_in_new_tabs) { @@ -894,7 +894,7 @@ diff --git a/chrome/browser/android/preferences/privacy_preferences_manager_impl diff --git a/chrome/browser/content_settings/request_desktop_site_web_contents_observer_android.cc b/chrome/browser/content_settings/request_desktop_site_web_contents_observer_android.cc --- a/chrome/browser/content_settings/request_desktop_site_web_contents_observer_android.cc +++ b/chrome/browser/content_settings/request_desktop_site_web_contents_observer_android.cc -@@ -16,6 +16,7 @@ +@@ -17,6 +17,7 @@ #include "chrome/browser/flags/android/chrome_feature_list.h" #include "chrome/browser/preferences/android/chrome_shared_preferences.h" #include "chrome/browser/profiles/profile.h" @@ -902,7 +902,7 @@ diff --git a/chrome/browser/content_settings/request_desktop_site_web_contents_o #include "chrome/common/chrome_switches.h" #include "components/content_settings/core/common/content_settings_utils.h" #include "components/content_settings/core/common/pref_names.h" -@@ -45,6 +46,7 @@ RequestDesktopSiteWebContentsObserverAndroid:: +@@ -46,6 +47,7 @@ RequestDesktopSiteWebContentsObserverAndroid:: host_content_settings_map_ = HostContentSettingsMapFactory::GetForProfile(profile); pref_service_ = profile->GetPrefs(); @@ -910,7 +910,7 @@ diff --git a/chrome/browser/content_settings/request_desktop_site_web_contents_o } RequestDesktopSiteWebContentsObserverAndroid:: -@@ -59,6 +61,15 @@ void RequestDesktopSiteWebContentsObserverAndroid::DidStartNavigation( +@@ -60,6 +62,15 @@ void RequestDesktopSiteWebContentsObserverAndroid::DidStartNavigation( return; } @@ -948,7 +948,7 @@ diff --git a/chrome/browser/content_settings/request_desktop_site_web_contents_o diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java -@@ -1331,8 +1331,6 @@ public final class ChromePreferenceKeys { +@@ -1361,8 +1361,6 @@ public final class ChromePreferenceKeys { SIGNIN_PROMO_NTP_LAST_SHOWN_TIME, SYNC_PROMO_TOTAL_SHOW_COUNT, SEARCH_RESUMPTION_MODULE_COLLAPSE_ON_NTP, @@ -978,7 +978,7 @@ diff --git a/chrome/browser/privacy/settings/java/src/org/chromium/chrome/browse diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.java b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.java --- a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.java +++ b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.java -@@ -374,6 +374,8 @@ public interface Tab extends TabLifecycle { +@@ -380,6 +380,8 @@ public interface Tab extends TabLifecycle { /** Goes to the navigation entry after the current one. */ void goForward(); @@ -990,7 +990,7 @@ diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.jav diff --git a/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java b/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java --- a/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java +++ b/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java -@@ -177,6 +177,8 @@ public interface TabWindowManager { +@@ -183,6 +183,8 @@ public interface TabWindowManager { @Nullable List getGroupedTabsByWindow( @WindowId int windowId, Token tabGroupId, boolean isIncognito); @@ -1002,7 +1002,7 @@ diff --git a/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/brows diff --git a/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManagerImpl.java b/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManagerImpl.java --- a/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManagerImpl.java +++ b/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManagerImpl.java -@@ -502,6 +502,24 @@ public class TabWindowManagerImpl implements TabWindowManager { +@@ -492,6 +492,24 @@ public class TabWindowManagerImpl implements TabWindowManager { return null; } @@ -1077,7 +1077,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h --- a/chrome/common/pref_names.h +++ b/chrome/common/pref_names.h -@@ -1913,6 +1913,14 @@ inline constexpr char kNaviOnboardGroup[] = "browser.navi_onboard_group"; +@@ -1917,6 +1917,14 @@ inline constexpr char kNaviOnboardGroup[] = "browser.navi_onboard_group"; inline constexpr char kHadThreeConsecutiveNotificationPermissionDenies[] = "profile.content_settings.had_three_consecutive_denies.notifications"; @@ -1228,7 +1228,7 @@ diff --git a/content/browser/renderer_host/navigation_controller_android.cc b/co const JavaRef& j_initiator_origin, bool has_user_gesture, bool should_clear_history_list, -@@ -317,6 +318,9 @@ base::android::ScopedJavaLocalRef NavigationControllerAndroid::LoadUrl( +@@ -320,6 +321,9 @@ base::android::ScopedJavaLocalRef NavigationControllerAndroid::LoadUrl( params.navigation_ui_data = std::move(navigation_ui_data); @@ -1241,7 +1241,7 @@ diff --git a/content/browser/renderer_host/navigation_controller_android.cc b/co diff --git a/content/browser/renderer_host/navigation_controller_android.h b/content/browser/renderer_host/navigation_controller_android.h --- a/content/browser/renderer_host/navigation_controller_android.h +++ b/content/browser/renderer_host/navigation_controller_android.h -@@ -70,6 +70,7 @@ class CONTENT_EXPORT NavigationControllerAndroid { +@@ -68,6 +68,7 @@ class CONTENT_EXPORT NavigationControllerAndroid { bool can_load_local_resources, bool is_renderer_initiated, bool should_replace_current_entry, @@ -1252,7 +1252,7 @@ diff --git a/content/browser/renderer_host/navigation_controller_android.h b/con diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc -@@ -3846,6 +3846,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( +@@ -3827,6 +3827,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( #if BUILDFLAG(IS_CHROMEOS) switches::kSchedulerBoostUrgent, #endif @@ -1270,8 +1270,8 @@ diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser +#include "base/base_switches.h" #include "base/check_op.h" #include "base/command_line.h" - #include "base/containers/contains.h" -@@ -2403,8 +2404,6 @@ void WebContentsImpl::SetUserAgentOverride( + #include "base/containers/flat_set.h" +@@ -2402,8 +2403,6 @@ void WebContentsImpl::SetUserAgentOverride( OPTIONAL_TRACE_EVENT2("content", "WebContentsImpl::SetUserAgentOverride", "ua_override", ua_override.ua_string_override, "override_in_new_tabs", override_in_new_tabs); @@ -1280,7 +1280,7 @@ diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser if (GetUserAgentOverride() == ua_override) { return; -@@ -3758,6 +3757,9 @@ const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences( +@@ -3755,6 +3754,9 @@ const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences( #else prefs.viewport_meta_enabled = false; #endif @@ -1293,7 +1293,7 @@ diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser diff --git a/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java b/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java --- a/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java +++ b/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java -@@ -200,6 +200,7 @@ import org.chromium.url.Origin; +@@ -217,6 +217,7 @@ import org.chromium.url.Origin; params.getCanLoadLocalResources(), params.getIsRendererInitiated(), params.getShouldReplaceCurrentEntry(), @@ -1301,7 +1301,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/frameh params.getInitiatorOrigin(), params.getHasUserGesture(), params.getShouldClearHistoryList(), -@@ -266,13 +267,13 @@ import org.chromium.url.Origin; +@@ -284,13 +285,13 @@ import org.chromium.url.Origin; public void setUseDesktopUserAgent( boolean override, boolean reloadOnChange, boolean skipOnInitialNavigation) { if (mNativeNavigationControllerAndroid != 0) { @@ -1322,7 +1322,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/frameh NavigationControllerImplJni.get() .setUseDesktopUserAgent( -@@ -447,7 +448,7 @@ import org.chromium.url.Origin; +@@ -465,7 +466,7 @@ import org.chromium.url.Origin; @Nullable String dataUrlAsString, boolean canLoadLocalResources, boolean isRendererInitiated, @@ -1334,7 +1334,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/frameh diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc --- a/content/renderer/render_thread_impl.cc +++ b/content/renderer/render_thread_impl.cc -@@ -793,7 +793,6 @@ void RenderThreadImpl::InitializeRenderer( +@@ -790,7 +790,6 @@ void RenderThreadImpl::InitializeRenderer( uint64_t trace_id) { TRACE_EVENT("navigation", "RenderThreadImpl::InitializeRenderer", perfetto::TerminatingFlow::Global(trace_id)); diff --git a/build/patches/Viewport-Protection-flag.patch b/build/patches/Viewport-Protection-flag.patch index 7d7d50f9..32bcba0b 100644 --- a/build/patches/Viewport-Protection-flag.patch +++ b/build/patches/Viewport-Protection-flag.patch @@ -282,7 +282,7 @@ diff --git a/third_party/blink/public/common/widget/device_emulation_params.h b/ diff --git a/third_party/blink/renderer/core/css/css_properties.json5 b/third_party/blink/renderer/core/css/css_properties.json5 --- a/third_party/blink/renderer/core/css/css_properties.json5 +++ b/third_party/blink/renderer/core/css/css_properties.json5 -@@ -4360,6 +4360,7 @@ +@@ -4523,6 +4523,7 @@ }, { name: "opacity", @@ -290,7 +290,7 @@ diff --git a/third_party/blink/renderer/core/css/css_properties.json5 b/third_pa property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], interpolable: true, compositable: true, -@@ -4367,7 +4368,6 @@ +@@ -4530,7 +4531,6 @@ field_template: "primitive", default_value: "1.0", type_name: "float", @@ -313,7 +313,7 @@ diff --git a/third_party/blink/renderer/core/css/media_values.cc b/third_party/b diff --git a/third_party/blink/renderer/core/css/resolver/style_resolver.cc b/third_party/blink/renderer/core/css/resolver/style_resolver.cc --- a/third_party/blink/renderer/core/css/resolver/style_resolver.cc +++ b/third_party/blink/renderer/core/css/resolver/style_resolver.cc -@@ -2359,7 +2359,12 @@ ComputedStyleBuilder StyleResolver::InitialStyleBuilderForElement() const { +@@ -2356,7 +2356,12 @@ ComputedStyleBuilder StyleResolver::InitialStyleBuilderForElement() const { ComputedStyleBuilder builder = CreateComputedStyleBuilder(); builder.SetRtlOrdering(GetDocument().VisuallyOrdered() ? EOrder::kVisual : EOrder::kLogical); @@ -399,7 +399,7 @@ diff --git a/third_party/blink/renderer/core/events/pointer_event.h b/third_part diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_party/blink/renderer/core/exported/web_view_impl.cc --- a/third_party/blink/renderer/core/exported/web_view_impl.cc +++ b/third_party/blink/renderer/core/exported/web_view_impl.cc -@@ -1143,7 +1143,7 @@ WebPagePopupImpl* WebViewImpl::OpenPagePopup(PagePopupClient* client) { +@@ -1122,7 +1122,7 @@ WebPagePopupImpl* WebViewImpl::OpenPagePopup(PagePopupClient* client) { page_popup_ = WebPagePopupImpl::Create( std::move(popup_widget_host), std::move(widget_host), std::move(widget_receiver), this, agent_group_scheduler, @@ -492,7 +492,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc -@@ -1672,6 +1672,10 @@ void LocalFrame::RestoreScrollOffsets() { +@@ -1691,6 +1691,10 @@ void LocalFrame::RestoreScrollOffsets() { saved_scroll_offsets_ = nullptr; } @@ -503,7 +503,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ void LocalFrame::SetLayoutZoomFactor(float factor) { SetZoomFactors(factor, text_zoom_factor_, css_zoom_factor_); } -@@ -1861,12 +1865,16 @@ mojom::blink::DevicePostureType LocalFrame::GetDevicePosture() { +@@ -1880,12 +1884,16 @@ mojom::blink::DevicePostureType LocalFrame::GetDevicePosture() { return mojo_handler_->GetDevicePosture(); } @@ -522,7 +522,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ return ratio; } -@@ -3456,6 +3464,11 @@ void LocalFrame::SetScaleFactor(float scale_factor) { +@@ -3484,6 +3492,11 @@ void LocalFrame::SetScaleFactor(float scale_factor) { DCHECK(!GetDocument() || !GetDocument()->Printing()); DCHECK(IsMainFrame()); @@ -537,7 +537,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h --- a/third_party/blink/renderer/core/frame/local_frame.h +++ b/third_party/blink/renderer/core/frame/local_frame.h -@@ -431,7 +431,8 @@ class CORE_EXPORT LocalFrame final +@@ -432,7 +432,8 @@ class CORE_EXPORT LocalFrame final void SetInViewSourceMode(bool = true); void SetLayoutZoomFactor(float); @@ -547,7 +547,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/b void SetTextZoomFactor(float); float TextZoomFactor() const { return text_zoom_factor_; } void SetCssZoomFactor(float); -@@ -440,7 +441,7 @@ class CORE_EXPORT LocalFrame final +@@ -441,7 +442,7 @@ class CORE_EXPORT LocalFrame final float text_zoom_factor, float css_zoom_factor); @@ -556,7 +556,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/b // Informs the local root's document and its local descendant subtree that a // media query value changed. -@@ -1098,6 +1099,7 @@ class CORE_EXPORT LocalFrame final +@@ -1101,6 +1102,7 @@ class CORE_EXPORT LocalFrame final unsigned did_run_detach_impl_ : 1 = false; float layout_zoom_factor_; @@ -662,7 +662,7 @@ diff --git a/third_party/blink/renderer/core/frame/screen_metrics_emulator.h b/t diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc --- a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc +++ b/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc -@@ -1954,6 +1954,15 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( +@@ -1959,6 +1959,15 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( if (DeviceEmulator() && widget_base_ && !widget_base_->WillBeDestroyed()) { DeviceEmulator()->UpdateVisualProperties(visual_properties); @@ -875,7 +875,7 @@ diff --git a/third_party/blink/renderer/core/page/page.h b/third_party/blink/ren diff --git a/third_party/blink/renderer/core/style/computed_style.h b/third_party/blink/renderer/core/style/computed_style.h --- a/third_party/blink/renderer/core/style/computed_style.h +++ b/third_party/blink/renderer/core/style/computed_style.h -@@ -2059,6 +2059,12 @@ class ComputedStyle final : public ComputedStyleBase { +@@ -2110,6 +2110,12 @@ class ComputedStyle final : public ComputedStyleBase { IsRunningBackdropFilterAnimationOnCompositor(); } diff --git a/build/patches/WIN-Disable-updater.patch b/build/patches/WIN-Disable-updater.patch index 0bb8136f..8c956eb3 100644 --- a/build/patches/WIN-Disable-updater.patch +++ b/build/patches/WIN-Disable-updater.patch @@ -22,8 +22,8 @@ diff --git a/chrome/browser/active_use_util.h b/chrome/browser/active_use_util.h diff --git a/chrome/browser/updater/BUILD.gn b/chrome/browser/updater/BUILD.gn --- a/chrome/browser/updater/BUILD.gn +++ b/chrome/browser/updater/BUILD.gn -@@ -38,20 +38,6 @@ source_set("updater") { - "//chrome/updater/mojom", +@@ -36,20 +36,6 @@ source_set("updater") { + "//chrome/updater:browser_sources", ] - if (is_win) { @@ -89,7 +89,7 @@ diff --git a/chrome/browser/updater/browser_updater_client.cc b/chrome/browser/u } void BrowserUpdaterClient::UpdateCompleted( -@@ -163,19 +134,7 @@ void BrowserUpdaterClient::IsBrowserRegisteredCompleted( +@@ -186,19 +157,7 @@ void BrowserUpdaterClient::IsBrowserRegisteredCompleted( base::OnceCallback callback, const std::vector& apps) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); @@ -109,5 +109,5 @@ diff --git a/chrome/browser/updater/browser_updater_client.cc b/chrome/browser/u + std::move(callback).Run(true); } - // User and System BrowserUpdaterClients must be kept separate - the template + void BrowserUpdaterClient::GetUpdaterStateCompleted( -- diff --git a/build/patches/WIN-enable-pdf-plugin.patch b/build/patches/WIN-enable-pdf-plugin.patch index 5f3a0146..4a88a069 100644 --- a/build/patches/WIN-enable-pdf-plugin.patch +++ b/build/patches/WIN-enable-pdf-plugin.patch @@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc -@@ -2380,7 +2380,9 @@ const mojom::RendererContentSettingsPtr& LocalFrame::GetContentSettings() +@@ -2408,7 +2408,9 @@ WebAutofillClient* LocalFrame::GetAutofillClient() { } PluginData* LocalFrame::GetPluginData() const { diff --git a/build/patches/Warning-message-for-unsupported-hardware-aes.patch b/build/patches/Warning-message-for-unsupported-hardware-aes.patch index 98a7bf9a..ed6a23a6 100644 --- a/build/patches/Warning-message-for-unsupported-hardware-aes.patch +++ b/build/patches/Warning-message-for-unsupported-hardware-aes.patch @@ -51,15 +51,15 @@ diff --git a/base/base_switches.h b/base/base_switches.h diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn --- a/chrome/BUILD.gn +++ b/chrome/BUILD.gn -@@ -430,6 +430,7 @@ if (is_win) { +@@ -431,6 +431,7 @@ if (is_win) { "//components/webapps/isolated_web_apps:scheme", "//content/public/app", "//crypto", + "//third_party/boringssl", - "//headless:headless_non_renderer", - "//headless:headless_shell_browser_lib", "//net:net_resources", -@@ -1638,6 +1639,8 @@ if (is_android) { + "//sandbox/win:sandbox", + "//third_party/cld_3/src/src:cld_3", +@@ -1636,6 +1637,8 @@ if (is_android) { "//chrome/common/profiler", "//chrome/gpu", "//chrome/renderer", @@ -81,7 +81,7 @@ diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegat #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ BUILDFLAG(IS_MAC) -@@ -1114,6 +1117,12 @@ std::optional ChromeMainDelegate::BasicStartupComplete() { +@@ -1102,6 +1105,12 @@ std::optional ChromeMainDelegate::BasicStartupComplete() { } #endif @@ -97,7 +97,7 @@ diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegat diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd -@@ -7340,6 +7340,10 @@ Keep your key file in a safe place. You will need it to create new versions of y +@@ -7373,6 +7373,10 @@ Keep your key file in a safe place. You will need it to create new versions of y You are using an unsupported feature flag: $1SignedHTTPExchange. Stability and security will suffer. @@ -130,7 +130,7 @@ diff --git a/chrome/browser/ui/startup/bad_flags_prompt.cc b/chrome/browser/ui/s diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc -@@ -3851,6 +3851,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( +@@ -3832,6 +3832,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( switches::kSchedulerBoostUrgent, #endif switches::kDesktopModeViewportMetaEnabled, diff --git a/build/patches/Welcome-screen.patch b/build/patches/Welcome-screen.patch index 21fed1dc..9604b3e5 100644 --- a/build/patches/Welcome-screen.patch +++ b/build/patches/Welcome-screen.patch @@ -32,7 +32,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni --- a/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni -@@ -517,6 +517,7 @@ chrome_java_resources = [ +@@ -525,6 +525,7 @@ chrome_java_resources = [ "java/res/layout/find_in_page.xml", "java/res/layout/find_toolbar.xml", "java/res/layout/fre_tos_privacy_disclaimer.xml", @@ -43,7 +43,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 -@@ -657,6 +657,8 @@ chrome_java_sources = [ +@@ -661,6 +661,8 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/firstrun/LightweightFirstRunActivity.java", "java/src/org/chromium/chrome/browser/firstrun/SkipTosDialogPolicyListener.java", "java/src/org/chromium/chrome/browser/firstrun/TosDialogBehaviorSharedPrefInvalidator.java", @@ -302,8 +302,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR import androidx.viewpager2.widget.ViewPager2; import org.chromium.base.ActivityState; -@@ -41,8 +42,7 @@ import org.chromium.chrome.browser.feature_engagement.TrackerFactory; - import org.chromium.chrome.browser.metrics.UmaUtils; +@@ -46,8 +47,7 @@ import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; + import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; -import org.chromium.chrome.browser.signin.SigninCheckerProvider; @@ -312,7 +312,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeUtils; import org.chromium.chrome.browser.ui.signin.DialogWhenLargeContentLayout; import org.chromium.chrome.browser.ui.signin.SigninUtils; -@@ -231,7 +231,7 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa +@@ -236,7 +236,7 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa /** Creates first page and sets up adapter. Should result UI being shown on the screen. */ private void createFirstPage() { BooleanSupplier showWelcomePage = () -> !FirstRunStatus.shouldSkipWelcomePage(); @@ -321,7 +321,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR mFreProgressStates.add(MobileFreProgress.WELCOME_SHOWN); mPagerAdapter = new FirstRunPagerAdapter(FirstRunActivity.this, mPages); mPager.setAdapter(mPagerAdapter); -@@ -256,9 +256,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa +@@ -261,9 +261,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa // // TODO(b/245912657): explicitly sign in supervised users in {@link // FullscreenSigninMediator#handleContinueWithNative} rather than relying on SigninChecker. @@ -331,7 +331,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR assumeNonNull(mFreProperties); mFirstRunFlowSequencer.updateFirstRunProperties(mFreProperties); -@@ -274,16 +271,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa +@@ -279,16 +276,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa mFreProgressStates.add(MobileFreProgress.DEFAULT_SEARCH_ENGINE_SHOWN); } @@ -348,7 +348,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR if (mPagerAdapter != null) { mPagerAdapter.notifyDataSetChanged(); } -@@ -498,6 +485,21 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa +@@ -515,6 +502,21 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa return true; } @@ -370,7 +370,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR // Activity: @Override public void onRestoreInstanceState(@Nullable Bundle state) { -@@ -645,11 +647,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa +@@ -662,11 +664,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa public void acceptTermsOfService(boolean allowMetricsAndCrashUploading) { assert mNativeInitializationPromise.isFulfilled(); diff --git a/build/patches/autofill-miscellaneous.patch b/build/patches/autofill-miscellaneous.patch index 3b19166c..816fc997 100644 --- a/build/patches/autofill-miscellaneous.patch +++ b/build/patches/autofill-miscellaneous.patch @@ -21,11 +21,11 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../autofill_crowdsourcing_manager.h | 2 - .../browser/crowdsourcing/votes_uploader.cc | 3 - .../browser/foundations/autofill_client.h | 4 -- - .../browser/foundations/autofill_manager.cc | 11 ---- + .../browser/foundations/autofill_manager.cc | 19 ------ .../autofill/core/common/autofill_features.cc | 1 + .../autofill/core/common/autofill_prefs.cc | 8 +-- .../password_generation_frame_helper.cc | 5 -- - 14 files changed, 11 insertions(+), 113 deletions(-) + 14 files changed, 11 insertions(+), 121 deletions(-) diff --git a/chrome/android/java/src/org/chromium/chrome/browser/AutofillOptionsLauncher.java b/chrome/android/java/src/org/chromium/chrome/browser/AutofillOptionsLauncher.java --- a/chrome/android/java/src/org/chromium/chrome/browser/AutofillOptionsLauncher.java @@ -74,7 +74,7 @@ diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.cc b/chrome/brows diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.h b/chrome/browser/ui/autofill/chrome_autofill_client.h --- a/chrome/browser/ui/autofill/chrome_autofill_client.h +++ b/chrome/browser/ui/autofill/chrome_autofill_client.h -@@ -117,7 +117,6 @@ class ChromeAutofillClient : public ContentAutofillClient, +@@ -118,7 +118,6 @@ class ChromeAutofillClient : public ContentAutofillClient { version_info::Channel GetChannel() const final; bool IsOffTheRecord() const final; scoped_refptr GetURLLoaderFactory() final; @@ -117,7 +117,7 @@ diff --git a/components/android_autofill/browser/android_autofill_client.h b/com diff --git a/components/autofill/core/browser/crowdsourcing/autofill_crowdsourcing_manager.cc b/components/autofill/core/browser/crowdsourcing/autofill_crowdsourcing_manager.cc --- a/components/autofill/core/browser/crowdsourcing/autofill_crowdsourcing_manager.cc +++ b/components/autofill/core/browser/crowdsourcing/autofill_crowdsourcing_manager.cc -@@ -504,33 +504,6 @@ std::optional GetUploadPayloadForApi( +@@ -503,33 +503,6 @@ std::optional GetUploadPayloadForApi( return std::move(payload); } @@ -151,7 +151,7 @@ diff --git a/components/autofill/core/browser/crowdsourcing/autofill_crowdsourci // Gets HTTP body payload for API POST request. std::optional GetAPIBodyPayload(std::string payload, CrowdsourcingRequestType type) { -@@ -562,15 +535,7 @@ std::optional GetAPIQueryPayload( +@@ -561,15 +534,7 @@ std::optional GetAPIQueryPayload( } std::string GetAPIKeyForUrl(version_info::Channel channel) { @@ -168,7 +168,7 @@ diff --git a/components/autofill/core/browser/crowdsourcing/autofill_crowdsourci } std::optional>& GetActiveExperiments() { -@@ -900,31 +865,13 @@ size_t AutofillCrowdsourcingManager::GetPayloadLength( +@@ -891,31 +856,13 @@ size_t AutofillCrowdsourcingManager::GetPayloadLength( std::tuple AutofillCrowdsourcingManager::GetRequestURLAndMethod( const FormRequestData& request_data) const { @@ -219,7 +219,7 @@ diff --git a/components/autofill/core/browser/crowdsourcing/autofill_crowdsourci diff --git a/components/autofill/core/browser/crowdsourcing/votes_uploader.cc b/components/autofill/core/browser/crowdsourcing/votes_uploader.cc --- a/components/autofill/core/browser/crowdsourcing/votes_uploader.cc +++ b/components/autofill/core/browser/crowdsourcing/votes_uploader.cc -@@ -423,9 +423,6 @@ void VotesUploader::UploadVote( +@@ -426,9 +426,6 @@ void VotesUploader::UploadVote( client_->GetUkmRecorder(), ukm_source_id, *submitted_form, submission_timestamp); } @@ -232,7 +232,7 @@ diff --git a/components/autofill/core/browser/crowdsourcing/votes_uploader.cc b/ diff --git a/components/autofill/core/browser/foundations/autofill_client.h b/components/autofill/core/browser/foundations/autofill_client.h --- a/components/autofill/core/browser/foundations/autofill_client.h +++ b/components/autofill/core/browser/foundations/autofill_client.h -@@ -304,10 +304,6 @@ class AutofillClient { +@@ -303,10 +303,6 @@ class AutofillClient { // Returns the VotesUploader. virtual VotesUploader& GetVotesUploader() = 0; @@ -246,9 +246,22 @@ diff --git a/components/autofill/core/browser/foundations/autofill_client.h b/co diff --git a/components/autofill/core/browser/foundations/autofill_manager.cc b/components/autofill/core/browser/foundations/autofill_manager.cc --- a/components/autofill/core/browser/foundations/autofill_manager.cc +++ b/components/autofill/core/browser/foundations/autofill_manager.cc -@@ -303,17 +303,6 @@ void AutofillManager::OnFormsParsed(const std::vector& forms) { - if (base::FeatureList::IsEnabled(features::debug::kShowDomNodeIDs)) { - driver().ExposeDomNodeIdsInAllFrames(); +@@ -317,12 +317,6 @@ void AutofillManager::QueryServerPredictions( + // StartQueryRequest() expects to include the queried forms. This would allow + // StartQueryRequest() to provide the queried forms to the callback + // automatically, instead of passing them in separately here. +- auto on_loaded = +- base::BindOnce(&AutofillManager::OnLoadedServerPredictions, GetWeakPtr(), +- queryable_forms, form_seen_timestamp); +- client().GetCrowdsourcingManager().StartQueryRequest( +- std::move(queryable_forms), driver().GetIsolationInfo(), +- std::move(on_loaded)); + } + + void AutofillManager::OnFormsParsed(const std::vector& forms, +@@ -359,19 +353,6 @@ void AutofillManager::OnFormsParsed(const std::vector& forms, + features::kAutofillServerQueryPredictionsEarly)) { + return; } - - // Query the server if at least one of the forms was parsed. @@ -256,10 +269,12 @@ diff --git a/components/autofill/core/browser/foundations/autofill_manager.cc b/ - NotifyObservers(&Observer::OnBeforeLoadedServerPredictions); - // If language detection is currently reparsing the form, wait until the - // server response is processed, to ensure server predictions are not lost. -- client().GetCrowdsourcingManager().StartQueryRequest( -- queryable_forms, driver().GetIsolationInfo(), +- auto on_loaded = - base::BindOnce(&AutofillManager::OnLoadedServerPredictions, -- GetWeakPtr())); +- GetWeakPtr(), queryable_forms, form_seen_timestamp); +- client().GetCrowdsourcingManager().StartQueryRequest( +- std::move(queryable_forms), driver().GetIsolationInfo(), +- std::move(on_loaded)); - } } @@ -267,18 +282,18 @@ diff --git a/components/autofill/core/browser/foundations/autofill_manager.cc b/ diff --git a/components/autofill/core/common/autofill_features.cc b/components/autofill/core/common/autofill_features.cc --- a/components/autofill/core/common/autofill_features.cc +++ b/components/autofill/core/common/autofill_features.cc -@@ -855,6 +855,7 @@ BASE_FEATURE(kAutofillPopupDontAcceptNonVisibleEnoughSuggestion, +@@ -825,6 +825,7 @@ BASE_FEATURE(kAutofillPopupDontAcceptNonVisibleEnoughSuggestion, // affect their functionality. BASE_FEATURE(kAutofillPopupZOrderSecuritySurface, base::FEATURE_ENABLED_BY_DEFAULT); +SET_CROMITE_FEATURE_ENABLED(kAutofillPopupZOrderSecuritySurface); - // Allows the import of an Autofill profile if duplicate fields were present - // with identical field values. + // Replaces cached web elements in AutofillAgent and FormTracker by their + // renderer ids. diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/autofill/core/common/autofill_prefs.cc --- a/components/autofill/core/common/autofill_prefs.cc +++ b/components/autofill/core/common/autofill_prefs.cc -@@ -31,7 +31,7 @@ constexpr char kAutofillRanQuasiDuplicateExtraDeduplication[] = +@@ -35,7 +35,7 @@ constexpr char kAutofillRanExtraDeduplication[] = void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { // Synced prefs. Used for cross-device choices, e.g., credit card Autofill. registry->RegisterBooleanPref( @@ -287,7 +302,7 @@ diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/auto user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); registry->RegisterIntegerPref( kAutofillLastVersionDeduped, 0, -@@ -59,10 +59,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -63,10 +63,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { kAutofillHasSeenIban, false, user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); registry->RegisterBooleanPref( @@ -300,15 +315,15 @@ diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/auto user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); registry->RegisterBooleanPref( kAutofillPaymentCardBenefits, true, -@@ -114,7 +114,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { - #endif +@@ -165,7 +165,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { + } // Deprecated prefs registered for migration. - registry->RegisterBooleanPref(kAutofillEnabledDeprecated, true); + registry->RegisterBooleanPref(kAutofillEnabledDeprecated, false); registry->RegisterStringPref(kAutofillAblationSeedPref, ""); - registry->RegisterBooleanPref(kAutofillRanQuasiDuplicateExtraDeduplication, - false); + #if BUILDFLAG(IS_ANDROID) + registry->RegisterBooleanPref(kFacilitatedPaymentsPixAccountLinkingDeprecated, diff --git a/components/password_manager/core/browser/password_generation_frame_helper.cc b/components/password_manager/core/browser/password_generation_frame_helper.cc --- a/components/password_manager/core/browser/password_generation_frame_helper.cc +++ b/components/password_manager/core/browser/password_generation_frame_helper.cc diff --git a/build/patches/bromite-build-utils.patch b/build/patches/bromite-build-utils.patch index d97038fd..ace245fb 100644 --- a/build/patches/bromite-build-utils.patch +++ b/build/patches/bromite-build-utils.patch @@ -424,7 +424,7 @@ new file mode 100644 diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn --- a/build/config/BUILDCONFIG.gn +++ b/build/config/BUILDCONFIG.gn -@@ -832,3 +832,5 @@ if (is_component_build) { +@@ -829,3 +829,5 @@ if (is_component_build) { set_defaults("component") { configs = default_component_configs } @@ -456,7 +456,7 @@ diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java -@@ -15,6 +15,11 @@ import org.chromium.components.browser_ui.settings.SettingsNavigation; +@@ -17,6 +17,11 @@ import org.chromium.components.dom_distiller.core.DistilledPagePrefs; import org.chromium.components.user_prefs.UserPrefs; import org.chromium.content_public.browser.BrowserContextHandle; diff --git a/build/patches/disable-WebView-variations-support.patch b/build/patches/disable-WebView-variations-support.patch index cd268b60..8f757bdf 100644 --- a/build/patches/disable-WebView-variations-support.patch +++ b/build/patches/disable-WebView-variations-support.patch @@ -29,7 +29,7 @@ diff --git a/android_webview/glue/java/src/com/android/webview/chromium/WebViewC diff --git a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java --- a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java +++ b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java -@@ -658,10 +658,6 @@ public class WebViewChromiumFactoryProvider implements WebViewFactoryProvider { +@@ -677,10 +677,6 @@ public class WebViewChromiumFactoryProvider implements WebViewFactoryProvider { // This must happen after pref value has been read and SafeMode setup has completed. setupStartupTaskExperiments(androidXConfig); diff --git a/build/patches/dns-send-IPv6-connectivity-probes-to-RIPE-DNS.patch b/build/patches/dns-send-IPv6-connectivity-probes-to-RIPE-DNS.patch index dda78a4f..7875b39a 100644 --- a/build/patches/dns-send-IPv6-connectivity-probes-to-RIPE-DNS.patch +++ b/build/patches/dns-send-IPv6-connectivity-probes-to-RIPE-DNS.patch @@ -16,7 +16,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc --- a/net/dns/host_resolver_manager.cc +++ b/net/dns/host_resolver_manager.cc -@@ -150,12 +150,12 @@ const size_t kMaxHostLength = 4096; +@@ -149,12 +149,12 @@ const size_t kMaxHostLength = 4096; // Time between IPv6 probes, i.e. for how long results of each IPv6 probe are // cached. diff --git a/build/patches/do-not-block-build-incompatible-profiles.patch b/build/patches/do-not-block-build-incompatible-profiles.patch index e5d7ead9..89d025f7 100644 --- a/build/patches/do-not-block-build-incompatible-profiles.patch +++ b/build/patches/do-not-block-build-incompatible-profiles.patch @@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/v8/BUILD.gn b/v8/BUILD.gn --- a/v8/BUILD.gn +++ b/v8/BUILD.gn -@@ -2671,7 +2671,7 @@ template("run_mksnapshot") { +@@ -2766,7 +2766,7 @@ template("run_mksnapshot") { # Replace this with --warn-about-builtin-profile-data to see the full # list of builtins with incompatible profiles. diff --git a/build/patches/enable-ftrivial-auto-var-init-zero.patch b/build/patches/enable-ftrivial-auto-var-init-zero.patch index 0daf2ffb..e1cd09c5 100644 --- a/build/patches/enable-ftrivial-auto-var-init-zero.patch +++ b/build/patches/enable-ftrivial-auto-var-init-zero.patch @@ -11,7 +11,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn -@@ -480,6 +480,10 @@ config("compiler") { +@@ -481,6 +481,10 @@ config("compiler") { cflags += [ "-fwrapv" ] } diff --git a/build/patches/eyeo-133.0.6943.49-android_settings.patch b/build/patches/eyeo-133.0.6943.49-android_settings.patch index 15ab15c5..aa60a0f6 100644 --- a/build/patches/eyeo-133.0.6943.49-android_settings.patch +++ b/build/patches/eyeo-133.0.6943.49-android_settings.patch @@ -237,7 +237,7 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module and Android API diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -267,6 +267,10 @@ if (_is_default_toolchain) { +@@ -276,6 +276,10 @@ if (_is_default_toolchain) { deps += [ "//chrome/browser:screen_capture_java_resources" ] } @@ -248,7 +248,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn if (enable_extensions_core) { deps += [ "//chrome/browser/ui/android/extensions:java_resources" ] } -@@ -799,6 +803,10 @@ if (_is_default_toolchain) { +@@ -812,6 +816,10 @@ if (_is_default_toolchain) { "//chrome/browser/password_entry_edit:public_java", ] @@ -272,7 +272,7 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j --> diff --git a/build/patches/eyeo-133.0.6943.49-base.patch b/build/patches/eyeo-133.0.6943.49-base.patch index cb914315..65796084 100644 --- a/build/patches/eyeo-133.0.6943.49-base.patch +++ b/build/patches/eyeo-133.0.6943.49-base.patch @@ -9,7 +9,7 @@ Based on Chromium 133.0.6943.49 README.md | 12 + base/threading/thread_restrictions.h | 9 + base/trace_event/builtin_categories.h | 1 + - components/BUILD.gn | 2 + + components/BUILD.gn | 1 + components/adblock/BUILD.gn | 36 + components/adblock/CHANGELOG.md | 746 +++++++++ components/adblock/LICENSE | 674 ++++++++ @@ -332,9 +332,9 @@ Based on Chromium 133.0.6943.49 .../adblock/core/test/mock_sitekey_storage.h | 49 + .../core/test/sitekey_storage_impl_test.cc | 155 ++ components/adblock/features.gni | 51 + - .../loader/navigation_url_loader_impl.cc | 6 +- + .../loader/navigation_url_loader_impl.cc | 2 +- .../renderer_host/render_frame_host_impl.cc | 10 + - .../renderer_host/render_frame_host_impl.h | 8 + + .../renderer_host/render_frame_host_impl.h | 6 + content/public/browser/render_frame_host.h | 7 + content/public/common/isolated_world_ids.h | 8 + content/public/test/fake_local_frame.cc | 7 + @@ -365,7 +365,7 @@ Based on Chromium 133.0.6943.49 tools/eyeo/update_git_grafts.py | 138 ++ tools/gritsettings/resource_ids.spec | 12 + .../histograms/metadata/extensions/enums.xml | 8 +- - 361 files changed, 48836 insertions(+), 9 deletions(-) + 361 files changed, 48829 insertions(+), 9 deletions(-) create mode 100644 components/adblock/BUILD.gn create mode 100644 components/adblock/CHANGELOG.md create mode 100644 components/adblock/LICENSE @@ -720,7 +720,7 @@ diff --git a/DEPS b/DEPS # If you change this, also update the libc++ revision in # //buildtools/deps_revisions.gni. 'libcxx_revision': '7ab65651aed6802d2599dcb7a73b1f82d5179d05', -@@ -1628,6 +1634,10 @@ deps = { +@@ -1630,6 +1636,10 @@ deps = { 'condition': 'checkout_android and checkout_src_internal', }, @@ -729,7 +729,7 @@ diff --git a/DEPS b/DEPS + }, + 'src/docs/website': { - 'url': Var('chromium_git') + '/website.git' + '@' + 'cb33846322e88ba1acc3188c1daa4b00b94be767', + 'url': Var('chromium_git') + '/website.git' + '@' + '5522b25f3da74caafdcd3f1bcf33380f9f023a1c', }, diff --git a/LICENSE b/LICENSE --- a/LICENSE @@ -796,7 +796,7 @@ diff --git a/base/threading/thread_restrictions.h b/base/threading/thread_restri namespace ash { class LoginEventRecorder; class StartupCustomizationDocument; -@@ -665,6 +672,8 @@ class BASE_EXPORT ScopedAllowBlocking { +@@ -668,6 +675,8 @@ class BASE_EXPORT ScopedAllowBlocking { friend class ::BrowserStateDirectoryBuilder; #endif @@ -808,7 +808,7 @@ diff --git a/base/threading/thread_restrictions.h b/base/threading/thread_restri diff --git a/base/trace_event/builtin_categories.h b/base/trace_event/builtin_categories.h --- a/base/trace_event/builtin_categories.h +++ b/base/trace_event/builtin_categories.h -@@ -139,6 +139,7 @@ PERFETTO_DEFINE_CATEGORIES_IN_NAMESPACE_WITH_ATTRS( +@@ -141,6 +141,7 @@ PERFETTO_DEFINE_CATEGORIES_IN_NAMESPACE_WITH_ATTRS( "Traces for the extension file (content) verification process at " "//extensions/browser/content_verifier.").SetTags("debug"), perfetto::Category("explore_sites"), @@ -819,15 +819,7 @@ diff --git a/base/trace_event/builtin_categories.h b/base/trace_event/builtin_ca diff --git a/components/BUILD.gn b/components/BUILD.gn --- a/components/BUILD.gn +++ b/components/BUILD.gn -@@ -184,6 +184,7 @@ test("components_unittests") { - - deps = [ - "//base", -+ "//components/adblock:unit_tests", - "//components/affiliations/core/browser:unit_tests", - "//components/aggregation_service:unit_tests", - "//components/apdu:unit_tests", -@@ -1120,6 +1121,7 @@ if (use_blink) { +@@ -1133,6 +1133,7 @@ if (use_blink) { deps = [ "//base", "//base/test:test_support", @@ -50217,18 +50209,7 @@ new file mode 100644 diff --git a/content/browser/loader/navigation_url_loader_impl.cc b/content/browser/loader/navigation_url_loader_impl.cc --- a/content/browser/loader/navigation_url_loader_impl.cc +++ b/content/browser/loader/navigation_url_loader_impl.cc -@@ -2,6 +2,10 @@ - // Use of this source code is governed by a BSD-style license that can be - // found in the LICENSE file. - -+// This source code is a part of eyeo Chromium SDK. -+// Use of this source code is governed by the GPLv3 that can be found in the -+// components/adblock/LICENSE file. -+ - #include "content/browser/loader/navigation_url_loader_impl.h" - - #include -@@ -1570,7 +1574,7 @@ void NavigationURLLoaderImpl::OnReceiveRedirect( +@@ -1572,7 +1572,7 @@ void NavigationURLLoaderImpl::OnReceiveRedirect( ? head->bypass_redirect_checks : bypass_redirect_checks_; @@ -50251,7 +50232,7 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/b #include "content/browser/renderer_host/render_frame_host_impl.h" -@@ -3711,6 +3715,12 @@ void RenderFrameHostImpl::ExecuteJavaScriptMethod( +@@ -3794,6 +3798,12 @@ void RenderFrameHostImpl::ExecuteJavaScriptMethod( std::move(callback)); } @@ -50278,14 +50259,12 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.h b/content/br #ifndef CONTENT_BROWSER_RENDERER_HOST_RENDER_FRAME_HOST_IMPL_H_ #define CONTENT_BROWSER_RENDERER_HOST_RENDER_FRAME_HOST_IMPL_H_ -@@ -513,6 +517,10 @@ class CONTENT_EXPORT RenderFrameHostImpl +@@ -516,6 +520,8 @@ class CONTENT_EXPORT RenderFrameHostImpl const std::u16string& method_name, - base::Value::List arguments, + base::ListValue arguments, JavaScriptResultCallback callback) override; -+ + // https://gitlab.com/eyeo/adblockplus/chromium/issues/35 + void InsertAbpElemhideStylesheet(const std::string& stylesheet) override; -+ void ExecuteJavaScript(const std::u16string& javascript, JavaScriptResultCallback callback) override; void ExecuteJavaScriptInIsolatedWorld(const std::u16string& javascript, @@ -50303,7 +50282,7 @@ diff --git a/content/public/browser/render_frame_host.h b/content/public/browser #ifndef CONTENT_PUBLIC_BROWSER_RENDER_FRAME_HOST_H_ #define CONTENT_PUBLIC_BROWSER_RENDER_FRAME_HOST_H_ -@@ -560,6 +564,9 @@ class CONTENT_EXPORT RenderFrameHost : public IPC::Listener { +@@ -566,6 +570,9 @@ class CONTENT_EXPORT RenderFrameHost : public IPC::Listener { virtual void AddMessageToConsole(blink::mojom::ConsoleMessageLevel level, const std::string& message) = 0; @@ -50352,7 +50331,7 @@ diff --git a/content/public/test/fake_local_frame.cc b/content/public/test/fake_ #include "content/public/test/fake_local_frame.h" -@@ -99,6 +103,9 @@ void FakeLocalFrame::RequestVideoFrameAtWithBoundsHint( +@@ -102,6 +106,9 @@ void FakeLocalFrame::RequestVideoFrameAtWithBoundsHint( void FakeLocalFrame::PluginActionAt(const gfx::Point& location, blink::mojom::PluginActionType action) {} @@ -50376,7 +50355,7 @@ diff --git a/content/public/test/fake_local_frame.h b/content/public/test/fake_l #ifndef CONTENT_PUBLIC_TEST_FAKE_LOCAL_FRAME_H_ #define CONTENT_PUBLIC_TEST_FAKE_LOCAL_FRAME_H_ -@@ -81,6 +85,7 @@ class FakeLocalFrame : public blink::mojom::LocalFrame { +@@ -85,6 +89,7 @@ class FakeLocalFrame : public blink::mojom::LocalFrame { RequestVideoFrameAtWithBoundsHintCallback callback) override; void PluginActionAt(const gfx::Point& location, blink::mojom::PluginActionType action) override; @@ -50397,7 +50376,7 @@ diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn import("//build/config/cast.gni") import("//build/config/chromeos/ui_mode.gni") -@@ -172,6 +175,10 @@ inspector_protocol_generate("protocol_sources") { +@@ -179,6 +182,10 @@ inspector_protocol_generate("protocol_sources") { static_library("content_shell_lib") { testonly = true sources = [ @@ -50408,7 +50387,7 @@ diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn "browser/protocol/browser_handler.cc", "browser/protocol/browser_handler.h", "browser/protocol/domain_handler.h", -@@ -241,6 +248,7 @@ static_library("content_shell_lib") { +@@ -248,6 +255,7 @@ static_library("content_shell_lib") { "browser/shell_platform_delegate_android.cc", "browser/shell_web_contents_view_delegate_android.cc", ] @@ -50416,7 +50395,7 @@ diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn } if (is_mac) { -@@ -321,6 +329,8 @@ static_library("content_shell_lib") { +@@ -328,6 +336,8 @@ static_library("content_shell_lib") { ":shell_controller_mojom", "//base", "//base:base_static", @@ -50425,15 +50404,15 @@ diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn "//components/cdm/renderer", "//components/custom_handlers", "//components/custom_handlers:test_support", -@@ -339,6 +349,7 @@ static_library("content_shell_lib") { - "//components/prefs", +@@ -347,6 +357,7 @@ static_library("content_shell_lib") { "//components/services/storage/test_api", + "//components/surface_embed/buildflags", "//components/url_formatter", + "//components/user_prefs:user_prefs", "//components/variations/service", "//components/web_cache/renderer", "//content:content_resources", -@@ -430,6 +441,7 @@ static_library("content_shell_lib") { +@@ -442,6 +453,7 @@ static_library("content_shell_lib") { "//mojo/public/java/system:test_support", "//ui/android", ] @@ -50441,7 +50420,7 @@ diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn } if (shell_use_toolkit_views) { -@@ -520,6 +532,8 @@ repack("pak") { +@@ -532,6 +544,8 @@ repack("pak") { sources = [ "$root_gen_dir/base/tracing/protos/tracing_proto_resources.pak", @@ -50450,7 +50429,7 @@ diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn "$root_gen_dir/components/ukm_resources.pak", "$root_gen_dir/content/attribution_internals_resources.pak", "$root_gen_dir/content/browser/resources/media/media_internals_resources.pak", -@@ -553,6 +567,8 @@ repack("pak") { +@@ -565,6 +579,8 @@ repack("pak") { deps = [ ":resources", "//base/tracing/protos:chrome_track_event_resources", @@ -50809,7 +50788,7 @@ diff --git a/extensions/browser/api/web_request/web_request_proxying_url_loader_ #include "extensions/browser/api/web_request/web_request_proxying_url_loader_factory.h" #include -@@ -468,7 +472,7 @@ void WebRequestProxyingURLLoaderFactory::InProgressRequest::OnReceiveRedirect( +@@ -469,7 +473,7 @@ void WebRequestProxyingURLLoaderFactory::InProgressRequest::OnReceiveRedirect( head->bypass_redirect_checks = true; } @@ -50879,7 +50858,7 @@ diff --git a/third_party/blink/public/mojom/frame/frame.mojom b/third_party/blin module blink.mojom; -@@ -1007,6 +1011,10 @@ interface LocalFrame { +@@ -1009,6 +1013,10 @@ interface LocalFrame { // the given point in the view coordinate space. PluginActionAt(gfx.mojom.Point location, blink.mojom.PluginActionType action); @@ -50904,7 +50883,7 @@ diff --git a/third_party/blink/public/web/web_document.h b/third_party/blink/pub #ifndef THIRD_PARTY_BLINK_PUBLIC_WEB_WEB_DOCUMENT_H_ #define THIRD_PARTY_BLINK_PUBLIC_WEB_WEB_DOCUMENT_H_ -@@ -154,6 +158,14 @@ class BLINK_EXPORT WebDocument : public WebNode { +@@ -159,6 +163,14 @@ class BLINK_EXPORT WebDocument : public WebNode { WebCssOrigin = WebCssOrigin::kAuthor, BackForwardCacheAware = BackForwardCacheAware::kAllow); @@ -50948,7 +50927,7 @@ diff --git a/third_party/blink/renderer/core/dom/events/event_target.cc b/third_ diff --git a/third_party/blink/renderer/core/exported/web_document.cc b/third_party/blink/renderer/core/exported/web_document.cc --- a/third_party/blink/renderer/core/exported/web_document.cc +++ b/third_party/blink/renderer/core/exported/web_document.cc -@@ -278,6 +278,56 @@ WebStyleSheetKey WebDocument::InsertStyleSheet( +@@ -279,6 +279,56 @@ WebStyleSheetKey WebDocument::InsertStyleSheet( return injection_key; } @@ -51019,7 +50998,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame_mojo_handler.cc b #include "third_party/blink/renderer/core/frame/local_frame_mojo_handler.h" -@@ -350,6 +354,14 @@ LocalFrameMojoHandler::LocalFrameMojoHandler(blink::LocalFrame& frame) +@@ -352,6 +356,14 @@ LocalFrameMojoHandler::LocalFrameMojoHandler(blink::LocalFrame& frame) WrapWeakPersistent(this))); } @@ -51048,7 +51027,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame_mojo_handler.h b/ #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_FRAME_LOCAL_FRAME_MOJO_HANDLER_H_ #define THIRD_PARTY_BLINK_RENDERER_CORE_FRAME_LOCAL_FRAME_MOJO_HANDLER_H_ -@@ -110,6 +114,7 @@ class LocalFrameMojoHandler +@@ -114,6 +118,7 @@ class LocalFrameMojoHandler void AddMessageToConsole(mojom::blink::ConsoleMessageLevel level, const String& message, bool discard_duplicates) final; @@ -51059,7 +51038,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame_mojo_handler.h b/ diff --git a/third_party/blink/renderer/core/html/html_element.cc b/third_party/blink/renderer/core/html/html_element.cc --- a/third_party/blink/renderer/core/html/html_element.cc +++ b/third_party/blink/renderer/core/html/html_element.cc -@@ -2917,7 +2917,13 @@ void HTMLElement::setSpellcheck(bool enable) { +@@ -2942,7 +2942,13 @@ void HTMLElement::setSpellcheck(bool enable) { } void HTMLElement::click() { @@ -51738,7 +51717,7 @@ diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ # This file is used to assign starting resource ids for resources and strings # used by Chromium. This is done to ensure that resource ids are unique # across all the grd files. If you are adding a new grd file, please add -@@ -1260,6 +1264,14 @@ +@@ -1271,6 +1275,14 @@ "components/user_scripts/browser/resources/browser_resources.grd": { "includes": [7625], }, @@ -51776,10 +51755,10 @@ diff --git a/tools/metrics/histograms/metadata/extensions/enums.xml b/tools/metr -@@ -3266,6 +3270,8 @@ Called by update_extension_permission.py.--> - +@@ -3267,6 +3271,8 @@ Called by update_extension_permission.py.--> + + + diff --git a/build/patches/eyeo-133.0.6943.49-chrome_integration.patch b/build/patches/eyeo-133.0.6943.49-chrome_integration.patch index 9689ad3d..6100a66c 100644 --- a/build/patches/eyeo-133.0.6943.49-chrome_integration.patch +++ b/build/patches/eyeo-133.0.6943.49-chrome_integration.patch @@ -49,7 +49,7 @@ diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegat #include "chrome/browser/buildflags.h" #include "chrome/browser/chrome_content_browser_client.h" #include "chrome/browser/chrome_resource_bundle_helper.h" -@@ -1624,7 +1629,7 @@ content::ContentClient* ChromeMainDelegate::CreateContentClient() { +@@ -1612,7 +1617,7 @@ content::ContentClient* ChromeMainDelegate::CreateContentClient() { content::ContentBrowserClient* ChromeMainDelegate::CreateContentBrowserClient() { chrome_content_browser_client_ = @@ -71,7 +71,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn import("//base/allocator/allocator.gni") import("//build/buildflag_header.gni") -@@ -207,6 +210,8 @@ static_library("browser") { +@@ -208,6 +211,8 @@ static_library("browser") { "accessibility/page_colors_controller_factory.h", "accessibility/prefers_default_scrollbar_styles_prefs.cc", "accessibility/prefers_default_scrollbar_styles_prefs.h", @@ -80,7 +80,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "after_startup_task_utils.cc", "after_startup_task_utils.h", "bad_message.cc", -@@ -2072,6 +2077,7 @@ static_library("browser") { +@@ -2058,6 +2063,7 @@ static_library("browser") { "//chrome/common/notifications", "//chrome/installer/util:with_no_strings", "//chrome/services/speech/buildflags", @@ -88,7 +88,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "//components/application_locale_storage", "//components/assist_ranker", "//components/autofill/content/browser", -@@ -8498,6 +8504,7 @@ static_library("browser_public_dependencies") { +@@ -8492,6 +8498,7 @@ static_library("browser_public_dependencies") { "//chrome/services/file_util/public/mojom", "//components/account_id", "//components/autofill/content/browser", @@ -194,7 +194,7 @@ diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_brows #include "components/color/color_mixers.h" #include "components/device_event_log/device_event_log.h" #include "components/embedder_support/origin_trials/component_updater_utils.h" -@@ -1795,6 +1800,8 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { +@@ -1824,6 +1829,8 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { // called inside PostProfileInit. content::WebUIControllerFactory::RegisterFactory( ChromeWebUIControllerFactory::GetInstance()); @@ -216,7 +216,7 @@ diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUIL import("//build/config/chromebox_for_meetings/buildflags.gni") import("//build/config/chromeos/ui_mode.gni") -@@ -485,6 +488,7 @@ source_set("extensions") { +@@ -482,6 +485,7 @@ source_set("extensions") { "window_controller_list.h", "window_controller_list_observer.h", ] @@ -224,7 +224,7 @@ diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUIL configs += [ "//build/config:precompiled_headers", "//build/config/compiler:wexit_time_destructors", -@@ -824,6 +828,7 @@ source_set("extensions") { +@@ -834,6 +838,7 @@ source_set("extensions") { ] } @@ -302,7 +302,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc #include "chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.h" -@@ -250,6 +254,15 @@ +@@ -251,6 +255,15 @@ #include "chrome/browser/webid/federated_identity_permission_context_factory.h" #include "chrome/common/buildflags.h" #include "chrome/common/chrome_features.h" @@ -318,10 +318,10 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc #include "components/autofill/content/browser/autofill_log_router_factory.h" #include "components/breadcrumbs/core/breadcrumbs_status.h" #include "components/captive_portal/core/buildflags.h" -@@ -940,6 +953,15 @@ void ChromeBrowserMainExtraPartsProfiles:: - // Makes manual testing possible. - FakeSmartCardDeviceServiceFactory::GetInstance(); - #endif +@@ -959,6 +972,15 @@ void ChromeBrowserMainExtraPartsProfiles:: + FederatedIdentityApiPermissionContextFactory::GetInstance(); + FederatedIdentityAutoReauthnPermissionContextFactory::GetInstance(); + FederatedIdentityPermissionContextFactory::GetInstance(); + adblock::AdblockTelemetryServiceFactory::GetInstance(); + adblock::AdblockRequestThrottleFactory::GetInstance(); + adblock::ContentSecurityPolicyInjectorFactory::GetInstance(); @@ -332,7 +332,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc + adblock::SubscriptionPersistentMetadataFactory::GetInstance(); + adblock::SubscriptionServiceFactory::GetInstance(); #if BUILDFLAG(IS_ANDROID) - FastCheckoutCapabilitiesFetcherFactory::GetInstance(); + feed::FeedServiceFactory::GetInstance(); #endif diff --git a/chrome/browser/resources/BUILD.gn b/chrome/browser/resources/BUILD.gn --- a/chrome/browser/resources/BUILD.gn @@ -347,7 +347,7 @@ diff --git a/chrome/browser/resources/BUILD.gn b/chrome/browser/resources/BUILD. import("//chrome/browser/buildflags.gni") import("//chrome/common/features.gni") -@@ -305,6 +308,7 @@ group("dev_ui_resources") { +@@ -313,6 +316,7 @@ group("dev_ui_resources") { "predictors:resources", "privacy_sandbox/internals:resources", "usb_internals:resources", @@ -355,7 +355,7 @@ diff --git a/chrome/browser/resources/BUILD.gn b/chrome/browser/resources/BUILD. "//components/commerce/core/internals/resources", "//components/data_sharing/data_sharing_internals/resources", "//components/download/resources/download_internals:resources", -@@ -379,6 +383,7 @@ repack("dev_ui_paks") { +@@ -387,6 +391,7 @@ repack("dev_ui_paks") { "$root_gen_dir/chrome/predictors_resources.pak", "$root_gen_dir/chrome/privacy_sandbox_internals_resources.pak", "$root_gen_dir/chrome/usb_internals_resources.pak", @@ -376,7 +376,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn import("//build/config/buildflags_paint_preview.gni") import("//build/config/compiler/compiler.gni") -@@ -413,6 +416,7 @@ static_library("ui") { +@@ -410,6 +413,7 @@ static_library("ui") { "//chrome/installer/util:with_no_strings", "//components/access_code_cast/common:metrics", "//components/account_id", @@ -435,7 +435,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc #include "chrome/browser/ui/tab_helpers.h" -@@ -102,6 +106,8 @@ +@@ -103,6 +107,8 @@ #include "chrome/common/chrome_features.h" #include "chrome/common/chrome_isolated_world_ids.h" #include "chrome/common/chrome_switches.h" @@ -444,7 +444,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc #include "components/blocked_content/popup_blocker_tab_helper.h" #include "components/blocked_content/popup_opener_tab_helper.h" #include "components/breadcrumbs/core/breadcrumbs_status.h" -@@ -335,6 +341,12 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -343,6 +349,12 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { optimization_guide_decider); } } @@ -457,7 +457,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc autofill::AutofillClientProvider& autofill_client_provider = autofill::AutofillClientProviderFactory::GetForProfile(profile); autofill_client_provider.CreateClientForWebContents(web_contents); -@@ -363,6 +375,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -371,6 +383,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { // completions. HttpAuthCacheStatus::HttpAuthCacheStatus::CreateForWebContents(web_contents); #endif // BUILDFLAG(IS_ANDROID) diff --git a/build/patches/eyeo-133.0.6943.49-extension_api.patch b/build/patches/eyeo-133.0.6943.49-extension_api.patch index 43d22daf..72b58516 100644 --- a/build/patches/eyeo-133.0.6943.49-extension_api.patch +++ b/build/patches/eyeo-133.0.6943.49-extension_api.patch @@ -10,69 +10,34 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module chrome/browser/extensions/api/BUILD.gn | 4 + .../adblock_private/adblock_private_api.cc | 693 +++++++++++++++ .../api/adblock_private/adblock_private_api.h | 360 ++++++++ - .../adblock_private_apitest.cc | 174 ++++ - .../adblock_private_apitest_backgroundpage.cc | 398 +++++++++ - .../adblock_private_apitest_base.cc | 103 +++ - .../adblock_private_apitest_base.h | 62 ++ - ...e_filter_lists_with_http_server_apitest.cc | 188 ++++ ...browser_context_keyed_service_factories.cc | 8 + .../eyeo_filtering_private_api.cc | 819 ++++++++++++++++++ .../eyeo_filtering_private_api.h | 392 +++++++++ - .../eyeo_filtering_private_apitest.cc | 173 ++++ - .../extension_function_registration_test.cc | 10 + .../common/extensions/api/_api_features.json | 22 + .../extensions/api/_permission_features.json | 18 + .../common/extensions/api/adblock_private.idl | 180 ++++ chrome/common/extensions/api/api_sources.gni | 5 + .../extensions/api/eyeo_filtering_private.idl | 207 +++++ .../permissions/chrome_api_permissions.cc | 8 + - .../permissions/permission_set_unittest.cc | 8 + - chrome/test/BUILD.gn | 14 + - .../api_test/adblock_private/empty.js | 14 + - .../api_test/adblock_private/main.html | 29 + - .../api_test/adblock_private/manifest.json | 32 + - .../api_test/adblock_private/some-popup.html | 24 + - .../api_test/adblock_private/test.html | 25 + - .../api_test/adblock_private/test.js | 609 +++++++++++++ - .../api_test/eyeo_filtering_private/empty.js | 14 + - .../api_test/eyeo_filtering_private/main.html | 29 + - .../eyeo_filtering_private/manifest.json | 31 + - .../api_test/eyeo_filtering_private/test.js | 429 +++++++++ .../browser/extension_event_histogram_value.h | 7 +- .../common/mojom/api_permission_id.mojom | 6 + tools/metrics/histograms/enums.xml | 3 + .../definitions/adblock_private.d.ts | 182 ++++ .../definitions/eyeo_filtering_private.d.ts | 266 ++++++ - 37 files changed, 5556 insertions(+), 1 deletion(-) + 18 files changed, 3190 insertions(+), 1 deletion(-) create mode 100644 chrome/browser/extensions/api/adblock_private/adblock_private_api.cc create mode 100644 chrome/browser/extensions/api/adblock_private/adblock_private_api.h - create mode 100644 chrome/browser/extensions/api/adblock_private/adblock_private_apitest.cc - create mode 100644 chrome/browser/extensions/api/adblock_private/adblock_private_apitest_backgroundpage.cc - create mode 100644 chrome/browser/extensions/api/adblock_private/adblock_private_apitest_base.cc - create mode 100644 chrome/browser/extensions/api/adblock_private/adblock_private_apitest_base.h - create mode 100644 chrome/browser/extensions/api/adblock_private/adblock_private_filter_lists_with_http_server_apitest.cc create mode 100644 chrome/browser/extensions/api/eyeo_filtering_private/eyeo_filtering_private_api.cc create mode 100644 chrome/browser/extensions/api/eyeo_filtering_private/eyeo_filtering_private_api.h - create mode 100644 chrome/browser/extensions/api/eyeo_filtering_private/eyeo_filtering_private_apitest.cc create mode 100644 chrome/common/extensions/api/adblock_private.idl create mode 100644 chrome/common/extensions/api/eyeo_filtering_private.idl - create mode 100644 chrome/test/data/extensions/api_test/adblock_private/empty.js - create mode 100644 chrome/test/data/extensions/api_test/adblock_private/main.html - create mode 100644 chrome/test/data/extensions/api_test/adblock_private/manifest.json - create mode 100644 chrome/test/data/extensions/api_test/adblock_private/some-popup.html - create mode 100644 chrome/test/data/extensions/api_test/adblock_private/test.html - create mode 100644 chrome/test/data/extensions/api_test/adblock_private/test.js - create mode 100644 chrome/test/data/extensions/api_test/eyeo_filtering_private/empty.js - create mode 100644 chrome/test/data/extensions/api_test/eyeo_filtering_private/main.html - create mode 100644 chrome/test/data/extensions/api_test/eyeo_filtering_private/manifest.json - create mode 100644 chrome/test/data/extensions/api_test/eyeo_filtering_private/test.js create mode 100644 tools/typescript/definitions/adblock_private.d.ts create mode 100644 tools/typescript/definitions/eyeo_filtering_private.d.ts diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUILD.gn --- a/chrome/browser/extensions/BUILD.gn +++ b/chrome/browser/extensions/BUILD.gn -@@ -828,6 +828,17 @@ source_set("extensions") { +@@ -838,6 +838,17 @@ source_set("extensions") { ] } @@ -103,7 +68,7 @@ diff --git a/chrome/browser/extensions/api/BUILD.gn b/chrome/browser/extensions/ import("//chrome/common/extensions/api/api_sources.gni") import("//chrome/common/features.gni") -@@ -142,6 +145,7 @@ function_registration("api_registration") { +@@ -143,6 +146,7 @@ function_registration("api_registration") { # include generated headers from these targets. # TODO(brettw) this should be made unnecessary if possible. "//chrome/common/extensions/api", @@ -1174,956 +1139,6 @@ new file mode 100644 +} // namespace extensions + +#endif // CHROME_BROWSER_EXTENSIONS_API_ADBLOCK_PRIVATE_ADBLOCK_PRIVATE_API_H_ -diff --git a/chrome/browser/extensions/api/adblock_private/adblock_private_apitest.cc b/chrome/browser/extensions/api/adblock_private/adblock_private_apitest.cc -new file mode 100644 ---- /dev/null -+++ b/chrome/browser/extensions/api/adblock_private/adblock_private_apitest.cc -@@ -0,0 +1,174 @@ -+// This file is part of eyeo Chromium SDK, -+// Copyright (C) 2006-present eyeo GmbH -+// -+// eyeo Chromium SDK is free software: you can redistribute it and/or modify -+// it under the terms of the GNU General Public License version 3 as -+// published by the Free Software Foundation. -+// -+// eyeo Chromium SDK is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+// -+// You should have received a copy of the GNU General Public License -+// along with eyeo Chromium SDK. If not, see . -+ -+#include -+#include -+ -+#include "chrome/browser/extensions/api/adblock_private/adblock_private_apitest_base.h" -+#include "chrome/browser/profiles/profile.h" -+#include "chrome/browser/ui/browser.h" -+#include "components/adblock/content/browser/factories/subscription_service_factory.h" -+#include "components/adblock/content/browser/test/adblock_browsertest_base.h" -+#include "components/adblock/core/common/adblock_constants.h" -+#include "components/adblock/core/subscription/subscription_service.h" -+ -+namespace extensions { -+ -+class AdblockPrivateApiTest -+ : public AdblockPrivateApiTestBase, -+ public testing::WithParamInterface< -+ std::tuple> { -+ public: -+ AdblockPrivateApiTest() {} -+ ~AdblockPrivateApiTest() override = default; -+ AdblockPrivateApiTest(const AdblockPrivateApiTest&) = delete; -+ AdblockPrivateApiTest& operator=(const AdblockPrivateApiTest&) = delete; -+ -+ bool IsIncognito() override { -+ return std::get<1>(GetParam()) == -+ AdblockPrivateApiTestBase::Mode::Incognito; -+ } -+ -+ std::string GetApiEndpoint() override { -+ return std::get<0>(GetParam()) == -+ AdblockPrivateApiTestBase::EyeoExtensionApi::Old -+ ? "adblockPrivate" -+ : "eyeoFilteringPrivate"; -+ } -+ -+ std::map FindExpectedDefaultFilterLists() { -+ DCHECK(browser()->profile()->GetOriginalProfile()); -+ auto selected = adblock::SubscriptionServiceFactory::GetForBrowserContext( -+ browser()->profile()->GetOriginalProfile()) -+ ->GetFilteringConfiguration( -+ adblock::kAdblockFilteringConfigurationName) -+ ->GetFilterLists(); -+ const auto easylist = std::find_if( -+ selected.begin(), selected.end(), [&](const GURL& subscription) { -+ return base::EndsWith(subscription.path_piece(), "easylist.txt"); -+ }); -+ const auto exceptions = std::find_if( -+ selected.begin(), selected.end(), [&](const GURL& subscription) { -+ return base::EndsWith(subscription.path_piece(), -+ "exceptionrules.txt"); -+ }); -+ const auto snippets = std::find_if( -+ selected.begin(), selected.end(), [&](const GURL& subscription) { -+ return base::EndsWith(subscription.path_piece(), -+ "abp-filters-anti-cv.txt"); -+ }); -+ if (easylist == selected.end() || exceptions == selected.end() || -+ snippets == selected.end()) { -+ return std::map{}; -+ } -+ return std::map{ -+ {"easylist", easylist->spec()}, -+ {"exceptions", exceptions->spec()}, -+ {"snippets", snippets->spec()}}; -+ } -+}; -+ -+IN_PROC_BROWSER_TEST_P(AdblockPrivateApiTest, SetAndCheckEnabled) { -+ EXPECT_TRUE(RunTest("setEnabled_isEnabled")) << message_; -+} -+ -+IN_PROC_BROWSER_TEST_P(AdblockPrivateApiTest, SetAndCheckAAEnabled) { -+ EXPECT_TRUE(RunTest(GetApiEndpoint() == "adblockPrivate" -+ ? "setAAEnabled_isAAEnabled" -+ : "setAAEnabled_isAAEnabled_newAPI")) -+ << message_; -+} -+ -+IN_PROC_BROWSER_TEST_P(AdblockPrivateApiTest, GetBuiltInSubscriptions) { -+ if (GetApiEndpoint() == "adblockPrivate") { -+ EXPECT_TRUE(RunTest("getBuiltInSubscriptions")) << message_; -+ } -+} -+ -+IN_PROC_BROWSER_TEST_P(AdblockPrivateApiTest, InstallSubscriptionInvalidURL) { -+ EXPECT_TRUE(RunTest("installSubscriptionInvalidURL")) << message_; -+} -+ -+IN_PROC_BROWSER_TEST_P(AdblockPrivateApiTest, UninstallSubscriptionInvalidURL) { -+ EXPECT_TRUE(RunTest("uninstallSubscriptionInvalidURL")) << message_; -+} -+ -+IN_PROC_BROWSER_TEST_P(AdblockPrivateApiTest, SubscriptionsManagement) { -+ auto params = FindExpectedDefaultFilterLists(); -+ if (params.empty()) { -+ // Since default configuration has been changed let's skip this test -+ return; -+ } -+ EXPECT_TRUE(RunTestWithParams("subscriptionsManagement", params)) << message_; -+} -+ -+IN_PROC_BROWSER_TEST_P(AdblockPrivateApiTest, -+ SubscriptionsManagementConfigDisabled) { -+ auto params = FindExpectedDefaultFilterLists(); -+ if (params.empty()) { -+ // Since default configuration has been changed let's skip this test -+ return; -+ } -+ params.insert({"disabled", "true"}); -+ EXPECT_TRUE(RunTestWithParams("subscriptionsManagement", params)) << message_; -+} -+ -+IN_PROC_BROWSER_TEST_P(AdblockPrivateApiTest, AllowedDomainsManagement) { -+ EXPECT_TRUE(RunTest("allowedDomainsManagement")) << message_; -+} -+ -+IN_PROC_BROWSER_TEST_P(AdblockPrivateApiTest, CustomFiltersManagement) { -+ EXPECT_TRUE(RunTest("customFiltersManagement")) << message_; -+} -+ -+IN_PROC_BROWSER_TEST_P(AdblockPrivateApiTest, AdBlockedEvents) { -+ EXPECT_TRUE(RunTest("adBlockedEvents")) << message_; -+} -+ -+IN_PROC_BROWSER_TEST_P(AdblockPrivateApiTest, AdAllowedEvents) { -+ EXPECT_TRUE(RunTest("adAllowedEvents")) << message_; -+} -+ -+IN_PROC_BROWSER_TEST_P(AdblockPrivateApiTest, SessionStats) { -+ EXPECT_TRUE(RunTest("sessionStats")) << message_; -+} -+ -+IN_PROC_BROWSER_TEST_P(AdblockPrivateApiTest, AllowedDomainsEvent) { -+ EXPECT_TRUE(RunTest("allowedDomainsEvent")) << message_; -+} -+ -+IN_PROC_BROWSER_TEST_P(AdblockPrivateApiTest, EnabledStateEvent) { -+ EXPECT_TRUE(RunTest("enabledStateEvent")) << message_; -+} -+ -+IN_PROC_BROWSER_TEST_P(AdblockPrivateApiTest, FilterListsEvent) { -+ EXPECT_TRUE(RunTest("filterListsEvent")) << message_; -+} -+ -+IN_PROC_BROWSER_TEST_P(AdblockPrivateApiTest, CustomFiltersEvent) { -+ EXPECT_TRUE(RunTest("customFiltersEvent")) << message_; -+} -+ -+INSTANTIATE_TEST_SUITE_P( -+ , -+ AdblockPrivateApiTest, -+ testing::Combine( -+ testing::Values(AdblockPrivateApiTestBase::EyeoExtensionApi::Old, -+ AdblockPrivateApiTestBase::EyeoExtensionApi::New), -+ testing::Values(AdblockPrivateApiTestBase::Mode::Normal, -+ AdblockPrivateApiTestBase::Mode::Incognito))); -+ -+} // namespace extensions -diff --git a/chrome/browser/extensions/api/adblock_private/adblock_private_apitest_backgroundpage.cc b/chrome/browser/extensions/api/adblock_private/adblock_private_apitest_backgroundpage.cc -new file mode 100644 ---- /dev/null -+++ b/chrome/browser/extensions/api/adblock_private/adblock_private_apitest_backgroundpage.cc -@@ -0,0 +1,398 @@ -+// This file is part of eyeo Chromium SDK, -+// Copyright (C) 2006-present eyeo GmbH -+// -+// eyeo Chromium SDK is free software: you can redistribute it and/or modify -+// it under the terms of the GNU General Public License version 3 as -+// published by the Free Software Foundation. -+// -+// eyeo Chromium SDK is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+// -+// You should have received a copy of the GNU General Public License -+// along with eyeo Chromium SDK. If not, see . -+ -+#include "chrome/browser/extensions/api/adblock_private/adblock_private_apitest_base.h" -+#include "chrome/browser/profiles/profile.h" -+#include "chrome/browser/ui/browser.h" -+#include "chrome/test/base/ui_test_utils.h" -+#include "components/adblock/content/browser/factories/subscription_service_factory.h" -+#include "components/adblock/content/browser/test/adblock_browsertest_base.h" -+#include "components/adblock/core/common/adblock_constants.h" -+#include "components/adblock/core/subscription/subscription_service.h" -+#include "content/public/test/content_mock_cert_verifier.h" -+#include "extensions/browser/background_script_executor.h" -+#include "net/dns/mock_host_resolver.h" -+#include "net/test/embedded_test_server/embedded_test_server.h" -+ -+namespace extensions { -+ -+// Here are extension API tests for PageAllowed event and popup -+// events and stats, which are difficult to implement like other -+// tests in AdblockPrivateAPI class (purely in JS in test.js file). -+// Tests here require a background page to run script code. -+class AdblockPrivateApiBackgroundPageTest -+ : public AdblockPrivateApiTestBase, -+ public testing::WithParamInterface< -+ std::tuple> { -+ public: -+ AdblockPrivateApiBackgroundPageTest() {} -+ ~AdblockPrivateApiBackgroundPageTest() override = default; -+ AdblockPrivateApiBackgroundPageTest( -+ const AdblockPrivateApiBackgroundPageTest&) = delete; -+ AdblockPrivateApiBackgroundPageTest& operator=( -+ const AdblockPrivateApiBackgroundPageTest&) = delete; -+ -+ void SetUpCommandLine(base::CommandLine* command_line) override { -+ AdblockPrivateApiTestBase::SetUpCommandLine(command_line); -+ mock_cert_verifier_.SetUpCommandLine(command_line); -+ } -+ -+ protected: -+ void SetUpOnMainThread() override { -+ ExtensionApiTest::SetUpOnMainThread(); -+ -+ // Map example.com to localhost. -+ host_resolver()->AddRule("example.com", "127.0.0.1"); -+ -+ mock_cert_verifier_.mock_cert_verifier()->set_default_result(net::OK); -+ -+ https_test_server_ = std::make_unique( -+ net::EmbeddedTestServer::TYPE_HTTPS); -+ https_test_server_->SetSSLConfig(net::EmbeddedTestServer::CERT_OK); -+ https_test_server_->ServeFilesFromSourceDirectory(GetChromeTestDataDir()); -+ ASSERT_TRUE(https_test_server_->Start()); -+ -+ ASSERT_TRUE(StartEmbeddedTestServer()); -+ adblock::SubscriptionServiceFactory::GetForBrowserContext( -+ browser()->profile()->GetOriginalProfile()) -+ ->GetFilteringConfiguration(adblock::kAdblockFilteringConfigurationName) -+ ->RemoveCustomFilter(adblock::kAllowlistEverythingFilter); -+ -+ extension_ = LoadExtension(test_data_dir_.AppendASCII("adblock_private"), -+ {.allow_in_incognito = IsIncognito()}); -+ ASSERT_TRUE(extension_); -+ } -+ -+ bool IsOldApi() { return std::get<0>(GetParam()) == EyeoExtensionApi::Old; } -+ -+ std::string GetApiEndpoint() override { -+ return IsOldApi() ? "adblockPrivate" : "eyeoFilteringPrivate"; -+ } -+ -+ bool IsIncognito() override { -+ return std::get<1>(GetParam()) == -+ AdblockPrivateApiBackgroundPageTest::Mode::Incognito; -+ } -+ -+ void ExecuteScript(const std::string& js_code) const { -+ content::WebContents* web_contents = -+ browser()->tab_strip_model()->GetWebContentsAt(0); -+ ASSERT_TRUE(content::ExecJs(web_contents->GetPrimaryMainFrame(), js_code)); -+ } -+ -+ int ExecuteScriptIAndGetInt(const std::string& extension_id, -+ const std::string& script) { -+ return ExtensionApiTest::ExecuteScriptInBackgroundPage(extension_id, script) -+ .GetInt(); -+ } -+ -+ void SetupApiObjectAndMethods(const std::string& extension_id) { -+ std::string setup_script; -+ if (IsOldApi()) { -+ setup_script = -+ "let apiObject = chrome.adblockPrivate;" -+ "let sessionAllowedCount = 'getSessionAllowedAdsCount';" -+ "let sessionBlockedCount = 'getSessionBlockedAdsCount';" -+ "let onAllowedEvent = 'onAdAllowed';" -+ "let onBlockedEvent = 'onAdBlocked';" -+ "chrome.test.sendScriptResult(0);"; -+ } else { -+ setup_script = -+ "let apiObject = chrome.eyeoFilteringPrivate;" -+ "let sessionAllowedCount = 'getSessionAllowedRequestsCount';" -+ "let sessionBlockedCount = 'getSessionBlockedRequestsCount';" -+ "let onAllowedEvent = 'onRequestAllowed';" -+ "let onBlockedEvent = 'onRequestBlocked';" -+ "chrome.test.sendScriptResult(0);"; -+ } -+ ExecuteScriptIAndGetInt(extension_id, setup_script); -+ } -+ -+ const ExtensionId& GetExtensionId() const { return extension_->id(); } -+ -+ std::unique_ptr https_test_server_; -+ content::ContentMockCertVerifier mock_cert_verifier_; -+ raw_ptr extension_; -+}; -+ -+IN_PROC_BROWSER_TEST_P(AdblockPrivateApiBackgroundPageTest, PageAllowedEvents) { -+ constexpr char kSetListenersScript[] = R"( -+ let testData = {}; -+ testData.pageAllowedCount = 0; -+ apiObject.onPageAllowed.addListener(function(e) { -+ if (!e.url.endsWith('test.html')) { -+ return; -+ } -+ testData.pageAllowedCount = testData.pageAllowedCount + 1; -+ }); -+ chrome.test.sendScriptResult(0); -+ )"; -+ -+ constexpr char kReadCountersScript[] = R"( -+ var intervalId = setInterval(function() { -+ if (testData.pageAllowedCount == %d) { -+ if (intervalId) { -+ clearInterval(intervalId); -+ intervalId = null; -+ } -+ chrome.test.sendScriptResult(testData.pageAllowedCount); -+ } -+ }, 100); -+ )"; -+ -+ constexpr char kAllowDomainScript[] = R"( -+ apiObject.addAllowedDomain(%s'example.com'); -+ chrome.test.sendScriptResult(0); -+ )"; -+ -+ const GURL test_url = https_test_server_->GetURL( -+ "example.com", "/extensions/api_test/adblock_private/test.html"); -+ -+ SetupApiObjectAndMethods(GetExtensionId()); -+ -+ ExecuteScriptIAndGetInt(GetExtensionId(), kSetListenersScript); -+ -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), test_url)); -+ ASSERT_EQ( -+ 0, ExecuteScriptIAndGetInt(GetExtensionId(), -+ base::StringPrintf(kReadCountersScript, 0))); -+ -+ ExecuteScriptIAndGetInt( -+ GetExtensionId(), -+ base::StringPrintf(kAllowDomainScript, IsOldApi() ? "" : "'adblock', ")); -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), test_url)); -+ ASSERT_EQ( -+ 1, ExecuteScriptIAndGetInt(GetExtensionId(), -+ base::StringPrintf(kReadCountersScript, 1))); -+} -+ -+IN_PROC_BROWSER_TEST_P(AdblockPrivateApiBackgroundPageTest, PageAllowedStats) { -+ constexpr char kReadAllowedStatsScript[] = R"( -+ var intervalId = setInterval(function() { -+ apiObject[sessionAllowedCount](function(sessionStats) { -+ let count = 0; -+ for (const entry of sessionStats) { -+ if (entry.url === 'adblock:custom') { -+ count = entry.count; -+ } -+ } -+ if (%d == 0 || count == %d) { -+ if (intervalId) { -+ clearInterval(intervalId); -+ intervalId = null; -+ } -+ chrome.test.sendScriptResult(count); -+ } -+ }); -+ }, 100); -+ )"; -+ -+ constexpr char kAllowDomainScript[] = R"( -+ apiObject.addAllowedDomain(%s'example.com'); -+ chrome.test.sendScriptResult(0); -+ )"; -+ -+ const GURL test_url = https_test_server_->GetURL( -+ "example.com", "/extensions/api_test/adblock_private/test.html"); -+ -+ SetupApiObjectAndMethods(GetExtensionId()); -+ -+ int initial_value = ExecuteScriptIAndGetInt( -+ GetExtensionId(), base::StringPrintf(kReadAllowedStatsScript, 0, 0)); -+ -+ ExecuteScriptIAndGetInt( -+ GetExtensionId(), -+ base::StringPrintf(kAllowDomainScript, IsOldApi() ? "" : "'adblock', ")); -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), test_url)); -+ -+ EXPECT_EQ( -+ initial_value + 1, -+ ExecuteScriptIAndGetInt( -+ GetExtensionId(), base::StringPrintf(kReadAllowedStatsScript, 1, 1))); -+} -+ -+IN_PROC_BROWSER_TEST_P(AdblockPrivateApiBackgroundPageTest, PopupEvents) { -+ constexpr char kSetListenersScript[] = R"( -+ let testData = {}; -+ testData.popupBlockedCount = 0; -+ testData.popupAllowedCount = 0; -+ apiObject.onPopupAllowed.addListener(function(e, blocked) { -+ if (!e.url.endsWith('some-popup.html')) { -+ return; -+ } -+ testData.popupAllowedCount = testData.popupAllowedCount + 1; -+ }); -+ apiObject.onPopupBlocked.addListener(function(e, blocked) { -+ if (!e.url.endsWith('some-popup.html')) { -+ return; -+ } -+ testData.popupBlockedCount = testData.popupBlockedCount + 1; -+ }); -+ chrome.test.sendScriptResult(0); -+ )"; -+ -+ constexpr char verify_stats_script_tmpl[] = R"( -+ var intervalId = setInterval(function() { -+ let result = testData.%s; -+ if (result == %d) { -+ if (intervalId) { -+ clearInterval(intervalId); -+ intervalId = null; -+ } -+ chrome.test.sendScriptResult(result); -+ } -+ }, 100); -+ )"; -+ -+ auto read_allowed_stats_script = [verify_stats_script_tmpl](int expected) { -+ std::string script = base::StringPrintf(verify_stats_script_tmpl, -+ "popupAllowedCount", expected); -+ return script; -+ }; -+ -+ auto read_blocked_stats_script = [verify_stats_script_tmpl](int expected) { -+ std::string script = base::StringPrintf(verify_stats_script_tmpl, -+ "popupBlockedCount", expected); -+ return script; -+ }; -+ -+ constexpr char kBlockPopupScript[] = R"( -+ apiObject.addCustomFilter(%s'some-popup.html^$popup'); -+ chrome.test.sendScriptResult(0); -+ )"; -+ -+ constexpr char kAllowPopupScript[] = R"( -+ apiObject.addCustomFilter(%s'@@some-popup.html^$popup'); -+ chrome.test.sendScriptResult(0); -+ )"; -+ -+ const GURL test_url = https_test_server_->GetURL( -+ "example.com", "/extensions/api_test/adblock_private/test.html"); -+ constexpr char kOpenPopupScript[] = -+ "document.getElementById('popup_id').click()"; -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), test_url)); -+ SetupApiObjectAndMethods(GetExtensionId()); -+ -+ ExecuteScriptIAndGetInt(GetExtensionId(), kSetListenersScript); -+ -+ ExecuteScriptIAndGetInt( -+ GetExtensionId(), -+ base::StringPrintf(kBlockPopupScript, IsOldApi() ? "" : "'adblock', ")); -+ ExecuteScript(kOpenPopupScript); -+ EXPECT_EQ(0, ExecuteScriptIAndGetInt(GetExtensionId(), -+ read_allowed_stats_script(0))); -+ EXPECT_EQ(1, ExecuteScriptIAndGetInt(GetExtensionId(), -+ read_blocked_stats_script(1))); -+ -+ ExecuteScriptIAndGetInt( -+ GetExtensionId(), -+ base::StringPrintf(kAllowPopupScript, IsOldApi() ? "" : "'adblock', ")); -+ ExecuteScript(kOpenPopupScript); -+ EXPECT_EQ(1, ExecuteScriptIAndGetInt(GetExtensionId(), -+ read_allowed_stats_script(1))); -+ EXPECT_EQ(1, ExecuteScriptIAndGetInt(GetExtensionId(), -+ read_blocked_stats_script(1))); -+} -+ -+IN_PROC_BROWSER_TEST_P(AdblockPrivateApiBackgroundPageTest, PopupStats) { -+ constexpr char verify_stats_script_tmpl[] = R"( -+ var intervalId = setInterval(function() { -+ apiObject[%s](function(sessionStats) { -+ let count = 0; -+ for (const entry of sessionStats) { -+ if (entry.url === 'adblock:custom') { -+ count = entry.count; -+ } -+ } -+ if (%d == 0 || count == %d) { -+ if (intervalId) { -+ clearInterval(intervalId); -+ intervalId = null; -+ } -+ chrome.test.sendScriptResult(count); -+ } -+ } -+ )}, 100); -+ )"; -+ -+ auto read_allowed_stats_script = [verify_stats_script_tmpl](int expected) { -+ std::string script = base::StringPrintf( -+ verify_stats_script_tmpl, "sessionAllowedCount", expected, expected); -+ return script; -+ }; -+ -+ auto read_blocked_stats_script = [verify_stats_script_tmpl](int expected) { -+ std::string script = base::StringPrintf( -+ verify_stats_script_tmpl, "sessionBlockedCount", expected, expected); -+ return script; -+ }; -+ -+ constexpr char kBlockPopupScript[] = R"( -+ apiObject.addCustomFilter(%s'some-popup.html^$popup'); -+ chrome.test.sendScriptResult(0); -+ )"; -+ -+ constexpr char kAllowPopupScript[] = R"( -+ apiObject.addCustomFilter(%s'@@some-popup.html^$popup'); -+ chrome.test.sendScriptResult(0); -+ )"; -+ -+ const GURL test_url = https_test_server_->GetURL( -+ "example.com", "/extensions/api_test/adblock_private/test.html"); -+ constexpr char kOpenPopupScript[] = -+ "document.getElementById('popup_id').click()"; -+ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), test_url)); -+ SetupApiObjectAndMethods(GetExtensionId()); -+ -+ int initial_allowed_value = -+ ExecuteScriptIAndGetInt(GetExtensionId(), read_allowed_stats_script(0)); -+ int initial_blocked_value = -+ ExecuteScriptIAndGetInt(GetExtensionId(), read_blocked_stats_script(0)); -+ -+ ExecuteScriptIAndGetInt( -+ GetExtensionId(), -+ base::StringPrintf(kBlockPopupScript, IsOldApi() ? "" : "'adblock', ")); -+ ExecuteScript(kOpenPopupScript); -+ ASSERT_EQ(initial_blocked_value + 1, -+ ExecuteScriptIAndGetInt( -+ GetExtensionId(), -+ read_blocked_stats_script(initial_blocked_value + 1))); -+ -+ ExecuteScriptIAndGetInt( -+ GetExtensionId(), -+ base::StringPrintf(kAllowPopupScript, IsOldApi() ? "" : "'adblock', ")); -+ ExecuteScript(kOpenPopupScript); -+ ASSERT_EQ(initial_allowed_value + 1, -+ ExecuteScriptIAndGetInt( -+ GetExtensionId(), -+ read_allowed_stats_script(initial_allowed_value + 1))); -+ ASSERT_EQ(initial_blocked_value + 1, -+ ExecuteScriptIAndGetInt( -+ GetExtensionId(), -+ read_blocked_stats_script(initial_blocked_value + 1))); -+} -+ -+INSTANTIATE_TEST_SUITE_P( -+ All, -+ AdblockPrivateApiBackgroundPageTest, -+ testing::Combine( -+ testing::Values( -+ AdblockPrivateApiBackgroundPageTest::EyeoExtensionApi::Old, -+ AdblockPrivateApiBackgroundPageTest::EyeoExtensionApi::New), -+ testing::Values(AdblockPrivateApiBackgroundPageTest::Mode::Normal, -+ AdblockPrivateApiBackgroundPageTest::Mode::Incognito))); -+ -+} // namespace extensions -diff --git a/chrome/browser/extensions/api/adblock_private/adblock_private_apitest_base.cc b/chrome/browser/extensions/api/adblock_private/adblock_private_apitest_base.cc -new file mode 100644 ---- /dev/null -+++ b/chrome/browser/extensions/api/adblock_private/adblock_private_apitest_base.cc -@@ -0,0 +1,103 @@ -+// This file is part of eyeo Chromium SDK, -+// Copyright (C) 2006-present eyeo GmbH -+// -+// eyeo Chromium SDK is free software: you can redistribute it and/or modify -+// it under the terms of the GNU General Public License version 3 as -+// published by the Free Software Foundation. -+// -+// eyeo Chromium SDK is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+// -+// You should have received a copy of the GNU General Public License -+// along with eyeo Chromium SDK. If not, see . -+ -+#include "chrome/browser/extensions/api/adblock_private/adblock_private_apitest_base.h" -+ -+#include "chrome/browser/adblock/adblock_chrome_content_browser_client.h" -+#include "chrome/browser/profiles/profile.h" -+#include "chrome/browser/ui/browser.h" -+#include "chrome/common/chrome_switches.h" -+#include "chrome/common/extensions/api/adblock_private.h" -+#include "chrome/common/extensions/api/tabs.h" -+#include "components/adblock/content/browser/factories/adblock_request_throttle_factory.h" -+#include "components/adblock/content/browser/factories/subscription_service_factory.h" -+#include "components/adblock/content/browser/test/adblock_browsertest_base.h" -+#include "components/adblock/core/common/adblock_constants.h" -+#include "components/adblock/core/net/adblock_request_throttle.h" -+#include "extensions/common/switches.h" -+ -+namespace extensions { -+ -+void AdblockPrivateApiTestBase::SetUpCommandLine( -+ base::CommandLine* command_line) { -+ ExtensionApiTest::SetUpCommandLine(command_line); -+ AllowTestExtension(command_line); -+ if (IsIncognito()) { -+ EnableIncognitoMode(command_line); -+ } -+} -+ -+void AdblockPrivateApiTestBase::SetUpOnMainThread() { -+ ExtensionApiTest::SetUpOnMainThread(); -+ -+ // When any of that fails we need to update comment in adblock_private.idl -+ ASSERT_EQ(api::tabs::TAB_ID_NONE, -1); -+ ASSERT_EQ(SessionID::InvalidValue().id(), -1); -+ -+ adblock::SubscriptionServiceFactory::GetForBrowserContext( -+ browser()->profile()->GetOriginalProfile()) -+ ->GetFilteringConfiguration(adblock::kAdblockFilteringConfigurationName) -+ ->RemoveCustomFilter(adblock::kAllowlistEverythingFilter); -+ // Allow requests for filter lists to be "downloaded" immediately, otherwise -+ // the tests will hang for 30 seconds. -+ adblock::AdblockRequestThrottleFactory::GetForBrowserContext( -+ browser()->profile()->GetOriginalProfile()) -+ ->AllowRequestsAfter(base::Seconds(0)); -+ -+ AdblockChromeContentBrowserClient::ForceAdblockProxyForTesting(); -+} -+ -+bool AdblockPrivateApiTestBase::IsIncognito() { -+ return false; -+} -+ -+std::string AdblockPrivateApiTestBase::GetApiEndpoint() { -+ return "adblockPrivate"; -+} -+ -+bool AdblockPrivateApiTestBase::RunTest(const std::string& subtest) { -+ std::string page_url = "main.html?subtest=" + subtest; -+ page_url += "&api=" + GetApiEndpoint(); -+ return RunExtensionTest("adblock_private", -+ {.extension_url = page_url.c_str()}, -+ {.allow_in_incognito = IsIncognito(), -+ .load_as_component = !IsIncognito()}); -+} -+ -+bool AdblockPrivateApiTestBase::RunTestWithParams( -+ const std::string& subtest, -+ const std::map& params) { -+ if (params.empty()) { -+ return RunTest(subtest); -+ } -+ std::string subtest_with_params = subtest; -+ for (const auto& [key, value] : params) { -+ subtest_with_params += "&" + key + "=" + value; -+ } -+ return RunTest(subtest_with_params); -+} -+ -+void AdblockPrivateApiTestBase::AllowTestExtension( -+ base::CommandLine* command_line) { -+ command_line->AppendSwitchASCII(switches::kAllowlistedExtensionID, -+ "hfkjbmnbjpodjjpikbpnphphoimfacom"); -+} -+ -+void AdblockPrivateApiTestBase::EnableIncognitoMode( -+ base::CommandLine* command_line) { -+ command_line->AppendSwitch(::switches::kIncognito); -+} -+ -+} // namespace extensions -diff --git a/chrome/browser/extensions/api/adblock_private/adblock_private_apitest_base.h b/chrome/browser/extensions/api/adblock_private/adblock_private_apitest_base.h -new file mode 100644 ---- /dev/null -+++ b/chrome/browser/extensions/api/adblock_private/adblock_private_apitest_base.h -@@ -0,0 +1,62 @@ -+// This file is part of eyeo Chromium SDK, -+// Copyright (C) 2006-present eyeo GmbH -+// -+// eyeo Chromium SDK is free software: you can redistribute it and/or modify -+// it under the terms of the GNU General Public License version 3 as -+// published by the Free Software Foundation. -+// -+// eyeo Chromium SDK is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+// -+// You should have received a copy of the GNU General Public License -+// along with eyeo Chromium SDK. If not, see . -+ -+#ifndef CHROME_BROWSER_EXTENSIONS_API_ADBLOCK_PRIVATE_ADBLOCK_PRIVATE_APITEST_BASE_H_ -+#define CHROME_BROWSER_EXTENSIONS_API_ADBLOCK_PRIVATE_ADBLOCK_PRIVATE_APITEST_BASE_H_ -+ -+#include -+#include -+ -+#include "base/command_line.h" -+#include "chrome/browser/extensions/extension_apitest.h" -+#include "content/public/test/browser_test.h" -+#include "testing/gmock/include/gmock/gmock.h" -+#include "testing/gtest/include/gtest/gtest.h" -+ -+namespace extensions { -+ -+class AdblockPrivateApiTestBase : public ExtensionApiTest { -+ public: -+ enum class Mode { Normal, Incognito }; -+ enum class EyeoExtensionApi { Old, New }; -+ -+ AdblockPrivateApiTestBase() {} -+ ~AdblockPrivateApiTestBase() override = default; -+ AdblockPrivateApiTestBase(const AdblockPrivateApiTestBase&) = delete; -+ AdblockPrivateApiTestBase& operator=(const AdblockPrivateApiTestBase&) = -+ delete; -+ -+ void SetUpCommandLine(base::CommandLine* command_line) override; -+ void SetUpOnMainThread() override; -+ -+ virtual bool IsIncognito(); -+ -+ virtual std::string GetApiEndpoint(); -+ -+ virtual bool RunTest(const std::string& subtest); -+ -+ virtual bool RunTestWithParams( -+ const std::string& subtest, -+ const std::map& params); -+ -+ private: -+ void AllowTestExtension(base::CommandLine* command_line); -+ -+ void EnableIncognitoMode(base::CommandLine* command_line); -+}; -+ -+} // namespace extensions -+ -+#endif // CHROME_BROWSER_EXTENSIONS_API_ADBLOCK_PRIVATE_ADBLOCK_PRIVATE_APITEST_BASE_H_ -diff --git a/chrome/browser/extensions/api/adblock_private/adblock_private_filter_lists_with_http_server_apitest.cc b/chrome/browser/extensions/api/adblock_private/adblock_private_filter_lists_with_http_server_apitest.cc -new file mode 100644 ---- /dev/null -+++ b/chrome/browser/extensions/api/adblock_private/adblock_private_filter_lists_with_http_server_apitest.cc -@@ -0,0 +1,188 @@ -+// This file is part of eyeo Chromium SDK, -+// Copyright (C) 2006-present eyeo GmbH -+// -+// eyeo Chromium SDK is free software: you can redistribute it and/or modify -+// it under the terms of the GNU General Public License version 3 as -+// published by the Free Software Foundation. -+// -+// eyeo Chromium SDK is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+// -+// You should have received a copy of the GNU General Public License -+// along with eyeo Chromium SDK. If not, see . -+ -+#include -+ -+#include "chrome/browser/extensions/api/adblock_private/adblock_private_apitest_base.h" -+#include "chrome/browser/profiles/profile.h" -+#include "chrome/browser/ui/browser.h" -+#include "components/adblock/content/browser/factories/subscription_service_factory.h" -+#include "components/adblock/content/browser/test/adblock_browsertest_base.h" -+#include "components/adblock/core/subscription/subscription_config.h" -+#include "components/adblock/core/subscription/subscription_service.h" -+#include "net/dns/mock_host_resolver.h" -+#include "net/test/embedded_test_server/embedded_test_server.h" -+#include "net/test/embedded_test_server/http_request.h" -+#include "net/test/embedded_test_server/http_response.h" -+ -+namespace extensions { -+ -+/** -+ * Extension tests which require intercepting and returning content -+ * for filter lists download requests. -+ */ -+class AdblockPrivateApiFilterListWithHttpServer -+ : public AdblockPrivateApiTestBase, -+ public testing::WithParamInterface< -+ std::tuple> { -+ public: -+ AdblockPrivateApiFilterListWithHttpServer() -+ : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) { -+ const auto testing_interval = base::Seconds(1); -+ adblock::SubscriptionServiceFactory::SetUpdateCheckIntervalForTesting( -+ testing_interval); -+ https_server_.RegisterRequestHandler(base::BindRepeating( -+ &AdblockPrivateApiFilterListWithHttpServer::RequestHandler, -+ base::Unretained(this))); -+ net::EmbeddedTestServer::ServerCertificateConfig cert_config; -+ cert_config.dns_names = {kEyeoFilterListHost}; -+ https_server_.SetSSLConfig(cert_config); -+ EXPECT_TRUE(https_server_.Start()); -+ adblock::SetFilterListServerPortForTesting(https_server_.port()); -+ geolocated_list_1_ = -+ base::StringPrintf("https://%s:%d/easylistpolish.txt", -+ kEyeoFilterListHost, https_server_.port()); -+ geolocated_list_2_ = -+ base::StringPrintf("https://%s:%d/easylistgermany.txt", -+ kEyeoFilterListHost, https_server_.port()); -+ } -+ -+ ~AdblockPrivateApiFilterListWithHttpServer() override = default; -+ AdblockPrivateApiFilterListWithHttpServer( -+ const AdblockPrivateApiFilterListWithHttpServer&) = delete; -+ AdblockPrivateApiFilterListWithHttpServer& operator=( -+ const AdblockPrivateApiFilterListWithHttpServer&) = delete; -+ -+ bool IsIncognito() override { -+ return std::get<1>(GetParam()) == -+ AdblockPrivateApiTestBase::Mode::Incognito; -+ } -+ -+ std::string GetApiEndpoint() override { -+ return std::get<0>(GetParam()) == -+ AdblockPrivateApiTestBase::EyeoExtensionApi::Old -+ ? "adblockPrivate" -+ : "eyeoFilteringPrivate"; -+ } -+ -+ std::unique_ptr RequestHandler( -+ const net::test_server::HttpRequest& request) { -+ if (base::StartsWith(request.relative_url, "/recommendations.json")) { -+ std::unique_ptr http_response( -+ new net::test_server::BasicHttpResponse); -+ http_response->set_code(net::HTTP_OK); -+ auto payload = base::StringPrintf( -+ R"( -+ [{"url": "%s"}, {"url": "%s"}] -+ )", -+ geolocated_list_1_.c_str(), geolocated_list_2_.c_str()); -+ http_response->set_content(payload); -+ http_response->set_content_type("text/plain"); -+ return std::move(http_response); -+ } else if (base::StartsWith(request.relative_url, "/easylistpolish.txt") || -+ base::StartsWith(request.relative_url, "/easylistgermany.txt") || -+ base::StartsWith(request.relative_url, "/easylist.txt") || -+ base::StartsWith(request.relative_url, "/exceptionrules.txt") || -+ base::StartsWith(request.relative_url, -+ "/abp-filters-anti-cv.txt")) { -+ std::unique_ptr http_response( -+ new net::test_server::BasicHttpResponse); -+ http_response->set_code(net::HTTP_OK); -+ auto filename = request.GetURL().path(); -+ auto filter_list_header = -+ base::StringPrintf("[Adblock Plus 2.0]\n! Version: %zu\n! Title: %s", -+ filename.length(), filename.c_str()); -+ http_response->set_content(filter_list_header); -+ http_response->set_content_type("text/plain"); -+ return std::move(http_response); -+ } -+ -+ // Unhandled requests result in the Embedded test server sending a 404. -+ // This is fine for the purpose of this test. -+ return nullptr; -+ } -+ -+ void SetUpOnMainThread() override { -+ AdblockPrivateApiTestBase::SetUpOnMainThread(); -+ host_resolver()->AddRule(kEyeoFilterListHost, "127.0.0.1"); -+ } -+ -+ void WaitForGeolocatedLists() { -+ std::vector subscriptions = {GURL(geolocated_list_1_), -+ GURL(geolocated_list_2_)}; -+ WaitForLists(subscriptions); -+ } -+ -+ void WaitForDefaultLists() { -+ std::vector subscriptions = { -+ GURL(base::StringPrintf("https://%s:%d/easylist.txt", -+ kEyeoFilterListHost, https_server_.port())), -+ GURL(base::StringPrintf("https://%s:%d/exceptionrules.txt", -+ kEyeoFilterListHost, https_server_.port())), -+ GURL(base::StringPrintf("https://%s:%d/abp-filters-anti-cv.txt", -+ kEyeoFilterListHost, https_server_.port()))}; -+ WaitForLists(subscriptions); -+ } -+ -+ protected: -+ net::EmbeddedTestServer https_server_; -+ std::string geolocated_list_1_; -+ std::string geolocated_list_2_; -+ -+ private: -+ void WaitForLists(const std::vector& subscriptions) { -+ auto* subscription_service = -+ adblock::SubscriptionServiceFactory::GetForBrowserContext( -+ browser()->profile()->GetOriginalProfile()); -+ auto waiter = adblock::SubscriptionInstalledWaiter(subscription_service); -+ waiter.WaitUntilSubscriptionsInstalled(std::move(subscriptions)); -+ } -+ static constexpr char kEyeoFilterListHost[] = -+ "easylist-downloads.adblockplus.org"; -+}; -+ -+IN_PROC_BROWSER_TEST_P(AdblockPrivateApiFilterListWithHttpServer, -+ InstalledSubscriptionsDataSchema) { -+ WaitForDefaultLists(); -+ EXPECT_TRUE(RunTest("installedSubscriptionsDataSchema")) << message_; -+} -+ -+IN_PROC_BROWSER_TEST_P(AdblockPrivateApiFilterListWithHttpServer, -+ InstalledSubscriptionsDataSchemaConfigDisabled) { -+ EXPECT_TRUE(RunTestWithParams("installedSubscriptionsDataSchema", -+ {{"disabled", "true"}})) -+ << message_; -+} -+ -+IN_PROC_BROWSER_TEST_P(AdblockPrivateApiFilterListWithHttpServer, -+ GeolocationDiabledHidesFilterLists) { -+ WaitForGeolocatedLists(); -+ EXPECT_TRUE(RunTestWithParams("disableGeolocation", -+ {{"geolocated_list_1", geolocated_list_1_}, -+ {"geolocated_list_2", geolocated_list_2_}})) -+ << message_; -+} -+ -+INSTANTIATE_TEST_SUITE_P( -+ , -+ AdblockPrivateApiFilterListWithHttpServer, -+ testing::Combine( -+ testing::Values(AdblockPrivateApiTestBase::EyeoExtensionApi::Old, -+ AdblockPrivateApiTestBase::EyeoExtensionApi::New), -+ testing::Values(AdblockPrivateApiTestBase::Mode::Normal, -+ AdblockPrivateApiTestBase::Mode::Incognito))); -+ -+} // namespace extensions diff --git a/chrome/browser/extensions/api/api_browser_context_keyed_service_factories.cc b/chrome/browser/extensions/api/api_browser_context_keyed_service_factories.cc --- a/chrome/browser/extensions/api/api_browser_context_keyed_service_factories.cc +++ b/chrome/browser/extensions/api/api_browser_context_keyed_service_factories.cc @@ -2138,7 +1153,7 @@ diff --git a/chrome/browser/extensions/api/api_browser_context_keyed_service_fac #include "chrome/browser/extensions/api/bookmarks/bookmarks_api.h" #include "chrome/browser/extensions/api/bookmarks/bookmarks_api_watcher.h" -@@ -35,10 +39,12 @@ +@@ -36,10 +40,12 @@ #include "build/build_config.h" #include "build/chromeos_buildflags.h" #include "chrome/browser/extensions/api/activity_log_private/activity_log_private_api.h" @@ -2151,7 +1166,7 @@ diff --git a/chrome/browser/extensions/api/api_browser_context_keyed_service_fac #include "chrome/browser/extensions/api/image_writer_private/operation_manager.h" #include "chrome/browser/extensions/api/language_settings_private/language_settings_private_delegate_factory.h" #include "chrome/browser/extensions/api/networking_private/networking_private_ui_delegate_factory_impl.h" -@@ -109,6 +115,8 @@ void EnsureApiBrowserContextKeyedServiceFactoriesBuilt() { +@@ -110,6 +116,8 @@ void EnsureApiBrowserContextKeyedServiceFactoriesBuilt() { #if BUILDFLAG(ENABLE_EXTENSIONS) extensions::ActivityLogAPI::GetFactoryInstance(); @@ -3381,211 +2396,6 @@ new file mode 100644 +} // namespace extensions + +#endif // CHROME_BROWSER_EXTENSIONS_API_EYEO_FILTERING_PRIVATE_EYEO_FILTERING_PRIVATE_API_H_ -diff --git a/chrome/browser/extensions/api/eyeo_filtering_private/eyeo_filtering_private_apitest.cc b/chrome/browser/extensions/api/eyeo_filtering_private/eyeo_filtering_private_apitest.cc -new file mode 100644 ---- /dev/null -+++ b/chrome/browser/extensions/api/eyeo_filtering_private/eyeo_filtering_private_apitest.cc -@@ -0,0 +1,173 @@ -+// This file is part of eyeo Chromium SDK, -+// Copyright (C) 2006-present eyeo GmbH -+// -+// eyeo Chromium SDK is free software: you can redistribute it and/or modify -+// it under the terms of the GNU General Public License version 3 as -+// published by the Free Software Foundation. -+// -+// eyeo Chromium SDK is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+// -+// You should have received a copy of the GNU General Public License -+// along with eyeo Chromium SDK. If not, see . -+ -+#include "chrome/browser/adblock/adblock_chrome_content_browser_client.h" -+#include "chrome/browser/extensions/extension_apitest.h" -+#include "chrome/browser/profiles/profile.h" -+#include "chrome/browser/ui/browser.h" -+#include "chrome/common/chrome_switches.h" -+#include "chrome/common/extensions/api/adblock_private.h" -+#include "components/adblock/content/browser/factories/subscription_service_factory.h" -+#include "components/adblock/core/common/adblock_constants.h" -+#include "components/adblock/core/subscription/subscription_service.h" -+#include "content/public/test/browser_test.h" -+#include "extensions/common/switches.h" -+#include "testing/gmock/include/gmock/gmock.h" -+#include "testing/gtest/include/gtest/gtest.h" -+ -+namespace extensions { -+ -+namespace { -+enum class Mode { Normal, Incognito }; -+ -+void AllowTestExtension(base::CommandLine* command_line) { -+ command_line->AppendSwitchASCII(extensions::switches::kAllowlistedExtensionID, -+ "hjlolhdkflcejcekagdgahplimkppjml"); -+} -+ -+void EnableIncognitoMode(base::CommandLine* command_line) { -+ command_line->AppendSwitch(::switches::kIncognito); -+} -+} // namespace -+ -+class EyeoFilteringPrivateApiTest : public ExtensionApiTest, -+ public testing::WithParamInterface { -+ public: -+ EyeoFilteringPrivateApiTest() {} -+ ~EyeoFilteringPrivateApiTest() override = default; -+ EyeoFilteringPrivateApiTest(const EyeoFilteringPrivateApiTest&) = delete; -+ EyeoFilteringPrivateApiTest& operator=(const EyeoFilteringPrivateApiTest&) = -+ delete; -+ -+ void SetUpCommandLine(base::CommandLine* command_line) override { -+ extensions::ExtensionApiTest::SetUpCommandLine(command_line); -+ AllowTestExtension(command_line); -+ if (IsIncognito()) { -+ EnableIncognitoMode(command_line); -+ } -+ } -+ -+ protected: -+ void SetUpOnMainThread() override { -+ ExtensionApiTest::SetUpOnMainThread(); -+ -+ auto* adblock_configuration = -+ adblock::SubscriptionServiceFactory::GetForBrowserContext( -+ browser()->profile()->GetOriginalProfile()) -+ ->GetFilteringConfiguration( -+ adblock::kAdblockFilteringConfigurationName); -+ if (adblock_configuration) { -+ adblock_configuration->RemoveCustomFilter( -+ adblock::kAllowlistEverythingFilter); -+ } -+ -+ AdblockChromeContentBrowserClient::ForceAdblockProxyForTesting(); -+ } -+ -+ bool IsIncognito() { return GetParam() == Mode::Incognito; } -+ -+ bool RunTest(const std::string& subtest) { -+ const std::string page_url = "main.html?subtest=" + subtest; -+ return RunExtensionTest("eyeo_filtering_private", -+ {.extension_url = page_url.c_str()}, -+ {.allow_in_incognito = IsIncognito(), -+ .load_as_component = !IsIncognito()}); -+ } -+}; -+ -+IN_PROC_BROWSER_TEST_P(EyeoFilteringPrivateApiTest, -+ CreateRemoveAndGetConfigurations) { -+ EXPECT_TRUE(RunTest("createRemoveAndGetConfigurations")) << message_; -+} -+ -+IN_PROC_BROWSER_TEST_P(EyeoFilteringPrivateApiTest, -+ CreateRemoveAndGetConfigurationsWithPromises) { -+ EXPECT_TRUE(RunTest("createRemoveAndGetConfigurationsWithPromises")) -+ << message_; -+} -+ -+IN_PROC_BROWSER_TEST_P(EyeoFilteringPrivateApiTest, -+ EnableAndDisableConfiguration) { -+ EXPECT_TRUE(RunTest("enableAndDisableConfiguration")) << message_; -+} -+ -+IN_PROC_BROWSER_TEST_P(EyeoFilteringPrivateApiTest, -+ EnableAndDisableConfigurationWithPromises) { -+ EXPECT_TRUE(RunTest("enableAndDisableConfigurationWithPromises")) << message_; -+} -+ -+IN_PROC_BROWSER_TEST_P(EyeoFilteringPrivateApiTest, -+ AddAllowedDomainToCustomConfiguration) { -+ EXPECT_TRUE(RunTest("addAllowedDomainToCustomConfiguration")) << message_; -+} -+ -+IN_PROC_BROWSER_TEST_P(EyeoFilteringPrivateApiTest, -+ AddAllowedDomainToCustomConfigurationWithPromises) { -+ EXPECT_TRUE(RunTest("addAllowedDomainToCustomConfigurationWithPromises")) -+ << message_; -+} -+ -+IN_PROC_BROWSER_TEST_P(EyeoFilteringPrivateApiTest, -+ AddCustomFilterToCustomConfiguration) { -+ EXPECT_TRUE(RunTest("addCustomFilterToCustomConfiguration")) << message_; -+} -+ -+IN_PROC_BROWSER_TEST_P(EyeoFilteringPrivateApiTest, -+ AddCustomFilterToCustomConfigurationWithPromises) { -+ EXPECT_TRUE(RunTest("addCustomFilterToCustomConfigurationWithPromises")) -+ << message_; -+} -+ -+IN_PROC_BROWSER_TEST_P(EyeoFilteringPrivateApiTest, -+ AddFilterListInCustomConfiguration) { -+ EXPECT_TRUE(RunTest("addFilterListInCustomConfiguration")) << message_; -+} -+ -+IN_PROC_BROWSER_TEST_P(EyeoFilteringPrivateApiTest, -+ AddFilterListInCustomConfigurationWithPromises) { -+ EXPECT_TRUE(RunTest("addFilterListInCustomConfigurationWithPromises")) -+ << message_; -+} -+ -+IN_PROC_BROWSER_TEST_P(EyeoFilteringPrivateApiTest, MissingConfiguration) { -+ EXPECT_TRUE(RunTest("missingConfiguration")) << message_; -+} -+ -+IN_PROC_BROWSER_TEST_P(EyeoFilteringPrivateApiTest, -+ MissingConfigurationWithPromises) { -+ EXPECT_TRUE(RunTest("missingConfigurationWithPromises")) << message_; -+} -+ -+IN_PROC_BROWSER_TEST_P(EyeoFilteringPrivateApiTest, AllowedDomainsEvent) { -+ EXPECT_TRUE(RunTest("allowedDomainsEvent")) << message_; -+} -+ -+IN_PROC_BROWSER_TEST_P(EyeoFilteringPrivateApiTest, EnabledStateEvent) { -+ EXPECT_TRUE(RunTest("enabledStateEvent")) << message_; -+} -+ -+IN_PROC_BROWSER_TEST_P(EyeoFilteringPrivateApiTest, FilterListsEvent) { -+ EXPECT_TRUE(RunTest("filterListsEvent")) << message_; -+} -+ -+IN_PROC_BROWSER_TEST_P(EyeoFilteringPrivateApiTest, CustomFiltersEvent) { -+ EXPECT_TRUE(RunTest("customFiltersEvent")) << message_; -+} -+ -+INSTANTIATE_TEST_SUITE_P(, -+ EyeoFilteringPrivateApiTest, -+ testing::Values(Mode::Normal, Mode::Incognito)); -+ -+} // namespace extensions -diff --git a/chrome/browser/extensions/extension_function_registration_test.cc b/chrome/browser/extensions/extension_function_registration_test.cc ---- a/chrome/browser/extensions/extension_function_registration_test.cc -+++ b/chrome/browser/extensions/extension_function_registration_test.cc -@@ -1,6 +1,10 @@ - // Copyright 2018 The Chromium Authors - // Use of this source code is governed by a BSD-style license that can be - // found in the LICENSE file. -+// -+// This source code is a part of eyeo Chromium SDK. -+// Use of this source code is governed by the GPLv3 that can be found in the -+// components/adblock/LICENSE file. - - #include "base/containers/contains.h" - #include "base/one_shot_event.h" -@@ -59,6 +63,12 @@ IN_PROC_BROWSER_TEST_F(ExtensionFunctionRegistrationTest, - base::CompareCase::SENSITIVE)) { - continue; - } -+ // Eyeo extension API uses UNKNOWN; it's not used in histograms. -+ if (base::StartsWith(entry.function_name_, "adblockPrivate.") || -+ base::StartsWith(entry.function_name_, "eyeoFilteringPrivate.")) { -+ continue; -+ } -+ - // Some undocumented, unlaunched APIs may also use UNKNOWN if it's unclear - // (or unlikely) if they will ever launch. - if (base::Contains(kAllowedUnknownHistogramEntries, diff --git a/chrome/common/extensions/api/_api_features.json b/chrome/common/extensions/api/_api_features.json --- a/chrome/common/extensions/api/_api_features.json +++ b/chrome/common/extensions/api/_api_features.json @@ -3617,7 +2427,7 @@ diff --git a/chrome/common/extensions/api/_api_features.json b/chrome/common/ext "app": { "blocklist": [ "2FC374607C2DF285634B67C64A2E356C607091C3", // Quickoffice -@@ -541,6 +555,14 @@ +@@ -546,6 +560,14 @@ "channel": "stable", "contexts": [] }, @@ -3871,8 +2681,8 @@ diff --git a/chrome/common/extensions/api/api_sources.gni b/chrome/common/extens +# Use of this source code is governed by the GPLv3 that can be found in the components/adblock/LICENSE file. import("//chrome/common/features.gni") - import("//pdf/features.gni") -@@ -40,6 +43,8 @@ schema_sources_ = [ + import("//components/guest_view/buildflags/buildflags.gni") +@@ -41,6 +44,8 @@ schema_sources_ = [ "tabs.json", "web_authentication_proxy.webidl", "web_navigation.json", @@ -4125,1341 +2935,6 @@ diff --git a/chrome/common/extensions/permissions/chrome_api_permissions.cc b/ch {APIPermissionID::kEnterprisePlatformKeys, "enterprise.platformKeys", APIPermissionInfo::kFlagDoesNotRequireManagedSessionFullLoginWarning}, {APIPermissionID::kFavicon, "favicon"}, -diff --git a/chrome/common/extensions/permissions/permission_set_unittest.cc b/chrome/common/extensions/permissions/permission_set_unittest.cc ---- a/chrome/common/extensions/permissions/permission_set_unittest.cc -+++ b/chrome/common/extensions/permissions/permission_set_unittest.cc -@@ -1,6 +1,10 @@ - // Copyright 2012 The Chromium Authors - // Use of this source code is governed by a BSD-style license that can be - // found in the LICENSE file. -+// -+// This source code is a part of eyeo Chromium SDK. -+// Use of this source code is governed by the GPLv3 that can be found in the -+// components/adblock/LICENSE file. - - #include "extensions/common/permissions/permission_set.h" - -@@ -896,6 +900,10 @@ TEST(PermissionsTest, PermissionMessages) { - skip.insert(APIPermissionID::kSystemLog); - skip.insert(APIPermissionID::kOdfsConfigPrivate); - -+ // Adblock API is also private (in separate block to minimize conflicts). -+ skip.insert(APIPermissionID::kAdblockPrivate); -+ skip.insert(APIPermissionID::kEyeoFilteringPrivate); -+ - // Warned as part of host permissions. - skip.insert(APIPermissionID::kDevtools); - -diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn ---- a/chrome/test/BUILD.gn -+++ b/chrome/test/BUILD.gn -@@ -4335,6 +4335,20 @@ if (!is_android) { - ] - } - -+ ### Extensions API module start -+ sources += [ -+ "../browser/extensions/api/adblock_private/adblock_private_apitest.cc", -+ "../browser/extensions/api/adblock_private/adblock_private_apitest_backgroundpage.cc", -+ "../browser/extensions/api/adblock_private/adblock_private_apitest_base.cc", -+ "../browser/extensions/api/adblock_private/adblock_private_apitest_base.h", -+ "../browser/extensions/api/adblock_private/adblock_private_filter_lists_with_http_server_apitest.cc", -+ "../browser/extensions/api/eyeo_filtering_private/eyeo_filtering_private_apitest.cc", -+ ] -+ -+ deps += [ "//components/adblock/content/browser:browser_tests_support" ] -+ -+ ### Extensions API module end -+ - if (is_chromeos) { - deps += [ - "//chrome/browser/chromeos/cros_apps:all_browser_tests", -diff --git a/chrome/test/data/extensions/api_test/adblock_private/empty.js b/chrome/test/data/extensions/api_test/adblock_private/empty.js -new file mode 100644 ---- /dev/null -+++ b/chrome/test/data/extensions/api_test/adblock_private/empty.js -@@ -0,0 +1,14 @@ -+// This file is part of eyeo Chromium SDK, -+// Copyright (C) 2006-present eyeo GmbH -+// -+// eyeo Chromium SDK is free software: you can redistribute it and/or modify -+// it under the terms of the GNU General Public License version 3 as -+// published by the Free Software Foundation. -+// -+// eyeo Chromium SDK is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+// -+// You should have received a copy of the GNU General Public License -+// along with eyeo Chromium SDK. If not, see . -diff --git a/chrome/test/data/extensions/api_test/adblock_private/main.html b/chrome/test/data/extensions/api_test/adblock_private/main.html -new file mode 100644 ---- /dev/null -+++ b/chrome/test/data/extensions/api_test/adblock_private/main.html -@@ -0,0 +1,29 @@ -+ -+ -+ -+ -+ -+ -+ Adblock private API test -+ -+ -+ -+

chrome.adblockPrivate.* tests

-+ -+ -+ -diff --git a/chrome/test/data/extensions/api_test/adblock_private/manifest.json b/chrome/test/data/extensions/api_test/adblock_private/manifest.json -new file mode 100644 ---- /dev/null -+++ b/chrome/test/data/extensions/api_test/adblock_private/manifest.json -@@ -0,0 +1,32 @@ -+// This file is part of eyeo Chromium SDK, -+// Copyright (C) 2006-present eyeo GmbH -+// -+// eyeo Chromium SDK is free software: you can redistribute it and/or modify -+// it under the terms of the GNU General Public License version 3 as -+// published by the Free Software Foundation. -+// -+// eyeo Chromium SDK is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+// -+// You should have received a copy of the GNU General Public License -+// along with eyeo Chromium SDK. If not, see . -+{ -+ "name": "adblockPrivate API test", -+ "key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyURY+BO7WO3B/dixoRSitosEKb1OOCsS1EF8dRoywUP+iQlHDJw2JL2A7d/E6JpoBQ/CUxX8lcHcsAs7zC31zb2iosBbfd5mCDd24bjLaIF/WNBRno6QYwbM/J7gCxn/aGFvAXdLnPhs2XFiP7iSQEY67NtTlah9EFGalB45UFUssrxFOXTFWT/gJmRIHqfCSUzHdPmFRJ1Sk6UpyZBPxp2MJAISbfTUhWIXa7WG+JxW95OEtNggfhYzX9wbCVSEU18RiMiMLdqNwHf7hYI30KiwrQhWcaB5kCnvJYEa43JggcE9xAaHV+1t2hSMyo5Xbz2YslI5UfDe8112hGVIUQIDAQAB", -+ "version": "0.1", -+ "incognito": "split", -+ "manifest_version": 2, -+ "background": { -+ "scripts": [ -+ "empty.js" -+ ] -+ }, -+ "description": "Test of chrome.adblockPrivate interface", -+ "permissions": [ -+ "adblockPrivate", -+ "eyeoFilteringPrivate", -+ "" -+ ] -+} -diff --git a/chrome/test/data/extensions/api_test/adblock_private/some-popup.html b/chrome/test/data/extensions/api_test/adblock_private/some-popup.html -new file mode 100644 ---- /dev/null -+++ b/chrome/test/data/extensions/api_test/adblock_private/some-popup.html -@@ -0,0 +1,24 @@ -+ -+ -+ -+ Popup content -+ -+ -+

I am a popup

-+ -+ -diff --git a/chrome/test/data/extensions/api_test/adblock_private/test.html b/chrome/test/data/extensions/api_test/adblock_private/test.html -new file mode 100644 ---- /dev/null -+++ b/chrome/test/data/extensions/api_test/adblock_private/test.html -@@ -0,0 +1,25 @@ -+ -+ -+ -+ Test file -+ -+ -+ -+ popup link -+ -+ -diff --git a/chrome/test/data/extensions/api_test/adblock_private/test.js b/chrome/test/data/extensions/api_test/adblock_private/test.js -new file mode 100644 ---- /dev/null -+++ b/chrome/test/data/extensions/api_test/adblock_private/test.js -@@ -0,0 +1,609 @@ -+// This file is part of eyeo Chromium SDK, -+// Copyright (C) 2006-present eyeo GmbH -+// -+// eyeo Chromium SDK is free software: you can redistribute it and/or modify -+// it under the terms of the GNU General Public License version 3 as -+// published by the Free Software Foundation. -+// -+// eyeo Chromium SDK is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+// -+// You should have received a copy of the GNU General Public License -+// along with eyeo Chromium SDK. If not, see . -+ -+'use strict'; -+ -+const urlParams = new URLSearchParams(window.location.search); -+ -+// This class binds 1st argument for chrome.eyeoFilteringPrivate to 'adblock' -+// configuration and redirects methods renamed in chrome.eyeoFilteringPrivate -+// (eg. `onAdAllowed` => `onRequestAllowed`) which allows test code to -+// seamlessly call the same methods on chrome.adblockPrivate and on -+// chrome.eyeoFilteringPrivate. -+class FilteringPrivateBoundWithAdblock { -+ constructor() { -+ this.delegate = chrome.eyeoFilteringPrivate; -+ this.configuration = 'adblock'; -+ this.getSessionAllowedAdsCount = -+ this.delegate.getSessionAllowedRequestsCount; -+ this.getSessionBlockedAdsCount = -+ this.delegate.getSessionBlockedRequestsCount; -+ this.onAdAllowed = this.delegate.onRequestAllowed; -+ this.onAdBlocked = this.delegate.onRequestBlocked; -+ this.onAllowedDomainsChanged = this.delegate.onAllowedDomainsChanged; -+ this.onCustomFiltersChanged = this.delegate.onCustomFiltersChanged; -+ this.onEnabledStateChanged = this.delegate.onEnabledStateChanged; -+ this.onFilterListsChanged = this.delegate.onFilterListsChanged; -+ this.onSubscriptionUpdated = this.delegate.onSubscriptionUpdated; -+ const methodsToBind = [ -+ 'isEnabled', 'setEnabled', 'getAllowedDomains', 'addAllowedDomain', -+ 'removeAllowedDomain', 'getCustomFilters', 'addCustomFilter', -+ 'removeCustomFilter' -+ ]; -+ for (const method of methodsToBind) { -+ this[method] = function() { -+ const args = Array.from(arguments); -+ args.unshift(this.configuration); -+ this.delegate[method].apply(this.delegate, args); -+ } -+ } -+ const methodsToBindWithoutConfigurationParam = [ -+ 'isAutoInstallEnabled', 'setAutoInstallEnabled' -+ ]; -+ for (const method of methodsToBindWithoutConfigurationParam) { -+ this[method] = function() { -+ const args = Array.from(arguments); -+ this.delegate[method].apply(this.delegate, args); -+ } -+ } -+ const methodsToBindRenamed = new Map([ -+ ['installSubscription', 'addFilterList'], -+ ['uninstallSubscription', 'removeFilterList'], -+ ['getInstalledSubscriptions', 'getFilterLists'], -+ ]); -+ methodsToBindRenamed.forEach((value, key) => { -+ this[key] = -+ function() { -+ const args = Array.from(arguments); -+ args.unshift(this.configuration); -+ this.delegate[value].apply(this.delegate, args); -+ } -+ }); -+ } -+}; -+ -+// Set API object for tests, defaults to chrome.adblockPrivate -+let apiObject = chrome.adblockPrivate; -+if (urlParams.get('api') === 'eyeoFilteringPrivate') { -+ apiObject = new FilteringPrivateBoundWithAdblock; -+} -+ -+function findEnglishEasyList(item) { -+ console.log(item.title + ' ' + item.url + ' ' + item.languages); -+ return item.title.toLowerCase().includes('easylist') && -+ item.url.toLowerCase().includes('easylist') && -+ item.languages.includes('en'); -+} -+ -+function containsSubscription(subscriptions, url) { -+ for (const subscription of subscriptions) { -+ if (subscription.url === url) { -+ return true; -+ } -+ } -+ return false; -+} -+ -+// Checks that session stats data contains expected filter list url entry with a -+// single hit -+function verifySessionStats(sessionStats) { -+ let index = -1; -+ for (let i = 0; i < sessionStats.length; i++) { -+ if (sessionStats[i].url === 'adblock:custom') { -+ index = i; -+ break; -+ } -+ } -+ if (index == -1) { -+ chrome.test.fail('Failed: Missing entry in sessionStats'); -+ return; -+ } -+ if (sessionStats[index].count != 1) { -+ chrome.test.fail( -+ 'Failed: Expected a single subscription hit number, got: ' + -+ sessionStats[index].count); -+ } -+} -+ -+// Checks that even contains no error and expected filter list url -+function verifyEventData(event) { -+ if (event.tab_id < 1) { -+ chrome.test.fail('Failed: Wrong tab_id value'); -+ } -+ if (event.window_id < 1) { -+ chrome.test.fail('Failed: Wrong window_id value'); -+ } -+ if (event.content_type !== 'XMLHTTPREQUEST') { -+ chrome.test.fail('Failed: Wrong content_type value: ' + event.content_type); -+ } -+ if (event.subscription !== 'adblock:custom') { -+ chrome.test.fail('Failed: Wrong subscription value: ' + event.subscription); -+ } -+} -+ -+function arrayEquals(a, b) { -+ if (a === b) -+ return true; -+ if (a === null || b === null) -+ return false; -+ if (a.length !== b.length) -+ return false; -+ for (var i = 0; i < a.length; i++) { -+ if (a[i] !== b[i]) -+ return false; -+ } -+ return true; -+}; -+ -+const availableTests = [ -+ function setEnabled_isEnabled() { -+ apiObject.setEnabled(false); -+ apiObject.isEnabled(function(enabled) { -+ if (enabled) -+ chrome.test.fail('Failed: ad blocking should NOT be enabled'); -+ }); -+ apiObject.setEnabled(true); -+ apiObject.isEnabled(function(enabled) { -+ if (enabled) -+ chrome.test.succeed(); -+ else -+ chrome.test.fail('Failed: ad blocking should be enabled'); -+ }); -+ }, -+ function setAAEnabled_isAAEnabled() { -+ chrome.adblockPrivate.setAcceptableAdsEnabled(false); -+ chrome.adblockPrivate.isAcceptableAdsEnabled(function(enabled) { -+ if (enabled) -+ chrome.test.fail('Failed: AA should NOT be enabled'); -+ }); -+ chrome.adblockPrivate.setAcceptableAdsEnabled(true); -+ chrome.adblockPrivate.getInstalledSubscriptions(function(selected) { -+ if (!containsSubscription( -+ selected, -+ 'https://easylist-downloads.adblockplus.org/exceptionrules.txt')) { -+ chrome.test.fail('Failed: AA subscription should be on the list'); -+ } -+ }); -+ chrome.adblockPrivate.isAcceptableAdsEnabled(function(enabled) { -+ if (enabled) -+ chrome.test.succeed(); -+ else -+ chrome.test.fail('Failed: AA should be enabled'); -+ }); -+ }, -+ function setAAEnabled_isAAEnabled_newAPI() { -+ const default_config = 'adblock'; -+ chrome.eyeoFilteringPrivate.getAcceptableAdsUrl(function(aa_url) { -+ chrome.eyeoFilteringPrivate.removeFilterList( -+ default_config, aa_url); -+ chrome.adblockPrivate.isAcceptableAdsEnabled(function(enabled) { -+ if (enabled) -+ chrome.test.fail('Failed: AA should NOT be enabled'); -+ }); -+ chrome.eyeoFilteringPrivate.getAcceptableAdsUrl(function(aa_url) { -+ chrome.eyeoFilteringPrivate.addFilterList( -+ default_config, aa_url); -+ chrome.adblockPrivate.isAcceptableAdsEnabled(function(enabled) { -+ if (enabled) -+ chrome.test.succeed(); -+ else -+ chrome.test.fail('Failed: AA should be enabled'); -+ }); -+ }); -+ }); -+ }, -+ function getBuiltInSubscriptions() { -+ chrome.adblockPrivate.getBuiltInSubscriptions(function(recommended) { -+ const found = recommended.find(findEnglishEasyList); -+ if (found) { -+ chrome.test.succeed(); -+ } else { -+ chrome.test.fail('Failed: invalid built-in subscriptions'); -+ } -+ }); -+ }, -+ // This test works because at the beginning getInstalledSubscriptions returns -+ // just default entries from recommended subscriptions. -+ function installedSubscriptionsDataSchema() { -+ const disabled = !!urlParams.get('disabled'); -+ if (disabled) { -+ apiObject.setEnabled(false); -+ } -+ apiObject.getInstalledSubscriptions(function(installed) { -+ for (const subscription of installed) { -+ if (!subscription.url) -+ chrome.test.fail('Failed: Must contain "url" property'); -+ if (!(subscription.installation_state == 'Unknown' && disabled || -+ subscription.installation_state != 'Unknown' && !disabled)) -+ chrome.test.fail( -+ 'Failed: Must contain valid "installation_state" property'); -+ if (disabled) -+ continue; -+ const pathname = new URL(subscription.url).pathname; -+ if (subscription.title != pathname) -+ chrome.test.fail('Failed: Must contain expected "title" property'); -+ if (subscription.current_version != pathname.length) -+ chrome.test.fail('Failed: Must contain expected "current_version" property'); -+ if (!subscription.last_installation_time) -+ chrome.test.fail( -+ 'Failed: Installed subscription must contain "last_installation_time" property'); -+ } -+ chrome.test.succeed(); -+ }); -+ }, -+ function installSubscriptionInvalidURL() { -+ apiObject.installSubscription('http://', function() { -+ if (!chrome.runtime.lastError) -+ chrome.test.fail('Failed: invalid input accepted'); -+ else -+ chrome.test.succeed(); -+ }); -+ }, -+ function uninstallSubscriptionInvalidURL() { -+ apiObject.uninstallSubscription('http://', function() { -+ if (!chrome.runtime.lastError) -+ chrome.test.fail('Failed: invalid input accepted'); -+ else -+ chrome.test.succeed(); -+ }); -+ }, -+ function subscriptionsManagement() { -+ const kEasylist = urlParams.get('easylist'); -+ const kExceptionrules = urlParams.get('exceptions'); -+ const kABPFilters = urlParams.get('snippets'); -+ const kCustom = 'https://example.com/subscription.txt'; -+ -+ function containsDefaultSubscriptions(subscriptions) { -+ return containsSubscription(subscriptions, kEasylist) && -+ containsSubscription(subscriptions, kExceptionrules) && -+ containsSubscription(subscriptions, kABPFilters); -+ } -+ -+ if (urlParams.get('disabled')) { -+ apiObject.setEnabled(false); -+ } -+ -+ apiObject.getInstalledSubscriptions(function(installed) { -+ if (installed.length) { -+ if (!containsDefaultSubscriptions(installed)) { -+ chrome.test.fail('Failed: Should contain all default subscriptions'); -+ } -+ for (const subscription of installed) { -+ apiObject.uninstallSubscription(subscription.url); -+ } -+ } else { -+ chrome.test.fail('Failed: Should contain default subscriptions'); -+ } -+ apiObject.getInstalledSubscriptions(function(installed) { -+ if (installed.length) { -+ chrome.test.fail( -+ 'Failed: There shouldn\'t be any installed subscriptions'); -+ } -+ apiObject.installSubscription(kEasylist); -+ apiObject.installSubscription(kExceptionrules); -+ apiObject.installSubscription(kABPFilters); -+ apiObject.getInstalledSubscriptions(function(installed) { -+ if (installed.length) { -+ if (!containsDefaultSubscriptions(installed)) { -+ chrome.test.fail( -+ 'Failed: Should contain all default subscriptions'); -+ } -+ } else { -+ chrome.test.fail('Failed: Should contain default subscriptions'); -+ } -+ apiObject.installSubscription(kCustom); -+ apiObject.getInstalledSubscriptions(function(installed) { -+ if (!containsSubscription(installed, kCustom)) { -+ chrome.test.fail('Failed: Should contain custom subscription'); -+ } -+ apiObject.uninstallSubscription(kCustom); -+ apiObject.getInstalledSubscriptions(function(installed) { -+ if (containsSubscription(installed, kCustom)) { -+ chrome.test.fail( -+ 'Failed: Should not contain custom subscription'); -+ } else { -+ chrome.test.succeed(); -+ } -+ }); -+ }); -+ }); -+ }); -+ }); -+ }, -+ function allowedDomainsManagement() { -+ apiObject.getAllowedDomains(function(domains) { -+ if (domains.length) { -+ for (const domain of domains) -+ apiObject.removeAllowedDomain(domain); -+ } -+ -+ apiObject.getAllowedDomains(function(domains) { -+ if (domains.length) { -+ chrome.test.fail('Failed: There shouldn\'t be any allowed domains'); -+ return; -+ } -+ -+ apiObject.addAllowedDomain('foo.bar'); -+ apiObject.addAllowedDomain('bar.baz'); -+ apiObject.getAllowedDomains(function(domains) { -+ if (domains.length != 2) { -+ chrome.test.fail('Failed: There should be 2 allowed domains'); -+ return; -+ } -+ -+ if (domains.indexOf('foo.bar') == -1 || -+ domains.indexOf('bar.baz') == -1) { -+ chrome.test.fail('Failed: Didn\'t find expected allowed domains'); -+ return; -+ } -+ -+ apiObject.removeAllowedDomain('foo.bar'); -+ apiObject.removeAllowedDomain('bar.baz'); -+ -+ apiObject.getAllowedDomains(function(domains) { -+ if (domains.length) -+ chrome.test.fail('Failed: Still have allowed domains'); -+ else -+ chrome.test.succeed(); -+ }); -+ }); -+ }); -+ }); -+ }, -+ function customFiltersManagement() { -+ apiObject.getCustomFilters(function(filters) { -+ if (filters.length) { -+ for (const filter of filters) -+ apiObject.removeCustomFilter(filter); -+ } -+ -+ apiObject.getCustomFilters(function(filters) { -+ if (filters.length) { -+ chrome.test.fail('Failed: There shouldn\'t be any custom filters'); -+ return; -+ } -+ -+ apiObject.addCustomFilter('foo.bar'); -+ apiObject.addCustomFilter('bar.baz'); -+ apiObject.getCustomFilters(function(filters) { -+ if (filters.length != 2) { -+ chrome.test.fail('Failed: There should be 2 custom filters'); -+ return; -+ } -+ -+ if (filters.indexOf('foo.bar') == -1 || -+ filters.indexOf('bar.baz') == -1) { -+ chrome.test.fail('Failed: Didn\'t find expected custom filters'); -+ return; -+ } -+ -+ apiObject.removeCustomFilter('foo.bar'); -+ apiObject.removeCustomFilter('bar.baz'); -+ -+ apiObject.getCustomFilters(function(filters) { -+ if (filters.length) -+ chrome.test.fail('Failed: Still have custom filters'); -+ else -+ chrome.test.succeed(); -+ }); -+ }); -+ }); -+ }); -+ }, -+ function adBlockedEvents() { -+ let expected_filters_count = 1; -+ apiObject.onCustomFiltersChanged.addListener(function(filter) { -+ if (--expected_filters_count) -+ return; -+ -+ apiObject.onAdBlocked.addListener(function(e) { -+ verifyEventData(e); -+ if (e.url.includes('test1.png')) { -+ chrome.test.succeed(); -+ } -+ }); -+ // External request to delay triggering test request -+ const delaying_wrapper_request = new XMLHttpRequest(); -+ const delaying_wrapper_request_handler = function() { -+ // Internal request expected by test logic -+ const blocked_url_request = new XMLHttpRequest(); -+ const blocked_url_request_handler = function() {}; -+ blocked_url_request.onload = blocked_url_request_handler; -+ blocked_url_request.onerror = blocked_url_request_handler; -+ blocked_url_request.open('GET', 'https://example.com/test1.png', true); -+ blocked_url_request.send(); -+ }; -+ delaying_wrapper_request.onload = delaying_wrapper_request_handler; -+ delaying_wrapper_request.onerror = delaying_wrapper_request_handler; -+ delaying_wrapper_request.open('GET', 'https://example.com/', true); -+ delaying_wrapper_request.send(); -+ }); -+ apiObject.addCustomFilter('test1.png'); -+ }, -+ function adAllowedEvents() { -+ let expected_filters_count = 2; -+ apiObject.onCustomFiltersChanged.addListener(function(filter) { -+ if (--expected_filters_count) -+ return; -+ -+ apiObject.onAdAllowed.addListener(function(e) { -+ verifyEventData(e); -+ if (e.url.includes('test2.png')) { -+ chrome.test.succeed(); -+ } -+ }); -+ // External request to delay triggering test request -+ const delaying_wrapper_request = new XMLHttpRequest(); -+ const delaying_wrapper_request_handler = function() { -+ // Internal request expected by test logic -+ const allowed_url_request = new XMLHttpRequest(); -+ const allowed_url_request_handler = function() {}; -+ allowed_url_request.onload = allowed_url_request_handler; -+ allowed_url_request.onerror = allowed_url_request_handler; -+ allowed_url_request.open('GET', 'https://example.com/test2.png', true); -+ allowed_url_request.send(); -+ }; -+ delaying_wrapper_request.onload = delaying_wrapper_request_handler; -+ delaying_wrapper_request.onerror = delaying_wrapper_request_handler; -+ delaying_wrapper_request.open('GET', 'https://example.com/', true); -+ delaying_wrapper_request.send(); -+ }); -+ apiObject.addCustomFilter('test2.png'); -+ apiObject.addCustomFilter('@@test2.png'); -+ }, -+ function sessionStats() { -+ let expected_filters_count = 3; -+ apiObject.onCustomFiltersChanged.addListener(function(filter) { -+ if (--expected_filters_count) -+ return; -+ -+ const blocked_request_handler = function() { -+ apiObject.getSessionBlockedAdsCount(function(sessionStats) { -+ verifySessionStats(sessionStats); -+ const allowed_request_handler = function() { -+ apiObject.getSessionAllowedAdsCount(function(sessionStats) { -+ verifySessionStats(sessionStats); -+ chrome.test.succeed(); -+ }); -+ }; -+ const request = new XMLHttpRequest(); -+ request.onload = allowed_request_handler; -+ request.onerror = allowed_request_handler; -+ request.open('GET', 'https://example.com/test4.png', true); -+ request.send(); -+ }); -+ }; -+ const request = new XMLHttpRequest(); -+ request.onload = blocked_request_handler; -+ request.onerror = blocked_request_handler; -+ request.open('GET', 'https://example.com/test3.png', true); -+ request.send(); -+ }); -+ apiObject.addCustomFilter('test3.png'); -+ apiObject.addCustomFilter('test4.png'); -+ apiObject.addCustomFilter('@@test4.png'); -+ }, -+ function allowedDomainsEvent() { -+ const domain = 'domain.com'; -+ let data = [domain]; -+ let attempts = 2; -+ apiObject.onAllowedDomainsChanged.addListener(function() { -+ apiObject.getAllowedDomains(function(domains) { -+ if (!arrayEquals(data, domains)) { -+ chrome.test.fail('Unexpected domain list'); -+ } -+ if (--attempts == 0) { -+ chrome.test.succeed(); -+ } -+ }); -+ }); -+ apiObject.addAllowedDomain(domain); -+ data = []; -+ apiObject.removeAllowedDomain(domain); -+ }, -+ function enabledStateEvent() { -+ let state = false; -+ let attempts = 2; -+ apiObject.onEnabledStateChanged.addListener(function() { -+ apiObject.isEnabled(function(enabled) { -+ if (enabled !== state) { -+ chrome.test.fail('Unexpected enabled state'); -+ } -+ if (--attempts == 0) { -+ chrome.test.succeed(); -+ } -+ }); -+ }); -+ apiObject.setEnabled(false); -+ state = true; -+ apiObject.setEnabled(true); -+ }, -+ function filterListsEvent() { -+ const kCustom = 'https://example.com/subscription.txt'; -+ let data = [kCustom]; -+ let attempts = 2; -+ apiObject.onFilterListsChanged.addListener(function() { -+ apiObject.getInstalledSubscriptions(function(custom) { -+ if (!(data.length + 3, custom.length)) { -+ chrome.test.fail('Unexpected subscription list'); -+ } -+ if (--attempts == 0) { -+ chrome.test.succeed(); -+ } -+ data = []; -+ apiObject.uninstallSubscription(kCustom); -+ }); -+ }); -+ apiObject.installSubscription(kCustom); -+ }, -+ function customFiltersEvent() { -+ const filter = 'foo.bar'; -+ let data = [filter]; -+ let attempts = 2; -+ apiObject.onCustomFiltersChanged.addListener(function() { -+ apiObject.getCustomFilters(function(filters) { -+ if (!arrayEquals(data, filters)) { -+ chrome.test.fail('Unexpected custom filter list'); -+ } -+ if (--attempts == 0) { -+ chrome.test.succeed(); -+ } -+ }); -+ }); -+ apiObject.addCustomFilter(filter); -+ data = []; -+ apiObject.removeCustomFilter(filter); -+ }, -+ function disableGeolocation() { -+ const geoLocatedList1 = urlParams.get('geolocated_list_1'); -+ const geoLocatedList2 = urlParams.get('geolocated_list_2'); -+ if (!geoLocatedList1 || !geoLocatedList2) { -+ chrome.test.fail('Failed: missing expected filter list param(s)'); -+ } -+ apiObject.isAutoInstallEnabled(function(enabled) { -+ if (!enabled) { -+ chrome.test.fail('Failed: auto installed FL feature should be enabled by default'); -+ } -+ apiObject.getInstalledSubscriptions(function(installed) { -+ if (!containsSubscription(installed, geoLocatedList1) -+ || !containsSubscription(installed, geoLocatedList2)) { -+ chrome.test.fail('Failed: Should contain expected auto installed filter lists'); -+ } -+ // Make geoLocatedList1 not auto-installed -+ apiObject.uninstallSubscription(geoLocatedList1); -+ apiObject.installSubscription(geoLocatedList1); -+ apiObject.setAutoInstallEnabled(false); -+ apiObject.isAutoInstallEnabled(function(enabled) { -+ if (enabled) { -+ chrome.test.fail('Failed: auto installed FL feature should be disabled'); -+ } -+ apiObject.getInstalledSubscriptions(function(installed) { -+ if (!containsSubscription(installed, geoLocatedList1)) { -+ chrome.test.fail('Failed: Should contain manually installed filter list'); -+ } -+ if (containsSubscription(installed, geoLocatedList2)) { -+ chrome.test.fail('Failed: Should NOT contain auto installed filter list'); -+ } -+ chrome.test.succeed(); -+ }); -+ }); -+ }); -+ }); -+ }, -+]; -+ -+chrome.test.runTests(availableTests.filter(function(op) { -+ return op.name == urlParams.get('subtest'); -+})); -diff --git a/chrome/test/data/extensions/api_test/eyeo_filtering_private/empty.js b/chrome/test/data/extensions/api_test/eyeo_filtering_private/empty.js -new file mode 100644 ---- /dev/null -+++ b/chrome/test/data/extensions/api_test/eyeo_filtering_private/empty.js -@@ -0,0 +1,14 @@ -+// This file is part of eyeo Chromium SDK, -+// Copyright (C) 2006-present eyeo GmbH -+// -+// eyeo Chromium SDK is free software: you can redistribute it and/or modify -+// it under the terms of the GNU General Public License version 3 as -+// published by the Free Software Foundation. -+// -+// eyeo Chromium SDK is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+// -+// You should have received a copy of the GNU General Public License -+// along with eyeo Chromium SDK. If not, see . -diff --git a/chrome/test/data/extensions/api_test/eyeo_filtering_private/main.html b/chrome/test/data/extensions/api_test/eyeo_filtering_private/main.html -new file mode 100644 ---- /dev/null -+++ b/chrome/test/data/extensions/api_test/eyeo_filtering_private/main.html -@@ -0,0 +1,29 @@ -+ -+ -+ -+ -+ -+ -+ Eyeo filtering private API test -+ -+ -+ -+

chrome.eyeoFilteringPrivate.* tests

-+ -+ -+ -diff --git a/chrome/test/data/extensions/api_test/eyeo_filtering_private/manifest.json b/chrome/test/data/extensions/api_test/eyeo_filtering_private/manifest.json -new file mode 100644 ---- /dev/null -+++ b/chrome/test/data/extensions/api_test/eyeo_filtering_private/manifest.json -@@ -0,0 +1,31 @@ -+// This file is part of eyeo Chromium SDK, -+// Copyright (C) 2006-present eyeo GmbH -+// -+// eyeo Chromium SDK is free software: you can redistribute it and/or modify -+// it under the terms of the GNU General Public License version 3 as -+// published by the Free Software Foundation. -+// -+// eyeo Chromium SDK is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+// -+// You should have received a copy of the GNU General Public License -+// along with eyeo Chromium SDK. If not, see . -+{ -+ "name": "eyeoFilteringPrivate API test", -+ "key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkRxyv6tzqVnC+2gR3QxaN32fynw6GBZd9CXH8huHopx5xZ0fE1gScXnnjna7YW2sc6dhZZv326lRwmsJRwJN+RZpxBQbTD4CuCiqfUo+Xdyigh91QqyScLLRmg3SPsBBF9X/M50LO/6MD2eETiWbQQRy1TXNz52lt6NtjXKmS2lVZzR/jnGyAA96vMOmxeNIJmSYHFOHlSIphAJr/Erd0v1ZcBjJnZxqSrKZwUTHHc/FxcN1YqJkU/6O6gjMLNo3Uv33bqRAYmGUq+TTftwLg2hzEE1OllThcF9VVmQ3HZ5eTqqw/XP/tiQ/vUBflKer2mSVk708VBNpktao44kAtQIDAQAB", -+ "version": "0.1", -+ "incognito": "split", -+ "manifest_version": 3, -+ "background": { -+ "service_worker": "empty.js" -+ }, -+ "description": "Test of chrome.eyeoFilteringPrivate interface", -+ "host_permissions": [ -+ "" -+ ], -+ "permissions": [ -+ "eyeoFilteringPrivate" -+ ] -+} -diff --git a/chrome/test/data/extensions/api_test/eyeo_filtering_private/test.js b/chrome/test/data/extensions/api_test/eyeo_filtering_private/test.js -new file mode 100644 ---- /dev/null -+++ b/chrome/test/data/extensions/api_test/eyeo_filtering_private/test.js -@@ -0,0 +1,429 @@ -+// This file is part of eyeo Chromium SDK, -+// Copyright (C) 2006-present eyeo GmbH -+// -+// eyeo Chromium SDK is free software: you can redistribute it and/or modify -+// it under the terms of the GNU General Public License version 3 as -+// published by the Free Software Foundation. -+// -+// eyeo Chromium SDK is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+// -+// You should have received a copy of the GNU General Public License -+// along with eyeo Chromium SDK. If not, see . -+ -+'use strict'; -+ -+const custom_config = 'custom'; -+ -+async function pollUntil(predicate, pollEveryMs) { -+ return new Promise(r => { -+ const id = setInterval(() => { -+ let ret; -+ if (ret = predicate()) { -+ clearInterval(id); -+ r(ret); -+ } -+ }, pollEveryMs); -+ }); -+} -+ -+function containsSubscription(subscriptions, url) { -+ for (const subscription of subscriptions) { -+ if (subscription.url === url) { -+ return true; -+ } -+ } -+ return false; -+} -+ -+function arrayEquals(a, b) { -+ if (a === b) -+ return true; -+ if (a === null || b === null) -+ return false; -+ if (a.length !== b.length) -+ return false; -+ for (var i = 0; i < a.length; i++) { -+ if (a[i] !== b[i]) -+ return false; -+ } -+ return true; -+}; -+ -+const availableTests = [ -+ function createRemoveAndGetConfigurations() { -+ chrome.eyeoFilteringPrivate.getConfigurations(function(configs) { -+ if (configs.includes(custom_config)) { -+ chrome.test.fail('Failed: There should NOT be a custom configuration'); -+ } -+ chrome.eyeoFilteringPrivate.createConfiguration(custom_config); -+ chrome.eyeoFilteringPrivate.getConfigurations(function(configs) { -+ if (!configs.includes(custom_config)) { -+ chrome.test.fail('Failed: There should be a custom configuration'); -+ } -+ chrome.eyeoFilteringPrivate.removeConfiguration(custom_config); -+ chrome.eyeoFilteringPrivate.getConfigurations(function(configs) { -+ if (configs.includes(custom_config)) { -+ chrome.test.fail('Failed: There should NOT be a custom configuration'); -+ } -+ chrome.test.succeed(); -+ }); -+ }); -+ }); -+ }, -+ async function createRemoveAndGetConfigurationsWithPromises() { -+ let configs = await chrome.eyeoFilteringPrivate.getConfigurations(); -+ if (configs.includes(custom_config)) { -+ chrome.test.fail('Failed: There should NOT be a custom configuration'); -+ } -+ chrome.eyeoFilteringPrivate.createConfiguration(custom_config); -+ configs = await chrome.eyeoFilteringPrivate.getConfigurations(); -+ if (!configs.includes(custom_config)) { -+ chrome.test.fail('Failed: There should be a custom configuration'); -+ } -+ chrome.eyeoFilteringPrivate.removeConfiguration(custom_config); -+ configs = await chrome.eyeoFilteringPrivate.getConfigurations(); -+ if (configs.includes(custom_config)) { -+ chrome.test.fail('Failed: There should NOT be a custom configuration'); -+ } else { -+ chrome.test.succeed(); -+ } -+ }, -+ function enableAndDisableConfiguration() { -+ chrome.eyeoFilteringPrivate.createConfiguration(custom_config); -+ chrome.eyeoFilteringPrivate.isEnabled(custom_config, function(enabled) { -+ if (!enabled) { -+ chrome.test.fail('Failed: Configuration should be enabled'); -+ } -+ chrome.eyeoFilteringPrivate.setEnabled(custom_config, false); -+ chrome.eyeoFilteringPrivate.isEnabled(custom_config, function(enabled) { -+ if (enabled) { -+ chrome.test.fail('Failed: Configuration should NOT be enabled'); -+ } -+ chrome.eyeoFilteringPrivate.setEnabled(custom_config, true); -+ chrome.eyeoFilteringPrivate.isEnabled(custom_config, function(enabled) { -+ if (!enabled) { -+ chrome.test.fail('Failed: Configuration should be enabled'); -+ } -+ chrome.test.succeed(); -+ }); -+ }); -+ }); -+ }, -+ function enableAndDisableConfigurationWithPromises() { -+ chrome.eyeoFilteringPrivate.createConfiguration(custom_config); -+ chrome.eyeoFilteringPrivate.isEnabled(custom_config) -+ .then(enabled => { -+ if (!enabled) { -+ throw 'Failed: Configuration should be enabled'; -+ } -+ chrome.eyeoFilteringPrivate.setEnabled(custom_config, false); -+ }) -+ .then(() => chrome.eyeoFilteringPrivate.isEnabled(custom_config)) -+ .then(enabled => { -+ if (enabled) { -+ throw 'Failed: Configuration should NOT be enabled'; -+ } -+ chrome.eyeoFilteringPrivate.setEnabled(custom_config, true); -+ }) -+ .then(() => chrome.eyeoFilteringPrivate.isEnabled(custom_config)) -+ .then(enabled => { -+ if (!enabled) { -+ throw 'Failed: Configuration should be enabled'; -+ } -+ chrome.test.succeed(); -+ }) -+ .catch(message => chrome.test.fail(message)) -+ }, -+ function addAllowedDomainToCustomConfiguration() { -+ const domain = 'domain.com'; -+ chrome.eyeoFilteringPrivate.createConfiguration(custom_config); -+ chrome.eyeoFilteringPrivate.addAllowedDomain(custom_config, domain); -+ chrome.eyeoFilteringPrivate.getAllowedDomains( -+ custom_config, function(domains) { -+ if (domains.length != 1 || domains.indexOf(domain) == -1) { -+ chrome.test.fail('Failed: There should be a custom domain'); -+ } -+ chrome.eyeoFilteringPrivate.removeAllowedDomain(custom_config, domain); -+ chrome.eyeoFilteringPrivate.getAllowedDomains( -+ custom_config, function(domains) { -+ if (domains.length) { -+ chrome.test.fail('Failed: Still have custom domain(s)'); -+ } -+ chrome.test.succeed(); -+ }); -+ }); -+ }, -+ function addAllowedDomainToCustomConfigurationWithPromises() { -+ const domain = 'domain.com'; -+ chrome.eyeoFilteringPrivate.createConfiguration(custom_config); -+ chrome.eyeoFilteringPrivate.addAllowedDomain(custom_config, domain) -+ .then(() => chrome.eyeoFilteringPrivate.getAllowedDomains(custom_config)) -+ .then(domains => { -+ if (domains.length != 1 || domains.indexOf(domain) == -1) { -+ throw 'Failed: There should be a custom domain'; -+ } -+ chrome.eyeoFilteringPrivate.removeAllowedDomain(custom_config, domain); -+ }) -+ .then(() => chrome.eyeoFilteringPrivate.getAllowedDomains(custom_config)) -+ .then(domains => { -+ if (domains.length) { -+ throw 'Failed: Still have custom domain(s)'; -+ } -+ chrome.test.succeed(); -+ }) -+ .catch(message => chrome.test.fail(message)) -+ }, -+ function addCustomFilterToCustomConfiguration() { -+ const filter = '||foo.bar'; -+ chrome.eyeoFilteringPrivate.createConfiguration(custom_config); -+ chrome.eyeoFilteringPrivate.addCustomFilter(custom_config, filter); -+ chrome.eyeoFilteringPrivate.getCustomFilters( -+ custom_config, function(filters) { -+ if (filters.length != 1 || filters.indexOf(filter) == -1) { -+ chrome.test.fail('Failed: There should be a custom filter'); -+ } -+ chrome.eyeoFilteringPrivate.removeCustomFilter(custom_config, filter); -+ chrome.eyeoFilteringPrivate.getCustomFilters( -+ custom_config, function(filters) { -+ if (filters.length) { -+ chrome.test.fail('Failed: Still have custom filter(s)'); -+ } -+ chrome.test.succeed(); -+ }); -+ }); -+ }, -+ function addCustomFilterToCustomConfigurationWithPromises() { -+ const filter = '||foo.bar'; -+ chrome.eyeoFilteringPrivate.createConfiguration(custom_config); -+ chrome.eyeoFilteringPrivate.addCustomFilter(custom_config, filter) -+ .then(() => chrome.eyeoFilteringPrivate.getCustomFilters(custom_config)) -+ .then(filters => { -+ if (filters.length != 1 || filters.indexOf(filter) == -1) { -+ throw 'Failed: There should be a custom filter'; -+ } -+ chrome.eyeoFilteringPrivate.removeCustomFilter(custom_config, filter); -+ }) -+ .then(() => chrome.eyeoFilteringPrivate.getCustomFilters(custom_config)) -+ .then(filters => { -+ if (filters.length) { -+ throw 'Failed: Still have custom filter(s)'; -+ } -+ chrome.test.succeed(); -+ }) -+ .catch(message => chrome.test.fail(message)); -+ }, -+ function addFilterListInCustomConfiguration() { -+ const subscription = 'https://example.com/subscription.txt'; -+ chrome.eyeoFilteringPrivate.createConfiguration(custom_config); -+ chrome.eyeoFilteringPrivate.addFilterList(custom_config, subscription); -+ chrome.eyeoFilteringPrivate.getFilterLists( -+ custom_config, function(subscriptions) { -+ if (subscriptions.length != 1 || !containsSubscription(subscriptions, subscription)) { -+ chrome.test.fail('Failed: There should be a single custom subscription'); -+ } -+ chrome.eyeoFilteringPrivate.removeFilterList(custom_config, subscription); -+ chrome.eyeoFilteringPrivate.getFilterLists( -+ custom_config, function(subscriptions) { -+ if (subscriptions.length) { -+ chrome.test.fail('Failed: Still have custom subscription(s)'); -+ } -+ chrome.test.succeed(); -+ }); -+ }); -+ }, -+ function addFilterListInCustomConfigurationWithPromises() { -+ const subscription = 'https://example.com/subscription.txt'; -+ chrome.eyeoFilteringPrivate.createConfiguration(custom_config); -+ chrome.eyeoFilteringPrivate.addFilterList(custom_config, subscription) -+ .then(() => chrome.eyeoFilteringPrivate.getFilterLists(custom_config)) -+ .then(subscriptions => { -+ if (subscriptions.length != 1 || !containsSubscription(subscriptions, subscription)) { -+ throw 'Failed: There should be a single custom subscription'; -+ } -+ chrome.eyeoFilteringPrivate.removeFilterList(custom_config, subscription); -+ }) -+ .then(() => chrome.eyeoFilteringPrivate.getFilterLists(custom_config)) -+ .then(subscriptions => { -+ if (subscriptions.length) { -+ throw 'Failed: Still have custom subscription(s)'; -+ } -+ chrome.test.succeed(); -+ }) -+ .catch(message => chrome.test.fail(message)); -+ }, -+ async function missingConfiguration() { -+ const input = 'https://dummy.com'; -+ const expectedError = 'Configuration with name \'custom\' does not exist!'; -+ const setters = [ -+ 'addFilterList', 'removeFilterList', 'addAllowedDomain', -+ 'removeAllowedDomain', 'addCustomFilter', 'removeCustomFilter' -+ ]; -+ const getters = [ -+ 'isEnabled', 'getFilterLists', 'getAllowedDomains', 'getCustomFilters' -+ ]; -+ const allMethodsCount = 1 + setters.length + getters.length; -+ let counter = 0; -+ chrome.eyeoFilteringPrivate.setEnabled(custom_config, false, function() { -+ if (!chrome.runtime.lastError) { -+ chrome.test.fail('Failed: missing configuration accepted'); -+ } -+ chrome.test.assertEq(expectedError, chrome.runtime.lastError.message); -+ ++counter; -+ }); -+ for (const method of setters) { -+ chrome.eyeoFilteringPrivate[method](custom_config, input, function() { -+ if (!chrome.runtime.lastError) { -+ chrome.test.fail('Failed: missing configuration accepted'); -+ } -+ chrome.test.assertEq(expectedError, chrome.runtime.lastError.message); -+ ++counter; -+ }); -+ } -+ for (const method of getters) { -+ chrome.eyeoFilteringPrivate[method](custom_config, function(result) { -+ if (!chrome.runtime.lastError) { -+ chrome.test.fail('Failed: missing configuration accepted'); -+ } -+ chrome.test.assertEq(expectedError, chrome.runtime.lastError.message); -+ ++counter; -+ }); -+ } -+ await pollUntil(() => counter === allMethodsCount, 100); -+ chrome.test.succeed(); -+ }, -+ async function missingConfigurationWithPromises() { -+ const input = 'https://dummy.com'; -+ const expectedError = -+ 'Error: Configuration with name \'custom\' does not exist!' -+ const setters = [ -+ 'addFilterList', 'removeFilterList', 'addAllowedDomain', -+ 'removeAllowedDomain', 'addCustomFilter', 'removeCustomFilter' -+ ]; -+ const getters = [ -+ 'isEnabled', 'getFilterLists', 'getAllowedDomains', 'getCustomFilters' -+ ]; -+ const allMethodsCount = 1 + setters.length + getters.length; -+ let counter = 0; -+ const errorHandler = function(error) { -+ chrome.test.assertEq(expectedError, error.toString()); -+ ++counter; -+ }; -+ await chrome.eyeoFilteringPrivate.setEnabled(custom_config, false) -+ .catch(error => errorHandler(error)); -+ for (const method of setters) { -+ await chrome.eyeoFilteringPrivate[method](custom_config, input) -+ .catch(error => errorHandler(error)); -+ } -+ for (const method of getters) { -+ await chrome.eyeoFilteringPrivate[method](custom_config) -+ .catch(error => errorHandler(error)); -+ } -+ if (counter == allMethodsCount) { -+ chrome.test.succeed(); -+ } else { -+ chrome.test.fail('Failed: expected missing configuration for every call'); -+ } -+ }, -+ function allowedDomainsEvent() { -+ const domain = 'domain.com'; -+ let data = [domain]; -+ let attempts = 2; -+ chrome.eyeoFilteringPrivate.onAllowedDomainsChanged.addListener(function( -+ config_name) { -+ if (config_name != custom_config) { -+ chrome.test.fail('Failed: Wrong config name'); -+ } -+ chrome.eyeoFilteringPrivate.getAllowedDomains( -+ custom_config, function(domains) { -+ if (!arrayEquals(data, domains)) { -+ chrome.test.fail('Unexpected domain list'); -+ } -+ if (--attempts == 0) { -+ chrome.test.succeed(); -+ } -+ }); -+ }); -+ chrome.eyeoFilteringPrivate.createConfiguration(custom_config); -+ chrome.eyeoFilteringPrivate.addAllowedDomain(custom_config, domain); -+ data = []; -+ chrome.eyeoFilteringPrivate.removeAllowedDomain(custom_config, domain); -+ }, -+ function enabledStateEvent() { -+ let state = false; -+ let attempts = 2; -+ chrome.eyeoFilteringPrivate.onEnabledStateChanged.addListener(function( -+ config_name) { -+ if (config_name != custom_config) { -+ chrome.test.fail('Failed: Wrong config name'); -+ } -+ chrome.eyeoFilteringPrivate.isEnabled(custom_config, function(enabled) { -+ if (enabled !== state) { -+ chrome.test.fail('Unexpected enabled state'); -+ } -+ if (--attempts == 0) { -+ chrome.test.succeed(); -+ } -+ }); -+ }); -+ chrome.eyeoFilteringPrivate.createConfiguration(custom_config); -+ chrome.eyeoFilteringPrivate.setEnabled(custom_config, false); -+ state = true; -+ chrome.eyeoFilteringPrivate.setEnabled(custom_config, true); -+ }, -+ function filterListsEvent() { -+ const list = 'http://example.com/list.txt'; -+ let data = [list]; -+ let attempts = 2; -+ chrome.eyeoFilteringPrivate.onFilterListsChanged.addListener(function( -+ config_name) { -+ if (config_name != custom_config) { -+ chrome.test.fail('Failed: Wrong config name'); -+ } -+ chrome.eyeoFilteringPrivate.getFilterLists( -+ custom_config, function(custom) { -+ if (!arrayEquals(data, custom)) { -+ chrome.test.fail('Unexpected subscription list'); -+ } -+ if (--attempts == 0) { -+ chrome.test.succeed(); -+ } -+ }); -+ }); -+ chrome.eyeoFilteringPrivate.createConfiguration(custom_config); -+ chrome.eyeoFilteringPrivate.addFilterList(custom_config, list); -+ data = []; -+ chrome.eyeoFilteringPrivate.removeFilterList(custom_config, list); -+ }, -+ function customFiltersEvent() { -+ const filter = 'foo.bar'; -+ let data = [filter]; -+ let attempts = 2; -+ chrome.eyeoFilteringPrivate.onCustomFiltersChanged.addListener(function( -+ config_name) { -+ if (config_name != custom_config) { -+ chrome.test.fail('Failed: Wrong config name'); -+ } -+ chrome.eyeoFilteringPrivate.getCustomFilters( -+ custom_config, function(filters) { -+ if (!arrayEquals(data, filters)) { -+ chrome.test.fail('Unexpected custom filter list'); -+ } -+ if (--attempts == 0) { -+ chrome.test.succeed(); -+ } -+ }); -+ }); -+ chrome.eyeoFilteringPrivate.createConfiguration(custom_config); -+ chrome.eyeoFilteringPrivate.addCustomFilter(custom_config, filter); -+ data = []; -+ chrome.eyeoFilteringPrivate.removeCustomFilter(custom_config, filter); -+ }, -+]; -+ -+const urlParams = new URLSearchParams(window.location.search); -+chrome.test.runTests(availableTests.filter(function(op) { -+ return op.name == urlParams.get('subtest'); -+})); diff --git a/extensions/browser/extension_event_histogram_value.h b/extensions/browser/extension_event_histogram_value.h --- a/extensions/browser/extension_event_histogram_value.h +++ b/extensions/browser/extension_event_histogram_value.h @@ -5498,10 +2973,10 @@ diff --git a/extensions/common/mojom/api_permission_id.mojom b/extensions/common module extensions.mojom; -@@ -288,6 +292,8 @@ enum APIPermissionID { - kOmniboxDirectInput = 261, +@@ -289,6 +293,8 @@ enum APIPermissionID { kExperimentalActor = 262, kEnterpriseLogin = 263, + kProxyOverrideRulesPrivate = 264, + kAdblockPrivate = 999, + kEyeoFilteringPrivate = 1000, diff --git a/build/patches/kill-Location-fall-back-to-system.patch b/build/patches/kill-Location-fall-back-to-system.patch index 43904968..bfc20c8c 100644 --- a/build/patches/kill-Location-fall-back-to-system.patch +++ b/build/patches/kill-Location-fall-back-to-system.patch @@ -57,15 +57,15 @@ diff --git a/services/device/geolocation/android/java/src/org/chromium/device/ge diff --git a/services/device/public/cpp/device_features.cc b/services/device/public/cpp/device_features.cc --- a/services/device/public/cpp/device_features.cc +++ b/services/device/public/cpp/device_features.cc -@@ -63,6 +63,7 @@ BASE_FEATURE(kLocationProviderManager, base::FEATURE_ENABLED_BY_DEFAULT); +@@ -58,6 +58,7 @@ BASE_FEATURE(kLocationProviderManager, base::FEATURE_ENABLED_BY_DEFAULT); #else BASE_FEATURE(kLocationProviderManager, base::FEATURE_DISABLED_BY_DEFAULT); #endif // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) +SET_CROMITE_FEATURE_DISABLED(kLocationProviderManager); - #if BUILDFLAG(IS_CHROMEOS) - // Enables crash key logging for USB device open operations on ChromeOS. See -@@ -113,7 +114,7 @@ const base::FeatureParam + #if BUILDFLAG(IS_ANDROID) + // Enables registering & unregistering of the Battery Status Manager broadcast +@@ -102,7 +103,7 @@ const base::FeatureParam const base::FeatureParam kLocationProviderManagerParam{ &kLocationProviderManager, "LocationProviderManagerMode", diff --git a/build/patches/kill-Vision.patch b/build/patches/kill-Vision.patch index bb9e02a2..e8b22de0 100644 --- a/build/patches/kill-Vision.patch +++ b/build/patches/kill-Vision.patch @@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -296,8 +296,6 @@ if (_is_default_toolchain) { +@@ -306,8 +306,6 @@ if (_is_default_toolchain) { "$google_play_services_package:google_play_services_gcm_java", "$google_play_services_package:google_play_services_iid_java", "$google_play_services_package:google_play_services_tasks_java", diff --git a/build/patches/sharing-hub-always-use-visible-URL.patch b/build/patches/sharing-hub-always-use-visible-URL.patch index 128a8b8f..bc388fd5 100644 --- a/build/patches/sharing-hub-always-use-visible-URL.patch +++ b/build/patches/sharing-hub-always-use-visible-URL.patch @@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/share/ShareDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/share/ShareDelegateImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/share/ShareDelegateImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/share/ShareDelegateImpl.java -@@ -319,6 +319,7 @@ public class ShareDelegateImpl implements ShareDelegate { +@@ -321,6 +321,7 @@ public class ShareDelegateImpl implements ShareDelegate { @VisibleForTesting static boolean shouldFetchCanonicalUrl(final Tab currentTab) { diff --git a/build/patches/ungoogled-chromium-Disable-profile-avatar.patch b/build/patches/ungoogled-chromium-Disable-profile-avatar.patch index 4d32dac1..059f91c7 100644 --- a/build/patches/ungoogled-chromium-Disable-profile-avatar.patch +++ b/build/patches/ungoogled-chromium-Disable-profile-avatar.patch @@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -1224,8 +1224,6 @@ static_library("browser") { +@@ -1206,8 +1206,6 @@ static_library("browser") { "profiles/force_youtube_safety_mode_policy_handler.h", "profiles/off_the_record_profile_impl.cc", "profiles/off_the_record_profile_impl.h", @@ -42,7 +42,7 @@ diff --git a/chrome/browser/profiles/profile_attributes_entry.cc b/chrome/browse diff --git a/chrome/browser/profiles/profile_attributes_storage.cc b/chrome/browser/profiles/profile_attributes_storage.cc --- a/chrome/browser/profiles/profile_attributes_storage.cc +++ b/chrome/browser/profiles/profile_attributes_storage.cc -@@ -983,7 +983,7 @@ void ProfileAttributesStorage::DownloadHighResAvatarIfNeeded( +@@ -986,7 +986,7 @@ void ProfileAttributesStorage::DownloadHighResAvatarIfNeeded( void ProfileAttributesStorage::DownloadHighResAvatar( size_t icon_index, const base::FilePath& profile_path) { diff --git a/build/patches/ungoogled-chromium-Disable-translate-integration.patch b/build/patches/ungoogled-chromium-Disable-translate-integration.patch index 609d1216..1a2cd49b 100644 --- a/build/patches/ungoogled-chromium-Disable-translate-integration.patch +++ b/build/patches/ungoogled-chromium-Disable-translate-integration.patch @@ -78,7 +78,7 @@ diff --git a/chrome/browser/language/android/java/res/xml/languages_preferences. diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/settings/LanguageSettings.java b/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/settings/LanguageSettings.java --- a/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/settings/LanguageSettings.java +++ b/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/settings/LanguageSettings.java -@@ -33,7 +33,6 @@ import org.chromium.chrome.browser.settings.ChromeBaseSettingsFragment; +@@ -34,7 +34,6 @@ import org.chromium.chrome.browser.settings.ChromeBaseSettingsFragment; import org.chromium.chrome.browser.settings.ChromeManagedPreferenceDelegate; import org.chromium.chrome.browser.settings.SettingsNavigationFactory; import org.chromium.chrome.browser.settings.search.ChromeBaseSearchIndexProvider; @@ -86,7 +86,7 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; import org.chromium.components.browser_ui.settings.SettingsUtils; import org.chromium.components.browser_ui.settings.search.SettingsIndexData; -@@ -58,12 +57,6 @@ public class LanguageSettings extends ChromeBaseSettingsFragment +@@ -59,12 +58,6 @@ public class LanguageSettings extends ChromeBaseSettingsFragment static final String APP_LANGUAGE_PREFERENCE_KEY = "app_language_preference"; static final String PREFERRED_LANGUAGES_KEY = "preferred_languages"; static final String CONTENT_LANGUAGES_KEY = "content_languages_preference"; @@ -99,7 +99,7 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse private static final String TAG = "LanguageSettings"; -@@ -111,35 +104,6 @@ public class LanguageSettings extends ChromeBaseSettingsFragment +@@ -113,35 +106,6 @@ public class LanguageSettings extends ChromeBaseSettingsFragment ContentLanguagesPreference mLanguageListPref = (ContentLanguagesPreference) findPreference(PREFERRED_LANGUAGES_KEY); mLanguageListPref.initialize(this, getProfile(), getPrefService()); @@ -135,7 +135,7 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse } /** -@@ -154,8 +118,6 @@ public class LanguageSettings extends ChromeBaseSettingsFragment +@@ -156,8 +120,6 @@ public class LanguageSettings extends ChromeBaseSettingsFragment ContentLanguagesPreference mLanguageListPref = (ContentLanguagesPreference) findPreference(CONTENT_LANGUAGES_KEY); mLanguageListPref.initialize(this, getProfile(), getPrefService()); @@ -144,7 +144,7 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse } /** Setup the App Language section with a title and preference to choose the app language. */ -@@ -179,95 +141,6 @@ public class LanguageSettings extends ChromeBaseSettingsFragment +@@ -181,95 +143,6 @@ public class LanguageSettings extends ChromeBaseSettingsFragment mAppLanguageDelegate.setup(this, appLanguagePreference, getProfile()); } @@ -240,7 +240,7 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse @Override public void onStart() { super.onStart(); -@@ -321,17 +194,9 @@ public class LanguageSettings extends ChromeBaseSettingsFragment +@@ -323,17 +196,9 @@ public class LanguageSettings extends ChromeBaseSettingsFragment // Get the actual default system language to set as target language. code = GlobalAppLocaleController.getInstance().getOriginalSystemLocale().getLanguage(); } @@ -258,7 +258,7 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse } /** -@@ -479,23 +344,5 @@ public class LanguageSettings extends ChromeBaseSettingsFragment +@@ -481,23 +346,5 @@ public class LanguageSettings extends ChromeBaseSettingsFragment private static void updateTranslateAdvancedSectionIndex( boolean enabled, boolean refreshResult) { @@ -285,7 +285,7 @@ diff --git a/chrome/browser/language/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 -@@ -1972,9 +1972,6 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1987,9 +1987,6 @@ Your Google account may have other forms of browsing history like searches and a Let websites know the languages you speak. They’ll show content in those languages, when possible. diff --git a/build/patches/ungoogled-chromium-Disable-webRTC-log-uploader.patch b/build/patches/ungoogled-chromium-Disable-webRTC-log-uploader.patch index 131ed0d3..e8a11a88 100644 --- a/build/patches/ungoogled-chromium-Disable-webRTC-log-uploader.patch +++ b/build/patches/ungoogled-chromium-Disable-webRTC-log-uploader.patch @@ -16,7 +16,7 @@ diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_u registry->RegisterListPref(prefs::kWebRtcLocalIpsAllowedUrls); - registry->RegisterBooleanPref(prefs::kWebRtcTextLogCollectionAllowed, true); + registry->RegisterBooleanPref(prefs::kWebRtcTextLogCollectionAllowed, false); - - // We need to register the type of these preferences in order to query - // them even though they're only typically controlled via policy. + registry->RegisterListPref( + prefs::kWebRTCDiagnosticLogCollectionAllowedForOrigins, + base::ListValue()); -- diff --git a/build/patches/ungoogled-chromium-no-special-hosts-domains.patch b/build/patches/ungoogled-chromium-no-special-hosts-domains.patch index cb4be043..de9d7941 100644 --- a/build/patches/ungoogled-chromium-no-special-hosts-domains.patch +++ b/build/patches/ungoogled-chromium-no-special-hosts-domains.patch @@ -40,7 +40,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/ui/BUILD.gn | 1 - chrome/browser/ui/android/omnibox/BUILD.gn | 2 - .../omnibox/LocationBarCoordinator.java | 2 - - .../browser/omnibox/LocationBarMediator.java | 24 -- + .../browser/omnibox/LocationBarMediator.java | 29 -- .../omnibox/geo/GeolocationHeader.java | 1 + .../ui/webui/new_tab_page/new_tab_page_ui.cc | 6 - chrome/browser/ui/webui/ntp/new_tab_ui.cc | 3 +- @@ -71,21 +71,21 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html ...gled-chromium-no-special-hosts-domains.inc | 1 + net/base/url_util.cc | 25 +- services/network/network_context.cc | 2 +- - 64 files changed, 57 insertions(+), 887 deletions(-) + 64 files changed, 57 insertions(+), 892 deletions(-) create mode 100644 cromite_flags/content/public/common/content_features_cc/ungoogled-chromium-no-special-hosts-domains.inc diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java -@@ -121,7 +121,6 @@ import org.chromium.chrome.browser.ntp_customization.NtpCustomizationUtils; +@@ -124,7 +124,6 @@ import org.chromium.chrome.browser.ntp_customization.NtpCustomizationUtils; import org.chromium.chrome.browser.ntp_customization.edge_to_edge.TopInsetCoordinator; import org.chromium.chrome.browser.omnibox.OmniboxActionDelegateImpl; - import org.chromium.chrome.browser.omnibox.OmniboxFocusReason; + import org.chromium.chrome.browser.omnibox.OmniboxChipManager; -import org.chromium.chrome.browser.omnibox.geo.GeolocationHeader; - import org.chromium.chrome.browser.paint_preview.DemoPaintPreview; - import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer; - import org.chromium.chrome.browser.password_manager.PasswordManagerLauncher; -@@ -1439,10 +1438,8 @@ public class RootUiCoordinator + import org.chromium.chrome.browser.open_in_app.OpenInAppEntryPoint; + import org.chromium.chrome.browser.open_in_app.OpenInAppMenuItemProvider; + import org.chromium.chrome.browser.open_in_app.OpenInAppUtils; +@@ -1499,10 +1498,8 @@ public class RootUiCoordinator Profile profile = tab.getProfile(); TemplateUrlService service = TemplateUrlServiceFactory.getForProfile(profile); String url = service.getUrlForSearchQuery(query); @@ -99,10 +99,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -852,10 +852,6 @@ static_library("browser") { - "page_info/privacy_policy_insights_service_factory.h", - "page_load_metrics/observers/bookmark_bar_page_load_metrics_observer.cc", - "page_load_metrics/observers/bookmark_bar_page_load_metrics_observer.h", +@@ -830,10 +830,6 @@ static_library("browser") { + "page_load_metrics/observers/captcha_metrics_observer.h", + "page_load_metrics/observers/captcha_provider_manager.cc", + "page_load_metrics/observers/captcha_provider_manager.h", - "page_load_metrics/observers/chrome_gws_abandoned_page_load_metrics_observer.cc", - "page_load_metrics/observers/chrome_gws_abandoned_page_load_metrics_observer.h", - "page_load_metrics/observers/chrome_gws_page_load_metrics_observer.cc", @@ -110,7 +110,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "page_load_metrics/observers/core/amp_page_load_metrics_observer.cc", "page_load_metrics/observers/core/amp_page_load_metrics_observer.h", "page_load_metrics/observers/core/ukm_page_load_metrics_observer.cc", -@@ -864,10 +860,6 @@ static_library("browser") { +@@ -842,10 +838,6 @@ static_library("browser") { "page_load_metrics/observers/document_write_page_load_metrics_observer.h", "page_load_metrics/observers/foreground_duration_ukm_observer.cc", "page_load_metrics/observers/foreground_duration_ukm_observer.h", @@ -121,16 +121,16 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "page_load_metrics/observers/histogram_suffixes.cc", "page_load_metrics/observers/histogram_suffixes.h", "page_load_metrics/observers/https_engagement_metrics/https_engagement_page_load_metrics_observer.cc", -@@ -1454,8 +1446,6 @@ static_library("browser") { +@@ -1434,8 +1426,6 @@ static_library("browser") { + "supervised_user/metrics_service_accessor_delegate.h", + "supervised_user/supervised_user_browser_utils.cc", "supervised_user/supervised_user_browser_utils.h", - "supervised_user/supervised_user_content_filters_service_factory.cc", - "supervised_user/supervised_user_content_filters_service_factory.h", - "supervised_user/supervised_user_google_auth_navigation_throttle.cc", - "supervised_user/supervised_user_google_auth_navigation_throttle.h", "supervised_user/supervised_user_interstitial_tab_closer.cc", "supervised_user/supervised_user_interstitial_tab_closer.h", "supervised_user/supervised_user_metrics_service_factory.cc", -@@ -1570,10 +1560,7 @@ static_library("browser") { +@@ -1546,10 +1536,7 @@ static_library("browser") { "//chrome/browser/content_settings:impl", "//chrome/browser/devtools", "//chrome/browser/favicon", @@ -141,10 +141,10 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "//chrome/browser/media/webrtc", "//chrome/browser/navigation_predictor:impl", -@@ -1753,7 +1740,6 @@ static_library("browser") { - # New dependencies inside of //chrome/browser that generate header files +@@ -1730,7 +1717,6 @@ static_library("browser") { # should be added to browser_generated_files. ":browser_public_dependencies", + ":chrome_content_browser_client_parts", - "//chrome/browser/google", "//chrome/browser/headless", "//chrome/browser/profiles", @@ -153,7 +153,7 @@ diff --git a/chrome/browser/android/metrics/uma_session_stats.cc b/chrome/browse --- a/chrome/browser/android/metrics/uma_session_stats.cc +++ b/chrome/browser/android/metrics/uma_session_stats.cc @@ -320,16 +320,6 @@ static void JNI_UmaSessionStats_ChangeMetricsReportingConsent( - jint called_from) { + int32_t called_from) { UpdateMetricsPrefsOnPermissionChange( consent, static_cast(called_from)); - @@ -172,7 +172,7 @@ diff --git a/chrome/browser/android/metrics/uma_session_stats.cc b/chrome/browse diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc --- a/chrome/browser/browser_process_impl.cc +++ b/chrome/browser/browser_process_impl.cc -@@ -1336,7 +1336,6 @@ BrowserProcessImpl::component_updater() { +@@ -1359,7 +1359,6 @@ BrowserProcessImpl::component_updater() { std::make_unique(); std::string brand; @@ -183,7 +183,7 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc --- a/chrome/browser/chrome_browser_main.cc +++ b/chrome/browser/chrome_browser_main.cc -@@ -500,11 +500,6 @@ void ProcessSingletonNotificationCallbackImpl( +@@ -501,11 +501,6 @@ void ProcessSingletonNotificationCallbackImpl( StartupBrowserCreator::ProcessCommandLineAlreadyRunning( command_line, current_directory, startup_profile_path_info); @@ -195,7 +195,7 @@ diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_brows } // Handles notifications from other processes. The function receives the -@@ -1985,11 +1980,6 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { +@@ -2014,11 +2009,6 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { upgrade_util::SaveLastModifiedTimeOfExe(); #endif @@ -210,7 +210,7 @@ diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_brows diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -2927,7 +2927,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( +@@ -2971,7 +2971,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( switches::kForceAppMode, #endif switches::kForceUIDirection, @@ -218,7 +218,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch switches::kJavaScriptHarmony, switches::kEnableExperimentalWebAssemblyFeatures, embedder_support::kOriginTrialDisabledFeatures, -@@ -5730,7 +5729,8 @@ GetClientDataHeader(content::FrameTreeNodeId frame_tree_node_id) { +@@ -5777,7 +5776,8 @@ GetClientDataHeader(content::FrameTreeNodeId frame_tree_node_id) { } #endif @@ -228,7 +228,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch #if BUILDFLAG(IS_ANDROID) const std::string& client_data_header, #endif -@@ -5770,7 +5770,7 @@ std::unique_ptr CreateGoogleURLLoaderThrottle( +@@ -5817,7 +5817,7 @@ std::unique_ptr CreateGoogleURLLoaderThrottle( std::move(bound_session_request_throttled_handler), #endif std::move(dynamic_params)); @@ -237,7 +237,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch std::vector> ChromeContentBrowserClient::CreateURLLoaderThrottles( -@@ -5827,15 +5827,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottles( +@@ -5874,15 +5874,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottles( GetClientDataHeader(frame_tree_node_id); #endif @@ -253,7 +253,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch { auto* factory = ProtocolHandlerRegistryFactory::GetForBrowserContext(browser_context); -@@ -5880,20 +5871,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottlesForKeepAlive( +@@ -5927,20 +5918,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottlesForKeepAlive( Profile* profile = Profile::FromBrowserContext(browser_context); DCHECK(profile); @@ -277,9 +277,9 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch diff --git a/chrome/browser/chrome_content_browser_client_navigation_throttles.cc b/chrome/browser/chrome_content_browser_client_navigation_throttles.cc --- a/chrome/browser/chrome_content_browser_client_navigation_throttles.cc +++ b/chrome/browser/chrome_content_browser_client_navigation_throttles.cc -@@ -361,7 +361,6 @@ void CreateAndAddChromeThrottlesForNavigation( - extensions::WebViewGuest::MaybeCreateAndAddNavigationThrottle(registry); - #endif +@@ -381,7 +381,6 @@ void CreateAndAddChromeThrottlesForNavigation( + + #endif // BUILDFLAG(ENABLE_EXTENSIONS_CORE) - SupervisedUserGoogleAuthNavigationThrottle::MaybeCreateAndAdd(registry); supervised_user::ClassifyUrlNavigationThrottle::MaybeCreateAndAdd(registry); @@ -365,7 +365,7 @@ diff --git a/chrome/browser/enterprise/connectors/device_trust/key_management/br diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUILD.gn --- a/chrome/browser/extensions/BUILD.gn +++ b/chrome/browser/extensions/BUILD.gn -@@ -517,7 +517,6 @@ source_set("extensions") { +@@ -515,7 +515,6 @@ source_set("extensions") { "//chrome/browser/extensions/api:api_registration", "//chrome/browser/favicon", "//chrome/browser/gcm", @@ -376,14 +376,14 @@ diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUIL diff --git a/chrome/browser/feedback/BUILD.gn b/chrome/browser/feedback/BUILD.gn --- a/chrome/browser/feedback/BUILD.gn +++ b/chrome/browser/feedback/BUILD.gn -@@ -104,7 +104,6 @@ source_set("feedback_impl") { +@@ -112,7 +112,6 @@ source_set("feedback_impl") { "//chrome/browser/devtools", "//chrome/browser/extensions", "//chrome/browser/first_party_sets", - "//chrome/browser/google", "//chrome/browser/performance_manager/public/user_tuning", - "//chrome/browser/profiles:profile", "//chrome/browser/signin", + "//chrome/browser/sync", diff --git a/chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc b/chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc --- a/chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc +++ b/chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc @@ -409,7 +409,7 @@ diff --git a/chrome/browser/feedback/system_logs/log_sources/chrome_internal_log diff --git a/chrome/browser/first_run/first_run.cc b/chrome/browser/first_run/first_run.cc --- a/chrome/browser/first_run/first_run.cc +++ b/chrome/browser/first_run/first_run.cc -@@ -322,14 +322,6 @@ void SetupInitialPrefsFromInstallPrefs( +@@ -327,14 +327,6 @@ void SetupInitialPrefsFromInstallPrefs( // -- Platform-specific functions -- @@ -436,7 +436,7 @@ diff --git a/chrome/browser/google/BUILD.gn b/chrome/browser/google/BUILD.gn sources = [ "google_brand.cc", "google_brand.h", -@@ -90,7 +90,7 @@ source_set("unit_tests") { +@@ -91,7 +91,7 @@ source_set("unit_tests") { sources = [ "google_update_settings_unittest.cc" ] deps = [ @@ -492,7 +492,7 @@ diff --git a/chrome/browser/long_screenshots/long_screenshots_tab_service.cc b/c diff --git a/chrome/browser/metrics/chrome_metrics_service_client.cc b/chrome/browser/metrics/chrome_metrics_service_client.cc --- a/chrome/browser/metrics/chrome_metrics_service_client.cc +++ b/chrome/browser/metrics/chrome_metrics_service_client.cc -@@ -636,7 +636,7 @@ ChromeMetricsServiceClient::GetNetworkTimeTracker() { +@@ -635,7 +635,7 @@ ChromeMetricsServiceClient::GetNetworkTimeTracker() { } bool ChromeMetricsServiceClient::GetBrand(std::string* brand_code) { @@ -504,7 +504,7 @@ diff --git a/chrome/browser/metrics/chrome_metrics_service_client.cc b/chrome/br diff --git a/chrome/browser/metrics/chrome_metrics_services_manager_client.cc b/chrome/browser/metrics/chrome_metrics_services_manager_client.cc --- a/chrome/browser/metrics/chrome_metrics_services_manager_client.cc +++ b/chrome/browser/metrics/chrome_metrics_services_manager_client.cc -@@ -97,9 +97,6 @@ void PostStoreMetricsClientInfo(const metrics::ClientInfo& client_info) { +@@ -96,9 +96,6 @@ void PostStoreMetricsClientInfo(const metrics::ClientInfo& client_info) { // This must happen on the same sequence as the tasks to enable/disable // metrics reporting. Otherwise, this may run while disabling metrics // reporting if the user quickly enables and disables metrics reporting. @@ -514,7 +514,7 @@ diff --git a/chrome/browser/metrics/chrome_metrics_services_manager_client.cc b/ } #if BUILDFLAG(IS_ANDROID) -@@ -331,7 +328,7 @@ ChromeMetricsServicesManagerClient::GetMetricsStateManager() { +@@ -329,7 +326,7 @@ ChromeMetricsServicesManagerClient::GetMetricsStateManager() { switches::kEnableGpuBenchmarking), }, base::BindRepeating(&PostStoreMetricsClientInfo), @@ -623,7 +623,7 @@ diff --git a/chrome/browser/metrics/metrics_reporting_state.cc b/chrome/browser/ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc --- a/chrome/browser/net/system_network_context_manager.cc +++ b/chrome/browser/net/system_network_context_manager.cc -@@ -954,7 +954,6 @@ void SystemNetworkContextManager::ConfigureDefaultNetworkContextParams( +@@ -937,7 +937,6 @@ void SystemNetworkContextManager::ConfigureDefaultNetworkContextParams( network::mojom::NetworkContextParams* network_context_params) { variations::UpdateCorsExemptHeaderForVariations(network_context_params); variations::UpdateCorsExemptHeaderForOmniboxAutofocus(network_context_params); @@ -678,7 +678,7 @@ diff --git a/chrome/browser/page_load_metrics/observers/from_gws_page_load_metri diff --git a/chrome/browser/page_load_metrics/page_load_metrics_initialize.cc b/chrome/browser/page_load_metrics/page_load_metrics_initialize.cc --- a/chrome/browser/page_load_metrics/page_load_metrics_initialize.cc +++ b/chrome/browser/page_load_metrics/page_load_metrics_initialize.cc -@@ -195,14 +195,9 @@ void PageLoadMetricsEmbedder::RegisterObservers( +@@ -194,14 +194,9 @@ void PageLoadMetricsEmbedder::RegisterObservers( tracker->AddObserver(std::make_unique()); tracker->AddObserver(std::make_unique()); tracker->AddObserver(std::make_unique()); @@ -778,7 +778,7 @@ diff --git a/chrome/browser/signin/android/signin_manager_android.cc b/chrome/br diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -299,7 +299,6 @@ static_library("ui") { +@@ -293,7 +293,6 @@ static_library("ui") { "//chrome/browser/feedback:feedback_impl", "//chrome/browser/file_system_access", "//chrome/browser/gcm", @@ -789,7 +789,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/android/omnibox/BUILD.gn --- a/chrome/browser/ui/android/omnibox/BUILD.gn +++ b/chrome/browser/ui/android/omnibox/BUILD.gn -@@ -68,8 +68,6 @@ android_library("java") { +@@ -69,8 +69,6 @@ android_library("java") { "java/src/org/chromium/chrome/browser/omnibox/fusebox/FuseboxTabUtils.java", "java/src/org/chromium/chrome/browser/omnibox/fusebox/FuseboxViewBinder.java", "java/src/org/chromium/chrome/browser/omnibox/fusebox/FuseboxViewHolder.java", @@ -801,7 +801,7 @@ diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/andr diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java -@@ -49,7 +49,6 @@ import org.chromium.chrome.browser.multiwindow.MultiInstanceManager; +@@ -51,7 +51,6 @@ import org.chromium.chrome.browser.multiwindow.MultiInstanceManager; import org.chromium.chrome.browser.omnibox.LocationBarMediator.OmniboxUma; import org.chromium.chrome.browser.omnibox.fusebox.FuseboxCoordinator; import org.chromium.chrome.browser.omnibox.fusebox.FuseboxCoordinator.FuseboxState; @@ -809,7 +809,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.omnibox.status.StatusCoordinator; import org.chromium.chrome.browser.omnibox.status.StatusCoordinator.PageInfoAction; import org.chromium.chrome.browser.omnibox.status.StatusView; -@@ -540,7 +539,6 @@ public class LocationBarCoordinator +@@ -549,7 +548,6 @@ public class LocationBarCoordinator mLocationBarMediator.destroy(); mLocationBarMediator = null; @@ -820,7 +820,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java -@@ -70,7 +70,6 @@ import org.chromium.chrome.browser.omnibox.UrlBarCoordinator.SelectionState; +@@ -70,7 +70,6 @@ import org.chromium.chrome.browser.omnibox.UrlBar.UrlBarDelegate; import org.chromium.chrome.browser.omnibox.fusebox.FuseboxAttachmentModelList.FuseboxAttachmentChangeListener; import org.chromium.chrome.browser.omnibox.fusebox.FuseboxCoordinator; import org.chromium.chrome.browser.omnibox.fusebox.FuseboxCoordinator.FuseboxState; @@ -828,7 +828,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.omnibox.status.StatusCoordinator; import org.chromium.chrome.browser.omnibox.styles.OmniboxResourceProvider; import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteCoordinator; -@@ -421,22 +420,6 @@ class LocationBarMediator +@@ -423,22 +422,6 @@ class LocationBarMediator if (!mUrlFocusedWithoutAnimations) handleUrlFocusAnimation(hasFocus); @@ -838,12 +838,12 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow - TemplateUrlService templateUrlService = mTemplateUrlServiceSupplier.get(); - if (templateUrlService != null) { - GeolocationHeader.primeLocationForGeoHeaderIfEnabled( -- mProfileSupplier.get(), templateUrlService); +- assertNonNull(mProfileSupplier.get()), templateUrlService); - } else { - mTemplateUrlServiceSupplier.onAvailable( - (service) -> { - GeolocationHeader.primeLocationForGeoHeaderIfEnabled( -- mProfileSupplier.get(), service); +- assertNonNull(mProfileSupplier.get()), service); - }); - } - hintZeroSuggestRefresh(); @@ -851,7 +851,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow if (!hasFocus && mLocationBarDataProvider.hasTab()) { setUrl( mLocationBarDataProvider.getCurrentGurl(), -@@ -453,8 +436,6 @@ class LocationBarMediator +@@ -455,8 +438,6 @@ class LocationBarMediator Profile profile = mProfileSupplier.get(); assert profile != null; templateUrlService.addObserver(this); @@ -860,17 +860,22 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow })); mLocationBarLayout.onFinishNativeInitialization(); -@@ -722,9 +703,6 @@ class LocationBarMediator - LoadUrlParams loadUrlParams = new LoadUrlParams(url); - try (TimingMetric record = - TimingMetric.shortUptime("Android.Omnibox.SetGeolocationHeadersTime")) { -- loadUrlParams.setVerbatimHeaders( -- GeolocationHeader.getGeoHeader( -- url, mProfileSupplier.get(), mTemplateUrlServiceSupplier.get())); - } - loadUrlParams.setTransitionType( - omniboxLoadUrlParams.transitionType | PageTransition.FROM_ADDRESS_BAR); -@@ -2067,7 +2045,6 @@ class LocationBarMediator +@@ -737,14 +718,6 @@ class LocationBarMediator + // ContentView. + if (currentTab != null && !url.isEmpty()) { + LoadUrlParams loadUrlParams = new LoadUrlParams(url); +- try (TimingMetric record = +- TimingMetric.shortUptime("Android.Omnibox.SetGeolocationHeadersTime")) { +- loadUrlParams.setVerbatimHeaders( +- GeolocationHeader.getGeoHeader( +- url, +- assertNonNull(mProfileSupplier.get()), +- mTemplateUrlServiceSupplier.get())); +- } + loadUrlParams.setTransitionType( + omniboxLoadUrlParams.transitionType | PageTransition.FROM_ADDRESS_BAR); + if (omniboxLoadUrlParams.inputStartTimestamp != 0) { +@@ -2114,7 +2087,6 @@ class LocationBarMediator if (OmniboxFeatures.sUseFusedLocationProvider.isEnabled() && profile != null && templateUrlService != null) { @@ -878,7 +883,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow } } -@@ -2075,7 +2052,6 @@ class LocationBarMediator +@@ -2122,7 +2094,6 @@ class LocationBarMediator public void onPauseWithNative() { OmniboxFeatures.updateLastExitTimestamp(); if (OmniboxFeatures.sUseFusedLocationProvider.isEnabled()) { @@ -900,7 +905,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc b/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc --- a/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc +++ b/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc -@@ -779,12 +779,6 @@ content::WebUIDataSource* CreateAndAddNewTabPageUiHtmlSource(Profile* profile) { +@@ -777,12 +777,6 @@ content::WebUIDataSource* CreateAndAddNewTabPageUiHtmlSource(Profile* profile) { // chrome-untrusted://new-tab-page for other external content and resources. // NOTE: Use caution when overriding content security policies as that cean // lead to subtle security bugs such as https://crbug.com/1251541. @@ -964,7 +969,7 @@ diff --git a/chrome/browser/upgrade_detector/upgrade_detector_impl.cc b/chrome/b diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn --- a/chrome/common/BUILD.gn +++ b/chrome/common/BUILD.gn -@@ -145,8 +145,6 @@ static_library("common_lib") { +@@ -144,8 +144,6 @@ static_library("common_lib") { "content_restriction.h", "crash_keys.cc", "crash_keys.h", @@ -1010,14 +1015,14 @@ diff --git a/chrome/renderer/url_loader_throttle_provider_impl.cc b/chrome/rende diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn -@@ -6997,7 +6997,6 @@ test("unit_tests") { +@@ -7063,7 +7063,6 @@ test("unit_tests") { "//chrome/browser/first_party_sets", "//chrome/browser/gcm", "//chrome/browser/gcm:unit_tests", - "//chrome/browser/google:unit_tests", + "//chrome/browser/history", "//chrome/browser/media:unittests", "//chrome/browser/media/prefs", - "//chrome/browser/media/prefs:unit_tests", 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 @@ -1728,7 +1733,7 @@ diff --git a/components/search_engines/search_terms_data.cc b/components/search_ diff --git a/components/search_engines/template_url.cc b/components/search_engines/template_url.cc --- a/components/search_engines/template_url.cc +++ b/components/search_engines/template_url.cc -@@ -624,11 +624,7 @@ std::u16string TemplateURLRef::SearchTermToString16( +@@ -623,11 +623,7 @@ std::u16string TemplateURLRef::SearchTermToString16( bool TemplateURLRef::HasGoogleBaseURLs( const SearchTermsData& search_terms_data) const { @@ -1967,7 +1972,7 @@ diff --git a/net/base/url_util.cc b/net/base/url_util.cc diff --git a/services/network/network_context.cc b/services/network/network_context.cc --- a/services/network/network_context.cc +++ b/services/network/network_context.cc -@@ -3100,7 +3100,7 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( +@@ -3110,7 +3110,7 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( } #endif // BUILDFLAG(IS_CT_SUPPORTED) diff --git a/build/patches/webRTC-do-not-expose-local-IP-addresses.patch b/build/patches/webRTC-do-not-expose-local-IP-addresses.patch index 856e46ad..8cd4c4a2 100644 --- a/build/patches/webRTC-do-not-expose-local-IP-addresses.patch +++ b/build/patches/webRTC-do-not-expose-local-IP-addresses.patch @@ -24,7 +24,7 @@ diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_u registry->RegisterStringPref(prefs::kWebRTCIPHandlingPolicy, - blink::kWebRTCIPHandlingDefault); + blink::kWebRTCIPHandlingDisableNonProxiedUdp); - registry->RegisterListPref(prefs::kWebRTCIPHandlingUrl, base::Value::List()); + registry->RegisterListPref(prefs::kWebRTCIPHandlingUrl, base::ListValue()); registry->RegisterBooleanPref(prefs::kWebRTCPostQuantumKeyAgreement, false); registry->RegisterStringPref(prefs::kWebRTCUDPPortRange, std::string()); diff --git a/third_party/blink/common/peerconnection/webrtc_ip_handling_policy.cc b/third_party/blink/common/peerconnection/webrtc_ip_handling_policy.cc @@ -45,7 +45,7 @@ diff --git a/third_party/blink/common/peerconnection/webrtc_ip_handling_policy.c diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc --- a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc +++ b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc -@@ -1069,7 +1069,7 @@ PeerConnectionDependencyFactory::CreatePortAllocator( +@@ -1094,7 +1094,7 @@ PeerConnectionDependencyFactory::CreatePortAllocator( break; }