diff --git a/build/RELEASE b/build/RELEASE index cf29a912..364b7866 100644 --- a/build/RELEASE +++ b/build/RELEASE @@ -1 +1 @@ -144.0.7559.97 \ No newline at end of file +145.0.7632.46 \ No newline at end of file diff --git a/build/cromite_patches_list.txt b/build/cromite_patches_list.txt index 773ac37e..e70ce718 100644 --- a/build/cromite_patches_list.txt +++ b/build/cromite_patches_list.txt @@ -1,7 +1,7 @@ Do-not-link-with-libatomic.patch +Force-use-vpython3-for-all-scripts.patch bromite-build-utils.patch Add-cromite-flags-support.patch -Force-use-vpython3-for-some-scripts.patch Permit-PGO-for-debug-builds.patch Fix-chromium-vanilla.patch Final-patch-for-chromium-vanilla.patch @@ -154,7 +154,6 @@ Invalidate-components-public-key.patch Improve-plain-text-rendering-on-mobile.patch Remove-segmentation-platform.patch Remove-window-name-on-cross-origin-navigation.patch -Remove-preload-of-com.google.android.gms.fonts.patch Partition-Blink-memory-cache.patch Remove-navigator.connection-info.patch Disable-PrivacyGuide.patch @@ -166,7 +165,6 @@ Remove-HTTP-referrals-in-cross-origin-navigation.patch Enable-third-party-storage-partitioning.patch Restore-adaptive-button-in-top-toolbar-customization.patch Add-kill-switch-for-unsupported-clangd-flags.patch - WIN-enable-pdf-plugin.patch WIN-disable-annotate-downloads.patch Enable-HighEfficiencyMode-by-default.patch @@ -176,7 +174,6 @@ WIN-Disable-updater.patch WIN-Disable-first-run.patch WIN-Add-some-prefs-to-secure-preferences.patch WIN-Disable-search-for-image.patch - AudioBuffer-AnalyserNode-fp-mitigations.patch add-browser-policy.patch Always-open-browser-controls-in-new-tab.patch @@ -319,7 +316,6 @@ Block-leakage-of-urls-in-sandbox-iframes.patch Fix-chromium-build-bugs.patch Try-to-fix-2082.patch Temp-use-PREVIEW-for-IDCompositionDevice5.patch -Temp-Backport-Fix-CtrlW-to-close-current-tab.patch # adblock patches eyeo-133.0.6943.49-base.patch diff --git a/build/patches/Add-AllowUserCertificates-flag.patch b/build/patches/Add-AllowUserCertificates-flag.patch index cc9623ba..37f42830 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 -@@ -255,6 +255,7 @@ import org.chromium.content_public.browser.LoadUrlParams; +@@ -260,6 +260,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; -@@ -1096,6 +1097,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -1118,6 +1119,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity super.onStartWithNative(); ChromeActivitySessionTracker.getInstance().onStartWithNative(getProfileProviderSupplier()); @@ -41,9 +41,9 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse --- 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[] = { + &feed::kFeedNoViewCache, &feed::kFeedPerformanceStudy, &feed::kFeedRecyclerBinderUnmountOnDetach, - &feed::kFeedShowSignInCommand, + &kAllowUserCertificates, &feed::kFeedSignedOutViewDemotion, &feed::kInterestFeedV2, @@ -51,7 +51,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 -@@ -166,6 +166,7 @@ public abstract class ChromeFeatureList { +@@ -167,6 +167,7 @@ public abstract class ChromeFeatureList { "AccountForSuppressedKeyboardInsets"; public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_CUSTOMIZATION_V2 = "AdaptiveButtonInTopToolbarCustomizationV2"; @@ -59,7 +59,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_PAGE_SUMMARY = "AdaptiveButtonInTopToolbarPageSummary"; public static final String ANDROID_ANIMATED_PROGRESS_BAR_IN_BROWSER = -@@ -820,6 +821,8 @@ public abstract class ChromeFeatureList { +@@ -795,6 +796,8 @@ public abstract class ChromeFeatureList { public static final CachedFlag sAndroidWindowPopupResizeAfterSpawn = newCachedFlag(ANDROID_WINDOW_POPUP_RESIZE_AFTER_SPAWN, false, true); public static final CachedFlag sAppSpecificHistory = newCachedFlag(APP_SPECIFIC_HISTORY, true); @@ -68,10 +68,10 @@ 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 = -@@ -1136,6 +1139,7 @@ public abstract class ChromeFeatureList { +@@ -1121,6 +1124,7 @@ public abstract class ChromeFeatureList { + // keep-sorted start sAccountForSuppressedKeyboardInsets, sAndroidAnimatedProgressBarInBrowser, - sAndroidAnimatedProgressBarInViz, + sAllowUserCertificates, sAndroidAppIntegrationModule, sAndroidAppIntegrationMultiDataSource, @@ -111,8 +111,8 @@ new file mode 100644 diff --git a/net/android/java/src/org/chromium/net/X509Util.java b/net/android/java/src/org/chromium/net/X509Util.java --- a/net/android/java/src/org/chromium/net/X509Util.java +++ b/net/android/java/src/org/chromium/net/X509Util.java -@@ -537,6 +537,8 @@ public class X509Util { - return userRootBytes.toArray(new byte[0][]); +@@ -472,6 +472,8 @@ public class X509Util { + return result; } + public static boolean AllowUserCertificates = false; @@ -120,7 +120,7 @@ diff --git a/net/android/java/src/org/chromium/net/X509Util.java b/net/android/j public static AndroidCertVerifyResult verifyServerCertificates( byte[][] certChain, String authType, -@@ -639,6 +641,9 @@ public class X509Util { +@@ -649,6 +651,9 @@ public class X509Util { X509Certificate root = verifiedChain.get(verifiedChain.size() - 1); isIssuedByKnownRoot = isKnownRoot(root); } 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 57a99c4f..031a4bc8 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 -@@ -904,6 +904,12 @@ public class KeyboardShortcuts { +@@ -917,6 +917,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 47a97c10..33fded68 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 -@@ -400,6 +400,11 @@ std::unique_ptr URLRequestHttpJob::Create(URLRequest* request) { +@@ -401,6 +401,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 c0faed7e..fe83aca6 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 -@@ -200,6 +200,10 @@ bool IsReducePPMsEnabled() { +@@ -202,6 +202,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 65fe200e..c4a534f9 100644 --- a/build/patches/Add-a-flag-to-disable-GamePad-API.patch +++ b/build/patches/Add-a-flag-to-disable-GamePad-API.patch @@ -5,34 +5,18 @@ Subject: Add a flag to disable GamePad API Adds restrict-gamepad-access flag (default active) to disable GamePad API. License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- - chrome/browser/flag-metadata.json | 4 ++-- content/child/runtime_features.cc | 2 ++ .../about_flags_cc/Add-a-flag-to-disable-GamePad-API.inc | 7 +++++++ device/gamepad/public/cpp/gamepad_features.cc | 8 ++++++++ device/gamepad/public/cpp/gamepad_features.h | 2 ++ .../blink/renderer/modules/gamepad/navigator_gamepad.cc | 6 ++++++ - 6 files changed, 27 insertions(+), 2 deletions(-) + 5 files changed, 25 insertions(+) create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-a-flag-to-disable-GamePad-API.inc -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 -@@ -9195,9 +9195,9 @@ - "expiry_milestone": 150 - }, - { -- "name": "restrict-gamepad-access", -+ "name": "restrict-gamepad-access", // restrict-gamepad-access" - "owners": [ "//device/gamepad/OWNERS", "jameshollyer@chromium.org" ], -- "expiry_milestone": 96 -+ "expiry_milestone": -1 - }, - { - "name": "rewriter-api-for-gemini-nano", 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 -@@ -262,6 +262,8 @@ void SetRuntimeFeaturesFromChromiumFeatures() { +@@ -264,6 +264,8 @@ void SetRuntimeFeaturesFromChromiumFeatures() { {wf::EnablePaymentApp, raw_ref(features::kServiceWorkerPaymentApps)}, {wf::EnablePeriodicBackgroundSync, raw_ref(features::kPeriodicBackgroundSync)}, @@ -99,7 +83,7 @@ diff --git a/third_party/blink/renderer/modules/gamepad/navigator_gamepad.cc b/t #include "third_party/blink/public/mojom/frame/user_activation_notification_type.mojom-blink.h" #include "third_party/blink/public/platform/task_type.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_gamepad_mapping_type.h" -@@ -86,6 +87,9 @@ NavigatorGamepad& NavigatorGamepad::From(Navigator& navigator) { +@@ -88,6 +89,9 @@ NavigatorGamepad& NavigatorGamepad::From(Navigator& navigator) { HeapVector> NavigatorGamepad::getGamepads( Navigator& navigator, ExceptionState& exception_state) { @@ -109,7 +93,7 @@ diff --git a/third_party/blink/renderer/modules/gamepad/navigator_gamepad.cc b/t if (!navigator.DomWindow()) { // Using an existing NavigatorGamepad if one exists, but don't create one // for a detached window, as its subclasses depend on a non-null window. -@@ -428,6 +432,8 @@ void NavigatorGamepad::MaybeDispatchGamepadEvents( +@@ -432,6 +436,8 @@ void NavigatorGamepad::MaybeDispatchGamepadEvents( void NavigatorGamepad::DispatchGamepadConnectionChangedEvent( const AtomicString& event_name, Gamepad* gamepad) { diff --git a/build/patches/Add-a-proxy-configuration-page.patch b/build/patches/Add-a-proxy-configuration-page.patch index 223ac988..6201a333 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 -@@ -102,6 +102,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -105,6 +105,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"; @@ -91,7 +91,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc --- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc +++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc -@@ -411,6 +411,7 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() { +@@ -412,6 +412,7 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() { builtins_to_provide.push_back(chrome::kChromeUISettingsURL16); #endif builtins_to_provide.push_back(chrome::kChromeUIVersionURL16); @@ -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 -@@ -239,6 +239,9 @@ +@@ -237,6 +237,9 @@ @@ -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 -@@ -212,6 +212,8 @@ +@@ -206,6 +206,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 -@@ -1314,6 +1316,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) { +@@ -1355,6 +1357,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) { component_updater::RegisterPrefs(registry); domain_reliability::RegisterPrefs(registry); embedder_support::OriginTrialPrefs::RegisterPrefs(registry); @@ -220,7 +220,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse diff --git a/chrome/browser/prefs/chrome_command_line_pref_store.cc b/chrome/browser/prefs/chrome_command_line_pref_store.cc --- a/chrome/browser/prefs/chrome_command_line_pref_store.cc +++ b/chrome/browser/prefs/chrome_command_line_pref_store.cc -@@ -163,7 +163,7 @@ void ChromeCommandLinePrefStore::ApplyProxyMode() { +@@ -161,7 +161,7 @@ void ChromeCommandLinePrefStore::ApplyProxyMode() { command_line()->GetSwitchValueASCII(switches::kProxyBypassList); SetValue(proxy_config::prefs::kProxy, base::Value(ProxyConfigDictionary::CreateFixedServers( @@ -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 -@@ -158,6 +158,8 @@ static_library("ui") { +@@ -161,6 +161,8 @@ static_library("ui") { "webui/metrics_internals/metrics_internals_ui.h", "webui/net_export_ui.cc", "webui/net_export_ui.h", @@ -685,7 +685,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" #endif -@@ -438,7 +441,7 @@ void RegisterChromeWebUIConfigs() { +@@ -439,7 +442,7 @@ void RegisterChromeWebUIConfigs() { map.AddWebUIConfig(std::make_unique()); map.AddWebUIConfig(std::make_unique()); #endif @@ -1168,7 +1168,7 @@ diff --git a/chrome/common/webui_url_constants.h b/chrome/common/webui_url_const diff --git a/components/proxy_config/pref_proxy_config_tracker_impl.cc b/components/proxy_config/pref_proxy_config_tracker_impl.cc --- a/components/proxy_config/pref_proxy_config_tracker_impl.cc +++ b/components/proxy_config/pref_proxy_config_tracker_impl.cc -@@ -550,7 +550,7 @@ PrefProxyConfigTrackerImpl::GetEffectiveProxyConfig( +@@ -525,7 +525,7 @@ PrefProxyConfigTrackerImpl::GetEffectiveProxyConfig( // static void PrefProxyConfigTrackerImpl::RegisterPrefs(PrefRegistrySimple* registry) { registry->RegisterDictionaryPref(proxy_config::prefs::kProxy, @@ -1177,7 +1177,7 @@ diff --git a/components/proxy_config/pref_proxy_config_tracker_impl.cc b/compone registry->RegisterListPref(proxy_config::prefs::kProxyOverrideRules); #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) registry->RegisterIntegerPref( -@@ -562,7 +562,7 @@ void PrefProxyConfigTrackerImpl::RegisterPrefs(PrefRegistrySimple* registry) { +@@ -541,7 +541,7 @@ void PrefProxyConfigTrackerImpl::RegisterPrefs(PrefRegistrySimple* registry) { void PrefProxyConfigTrackerImpl::RegisterProfilePrefs( PrefRegistrySimple* registry) { registry->RegisterDictionaryPref(proxy_config::prefs::kProxy, @@ -1185,8 +1185,8 @@ diff --git a/components/proxy_config/pref_proxy_config_tracker_impl.cc b/compone + ProxyConfigDictionary::CreateDirect()); registry->RegisterBooleanPref(proxy_config::prefs::kUseSharedProxies, false); registry->RegisterListPref(proxy_config::prefs::kProxyOverrideRules); - #if !BUILDFLAG(IS_CHROMEOS) -@@ -716,6 +716,7 @@ bool PrefProxyConfigTrackerImpl::PrefConfigToNetConfig( + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) +@@ -699,6 +699,7 @@ bool PrefProxyConfigTrackerImpl::PrefConfigToNetConfig( if (proxy_dict.GetBypassList(&proxy_bypass)) { proxy_config.proxy_rules().bypass_rules.ParseFromString(proxy_bypass); } diff --git a/build/patches/Add-an-always-incognito-mode.patch b/build/patches/Add-an-always-incognito-mode.patch index cb391bee..aeb6e061 100644 --- a/build/patches/Add-an-always-incognito-mode.patch +++ b/build/patches/Add-an-always-incognito-mode.patch @@ -24,7 +24,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../java/res/xml/incognito_preferences.xml | 37 ++++ .../java/res/xml/privacy_preferences.xml | 5 + .../AlwaysIncognitoLinkInterceptor.java | 54 ++++++ - .../chrome/browser/ChromeTabbedActivity.java | 25 ++- + .../chrome/browser/ChromeTabbedActivity.java | 21 ++- .../chrome/browser/app/ChromeActivity.java | 4 + .../AppMenuPropertiesDelegateImpl.java | 7 +- .../ChromeContextMenuPopulator.java | 6 +- @@ -36,7 +36,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/history/HistoryManager.java | 27 ++- .../chrome/browser/history/HistoryPage.java | 16 ++ .../native_page/NativePageFactory.java | 4 +- - .../chrome/browser/ntp/RecentTabsManager.java | 28 ++- + .../chrome/browser/ntp/RecentTabsManager.java | 29 ++- .../privacy/settings/IncognitoSettings.java | 175 ++++++++++++++++++ .../settings/FragmentDependencyProvider.java | 4 + .../HistoricalTabModelObserver.java | 5 +- @@ -89,7 +89,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../add-an-always-incognito-mode.inc | 1 + .../add-an-always-incognito-mode.inc | 3 + .../add-an-always-incognito-mode.inc | 1 + - 70 files changed, 809 insertions(+), 118 deletions(-) + 70 files changed, 808 insertions(+), 116 deletions(-) create mode 100644 chrome/android/java/res/xml/incognito_preferences.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java @@ -102,7 +102,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 -@@ -669,6 +669,7 @@ chrome_java_resources = [ +@@ -644,6 +644,7 @@ chrome_java_resources = [ "java/res/xml/main_preferences.xml", "java/res/xml/manage_sync_preferences.xml", "java/res/xml/personalize_google_services_preferences.xml", @@ -121,14 +121,14 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java "java/src/com/google/android/apps/chrome/appwidget/bookmarks/BookmarkThumbnailWidgetProvider.java", "java/src/org/chromium/chrome/browser/ActivityTabProvider.java", "java/src/org/chromium/chrome/browser/ActivityUtils.java", -@@ -949,6 +950,7 @@ chrome_java_sources = [ +@@ -958,6 +959,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/privacy/settings/PasswordEchoSettingHandlerFactory.java", "java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl.java", "java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java", + "java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java", "java/src/org/chromium/chrome/browser/privacy_sandbox/CctHandler.java", - "java/src/org/chromium/chrome/browser/privacy_sandbox/ChromeTrackingProtectionDelegate.java", "java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandbox3pcdRollbackMessageController.java", + "java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxSurveyController.java", diff --git a/chrome/android/java/res/xml/incognito_preferences.xml b/chrome/android/java/res/xml/incognito_preferences.xml new file mode 100644 --- /dev/null @@ -174,7 +174,7 @@ new file mode 100644 diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -84,6 +84,11 @@ found in the LICENSE file. +@@ -77,6 +77,11 @@ found in the LICENSE file. android:key="secure_dns" android:title="@string/settings_secure_dns_title" android:fragment="org.chromium.chrome.browser.privacy.secure_dns.SecureDnsSettings" /> @@ -248,7 +248,7 @@ new file mode 100644 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 -@@ -71,6 +71,10 @@ import org.chromium.build.annotations.Nullable; +@@ -80,6 +80,10 @@ import org.chromium.build.annotations.Nullable; import org.chromium.build.annotations.UsedByReflection; import org.chromium.cc.input.BrowserControlsState; import org.chromium.chrome.R; @@ -259,26 +259,21 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.chrome.browser.IntentHandler.ExternalAppId; import org.chromium.chrome.browser.IntentHandler.TabOpenType; import org.chromium.chrome.browser.accessibility.settings.CaretBrowsingDialog; -@@ -819,15 +823,20 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt +@@ -813,12 +817,17 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt BrowserWindowType.NORMAL, currentTabModel, mMultiInstanceManager); // For saving non-incognito tab closures for Recent Tabs. - mHistoricalTabModelObserver = -- new HistoricalTabModelObserver( -- mTabModelSelector +- new HistoricalTabModelObserver(mTabModelSelector.getTabGroupModelFilter(false)); +- mHistoricalTabModelObserver.addSecondaryTabModelSupplier( +- ArchivedTabModelOrchestrator.getForProfile(currentTabModel.getProfile()) + boolean alwaysIncognito = AlwaysIncognitoLinkInterceptor.isAlwaysIncognito(); + PrefService prefService = UserPrefs.get(ProfileManager.getLastUsedRegularProfile()); + boolean historyEnabledInIncognito = + prefService.getBoolean(Pref.INCOGNITO_TAB_HISTORY_ENABLED); + if ((alwaysIncognito && historyEnabledInIncognito) || !alwaysIncognito) { + mHistoricalTabModelObserver = -+ new HistoricalTabModelObserver( -+ mTabModelSelector - .getTabGroupModelFilterProvider() -- .getTabGroupModelFilter(false)); -- mHistoricalTabModelObserver.addSecondaryTabModelSupplier( -- ArchivedTabModelOrchestrator.getForProfile(currentTabModel.getProfile()) -+ .getTabGroupModelFilter(alwaysIncognito)); ++ new HistoricalTabModelObserver(mTabModelSelector.getTabGroupModelFilter(alwaysIncognito)); + mHistoricalTabModelObserver.addSecondaryTabModelSupplier( + ArchivedTabModelOrchestrator.getForProfile(currentTabModel.getProfile()) ::getTabModel); @@ -287,19 +282,19 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct // Defer creation of this helper so it triggers after TabGroupModelFilter observers. mUndoRefocusHelper = new UndoRefocusHelper( -@@ -3282,7 +3291,7 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt - - // We determine SupportedProfileType in onPreCreate(). - // We determine the model as soon as possible so every systems get initialized coherently. +@@ -3306,7 +3315,7 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt + shouldPersistAcrossReboots() + && persistentState != null + && persistentState.getBoolean(IS_INCOGNITO_SELECTED, false); - boolean startIncognito = + boolean startIncognito = AlwaysIncognitoLinkInterceptor.isAlwaysIncognito() || (mSupportedProfileType == SupportedProfileType.OFF_THE_RECORD) || (mSupportedProfileType == SupportedProfileType.MIXED - && savedInstanceState != null + && (isIncognitoSelectedInSavedState 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 -@@ -106,6 +106,7 @@ import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager; +@@ -110,6 +110,7 @@ import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager; import org.chromium.chrome.browser.desktop_site.DesktopSiteUtils; import org.chromium.chrome.browser.device.DeviceClassManager; import org.chromium.chrome.browser.devtools.DevToolsWindowAndroid; @@ -307,7 +302,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv import org.chromium.chrome.browser.dom_distiller.DomDistillerUiUtils; import org.chromium.chrome.browser.dom_distiller.ReaderModeManager; import org.chromium.chrome.browser.download.DownloadManagerService; -@@ -2189,6 +2190,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -2212,6 +2213,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity throw new IllegalStateException( "Attempting to access TabCreator before initialization"); } @@ -320,7 +315,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 -@@ -93,6 +93,8 @@ import java.util.Iterator; +@@ -94,6 +94,8 @@ import java.util.Iterator; import java.util.List; import java.util.function.Supplier; @@ -329,7 +324,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App /** * Base implementation of {@link AppMenuPropertiesDelegate} that handles hiding and showing menu * items based on activity state. -@@ -669,8 +671,9 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties +@@ -675,8 +677,9 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties && !isNativePage && !isFileScheme && !isContentScheme @@ -344,7 +339,7 @@ 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/contextmenu/ChromeContextMenuPopulator.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java -@@ -43,6 +43,7 @@ import org.chromium.base.shared_preferences.SharedPreferencesManager; +@@ -44,6 +44,7 @@ import org.chromium.base.shared_preferences.SharedPreferencesManager; import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; import org.chromium.chrome.R; @@ -352,7 +347,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr import org.chromium.chrome.browser.bookmarks.BookmarkUtils; import org.chromium.chrome.browser.contextmenu.ChromeContextMenuItem.Item; import org.chromium.chrome.browser.contextmenu.ContextMenuCoordinator.ContextMenuItemType; -@@ -452,6 +453,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -456,6 +457,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { mShowEphemeralTabNewLabel = null; mCustomActionMap.clear(); @@ -362,7 +357,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr List groupedItems = new ArrayList<>(); if (mParams.isPage() && shouldShowEmptySpaceContextMenu()) { -@@ -523,7 +527,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -527,7 +531,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { } } if (FirstRunStatus.getFirstRunFlowComplete()) { @@ -423,7 +418,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust import org.chromium.chrome.browser.DefaultBrowserInfo; import org.chromium.chrome.browser.app.appmenu.AppMenuPropertiesDelegateImpl; import org.chromium.chrome.browser.bookmarks.BookmarkModel; -@@ -240,6 +241,10 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat +@@ -238,6 +239,10 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat tryAddingReadAloud = false; } @@ -464,7 +459,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java --- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java -@@ -39,6 +39,7 @@ import org.chromium.base.Log; +@@ -40,6 +40,7 @@ import org.chromium.build.annotations.Contract; import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; import org.chromium.chrome.R; @@ -472,9 +467,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo import org.chromium.chrome.browser.ChromeTabbedActivity; import org.chromium.chrome.browser.IntentHandler; import org.chromium.chrome.browser.app.download.home.DownloadActivityLauncher; -@@ -82,6 +83,10 @@ import org.chromium.url.GURL; - +@@ -84,6 +85,10 @@ import org.chromium.url.GURL; import java.io.File; + import java.util.Locale; +import org.chromium.components.prefs.PrefService; +import org.chromium.components.user_prefs.UserPrefs; @@ -483,7 +478,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo /** A class containing some utility static methods. */ @NullMarked public class DownloadUtils { -@@ -292,7 +297,13 @@ public class DownloadUtils { +@@ -295,7 +300,13 @@ public class DownloadUtils { public static boolean isAllowedToDownloadPage(@Nullable Tab tab) { if (tab == null) return false; @@ -545,7 +540,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java -@@ -61,6 +61,14 @@ import java.util.List; +@@ -63,6 +63,14 @@ import java.util.List; import java.util.function.Function; import java.util.function.Supplier; @@ -560,7 +555,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History /** Combines and manages the different UI components of browsing history. */ @NullMarked public class HistoryManager -@@ -166,7 +174,7 @@ public class HistoryManager +@@ -168,7 +176,7 @@ public class HistoryManager mUmaRecorder.recordOpenHistory(); // If incognito placeholder is shown, we don't need to create History UI elements. @@ -569,7 +564,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History mSelectableListLayout = null; mRootView = getIncognitoHistoryPlaceholderView(); return; -@@ -458,9 +466,22 @@ public class HistoryManager +@@ -460,9 +468,22 @@ public class HistoryManager onBackPressStateChanged(); } @@ -593,7 +588,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History // If Incognito placeholder is shown no need to call any destroy method. return; } -@@ -521,7 +542,7 @@ public class HistoryManager +@@ -523,7 +544,7 @@ public class HistoryManager * @return True if manager handles this event, false if it decides to ignore. */ private boolean onBackPressed() { @@ -638,15 +633,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java --- a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java -@@ -26,6 +26,7 @@ import org.chromium.base.supplier.OneshotSupplier; - import org.chromium.build.annotations.NullMarked; +@@ -28,6 +28,7 @@ import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; import org.chromium.chrome.R; + import org.chromium.chrome.browser.RecentlyClosedEntriesManager; +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; import org.chromium.chrome.browser.app.ChromeActivity; import org.chromium.chrome.browser.app.download.home.DownloadPage; import org.chromium.chrome.browser.back_press.BackPressManager; -@@ -425,7 +426,8 @@ public class NativePageFactory { +@@ -457,7 +458,8 @@ public class NativePageFactory { NativePage page; @@ -659,10 +654,11 @@ 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/RecentTabsManager.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java -@@ -44,6 +44,15 @@ import org.chromium.components.signin.metrics.SigninAccessPoint; - import org.chromium.components.sync.SyncService; +@@ -48,6 +48,16 @@ import org.chromium.ui.base.WindowAndroid; + import org.chromium.ui.modaldialog.ModalDialogManager; import org.chromium.url.GURL; ++import android.content.Context; +import android.content.Intent; +import android.provider.Browser; +import android.net.Uri; @@ -675,17 +671,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM import java.util.HashMap; import java.util.List; import java.util.Map; -@@ -113,7 +122,8 @@ public class RecentTabsManager - Profile profile, - Context context, - Runnable showHistoryManager) { +@@ -120,7 +130,8 @@ public class RecentTabsManager + SnackbarManager snackbarManager, + Runnable showHistoryManager, + RecentlyClosedEntriesManager recentlyClosedEntriesManager) { - mProfile = profile; + mProfile = profile.getOriginalProfile(); + profile = mProfile; mActiveTab = tab; - mTabModelSelector = tabModelSelector; mShowHistoryManager = showHistoryManager; -@@ -302,6 +312,22 @@ public class RecentTabsManager + mForeignSessionHelper = new ForeignSessionHelper(profile); +@@ -310,6 +321,22 @@ public class RecentTabsManager */ public void openRecentlyClosedTab(RecentlyClosedTab tab, int windowDisposition) { if (mIsDestroyed) return; @@ -863,7 +859,7 @@ new file mode 100644 + MenuItem help = + menu.add(Menu.NONE, R.id.menu_id_targeted_help, Menu.NONE, R.string.menu_help); + help.setIcon(VectorDrawableCompat.create( -+ getResources(), R.drawable.ic_help_and_feedback, getActivity().getTheme())); ++ getResources(), R.drawable.ic_help_24dp, getActivity().getTheme())); + } + + @Override @@ -899,7 +895,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme import org.chromium.components.browser_ui.accessibility.AccessibilitySettings; import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; import org.chromium.components.browser_ui.settings.FragmentSettingsNavigation; -@@ -211,6 +212,9 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl +@@ -223,6 +224,9 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl SigninAndHistorySyncActivityLauncherImpl.get(), new SettingsCustomTabLauncherImpl())); } @@ -979,7 +975,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore return; } -@@ -191,14 +193,15 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { +@@ -191,7 +193,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { CollectionUtil.integerCollectionToIntArray(savedStateVersions)); } @@ -988,16 +984,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore RecordHistogram.recordEnumeratedHistogram( "Tabs.RecentlyClosed.HistoricalSaverCloseType", HistoricalSaverCloseType.TAB, - HistoricalSaverCloseType.COUNT); - HistoricalTabSaverImplJni.get() - .createHistoricalTab( -- tab, getWebContentsState(tab).buffer(), getWebContentsState(tab).version()); -+ tab, getWebContentsState(tab).buffer(), getWebContentsState(tab).version(), +@@ -204,7 +206,8 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { + tab, + index, + getWebContentsState(tab).buffer(), +- getWebContentsState(tab).version()); ++ getWebContentsState(tab).version(), + is_always_incognito); } /** -@@ -206,7 +209,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { +@@ -212,7 +215,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { * internal Chrome scheme, about:blank, or a native page and it cannot be incognito. */ private boolean shouldSave(Tab tab) { @@ -1006,19 +1003,19 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore // Check the secondary tab model to see if the tab was moved instead of deleted. if (tabIdExistsInSecondaryModel(tab.getId())) return false; -@@ -294,7 +297,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { +@@ -300,7 +303,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { @NativeMethods interface Natives { -- void createHistoricalTab(Tab tab, ByteBuffer state, int savedStateVersion); -+ void createHistoricalTab(Tab tab, ByteBuffer state, int savedStateVersion, boolean is_always_incognito); +- void createHistoricalTab(Tab tab, int index, ByteBuffer state, int savedStateVersion); ++ void createHistoricalTab(Tab tab, int index, ByteBuffer state, int savedStateVersion, boolean is_always_incognito); void createHistoricalGroup( TabModel model, 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 -@@ -27,6 +27,7 @@ import org.chromium.base.supplier.OneshotSupplier; +@@ -29,6 +29,7 @@ import org.chromium.build.annotations.Contract; import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; import org.chromium.chrome.R; @@ -1026,7 +1023,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab import org.chromium.chrome.browser.ActivityTabProvider; import org.chromium.chrome.browser.ai.AiAssistantService; import org.chromium.chrome.browser.app.appmenu.AppMenuPropertiesDelegateImpl; -@@ -245,7 +246,8 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm +@@ -247,7 +248,8 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm // When the feature is enabled, show either "New Incognito tab" in incognito mode // or "New tab" in normal mode. When the feature is disabled, show both. @@ -1039,7 +1036,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/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 -@@ -216,6 +216,8 @@ import org.chromium.content_public.common.ContentSwitches; +@@ -219,6 +219,8 @@ import org.chromium.content_public.common.ContentSwitches; import org.chromium.ui.UiUtils; import org.chromium.ui.base.ActivityWindowAndroid; import org.chromium.ui.base.DeviceFormFactor; @@ -1048,7 +1045,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab import org.chromium.ui.base.IntentRequestTracker; import org.chromium.ui.base.UiAndroidFeatureList; import org.chromium.ui.display.DisplayUtil; -@@ -1309,7 +1311,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1318,7 +1320,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { () -> { mTabCreatorManagerSupplier .get() @@ -1056,12 +1053,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab + .getTabCreator(AlwaysIncognitoLinkInterceptor.isAlwaysIncognito()) .launchUrl( NewTabPageUtils.encodeNtpUrl( - NewTabPageLaunchOrigin.WEB_FEED), + profile, NewTabPageLaunchOrigin.WEB_FEED), diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java -@@ -56,6 +56,10 @@ import org.chromium.url.GURL; - import java.util.Collections; +@@ -54,6 +54,10 @@ import org.chromium.url.GURL; + import java.util.concurrent.CompletableFuture; import java.util.function.Supplier; +import org.chromium.base.ContextUtils; @@ -1071,7 +1068,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome /** This class creates various kinds of new tabs and adds them to the right {@link TabModel}. */ public class ChromeTabCreator implements TabCreator, NeedsTabModel, NeedsTabModelOrderController { /** -@@ -598,7 +602,6 @@ public class ChromeTabCreator implements TabCreator, NeedsTabModel, NeedsTabMode +@@ -591,7 +595,6 @@ public class ChromeTabCreator implements TabCreator, NeedsTabModel, NeedsTabMode // TODO(crbug.com/40691614): Clean up the launches from SearchActivity/Chrome. public @Nullable Tab launchUrlFromExternalApp( LoadUrlParams loadUrlParams, String appId, boolean forceNewTab, Intent intent) { @@ -1090,7 +1087,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabMod import org.chromium.chrome.browser.flags.ActivityType; import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.multiwindow.MultiInstanceManager; -@@ -138,6 +139,8 @@ public class TabModelSelectorImpl extends TabModelSelectorBase implements TabMod +@@ -139,6 +140,8 @@ public class TabModelSelectorImpl extends TabModelSelectorBase implements TabMod ProfileProvider profileProvider = mProfileProviderSupplier.get(); assert profileProvider != null; @@ -1126,7 +1123,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPer 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 -@@ -53,6 +53,7 @@ import org.chromium.build.annotations.Nullable; +@@ -59,6 +59,7 @@ import org.chromium.build.annotations.Nullable; import org.chromium.cc.input.BrowserControlsState; import org.chromium.chrome.R; import org.chromium.chrome.browser.ActivityTabProvider; @@ -1192,13 +1189,13 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and +#include "components/prefs/pref_service.h" +#include "historical_tab_saver.h" + - using base::android::JavaParamRef; using base::android::JavaRef; using base::android::ScopedJavaLocalRef; -@@ -89,7 +94,8 @@ std::vector> StringsToUuids( +@@ -89,7 +94,8 @@ std::vector> StringsToUuids( void CreateHistoricalTab( TabAndroid* tab_android, + int index, - WebContentsStateByteBuffer web_contents_state_byte_buffer) { + WebContentsStateByteBuffer web_contents_state_byte_buffer, + bool is_always_incognito) { @@ -1231,25 +1228,26 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and DCHECK_EQ(tab_group_ids.size(), group_titles.size()); DCHECK_EQ(tab_group_ids.size(), group_colors.size()); DCHECK_EQ(tab_group_ids.size(), tab_group_ids.size()); -@@ -280,11 +291,12 @@ static void JNI_HistoricalTabSaverImpl_CreateHistoricalTab( - JNIEnv* env, - const JavaParamRef& jtab_android, - const JavaParamRef& state, +@@ -281,12 +292,13 @@ static void JNI_HistoricalTabSaverImpl_CreateHistoricalTab( + const JavaRef& jtab_android, + jint index, + const JavaRef& state, - jint saved_state_version) { + jint saved_state_version, + jboolean is_always_incognito) { - WebContentsStateByteBuffer web_contents_state = WebContentsStateByteBuffer( - ScopedJavaLocalRef(state), (int)saved_state_version); + WebContentsStateByteBuffer web_contents_state = + WebContentsStateByteBuffer(ScopedJavaLocalRef(state), + static_cast(saved_state_version)); CreateHistoricalTab(TabAndroid::GetNativeTab(env, jtab_android), -- std::move(web_contents_state)); -+ std::move(web_contents_state), is_always_incognito); +- static_cast(index), std::move(web_contents_state)); ++ static_cast(index), std::move(web_contents_state), is_always_incognito); } static void JNI_HistoricalTabSaverImpl_CreateHistoricalGroup( diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc --- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc +++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc -@@ -462,6 +462,15 @@ ChromeAutocompleteProviderClient::GetAimEligibilityService() const { +@@ -463,6 +463,15 @@ ChromeAutocompleteProviderClient::GetAimEligibilityService() const { return AimEligibilityServiceFactory::GetForProfile(profile_); } @@ -1312,7 +1310,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse #include "chrome/browser/bookmarks/bookmark_model_factory.h" #include "chrome/browser/bookmarks/managed_bookmark_service_factory.h" #include "chrome/browser/commerce/shopping_service_factory.h" -@@ -210,6 +211,12 @@ static ScopedJavaLocalRef JNI_BookmarkBridge_NativeGetForProfile( +@@ -211,6 +212,12 @@ static ScopedJavaLocalRef JNI_BookmarkBridge_NativeGetForProfile( if (!profile) return nullptr; @@ -1376,7 +1374,7 @@ diff --git a/chrome/browser/content_settings/host_content_settings_map_factory.c 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 -@@ -80,6 +80,12 @@ +@@ -93,6 +93,12 @@ #include "chrome/browser/safe_browsing/safe_browsing_service.h" #endif @@ -1389,7 +1387,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api static_assert(BUILDFLAG(ENABLE_EXTENSIONS_CORE)); using safe_browsing::SafeBrowsingNavigationObserverManager; -@@ -220,6 +226,16 @@ const int kExtensionReferrerUserGestureLimit = 2; +@@ -233,6 +239,16 @@ const int kExtensionReferrerUserGestureLimit = 2; WebstorePrivateApi::Delegate* test_delegate = nullptr; @@ -1406,7 +1404,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api // We allow the web store to set a string containing login information when a // purchase is made, so that when a user logs into sync with a different // account we can recognize the situation. The Get function returns the login if -@@ -426,7 +442,7 @@ WebstorePrivateBeginInstallWithManifest3Function::Run() { +@@ -454,7 +470,7 @@ WebstorePrivateBeginInstallWithManifest3Function::Run() { params_ = Params::Create(args()); EXTENSION_FUNCTION_VALIDATE(params_); @@ -1415,7 +1413,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api if (!crx_file::id_util::IdIsValid(details().id)) { return RespondNow(BuildResponse(api::webstore_private::Result::kInvalidId, -@@ -948,7 +964,7 @@ void WebstorePrivateBeginInstallWithManifest3Function:: +@@ -976,7 +992,7 @@ void WebstorePrivateBeginInstallWithManifest3Function:: DCHECK(extension); DCHECK(contents); @@ -1424,7 +1422,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api std::string message_from_admin = ExtensionManagementFactory::GetForBrowserContext(profile) -@@ -984,7 +1000,7 @@ WebstorePrivateCompleteInstallFunction::Run() { +@@ -1012,7 +1028,7 @@ WebstorePrivateCompleteInstallFunction::Run() { std::optional params = CompleteInstall::Params::Create(args()); EXTENSION_FUNCTION_VALIDATE(params); @@ -1433,7 +1431,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api if (profile->IsGuestSession() || profile->IsOffTheRecord()) { return RespondNow(Error(kIncognitoError)); } -@@ -1302,7 +1318,7 @@ ExtensionFunction::ResponseValue +@@ -1330,7 +1346,7 @@ ExtensionFunction::ResponseValue WebstorePrivateGetExtensionStatusFunction::BuildResponseWithoutManifest( const ExtensionId& extension_id) { ExtensionInstallStatus status = GetWebstoreExtensionInstallStatus( @@ -1442,7 +1440,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api api::webstore_private::ExtensionInstallStatus api_status = ConvertExtensionInstallStatusForAPI(status); return ArgumentList(GetExtensionStatus::Results::Create(api_status)); -@@ -1316,7 +1332,7 @@ void WebstorePrivateGetExtensionStatusFunction::OnManifestParsed( +@@ -1344,7 +1360,7 @@ void WebstorePrivateGetExtensionStatusFunction::OnManifestParsed( return; } @@ -1464,7 +1462,7 @@ diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/histo #else #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_finder.h" -@@ -627,6 +630,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) { +@@ -640,6 +643,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) { history::HistoryService* HistoryTabHelper::GetHistoryService() { Profile* profile = Profile::FromBrowserContext(web_contents()->GetBrowserContext()); @@ -1475,10 +1473,10 @@ diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/histo + } +#endif + - if (profile->IsOffTheRecord()) + if (profile->IsOffTheRecord()) { return nullptr; - -@@ -634,6 +644,16 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() { + } +@@ -648,6 +658,16 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() { profile, ServiceAccessType::IMPLICIT_ACCESS); } @@ -1542,7 +1540,7 @@ diff --git a/chrome/browser/offline_pages/android/offline_page_bridge.cc b/chrom // Must come after all headers that specialize FromJniType() / ToJniType(). #include "chrome/android/chrome_jni_headers/OfflinePageBridge_jni.h" -@@ -731,9 +734,15 @@ void OfflinePageBridge::GetPageByOfflineIdDone( +@@ -727,9 +730,15 @@ void OfflinePageBridge::GetPageByOfflineIdDone( } if (offline_page_model_->IsArchiveInInternalDir(offline_page->file_path)) { @@ -1827,7 +1825,7 @@ diff --git a/chrome/browser/offline_pages/request_coordinator_factory.h b/chrome 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 -@@ -262,6 +262,7 @@ +@@ -236,6 +236,7 @@ #if BUILDFLAG(IS_ANDROID) #include "chrome/browser/accessibility/accessibility_prefs/android/accessibility_prefs_controller.h" @@ -1835,7 +1833,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse #include "chrome/browser/android/ntp/recent_tabs_page_prefs.h" #include "chrome/browser/android/oom_intervention/oom_intervention_decider.h" #include "chrome/browser/android/preferences/browser_prefs_android.h" -@@ -1774,6 +1775,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -1818,6 +1819,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, usage_stats::UsageStatsBridge::RegisterProfilePrefs(registry); variations::VariationsService::RegisterProfilePrefs(registry); webapps::InstallPromptPrefs::RegisterProfilePrefs(registry); @@ -1843,7 +1841,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse + registry->RegisterBooleanPref(prefs::kAlwaysIncognitoEnabled, + /*default_value=*/false); + HistoryTabHelper::RegisterProfilePrefs(registry); - #else // BUILDFLAG(IS_ANDROID) + #else // BUILDFLAG(IS_ANDROID) bookmarks_webui::RegisterProfilePrefs(registry); browser_sync::ForeignSessionHandler::RegisterProfilePrefs(registry); diff --git a/chrome/browser/profiles/profile_selections.cc b/chrome/browser/profiles/profile_selections.cc @@ -1999,7 +1997,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/ 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 -@@ -108,6 +108,11 @@ import org.chromium.ui.interpolators.Interpolators; +@@ -110,6 +110,11 @@ import org.chromium.ui.interpolators.Interpolators; import org.chromium.ui.modaldialog.ModalDialogManager; import org.chromium.url.GURL; @@ -2011,7 +2009,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import java.util.ArrayList; import java.util.Collection; import java.util.List; -@@ -528,6 +533,9 @@ class LocationBarMediator +@@ -530,6 +535,9 @@ class LocationBarMediator if (!DeviceFormFactor.isNonMultiDisplayContextOnTablet(mContext)) return; Tab tab = mLocationBarDataProvider.getTab(); if (tab == null) return; @@ -2024,7 +2022,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow 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 -@@ -6990,6 +6990,31 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -7027,6 +7027,31 @@ To change this setting, BEGIN_LINKdelete the Chrome d Cookies, cache, and other site data @@ -2059,7 +2057,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/browser/ui/messages/android/BUILD.gn b/chrome/browser/ui/messages/android/BUILD.gn --- a/chrome/browser/ui/messages/android/BUILD.gn +++ b/chrome/browser/ui/messages/android/BUILD.gn -@@ -27,6 +27,7 @@ android_library("java") { +@@ -25,6 +25,7 @@ android_library("java") { srcjar_deps = [ ":jni_headers" ] sources = [ "java/src/org/chromium/chrome/browser/ui/messages/infobar/SimpleConfirmInfoBarBuilder.java", @@ -2126,7 +2124,7 @@ diff --git a/chrome/browser/ui/search_engines/search_engine_tab_helper.cc 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 -@@ -4153,6 +4153,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] = +@@ -4118,6 +4118,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] = "net.out_of_process_system_dns_resolution_enabled"; #endif // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) @@ -2142,7 +2140,7 @@ diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h 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 -@@ -129,10 +129,12 @@ void PrefProvider::RegisterProfilePrefs( +@@ -134,10 +134,12 @@ void PrefProvider::RegisterProfilePrefs( PrefProvider::PrefProvider(PrefService* prefs, bool off_the_record, @@ -2155,7 +2153,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov store_last_modified_(store_last_modified), clock_(base::DefaultClock::GetInstance()) { TRACE_EVENT_BEGIN("startup", "PrefProvider::PrefProvider"); -@@ -155,10 +157,12 @@ PrefProvider::PrefProvider(PrefService* prefs, +@@ -160,10 +162,12 @@ PrefProvider::PrefProvider(PrefService* prefs, WebsiteSettingsRegistry* website_settings = WebsiteSettingsRegistry::GetInstance(); for (const WebsiteSettingsInfo* info : *website_settings) { @@ -2180,7 +2178,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov bool store_last_modified, bool restore_session); -@@ -117,6 +118,7 @@ class PrefProvider : public UserModifiableProvider { +@@ -122,6 +123,7 @@ class PrefProvider : public UserModifiableProvider { raw_ptr prefs_; const bool off_the_record_; @@ -2191,7 +2189,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov 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 -@@ -287,6 +287,7 @@ struct ContentSettingEntry { +@@ -286,6 +286,7 @@ struct ContentSettingEntry { HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, bool is_off_the_record, @@ -2199,7 +2197,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map. bool store_last_modified, bool restore_session, bool should_record_metrics) -@@ -296,6 +297,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, +@@ -295,6 +296,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, #endif prefs_(prefs), is_off_the_record_(is_off_the_record), @@ -2207,7 +2205,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map. store_last_modified_(store_last_modified), allow_invalid_secondary_pattern_for_testing_(false), clock_(base::DefaultClock::GetInstance()) { -@@ -309,7 +311,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, +@@ -308,7 +310,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, policy_provider->AddObserver(this); auto pref_provider_ptr = std::make_unique( @@ -2239,7 +2237,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map. diff --git a/components/omnibox/browser/autocomplete_provider_client.cc b/components/omnibox/browser/autocomplete_provider_client.cc --- a/components/omnibox/browser/autocomplete_provider_client.cc +++ b/components/omnibox/browser/autocomplete_provider_client.cc -@@ -77,3 +77,7 @@ base::WeakPtr +@@ -81,3 +81,7 @@ base::WeakPtr AutocompleteProviderClient::GetWeakPtr() { return nullptr; } @@ -2273,7 +2271,7 @@ diff --git a/components/omnibox/browser/base_search_provider.cc b/components/omn diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/browser/search_provider.cc --- a/components/omnibox/browser/search_provider.cc +++ b/components/omnibox/browser/search_provider.cc -@@ -948,7 +948,8 @@ std::unique_ptr SearchProvider::CreateSuggestLoader( +@@ -947,7 +947,8 @@ std::unique_ptr SearchProvider::CreateSuggestLoader( // is required. // Request for suggestions in OTR contexts is not allowed; except for the Lens // searchboxes. diff --git a/build/patches/Add-autoplay-site-setting.patch b/build/patches/Add-autoplay-site-setting.patch index de521ad9..e5918e55 100644 --- a/build/patches/Add-autoplay-site-setting.patch +++ b/build/patches/Add-autoplay-site-setting.patch @@ -279,7 +279,7 @@ new file mode 100644 diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc --- a/components/content_settings/core/browser/content_settings_registry.cc +++ b/components/content_settings/core/browser/content_settings_registry.cc -@@ -255,7 +255,7 @@ void ContentSettingsRegistry::Init() { +@@ -254,7 +254,7 @@ void ContentSettingsRegistry::Init() { ContentSettingsInfo::INHERIT_IN_INCOGNITO, PermissionSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY); diff --git a/build/patches/Add-bookmark-import-export-actions.patch b/build/patches/Add-bookmark-import-export-actions.patch index 0bf83ec5..93b5acde 100644 --- a/build/patches/Add-bookmark-import-export-actions.patch +++ b/build/patches/Add-bookmark-import-export-actions.patch @@ -94,7 +94,7 @@ diff --git a/chrome/android/java/res/menu/bookmark_toolbar_menu_improved.xml b/c diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java --- a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java -@@ -10,6 +10,7 @@ import org.chromium.base.supplier.ObservableSupplier; +@@ -11,6 +11,7 @@ import org.chromium.base.supplier.ObservableSupplier; import org.chromium.base.supplier.OneshotSupplier; import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; @@ -102,7 +102,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDe import org.chromium.chrome.browser.app.tab_activity_glue.ActivityTabWebContentsDelegateAndroid; import org.chromium.chrome.browser.back_press.BackPressManager; import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider; -@@ -61,7 +62,7 @@ import java.util.function.Supplier; +@@ -63,7 +64,7 @@ import java.util.function.Supplier; */ @NullMarked public class TabbedModeTabDelegateFactory implements TabDelegateFactory { @@ -111,8 +111,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDe private final BrowserControlsVisibilityDelegate mAppBrowserControlsVisibilityDelegate; private final Supplier mShareDelegateSupplier; private final Supplier mEphemeralTabCoordinatorSupplier; -@@ -93,7 +94,7 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory { - private final MultiInstanceManager mMultiInstanceManager; +@@ -97,7 +98,7 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory { + private final RecentlyClosedEntriesManager mRecentlyClosedEntriesManager; public TabbedModeTabDelegateFactory( - Activity activity, @@ -132,7 +132,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B import android.content.ComponentName; import android.content.Intent; import android.text.TextUtils; -@@ -35,6 +37,9 @@ import org.chromium.components.embedder_support.util.UrlConstants; +@@ -36,6 +38,9 @@ import org.chromium.components.browser_ui.modaldialog.AppModalPresenter; import org.chromium.ui.modaldialog.ModalDialogManager; import org.chromium.ui.modaldialog.ModalDialogManager.ModalDialogType; @@ -142,7 +142,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B /** * The activity that displays the bookmark UI on the phone. It keeps a {@link * BookmarkManagerCoordinator} inside of it and creates a snackbar manager. This activity should -@@ -50,6 +55,9 @@ public class BookmarkActivity extends SnackbarActivity { +@@ -51,6 +56,9 @@ public class BookmarkActivity extends SnackbarActivity { private @Nullable BookmarkOpener mBookmarkOpener; private @Nullable OnKeyDownHandler mOnKeyDownHandler; @@ -152,7 +152,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B @Override protected void onProfileAvailable(Profile profile) { super.onProfileAvailable(profile); -@@ -82,6 +90,14 @@ public class BookmarkActivity extends SnackbarActivity { +@@ -84,6 +92,14 @@ public class BookmarkActivity extends SnackbarActivity { mOnKeyDownHandler = BackPressHelper.create( this, getOnBackPressedDispatcher(), mBookmarkManagerCoordinator); @@ -167,7 +167,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B } @Override -@@ -109,6 +125,7 @@ public class BookmarkActivity extends SnackbarActivity { +@@ -111,6 +127,7 @@ public class BookmarkActivity extends SnackbarActivity { @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); @@ -175,7 +175,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B if (requestCode == EDIT_BOOKMARK_REQUEST_CODE && resultCode == RESULT_OK) { assumeNonNull(data); BookmarkId bookmarkId = -@@ -118,6 +135,21 @@ public class BookmarkActivity extends SnackbarActivity { +@@ -120,6 +137,21 @@ public class BookmarkActivity extends SnackbarActivity { } } @@ -200,15 +200,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java --- a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java -@@ -26,6 +26,7 @@ import org.chromium.base.supplier.OneshotSupplier; - import org.chromium.build.annotations.NullMarked; +@@ -28,6 +28,7 @@ import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; import org.chromium.chrome.R; + import org.chromium.chrome.browser.RecentlyClosedEntriesManager; +import org.chromium.chrome.browser.app.ChromeActivity; import org.chromium.chrome.browser.app.download.home.DownloadPage; import org.chromium.chrome.browser.back_press.BackPressManager; import org.chromium.chrome.browser.bookmarks.BookmarkPage; -@@ -79,7 +80,7 @@ import java.util.function.Supplier; +@@ -83,7 +84,7 @@ import java.util.function.Supplier; */ @NullMarked public class NativePageFactory { @@ -217,8 +217,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat private final BottomSheetController mBottomSheetController; private final BrowserControlsManager mBrowserControlsManager; private final Supplier<@Nullable Tab> mCurrentTabSupplier; -@@ -104,7 +105,7 @@ public class NativePageFactory { - private final MultiInstanceManager mMultiInstanceManager; +@@ -111,7 +112,7 @@ public class NativePageFactory { + private final RecentlyClosedEntriesManager mRecentlyClosedEntriesManager; public NativePageFactory( - Activity activity, @@ -226,7 +226,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat BottomSheetController sheetController, BrowserControlsManager browserControlsManager, Supplier<@Nullable Tab> currentTabSupplier, -@@ -182,7 +183,7 @@ public class NativePageFactory { +@@ -198,7 +199,7 @@ public class NativePageFactory { @VisibleForTesting static class NativePageBuilder { @@ -235,7 +235,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat private final BottomSheetController mBottomSheetController; private final Supplier mNewTabPageCreationTracker; private final BrowserControlsManager mBrowserControlsManager; -@@ -299,7 +300,7 @@ public class NativePageFactory { +@@ -326,7 +327,7 @@ public class NativePageFactory { mTabModelSelector, mEdgeToEdgeControllerSupplier), mActivity.getComponentName(), @@ -247,7 +247,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -207,6 +207,8 @@ static_library("browser") { +@@ -208,6 +208,8 @@ static_library("browser") { "bad_message.h", "bookmarks/bookmark_model_factory.cc", "bookmarks/bookmark_model_factory.h", @@ -256,7 +256,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "bookmarks/chrome_bookmark_client.cc", "bookmarks/chrome_bookmark_client.h", "bookmarks/managed_bookmark_service_factory.cc", -@@ -1573,6 +1575,13 @@ static_library("browser") { +@@ -1531,6 +1533,13 @@ static_library("browser") { "webdata_services/web_data_service_factory.cc", ] @@ -270,7 +270,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn configs += [ "//build/config/compiler:wexit_time_destructors", "//build/config:precompiled_headers", -@@ -3733,8 +3742,6 @@ static_library("browser") { +@@ -3703,8 +3712,6 @@ static_library("browser") { "bookmarks/bookmark_expanded_state_tracker.h", "bookmarks/bookmark_expanded_state_tracker_factory.cc", "bookmarks/bookmark_expanded_state_tracker_factory.h", @@ -311,7 +311,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse // Must come after all headers that specialize FromJniType() / ToJniType(). #include "chrome/browser/bookmarks/android/jni_headers/BookmarkBridge_jni.h" -@@ -292,6 +314,10 @@ BookmarkBridge::~BookmarkBridge() { +@@ -293,6 +315,10 @@ BookmarkBridge::~BookmarkBridge() { partner_bookmarks_shim_observation_.Reset(); bookmark_model_observation_.Reset(); profile_observation_.Reset(); @@ -322,13 +322,13 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse } void BookmarkBridge::Destroy(JNIEnv* env) { -@@ -843,6 +869,173 @@ jint BookmarkBridge::GetTotalBookmarkCount( +@@ -844,6 +870,173 @@ jint BookmarkBridge::GetTotalBookmarkCount( return count; } +void BookmarkBridge::ImportBookmarks(JNIEnv* env, -+ const JavaParamRef& obj, -+ const JavaParamRef& java_window) { ++ const JavaRef& obj, ++ const JavaRef& java_window) { + DCHECK(IsLoaded()); + DCHECK_CURRENTLY_ON(content::BrowserThread::UI); + @@ -357,9 +357,9 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse +} + +void BookmarkBridge::ExportBookmarks(JNIEnv* env, -+ const JavaParamRef& obj, -+ const JavaParamRef& java_window, -+ const JavaParamRef& j_export_path) { ++ const JavaRef& obj, ++ const JavaRef& java_window, ++ const JavaRef& j_export_path) { + DCHECK(IsLoaded()); + DCHECK_CURRENTLY_ON(content::BrowserThread::UI); + @@ -499,7 +499,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser/bookmarks/android/bookmark_bridge.h --- a/chrome/browser/bookmarks/android/bookmark_bridge.h +++ b/chrome/browser/bookmarks/android/bookmark_bridge.h -@@ -20,6 +20,7 @@ +@@ -19,6 +19,7 @@ #include "base/strings/utf_string_conversions.h" #include "base/supports_user_data.h" #include "chrome/browser/partnerbookmarks/partner_bookmarks_shim.h" @@ -507,7 +507,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser #include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile_observer.h" #include "chrome/browser/reading_list/android/reading_list_manager.h" -@@ -37,6 +38,9 @@ +@@ -36,6 +37,9 @@ #include "components/signin/public/identity_manager/identity_manager.h" #include "url/android/gurl_android.h" @@ -517,8 +517,8 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser class BookmarkBridgeTest; // Values for a bitmask used to refer to a collection of bookmark nodes. -@@ -77,7 +81,8 @@ class BookmarkBridge : public ProfileObserver, - public ReadingListManager::Observer, +@@ -76,7 +80,8 @@ class BookmarkBridge : public ProfileObserver, + public reading_list::ReadingListManager::Observer, public ReadingListModelObserver, public signin::IdentityManager::Observer, - public base::SupportsUserData::Data { @@ -527,7 +527,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser public: // All of the injected pointers must be non-null and must outlive `this`. BookmarkBridge(Profile* profile, -@@ -108,6 +113,11 @@ class BookmarkBridge : public ProfileObserver, +@@ -107,6 +112,11 @@ class BookmarkBridge : public ProfileObserver, bool IsDoingExtensiveChanges(JNIEnv* env); @@ -536,28 +536,28 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser + int index) override; + void FileSelectionCanceled() override; + - jboolean IsEditBookmarksEnabled(JNIEnv* env); + bool IsEditBookmarksEnabled(JNIEnv* env); void LoadEmptyPartnerBookmarkShimForTesting(JNIEnv* env); -@@ -120,6 +130,17 @@ class BookmarkBridge : public ProfileObserver, +@@ -119,6 +129,17 @@ class BookmarkBridge : public ProfileObserver, jlong id, jint type); + void ImportBookmarks(JNIEnv* env, -+ const base::android::JavaParamRef& obj, -+ const base::android::JavaParamRef& java_window); ++ const base::android::JavaRef& obj, ++ const base::android::JavaRef& java_window); + + void ExportBookmarks(JNIEnv* env, -+ const base::android::JavaParamRef& obj, -+ const base::android::JavaParamRef& java_window, -+ const base::android::JavaParamRef& j_export_path); ++ const base::android::JavaRef& obj, ++ const base::android::JavaRef& java_window, ++ const base::android::JavaRef& j_export_path); + void ExportBookmarksEnd(const base::android::ScopedJavaGlobalRef& obj, + ui::WindowAndroid* window, bookmark_html_writer::Result result) const; + void GetAllFoldersWithDepths( JNIEnv* env, - const base::android::JavaParamRef& j_folders_obj, -@@ -385,6 +406,8 @@ class BookmarkBridge : public ProfileObserver, + const base::android::JavaRef& j_folders_obj, +@@ -379,6 +400,8 @@ class BookmarkBridge : public ProfileObserver, void CreateOrDestroyAccountReadingListManagerIfNeeded(); const raw_ptr profile_; // weak @@ -566,7 +566,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser base::android::ScopedJavaGlobalRef java_bookmark_model_; const raw_ptr bookmark_model_; // weak const raw_ptr -@@ -399,6 +422,7 @@ class BookmarkBridge : public ProfileObserver, +@@ -393,6 +416,7 @@ class BookmarkBridge : public ProfileObserver, std::unique_ptr grouped_bookmark_actions_; PrefChangeRegistrar pref_change_registrar_; @@ -574,7 +574,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser // Information about the Partner bookmarks (must check for IsLoaded()). // This is owned by profile. -@@ -432,6 +456,10 @@ class BookmarkBridge : public ProfileObserver, +@@ -427,6 +451,10 @@ class BookmarkBridge : public ProfileObserver, base::TimeTicks load_start_time_; bool loading_notification_sent_ = false; @@ -678,7 +678,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java --- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java +++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java -@@ -57,6 +57,8 @@ import org.chromium.components.image_fetcher.ImageFetcherConfig; +@@ -60,6 +60,8 @@ import org.chromium.components.image_fetcher.ImageFetcherConfig; import org.chromium.components.image_fetcher.ImageFetcherFactory; import org.chromium.ui.KeyboardVisibilityDelegate; import org.chromium.ui.edge_to_edge.EdgeToEdgePadAdjuster; @@ -687,7 +687,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows import org.chromium.ui.modaldialog.ModalDialogManager; import org.chromium.ui.modaldialog.ModalDialogManager.ModalDialogType; import org.chromium.ui.modelutil.MVCListAdapter.ListItem; -@@ -344,6 +346,13 @@ public class BookmarkManagerCoordinator +@@ -354,6 +356,13 @@ public class BookmarkManagerCoordinator // Public API implementation. @@ -704,8 +704,8 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java --- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java +++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java -@@ -63,6 +63,8 @@ import org.chromium.components.commerce.core.SubscriptionsObserver; - import org.chromium.components.embedder_support.util.UrlConstants; +@@ -64,6 +64,8 @@ import org.chromium.components.commerce.core.ShoppingService; + import org.chromium.components.commerce.core.SubscriptionsObserver; import org.chromium.components.power_bookmarks.PowerBookmarkMeta; import org.chromium.components.power_bookmarks.PowerBookmarkType; +import org.chromium.ui.base.ActivityWindowAndroid; @@ -713,7 +713,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows import org.chromium.ui.accessibility.AccessibilityState; import org.chromium.ui.base.DeviceFormFactor; import org.chromium.ui.base.DeviceInput; -@@ -84,6 +86,47 @@ import java.util.function.BooleanSupplier; +@@ -85,6 +87,47 @@ import java.util.function.BooleanSupplier; import java.util.function.Consumer; import java.util.function.Predicate; @@ -761,7 +761,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows /** Responsible for BookmarkManager business logic. */ // TODO(crbug.com/40256938): Remove BookmarkDelegate if possible. @NullMarked -@@ -94,6 +137,9 @@ class BookmarkManagerMediator +@@ -95,6 +138,9 @@ class BookmarkManagerMediator private static boolean sPreventLoadingForTesting; @@ -771,7 +771,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows /** Keeps track of whether drag is enabled / active for bookmark lists. */ private class BookmarkDragStateDelegate implements DragStateDelegate { private BookmarkDelegate mBookmarkDelegate; -@@ -646,6 +692,14 @@ class BookmarkManagerMediator +@@ -647,6 +693,14 @@ class BookmarkManagerMediator mNativePage = nativePage; } @@ -786,7 +786,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows /** See BookmarkManager(Coordinator)#updateForUrl */ void updateForUrl(String url) { // Bookmark model is null if the manager has been destroyed. -@@ -818,6 +872,235 @@ class BookmarkManagerMediator +@@ -819,6 +873,235 @@ class BookmarkManagerMediator } } @@ -1058,7 +1058,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java --- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java +++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java -@@ -102,6 +102,17 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -103,6 +103,17 @@ public class BookmarkToolbar extends SelectableListToolbar setOnMenuItemClickListener(dragEnabled ? null : this); } @@ -1076,7 +1076,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows void setEditButtonVisible(boolean visible) { mEditButtonVisible = visible; getMenu().findItem(R.id.edit_menu_id).setVisible(visible); -@@ -178,6 +189,12 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -185,6 +196,12 @@ public class BookmarkToolbar extends SelectableListToolbar void setCurrentFolder(BookmarkId folder) { mCurrentFolder = mBookmarkModel.getBookmarkById(folder); @@ -1089,7 +1089,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows } void setNavigateBackRunnable(Runnable navigateBackRunnable) { -@@ -202,6 +219,13 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -209,6 +226,13 @@ public class BookmarkToolbar extends SelectableListToolbar @Override public boolean onMenuItemClick(MenuItem menuItem) { hideOverflowMenu(); @@ -1103,7 +1103,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows return assumeNonNull(mMenuIdClickedFunction).apply(menuItem.getItemId()); } -@@ -222,6 +246,9 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -229,6 +253,9 @@ public class BookmarkToolbar extends SelectableListToolbar protected void showNormalView() { super.showNormalView(); @@ -1116,7 +1116,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java --- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java +++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java -@@ -139,6 +139,10 @@ class BookmarkToolbarMediator +@@ -148,6 +148,10 @@ class BookmarkToolbarMediator mBookmarkDelegate = bookmarkDelegate; mModel.set( BookmarkToolbarProperties.NAVIGATE_BACK_RUNNABLE, this::onNavigateBack); @@ -1130,7 +1130,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java --- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java +++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java -@@ -86,6 +86,10 @@ class BookmarkToolbarProperties { +@@ -88,6 +88,10 @@ class BookmarkToolbarProperties { static final WritableObjectPropertyKey NEXT_FOCUSABLE_VIEW = new WritableObjectPropertyKey<>(); @@ -1141,8 +1141,8 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows static final PropertyKey[] ALL_KEYS = { SELECTION_DELEGATE, -@@ -114,6 +118,8 @@ class BookmarkToolbarProperties { - SELECTION_MODE_SHOW_MOVE, +@@ -117,6 +121,8 @@ class BookmarkToolbarProperties { + SELECTION_MODE_SHOW_COPY_LINK, SELECTION_MODE_SHOW_MARK_READ, SELECTION_MODE_SHOW_MARK_UNREAD, - NEXT_FOCUSABLE_VIEW @@ -1247,18 +1247,18 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse 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 -@@ -264,6 +264,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { - &kAuxiliarySearchHistoryDonation, +@@ -257,6 +257,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { + &kAvoidDoubleMultiwindowChanges, &kBlockIntentsWhileLocked, &kBookmarkPaneAndroid, + &kBookmarksExportUseSaf, &kBrowserControlsDebugging, &kBrowserControlsEarlyResize, - &kBrowserControlsRenderDrivenShowConstraint, + &kBrowserControlsPersistsOnCvh, 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 -@@ -713,6 +713,7 @@ public abstract class ChromeFeatureList { +@@ -694,6 +694,7 @@ public abstract class ChromeFeatureList { "UseLibunwindstackNativeUnwinderAndroid"; public static final String VERIFY_QWACS = "VerifyQWACs"; public static final String VISITED_URL_RANKING_SERVICE = "VisitedURLRankingService"; @@ -1321,7 +1321,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro /** Whether Chrome is set as the default browser. Default value is false. */ public static final String CHROME_DEFAULT_BROWSER = "applink.chrome_default_browser"; -@@ -1125,6 +1127,7 @@ public final class ChromePreferenceKeys { +@@ -1167,6 +1169,7 @@ public final class ChromePreferenceKeys { AUXILIARY_SEARCH_SCHEMA_VERSION, APP_LAUNCH_LAST_KNOWN_ACTIVE_TAB_STATE, APP_LAUNCH_SEARCH_ENGINE_HAD_LOGO, @@ -1332,7 +1332,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 -@@ -264,6 +264,24 @@ CHAR_LIMIT guidelines: +@@ -267,6 +267,24 @@ CHAR_LIMIT guidelines: Sites @@ -1360,7 +1360,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn --- a/chrome/utility/BUILD.gn +++ b/chrome/utility/BUILD.gn -@@ -211,6 +211,13 @@ static_library("utility") { +@@ -212,6 +212,13 @@ static_library("utility") { deps += [ "//chrome/services/pdf:lib" ] } diff --git a/build/patches/Add-cromite-flags-support.patch b/build/patches/Add-cromite-flags-support.patch index 297e5b26..08239caf 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 -@@ -174,6 +174,8 @@ use_epoll = is_linux || is_chromeos || is_android +@@ -183,6 +183,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,22 +152,22 @@ diff --git a/base/BUILD.gn b/base/BUILD.gn sources = [ "allocator/allocator_check.cc", "allocator/allocator_check.h", -@@ -1061,7 +1063,7 @@ component("base") { +@@ -1069,7 +1071,7 @@ component("base") { "//build/config/compiler:wglobal_constructors", ] - deps = [ + deps += [ ":check_version_internal", + ":simdutf_shim", "//base/allocator:buildflags", - "//base/third_party/cityhash", diff --git a/base/android/feature_map.cc b/base/android/feature_map.cc --- a/base/android/feature_map.cc +++ b/base/android/feature_map.cc -@@ -47,6 +47,11 @@ const Feature* FeatureMap::FindFeatureExposedToJava( - static jboolean JNI_FeatureMap_IsEnabled(JNIEnv* env, - jlong jfeature_map, - std::string& feature_name) { +@@ -46,6 +46,11 @@ const Feature* FeatureMap::FindFeatureExposedToJava( + + static bool JNI_FeatureMap_IsEnabled(jlong jfeature_map, + std::string& feature_name) { + if (base::FeatureList::IsCromiteFlag(feature_name)) { + const base::Feature* cromite_feature = + base::FeatureList::GetCromiteFlag(feature_name); @@ -191,7 +191,7 @@ diff --git a/base/android/java/src/org/chromium/base/cached_flags/ValuesReturned diff --git a/base/feature_list.cc b/base/feature_list.cc --- a/base/feature_list.cc +++ b/base/feature_list.cc -@@ -43,6 +43,31 @@ +@@ -39,6 +39,31 @@ namespace base { @@ -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 -@@ -472,6 +497,46 @@ bool FeatureList::IsEnabled(const Feature& feature) { +@@ -477,6 +502,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; -@@ -739,6 +804,17 @@ void FeatureList::VisitFeaturesAndParams(FeatureVisitor& visitor, +@@ -744,6 +809,17 @@ void FeatureList::VisitFeaturesAndParams(FeatureVisitor& visitor, void FeatureList::FinalizeInitialization() { DCHECK(!initialized_); @@ -463,7 +463,7 @@ diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -38,6 +38,10 @@ found in the LICENSE file. +@@ -32,6 +32,10 @@ found in the LICENSE file. android:key="do_not_track" android:title="@string/do_not_track_title" android:fragment="org.chromium.chrome.browser.privacy.settings.DoNotTrackSettings" /> @@ -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 -@@ -127,7 +127,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -129,7 +129,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment } @Override @@ -509,25 +509,27 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme import org.chromium.base.supplier.ObservableSupplier; import org.chromium.base.supplier.OneshotSupplier; import org.chromium.build.annotations.NullMarked; -@@ -68,24 +69,31 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl - private final OneshotSupplier mSnackbarManagerSupplier; +@@ -71,6 +72,7 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl private final OneshotSupplier mBottomSheetControllerSupplier; - private final ObservableSupplier<@Nullable ModalDialogManager> mModalDialogManagerSupplier; + private final ObservableSupplier mModalDialogManagerSupplier; + private final Supplier mSearchCoordinator; + private final Supplier mRequireRestartDelegateSupplier; public FragmentDependencyProvider( Context context, - Profile profile, +@@ -78,19 +80,25 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl OneshotSupplier snackbarManagerSupplier, OneshotSupplier bottomSheetControllerSupplier, -- ObservableSupplier<@Nullable ModalDialogManager> modalDialogManagerSupplier) { -+ ObservableSupplier<@Nullable ModalDialogManager> modalDialogManagerSupplier, + ObservableSupplier modalDialogManagerSupplier, +- Supplier searchCoordinator) { ++ Supplier searchCoordinator, + Supplier requireRestartDelegateSupplier) { mContext = context; mProfile = profile; mSnackbarManagerSupplier = snackbarManagerSupplier; mBottomSheetControllerSupplier = bottomSheetControllerSupplier; mModalDialogManagerSupplier = modalDialogManagerSupplier; + mSearchCoordinator = searchCoordinator; + mRequireRestartDelegateSupplier = requireRestartDelegateSupplier; } @@ -553,7 +555,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin import android.annotation.SuppressLint; import android.app.ActivityManager; import android.content.Context; -@@ -43,6 +44,7 @@ import org.chromium.base.Log; +@@ -42,6 +43,7 @@ import org.chromium.base.Log; import org.chromium.base.metrics.RecordHistogram; import org.chromium.base.metrics.RecordUserAction; import org.chromium.base.supplier.ObservableSupplier; @@ -561,7 +563,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin import org.chromium.base.supplier.OneshotSupplierImpl; import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; -@@ -54,6 +56,7 @@ import org.chromium.chrome.browser.back_press.BackPressHelper.OnKeyDownHandler; +@@ -53,6 +55,7 @@ import org.chromium.chrome.browser.back_press.BackPressHelper.OnKeyDownHandler; import org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncherImpl; import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.init.ChromeBrowserInitializer; @@ -569,7 +571,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.ProfileManager; import org.chromium.chrome.browser.profiles.ProfileManagerUtils; -@@ -61,6 +64,7 @@ import org.chromium.chrome.browser.settings.search.SettingsSearchCoordinator; +@@ -60,6 +63,7 @@ import org.chromium.chrome.browser.settings.search.SettingsSearchCoordinator; 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; @@ -577,7 +579,7 @@ 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; -@@ -115,6 +119,40 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -114,6 +118,40 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity PreferenceUpdateObserver { private static final String TAG = "SettingsActivity"; @@ -618,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"; -@@ -205,7 +243,8 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity - mProfile, +@@ -206,7 +244,8 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity mSnackbarManagerSupplier, mBottomSheetControllerSupplier, -- getModalDialogManagerSupplier()), -+ getModalDialogManagerSupplier(), + getModalDialogManagerSupplier(), +- () -> mSearchCoordinator), ++ () -> mSearchCoordinator, + () -> new RequestRestartDelegate(mSnackbarManagerSupplier, this)), /* recursive= */ true); fragmentManager.registerFragmentLifecycleCallbacks( @@ -631,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 -@@ -23,8 +23,7 @@ import org.chromium.components.browser_ui.settings.SettingsUtils; +@@ -26,8 +26,7 @@ import org.chromium.components.browser_ui.settings.search.SettingsIndexData; /** Settings fragment containing preferences aimed at Chrome and web developers. */ @NullMarked @@ -641,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: -@@ -55,7 +54,7 @@ public class DeveloperSettings extends ChromeBaseSettingsFragment +@@ -58,7 +57,7 @@ public class DeveloperSettings extends ChromeBaseSettingsFragment } @Override @@ -649,11 +651,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tracing/setting + public void onCreatePreferencesCromite(@Nullable Bundle savedInstanceState, @Nullable String s) { SettingsUtils.addPreferencesFromResource(this, R.xml.developer_preferences); - if (VersionInfo.isBetaBuild() || VersionInfo.isStableBuild()) { + if (shouldRemoveBetaStableHint()) { 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 -@@ -389,6 +389,10 @@ using flags_ui::kOsLinux; +@@ -390,6 +390,10 @@ using flags_ui::kOsLinux; using flags_ui::kOsMac; using flags_ui::kOsWin; @@ -664,7 +666,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc namespace about_flags { namespace { -@@ -5291,6 +5295,10 @@ const FeatureEntry::Choice kOmniboxAutofocusOnIncognitoNtpChoices[] = { +@@ -5201,6 +5205,10 @@ const FeatureEntry::Choice kOmniboxAutofocusOnIncognitoNtpChoices[] = { }; #endif // !BUILDFLAG(IS_ANDROID) @@ -675,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. -@@ -5317,6 +5325,9 @@ const FeatureEntry::Choice kOmniboxAutofocusOnIncognitoNtpChoices[] = { +@@ -5227,6 +5235,9 @@ const FeatureEntry::Choice kOmniboxAutofocusOnIncognitoNtpChoices[] = { const FeatureEntry kFeatureEntries[] = { // Include generated flags for flag unexpiry; see //docs/flag_expiry.md and // //tools/flags/generate_unexpire_flags.py. @@ -688,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 -@@ -284,4 +284,5 @@ BASE_FEATURE(kReportPakFileIntegrity, +@@ -262,4 +262,5 @@ BASE_FEATURE(kReportPakFileIntegrity, // show both in Chrome Tabs and Windows. BASE_FEATURE(kRemovalOfIWAsFromTabCapture, base::FEATURE_ENABLED_BY_DEFAULT); @@ -697,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 -@@ -118,6 +118,7 @@ BASE_DECLARE_FEATURE(kRemovalOfIWAsFromTabCapture); +@@ -113,6 +113,7 @@ BASE_DECLARE_FEATURE(kRemovalOfIWAsFromTabCapture); // module, e.g. // //chrome/browser//features.h // @@ -747,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 -@@ -840,6 +840,7 @@ BASE_FEATURE(kXplatSyncedSetup, base::FEATURE_DISABLED_BY_DEFAULT); +@@ -814,6 +814,7 @@ BASE_FEATURE(kXplatSyncedSetup, base::FEATURE_DISABLED_BY_DEFAULT); // clang-format on @@ -769,7 +771,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -20,6 +20,10 @@ import org.chromium.components.cached_flags.DoubleCachedFeatureParam; +@@ -21,6 +21,10 @@ import org.chromium.components.cached_flags.DoubleCachedFeatureParam; import org.chromium.components.cached_flags.IntCachedFeatureParam; import org.chromium.components.cached_flags.StringCachedFeatureParam; @@ -780,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; -@@ -1118,7 +1122,7 @@ public abstract class ChromeFeatureList { +@@ -1104,7 +1108,7 @@ public abstract class ChromeFeatureList { newCachedFlag(WEB_APK_MIN_SHELL_APK_VERSION, true); // keep-sorted end @@ -789,7 +791,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f List.of( // keep-sorted start sAccountForSuppressedKeyboardInsets, -@@ -1282,6 +1286,13 @@ public abstract class ChromeFeatureList { +@@ -1262,6 +1266,13 @@ public abstract class ChromeFeatureList { // keep-sorted end ); @@ -969,16 +971,16 @@ 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 -@@ -788,4 +788,5 @@ BASE_FEATURE(kWhatsNewDesktopRefresh, base::FEATURE_DISABLED_BY_DEFAULT); - - BASE_FEATURE(kTabGroupsFocusing, base::FEATURE_DISABLED_BY_DEFAULT); +@@ -578,4 +578,5 @@ BASE_FEATURE(kTabGroupsFocusing, base::FEATURE_DISABLED_BY_DEFAULT); + BASE_FEATURE(kUpdaterUI, base::FEATURE_DISABLED_BY_DEFAULT); + #endif +#include "cromite_flags/chrome_browser_ui_ui_features_cc.inc" } // namespace features diff --git a/chrome/browser/unexpire_flags.cc b/chrome/browser/unexpire_flags.cc --- a/chrome/browser/unexpire_flags.cc +++ b/chrome/browser/unexpire_flags.cc -@@ -11,6 +11,7 @@ +@@ -10,6 +10,7 @@ #include "base/containers/flat_map.h" #include "base/feature_list.h" #include "base/no_destructor.h" @@ -986,7 +988,7 @@ diff --git a/chrome/browser/unexpire_flags.cc b/chrome/browser/unexpire_flags.cc #include "chrome/browser/expired_flags_list.h" #include "chrome/browser/unexpire_flags_gen.h" #include "chrome/common/chrome_version.h" -@@ -117,7 +118,19 @@ bool IsFlagExpired(const flags_ui::FlagsStorage* storage, +@@ -116,7 +117,19 @@ bool IsFlagExpired(const flags_ui::FlagsStorage* storage, // Otherwise, the flag is expired if its expiration mstone is less than the // mstone of this copy of Chromium. @@ -1010,7 +1012,7 @@ 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 -@@ -1906,5 +1906,5 @@ BASE_FEATURE(kDisableShortcutsEnableDiy, base::FEATURE_ENABLED_BY_DEFAULT); +@@ -1937,5 +1937,5 @@ BASE_FEATURE(kDisableShortcutsEnableDiy, base::FEATURE_ENABLED_BY_DEFAULT); // happen silently without prompting an updating dialog. BASE_FEATURE(kSilentPolicyAndDefaultAppUpdating, base::FEATURE_DISABLED_BY_DEFAULT); @@ -1044,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 -@@ -30,9 +30,11 @@ import org.chromium.content_public.browser.ContentFeatureList; +@@ -34,9 +34,11 @@ import org.chromium.content_public.browser.ContentFeatureList; import org.chromium.content_public.browser.ContentFeatureMap; import org.chromium.ui.base.UiAndroidFeatureList; @@ -1057,7 +1059,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c implements EmbeddableSettingsPage, Preference.OnPreferenceChangeListener, CustomDividerFragment { -@@ -78,7 +80,7 @@ public class AccessibilitySettings extends PreferenceFragmentCompat +@@ -83,7 +85,7 @@ public class AccessibilitySettings extends PreferenceFragmentCompat } @Override @@ -1162,7 +1164,7 @@ diff --git a/components/components_strings.grd b/components/components_strings.g diff --git a/components/content_settings/core/common/features.cc b/components/content_settings/core/common/features.cc --- a/components/content_settings/core/common/features.cc +++ b/components/content_settings/core/common/features.cc -@@ -143,5 +143,6 @@ const base::FeatureParam +@@ -137,5 +137,6 @@ const base::FeatureParam BASE_FEATURE(kForceAllowStorageAccess, base::FEATURE_DISABLED_BY_DEFAULT); @@ -1198,7 +1200,7 @@ 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 -@@ -201,4 +201,5 @@ BASE_FEATURE(kRetrieveTrustedVaultKeyKeyboardAccessoryAction, +@@ -184,4 +184,5 @@ BASE_FEATURE(kReduceRequirementsForPasswordChange, BASE_FEATURE(kUseActionablesForImprovedPasswordChange, base::FEATURE_DISABLED_BY_DEFAULT); @@ -1260,7 +1262,7 @@ diff --git a/components/variations/synthetic_trials_active_group_id_provider.h b diff --git a/components/webui/flags/flags_state.cc b/components/webui/flags/flags_state.cc --- a/components/webui/flags/flags_state.cc +++ b/components/webui/flags/flags_state.cc -@@ -377,6 +377,21 @@ void FlagsState::GetSwitchesAndFeaturesFromFlags( +@@ -373,6 +373,21 @@ void FlagsState::GetSwitchesAndFeaturesFromFlags( for (const std::string& entry_name : enabled_entries) { const auto& entry_it = name_to_switch_map.find(entry_name); @@ -1282,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; -@@ -710,6 +725,27 @@ void FlagsState::GetFlagFeatureEntries( +@@ -706,6 +721,27 @@ void FlagsState::GetFlagFeatureEntries( data.Set("links", std::move(links)); } @@ -1310,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: -@@ -837,6 +873,16 @@ void FlagsState::AddSwitchesToCommandLine( +@@ -833,6 +869,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()) { @@ -1327,7 +1329,7 @@ diff --git a/components/webui/flags/flags_state.cc b/components/webui/flags/flag NOTREACHED(); } -@@ -1093,6 +1139,14 @@ const FeatureEntry* FlagsState::FindFeatureEntryByName( +@@ -1104,6 +1150,14 @@ const FeatureEntry* FlagsState::FindFeatureEntryByName( bool FlagsState::IsSupportedFeature(const FlagsStorage* storage, const std::string& name, int platform_mask) const { @@ -1342,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)) { -@@ -1131,6 +1185,11 @@ void FlagsState::SetFlags( +@@ -1142,6 +1196,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. @@ -1639,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 -@@ -750,4 +750,5 @@ bool IsEnforceSameDocumentOriginInvariantsEnabled() { +@@ -753,4 +753,5 @@ bool IsEnforceSameDocumentOriginInvariantsEnabled() { blink::features::kTreatMhtmlInitialDocumentLoadsAsCrossDocument); } @@ -1648,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 -@@ -1438,4 +1438,5 @@ bool IsPushSubscriptionChangeEventEnabled() { +@@ -1455,4 +1455,5 @@ bool IsPushSubscriptionChangeEventEnabled() { features::kPushSubscriptionChangeEventOnResubscribe); } @@ -1657,7 +1659,7 @@ diff --git a/content/public/common/content_features.cc b/content/public/common/c diff --git a/content/public/common/content_features.h b/content/public/common/content_features.h --- a/content/public/common/content_features.h +++ b/content/public/common/content_features.h -@@ -420,6 +420,7 @@ CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForOutOfProcess(); +@@ -422,6 +422,7 @@ CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForOutOfProcess(); CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForBrowserProcess(); CONTENT_EXPORT bool IsPushSubscriptionChangeEventEnabled(); @@ -2003,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 -@@ -1750,5 +1750,5 @@ uint32_t GetPassthroughAudioFormats() { +@@ -1779,5 +1779,5 @@ uint32_t GetPassthroughAudioFormats() { return 0; #endif // BUILDFLAG(ENABLE_PASSTHROUGH_AUDIO_CODECS) } @@ -2013,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 -@@ -556,5 +556,5 @@ MEDIA_EXPORT bool IsOutOfProcessVideoDecodingEnabled(); +@@ -557,5 +557,5 @@ MEDIA_EXPORT bool IsOutOfProcessVideoDecodingEnabled(); MEDIA_EXPORT uint32_t GetPassthroughAudioFormats(); } // namespace media @@ -2023,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 -@@ -846,4 +846,5 @@ BASE_FEATURE(kAddAutomaticWithDohFallbackMode, - BASE_FEATURE(kUseQuicProxiesWithoutWaitingForConnectResponse, - base::FEATURE_DISABLED_BY_DEFAULT); +@@ -719,4 +719,5 @@ BASE_FEATURE(kUseNSURLDataForGURLConversion, base::FEATURE_ENABLED_BY_DEFAULT); + + BASE_FEATURE(kUseLockFreeX509Verification, base::FEATURE_DISABLED_BY_DEFAULT); +#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 -@@ -911,6 +911,7 @@ NET_EXPORT BASE_DECLARE_FEATURE(kAddAutomaticWithDohFallbackMode); - NET_EXPORT BASE_DECLARE_FEATURE( - kUseQuicProxiesWithoutWaitingForConnectResponse); +@@ -768,6 +768,7 @@ NET_EXPORT BASE_DECLARE_FEATURE(kUseNSURLDataForGURLConversion); + // lock-free certificate verification mechanism. + NET_EXPORT BASE_DECLARE_FEATURE(kUseLockFreeX509Verification); +#include "cromite_flags/net_base_features_h.inc" } // namespace net::features @@ -2043,7 +2045,7 @@ 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 -@@ -611,4 +611,5 @@ BASE_FEATURE(kNetworkServicePerPriorityTaskQueues, +@@ -616,4 +616,5 @@ BASE_FEATURE(kNetworkServicePerPriorityTaskQueues, BASE_FEATURE(kUseUnexportableKeyServiceInBrowserProcess, base::FEATURE_DISABLED_BY_DEFAULT); @@ -2052,7 +2054,7 @@ diff --git a/services/network/public/cpp/features.cc b/services/network/public/c 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 -@@ -383,6 +383,7 @@ BASE_DECLARE_FEATURE(kNetworkServicePerPriorityTaskQueues); +@@ -386,6 +386,7 @@ BASE_DECLARE_FEATURE(kNetworkServicePerPriorityTaskQueues); COMPONENT_EXPORT(NETWORK_CPP_FLAGS_AND_SWITCHES) BASE_DECLARE_FEATURE(kUseUnexportableKeyServiceInBrowserProcess); @@ -2063,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 -@@ -2647,4 +2647,5 @@ bool IsXrDevice() { +@@ -2662,4 +2662,5 @@ bool IsXrDevice() { // // DO NOT ADD NEW FEATURES HERE. @@ -2072,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 -@@ -1960,6 +1960,7 @@ BLINK_COMMON_EXPORT bool IsXrDevice(); +@@ -1959,6 +1959,7 @@ BLINK_COMMON_EXPORT bool IsXrDevice(); // // DO NOT ADD NEW FEATURES HERE. @@ -2083,18 +2085,18 @@ 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 -@@ -449,4 +449,5 @@ BASE_FEATURE(kUseSystemDefaultAccentColors, base::FEATURE_ENABLED_BY_DEFAULT); - - BASE_FEATURE(kStringWidthCache, base::FEATURE_DISABLED_BY_DEFAULT); +@@ -446,4 +446,5 @@ BASE_FEATURE(kStringWidthCache, base::FEATURE_ENABLED_BY_DEFAULT); + BASE_FEATURE(kUseClipboardStrictVirtualFileCheck, + base::FEATURE_ENABLED_BY_DEFAULT); +#include "cromite_flags/ui_base_features_cc.inc" } // namespace features 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 -@@ -270,6 +270,7 @@ BASE_DECLARE_FEATURE(kUseSystemDefaultAccentColors); +@@ -274,6 +274,7 @@ BASE_DECLARE_FEATURE(kStringWidthCache); COMPONENT_EXPORT(UI_BASE_FEATURES) - BASE_DECLARE_FEATURE(kStringWidthCache); + BASE_DECLARE_FEATURE(kUseClipboardStrictVirtualFileCheck); +#include "cromite_flags/ui_base_features_h.inc" } // namespace features diff --git a/build/patches/Add-cromite-test-support.patch b/build/patches/Add-cromite-test-support.patch index 097aa2f4..ee8cb478 100644 --- a/build/patches/Add-cromite-test-support.patch +++ b/build/patches/Add-cromite-test-support.patch @@ -96,7 +96,7 @@ 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 -@@ -35,7 +35,7 @@ public class DeveloperSettings extends ChromeBaseSettingsFragment implements Emb +@@ -38,7 +38,7 @@ public class DeveloperSettings extends ChromeBaseSettingsFragment implements Emb private final ObservableSupplier mPageTitle = new ObservableSupplierImpl<>(MSG_DEVELOPER_OPTIONS_TITLE); @@ -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 -@@ -190,6 +190,11 @@ source_set("shell_integration") { +@@ -191,6 +191,11 @@ source_set("shell_integration") { # require many files from it. This makes linking more efficient. static_library("browser") { sources = [ @@ -179,7 +179,7 @@ diff --git a/chrome/browser/chrome_content_browser_client_receiver_bindings.cc b #include "chrome/browser/chrome_browser_interface_binders_webui.h" #include "chrome/browser/chrome_content_browser_client.h" #include "chrome/browser/chrome_content_browser_client_parts.h" -@@ -492,6 +493,15 @@ void ChromeContentBrowserClient:: +@@ -497,6 +498,15 @@ void ChromeContentBrowserClient:: render_frame_host); }, &render_frame_host)); @@ -435,7 +435,7 @@ 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") { - sources = [ + "actor.mojom", "chrome_render_frame.mojom", "google_accounts_private_api_extension.mojom", + "cromite_private_api_extension.mojom", @@ -766,7 +766,7 @@ new file mode 100644 diff --git a/components/component_updater/component_updater_service.h b/components/component_updater/component_updater_service.h --- a/components/component_updater/component_updater_service.h +++ b/components/component_updater/component_updater_service.h -@@ -242,6 +242,7 @@ class OnDemandUpdater { +@@ -243,6 +243,7 @@ class OnDemandUpdater { // the update will be applied. The caller can subscribe to component update // service notifications and provide an optional callback to get the result // of the call. The function does not implement any cooldown interval. @@ -793,7 +793,7 @@ 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" -@@ -602,9 +604,12 @@ void DevToolsHttpHandler::OnJsonRequest( +@@ -608,9 +610,12 @@ void DevToolsHttpHandler::OnJsonRequest( if (command == "version") { base::Value::Dict version; @@ -801,7 +801,7 @@ diff --git a/content/browser/devtools/devtools_http_handler.cc b/content/browser + if (base::FeatureList::IsEnabled(features::kEnableCromiteTestSupport)) + browser = "Chrome/0.0.0.0"; version.Set("Protocol-Version", DevToolsAgentHost::GetProtocolVersion()); - version.Set("WebKit-Version", embedder_support::GetWebKitVersion()); + version.Set("WebKit-Version", GetWebKitVersion()); - version.Set("Browser", GetContentClient()->browser()->GetProduct()); + version.Set("Browser", browser); version.Set("User-Agent", GetContentClient()->browser()->GetUserAgent()); @@ -851,16 +851,16 @@ 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 -@@ -316,6 +316,8 @@ +@@ -318,6 +318,8 @@ #include "url/origin.h" #include "url/url_constants.h" +//#include "chrome/browser/cromite/cromite_private_api_host.h" + #if BUILDFLAG(IS_ANDROID) + #include "base/android/scoped_service_binding_batch.h" #include "content/browser/accessibility/browser_accessibility_manager_android.h" - #include "content/browser/android/content_url_loader_factory.h" -@@ -4786,7 +4788,8 @@ void RenderFrameHostImpl::DidAddMessageToConsole( +@@ -4867,7 +4869,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 -@@ -4803,8 +4806,14 @@ void RenderFrameHostImpl::DidAddMessageToConsole( +@@ -4884,8 +4887,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 14c10c56..5e23743a 100644 --- a/build/patches/Add-custom-tab-intents-privacy-option.patch +++ b/build/patches/Add-custom-tab-intents-privacy-option.patch @@ -13,7 +13,7 @@ See also: https://github.com/bromite/bromite/issues/1474 License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- .../java/res/xml/privacy_preferences.xml | 15 ++++++ - .../browser/LaunchIntentDispatcher.java | 21 ++++++++ + .../browser/LaunchIntentDispatcher.java | 22 ++++++++ .../CustomTabIntentDataProvider.java | 22 ++++---- .../customtabs/CustomTabsConnection.java | 3 +- .../IncognitoCustomTabIntentDataProvider.java | 14 +++++ @@ -25,14 +25,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../OriginVerifier.java | 5 ++ .../core/common/language_experiments.cc | 1 + .../add-custom-tab-intents-privacy-option.inc | 1 + - 13 files changed, 158 insertions(+), 13 deletions(-) + 13 files changed, 159 insertions(+), 13 deletions(-) create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-custom-tab-intents-privacy-option.grdp create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/add-custom-tab-intents-privacy-option.inc diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -46,6 +46,21 @@ found in the LICENSE file. +@@ -40,6 +40,21 @@ found in the LICENSE file. android:key="cromite_flags" android:title="@string/cromite_flags_title" app:url="@string/cromite_flags_url" /> @@ -57,7 +57,15 @@ 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/LaunchIntentDispatcher.java b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java --- a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java -@@ -65,6 +65,9 @@ import java.lang.annotation.Retention; +@@ -22,6 +22,7 @@ import androidx.core.os.BuildCompat; + + import org.chromium.base.ApplicationStatus; + import org.chromium.base.CommandLine; ++import org.chromium.base.ContextUtils; + import org.chromium.base.IntentUtils; + import org.chromium.base.Log; + import org.chromium.base.metrics.RecordHistogram; +@@ -51,6 +52,9 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.Set; @@ -67,7 +75,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis /** * Dispatches incoming intents to the appropriate activity based on the current configuration and * Intent fired. -@@ -262,6 +265,9 @@ public class LaunchIntentDispatcher { +@@ -137,6 +141,9 @@ public class LaunchIntentDispatcher { */ public static boolean isCustomTabIntent(Intent intent) { if (intent == null) return false; @@ -77,7 +85,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis Log.w( TAG, "CustomTabsIntent#shouldAlwaysUseBrowserUI() = " -@@ -290,6 +296,10 @@ public class LaunchIntentDispatcher { +@@ -163,6 +170,10 @@ public class LaunchIntentDispatcher { // Make sure the result of the CustomTabActivity is forwarded to the client. newIntent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT); @@ -88,7 +96,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis // Since configureIntentForResizableCustomTab() might change the componenet/class // associated with the passed intent, it needs to be called after #setClassName(context, // CustomTabActivity.class.getName()); -@@ -486,6 +496,17 @@ public class LaunchIntentDispatcher { +@@ -333,6 +344,17 @@ public class LaunchIntentDispatcher { if (Intent.ACTION_VIEW.equals(newIntent.getAction()) && !IntentHandler.wasIntentSenderChrome(newIntent)) { @@ -239,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; -@@ -80,6 +81,15 @@ import org.chromium.ui.text.SpanApplier; +@@ -83,6 +84,15 @@ import org.chromium.ui.text.SpanApplier; import java.util.concurrent.TimeUnit; import java.util.function.Consumer; @@ -255,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; -@@ -148,6 +158,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -150,6 +160,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment startTag, endTag, new ChromeClickableSpan(context, onClickCallback)); } @@ -265,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)); -@@ -376,6 +389,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -391,6 +404,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment new SpanApplier.SpanInfo("", "", servicesLink)); } @@ -275,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(); -@@ -396,6 +412,31 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -411,6 +427,31 @@ public class PrivacySettings extends ChromeBaseSettingsFragment } else if (PREF_SEARCH_SUGGESTIONS.equals(key)) { UserPrefs.get(getProfile()) .setBoolean(Pref.SEARCH_SUGGEST_ENABLED, (boolean) newValue); @@ -307,7 +315,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting } return true; } -@@ -428,6 +469,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -443,6 +484,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment UserPrefs.get(getProfile()).getBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED)); } @@ -327,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 -@@ -713,7 +713,9 @@ BASE_FEATURE(kMagicStackAndroid, base::FEATURE_ENABLED_BY_DEFAULT); +@@ -696,7 +696,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. @@ -336,12 +344,12 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse + "MayLaunchUrlUsesSeparateStoragePartition", + base::FEATURE_DISABLED_BY_DEFAULT); BASE_FEATURE(kMediaIndicatorsAndroid, base::FEATURE_DISABLED_BY_DEFAULT); - BASE_FEATURE(kMiniOriginBar, base::FEATURE_ENABLED_BY_DEFAULT); BASE_FEATURE(kMostVisitedTilesCustomization, base::FEATURE_ENABLED_BY_DEFAULT); + BASE_FEATURE(kMostVisitedTilesReselect, base::FEATURE_DISABLED_BY_DEFAULT); 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 -@@ -989,6 +989,8 @@ public abstract class ChromeFeatureList { +@@ -969,6 +969,8 @@ public abstract class ChromeFeatureList { MOST_VISITED_TILES_CUSTOMIZATION, /* defaultValue= */ true, /* defaultValueInTests= */ true); @@ -349,13 +357,13 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f + newCachedFlag(MAYLAUNCHURL_USES_SEPARATE_STORAGE_PARTITION, false); public static final CachedFlag sMostVisitedTilesReselect = newCachedFlag(MOST_VISITED_TILES_RESELECT, false); - public static final CachedFlag sMultiInstanceApplicationStatusCleanup = -@@ -1236,6 +1238,7 @@ public abstract class ChromeFeatureList { + public static final CachedFlag sMoveToFrontInLaunchIntentDispatcher = +@@ -1217,6 +1219,7 @@ public abstract class ChromeFeatureList { sMaliciousApkDownloadCheck, - sMiniOriginBar, sMostVisitedTilesCustomization, -+ sMayLaunchurlUsesSeparateStoragePartition, sMostVisitedTilesReselect, ++ sMayLaunchurlUsesSeparateStoragePartition, + sMoveToFrontInLaunchIntentDispatcher, sMultiInstanceApplicationStatusCleanup, sMvcUpdateViewWhenModelChanged, 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 diff --git a/build/patches/Add-exit-menu-item.patch b/build/patches/Add-exit-menu-item.patch index 1468a606..b04cab11 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 -@@ -363,6 +363,8 @@ import java.util.Set; +@@ -372,6 +372,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. -@@ -3901,6 +3903,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt +@@ -3878,6 +3880,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 -@@ -68,6 +68,7 @@ import org.chromium.base.supplier.UnownedUserDataSupplier; +@@ -71,6 +71,7 @@ import org.chromium.base.supplier.SettableObservableSupplier; 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; -@@ -2633,6 +2634,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -2654,6 +2655,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity return true; } @@ -91,7 +91,7 @@ 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 -@@ -422,6 +422,13 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm +@@ -425,6 +425,13 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm maybeAddDividerLine(modelList, R.id.menu_item_content_filter_divider_line_id); modelList.add(buildContentFilterHelpCenterMenuItem(currentTab)); } @@ -108,7 +108,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab 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 -@@ -4437,6 +4437,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4460,6 +4460,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 81c19bad..1490a096 100644 --- a/build/patches/Add-flag-for-omnibox-autocomplete-filtering.patch +++ b/build/patches/Add-flag-for-omnibox-autocomplete-filtering.patch @@ -18,15 +18,15 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html 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 -@@ -23,6 +23,7 @@ +@@ -22,6 +22,7 @@ + #include #include "base/check_op.h" - #include "base/containers/contains.h" +#include "base/command_line.h" #include "base/feature_list.h" #include "base/format_macros.h" #include "base/functional/bind.h" -@@ -553,6 +554,15 @@ AutocompleteController::AutocompleteController( +@@ -552,6 +553,15 @@ AutocompleteController::AutocompleteController( steady_state_omnibox_position_( metrics::OmniboxEventProto::UNKNOWN_POSITION), config_(config) { @@ -66,7 +66,7 @@ diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/ #include "base/functional/callback.h" #include "base/i18n/break_iterator.h" #include "base/i18n/case_conversion.h" -@@ -659,6 +660,9 @@ void SearchProvider::Run(bool query_is_private) { +@@ -658,6 +659,9 @@ void SearchProvider::Run(bool query_is_private) { } void SearchProvider::DoHistoryQuery(bool minimal_changes) { @@ -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, +@@ -643,6 +645,8 @@ GURL FixupURLInternal(std::string_view 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-disable-IPv6-probes.patch b/build/patches/Add-flag-to-disable-IPv6-probes.patch index 267ffcd9..2e674575 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 -@@ -1182,6 +1182,7 @@ component("net") { +@@ -1200,6 +1200,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 -@@ -115,6 +115,7 @@ +@@ -116,6 +116,7 @@ #include "net/log/net_log_event_type.h" #include "net/log/net_log_source.h" #include "net/log/net_log_source_type.h" @@ -64,7 +64,7 @@ diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc #include "net/log/net_log_with_source.h" #include "net/socket/client_socket_factory.h" #include "net/url_request/url_request_context.h" -@@ -1493,6 +1494,13 @@ int HostResolverManager::StartIPv6ReachabilityCheck( +@@ -1499,6 +1500,13 @@ int HostResolverManager::StartIPv6ReachabilityCheck( return OK; } 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 79f5d4a0..96a32da0 100644 --- a/build/patches/Add-flag-to-disable-external-intent-requests.patch +++ b/build/patches/Add-flag-to-disable-external-intent-requests.patch @@ -12,7 +12,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- .../java/res/xml/privacy_preferences.xml | 7 +++- .../customtabs/CustomTabDelegateFactory.java | 2 ++ - .../ExternalNavigationDelegateImpl.java | 4 ++- + .../ExternalNavigationDelegateImpl.java | 6 ++-- .../cromite/sAllowExternalIntentRequests.java | 33 +++++++++++++++++++ ...g-to-disable-external-intent-requests.grdp | 9 +++++ .../android/external_intents_features.cc | 6 ++++ @@ -22,7 +22,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html ...ag-to-disable-external-intent-requests.inc | 13 ++++++++ ...t-Delete-block-external-form-redirects.inc | 15 +++++++++ ...ag-to-disable-external-intent-requests.inc | 3 ++ - 12 files changed, 118 insertions(+), 2 deletions(-) + 12 files changed, 119 insertions(+), 3 deletions(-) create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sAllowExternalIntentRequests.java create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-flag-to-disable-external-intent-requests.grdp create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-flag-to-disable-external-intent-requests.inc @@ -32,7 +32,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -71,7 +71,12 @@ found in the LICENSE file. +@@ -65,7 +65,12 @@ found in the LICENSE file. android:title="@string/settings_incognito_tab_lock_title" android:summary="@string/settings_incognito_tab_lock_summary_android_setting_off" android:persistent="false" /> @@ -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; -@@ -155,6 +156,7 @@ public class CustomTabDelegateFactory implements TabDelegateFactory { +@@ -167,6 +168,7 @@ public class CustomTabDelegateFactory implements TabDelegateFactory { @Override public boolean shouldDisableAllExternalIntents() { @@ -68,7 +68,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java -@@ -26,6 +26,7 @@ import org.chromium.base.ResettersForTesting; +@@ -27,6 +27,7 @@ import org.chromium.base.ResettersForTesting; import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; import org.chromium.chrome.browser.ChromeTabbedActivity2; @@ -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; -@@ -134,7 +135,8 @@ public class ExternalNavigationDelegateImpl implements ExternalNavigationDelegat +@@ -135,7 +136,8 @@ public class ExternalNavigationDelegateImpl implements ExternalNavigationDelegat @Override public boolean shouldDisableExternalIntentRequestsForUrl( ExternalNavigationParams params, Intent intent) { @@ -85,6 +85,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/Ext + return !sAllowExternalIntentRequests.getInstance().isEnabled(); } + @Override +@@ -316,7 +318,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. +- && (DeviceInfo.isDesktop() || params.isInDesktopWindowingMode()); ++ && (params.isInDesktopWindowingMode()); + } + @Override diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sAllowExternalIntentRequests.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sAllowExternalIntentRequests.java new file mode 100644 @@ -141,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 -@@ -35,7 +35,13 @@ BASE_FEATURE(kExternalNavigationDebugLogs, base::FEATURE_DISABLED_BY_DEFAULT); +@@ -32,7 +32,13 @@ BASE_FEATURE(kExternalNavigationDebugLogs, base::FEATURE_DISABLED_BY_DEFAULT); BASE_FEATURE(kNavigationCaptureRefactorAndroid, base::FEATURE_DISABLED_BY_DEFAULT); @@ -152,7 +161,7 @@ diff --git a/components/external_intents/android/external_intents_features.cc b/ static jlong JNI_ExternalIntentsFeatures_GetFeature(JNIEnv* env, jint ordinal) { + if (ordinal == -1) + return reinterpret_cast(&kIntentBlockExternalFormRedirectsNoGesture); - return reinterpret_cast(kFeaturesExposedToJava[ordinal]); + 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 @@ -185,7 +194,7 @@ diff --git a/components/external_intents/android/java/src/org/chromium/component 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 -@@ -1726,6 +1726,12 @@ public class ExternalNavigationHandler { +@@ -1745,6 +1745,12 @@ public class ExternalNavigationHandler { return false; } @@ -198,7 +207,7 @@ diff --git a/components/external_intents/android/java/src/org/chromium/component private OverrideUrlLoadingResult shouldOverrideUrlLoadingInternal( ExternalNavigationParams params, Intent targetIntent, -@@ -1811,6 +1817,21 @@ public class ExternalNavigationHandler { +@@ -1832,6 +1838,21 @@ public class ExternalNavigationHandler { return OverrideUrlLoadingResult.forNoOverride(); } diff --git a/build/patches/Add-flag-to-disable-vibration.patch b/build/patches/Add-flag-to-disable-vibration.patch index e791b8c0..671bd105 100644 --- a/build/patches/Add-flag-to-disable-vibration.patch +++ b/build/patches/Add-flag-to-disable-vibration.patch @@ -78,7 +78,7 @@ diff --git a/third_party/blink/renderer/modules/vibration/vibration_controller.c // Maximum number of entries in a vibration pattern. const unsigned kVibrationPatternLengthMax = 99; -@@ -105,6 +106,8 @@ bool VibrationController::vibrate(Navigator& navigator, +@@ -108,6 +109,8 @@ bool VibrationController::vibrate(Navigator& navigator, // reference to |window| or |navigator| was retained in another window. if (!navigator.DomWindow()) return false; @@ -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 -@@ -1138,6 +1138,10 @@ +@@ -1142,6 +1142,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 732ce518..8796b19d 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 -@@ -734,7 +734,7 @@ config("compiler") { +@@ -736,7 +736,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" ] } } -@@ -1830,7 +1830,7 @@ config("clang_revision") { +@@ -1833,7 +1833,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 ] -@@ -2192,7 +2192,9 @@ config("default_warnings") { +@@ -2196,7 +2196,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", -@@ -2246,6 +2248,15 @@ config("default_warnings") { +@@ -2250,6 +2252,15 @@ config("default_warnings") { ldflags += [ "-Wno-version-check" ] } diff --git a/build/patches/Add-lifetime-options-for-permissions.patch b/build/patches/Add-lifetime-options-for-permissions.patch index 21b5d297..40993b93 100644 --- a/build/patches/Add-lifetime-options-for-permissions.patch +++ b/build/patches/Add-lifetime-options-for-permissions.patch @@ -194,7 +194,7 @@ diff --git a/chrome/browser/permissions/one_time_permissions_tracker.cc b/chrome diff --git a/chrome/browser/permissions/one_time_permissions_tracker.h b/chrome/browser/permissions/one_time_permissions_tracker.h --- a/chrome/browser/permissions/one_time_permissions_tracker.h +++ b/chrome/browser/permissions/one_time_permissions_tracker.h -@@ -12,6 +12,7 @@ +@@ -13,6 +13,7 @@ #include "base/timer/timer.h" #include "chrome/browser/permissions/one_time_permissions_tracker_observer.h" #include "components/content_settings/core/common/content_settings_pattern.h" @@ -202,7 +202,7 @@ diff --git a/chrome/browser/permissions/one_time_permissions_tracker.h b/chrome/ #include "components/content_settings/core/common/content_settings_types.h" #include "components/keyed_service/core/keyed_service.h" #include "content/public/browser/visibility.h" -@@ -26,7 +27,7 @@ class OneTimePermissionsTracker : public KeyedService { +@@ -27,7 +28,7 @@ class OneTimePermissionsTracker : public KeyedService { void (OneTimePermissionsTracker::*)(const url::Origin&); public: @@ -211,7 +211,7 @@ diff --git a/chrome/browser/permissions/one_time_permissions_tracker.h b/chrome/ ~OneTimePermissionsTracker() override; OneTimePermissionsTracker(const OneTimePermissionsTracker&) = delete; -@@ -147,7 +148,7 @@ class OneTimePermissionsTracker : public KeyedService { +@@ -148,7 +149,7 @@ class OneTimePermissionsTracker : public KeyedService { base::ObserverList observer_list_; std::map origin_tracker_; @@ -257,7 +257,7 @@ diff --git a/chrome/browser/ui/views/permissions/exclusive_access_permission_pro diff --git a/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc b/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc --- a/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc +++ b/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc -@@ -294,7 +294,7 @@ void PermissionPromptBubbleBaseView::RunButtonCallback(int button_id) { +@@ -295,7 +295,7 @@ void PermissionPromptBubbleBaseView::RunButtonCallback(int button_id) { delegate_->Accept(); return; case PermissionDialogButton::kAcceptOnce: @@ -269,7 +269,7 @@ diff --git a/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_v diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java -@@ -715,6 +715,11 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -721,6 +721,11 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment } @RequiresNonNull({"mSite"}) @@ -281,7 +281,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c private void setUpClearDataPreference() { ClearWebsiteStorage preference = findPreference(PREF_CLEAR_DATA); long usage = mSite.getTotalUsage(); -@@ -1407,6 +1412,10 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1398,6 +1403,10 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment .getDefaultColor()); } } @@ -295,7 +295,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c 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 -@@ -242,7 +242,7 @@ void GetOrigins(JNIEnv* env, +@@ -241,7 +241,7 @@ void GetOrigins(JNIEnv* env, seen_origins.push_back(origin); insertionFunc(env, static_cast(content_type), list, ConvertOriginToJavaString(env, origin), jembedder, @@ -307,7 +307,7 @@ diff --git a/components/browser_ui/site_settings/android/website_preference_brid 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 -@@ -652,6 +652,11 @@ +@@ -626,6 +626,11 @@ URL truncated @@ -425,7 +425,7 @@ diff --git a/components/content_settings/core/common/content_settings_enums.mojo diff --git a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java --- a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java +++ b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java -@@ -387,9 +387,9 @@ public class PageInfoController +@@ -384,9 +384,9 @@ public class PageInfoController */ @CalledByNative private void addPermissionSection( @@ -483,16 +483,16 @@ diff --git a/components/page_info/android/java/src/org/chromium/components/page_ diff --git a/components/page_info/android/page_info_controller_android.cc b/components/page_info/android/page_info_controller_android.cc --- a/components/page_info/android/page_info_controller_android.cc +++ b/components/page_info/android/page_info_controller_android.cc -@@ -214,6 +214,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( - // being requested. This is needed for the Loud Clapper experiment - // (crbug.com/458351800). +@@ -221,6 +221,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( + // being requested. This is needed for the Clapper experiment + // (crbug.com/458351800) and (crbug.com/463333225). bool requested_notifications = false; + std::map + user_specified_settings_is_user_session; for (const auto& permission : permission_info_list) { if (base::Contains(permissions_to_display, permission.type)) { -@@ -226,6 +228,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( +@@ -233,6 +235,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( user_specified_settings_to_display[permission.type] = info->delegate().IsAnyPermissionAllowed(*setting_to_display); @@ -501,7 +501,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp } // Notifications permission can have the setting to display as DEFAULT -@@ -252,7 +256,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( +@@ -259,7 +263,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( ConvertUTF16ToJavaString(env, setting_title_mid_sentence), static_cast(permission), user_specified_settings_to_display[permission], @@ -511,7 +511,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp } } -@@ -265,7 +270,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( +@@ -272,7 +277,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( env, controller_jobject_, ConvertUTF16ToJavaString(env, object_title), ConvertUTF16ToJavaString(env, object_title), static_cast(chosen_object->ui_info->content_settings_type), @@ -524,7 +524,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.cc --- a/components/page_info/page_info.cc +++ b/components/page_info/page_info.cc -@@ -1296,6 +1296,8 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, +@@ -1294,6 +1294,8 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, permission_info.is_one_time = (info.metadata.session_model() == content_settings::mojom::SessionModel::ONE_TIME); @@ -536,7 +536,7 @@ diff --git a/components/page_info/page_info.cc b/components/page_info/page_info. diff --git a/components/page_info/page_info.h b/components/page_info/page_info.h --- a/components/page_info/page_info.h +++ b/components/page_info/page_info.h -@@ -151,6 +151,7 @@ class PageInfo : private content_settings::CookieControlsObserver, +@@ -150,6 +150,7 @@ class PageInfo : private content_settings::CookieControlsObserver, content_settings::SettingSource::kNone; // Whether the permission is a one-time grant. bool is_one_time = false; @@ -699,7 +699,7 @@ diff --git a/components/permissions/android/permission_prompt/embedded_permissio +++ b/components/permissions/android/permission_prompt/embedded_permission_prompt_android.h @@ -45,7 +45,7 @@ class EmbeddedPermissionPromptAndroid : public PermissionPromptAndroid { const override; - void Closing() override; + void Dismiss() override; void Accept() override; - void AcceptThisTime() override; + void AcceptThisTime(content_settings::mojom::LifetimeMode lifetimeOption) override; @@ -791,14 +791,15 @@ diff --git a/components/permissions/android/permission_prompt/permission_prompt_ diff --git a/components/permissions/android/permission_prompt/permission_prompt_android.h b/components/permissions/android/permission_prompt/permission_prompt_android.h --- a/components/permissions/android/permission_prompt/permission_prompt_android.h +++ b/components/permissions/android/permission_prompt/permission_prompt_android.h -@@ -57,9 +57,10 @@ class PermissionPromptAndroid : public PermissionPrompt { +@@ -57,10 +57,11 @@ class PermissionPromptAndroid : public PermissionPrompt { const; - virtual void Closing(); + virtual void Dismiss(); virtual void Accept(); - virtual void AcceptThisTime(); + virtual void AcceptThisTime(content_settings::mojom::LifetimeMode lifetimeOption); virtual void Acknowledge() {} virtual void Deny(); + virtual void Ignore(); + virtual void DenyThisTime(content_settings::mojom::LifetimeMode lifetimeOption); virtual void Resumed() {} virtual void SystemSettingsShown() {} @@ -962,7 +963,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr diff --git a/components/permissions/embedded_permission_prompt_flow_model.cc b/components/permissions/embedded_permission_prompt_flow_model.cc --- a/components/permissions/embedded_permission_prompt_flow_model.cc +++ b/components/permissions/embedded_permission_prompt_flow_model.cc -@@ -294,7 +294,7 @@ void EmbeddedPermissionPromptFlowModel::SetDelegateAction( +@@ -293,7 +293,7 @@ void EmbeddedPermissionPromptFlowModel::SetDelegateAction( delegate_->Accept(); break; case DelegateAction::kAllowThisTime: @@ -992,7 +993,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm bool PermissionContextBase::UsesAutomaticEmbargo() const { return true; } -@@ -624,7 +635,8 @@ void PermissionContextBase::DecidePermission( +@@ -627,7 +638,8 @@ void PermissionContextBase::DecidePermission( void PermissionContextBase::PermissionDecided( PermissionDecision decision, bool is_final_decision, @@ -1002,7 +1003,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm UserMadePermissionDecision(request_data.id, request_data.requesting_origin, request_data.embedding_origin, decision); // If a permission request originates from an embedded element, its -@@ -648,11 +660,12 @@ void PermissionContextBase::PermissionDecided( +@@ -651,11 +663,12 @@ void PermissionContextBase::PermissionDecided( // missing if a permission prompt was preignored and we already notified an // origin about it. if (request->second.second) { @@ -1019,7 +1020,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm } } -@@ -737,6 +750,30 @@ void PermissionContextBase::NotifyPermissionSet( +@@ -740,6 +753,30 @@ void PermissionContextBase::NotifyPermissionSet( bool persist, PermissionDecision decision, bool is_final_decision) { @@ -1050,7 +1051,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm DCHECK_CURRENTLY_ON(content::BrowserThread::UI); // Note that rfh may be null, see crbug.com/426909787. -@@ -752,8 +789,8 @@ void PermissionContextBase::NotifyPermissionSet( +@@ -755,8 +792,8 @@ void PermissionContextBase::NotifyPermissionSet( if (persist) { // Clone new value, because we need it again for the callback. @@ -1061,7 +1062,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm } if (is_final_decision) { -@@ -811,6 +848,17 @@ void PermissionContextBase::UpdateSetting( +@@ -814,6 +851,17 @@ void PermissionContextBase::UpdateSetting( const PermissionRequestData& request_data, PermissionSetting setting, bool is_one_time) { @@ -1079,7 +1080,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm DCHECK_EQ(request_data.requesting_origin, request_data.requesting_origin.DeprecatedGetOriginAsURL()); DCHECK_EQ(request_data.embedding_origin, -@@ -820,6 +868,8 @@ void PermissionContextBase::UpdateSetting( +@@ -823,6 +871,8 @@ void PermissionContextBase::UpdateSetting( constraints.set_session_model( is_one_time ? content_settings::mojom::SessionModel::ONE_TIME : content_settings::mojom::SessionModel::DURABLE); @@ -1091,7 +1092,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm diff --git a/components/permissions/permission_context_base.h b/components/permissions/permission_context_base.h --- a/components/permissions/permission_context_base.h +++ b/components/permissions/permission_context_base.h -@@ -198,6 +198,18 @@ class PermissionContextBase : public content_settings::Observer { +@@ -203,6 +203,18 @@ class PermissionContextBase : public content_settings::Observer { // Updates stored setting if persist is set, updates tab indicators // and runs the callback to finish the request. @@ -1110,7 +1111,7 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi virtual void NotifyPermissionSet(const PermissionRequestData& request_data, BrowserPermissionCallback callback, bool persist, -@@ -214,6 +226,11 @@ class PermissionContextBase : public content_settings::Observer { +@@ -219,6 +231,11 @@ class PermissionContextBase : public content_settings::Observer { // Store the decided permission state. Virtual since the permission might be // stored with different restrictions (for example for desktop notifications). @@ -1122,7 +1123,7 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi virtual void UpdateSetting(const PermissionRequestData& request_data, PermissionSetting setting, bool is_one_time); -@@ -243,6 +260,12 @@ class PermissionContextBase : public content_settings::Observer { +@@ -248,6 +265,12 @@ class PermissionContextBase : public content_settings::Observer { PermissionRequest::PermissionDecidedCallback permission_decided_callback, base::OnceClosure request_finished_callback) const; @@ -1135,7 +1136,7 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi // Implementors can override this method to avoid using automatic embargo. virtual bool UsesAutomaticEmbargo() const; -@@ -285,7 +308,8 @@ class PermissionContextBase : public content_settings::Observer { +@@ -292,7 +315,8 @@ class PermissionContextBase : public content_settings::Observer { // allows/blocks/dismisses a permission prompt. void PermissionDecided(PermissionDecision decision, bool is_final_decision, @@ -1179,7 +1180,7 @@ diff --git a/components/permissions/permission_request.cc b/components/permissio PermissionRequest::~PermissionRequest() { std::move(request_finished_callback_).Run(); } -@@ -433,20 +443,40 @@ bool PermissionRequest::ShouldUseTwoOriginPrompt() const { +@@ -445,20 +455,40 @@ bool PermissionRequest::ShouldUseTwoOriginPrompt() const { return request_type() == RequestType::kStorageAccess; } @@ -1225,7 +1226,7 @@ diff --git a/components/permissions/permission_request.cc b/components/permissio diff --git a/components/permissions/permission_request.h b/components/permissions/permission_request.h --- a/components/permissions/permission_request.h +++ b/components/permissions/permission_request.h -@@ -52,6 +52,12 @@ class PermissionRequest { +@@ -53,6 +53,12 @@ class PermissionRequest { bool /*is_final_decision*/, const PermissionRequestData& /*request_data*/)>; @@ -1238,7 +1239,7 @@ diff --git a/components/permissions/permission_request.h b/components/permission // `permission_decided_callback` is called when the permission request is // resolved by the user (see comment on PermissionDecidedCallback above). // `request_finished_callback` is called when the permission request is being -@@ -66,6 +72,11 @@ class PermissionRequest { +@@ -67,6 +73,11 @@ class PermissionRequest { base::OnceClosure request_finished_callback = base::DoNothing(), bool uses_automatic_embargo = true); @@ -1250,7 +1251,7 @@ diff --git a/components/permissions/permission_request.h b/components/permission PermissionRequest(const PermissionRequest&) = delete; PermissionRequest& operator=(const PermissionRequest&) = delete; -@@ -180,10 +191,10 @@ class PermissionRequest { +@@ -181,10 +192,10 @@ class PermissionRequest { // If |is_one_time| is true the permission will last until all tabs of // |origin| are closed or navigated away from, and then the permission will // automatically expire after 1 day. @@ -1263,7 +1264,7 @@ diff --git a/components/permissions/permission_request.h b/components/permission // Called when the user has cancelled the permission request. This // corresponds to a denial, but is segregated in case the context needs to -@@ -247,6 +258,9 @@ class PermissionRequest { +@@ -254,6 +265,9 @@ class PermissionRequest { // Called once a decision is made about the permission. PermissionDecidedCallback permission_decided_callback_; @@ -1303,7 +1304,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p } return; } -@@ -615,7 +615,8 @@ void PermissionRequestManager::Accept() { +@@ -619,7 +619,8 @@ void PermissionRequestManager::Accept() { StorePermissionActionForUMA(request->requesting_origin(), request->request_type(), action); PermissionGrantedIncludingDuplicates(request.get(), @@ -1313,7 +1314,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p #if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_IOS) std::optional content_settings_type = -@@ -633,7 +634,7 @@ void PermissionRequestManager::Accept() { +@@ -637,7 +638,7 @@ void PermissionRequestManager::Accept() { CurrentRequestsDecided(action); } @@ -1322,7 +1323,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p if (ignore_callbacks_from_prompt_) { return; } -@@ -645,7 +646,8 @@ void PermissionRequestManager::AcceptThisTime() { +@@ -649,7 +650,8 @@ void PermissionRequestManager::AcceptThisTime() { StorePermissionActionForUMA(request->requesting_origin(), request->request_type(), action); PermissionGrantedIncludingDuplicates(request.get(), @@ -1332,7 +1333,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p } NotifyRequestDecided(action); -@@ -653,6 +655,15 @@ void PermissionRequestManager::AcceptThisTime() { +@@ -657,6 +659,15 @@ void PermissionRequestManager::AcceptThisTime() { } void PermissionRequestManager::Deny() { @@ -1348,7 +1349,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p if (ignore_callbacks_from_prompt_) { return; } -@@ -673,7 +684,7 @@ void PermissionRequestManager::Deny() { +@@ -677,7 +688,7 @@ void PermissionRequestManager::Deny() { for (const auto& request : requests_) { StorePermissionActionForUMA(request->requesting_origin(), request->request_type(), action); @@ -1357,7 +1358,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p } NotifyRequestDecided(action); -@@ -1366,32 +1377,32 @@ PermissionRequestManager::VisitDuplicateRequests( +@@ -1370,32 +1381,32 @@ PermissionRequestManager::VisitDuplicateRequests( void PermissionRequestManager::PermissionGrantedIncludingDuplicates( PermissionRequest* request, @@ -1400,7 +1401,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p request); } -@@ -1679,7 +1690,7 @@ void PermissionRequestManager::DoAutoResponseForTesting() { +@@ -1683,7 +1694,7 @@ void PermissionRequestManager::DoAutoResponseForTesting() { } switch (auto_response_for_test_) { case ACCEPT_ONCE: diff --git a/build/patches/Add-menu-item-to-bookmark-all-tabs.patch b/build/patches/Add-menu-item-to-bookmark-all-tabs.patch index 61c2190f..96f5e8ae 100644 --- a/build/patches/Add-menu-item-to-bookmark-all-tabs.patch +++ b/build/patches/Add-menu-item-to-bookmark-all-tabs.patch @@ -47,7 +47,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 -@@ -100,6 +100,7 @@ import org.chromium.chrome.browser.bookmarks.BookmarkPane; +@@ -109,6 +109,7 @@ import org.chromium.chrome.browser.bookmarks.BookmarkPane; import org.chromium.chrome.browser.bookmarks.BookmarkUtils; import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.compositor.CompositorViewHolder; @@ -55,7 +55,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.chrome.browser.compositor.layouts.Layout; import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChrome; import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromePhone; -@@ -299,6 +300,9 @@ import org.chromium.chrome.browser.ui.appmenu.AppMenuPropertiesDelegate; +@@ -309,6 +310,9 @@ import org.chromium.chrome.browser.ui.appmenu.AppMenuPropertiesDelegate; import org.chromium.chrome.browser.ui.browser_window.BrowserWindowType; import org.chromium.chrome.browser.ui.desktop_windowing.AppHeaderUtils; import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeUtils; @@ -65,7 +65,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityClient; import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityExtras.IntentOrigin; import org.chromium.chrome.browser.ui.signin.BottomSheetSigninAndHistorySyncConfig; -@@ -314,6 +318,8 @@ import org.chromium.chrome.browser.util.ChromeAccessibilityUtil; +@@ -325,6 +329,8 @@ import org.chromium.chrome.browser.util.ChromeAccessibilityUtil; import org.chromium.chrome.browser.xr.scenecore.XrSceneCoreSessionInitializerImpl; import org.chromium.chrome.browser.xr.scenecore.XrSceneCoreSessionManagerImpl; import org.chromium.components.browser_ui.accessibility.AccessibilityFeatureMap; @@ -74,7 +74,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; import org.chromium.components.browser_ui.share.ShareParams; import org.chromium.components.browser_ui.util.BrowserControlsVisibilityDelegate; -@@ -3929,6 +3935,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt +@@ -3906,6 +3912,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt CloseAllTabsDialog.show( this, getModalDialogManagerSupplier(), tabModelSelector, closeAllTabsRunnable); RecordUserAction.record("MobileMenuCloseAllTabs"); @@ -83,7 +83,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct } else if (id == R.id.close_all_incognito_tabs_menu_id) { boolean allowUndo = TabClosureParamsUtils.shouldAllowUndo(triggeringMotion); -@@ -4058,6 +4066,41 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt +@@ -4038,6 +4046,41 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt getTabModalLifetimeHandler().onOmniboxFocusChanged(hasFocus); } @@ -128,7 +128,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct 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 -@@ -292,6 +292,14 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm +@@ -294,6 +294,14 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm // Bookmarks modelList.add(buildBookmarksItem()); @@ -143,8 +143,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab // Recent Tabs if (shouldShowRecentTabsItem()) modelList.add(buildRecentTabsItem()); -@@ -478,6 +486,13 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm - } +@@ -479,6 +487,13 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm + modelList.add(buildNewTabGroupItem()); modelList.add(buildCloseAllTabsItem()); if (shouldShowTinkerTank()) modelList.add(buildTinkerTankItem()); + // Add bookmark all item @@ -160,14 +160,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browser/bookmarks/android/bookmark_bridge.cc --- a/chrome/browser/bookmarks/android/bookmark_bridge.cc +++ b/chrome/browser/bookmarks/android/bookmark_bridge.cc -@@ -336,6 +336,33 @@ jboolean BookmarkBridge::AreAccountBookmarkFoldersActive(JNIEnv* env) { +@@ -337,6 +337,33 @@ bool BookmarkBridge::AreAccountBookmarkFoldersActive(JNIEnv* env) { return bookmark_model_->account_mobile_node() != nullptr; } +base::android::ScopedJavaLocalRef +BookmarkBridge::GetBookmarkIdForTabsCollection( + JNIEnv* env, -+ const JavaParamRef& url) { ++ const JavaRef& url) { + DCHECK_CURRENTLY_ON(BrowserThread::UI); + + GURL gurl = url::GURLAndroid::ToNativeGURL(env, url); @@ -194,7 +194,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse base::android::ScopedJavaLocalRef BookmarkBridge::GetMostRecentlyAddedUserBookmarkIdForUrl(JNIEnv* env, const GURL& url) { -@@ -448,6 +475,7 @@ void BookmarkBridge::GetAllFoldersWithDepths( +@@ -449,6 +476,7 @@ void BookmarkBridge::GetAllFoldersWithDepths( // Vector to temporarily contain all child bookmarks at same level for sorting std::vector bookmarks = { bookmark_model_->mobile_node(), @@ -202,7 +202,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse bookmark_model_->bookmark_bar_node(), bookmark_model_->other_node(), }; -@@ -556,6 +584,9 @@ std::vector BookmarkBridge::GetTopLevelFolderIdsImpl( +@@ -557,6 +585,9 @@ std::vector BookmarkBridge::GetTopLevelFolderIdsImpl( top_level_folders.push_back(other_node); } @@ -218,7 +218,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse +ScopedJavaLocalRef BookmarkBridge::GetTabsCollectionFolderId( + JNIEnv* env, -+ const JavaParamRef& obj) { ++ const JavaRef& obj) { + DCHECK_CURRENTLY_ON(BrowserThread::UI); + const BookmarkNode* tabs_collection_node = bookmark_model_->tabs_collection_node(); + ScopedJavaLocalRef folder_id_obj = @@ -229,32 +229,32 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse + ScopedJavaLocalRef BookmarkBridge::AddFolder( JNIEnv* env, - const JavaParamRef& j_parent_id_obj, + const JavaRef& j_parent_id_obj, diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser/bookmarks/android/bookmark_bridge.h --- a/chrome/browser/bookmarks/android/bookmark_bridge.h +++ b/chrome/browser/bookmarks/android/bookmark_bridge.h -@@ -106,6 +106,10 @@ class BookmarkBridge : public ProfileObserver, +@@ -105,6 +105,10 @@ class BookmarkBridge : public ProfileObserver, - jboolean AreAccountBookmarkFoldersActive(JNIEnv* env); + bool AreAccountBookmarkFoldersActive(JNIEnv* env); + base::android::ScopedJavaLocalRef GetBookmarkIdForTabsCollection( + JNIEnv* env, -+ const base::android::JavaParamRef& url); ++ const base::android::JavaRef& url); + base::android::ScopedJavaLocalRef GetMostRecentlyAddedUserBookmarkIdForUrl(JNIEnv* env, const GURL& url); const bookmarks::BookmarkNode* GetMostRecentlyAddedUserBookmarkIdForUrlImpl( -@@ -245,6 +249,10 @@ class BookmarkBridge : public ProfileObserver, - const base::android::JavaParamRef& j_list, +@@ -240,6 +244,10 @@ class BookmarkBridge : public ProfileObserver, + const base::android::JavaRef& j_list, jint type); + base::android::ScopedJavaLocalRef GetTabsCollectionFolderId( + JNIEnv* env, -+ const base::android::JavaParamRef& obj); ++ const base::android::JavaRef& obj); + base::android::ScopedJavaLocalRef AddFolder( JNIEnv* env, - const base::android::JavaParamRef& j_parent_id_obj, + const base::android::JavaRef& j_parent_id_obj, diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java --- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java +++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java @@ -460,7 +460,7 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -4562,6 +4562,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4585,6 +4585,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d Select tabs @@ -520,7 +520,7 @@ diff --git a/components/bookmark_bar_strings.grdp b/components/bookmark_bar_stri diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmarks/browser/bookmark_codec.cc --- a/components/bookmarks/browser/bookmark_codec.cc +++ b/components/bookmarks/browser/bookmark_codec.cc -@@ -39,6 +39,7 @@ const char BookmarkCodec::kBookmarkBarFolderNameKey[] = "bookmark_bar"; +@@ -38,6 +38,7 @@ const char BookmarkCodec::kBookmarkBarFolderNameKey[] = "bookmark_bar"; const char BookmarkCodec::kOtherBookmarkFolderNameKey[] = "other"; // The value is left as 'synced' for historical reasons. const char BookmarkCodec::kMobileBookmarkFolderNameKey[] = "synced"; @@ -528,7 +528,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar const char BookmarkCodec::kVersionKey[] = "version"; const char BookmarkCodec::kChecksumKey[] = "checksum"; const char BookmarkCodec::kChecksumSHA256Key[] = "checksum_sha256"; -@@ -99,6 +100,7 @@ base::Value::Dict BookmarkCodec::Encode( +@@ -98,6 +99,7 @@ base::Value::Dict BookmarkCodec::Encode( const BookmarkNode* bookmark_bar_node, const BookmarkNode* other_folder_node, const BookmarkNode* mobile_folder_node, @@ -536,7 +536,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar std::string sync_metadata_str) { ids_reassigned_ = false; uuids_reassigned_ = false; -@@ -124,6 +126,8 @@ base::Value::Dict BookmarkCodec::Encode( +@@ -123,6 +125,8 @@ base::Value::Dict BookmarkCodec::Encode( roots.Set(kBookmarkBarFolderNameKey, EncodeNode(bookmark_bar_node)); roots.Set(kOtherBookmarkFolderNameKey, EncodeNode(other_folder_node)); roots.Set(kMobileBookmarkFolderNameKey, EncodeNode(mobile_folder_node)); @@ -545,7 +545,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar } else { // No permanent node should have been provided. CHECK(!other_folder_node); -@@ -144,6 +148,7 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value, +@@ -143,6 +147,7 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value, BookmarkNode* bb_node, BookmarkNode* other_folder_node, BookmarkNode* mobile_folder_node, @@ -553,7 +553,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar int64_t* max_id, std::string* sync_metadata_str) { if (sync_metadata_str) { -@@ -156,13 +161,15 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value, +@@ -155,13 +160,15 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value, base::Uuid::ParseLowercase(kBookmarkBarNodeUuid), base::Uuid::ParseLowercase(kOtherBookmarksNodeUuid), base::Uuid::ParseLowercase(kMobileBookmarksNodeUuid), @@ -570,7 +570,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar value, sync_metadata_str); ReassignIDsIfRequired(); -@@ -220,6 +227,7 @@ base::Value::Dict BookmarkCodec::EncodeMetaInfo( +@@ -219,6 +226,7 @@ base::Value::Dict BookmarkCodec::EncodeMetaInfo( bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node, BookmarkNode* other_folder_node, BookmarkNode* mobile_folder_node, @@ -578,7 +578,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar const base::Value::Dict& value, std::string* sync_metadata_str) { std::optional version = value.FindInt(kVersionKey); -@@ -243,6 +251,8 @@ bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node, +@@ -242,6 +250,8 @@ bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node, roots->FindDict(kOtherBookmarkFolderNameKey); const base::Value::Dict* mobile_folder_value = roots->FindDict(kMobileBookmarkFolderNameKey); @@ -587,7 +587,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar if (!bb_value || !other_folder_value || !mobile_folder_value) return false; -@@ -250,6 +260,8 @@ bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node, +@@ -249,6 +259,8 @@ bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node, DecodeNode(*bb_value, nullptr, bb_node); DecodeNode(*other_folder_value, nullptr, other_folder_node); DecodeNode(*mobile_folder_value, nullptr, mobile_folder_node); @@ -634,7 +634,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmark diff --git a/components/bookmarks/browser/bookmark_load_details.cc b/components/bookmarks/browser/bookmark_load_details.cc --- a/components/bookmarks/browser/bookmark_load_details.cc +++ b/components/bookmarks/browser/bookmark_load_details.cc -@@ -16,7 +16,7 @@ namespace { +@@ -17,7 +17,7 @@ namespace { // Number of top-level permanent folders excluding the managed node and account // bookmarks. @@ -643,7 +643,7 @@ diff --git a/components/bookmarks/browser/bookmark_load_details.cc b/components/ void UpdateUserFolderStatsRecursively(const BookmarkNode& node, bool top_level, -@@ -63,6 +63,9 @@ BookmarkLoadDetails::BookmarkLoadDetails() +@@ -64,6 +64,9 @@ BookmarkLoadDetails::BookmarkLoadDetails() mobile_folder_node_ = static_cast( root_node_->Add(BookmarkPermanentNode::CreateMobileBookmarks( /*id=*/0, /*is_account_node=*/false))); @@ -653,7 +653,7 @@ diff --git a/components/bookmarks/browser/bookmark_load_details.cc b/components/ // Set the nodes' `date_added` to the same time so that there is no inherent // hierarchy in terms of their added time between them. This is relevant for -@@ -119,6 +122,10 @@ void BookmarkLoadDetails::PopulateNodeIdsForLocalOrSyncablePermanentNodes() { +@@ -120,6 +123,10 @@ void BookmarkLoadDetails::PopulateNodeIdsForLocalOrSyncablePermanentNodes() { if (mobile_folder_node_->id() == 0) { mobile_folder_node_->set_id(max_id_++); } @@ -664,7 +664,7 @@ diff --git a/components/bookmarks/browser/bookmark_load_details.cc b/components/ } void BookmarkLoadDetails::AddManagedNode( -@@ -131,6 +138,7 @@ void BookmarkLoadDetails::AddManagedNode( +@@ -132,6 +139,7 @@ void BookmarkLoadDetails::AddManagedNode( CHECK_NE(bb_node_->id(), 0); CHECK_NE(other_folder_node_->id(), 0); CHECK_NE(mobile_folder_node_->id(), 0); @@ -672,7 +672,7 @@ diff --git a/components/bookmarks/browser/bookmark_load_details.cc b/components/ has_managed_node_ = true; root_node_->Add(std::move(managed_node)); -@@ -138,8 +146,8 @@ void BookmarkLoadDetails::AddManagedNode( +@@ -139,8 +147,8 @@ void BookmarkLoadDetails::AddManagedNode( void BookmarkLoadDetails::CreateIndices() { local_or_syncable_uuid_index_.insert(root_node_.get()); @@ -683,7 +683,7 @@ diff --git a/components/bookmarks/browser/bookmark_load_details.cc b/components/ for (const auto& child : root_node_->children()) { if (child.get() == account_bb_node_ || child.get() == account_other_folder_node_ || -@@ -158,6 +166,7 @@ void BookmarkLoadDetails::ResetPermanentNodePointers() { +@@ -159,6 +167,7 @@ void BookmarkLoadDetails::ResetPermanentNodePointers() { bb_node_ = nullptr; other_folder_node_ = nullptr; mobile_folder_node_ = nullptr; @@ -713,7 +713,7 @@ diff --git a/components/bookmarks/browser/bookmark_load_details.h b/components/b diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmarks/browser/bookmark_model.cc --- a/components/bookmarks/browser/bookmark_model.cc +++ b/components/bookmarks/browser/bookmark_model.cc -@@ -908,7 +908,7 @@ bool BookmarkModel::HasUserCreatedBookmarksOrFolders() const { +@@ -907,7 +907,7 @@ bool BookmarkModel::HasUserCreatedBookmarksOrFolders() const { (account_bookmark_bar_node_ && !account_bookmark_bar_node_->children().empty()) || (account_other_node_ && !account_other_node_->children().empty()) || @@ -722,7 +722,7 @@ diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmar } bool BookmarkModel::IsBookmarked(const GURL& url) const { -@@ -1240,6 +1240,7 @@ void BookmarkModel::DoneLoading(std::unique_ptr details) { +@@ -1239,6 +1239,7 @@ void BookmarkModel::DoneLoading(std::unique_ptr details) { bookmark_bar_node_ = details->bb_node(); other_node_ = details->other_folder_node(); mobile_node_ = details->mobile_folder_node(); @@ -733,7 +733,7 @@ diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmar diff --git a/components/bookmarks/browser/bookmark_model.h b/components/bookmarks/browser/bookmark_model.h --- a/components/bookmarks/browser/bookmark_model.h +++ b/components/bookmarks/browser/bookmark_model.h -@@ -150,6 +150,12 @@ class BookmarkModel : public BookmarkUndoProvider, +@@ -149,6 +149,12 @@ class BookmarkModel : public BookmarkUndoProvider, // bookmarks in the account storage). const BookmarkPermanentNode* account_mobile_node() const; @@ -746,7 +746,7 @@ diff --git a/components/bookmarks/browser/bookmark_model.h b/components/bookmark bool is_root_node(const BookmarkNode* node) const { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); return node == root_; -@@ -628,6 +634,7 @@ class BookmarkModel : public BookmarkUndoProvider, +@@ -627,6 +633,7 @@ class BookmarkModel : public BookmarkUndoProvider, raw_ptr account_bookmark_bar_node_ = nullptr; raw_ptr account_other_node_ = nullptr; raw_ptr account_mobile_node_ = nullptr; diff --git a/build/patches/Add-menu-item-to-view-source.patch b/build/patches/Add-menu-item-to-view-source.patch index b5ec9ffe..8c051b39 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 -@@ -3965,6 +3965,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt +@@ -3942,6 +3942,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_DOWNLOADS_MANAGER); } RecordUserAction.record("MobileMenuDownloadManager"); @@ -35,11 +35,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct + currentTab.getWebContents().getNavigationController().loadUrl(new LoadUrlParams("view-source:"+currentTab.getUrl().getSpec())); } else if (id == R.id.open_recently_closed_tab) { TabModel currentModel = mTabModelSelector.getCurrentModel(); - if (!currentModel.isIncognito()) currentModel.openMostRecentlyClosedEntry(); + if (!currentModel.isIncognito()) { 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 -@@ -2797,6 +2797,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -2818,6 +2818,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity return doOpenWebApk(currentTab); } @@ -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 -@@ -1024,6 +1024,30 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties +@@ -1031,6 +1031,30 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties return false; } @@ -88,7 +88,7 @@ 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 -@@ -406,6 +406,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat +@@ -401,6 +401,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat modelList.add(buildAddToHomescreenListItem(currentTab, false)); } @@ -101,7 +101,7 @@ 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 -@@ -370,6 +370,9 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm +@@ -373,6 +373,9 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm modelList.add(buildAddToHomescreenListItem(currentTab, shouldShowIconBeforeItem())); } @@ -114,7 +114,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab 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 -@@ -339,6 +339,10 @@ CHAR_LIMIT guidelines: +@@ -342,6 +342,10 @@ CHAR_LIMIT guidelines: Chrome Tips diff --git a/build/patches/Add-option-to-disable-snapshots.patch b/build/patches/Add-option-to-disable-snapshots.patch index cd6a4d18..55b665f4 100644 --- a/build/patches/Add-option-to-disable-snapshots.patch +++ b/build/patches/Add-option-to-disable-snapshots.patch @@ -69,7 +69,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -67,6 +67,11 @@ found in the LICENSE file. +@@ -61,6 +61,11 @@ found in the LICENSE file. android:title="@string/open_external_links_incognito_title" android:summary="@string/open_external_links_incognito_summary" android:defaultValue="false" /> @@ -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 -@@ -158,6 +158,7 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; +@@ -162,6 +162,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; -@@ -679,7 +680,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -691,7 +692,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity new TabContentManager( this, mBrowserControlsManagerSupplier.get(), @@ -113,7 +113,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import org.chromium.base.supplier.ObservableSupplier; import org.chromium.base.supplier.ObservableSupplierImpl; import org.chromium.build.annotations.NullMarked; -@@ -99,13 +100,27 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; +@@ -102,13 +103,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,10 +142,10 @@ 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"; -@@ -201,6 +216,21 @@ public class PrivacySettings extends ChromeBaseSettingsFragment - } +@@ -193,6 +208,21 @@ public class PrivacySettings extends ChromeBaseSettingsFragment + if (shouldHideSandboxPref(privacySandboxBridge)) { + getPreferenceScreen().removePreference(sandboxPreference); } - + mSnackbar = Snackbar.make(getActivity().getString(R.string.ui_relaunch_notice), + new SnackbarManager.SnackbarController() { + @Override @@ -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( -@@ -433,6 +463,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -448,6 +478,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) { -@@ -479,6 +510,13 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -494,6 +525,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; } -@@ -529,6 +567,10 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -544,6 +582,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 -@@ -6506,6 +6506,14 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -6543,6 +6543,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-force-tablet-UI.patch b/build/patches/Add-option-to-force-tablet-UI.patch index 0077d13e..5baa83ec 100644 --- a/build/patches/Add-option-to-force-tablet-UI.patch +++ b/build/patches/Add-option-to-force-tablet-UI.patch @@ -98,7 +98,7 @@ diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java -@@ -63,6 +63,7 @@ import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeController; +@@ -66,6 +66,7 @@ import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeController; import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeControllerCreator; import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeFieldTrialImpl; import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeUtils; @@ -106,7 +106,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCo import org.chromium.chrome.browser.ui.edge_to_edge.SimpleEdgeToEdgeController; import org.chromium.components.browser_ui.styles.SemanticColorUtils; import org.chromium.components.browser_ui.util.AutomotiveUtils; -@@ -145,6 +146,8 @@ public class ChromeBaseAppCompatActivity extends AppCompatActivity +@@ -155,6 +156,8 @@ public class ChromeBaseAppCompatActivity extends AppCompatActivity protected void attachBaseContext(Context newBase) { super.attachBaseContext(newBase); @@ -171,7 +171,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s 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 -@@ -830,7 +830,10 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -842,7 +842,10 @@ public abstract class ChromeActivity extends AsyncInitializationActivity // Inflate the correct toolbar layout for the device. int toolbarLayoutId = getToolbarLayoutId(); if (toolbarLayoutId != ActivityUtils.NO_RESOURCE_ID && controlContainer != null) { @@ -186,7 +186,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/overlays/strip/StripLayoutHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java -@@ -137,6 +137,7 @@ import org.chromium.components.tab_group_sync.TabGroupSyncService; +@@ -141,6 +141,7 @@ import org.chromium.components.tab_group_sync.TabGroupSyncService; import org.chromium.components.tab_group_sync.TriggerSource; import org.chromium.components.tab_groups.TabGroupColorId; import org.chromium.ui.accessibility.AccessibilityState; @@ -194,7 +194,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over import org.chromium.ui.base.LocalizationUtils; import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.util.ColorUtils; -@@ -5317,8 +5318,13 @@ public class StripLayoutHelper +@@ -5249,8 +5250,13 @@ public class StripLayoutHelper mCloseButtonMenu.setAnchorView(tabView); // 3. Set the vertical offset to align the close button menu with bottom of the tab strip int tabHeight = mManagerHost.getHeight(); @@ -213,15 +213,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java -@@ -105,6 +105,7 @@ import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateMa - import org.chromium.components.browser_ui.styles.SemanticColorUtils; +@@ -107,6 +107,7 @@ import org.chromium.components.browser_ui.styles.SemanticColorUtils; + import org.chromium.components.browser_ui.widget.gesture.BackPressHandler; import org.chromium.components.browser_ui.widget.scrim.ScrimProperties; import org.chromium.content_public.browser.LoadUrlParams; +import org.chromium.ui.base.DeviceFormFactor; import org.chromium.ui.base.LocalizationUtils; import org.chromium.ui.base.PageTransition; import org.chromium.ui.base.WindowAndroid; -@@ -498,7 +499,10 @@ public class StripLayoutHelperManager +@@ -505,7 +506,10 @@ public class StripLayoutHelperManager mIsHeaderCustomizationSupported = ToolbarFeatures.isAppHeaderCustomizationSupported( /* isTablet= */ true, DisplayUtil.isContextInDefaultDisplay(mContext)); @@ -273,7 +273,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/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 -@@ -807,7 +807,9 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -811,7 +811,9 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { @Override public int getControlContainerHeightResource() { @@ -287,7 +287,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/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 -@@ -120,6 +120,8 @@ import org.chromium.chrome.browser.paint_preview.DemoPaintPreview; +@@ -125,6 +125,8 @@ import org.chromium.chrome.browser.paint_preview.DemoPaintPreview; import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer; import org.chromium.chrome.browser.password_manager.PasswordManagerLauncher; import org.chromium.chrome.browser.pdf.PdfPage; @@ -296,7 +296,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.quick_delete.QuickDeleteController; import org.chromium.chrome.browser.quick_delete.QuickDeleteDelegateImpl; -@@ -1947,7 +1949,9 @@ public class RootUiCoordinator +@@ -1959,7 +1961,9 @@ public class RootUiCoordinator protected int getFindToolbarStub() { int stubId = R.id.find_toolbar_stub; @@ -321,7 +321,7 @@ diff --git a/chrome/browser/preferences/BUILD.gn b/chrome/browser/preferences/BU 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 -@@ -358,6 +358,7 @@ public final class ChromePreferenceKeys { +@@ -393,6 +393,7 @@ public final class ChromePreferenceKeys { /** Whether the app-specific history info text was already seen by users. */ public static final String HISTORY_APP_SPECIFIC_INFO_SEEN = "Chrome.History.AppSpecificInfoSeen"; @@ -391,7 +391,7 @@ diff --git a/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/c 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 -@@ -1008,7 +1008,7 @@ public class LocationBarCoordinator +@@ -1022,7 +1022,7 @@ public class LocationBarCoordinator } private boolean isTabletWindow() { @@ -403,7 +403,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow 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 -@@ -1507,6 +1507,13 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1504,6 +1504,13 @@ Your Google account may have other forms of browsing history like searches and a Privacy guide explanation closed @@ -506,7 +506,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow import android.graphics.Canvas; import android.graphics.Color; import android.graphics.PorterDuff; -@@ -172,6 +173,24 @@ public class ToolbarControlContainer extends OptimizedFrameLayout +@@ -174,6 +175,24 @@ public class ToolbarControlContainer extends OptimizedFrameLayout @Initializer public void initWithToolbar(int toolbarLayoutId, int toolbarLayoutHeightResId) { try (TraceEvent te = TraceEvent.scoped("ToolbarControlContainer.initWithToolbar")) { @@ -542,10 +542,10 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow import org.chromium.ui.util.TokenHolder; import org.chromium.url.GURL; -@@ -588,7 +589,9 @@ public abstract class ToolbarLayout extends FrameLayout - * not have a tab strip. +@@ -600,7 +601,9 @@ public abstract class ToolbarLayout extends FrameLayout + * @see Toolbar#getTabStripHeight() */ - protected int getTabStripHeightFromResource() { + public int getTabStripHeightFromResource() { - return getResources().getDimensionPixelSize(R.dimen.tab_strip_height); + if (DeviceFormFactor.isForceTabletUI()) + return getResources().getDimensionPixelSize(R.dimen.tab_strip_height_tabletui); @@ -556,7 +556,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/HeightTransitionHandler.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/HeightTransitionHandler.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/HeightTransitionHandler.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/HeightTransitionHandler.java -@@ -27,6 +27,7 @@ import org.chromium.chrome.browser.toolbar.ControlContainer; +@@ -29,6 +29,7 @@ import org.chromium.chrome.browser.toolbar.ControlContainer; import org.chromium.chrome.browser.toolbar.top.tab_strip.TabStripTransitionCoordinator.TabStripTransitionDelegate; import org.chromium.chrome.browser.toolbar.top.tab_strip.TabStripTransitionCoordinator.TabStripTransitionHandler; import org.chromium.ui.base.ViewUtils; @@ -564,7 +564,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow import org.chromium.ui.resources.dynamics.DynamicResourceReadyOnceCallback; import org.chromium.ui.util.TokenHolder; -@@ -492,6 +493,7 @@ class HeightTransitionHandler { +@@ -514,6 +515,7 @@ class HeightTransitionHandler { /** Get the min screen width (in dp) required for the tab strip to become visible. */ private static int getScreenWidthThresholdDp() { @@ -575,7 +575,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/TabStripTransitionCoordinator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/TabStripTransitionCoordinator.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/TabStripTransitionCoordinator.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/TabStripTransitionCoordinator.java -@@ -24,6 +24,7 @@ import org.chromium.chrome.browser.ui.desktop_windowing.AppHeaderUtils; +@@ -25,6 +25,7 @@ import org.chromium.chrome.browser.ui.desktop_windowing.AppHeaderUtils; import org.chromium.components.browser_ui.desktop_windowing.AppHeaderState; import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateManager; import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateManager.AppHeaderObserver; @@ -583,7 +583,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow /** * Class used to manage tab strip visibility and height updates. -@@ -170,7 +171,10 @@ public class TabStripTransitionCoordinator implements ComponentCallbacks, AppHea +@@ -171,7 +172,10 @@ public class TabStripTransitionCoordinator implements ComponentCallbacks, AppHea mTabStripReservedTopPadding = controlContainerView() .getResources() @@ -613,7 +613,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 -@@ -31,6 +31,7 @@ import org.chromium.content_public.browser.ContentFeatureMap; +@@ -35,6 +35,7 @@ import org.chromium.content_public.browser.ContentFeatureMap; import org.chromium.ui.base.UiAndroidFeatureList; import org.chromium.chrome.browser.settings.ChromeBaseSettingsFragment; @@ -621,7 +621,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c /** Fragment to keep track of all the accessibility related preferences. */ @NullMarked -@@ -51,6 +52,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -55,6 +56,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment public static final String PREF_TOUCHPAD_OVERSCROLL_HISTORY_NAVIGATION = "touchpad_overscroll_history_navigation"; @@ -631,7 +631,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c private PageZoomPreference mPageZoomDefaultZoomPref; private ChromeSwitchPreference mPageZoomIncludeOSAdjustment; private ChromeSwitchPreference mPageZoomAlwaysShowPref; -@@ -126,6 +130,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -131,6 +135,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment mDelegate.getReaderAccessibilityDelegate().getValue()); readerForAccessibilityPref.setOnPreferenceChangeListener(this); @@ -644,7 +644,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c Preference captions = findPreference(PREF_CAPTIONS); captions.setOnPreferenceClickListener( preference -> { -@@ -212,6 +222,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -217,6 +227,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment public boolean onPreferenceChange(Preference preference, Object newValue) { if (PREF_FORCE_ENABLE_ZOOM.equals(preference.getKey())) { mDelegate.getForceEnableZoomAccessibilityDelegate().setValue((Boolean) newValue); 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 ad0512e7..9de66089 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 @@ -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/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -89,6 +89,11 @@ found in the LICENSE file. +@@ -82,6 +82,11 @@ found in the LICENSE file. android:title="@string/incognito_settings_title" android:summary="@string/incognito_settings_summary" android:fragment="org.chromium.chrome.browser.privacy.settings.IncognitoSettings"/> @@ -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 -@@ -47,6 +47,7 @@ import org.chromium.base.ApplicationStatus; +@@ -53,6 +53,7 @@ import org.chromium.base.ApplicationStatus; import org.chromium.base.Callback; import org.chromium.base.CallbackController; import org.chromium.base.CallbackUtils; @@ -37,9 +37,9 @@ 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; -@@ -2175,8 +2176,10 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt - boolean hadCipherData = - CipherLazyHolder.sCipherInstance.restoreFromBundle(getSavedInstanceState()); +@@ -2201,8 +2202,10 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt + CipherLazyHolder.sCipherInstance.restoreFromBundle(getSavedInstanceState()); + } + String PREF_CLOSE_TABS_ON_EXIT = "close_tabs_on_exit"; boolean noRestoreState = @@ -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; -@@ -113,6 +115,8 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -116,6 +118,8 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private final SharedPreferencesManager mSharedPreferencesManager = ChromeSharedPreferences.getInstance(); @@ -76,8 +76,8 @@ 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"; - @VisibleForTesting static final String PREF_TRACKING_PROTECTION = "tracking_protection"; -@@ -374,7 +378,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment + private static final String PREF_ADVANCED_PROTECTION_INFO = "advanced_protection_info"; +@@ -389,7 +393,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)) { -@@ -434,6 +442,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -449,6 +457,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 -@@ -2898,6 +2898,12 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -2896,6 +2896,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 e900082e..2c464aee 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 @@ -9,7 +9,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../tab_management/TabGridDialogMediator.java | 12 +++++++++++- .../tasks/tab_management/TabGroupUiMediator.java | 8 +++++++- .../java/res/xml/homepage_preferences.xml | 5 +++++ - .../strip/TabGroupContextMenuCoordinator.java | 11 ++++++++++- + .../strip/TabGroupContextMenuCoordinator.java | 10 +++++++++- .../chrome/browser/homepage/HomepageManager.java | 16 ++++++++++++++++ .../homepage/settings/HomepageSettings.java | 12 ++++++++++++ .../chrome/browser/metrics/LaunchMetrics.java | 1 - @@ -19,7 +19,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../android/strings/android_chrome_strings.grd | 3 +++ chrome/browser/ui/browser_ui_prefs.cc | 2 ++ chrome/common/pref_names.h | 4 ++++ - 13 files changed, 80 insertions(+), 4 deletions(-) + 13 files changed, 79 insertions(+), 4 deletions(-) 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 @@ -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. -@@ -1034,9 +1038,15 @@ public class TabGridDialogMediator +@@ -1023,9 +1027,15 @@ public class TabGridDialogMediator UrlConstantResolver urlConstantResolver = UrlConstantResolverFactory.getForProfile(profile); @@ -62,7 +62,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/TabGroupUiMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java -@@ -35,6 +35,7 @@ import org.chromium.chrome.browser.data_sharing.DataSharingServiceFactory; +@@ -37,6 +37,7 @@ import org.chromium.chrome.browser.data_sharing.DataSharingServiceFactory; import org.chromium.chrome.browser.data_sharing.ui.shared_image_tiles.SharedImageTilesConfig; import org.chromium.chrome.browser.data_sharing.ui.shared_image_tiles.SharedImageTilesCoordinator; import org.chromium.chrome.browser.layouts.LayoutStateProvider; @@ -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 -@@ -89,6 +89,9 @@ import java.util.List; +@@ -92,6 +92,9 @@ import java.util.List; import java.util.function.BiConsumer; import java.util.function.Supplier; @@ -115,19 +115,18 @@ 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. -@@ -239,9 +242,15 @@ public class TabGroupContextMenuCoordinator extends TabStripReorderingHelper Last hour @@ -280,7 +279,7 @@ diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_u 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 -@@ -1347,6 +1347,10 @@ inline constexpr char kSplitViewDragAndDropNudgeUsedCount[] = +@@ -1344,6 +1344,10 @@ inline constexpr char kSplitViewDragAndDropNudgeUsedCount[] = // by enterprise policy. inline constexpr char kGeminiSettings[] = "browser.gemini_settings"; diff --git a/build/patches/Add-search-engine.patch b/build/patches/Add-search-engine.patch index 250dab00..2c8e96b0 100644 --- a/build/patches/Add-search-engine.patch +++ b/build/patches/Add-search-engine.patch @@ -180,7 +180,7 @@ diff --git a/components/search_engines/search_engine_type.h b/components/search_ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/components/search_engines/template_url_prepopulate_data.cc --- a/components/search_engines/template_url_prepopulate_data.cc +++ b/components/search_engines/template_url_prepopulate_data.cc -@@ -28,6 +28,8 @@ +@@ -27,6 +27,8 @@ #include "components/search_engines/template_url_data_util.h" #include "third_party/search_engines_data/resources/definitions/prepopulated_engines.h" @@ -189,7 +189,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon namespace TemplateURLPrepopulateData { // Helpers -------------------------------------------------------------------- -@@ -154,7 +156,7 @@ int GetDataVersion(PrefService* prefs) { +@@ -153,7 +155,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) { -@@ -170,6 +172,17 @@ std::vector> GetPrepopulatedEngines( +@@ -169,6 +171,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, -@@ -190,10 +203,14 @@ std::vector> GetLocalPrepopulatedEngines( +@@ -189,10 +202,14 @@ std::vector> GetLocalPrepopulatedEngines( return std::vector>(); } @@ -265,8 +265,8 @@ diff --git a/tools/json_to_struct/json_to_struct.gni b/tools/json_to_struct/json + action(action_name) { visibility = [ ":$source_set_name" ] - script = "//build/gn_run_binary.py" -@@ -63,6 +68,10 @@ template("json_to_struct") { + script = "//tools/json_to_struct/json_to_struct.py" +@@ -61,6 +66,10 @@ template("json_to_struct") { "--namespace=" + invoker.namespace, "--schema=" + rebase_path(invoker.schema_file, root_build_dir), ] 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 e20e9f60..633d8112 100644 --- a/build/patches/Add-setting-to-clear-data-on-exit.patch +++ b/build/patches/Add-setting-to-clear-data-on-exit.patch @@ -8,7 +8,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../java/res/xml/privacy_preferences.xml | 5 ++ .../chrome/browser/ChromeTabbedActivity.java | 7 +- .../browsing_data/BrowsingDataBridge.java | 12 +-- - .../ClearBrowsingDataFragment.java | 31 ++++++-- + .../ClearBrowsingDataFragment.java | 37 +++++++-- .../ClearBrowsingDataFragmentAtStart.java | 79 +++++++++++++++++++ chrome/app/settings_strings.grdp | 10 +++ chrome/browser/about_flags.cc | 1 + @@ -41,7 +41,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html content/browser/storage_partition_impl.cc | 2 + .../public/browser/browsing_data_remover.h | 7 +- .../Add-setting-to-clear-data-on-exit.inc | 8 ++ - 37 files changed, 410 insertions(+), 34 deletions(-) + 37 files changed, 415 insertions(+), 35 deletions(-) create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragmentAtStart.java create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-setting-to-clear-data-on-exit.grdp create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-setting-to-clear-data-on-exit.inc @@ -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 -@@ -270,6 +270,7 @@ chrome_java_sources = [ +@@ -273,6 +273,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 -@@ -208,6 +208,7 @@ import org.chromium.chrome.browser.profiles.ProfileProvider; +@@ -219,6 +219,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,19 +83,19 @@ 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; -@@ -2181,7 +2182,11 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt - Intent intent = getIntent(); - - boolean hadCipherData = -- CipherLazyHolder.sCipherInstance.restoreFromBundle(getSavedInstanceState()); -+ CipherLazyHolder.sCipherInstance.restoreFromBundle(getSavedInstanceState()); // -+ if (!hadCipherData) { -+ Log.i(TAG, "Removing browsing data"); -+ ProfileManagerUtils.removeBrowsingDataAtStart(); -+ } +@@ -2206,7 +2207,11 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt + } + if (!hadCipherData) { + hadCipherData = +- CipherLazyHolder.sCipherInstance.restoreFromBundle(getSavedInstanceState()); ++ CipherLazyHolder.sCipherInstance.restoreFromBundle(getSavedInstanceState()); // ++ if (!hadCipherData) { ++ Log.i(TAG, "Removing browsing data"); ++ ProfileManagerUtils.removeBrowsingDataAtStart(); ++ } + } String PREF_CLOSE_TABS_ON_EXIT = "close_tabs_on_exit"; - boolean noRestoreState = 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 -@@ -164,6 +164,12 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -167,6 +167,12 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment assert mCheckbox == preference; mParent.updateButtonState(); @@ -150,7 +150,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C return true; } -@@ -245,7 +251,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -248,7 +254,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment private @TimePeriod int mLastSelectedTimePeriod; private boolean mShouldShowPostDeleteFeedback; @@ -159,7 +159,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C /** * @return All available {@link DialogOption} entries. -@@ -351,7 +357,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -354,7 +360,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"); } -@@ -437,6 +443,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -440,6 +446,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()); } -@@ -444,8 +451,12 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -447,8 +454,16 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment .setBrowsingDataDeletionTimePeriod(mLastSelectedTimePeriod); } @@ -185,12 +185,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C + } + /** Returns the list of supported {@link DialogOption}. */ -- private List getDialogOptions(Bundle fragmentArgs) { +- private static List getDialogOptions(Bundle fragmentArgs) { + protected List getDialogOptions(Bundle fragmentArgs) { ++ return getDialogOptionsStatic(fragmentArgs); ++ } ++ ++ private static List getDialogOptionsStatic(Bundle fragmentArgs) { String referrer = fragmentArgs.getString( ClearBrowsingDataFragment.CLEAR_BROWSING_DATA_REFERRER, null); -@@ -471,6 +482,10 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -474,6 +489,10 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment DialogOption.CLEAR_SITE_SETTINGS); } @@ -201,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. * -@@ -479,7 +494,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -482,7 +501,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment */ private boolean isOptionSelectedByDefault(@DialogOption int option) { return BrowsingDataBridge.getForProfile(getProfile()) @@ -210,7 +214,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C } /** -@@ -547,6 +562,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -550,6 +569,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment * options. */ private void onClearButtonClicked() { @@ -218,7 +222,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C if (shouldShowImportantSitesDialog()) { showImportantDialogThenClear(); return; -@@ -576,6 +592,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -579,6 +599,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment Button clearButton = (Button) assumeNonNull(getView()).findViewById(R.id.clear_button); boolean isEnabled = !getSelectedOptions().isEmpty(); clearButton.setEnabled(isEnabled); @@ -226,7 +230,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C } private int getSpinnerIndex( -@@ -653,7 +670,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -656,7 +677,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment .getBoolean(Pref.ALLOW_DELETING_BROWSER_HISTORY)) { enabled = false; browsingDataBridge.setBrowsingDataDeletionPreference( @@ -235,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. -@@ -683,8 +700,12 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -686,8 +707,12 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment mSigninManager.addSignInStateObserver(this); setHasOptionsMenu(true); @@ -248,6 +252,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C @Override public ObservableSupplier getPageTitle() { return mPageTitle; +@@ -989,7 +1014,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment + public void updateDynamicPreferences( + Context context, SettingsIndexData indexData, Profile profile) { + Bundle args = createFragmentArgs(context.getClass().getName()); +- List options = getDialogOptions(args); ++ List options = getDialogOptionsStatic(args); + // Not all checkboxes defined in the layout are necessarily handled by this + // class or a particular subclass. Hide those that are not. + Set unboundOptions = getAllOptions(); diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragmentAtStart.java b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragmentAtStart.java new file mode 100644 --- /dev/null @@ -335,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 -@@ -2148,6 +2148,16 @@ +@@ -2228,6 +2228,16 @@ Delete browsing data @@ -355,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 -@@ -109,6 +109,7 @@ +@@ -105,6 +105,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" @@ -366,7 +379,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/android/browsing_data/browsing_data_bridge.cc b/chrome/browser/android/browsing_data/browsing_data_bridge.cc --- a/chrome/browser/android/browsing_data/browsing_data_bridge.cc +++ b/chrome/browser/android/browsing_data/browsing_data_bridge.cc -@@ -67,6 +67,15 @@ PrefService* GetPrefService(Profile* profile) { +@@ -66,6 +66,15 @@ PrefService* GetPrefService(Profile* profile) { return profile->GetOriginalProfile()->GetPrefs(); } @@ -382,8 +395,8 @@ diff --git a/chrome/browser/android/browsing_data/browsing_data_bridge.cc b/chro void OnBrowsingDataModelBuilt(JNIEnv* env, const ScopedJavaGlobalRef& java_callback, std::unique_ptr model) { -@@ -219,7 +228,8 @@ static void JNI_BrowsingDataBridge_MarkOriginAsImportantForTesting( - static jboolean JNI_BrowsingDataBridge_GetBrowsingDataDeletionPreference( +@@ -218,7 +227,8 @@ static void JNI_BrowsingDataBridge_MarkOriginAsImportantForTesting( + static bool JNI_BrowsingDataBridge_GetBrowsingDataDeletionPreference( JNIEnv* env, Profile* profile, - jint data_type) { @@ -392,7 +405,7 @@ diff --git a/chrome/browser/android/browsing_data/browsing_data_bridge.cc b/chro DCHECK_GE(data_type, 0); DCHECK_LE(data_type, static_cast(browsing_data::BrowsingDataType::MAX_VALUE)); -@@ -231,7 +241,7 @@ static jboolean JNI_BrowsingDataBridge_GetBrowsingDataDeletionPreference( +@@ -230,7 +240,7 @@ static bool JNI_BrowsingDataBridge_GetBrowsingDataDeletionPreference( std::string pref; if (!browsing_data::GetDeletionPreferenceFromDataType( static_cast(data_type), @@ -401,15 +414,15 @@ diff --git a/chrome/browser/android/browsing_data/browsing_data_bridge.cc b/chro return false; } -@@ -242,6 +252,7 @@ static void JNI_BrowsingDataBridge_SetBrowsingDataDeletionPreference( +@@ -241,6 +251,7 @@ static void JNI_BrowsingDataBridge_SetBrowsingDataDeletionPreference( JNIEnv* env, Profile* profile, jint data_type, + jint clear_browsing_data_tab, - jboolean value) { + bool value) { DCHECK_GE(data_type, 0); DCHECK_LE(data_type, -@@ -250,7 +261,7 @@ static void JNI_BrowsingDataBridge_SetBrowsingDataDeletionPreference( +@@ -249,7 +260,7 @@ static void JNI_BrowsingDataBridge_SetBrowsingDataDeletionPreference( std::string pref; if (!browsing_data::GetDeletionPreferenceFromDataType( static_cast(data_type), @@ -460,7 +473,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager. diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc --- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc +++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc -@@ -352,6 +352,7 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -321,6 +321,7 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( uint64_t origin_type_mask, base::OnceCallback callback) { CHECK(((remove_mask & @@ -468,7 +481,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate. ~content::BrowsingDataRemover::DATA_TYPE_AVOID_CLOSING_CONNECTIONS & ~constants::FILTERABLE_DATA_TYPES) == 0) || filter_builder->MatchesAllOriginsAndDomains()); -@@ -455,6 +456,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -424,6 +425,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( CreateTaskCompletionClosure(TracingDataType::kHistory), &history_task_tracker_); } @@ -478,7 +491,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate. if (ClipboardRecentContent::GetInstance()) ClipboardRecentContent::GetInstance()->SuppressClipboardContent(); -@@ -563,6 +567,11 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -532,6 +536,11 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( // and SSL host state are scoped to hosts and represent them as std::string. // Rename the method to indicate its more general usage. if (profile_->GetSSLHostStateDelegate()) { @@ -490,7 +503,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate. profile_->GetSSLHostStateDelegate()->Clear( filter_builder->MatchesAllOriginsAndDomains() ? base::RepeatingCallback() -@@ -591,9 +600,13 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -560,9 +569,13 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( } device_event_log::Clear(delete_begin_, delete_end_); @@ -504,7 +517,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate. content::BackgroundTracingManager::GetInstance().DeleteTracesInDateRange( delete_begin_, delete_end_); -@@ -1320,6 +1333,8 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -1287,6 +1300,8 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( if (should_clear_zero_suggest_and_session_token && template_url_service) template_url_service->ClearSessionToken(); @@ -516,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 -@@ -564,6 +564,23 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { +@@ -557,6 +557,23 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { (*s_allowlist)[browsing_data::prefs::kLastClearBrowsingDataTab] = settings_api::PrefType::kNumber; @@ -576,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 -@@ -1516,6 +1516,19 @@ void ProfileManager::DoFinalInit(ProfileInfo* profile_info, +@@ -1523,6 +1523,19 @@ void ProfileManager::DoFinalInit(ProfileInfo* profile_info, } } @@ -596,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_ || -@@ -2185,9 +2198,9 @@ void ProfileManager::OnBrowserClosed(Browser* browser) { +@@ -2192,9 +2205,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( @@ -696,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 -@@ -1443,6 +1443,9 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1440,6 +1440,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>. @@ -723,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 -@@ -2218,6 +2218,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, +@@ -2263,6 +2263,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, {"clearedData", IDS_SETTINGS_CLEARED_DATA}, {"clearBrowsingData", IDS_SETTINGS_CLEAR_BROWSING_DATA}, {"clearBrowsingDataDescription", IDS_SETTINGS_CLEAR_DATA_DESCRIPTION}, @@ -989,7 +1002,7 @@ diff --git a/components/favicon/core/favicon_database.h b/components/favicon/cor diff --git a/components/search_engines/template_url_service.cc b/components/search_engines/template_url_service.cc --- a/components/search_engines/template_url_service.cc +++ b/components/search_engines/template_url_service.cc -@@ -924,6 +924,7 @@ void TemplateURLService::RemoveAutoGeneratedForUrlsBetween( +@@ -923,6 +923,7 @@ void TemplateURLService::RemoveAutoGeneratedForUrlsBetween( if (turl->date_created() >= created_after && (created_before.is_null() || turl->date_created() < created_before) && turl->safe_for_autoreplace() && turl->prepopulate_id() == 0 && @@ -1000,7 +1013,7 @@ diff --git a/components/search_engines/template_url_service.cc b/components/sear 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 -@@ -261,7 +261,7 @@ class StateClearer : public BrowsingDataRemover::Observer { +@@ -251,7 +251,7 @@ class StateClearer : public BrowsingDataRemover::Observer { remove_mask &= ~BrowsingDataRemover::DATA_TYPE_PRIVACY_SANDBOX; remover->RemoveWithFilterAndReply( base::Time::Min(), base::Time::Max(), @@ -1012,15 +1025,15 @@ diff --git a/content/browser/btm/btm_service_impl.cc b/content/browser/btm/btm_s 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 -@@ -19,6 +19,7 @@ - #include "base/containers/contains.h" +@@ -18,6 +18,7 @@ + #include "base/command_line.h" #include "base/dcheck_is_on.h" #include "base/feature_list.h" +#include "base/files/file_util.h" #include "base/functional/bind.h" #include "base/functional/callback_helpers.h" #include "base/functional/concurrent_closures.h" -@@ -1557,6 +1558,7 @@ void StoragePartitionImpl::Initialize( +@@ -1556,6 +1557,7 @@ void StoragePartitionImpl::Initialize( .AppendASCII("Code Cache"); } DCHECK_GE(settings.size_in_bytes(), 0); diff --git a/build/patches/Add-setting-to-enable-Credman-for-passkeys.patch b/build/patches/Add-setting-to-enable-Credman-for-passkeys.patch index 204e8403..d5a9a9d1 100644 --- a/build/patches/Add-setting-to-enable-Credman-for-passkeys.patch +++ b/build/patches/Add-setting-to-enable-Credman-for-passkeys.patch @@ -19,7 +19,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../webauthn/android/webauthn_feature_map.cc | 1 + components/webauthn/features.cc | 4 +++ components/webauthn/features.h | 3 ++ - device/fido/features.cc | 2 ++ + device/fido/public/features.cc | 2 ++ .../authentication_credentials_container.cc | 5 ++++ 11 files changed, 75 insertions(+), 37 deletions(-) create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-setting-to-enable-Credman-for-passkeys.grdp @@ -27,7 +27,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/password_manager/settings/PasswordSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java -@@ -10,6 +10,7 @@ import android.app.Activity; +@@ -11,6 +11,7 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; import android.net.Uri; @@ -35,7 +35,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage import android.os.Bundle; import android.text.SpannableString; import android.text.style.ForegroundColorSpan; -@@ -64,6 +65,10 @@ import org.chromium.chrome.browser.ui.messages.snackbar.INeedSnackbarManager; +@@ -67,6 +68,10 @@ import org.chromium.chrome.browser.ui.messages.snackbar.INeedSnackbarManager; import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar; import org.chromium.chrome.browser.lifetime.ApplicationLifetime; @@ -46,7 +46,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage /** * The "Passwords" screen in Settings, which allows the user to enable or disable password saving, * to view saved passwords (just the username and URL), and to delete saved passwords. -@@ -322,6 +327,7 @@ public class PasswordSettings extends ChromeBaseSettingsFragment +@@ -332,6 +337,7 @@ public class PasswordSettings extends ChromeBaseSettingsFragment createSavePasswordsSwitch(); createAutoSignInCheckbox(); createEnableAndroidAutofillSwitch(); @@ -54,7 +54,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage PasswordManagerHandlerProvider.getForProfile(getProfile()) .getPasswordManagerHandler() -@@ -673,6 +679,27 @@ public class PasswordSettings extends ChromeBaseSettingsFragment +@@ -685,6 +691,27 @@ public class PasswordSettings extends ChromeBaseSettingsFragment getPrefService().getBoolean(Pref.CREDENTIALS_ENABLE_AUTOSIGNIN)); } @@ -121,36 +121,36 @@ new file mode 100644 diff --git a/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java b/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java --- a/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java +++ b/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java -@@ -34,6 +34,8 @@ import org.chromium.blink.mojom.PublicKeyCredentialReportOptions; - import org.chromium.blink.mojom.WebAuthnClientCapability; +@@ -30,6 +30,8 @@ import org.chromium.blink.mojom.WebAuthnClientCapability; import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; + import org.chromium.components.password_manager.BrowserAssistedLoginType; +import org.chromium.components.webauthn.CredManSupport; +import org.chromium.components.webauthn.cred_man.CredManSupportProvider; import org.chromium.components.ukm.UkmRecorder; import org.chromium.content_public.browser.RenderFrameHost; import org.chromium.content_public.browser.WebContents; -@@ -170,8 +172,7 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -166,8 +168,7 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon mIsPaymentRequest = options.isPaymentCredentialCreation; - mMakeCredentialCallback = callback; - mIsOperationPending = true; + mRequestCallback = requestCallback; + mRequestCallback.setCompletionCallback(this::cleanupRequest); - if (!GmsCoreUtils.isWebauthnSupported() - || (!isChrome(mWebContents) && !GmsCoreUtils.isResultReceiverSupported())) { + if (CredManSupportProvider.getCredManSupport() == CredManSupport.DISABLED) { - recordOutcomeEvent(MakeCredentialOutcome.OTHER_FAILURE); - onError(AuthenticatorStatus.NOT_IMPLEMENTED); - return; -@@ -235,8 +236,7 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon - mIsConditionalRequest = options.mediation == Mediation.CONDITIONAL; - mIsImmediateRequest = options.mediation == Mediation.IMMEDIATE; - + mRequestCallback.onComplete( + WebauthnRequestResponse.forFailedMakeCredential( + AuthenticatorStatus.NOT_IMPLEMENTED, +@@ -250,8 +251,7 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon + && DeviceFeatureMap.isEnabled( + DeviceFeatureList + .WEBAUTHN_AUTHENTICATOR_PASSWORDS_ONLY_IMMEDIATE_REQUESTS); - if (!GmsCoreUtils.isWebauthnSupported() - || (!isChrome(mWebContents) && !GmsCoreUtils.isResultReceiverSupported()) + if (CredManSupportProvider.getCredManSupport() == CredManSupport.DISABLED - || options.publicKey == null) { - recordOutcomeEvent(GetAssertionOutcome.OTHER_FAILURE); - onError(AuthenticatorStatus.NOT_IMPLEMENTED); -@@ -277,12 +277,11 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon + || (options.publicKey == null && !isPasswordOnlyFlux)) { + RequestMetrics metrics = + new RequestMetrics.Builder() +@@ -291,12 +291,11 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon } private boolean couldSupportConditionalMediation() { @@ -165,7 +165,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } @Override -@@ -356,26 +355,20 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -370,26 +369,20 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon capabilities.add( createWebAuthnClientCapability( AuthenticatorConstants.CAPABILITY_CONDITIONAL_GET, @@ -200,10 +200,10 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut diff --git a/components/webauthn/android/java/src/org/chromium/components/webauthn/WebauthnFeatures.java b/components/webauthn/android/java/src/org/chromium/components/webauthn/WebauthnFeatures.java --- a/components/webauthn/android/java/src/org/chromium/components/webauthn/WebauthnFeatures.java +++ b/components/webauthn/android/java/src/org/chromium/components/webauthn/WebauthnFeatures.java -@@ -17,4 +17,6 @@ public abstract class WebauthnFeatures { - public static final String WEBAUTHN_ANDROID_PASSKEY_CACHE_MIGRATION = - "WebAuthenticationAndroidPasskeyCacheMigration"; +@@ -19,4 +19,6 @@ public abstract class WebauthnFeatures { public static final String WEBAUTHN_ANDROID_CRED_MAN_FOR_DEV = "WebAuthnAndroidCredManForDev"; + public static final String WEBAUTHN_ANDROID_CRED_MAN_REQUEST_EXTRA_BUNDLE = + "WebAuthenticationAndroidCredManRequestExtraBundle"; + public static final String WEBAUTHN_ANDROID_PASSKEY = + "WebAuthenticationAndroidPasskey"; } @@ -284,10 +284,10 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut diff --git a/components/webauthn/android/webauthn_feature_map.cc b/components/webauthn/android/webauthn_feature_map.cc --- a/components/webauthn/android/webauthn_feature_map.cc +++ b/components/webauthn/android/webauthn_feature_map.cc -@@ -17,6 +17,7 @@ namespace { - const base::Feature* const kFeaturesExposedToJava[] = { +@@ -18,6 +18,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kWebAuthnAndroidPasskeyCacheMigration, &kWebAuthnAndroidCredManForDev, + &kWebAuthnAndroidCredManRequestExtraBundle, + &kWebAuthnAndroidPasskey, }; @@ -295,9 +295,9 @@ diff --git a/components/webauthn/android/webauthn_feature_map.cc b/components/we diff --git a/components/webauthn/features.cc b/components/webauthn/features.cc --- a/components/webauthn/features.cc +++ b/components/webauthn/features.cc -@@ -25,6 +25,10 @@ BASE_FEATURE(kWebAuthnAndroidCredManForDev, base::FEATURE_DISABLED_BY_DEFAULT); - const base::FeatureParam kWebAuthnAndroidCredManForDevMode{ - &kWebAuthnAndroidCredManForDev, "mode", ""}; +@@ -34,6 +34,10 @@ BASE_FEATURE(kWebAuthnAndroidCredManRequestExtraBundle, + BASE_FEATURE(kWebAuthnConditionalUiSuppressedOnWebView, + base::FEATURE_ENABLED_BY_DEFAULT); +CROMITE_FEATURE(kWebAuthnAndroidPasskey, + "WebAuthenticationAndroidPasskey", @@ -316,12 +316,12 @@ diff --git a/components/webauthn/features.h b/components/webauthn/features.h +COMPONENT_EXPORT(WEBAUTHN) +BASE_DECLARE_FEATURE(kWebAuthnAndroidPasskey); + - #endif // BUILDFLAG(IS_ANDROID) - - #if !BUILDFLAG(IS_ANDROID) -diff --git a/device/fido/features.cc b/device/fido/features.cc ---- a/device/fido/features.cc -+++ b/device/fido/features.cc + // Whether to send a custom bundle values for the CredMan requests. The extras + // are used by Google Password Manager. + COMPONENT_EXPORT(WEBAUTHN) +diff --git a/device/fido/public/features.cc b/device/fido/public/features.cc +--- a/device/fido/public/features.cc ++++ b/device/fido/public/features.cc @@ -188,6 +188,7 @@ BASE_FEATURE(kWebAuthnImmediateGet, #else base::FEATURE_ENABLED_BY_DEFAULT); @@ -336,12 +336,12 @@ diff --git a/device/fido/features.cc b/device/fido/features.cc base::FEATURE_ENABLED_BY_DEFAULT); +SET_CROMITE_FEATURE_DISABLED(kWebAuthnImmediateGetAutoselect); - // Default enabled in M140. Remove in or after M143. - BASE_FEATURE(kWebAuthnLargeBlobForGPM, + // Deprecation flag. Disabled by default in M142. Remove in or after M145. + BASE_FEATURE(kWebAuthnSendPinGeneration, diff --git a/third_party/blink/renderer/modules/credentialmanagement/authentication_credentials_container.cc b/third_party/blink/renderer/modules/credentialmanagement/authentication_credentials_container.cc --- a/third_party/blink/renderer/modules/credentialmanagement/authentication_credentials_container.cc +++ b/third_party/blink/renderer/modules/credentialmanagement/authentication_credentials_container.cc -@@ -1090,6 +1090,11 @@ DOMException* AuthenticatorStatusToDOMException( +@@ -1135,6 +1135,11 @@ DOMException* AuthenticatorStatusToDOMException( const WebAuthnDOMExceptionDetailsPtr& dom_exception_details) { DCHECK_EQ(status != AuthenticatorStatus::ERROR_WITH_DOM_EXCEPTION_DETAILS, dom_exception_details.is_null()); 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 1c7a3c69..9d1d5bcb 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 @@ -128,7 +128,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java -@@ -474,6 +474,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -478,6 +478,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { } if (mParams.isAnchor()) { ModelList linkGroup = new ModelList(); @@ -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())) { -@@ -1083,6 +1086,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -1085,6 +1088,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { getProfile(), false); }); @@ -168,18 +168,18 @@ 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 -@@ -446,6 +446,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { - &kTabGroupParityBottomSheetAndroid, +@@ -437,6 +437,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { + &kTabFreezingUsesDiscard, &kTabModelInitFixes, &kTabStorageSqlitePrototype, + &blink::features::kShowAlwaysContextMenuOnLinks, &kTabStripAutoSelectOnCloseChange, + &kTabStripCloseRefactorAndroid, &kTabStripDensityChangeAndroid, - &kTabStripGroupDragDropAndroid, 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 -@@ -517,6 +517,8 @@ public abstract class ChromeFeatureList { +@@ -506,6 +506,8 @@ public abstract class ChromeFeatureList { "DisableToolbarSwipeUp"; public static final String MOVE_TOP_TOOLBAR_TO_BOTTOM = "MoveTopToolbarToBottom"; @@ -188,19 +188,19 @@ 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"; -@@ -1031,6 +1033,8 @@ public abstract class ChromeFeatureList { +@@ -1016,6 +1018,8 @@ public abstract class ChromeFeatureList { newCachedFlag(DISABLE_TOOLBAR_SWIPE_UP, false); public static final CachedFlag sMoveTopToolbarToBottom = newCachedFlag(MOVE_TOP_TOOLBAR_TO_BOTTOM, false); + public static final CachedFlag sShowAlwaysContextMenuOnLinks = + newCachedFlag(SHOW_ALWAYS_CONTEXT_MENU_ON_LINKS, false); public static final CachedFlag sPaintPreviewDemo = newCachedFlag(PAINT_PREVIEW_DEMO, false); - public static final CachedFlag sPostGetMyMemoryStateToBackground = - newCachedFlag(POST_GET_MEMORY_PRESSURE_TO_BACKGROUND, true); -@@ -1303,6 +1307,7 @@ public abstract class ChromeFeatureList { - sTopControlsRefactor, + public static final CachedFlag sPersistAcrossReboots = + newCachedFlag(PERSIST_ACROSS_REBOOTS, false); +@@ -1283,6 +1287,7 @@ public abstract class ChromeFeatureList { sTopControlsRefactorV2, sTouchToSearchCallout, + sUnparcelIntentFileDescriptors, + sShowAlwaysContextMenuOnLinks, sUseActivityManagerForTabActivation, sUseChimeAndroidSdk, @@ -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 -@@ -1572,6 +1572,12 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1569,6 +1569,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 -@@ -3237,6 +3243,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -3235,6 +3241,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 -@@ -60,6 +60,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -64,6 +64,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; -@@ -157,6 +160,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -162,6 +165,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 -> { -@@ -265,6 +274,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -270,6 +279,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 -@@ -65,6 +65,7 @@ +@@ -68,6 +68,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" -@@ -415,6 +416,17 @@ void HTMLAnchorElementBase::NavigateToHyperlink( +@@ -421,6 +422,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; -@@ -495,6 +507,15 @@ void HTMLAnchorElementBase::NavigateToHyperlink( +@@ -501,6 +513,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; -@@ -531,7 +552,7 @@ bool HTMLAnchorElementBase::IsValidInterestInvoker(Element& target) const { +@@ -537,7 +558,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(); -@@ -583,13 +604,12 @@ void HTMLAnchorElementBase::HandleClick(MouseEvent& event) { +@@ -589,13 +610,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( -@@ -599,7 +619,9 @@ void HTMLAnchorElementBase::HandleClick(MouseEvent& event) { +@@ -605,7 +625,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 c96eb500..f0f7cd93 100644 --- a/build/patches/Add-site-engagement-flag.patch +++ b/build/patches/Add-site-engagement-flag.patch @@ -26,9 +26,9 @@ 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 -@@ -169,6 +169,7 @@ +@@ -165,6 +165,7 @@ + #include "components/sensitive_content/features.h" #include "components/services/heap_profiling/public/cpp/switches.h" - #include "components/services/on_device_translation/buildflags/buildflags.h" #include "components/services/storage/public/cpp/buckets/bucket_info.h" +#include "components/site_engagement/core/features.h" #include "components/shared_highlighting/core/common/shared_highlighting_features.h" @@ -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 -@@ -31,6 +31,7 @@ +@@ -30,6 +30,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" @@ -45,7 +45,7 @@ diff --git a/chrome/browser/engagement/important_sites_util.cc b/chrome/browser/ #include "components/site_engagement/core/mojom/site_engagement_details.mojom.h" #include "components/webapps/browser/banners/app_banner_settings_helper.h" #include "net/base/registry_controlled_domains/registry_controlled_domain.h" -@@ -345,6 +346,10 @@ void ImportantSitesUtil::RegisterProfilePrefs( +@@ -343,6 +344,10 @@ void ImportantSitesUtil::RegisterProfilePrefs( // static std::set ImportantSitesUtil::GetInstalledRegisterableDomains( Profile* profile) { @@ -56,7 +56,7 @@ diff --git a/chrome/browser/engagement/important_sites_util.cc b/chrome/browser/ std::set installed_origins = GetOriginsWithInstalledWebApps(profile); std::set registerable_domains; -@@ -359,6 +364,10 @@ std::vector +@@ -357,6 +362,10 @@ std::vector ImportantSitesUtil::GetImportantRegisterableDomains(Profile* profile, size_t max_results) { SCOPED_UMA_HISTOGRAM_TIMER("Storage.ImportantSites.GenerationTime"); @@ -131,7 +131,7 @@ diff --git a/components/feature_engagement/public/feature_configurations.cc b/co #include "components/feature_engagement/public/configuration.h" #include "components/feature_engagement/public/event_constants.h" #include "components/feature_engagement/public/feature_constants.h" -@@ -121,6 +122,12 @@ std::optional GetClientSideFeatureConfig( +@@ -118,6 +119,12 @@ std::optional GetClientSideFeatureConfig( } #endif // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) diff --git a/build/patches/Add-support-for-ISupportHelpAndFeedback.patch b/build/patches/Add-support-for-ISupportHelpAndFeedback.patch index a2f0eca4..0d15e920 100644 --- a/build/patches/Add-support-for-ISupportHelpAndFeedback.patch +++ b/build/patches/Add-support-for-ISupportHelpAndFeedback.patch @@ -12,7 +12,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/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 -@@ -68,6 +68,7 @@ import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar; +@@ -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; @@ -20,7 +20,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin import org.chromium.components.browser_ui.modaldialog.AppModalPresenter; import org.chromium.components.browser_ui.settings.EmbeddableSettingsPage; import org.chromium.components.browser_ui.settings.PreferenceUpdateObserver; -@@ -922,8 +923,12 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -904,8 +905,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-support-for-writing-URIs.patch b/build/patches/Add-support-for-writing-URIs.patch index 77514647..92339b4b 100644 --- a/build/patches/Add-support-for-writing-URIs.patch +++ b/build/patches/Add-support-for-writing-URIs.patch @@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/base/android/content_uri_utils.cc b/base/android/content_uri_utils.cc --- a/base/android/content_uri_utils.cc +++ b/base/android/content_uri_utils.cc -@@ -137,6 +137,16 @@ static void JNI_ContentUriUtils_AddFileInfoToVector(JNIEnv* env, +@@ -139,6 +139,16 @@ static void JNI_ContentUriUtils_AddFileInfoToVector(JNIEnv* env, Time::FromMillisecondsSinceUnixEpoch(last_modified)); } diff --git a/build/patches/Add-webGL-site-setting.patch b/build/patches/Add-webGL-site-setting.patch index ee2e0063..f01f8609 100644 --- a/build/patches/Add-webGL-site-setting.patch +++ b/build/patches/Add-webGL-site-setting.patch @@ -189,7 +189,7 @@ new file mode 100644 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 +++ b/third_party/blink/renderer/core/execution_context/execution_context.cc -@@ -94,6 +94,13 @@ blink::WebContentSettingsClient* GetContentSettingsClientFor( +@@ -86,6 +86,13 @@ blink::WebContentSettingsClient* GetContentSettingsClientFor( return settings; } @@ -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 -@@ -149,6 +149,8 @@ enum ReasonForCallingCanExecuteScripts { +@@ -110,6 +110,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 -@@ -341,6 +341,13 @@ void WebGLRenderingContextBase::InitializeWebGLContextLimits( +@@ -343,6 +343,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_); -@@ -611,25 +618,6 @@ static String ExtractWebGLContextCreationError( +@@ -613,25 +620,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('.'); -@@ -690,6 +678,12 @@ WebGLRenderingContextBase::CreateWebGraphicsContext3DProvider( +@@ -692,6 +680,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 -@@ -1965,6 +1965,8 @@ class MODULES_EXPORT WebGLRenderingContextBase +@@ -2008,6 +2008,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 348bb5c6..46968304 100644 --- a/build/patches/Add-webRTC-site-settings.patch +++ b/build/patches/Add-webRTC-site-settings.patch @@ -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" -@@ -1041,6 +1042,11 @@ PeerConnectionDependencyFactory::CreatePortAllocator( +@@ -1046,6 +1047,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-DocumentPiP-if-PopupsAndRedirects-are-active.patch b/build/patches/Allow-DocumentPiP-if-PopupsAndRedirects-are-active.patch index 1a4542a9..ab1fc973 100644 --- a/build/patches/Allow-DocumentPiP-if-PopupsAndRedirects-are-active.patch +++ b/build/patches/Allow-DocumentPiP-if-PopupsAndRedirects-are-active.patch @@ -34,7 +34,7 @@ diff --git a/third_party/blink/renderer/modules/document_picture_in_picture/pict #include "third_party/blink/renderer/modules/picture_in_picture/picture_in_picture_event.h" #include "third_party/blink/renderer/platform/heap/garbage_collected.h" #include "third_party/blink/renderer/platform/runtime_enabled_features.h" -@@ -388,6 +389,12 @@ void PictureInPictureControllerImpl::CreateDocumentPictureInPictureWindow( +@@ -386,6 +387,12 @@ void PictureInPictureControllerImpl::CreateDocumentPictureInPictureWindow( return; } diff --git a/build/patches/Allow-building-without-enable_reporting.patch b/build/patches/Allow-building-without-enable_reporting.patch index 00652838..1ef23938 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 -@@ -1517,6 +1517,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) { +@@ -1542,6 +1542,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( -@@ -1530,6 +1531,7 @@ std::vector ComputeReportingURLs(RenderFrameHostImpl* frame_host) { +@@ -1555,6 +1556,7 @@ std::vector ComputeReportingURLs(RenderFrameHostImpl* frame_host) { }); return urls; } @@ -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 -@@ -16347,12 +16347,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport( +@@ -16427,12 +16427,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)); } - void RenderFrameHostImpl::UpdateOrDisableCompositorMetricRecorder() const { + base::Value::Dict 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 @@ -308,7 +308,7 @@ 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 -@@ -499,14 +499,14 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -493,14 +493,14 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext const GURL& url, const std::optional& reporting_source, const net::NetworkAnonymizationKey& network_anonymization_key, @@ -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 -@@ -1833,7 +1833,6 @@ mojom("mojom") { +@@ -1885,7 +1885,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 -@@ -1245,6 +1245,7 @@ interface NetworkContext { +@@ -1239,6 +1239,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, -@@ -1252,6 +1253,7 @@ interface NetworkContext { +@@ -1246,6 +1247,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, -@@ -1262,6 +1264,7 @@ interface NetworkContext { +@@ -1256,6 +1258,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`. @@ -386,7 +386,7 @@ diff --git a/third_party/blink/renderer/core/frame/csp/content_security_policy.c #include "base/containers/contains.h" #include "base/debug/dump_without_crashing.h" #include "base/feature_list.h" -@@ -1355,6 +1356,7 @@ void ContentSecurityPolicy::ReportViolation( +@@ -1379,6 +1380,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); -@@ -1362,6 +1364,7 @@ void ContentSecurityPolicy::ReportViolation( +@@ -1386,6 +1388,7 @@ void ContentSecurityPolicy::ReportViolation( // `context_frame` (i.e. we're not processing 'frame-ancestors'). if (delegate_ && !context_frame) delegate_->DispatchViolationEvent(*violation_data, element); @@ -405,7 +405,7 @@ diff --git a/third_party/blink/renderer/core/frame/csp/content_security_policy.c 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 -@@ -49,6 +49,7 @@ +@@ -50,6 +50,7 @@ #include "build/build_config.h" #include "mojo/public/cpp/bindings/self_owned_receiver.h" #include "mojo/public/cpp/system/message_pipe.h" @@ -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" -@@ -2871,9 +2872,11 @@ DocumentResourceCoordinator* LocalFrame::GetDocumentResourceCoordinator() { +@@ -2861,9 +2862,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" -@@ -670,7 +671,9 @@ class CORE_EXPORT LocalFrame final +@@ -668,7 +669,9 @@ class CORE_EXPORT LocalFrame final return client_hints_preferences_; } @@ -457,17 +457,17 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_context.cc b/third_ #include "third_party/blink/public/platform/browser_interface_broker_proxy.h" #include "third_party/blink/public/platform/platform.h" #include "third_party/blink/public/platform/task_type.h" -@@ -55,7 +56,9 @@ bool ShouldReportBeVisibleToObservers(Report* report) { - +@@ -59,7 +60,9 @@ const char ReportingContext::kSupplementName[] = "ReportingContext"; ReportingContext::ReportingContext(ExecutionContext& context) - : execution_context_(context), + : Supplement(context), + execution_context_(context), +#if BUILDFLAG(ENABLE_REPORTING) reporting_service_(&context), +#endif receivers_(this, &context) {} // static -@@ -121,7 +124,9 @@ void ReportingContext::Trace(Visitor* visitor) const { +@@ -126,7 +129,9 @@ void ReportingContext::Trace(Visitor* visitor) const { visitor->Trace(observers_); visitor->Trace(report_buffer_); visitor->Trace(execution_context_); @@ -475,9 +475,9 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_context.cc b/third_ visitor->Trace(reporting_service_); +#endif visitor->Trace(receivers_); + Supplement::Trace(visitor); } - -@@ -143,6 +148,7 @@ void ReportingContext::CountReport(Report* report) { +@@ -149,6 +154,7 @@ void ReportingContext::CountReport(Report* report) { UseCounter::Count(execution_context_, feature); } @@ -485,7 +485,7 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_context.cc b/third_ const HeapMojoRemote& ReportingContext::GetReportingService() const { if (!reporting_service_.is_bound()) { -@@ -152,6 +158,7 @@ ReportingContext::GetReportingService() const { +@@ -158,6 +164,7 @@ ReportingContext::GetReportingService() const { } return reporting_service_; } @@ -493,7 +493,7 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_context.cc b/third_ void ReportingContext::NotifyInternal(Report* report) { if (!ShouldReportBeVisibleToObservers(report)) { -@@ -178,6 +185,7 @@ void ReportingContext::NotifyInternal(Report* report) { +@@ -184,6 +191,7 @@ void ReportingContext::NotifyInternal(Report* report) { void ReportingContext::SendToReportingAPI(Report* report, const String& endpoint) const { @@ -501,7 +501,7 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_context.cc b/third_ const String& type = report->type(); if (!(type == ReportType::kCSPViolation || type == ReportType::kCSPHash || type == ReportType::kDeprecation || -@@ -262,6 +270,7 @@ void ReportingContext::SendToReportingAPI(Report* report, +@@ -268,6 +276,7 @@ void ReportingContext::SendToReportingAPI(Report* report, url, endpoint, body->featureId(), body->disposition(), body->message(), body->sourceFile(), line_number, column_number); } @@ -520,7 +520,7 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_context.h b/third_p #include "third_party/blink/public/mojom/frame/reporting_observer.mojom-blink.h" #include "third_party/blink/public/mojom/reporting/reporting.mojom-blink.h" #include "third_party/blink/renderer/core/core_export.h" -@@ -52,10 +53,10 @@ class CORE_EXPORT ReportingContext : public GarbageCollected, +@@ -56,10 +57,10 @@ class CORE_EXPORT ReportingContext : public GarbageCollected, private: // Counts the use of a report type via UseCounter. void CountReport(Report*); @@ -533,7 +533,7 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_context.h b/third_p void NotifyInternal(Report* report); // Send |report| via the Reporting API to |endpoint|. void SendToReportingAPI(Report* report, const String& endpoint) const; -@@ -67,8 +68,10 @@ class CORE_EXPORT ReportingContext : public GarbageCollected, +@@ -71,8 +72,10 @@ class CORE_EXPORT ReportingContext : public GarbageCollected, // This is declared mutable so that the service endpoint can be cached by // const methods. diff --git a/build/patches/Allow-building-without-supervised-users.patch b/build/patches/Allow-building-without-supervised-users.patch index 2171ed0e..8552303e 100644 --- a/build/patches/Allow-building-without-supervised-users.patch +++ b/build/patches/Allow-building-without-supervised-users.patch @@ -24,7 +24,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 -@@ -815,7 +815,6 @@ if (_is_default_toolchain) { +@@ -810,7 +810,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", @@ -77,7 +77,7 @@ diff --git a/chrome/browser/prefs/chrome_pref_service_factory.cc b/chrome/browse 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 -@@ -476,7 +476,7 @@ bool ProfileAttributesEntry::IsSigninRequired() const { +@@ -475,7 +475,7 @@ bool ProfileAttributesEntry::IsSigninRequired() const { } std::string ProfileAttributesEntry::GetSupervisedUserId() const { @@ -89,7 +89,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 -@@ -679,10 +679,6 @@ void ProfileImpl::DoFinalInit(CreateMode create_mode) { +@@ -680,10 +680,6 @@ void ProfileImpl::DoFinalInit(CreateMode create_mode) { prefs->SetTime(prefs::kProfileCreationTime, path_creation_time_); pref_change_registrar_.Init(prefs); @@ -100,7 +100,7 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p // Changes in the profile avatar. pref_change_registrar_.Add( -@@ -1603,6 +1599,7 @@ GURL ProfileImpl::GetHomePage() { +@@ -1604,6 +1600,7 @@ GURL ProfileImpl::GetHomePage() { } void ProfileImpl::UpdateSupervisedUserIdInStorage() { @@ -111,7 +111,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 -@@ -1262,10 +1262,6 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) { +@@ -1265,10 +1265,6 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) { profile->GetPrefs()->SetString(prefs::kProfileName, profile_name); } @@ -122,7 +122,7 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile } void ProfileManager::RegisterTestingProfile(std::unique_ptr profile, -@@ -2044,9 +2040,6 @@ void ProfileManager::AddProfileToStorage(Profile* profile) { +@@ -2051,9 +2047,6 @@ void ProfileManager::AddProfileToStorage(Profile* profile) { init_params.icon_index = profile->GetPrefs()->GetInteger(prefs::kProfileAvatarIndex); @@ -160,7 +160,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 -@@ -623,10 +623,6 @@ bool ManagementUIHandler::managed() const { +@@ -622,10 +622,6 @@ bool ManagementUIHandler::managed() const { void ManagementUIHandler::RegisterPrefChange( PrefChangeRegistrar& pref_registrar) { @@ -174,14 +174,14 @@ diff --git a/chrome/browser/ui/webui/management/management_ui_handler.cc b/chrom 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 -@@ -172,6 +172,7 @@ void SupervisedUserPrefStore::OnNewContentFiltersStateAvailable( +@@ -171,6 +171,7 @@ void SupervisedUserPrefStore::RecreatePreferences() { + return; + } - void SupervisedUserPrefStore::OnNewSettingsAvailable( - const base::Value::Dict& settings) { + if ((true)) return; std::unique_ptr old_prefs = std::move(prefs_); prefs_ = std::make_unique(); - if (!settings.empty()) { + 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 +208,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 -@@ -244,6 +244,7 @@ SupervisedUserService::SupervisedUserService( +@@ -204,6 +204,7 @@ SupervisedUserService::SupervisedUserService( } void SupervisedUserService::SetSettingsServiceActive(bool active) { @@ -235,9 +235,9 @@ diff --git a/components/supervised_user/core/common/features.cc b/components/sup int32_t major, minor, bugfix; base::SysInfo::OperatingSystemVersionNumbers(&major, &minor, &bugfix); bool supported_by_os = (major == 16 && minor >= 1) || major > 16; -@@ -151,4 +151,5 @@ bool ClassifyUrlWithoutCredentialsForLocalSupervision() { - - #endif +@@ -154,4 +154,5 @@ bool ClassifyUrlWithoutCredentialsForLocalSupervision() { + BASE_FEATURE(kSupervisedUserUseUrlFilteringService, + base::FEATURE_DISABLED_BY_DEFAULT); +SET_CROMITE_FEATURE_DISABLED(kLocalWebApprovals); } // namespace supervised_user diff --git a/build/patches/Allow-playing-audio-in-background.patch b/build/patches/Allow-playing-audio-in-background.patch index 4f1dd80c..04e46e76 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 -@@ -1287,6 +1287,12 @@ bool WebMediaPlayerImpl::HasAudio() const { +@@ -1288,6 +1288,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()); -@@ -3654,7 +3660,10 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const { +@@ -3650,7 +3656,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 b1282811..7eebc70f 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 @@ -79,9 +79,9 @@ 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 -@@ -404,6 +404,7 @@ jboolean TemplateUrlServiceAndroid::SetPlayAPISearchEngine( +@@ -400,6 +400,7 @@ bool TemplateUrlServiceAndroid::SetPlayAPISearchEngine( jimage_translate_source_language_param_key, - const base::android::JavaParamRef& + const base::android::JavaRef& jimage_translate_target_language_param_key) { + if ((true)) return false; // The function is scheduled to run only when the service is loaded, see diff --git a/build/patches/Android-Pixel-Perfect-Mode.patch b/build/patches/Android-Pixel-Perfect-Mode.patch index 222f76bf..24f1b0d3 100644 --- a/build/patches/Android-Pixel-Perfect-Mode.patch +++ b/build/patches/Android-Pixel-Perfect-Mode.patch @@ -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 -@@ -955,7 +955,7 @@ void AwContents::OnSizeChanged(JNIEnv* env, int w, int h, int ow, int oh) { +@@ -957,7 +957,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); @@ -129,7 +129,7 @@ diff --git a/android_webview/browser/aw_contents.cc b/android_webview/browser/aw diff --git a/cc/input/input_handler.cc b/cc/input/input_handler.cc --- a/cc/input/input_handler.cc +++ b/cc/input/input_handler.cc -@@ -720,7 +720,7 @@ InputHandlerPointerResult InputHandler::MouseMoveAt( +@@ -737,7 +737,7 @@ InputHandlerPointerResult InputHandler::MouseMoveAt( return result; } @@ -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 -@@ -1311,7 +1311,7 @@ void VizLayerContext::SetVisible(bool visible) { +@@ -1332,7 +1332,7 @@ void VizLayerContext::SetVisible(bool visible) { service_->SetVisible(visible); } @@ -186,8 +186,8 @@ 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 -@@ -26,6 +26,7 @@ CommitState::CommitState(const CommitState& prev) - load_progress(prev.load_progress), +@@ -25,6 +25,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), + browser_control_scale_factor(prev.browser_control_scale_factor), @@ -197,8 +197,8 @@ 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 -@@ -95,6 +95,7 @@ struct CC_EXPORT CommitState { - float load_progress = 0.f; +@@ -94,6 +94,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; + float browser_control_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 -@@ -1391,7 +1391,7 @@ void LayerTreeHost::SetEventListenerProperties( +@@ -1393,7 +1393,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) { -@@ -1511,9 +1511,11 @@ void LayerTreeHost::SetOverscrollBehavior(const OverscrollBehavior& behavior) { +@@ -1504,9 +1504,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); -@@ -1529,6 +1531,7 @@ void LayerTreeHost::SetPageScaleFactorAndLimits(float page_scale_factor, +@@ -1522,6 +1524,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 -@@ -567,6 +567,7 @@ class CC_EXPORT LayerTreeHost : public MutatorHostClient { +@@ -570,6 +570,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; -@@ -574,6 +575,9 @@ class CC_EXPORT LayerTreeHost : public MutatorHostClient { +@@ -577,6 +578,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 -@@ -2587,7 +2587,7 @@ viz::RegionCaptureBounds LayerTreeHostImpl::CollectRegionCaptureBounds() { +@@ -2788,7 +2788,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, -@@ -2754,7 +2754,7 @@ viz::CompositorFrameMetadata LayerTreeHostImpl::MakeCompositorFrameMetadata() { +@@ -2948,7 +2948,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 -@@ -163,6 +163,7 @@ LayerTreeImpl::LayerTreeImpl( +@@ -164,6 +164,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), -@@ -450,7 +451,7 @@ void LayerTreeImpl::InvalidateRasterInducingScrolls( +@@ -451,7 +452,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; -@@ -520,8 +521,13 @@ void LayerTreeImpl::UpdateViewportContainerSizes() { +@@ -521,8 +522,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 -@@ -843,6 +849,7 @@ void LayerTreeImpl::PullLayerTreePropertiesFrom(CommitState& commit_state) { +@@ -844,6 +850,7 @@ void LayerTreeImpl::PullLayerTreePropertiesFrom(CommitState& commit_state) { PushPageScaleFromMainThread(commit_state.page_scale_factor, commit_state.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_); -@@ -1402,19 +1410,21 @@ void LayerTreeImpl::SetPageScaleOnActiveTree(float active_page_scale) { +@@ -1399,19 +1407,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(); -@@ -1423,12 +1433,13 @@ void LayerTreeImpl::SetPageScaleFactorAndLimitsForDisplayTree( +@@ -1420,12 +1430,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()); -@@ -1545,12 +1556,15 @@ void LayerTreeImpl::PushBrowserControls( +@@ -1530,12 +1541,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; -@@ -2451,7 +2465,7 @@ ScrollbarSet LayerTreeImpl::ScrollbarsFor(ElementId scroll_element_id) const { +@@ -2433,7 +2447,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, -@@ -3062,7 +3076,7 @@ static gfx::SelectionBound ComputeViewportSelectionBound( +@@ -3044,7 +3058,7 @@ static gfx::SelectionBound ComputeViewportSelectionBound( return viewport_bound; } @@ -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 -@@ -1690,7 +1690,7 @@ void ScrollTree::clear() { +@@ -1749,7 +1749,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); -@@ -2239,7 +2239,7 @@ gfx::Vector2dF ScrollTree::ScrollBy(const ScrollNode& scroll_node, +@@ -2302,7 +2302,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 -@@ -44,6 +44,9 @@ import androidx.annotation.NonNull; +@@ -45,6 +45,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; -@@ -552,7 +555,25 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -559,7 +562,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 -@@ -977,7 +977,7 @@ public class CompositorViewHolder extends FrameLayout +@@ -1004,7 +1004,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 -@@ -997,7 +997,7 @@ public class CompositorViewHolder extends FrameLayout +@@ -1024,7 +1024,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,7 +572,7 @@ 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 -@@ -2394,7 +2394,7 @@ class TabImpl implements Tab { +@@ -2475,7 +2475,7 @@ class TabImpl implements Tab { Supplier compositorViewHolderSupplier = assumeNonNull(getActivity()).getCompositorViewHolderSupplier(); View compositorView = compositorViewHolderSupplier.get(); @@ -584,9 +584,9 @@ 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 -@@ -23,12 +23,14 @@ import org.chromium.chrome.browser.settings.ChromeBaseSettingsFragment; - import org.chromium.components.browser_ui.settings.EmbeddableSettingsPage; +@@ -26,12 +26,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; +import org.chromium.chrome.browser.flags.CromiteNativeUtils; @@ -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"; -@@ -80,6 +82,14 @@ public class DeveloperSettings extends ChromeBaseSettingsFragment implements Emb +@@ -83,6 +85,14 @@ public class DeveloperSettings extends ChromeBaseSettingsFragment implements Emb // handle the click so the default action isn't triggered. return true; }); @@ -613,11 +613,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tracing/setting + }); } - @Override + private static boolean shouldRemoveBetaStableHint() { diff --git a/chrome/browser/android/bottombar/overlay_panel_content.cc b/chrome/browser/android/bottombar/overlay_panel_content.cc --- a/chrome/browser/android/bottombar/overlay_panel_content.cc +++ b/chrome/browser/android/bottombar/overlay_panel_content.cc -@@ -53,7 +53,7 @@ void OverlayPanelContent::OnPhysicalBackingSizeChanged( +@@ -52,7 +52,7 @@ void OverlayPanelContent::OnPhysicalBackingSizeChanged( jint height) { gfx::Size size(width, height); web_contents->GetNativeView()->OnPhysicalBackingSizeChanged(size); @@ -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" -@@ -76,7 +77,10 @@ class TabContentManager::TabReadbackRequest { +@@ -75,7 +76,10 @@ class TabContentManager::TabReadbackRequest { std::move(result_callback).Run(viz::CopyOutputBitmapWithMetadata()); return; } @@ -648,7 +648,7 @@ diff --git a/chrome/browser/android/compositor/tab_content_manager.cc b/chrome/b + gfx::Rect source_rect = gfx::Rect(view_size_in_pixels.width() / scale, view_size_in_pixels.height() / scale); gfx::Size thumbnail_size( gfx::ScaleToCeiledSize(view_size_in_pixels, thumbnail_scale_)); - rwhv->CopyFromSurface(source_rect, thumbnail_size, + rwhv->CopyFromSurface(source_rect, thumbnail_size, base::TimeDelta(), diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sPixelPerfect.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sPixelPerfect.java new file mode 100644 --- /dev/null @@ -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 -@@ -106,7 +106,7 @@ void ThinWebView::ResizeWebContents(const gfx::Size& size) { +@@ -105,7 +105,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 -@@ -1883,7 +1883,7 @@ base::expected LayerContextImpl::DoUpdateDisplayTree( +@@ -1917,7 +1917,7 @@ base::expected LayerContextImpl::DoUpdateDisplayTree( return base::unexpected("Invalid page scale factors"); } layers.SetPageScaleFactorAndLimitsForDisplayTree( @@ -896,7 +896,7 @@ diff --git a/components/viz/service/layers/layer_context_impl.cc b/components/vi diff --git a/content/browser/android/selection/selection_popup_controller.cc b/content/browser/android/selection/selection_popup_controller.cc --- a/content/browser/android/selection/selection_popup_controller.cc +++ b/content/browser/android/selection/selection_popup_controller.cc -@@ -191,7 +191,7 @@ void SelectionPopupController::MoveRangeSelectionExtent( +@@ -189,7 +189,7 @@ void SelectionPopupController::MoveRangeSelectionExtent( web_contents_impl->MoveRangeSelectionExtent(gfx::ToRoundedPoint(extent)); } @@ -905,7 +905,7 @@ diff --git a/content/browser/android/selection/selection_popup_controller.cc b/c const gfx::PointF& base, const gfx::PointF& extent) { auto* web_contents_impl = static_cast(web_contents()); -@@ -323,7 +323,8 @@ bool SelectionPopupController::ShowSelectionMenu( +@@ -321,7 +321,8 @@ bool SelectionPopupController::ShowSelectionMenu( can_select_all, can_edit_richly, should_suggest, static_cast(params.source_type), render_frame_host->GetJavaRenderFrameHost(), @@ -926,7 +926,7 @@ diff --git a/content/browser/renderer_host/cross_process_frame_connector.cc b/co #include "third_party/blink/public/common/frame/frame_visual_properties.h" #include "third_party/blink/public/common/input/web_input_event.h" #include "third_party/blink/public/mojom/frame/intrinsic_sizing_info.mojom.h" -@@ -220,9 +221,12 @@ void CrossProcessFrameConnector::SynchronizeVisualProperties( +@@ -221,9 +222,12 @@ void CrossProcessFrameConnector::SynchronizeVisualProperties( render_widget_host->SetAutoResize(visual_properties.auto_resize_enabled, visual_properties.min_size_for_auto_resize, visual_properties.max_size_for_auto_resize); @@ -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, -@@ -475,7 +479,7 @@ void CrossProcessFrameConnector::SetVisibilityForChildViews( +@@ -476,7 +480,7 @@ void CrossProcessFrameConnector::SetVisibilityForChildViews( 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; -@@ -484,7 +488,7 @@ void CrossProcessFrameConnector::SetLocalFrameSize( +@@ -485,7 +489,7 @@ void CrossProcessFrameConnector::SetLocalFrameSize( gfx::ScaleToRoundedSize(local_frame_size, 1.f / dsf); } @@ -962,7 +962,7 @@ diff --git a/content/browser/renderer_host/delegated_frame_host.cc b/content/bro --- a/content/browser/renderer_host/delegated_frame_host.cc +++ b/content/browser/renderer_host/delegated_frame_host.cc @@ -187,7 +187,7 @@ void DelegatedFrameHost::CopyFromCompositingSurfaceAsTexture( - std::move(callback)); + base::TimeDelta(), std::move(callback)); } -void DelegatedFrameHost::CopyFromCompositingSurfaceInternal( @@ -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 -@@ -9315,7 +9315,7 @@ void RenderFrameHostImpl::ShowPopupMenu( +@@ -9382,7 +9382,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 -@@ -1055,7 +1055,20 @@ blink::VisualProperties RenderWidgetHostImpl::GetVisualProperties() { +@@ -1054,7 +1054,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 -@@ -1160,6 +1173,13 @@ blink::VisualProperties RenderWidgetHostImpl::GetVisualProperties() { +@@ -1159,6 +1172,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 = -@@ -1340,8 +1360,10 @@ bool RenderWidgetHostImpl::SynchronizeVisualProperties( +@@ -1339,8 +1359,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 -@@ -4010,7 +4032,7 @@ void RenderWidgetHostImpl::IntrinsicSizingInfoChanged( +@@ -4024,7 +4046,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. @@ -1116,11 +1116,11 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/ +void RenderWidgetHostViewAndroid::CopyFromSurface( // POI const gfx::Rect& src_subrect, const gfx::Size& output_size, - base::OnceCallback + base::TimeDelta timeout, diff --git a/content/browser/renderer_host/render_widget_host_view_android.h b/content/browser/renderer_host/render_widget_host_view_android.h --- a/content/browser/renderer_host/render_widget_host_view_android.h +++ b/content/browser/renderer_host/render_widget_host_view_android.h -@@ -172,6 +172,7 @@ class CONTENT_EXPORT RenderWidgetHostViewAndroid +@@ -170,6 +170,7 @@ class CONTENT_EXPORT RenderWidgetHostViewAndroid gfx::Size GetRequestedRendererSizeDevicePx() override; gfx::Size GetVisibleViewportSize() override; gfx::Size GetVisibleViewportSizeDevicePx() override; @@ -1142,7 +1142,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_base.cc b/con void RenderWidgetHostViewBase::SelectionBoundsChanged( const gfx::Rect& anchor_rect, base::i18n::TextDirection anchor_dir, -@@ -614,7 +618,7 @@ display::ScreenInfos RenderWidgetHostViewBase::GetScreenInfos() const { +@@ -628,7 +632,7 @@ display::ScreenInfos RenderWidgetHostViewBase::GetScreenInfos() const { void RenderWidgetHostViewBase::ResetGestureDetection() {} @@ -1154,7 +1154,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_base.cc b/con diff --git a/content/browser/renderer_host/render_widget_host_view_base.h b/content/browser/renderer_host/render_widget_host_view_base.h --- a/content/browser/renderer_host/render_widget_host_view_base.h +++ b/content/browser/renderer_host/render_widget_host_view_base.h -@@ -294,6 +294,8 @@ class CONTENT_EXPORT RenderWidgetHostViewBase +@@ -289,6 +289,8 @@ class CONTENT_EXPORT RenderWidgetHostViewBase // The size of the view's backing surface in non-DPI-adjusted pixels. virtual gfx::Size GetCompositorViewportPixelSize(); @@ -1166,7 +1166,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_base.h b/cont diff --git a/content/browser/renderer_host/render_widget_host_view_child_frame.cc b/content/browser/renderer_host/render_widget_host_view_child_frame.cc --- a/content/browser/renderer_host/render_widget_host_view_child_frame.cc +++ b/content/browser/renderer_host/render_widget_host_view_child_frame.cc -@@ -442,6 +442,10 @@ void RenderWidgetHostViewChildFrame::RequestInputBackForDragAndDrop( +@@ -443,6 +443,10 @@ void RenderWidgetHostViewChildFrame::RequestInputBackForDragAndDrop( } #endif @@ -1180,7 +1180,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_child_frame.c diff --git a/content/browser/renderer_host/render_widget_host_view_child_frame.h b/content/browser/renderer_host/render_widget_host_view_child_frame.h --- a/content/browser/renderer_host/render_widget_host_view_child_frame.h +++ b/content/browser/renderer_host/render_widget_host_view_child_frame.h -@@ -122,6 +122,7 @@ class CONTENT_EXPORT RenderWidgetHostViewChildFrame +@@ -119,6 +119,7 @@ class CONTENT_EXPORT RenderWidgetHostViewChildFrame RenderWidgetHostViewBase* GetRootView() override; uint32_t GetCaptureSequenceNumber() const override; gfx::Size GetCompositorViewportPixelSize() override; @@ -1191,7 +1191,7 @@ 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 -@@ -834,8 +834,11 @@ WebContentsAndroid::GetFullscreenVideoSize(JNIEnv* env) { +@@ -831,8 +831,11 @@ WebContentsAndroid::GetFullscreenVideoSize(JNIEnv* env) { return Java_WebContentsImpl_createSize(env, size.width(), size.height()); } @@ -1208,7 +1208,7 @@ diff --git a/content/browser/web_contents/web_contents_android.cc b/content/brow diff --git a/content/browser/web_contents/web_contents_android.h b/content/browser/web_contents/web_contents_android.h --- a/content/browser/web_contents/web_contents_android.h +++ b/content/browser/web_contents/web_contents_android.h -@@ -188,7 +188,7 @@ class CONTENT_EXPORT WebContentsAndroid { +@@ -187,7 +187,7 @@ class CONTENT_EXPORT WebContentsAndroid { base::android::ScopedJavaLocalRef GetFullscreenVideoSize( JNIEnv* env); @@ -1220,7 +1220,7 @@ diff --git a/content/browser/web_contents/web_contents_android.h b/content/brows 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 -@@ -531,7 +531,11 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs( +@@ -534,7 +534,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 -@@ -526,7 +526,8 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper +@@ -527,7 +527,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); -@@ -536,6 +537,8 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper +@@ -537,6 +538,8 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper mXDip = xDip; mYDip = yDip; mSelectionRect.set(left, top, right, offsetBottom); @@ -1294,7 +1294,7 @@ diff --git a/content/public/android/java/src/org/chromium/content_public/browser 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 -@@ -17,6 +17,10 @@ +@@ -18,6 +18,10 @@ namespace features { @@ -1344,7 +1344,7 @@ new file mode 100644 diff --git a/services/viz/public/mojom/compositing/layer_context.mojom b/services/viz/public/mojom/compositing/layer_context.mojom --- a/services/viz/public/mojom/compositing/layer_context.mojom +++ b/services/viz/public/mojom/compositing/layer_context.mojom -@@ -81,6 +81,7 @@ struct LayerTreeUpdate { +@@ -82,6 +82,7 @@ struct LayerTreeUpdate { // The page scale factors set by the tree's client. All must be positive, // non-zero. float page_scale_factor; @@ -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 -@@ -1255,8 +1255,19 @@ void WebViewImpl::UpdateICBAndResizeViewport( +@@ -1288,8 +1288,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); -@@ -1336,7 +1347,8 @@ void WebViewImpl::DidUpdateBrowserControls() { +@@ -1369,7 +1380,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 } } -@@ -1410,7 +1422,7 @@ void WebViewImpl::ResizeWithBrowserControls( +@@ -1433,7 +1445,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(), -@@ -1420,6 +1432,8 @@ void WebViewImpl::ResizeWithBrowserControls( +@@ -1443,6 +1455,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 -@@ -1428,6 +1442,11 @@ void WebViewImpl::ResizeWithBrowserControls( +@@ -1451,6 +1465,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) -@@ -2112,7 +2131,7 @@ void WebViewImpl::DidAttachLocalMainFrame() { +@@ -2137,7 +2156,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_ = -@@ -2928,7 +2947,7 @@ void WebViewImpl::RefreshPageScaleFactor() { +@@ -2984,7 +3003,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 } } -@@ -3005,7 +3024,7 @@ void WebViewImpl::UpdatePageDefinedViewportConstraints( +@@ -3061,7 +3080,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; -@@ -3239,6 +3258,10 @@ float WebViewImpl::MinimumPageScaleFactor() const { +@@ -3386,6 +3405,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; } -@@ -3289,7 +3312,7 @@ void WebViewImpl::SendResizeEventForMainFrame() { +@@ -3436,7 +3459,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 } } -@@ -3834,7 +3857,7 @@ void WebViewImpl::PageScaleFactorChanged() { +@@ -3981,7 +4004,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. -@@ -827,6 +830,8 @@ class CORE_EXPORT WebViewImpl final : public WebView, +@@ -842,6 +845,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 -@@ -1791,8 +1791,11 @@ void LocalFrameView::PerformPostLayoutTasks(bool visual_viewport_size_changed) { +@@ -1789,8 +1789,11 @@ void LocalFrameView::PerformPostLayoutTasks(bool visual_viewport_size_changed) { } float LocalFrameView::InputEventsScaleFactor() const { @@ -1644,7 +1644,7 @@ diff --git a/third_party/blink/renderer/core/frame/visual_viewport.cc b/third_pa #include "third_party/blink/renderer/core/frame/local_frame.h" #include "third_party/blink/renderer/core/frame/local_frame_client.h" #include "third_party/blink/renderer/core/frame/local_frame_view.h" -@@ -96,6 +97,7 @@ VisualViewport::VisualViewport(Page& owner) +@@ -97,6 +98,7 @@ VisualViewport::VisualViewport(Page& owner) scale_(1), is_pinch_gesture_active_(false), browser_controls_adjustment_(0), @@ -1652,7 +1652,7 @@ diff --git a/third_party/blink/renderer/core/frame/visual_viewport.cc b/third_pa needs_paint_property_update_(true), overscroll_type_(ComputeOverscrollType()) { UniqueObjectId unique_id = NewUniqueObjectId(); -@@ -391,6 +393,33 @@ void VisualViewport::EnqueueResizeEvent() { +@@ -392,6 +394,33 @@ void VisualViewport::EnqueueResizeEvent() { document->EnqueueVisualViewportResizeEvent(); } @@ -1686,7 +1686,7 @@ diff --git a/third_party/blink/renderer/core/frame/visual_viewport.cc b/third_pa void VisualViewport::SetSize(const gfx::Size& size) { if (size_ == size) return; -@@ -446,7 +475,10 @@ gfx::RectF VisualViewport::VisibleRect( +@@ -447,7 +476,10 @@ gfx::RectF VisualViewport::VisibleRect( if (scrollbar_inclusion == kExcludeScrollbars) visible_size = gfx::SizeF(ExcludeScrollbars(size_)); @@ -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); -@@ -884,10 +916,13 @@ gfx::Point VisualViewport::ClampDocumentOffsetAtScale(const gfx::Point& offset, +@@ -868,10 +900,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&, - mojom::blink::ScrollType, -@@ -388,12 +391,14 @@ class CORE_EXPORT VisualViewport : public GarbageCollected, + bool SetScrollOffset( + const ScrollOffset&, +@@ -383,12 +386,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 -@@ -1872,6 +1872,9 @@ void WebFrameWidgetImpl::UpdateVisualProperties( +@@ -1881,6 +1881,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 -@@ -1879,7 +1882,7 @@ void WebFrameWidgetImpl::UpdateVisualProperties( +@@ -1888,7 +1891,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); -@@ -1892,7 +1895,7 @@ void WebFrameWidgetImpl::UpdateVisualProperties( +@@ -1901,7 +1904,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); } -@@ -1936,6 +1939,18 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( +@@ -1945,6 +1948,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) { -@@ -1953,6 +1968,8 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( +@@ -1962,6 +1977,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; } -@@ -1986,6 +2003,8 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( +@@ -1995,6 +2012,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); } -@@ -2374,6 +2393,8 @@ void WebFrameWidgetImpl::SetZoomInternal(double zoom_level, +@@ -2379,6 +2398,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()) { -@@ -3425,6 +3446,7 @@ void WebFrameWidgetImpl::SetRootLayer(scoped_refptr layer) { +@@ -3434,6 +3455,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()); } -@@ -4810,9 +4832,10 @@ void WebFrameWidgetImpl::SetPageScaleStateAndLimits( +@@ -4819,9 +4841,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()) { -@@ -4936,7 +4959,10 @@ void WebFrameWidgetImpl::OrientationChanged() { +@@ -4945,7 +4968,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 -@@ -5135,7 +5161,7 @@ void WebFrameWidgetImpl::SetDeviceScaleFactorForTesting(float factor) { +@@ -5144,7 +5170,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 -@@ -660,6 +660,7 @@ class CORE_EXPORT WebFrameWidgetImpl +@@ -659,6 +659,7 @@ class CORE_EXPORT WebFrameWidgetImpl void SetPageScaleStateAndLimits(float page_scale_factor, bool is_pinch_gesture_active, float minimum, @@ -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 -@@ -2103,7 +2103,7 @@ GestureEventWithHitTestResults EventHandler::HitTestResultForGestureEvent( +@@ -2139,7 +2139,7 @@ GestureEventWithHitTestResults EventHandler::HitTestResultForGestureEvent( hit_test_result); } @@ -1947,7 +1947,7 @@ diff --git a/third_party/blink/renderer/core/inspector/inspector_emulation_agent 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 -@@ -1289,6 +1289,10 @@ void Page::CalculateEmulatedScreenSetting(LocalFrame* frame, bool force) { +@@ -1290,6 +1290,10 @@ void Page::CalculateEmulatedScreenSetting(LocalFrame* frame, bool force) { || disable_screen_emulated_) { isEnabled = false; } @@ -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 -@@ -462,16 +462,17 @@ ImageData* BaseRenderingContext2D::getImageDataInternal( +@@ -463,16 +463,17 @@ ImageData* BaseRenderingContext2D::getImageDataInternal( } } @@ -1996,7 +1996,7 @@ 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 -@@ -6164,6 +6164,10 @@ +@@ -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", @@ -2019,7 +2019,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox #include "third_party/blink/renderer/platform/widget/input/compositor_thread_event_queue.h" #include "third_party/blink/renderer/platform/widget/input/cursor_control_handler.h" #include "third_party/blink/renderer/platform/widget/input/elastic_overscroll_controller.h" -@@ -62,6 +63,20 @@ constexpr unsigned int kStylusWritingHitTestRadius = 20; +@@ -57,6 +58,20 @@ namespace { using ::perfetto::protos::pbzero::ChromeLatencyInfo2; using ::perfetto::protos::pbzero::TrackEvent; @@ -2040,7 +2040,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox cc::ScrollStateData CreateScrollStateDataForGesture( const WebGestureEvent& event) { cc::ScrollStateData scroll_state_data; -@@ -70,8 +85,8 @@ cc::ScrollStateData CreateScrollStateDataForGesture( +@@ -65,8 +80,8 @@ cc::ScrollStateData CreateScrollStateDataForGesture( } switch (event.GetType()) { case WebInputEvent::Type::kGestureScrollBegin: @@ -2051,7 +2051,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox scroll_state_data.delta_x_hint = -event.data.scroll_begin.delta_x_hint; scroll_state_data.delta_y_hint = -event.data.scroll_begin.delta_y_hint; scroll_state_data.is_beginning = true; -@@ -897,7 +912,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler( +@@ -888,7 +903,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler( const WebGestureEvent& gesture_event = static_cast(event); input_handler_->PinchGestureBegin( @@ -2060,7 +2060,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox GestureScrollInputType(gesture_event.SourceDevice())); gesture_pinch_in_progress_ = true; return DID_HANDLE; -@@ -909,7 +924,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler( +@@ -900,7 +915,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler( const WebGestureEvent& gesture_event = static_cast(event); input_handler_->PinchGestureEnd( @@ -2069,7 +2069,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox return DID_HANDLE; } -@@ -919,7 +934,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler( +@@ -910,7 +925,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler( static_cast(event); input_handler_->PinchGestureUpdate( gesture_event.data.pinch_update.scale, @@ -2078,7 +2078,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox return DID_HANDLE; } -@@ -942,7 +957,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler( +@@ -933,7 +948,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler( // TODO(arakeri): Pass in the modifier instead of a bool once the // refactor (crbug.com/1022097) is done. For details, see // crbug.com/1016955. @@ -2087,7 +2087,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox } return DID_NOT_HANDLE; -@@ -953,7 +968,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler( +@@ -944,7 +959,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler( static_cast(event); CHECK(input_handler_); if (mouse_event.button == WebMouseEvent::Button::kLeft) @@ -2096,7 +2096,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox return DID_NOT_HANDLE; } case WebInputEvent::Type::kMouseMove: { -@@ -968,7 +983,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler( +@@ -959,7 +974,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler( (mouse_event.button == WebPointerProperties::Button::kNoButton && !(mouse_event.GetModifiers() & WebInputEvent::Modifiers::kRelativeMotionEvent)); @@ -2105,7 +2105,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox should_cancel_scrollbar_drag); return DID_NOT_HANDLE; } -@@ -1007,12 +1022,14 @@ WebInputEventAttribution InputHandlerProxy::PerformEventAttribution( +@@ -998,12 +1013,14 @@ WebInputEventAttribution InputHandlerProxy::PerformEventAttribution( // to check pointer lock state gfx::PointF point = static_cast(event).PositionInWidget(); @@ -2120,7 +2120,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox return WebInputEventAttribution( WebInputEventAttribution::kTargetedFrame, input_handler_->FindFrameElementIdAtPoint(point)); -@@ -1027,6 +1044,7 @@ WebInputEventAttribution InputHandlerProxy::PerformEventAttribution( +@@ -1018,6 +1035,7 @@ WebInputEventAttribution InputHandlerProxy::PerformEventAttribution( // how the renderer host performs touch event dispatch. // https://cs.chromium.org/chromium/src/content/browser/renderer_host/render_widget_host_input_event_router.cc?l=808&rcl=10fe9d0a725d4ed7b69266a5936c525f0a5b26d3 gfx::PointF point = touch_event.touches[0].PositionInWidget(); @@ -2128,7 +2128,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox const cc::ElementId targeted_element = input_handler_->FindFrameElementIdAtPoint(point); -@@ -1128,7 +1146,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleMouseWheel( +@@ -1119,7 +1137,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleMouseWheel( } } @@ -2137,7 +2137,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; -@@ -1310,7 +1328,7 @@ InputHandlerProxy::HandleGestureScrollUpdate( +@@ -1303,7 +1321,7 @@ InputHandlerProxy::HandleGestureScrollUpdate( scroll_data->set_unused_delta_y(scroll_result.unused_scroll_delta.y()); }); @@ -2146,7 +2146,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox gesture_event.SourceDevice()); if (elastic_overscroll_controller_) { -@@ -1403,8 +1421,8 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HitTestTouchEvent( +@@ -1396,8 +1414,8 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HitTestTouchEvent( } cc::TouchAction touch_action = cc::TouchAction::kAuto; @@ -2157,7 +2157,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. -@@ -1519,7 +1537,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleTouchStart( +@@ -1512,7 +1530,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 +2166,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; -@@ -1582,7 +1600,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleTouchMove( +@@ -1575,7 +1593,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 +2175,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; -@@ -1625,7 +1643,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleTouchEnd( +@@ -1618,7 +1636,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleTouchEnd( touch_event.touches_length); if (touch_event.touches_length == 1) { cc::InputHandlerPointerResult pointer_result = HandlePointerUp( @@ -2187,7 +2187,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 -@@ -1685,7 +1685,9 @@ void WidgetBase::RequestAnimationAfterDelayTimerFired(TimerBase*) { +@@ -1682,7 +1682,9 @@ void WidgetBase::RequestAnimationAfterDelayTimerFired(TimerBase*) { client_->ScheduleAnimation(/*urgent=*/urgent_for_input); } @@ -2198,7 +2198,7 @@ diff --git a/third_party/blink/renderer/platform/widget/widget_base.cc b/third_p return client_->GetOriginalScreenInfos().current().device_scale_factor; } -@@ -1719,7 +1721,7 @@ void WidgetBase::UpdateSurfaceAndScreenInfo( +@@ -1716,7 +1718,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 +2207,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. -@@ -1849,56 +1851,56 @@ void WidgetBase::CountDroppedPointerDownForEventTiming(unsigned count) { +@@ -1846,56 +1848,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? @@ -2277,7 +2277,7 @@ diff --git a/third_party/blink/renderer/platform/widget/widget_base.cc b/third_p diff --git a/third_party/blink/renderer/platform/widget/widget_base.h b/third_party/blink/renderer/platform/widget/widget_base.h --- a/third_party/blink/renderer/platform/widget/widget_base.h +++ b/third_party/blink/renderer/platform/widget/widget_base.h -@@ -405,7 +405,7 @@ class PLATFORM_EXPORT WidgetBase : public mojom::blink::Widget, +@@ -406,7 +406,7 @@ class PLATFORM_EXPORT WidgetBase : public mojom::blink::Widget, void OnDevToolsSessionConnectionChanged(bool attached); // Helper to get the non-emulated device scale factor. @@ -2289,7 +2289,7 @@ diff --git a/third_party/blink/renderer/platform/widget/widget_base.h b/third_pa 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 -@@ -190,7 +190,7 @@ const viz::FrameSinkId& DelegatedFrameHostAndroid::GetFrameSinkId() const { +@@ -189,7 +189,7 @@ const viz::FrameSinkId& DelegatedFrameHostAndroid::GetFrameSinkId() const { return frame_sink_id_; } @@ -2297,11 +2297,11 @@ diff --git a/ui/android/delegated_frame_host_android.cc b/ui/android/delegated_f +void DelegatedFrameHostAndroid::CopyFromCompositingSurface( // POI const gfx::Rect& src_subrect, const gfx::Size& output_size, - base::OnceCallback callback, + base::TimeDelta timeout, diff --git a/ui/android/event_forwarder.cc b/ui/android/event_forwarder.cc --- a/ui/android/event_forwarder.cc +++ b/ui/android/event_forwarder.cc -@@ -137,7 +137,7 @@ jboolean EventForwarder::OnTouchEvent(JNIEnv* env, +@@ -137,7 +137,7 @@ bool EventForwarder::OnTouchEvent(JNIEnv* env, JNI_MotionEvent::Java_MotionEvent_getDownTime(env, motion_event)); auto event = ui::MotionEventAndroidFactory::CreateFromJava( env, /*event=*/motion_event, @@ -2320,24 +2320,24 @@ diff --git a/ui/android/event_forwarder.cc b/ui/android/event_forwarder.cc /*ticks_y=*/0.f, /*tick_multiplier=*/0.f, @@ -225,7 +225,7 @@ void EventForwarder::OnDragEvent(JNIEnv* env, - const JavaParamRef& j_text, - const JavaParamRef& j_html, - const JavaParamRef& j_url) { + const JavaRef& j_text, + const JavaRef& j_html, + const JavaRef& j_url) { - float dip_scale = view_->GetDipScale(); + float dip_scale = view_->GetDipScaleFactor(); gfx::PointF location(x / dip_scale, y / dip_scale); gfx::PointF root_location(screen_x / dip_scale, screen_y / dip_scale); std::vector mime_types; -@@ -240,7 +240,7 @@ jboolean EventForwarder::OnGestureEvent(JNIEnv* env, - jint type, - jlong time_ms, - jfloat scale) { +@@ -240,7 +240,7 @@ bool EventForwarder::OnGestureEvent(JNIEnv* env, + jint type, + jlong time_ms, + jfloat scale) { - float dip_scale = view_->GetDipScale(); + float dip_scale = view_->GetDipScaleFactor(); auto size = view_->GetSizeDIPs(); float x = size.width() / 2; float y = size.height() / 2; -@@ -271,7 +271,7 @@ jboolean EventForwarder::OnGenericMotionEvent( +@@ -270,7 +270,7 @@ bool EventForwarder::OnGenericMotionEvent(JNIEnv* env, base::TimeTicks down_time = base::TimeTicks::FromUptimeMillis(down_time_ms); auto event = ui::MotionEventAndroidFactory::CreateFromJava( env, /*event=*/motion_event, @@ -2346,7 +2346,7 @@ 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, -@@ -360,7 +360,7 @@ void EventForwarder::DoubleTap(JNIEnv* env, +@@ -357,7 +357,7 @@ void EventForwarder::DoubleTap(JNIEnv* env, jlong time_ms, jint x, jint y) { @@ -2355,7 +2355,7 @@ diff --git a/ui/android/event_forwarder.cc b/ui/android/event_forwarder.cc 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, -@@ -379,7 +379,7 @@ void EventForwarder::StartFling(JNIEnv* env, +@@ -376,7 +376,7 @@ void EventForwarder::StartFling(JNIEnv* env, if (velocity_x == 0 && velocity_y == 0) return; @@ -2367,9 +2367,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 -@@ -66,6 +66,12 @@ public class UiAndroidFeatureList { - UiAndroidFeatures.ANDROID_TOUCHPAD_OVERSCROLL_HISTORY_NAVIGATION, - /* defaultValue= */ true); +@@ -64,6 +64,12 @@ public class UiAndroidFeatureList { + newMutableFlagWithSafeDefault( + UiAndroidFeatures.ANDROID_HISTORY_PANE_FAVICONS, /* defaultValue= */ false); + public static final CachedFlag sPixelPerfect = + newCachedFlag( @@ -2379,7 +2379,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/UiAndroidFeatureList.java + public static final List sFlagsCachedUiAndroid = List.of( - sAndroidUseCorrectWindowBounds, + sAndroidUseDisplayTopology, 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 diff --git a/build/patches/Android-Toolbar-Scroll-Ablation-setting.patch b/build/patches/Android-Toolbar-Scroll-Ablation-setting.patch index dc5f2e51..24ef4383 100644 --- a/build/patches/Android-Toolbar-Scroll-Ablation-setting.patch +++ b/build/patches/Android-Toolbar-Scroll-Ablation-setting.patch @@ -18,15 +18,15 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserStateBrowserControlsVisibilityDelegate.java b/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserStateBrowserControlsVisibilityDelegate.java --- a/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserStateBrowserControlsVisibilityDelegate.java +++ b/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserStateBrowserControlsVisibilityDelegate.java -@@ -41,6 +41,7 @@ public class BrowserStateBrowserControlsVisibilityDelegate extends BrowserContro - private final ObservableSupplier mPersistentFullscreenMode; +@@ -40,6 +40,7 @@ public class BrowserStateBrowserControlsVisibilityDelegate extends BrowserContro + private final NonNullObservableSupplier mPersistentFullscreenMode; private long mCurrentShowingStartTime; + private int temporaryToken; /** - * Constructs a BrowserControlsVisibilityDelegate designed to deal with overrides driven by -@@ -66,7 +67,8 @@ public class BrowserStateBrowserControlsVisibilityDelegate extends BrowserContro + * Constructs a BrowserControlsVisibilityDelegate designed to deal with overrides driven by the +@@ -64,7 +65,8 @@ public class BrowserStateBrowserControlsVisibilityDelegate extends BrowserContro long currentShowingTime = SystemClock.uptimeMillis() - mCurrentShowingStartTime; if (currentShowingTime >= MINIMUM_SHOW_DURATION_MS) return; diff --git a/build/patches/Android-fonts-fingerprinting-mitigation.patch b/build/patches/Android-fonts-fingerprinting-mitigation.patch index 11cb2404..16583851 100644 --- a/build/patches/Android-fonts-fingerprinting-mitigation.patch +++ b/build/patches/Android-fonts-fingerprinting-mitigation.patch @@ -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 -@@ -933,6 +933,9 @@ public final class ProductionSupportedFlagList { +@@ -929,6 +929,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."), @@ -99,12 +99,12 @@ diff --git a/android_webview/nonembedded/component_updater/registration.cc b/and diff --git a/build/config/freetype/freetype.gni b/build/config/freetype/freetype.gni --- a/build/config/freetype/freetype.gni +++ b/build/config/freetype/freetype.gni -@@ -26,5 +26,5 @@ declare_args() { - # https://crbug.com/370816215 - # - # Note: //build should not import directly from //pdf for layering reasons. -- enable_freetype = !is_android && !is_ios && (is_linux || !is_castos) -+ enable_freetype = is_android || (!is_ios && (is_linux || !is_castos)) +@@ -24,5 +24,5 @@ declare_args() { + # This should be kept in sync with the value of `enable_pdf` in + # //pdf/features.gni, but for layering reasons, + # we can't import pdf's features.gni here. +- enable_freetype = !is_android && !is_ios && !is_castos && !is_fuchsia ++ enable_freetype = is_android || (!is_ios && !is_castos && !is_fuchsia) } diff --git a/chrome/android/java/res/xml/developer_preferences.xml b/chrome/android/java/res/xml/developer_preferences.xml --- a/chrome/android/java/res/xml/developer_preferences.xml @@ -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 -@@ -8012,6 +8012,13 @@ static_library("browser") { +@@ -7999,6 +7999,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 -@@ -115,10 +115,20 @@ +@@ -111,10 +111,20 @@ #include "chrome/browser/component_updater/file_type_policies_component_installer.h" #endif @@ -203,7 +203,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 -@@ -266,6 +266,10 @@ static_library("renderer") { +@@ -267,6 +267,10 @@ static_library("renderer") { deps += [ "//components/strings" ] } @@ -667,7 +667,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 -@@ -2608,6 +2608,17 @@ source_set("browser") { +@@ -2602,6 +2602,17 @@ source_set("browser") { ] } @@ -685,7 +685,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" ] -@@ -2654,6 +2665,13 @@ source_set("browser") { +@@ -2648,6 +2659,13 @@ source_set("browser") { deps += [ "//components/services/font_data:lib" ] } @@ -902,7 +902,7 @@ new file mode 100644 diff --git a/skia/BUILD.gn b/skia/BUILD.gn --- a/skia/BUILD.gn +++ b/skia/BUILD.gn -@@ -449,6 +449,18 @@ component("skia") { +@@ -443,6 +443,18 @@ component("skia") { sources += skia_ports_fci_sources } @@ -924,7 +924,7 @@ diff --git a/skia/BUILD.gn b/skia/BUILD.gn diff --git a/skia/ext/font_utils.cc b/skia/ext/font_utils.cc --- a/skia/ext/font_utils.cc +++ b/skia/ext/font_utils.cc -@@ -59,6 +59,7 @@ SkFontMgr* g_fontmgr_override = nullptr; +@@ -60,6 +60,7 @@ SkFontMgr* g_fontmgr_override = nullptr; #if BUILDFLAG(IS_ANDROID) // https://crbug.com/461659286 Failure to create any font causes crash. BASE_FEATURE(kUseAndroidNDKFontAPI, base::FEATURE_DISABLED_BY_DEFAULT); diff --git a/build/patches/Ask-for-restart-on-connection-change.patch b/build/patches/Ask-for-restart-on-connection-change.patch index 961f250c..661223f0 100644 --- a/build/patches/Ask-for-restart-on-connection-change.patch +++ b/build/patches/Ask-for-restart-on-connection-change.patch @@ -33,10 +33,9 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../tabwindow/TabWindowManagerImpl.java | 10 ++ .../Ask-for-restart-on-connection-change.grdp | 15 +++ .../java/res/layout/floating_snackbar.xml | 10 ++ - .../android/java/res/layout/snackbar.xml | 10 ++ .../ui/messages/snackbar/Snackbar.java | 16 +++ .../ui/messages/snackbar/SnackbarManager.java | 6 + - .../ui/messages/snackbar/SnackbarView.java | 13 +- + .../ui/messages/snackbar/SnackbarView.java | 10 ++ .../web_contents/web_contents_android.cc | 16 +++ .../web_contents/web_contents_android.h | 1 + .../browser/web_contents/web_contents_impl.cc | 2 + @@ -50,7 +49,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../blink/renderer/core/frame/local_frame.cc | 2 + .../main_thread/frame_scheduler_impl.cc | 2 + .../main_thread/page_scheduler_impl.cc | 9 +- - 30 files changed, 332 insertions(+), 10 deletions(-) + 29 files changed, 320 insertions(+), 9 deletions(-) create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sAskForRestartOnConnectionChange.java create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Ask-for-restart-on-connection-change.grdp create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Ask-for-restart-on-connection-change.inc @@ -284,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 -@@ -1525,7 +1525,10 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1534,7 +1534,10 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { mActivity, mStatusIndicatorCoordinator, isUrlBarFocusedSupplier, @@ -299,7 +298,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/tabmodel/TabModelSelectorBase.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java -@@ -200,6 +200,13 @@ public abstract class TabModelSelectorBase +@@ -207,6 +207,13 @@ public abstract class TabModelSelectorBase return null; } @@ -353,7 +352,7 @@ new file mode 100644 diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java --- a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java +++ b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java -@@ -150,6 +150,8 @@ public interface TabModelSelector { +@@ -146,6 +146,8 @@ public interface TabModelSelector { /** Get total pinned tab count across all tab models */ int getTotalPinnedTabCount(); @@ -419,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 -@@ -568,6 +568,16 @@ public class TabWindowManagerImpl implements TabWindowManager { +@@ -567,6 +567,16 @@ public class TabWindowManagerImpl implements TabWindowManager { return tabGroupModelFilter.getTabsInGroup(tabGroupId); } @@ -475,29 +474,10 @@ diff --git a/chrome/browser/ui/messages/android/java/res/layout/floating_snackba + style="@style/TextButton" /> -diff --git a/chrome/browser/ui/messages/android/java/res/layout/snackbar.xml b/chrome/browser/ui/messages/android/java/res/layout/snackbar.xml ---- a/chrome/browser/ui/messages/android/java/res/layout/snackbar.xml -+++ b/chrome/browser/ui/messages/android/java/res/layout/snackbar.xml -@@ -82,5 +82,15 @@ found in the LICENSE file. - android:paddingEnd="@dimen/snackbar_button_padding" - android:paddingStart="@dimen/snackbar_button_padding" - style="@style/TextButton" /> -+ -+ - - 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 -@@ -140,6 +140,8 @@ public class Snackbar { +@@ -141,6 +141,8 @@ public class Snackbar { private @Nullable String mTemplateText; private @Nullable String mActionText; private @Nullable Object mActionData; @@ -506,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; -@@ -246,6 +248,20 @@ public class Snackbar { +@@ -247,6 +249,20 @@ public class Snackbar { return this; } @@ -530,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 -@@ -348,6 +348,12 @@ public class SnackbarManager +@@ -341,6 +341,12 @@ public class SnackbarManager new SnackbarView( mActivity, this, @@ -546,15 +526,15 @@ 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 -@@ -55,6 +55,7 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { +@@ -51,6 +51,7 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { protected final ViewGroup mSnackbarView; protected final TemplatePreservingTextView mMessageView; private final TextView mActionButtonView; + private final TextView mDismissButtonView; private final ImageView mProfileImageView; private final int mAnimationDuration; - private final boolean mIsTablet; -@@ -100,11 +101,12 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { + private final ViewGroup mOriginalParent; +@@ -97,6 +98,7 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { public SnackbarView( Activity activity, SnackbarManager manager, @@ -562,30 +542,16 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro Snackbar snackbar, ViewGroup parentView, @Nullable WindowAndroid windowAndroid, - boolean isTablet) { -- this(activity, manager, snackbar, parentView, windowAndroid, null, isTablet); -+ this(activity, manager, dismissListener, snackbar, parentView, windowAndroid, null, isTablet); - } - - /** -@@ -122,6 +124,7 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { - public SnackbarView( - Activity activity, - SnackbarManager manager, -+ OnClickListener dismissListener, - Snackbar snackbar, - ViewGroup parentView, - @Nullable WindowAndroid windowAndroid, -@@ -158,6 +161,8 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { +@@ -128,6 +130,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); + mDismissButtonView = (TextView) mContainerView.findViewById(R.id.snackbar_dismiss); + mDismissButtonView.setOnClickListener(dismissListener); mProfileImageView = (ImageView) mContainerView.findViewById(R.id.snackbar_profile_image); - mEdgeToEdgeSupplier = edgeToEdgeSupplier; - // TODO(crbug.com/451807932): Replace with a custom pad adjuster to account for inset -@@ -434,6 +439,12 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { + // 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 { mActionButtonView.setVisibility(View.VISIBLE); mActionButtonView.setContentDescription(snackbar.getActionText()); setViewText(mActionButtonView, snackbar.getActionText(), animate); @@ -601,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 -@@ -911,6 +911,22 @@ void WebContentsAndroid::SetFocus(JNIEnv* env, jboolean focused) { +@@ -908,6 +908,22 @@ void WebContentsAndroid::SetFocus(JNIEnv* env, bool focused) { view->SetFocus(focused); } @@ -627,10 +593,10 @@ diff --git a/content/browser/web_contents/web_contents_android.cc b/content/brow diff --git a/content/browser/web_contents/web_contents_android.h b/content/browser/web_contents/web_contents_android.h --- a/content/browser/web_contents/web_contents_android.h +++ b/content/browser/web_contents/web_contents_android.h -@@ -199,6 +199,7 @@ class CONTENT_EXPORT WebContentsAndroid { +@@ -198,6 +198,7 @@ class CONTENT_EXPORT WebContentsAndroid { void OnScaleFactorChanged(JNIEnv* env); - void SetFocus(JNIEnv* env, jboolean focused); + void SetFocus(JNIEnv* env, bool focused); + void SetPageFrozen(JNIEnv* env, jboolean frozen); bool IsBeingDestroyed(JNIEnv* env); @@ -638,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 -@@ -4096,8 +4096,10 @@ void WebContentsImpl::Stop() { +@@ -4108,8 +4108,10 @@ void WebContentsImpl::Stop() { void WebContentsImpl::SetPageFrozen(bool frozen) { TRACE_EVENT1("content", "WebContentsImpl::SetPageFrozen", "frozen", frozen); @@ -734,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 -@@ -4665,6 +4665,7 @@ void Document::DispatchUnloadEvents(UnloadEventTimingInfo* unload_timing_info) { +@@ -4659,6 +4659,7 @@ void Document::DispatchUnloadEvents(UnloadEventTimingInfo* unload_timing_info) { } void Document::DispatchFreezeEvent() { @@ -745,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 -@@ -3321,6 +3321,7 @@ void LocalFrame::DidFreeze() { +@@ -3311,6 +3311,7 @@ void LocalFrame::DidFreeze() { LoaderFreezeMode freeze_mode = GetLoaderFreezeMode(); GetDocument()->Fetcher()->SetDefersLoading(freeze_mode); Loader().SetDefersLoading(freeze_mode); @@ -753,7 +719,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ } void LocalFrame::DidResume() { -@@ -3335,6 +3336,7 @@ void LocalFrame::DidResume() { +@@ -3325,6 +3326,7 @@ void LocalFrame::DidResume() { GetDocument()->Fetcher()->SetDefersLoading(LoaderFreezeMode::kNone); Loader().SetDefersLoading(LoaderFreezeMode::kNone); diff --git a/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch b/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch index 02c35542..8e178b31 100644 --- a/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch +++ b/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch @@ -88,7 +88,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer.h b/third_ diff --git a/third_party/blink/renderer/modules/webaudio/audio_context.cc b/third_party/blink/renderer/modules/webaudio/audio_context.cc --- a/third_party/blink/renderer/modules/webaudio/audio_context.cc +++ b/third_party/blink/renderer/modules/webaudio/audio_context.cc -@@ -20,6 +20,7 @@ +@@ -21,6 +21,7 @@ #include "third_party/blink/public/common/features.h" #include "third_party/blink/public/common/mediastream/media_devices.h" #include "third_party/blink/public/platform/browser_interface_broker_proxy.h" @@ -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" -@@ -921,7 +922,9 @@ double AudioContext::baseLatency() const { +@@ -969,7 +970,9 @@ double AudioContext::baseLatency() const { DCHECK_CALLED_ON_VALID_SEQUENCE(main_thread_sequence_checker_); DCHECK(destination()); @@ -118,7 +118,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/base_audio_context.cc b #include "third_party/blink/public/mojom/devtools/console_message.mojom-blink.h" #include "third_party/blink/public/mojom/frame/lifecycle.mojom-shared.h" #include "third_party/blink/public/platform/platform.h" -@@ -777,6 +778,17 @@ LocalDOMWindow* BaseAudioContext::GetWindow() const { +@@ -776,6 +777,17 @@ LocalDOMWindow* BaseAudioContext::GetWindow() const { return To(GetExecutionContext()); } @@ -151,7 +151,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/base_audio_context.h b/ diff --git a/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc b/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc --- a/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc +++ b/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc -@@ -395,6 +395,7 @@ void OfflineAudioContext::FireCompletionEvent() { +@@ -412,6 +412,7 @@ void OfflineAudioContext::FireCompletionEvent() { if (!rendered_buffer) { return; } @@ -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 -@@ -639,9 +639,8 @@ +@@ -643,9 +643,8 @@ { // AudioContext.playoutStats interface. // https://chromestatus.com/feature/5172818344148992 diff --git a/build/patches/Battery-API-return-nothing.patch b/build/patches/Battery-API-return-nothing.patch index 04930f62..9e074294 100644 --- a/build/patches/Battery-API-return-nothing.patch +++ b/build/patches/Battery-API-return-nothing.patch @@ -12,7 +12,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/third_party/blink/renderer/modules/battery/battery_manager.cc b/third_party/blink/renderer/modules/battery/battery_manager.cc --- a/third_party/blink/renderer/modules/battery/battery_manager.cc +++ b/third_party/blink/renderer/modules/battery/battery_manager.cc -@@ -77,46 +77,28 @@ ScriptPromise BatteryManager::StartRequest( +@@ -80,46 +80,28 @@ ScriptPromise BatteryManager::StartRequest( } bool BatteryManager::charging() { diff --git a/build/patches/Block-gateway-attacks-via-websockets.patch b/build/patches/Block-gateway-attacks-via-websockets.patch index 6af1d50f..59cb3cd5 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 -@@ -425,6 +425,7 @@ class CORE_EXPORT ExecutionContext : public MojoBindingContext, +@@ -387,6 +387,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 -@@ -1122,6 +1122,26 @@ bool FrameFetchContext::ShouldBlockRequestByInspector(const KURL& url) const { +@@ -1133,6 +1133,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 -@@ -191,6 +191,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext, +@@ -192,6 +192,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext, bool ShouldBlockWebSocketByMixedContentCheck(const KURL&) const override; std::unique_ptr CreateWebSocketHandshakeThrottle() override; @@ -93,8 +93,8 @@ diff --git a/third_party/blink/renderer/core/loader/worker_fetch_context.cc b/th +#include "third_party/blink/renderer/platform/network/network_utils.h" #include "third_party/blink/renderer/platform/runtime_enabled_features.h" #include "third_party/blink/renderer/platform/scheduler/public/virtual_time_controller.h" - #include "third_party/blink/renderer/platform/weborigin/security_policy.h" -@@ -89,6 +90,26 @@ bool WorkerFetchContext::ShouldBlockRequestByInspector(const KURL& url) const { + #include "third_party/blink/renderer/platform/supplementable.h" +@@ -90,6 +91,26 @@ bool WorkerFetchContext::ShouldBlockRequestByInspector(const KURL& url) const { return should_block_request; } 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 955560d4..46b6d3d0 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 -@@ -5158,7 +5158,17 @@ void RenderFrameHostImpl::SetLastCommittedOrigin( +@@ -5239,7 +5239,17 @@ void RenderFrameHostImpl::SetLastCommittedOrigin( } void RenderFrameHostImpl::SetInheritedBaseUrl(const GURL& inherited_base_url) { @@ -118,7 +118,7 @@ diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_p return referrer_; } -@@ -2913,6 +2918,13 @@ void DocumentLoader::CommitNavigation() { +@@ -2917,6 +2922,13 @@ void DocumentLoader::CommitNavigation() { response_.HttpHeaderField(http_names::kDocumentPolicyReportOnly)); } diff --git a/build/patches/Bookmarks-select-all-menu-entry.patch b/build/patches/Bookmarks-select-all-menu-entry.patch index ed2ec5a5..aece8524 100644 --- a/build/patches/Bookmarks-select-all-menu-entry.patch +++ b/build/patches/Bookmarks-select-all-menu-entry.patch @@ -39,7 +39,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows /** * Main toolbar of bookmark UI. It is responsible for displaying title and buttons associated with -@@ -190,6 +191,11 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -197,6 +198,11 @@ public class BookmarkToolbar extends SelectableListToolbar void setCurrentFolder(BookmarkId folder) { mCurrentFolder = mBookmarkModel.getBookmarkById(folder); enableImportExportMenu(); @@ -51,7 +51,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows } void enableImportExportMenu() { -@@ -226,6 +232,17 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -233,6 +239,17 @@ public class BookmarkToolbar extends SelectableListToolbar mExportBookmarkRunnable.run(); return true; } @@ -69,7 +69,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows return assumeNonNull(mMenuIdClickedFunction).apply(menuItem.getItemId()); } -@@ -248,6 +265,7 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -255,6 +272,7 @@ public class BookmarkToolbar extends SelectableListToolbar getMenu().findItem(R.id.import_menu_id).setVisible(mCurrentFolder != null); getMenu().findItem(R.id.export_menu_id).setVisible(mCurrentFolder != null); @@ -80,7 +80,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows 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 -@@ -264,6 +264,9 @@ CHAR_LIMIT guidelines: +@@ -267,6 +267,9 @@ CHAR_LIMIT guidelines: Sites diff --git a/build/patches/Bromite-auto-updater.patch b/build/patches/Bromite-auto-updater.patch index 29c8a0c2..9e5d3971 100644 --- a/build/patches/Bromite-auto-updater.patch +++ b/build/patches/Bromite-auto-updater.patch @@ -21,7 +21,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/endpoint_fetcher/BUILD.gn | 32 ++ chrome/browser/endpoint_fetcher/DEPS | 3 + chrome/browser/endpoint_fetcher/OWNERS | 1 + - .../endpoint_fetcher_android.cc | 107 +++++++ + .../endpoint_fetcher_android.cc | 109 +++++++ .../endpoint_fetcher/EndpointFetcher.java | 63 ++++ .../EndpointHeaderResponse.java | 31 ++ .../endpoint_fetcher/EndpointResponse.java | 30 ++ @@ -50,7 +50,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html components/manta/base_provider.cc | 4 +- .../Bromite-auto-updater.inc | 3 + .../Bromite-auto-updater.inc | 1 + - 42 files changed, 1154 insertions(+), 106 deletions(-) + 42 files changed, 1156 insertions(+), 106 deletions(-) create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/omaha/CromiteUpdateStatusProvider.java create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/BromiteInlineUpdateController.java create mode 100644 chrome/browser/endpoint_fetcher/BUILD.gn @@ -79,7 +79,7 @@ diff --git a/build/android/java/templates/BuildConfig.template b/build/android/j diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni --- a/build/config/android/rules.gni +++ b/build/config/android/rules.gni -@@ -1959,6 +1959,9 @@ if (!is_robolectric && enable_java_templates) { +@@ -1963,6 +1963,9 @@ if (!is_robolectric && enable_java_templates) { sources = [ "//build/android/java/templates/BuildConfig.template" ] defines = [] @@ -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 -@@ -871,6 +871,8 @@ chrome_java_sources = [ +@@ -880,6 +880,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", @@ -144,9 +144,9 @@ 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"; -@@ -78,6 +84,13 @@ public class AboutChromeSettings extends ChromeBaseSettingsFragment - assumeNonNull(p); - int currentYear = CalendarFactory.get().get(Calendar.YEAR); +@@ -80,6 +86,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)); + + ChromeSwitchPreference allowInlineUpdate = @@ -158,7 +158,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/about_settings/ } @Override -@@ -148,6 +161,19 @@ public class AboutChromeSettings extends ChromeBaseSettingsFragment +@@ -150,6 +163,19 @@ public class AboutChromeSettings extends ChromeBaseSettingsFragment return true; } @@ -366,7 +366,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateMen + mMenuUiState.itemState.summary = + resources.getString(defaultUpdateSummary); + } -+ mMenuUiState.itemState.icon = R.drawable.ic_history_googblue_24dp; ++ mMenuUiState.itemState.icon = R.drawable.ic_history_24dp; + mMenuUiState.itemState.iconTintId = R.color.default_icon_color_blue_light; + mMenuUiState.itemState.enabled = true; + break; @@ -390,7 +390,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateMen + mMenuUiState.itemState.title = R.string.menu_inline_update_failed; + mMenuUiState.itemState.titleColorId = R.color.default_text_color_blue_dark; + mMenuUiState.itemState.summary = resources.getString(R.string.try_again); -+ mMenuUiState.itemState.icon = R.drawable.ic_history_googblue_24dp; ++ mMenuUiState.itemState.icon = R.drawable.ic_history_24dp; + mMenuUiState.itemState.iconTintId = R.color.default_icon_color_blue_light; + mMenuUiState.itemState.enabled = true; + break; @@ -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 -@@ -2652,6 +2652,12 @@ static_library("browser") { +@@ -2614,6 +2614,12 @@ static_library("browser") { } if (is_android) { @@ -758,7 +758,7 @@ diff --git a/chrome/browser/endpoint_fetcher/endpoint_fetcher_android.cc b/chrom new file mode 100644 --- /dev/null +++ b/chrome/browser/endpoint_fetcher/endpoint_fetcher_android.cc -@@ -0,0 +1,107 @@ +@@ -0,0 +1,109 @@ +// Copyright 2019 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. @@ -815,11 +815,11 @@ new file mode 100644 + +static void JNI_EndpointFetcher_NativeFetchWithNoAuth( + JNIEnv* env, -+ const base::android::JavaParamRef& jprofile, -+ const base::android::JavaParamRef& jurl, ++ const base::android::JavaRef& jprofile, ++ const base::android::JavaRef& jurl, + jlong jtimeout, jboolean intercept_redirect, + jint jannotation_hash_code, -+ const base::android::JavaParamRef& jcallback) { ++ const base::android::JavaRef& jcallback) { + auto endpoint_fetcher = std::make_unique( + Profile::FromJavaObject(jprofile) + ->GetDefaultStoragePartition() @@ -842,11 +842,11 @@ new file mode 100644 + +static void JNI_EndpointFetcher_NativeHeadWithNoAuth( + JNIEnv* env, -+ const base::android::JavaParamRef& jprofile, -+ const base::android::JavaParamRef& jurl, ++ const base::android::JavaRef& jprofile, ++ const base::android::JavaRef& jurl, + jlong jtimeout, jboolean intercept_redirect, + jint jannotation_hash_code, -+ const base::android::JavaParamRef& jcallback) { ++ const base::android::JavaRef& jcallback) { + auto endpoint_fetcher = std::make_unique( + Profile::FromJavaObject(jprofile) + ->GetDefaultStoragePartition() @@ -866,6 +866,8 @@ new file mode 100644 + std::move(endpoint_fetcher)), + nullptr); +} ++ ++DEFINE_JNI(EndpointFetcher) diff --git a/chrome/browser/endpoint_fetcher/java/src/org/chromium/chrome/browser/endpoint_fetcher/EndpointFetcher.java b/chrome/browser/endpoint_fetcher/java/src/org/chromium/chrome/browser/endpoint_fetcher/EndpointFetcher.java new file mode 100644 --- /dev/null @@ -1008,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 -@@ -387,6 +387,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -383,6 +383,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kProtectedTabsAndroid, &kPwaRestoreUi, &kPwaRestoreUiAtStartup, @@ -1019,18 +1021,18 @@ 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 -@@ -477,6 +477,7 @@ public abstract class ChromeFeatureList { +@@ -463,6 +463,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 IP_PROTECTION_UX = "IpProtectionUx"; 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 --- 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 -@@ -264,7 +264,7 @@ AccessCodeCastDiscoveryInterface::CreateEndpointFetcher( +@@ -265,7 +265,7 @@ AccessCodeCastDiscoveryInterface::CreateEndpointFetcher( .SetTimeout(kTimeout) .SetUrl(GURL(base::StrCat({GetDiscoveryUrl(), "/", access_code}))) .SetPostData(kEmptyPostData) @@ -1621,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 -@@ -2315,6 +2315,12 @@ Your Google account may have other forms of browsing history like searches and a +@@ -2313,6 +2313,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 @@ -1634,7 +1636,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro -@@ -4366,7 +4372,10 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4389,7 +4395,10 @@ To change this setting, BEGIN_LINKdelete the Chrome d @@ -1646,7 +1648,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro Newer version is available -@@ -4377,6 +4386,18 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4400,6 +4409,18 @@ To change this setting, BEGIN_LINKdelete the Chrome d Android version is unsupported @@ -1668,7 +1670,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/browser/ui/lens/lens_overlay_query_controller.cc b/chrome/browser/ui/lens/lens_overlay_query_controller.cc --- a/chrome/browser/ui/lens/lens_overlay_query_controller.cc +++ b/chrome/browser/ui/lens/lens_overlay_query_controller.cc -@@ -770,7 +770,7 @@ LensOverlayQueryController::CreateEndpointFetcher( +@@ -768,7 +768,7 @@ LensOverlayQueryController::CreateEndpointFetcher( .SetTimeout(timeout) .SetUrl(fetch_url) .SetUploadProgressCallback(std::move(upload_progress_callback)) @@ -1728,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 -@@ -777,7 +777,7 @@ ComposeboxQueryController::CreateEndpointFetcher( +@@ -705,7 +705,7 @@ ComposeboxQueryController::CreateEndpointFetcher( .SetTimeout(timeout) .SetUploadProgressCallback(std::move(upload_progress_callback)) .SetUrl(fetch_url) @@ -1973,7 +1975,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoint_fetcher/endpoint_fetcher.h --- a/components/endpoint_fetcher/endpoint_fetcher.h +++ b/components/endpoint_fetcher/endpoint_fetcher.h -@@ -20,6 +20,9 @@ +@@ -19,6 +19,9 @@ #include "services/network/public/mojom/fetch_api.mojom-forward.h" #include "url/gurl.h" @@ -1983,7 +1985,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoin namespace base { class TimeDelta; } // namespace base -@@ -61,6 +64,7 @@ enum class HttpMethod { +@@ -60,6 +63,7 @@ enum class HttpMethod { kPost = 1, kDelete = 2, kPut = 3, @@ -1991,7 +1993,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoin }; enum AuthType { -@@ -79,6 +83,8 @@ struct EndpointResponse { +@@ -78,6 +82,8 @@ struct EndpointResponse { ~EndpointResponse(); std::string response; @@ -2000,7 +2002,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoin int http_status_code{-1}; std::optional error_type; scoped_refptr headers; -@@ -301,7 +307,16 @@ class EndpointFetcher { +@@ -300,7 +306,16 @@ class EndpointFetcher { EndpointFetcher( const scoped_refptr& url_loader_factory, signin::IdentityManager* identity_manager, @@ -2018,7 +2020,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoin EndpointFetcher(const EndpointFetcher& endpoint_fetcher) = delete; EndpointFetcher& operator=(const EndpointFetcher& endpoint_fetcher) = delete; -@@ -334,11 +349,17 @@ class EndpointFetcher { +@@ -333,11 +348,17 @@ class EndpointFetcher { void OnResponseFetched(EndpointFetcherCallback callback, std::optional response_body); @@ -2036,7 +2038,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoin // Members set in constructor const scoped_refptr url_loader_factory_; -@@ -349,6 +370,8 @@ class EndpointFetcher { +@@ -348,6 +369,8 @@ class EndpointFetcher { // SingleClientSharedTabGroupVersioningSyncTest.ShouldShowVersioningMessagesAfterRestart/kSyncTransportOnly const raw_ptr identity_manager_; @@ -2045,7 +2047,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoin // The complete definition of the specific network request to be performed. // Contains authentication details and response handling preferences. const RequestParams request_params_; -@@ -358,6 +381,9 @@ class EndpointFetcher { +@@ -357,6 +380,9 @@ class EndpointFetcher { access_token_fetcher_; std::unique_ptr simple_url_loader_; diff --git a/build/patches/Bromite-package-name.patch b/build/patches/Bromite-package-name.patch index 3b5387ab..a8382e66 100644 --- a/build/patches/Bromite-package-name.patch +++ b/build/patches/Bromite-package-name.patch @@ -10,10 +10,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/chrome_public_apk_tmpl.gni b/chrome/android/chrome_public_apk_tmpl.gni --- a/chrome/android/chrome_public_apk_tmpl.gni +++ b/chrome/android/chrome_public_apk_tmpl.gni -@@ -27,7 +27,7 @@ declare_args() { - # WebView providers which declare one of a handful of package names. See - # https://chromium.googlesource.com/chromium/src/+/HEAD/android_webview/docs/build-instructions.md#Changing-package-name - # for details. +@@ -23,7 +23,7 @@ declare_args() { + # Android package name to use when compiling the public chrome targets + # (chrome_public_apk, trichrome_chrome_bundle, etc. as well as the + # *_bundle variants). This defaults to the Chromium browser package name. - chrome_public_manifest_package = "org.chromium.chrome" + chrome_public_manifest_package = "org.bromite.bromite" if (use_stable_package_name_for_trichrome) { diff --git a/build/patches/Bromite-subresource-adblocker.patch b/build/patches/Bromite-subresource-adblocker.patch index a79c6589..ecc1fe26 100644 --- a/build/patches/Bromite-subresource-adblocker.patch +++ b/build/patches/Bromite-subresource-adblocker.patch @@ -30,7 +30,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/browser_process_impl.h | 2 + chrome/browser/chrome_browser_main.cc | 3 + chrome/browser/flags/BUILD.gn | 3 + - .../flags/android/adblock_native_gateway.cc | 31 ++ + .../flags/android/adblock_native_gateway.cc | 33 ++ .../browser/flags/AdBlockNativeGateway.java | 30 ++ .../net/system_network_context_manager.cc | 4 + .../strings/android_chrome_strings.grd | 14 + @@ -43,14 +43,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../component_updater/download_filters_task.h | 129 ++++++++ ...ent_subresource_filter_throttle_manager.cc | 15 + ...tent_subresource_filter_throttle_manager.h | 2 + - .../content/shared/browser/ruleset_service.cc | 44 ++- - .../content/shared/browser/ruleset_service.h | 8 +- + .../content/browser/ruleset_service.cc | 44 ++- + .../content/browser/ruleset_service.h | 8 +- .../unindexed_ruleset_stream_generator.cc | 3 + .../core/browser/ruleset_version.h | 4 + .../browser/subresource_filter_features.cc | 118 +------- .../core/browser/verified_ruleset_dealer.cc | 4 + .../core/common/indexed_ruleset.cc | 5 +- - 38 files changed, 1282 insertions(+), 127 deletions(-) + 38 files changed, 1284 insertions(+), 127 deletions(-) create mode 100644 chrome/android/java/res/layout/adblock_editor.xml create mode 100644 chrome/android/java/res/xml/adblock_preferences.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockEditor.java @@ -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 -@@ -302,6 +302,7 @@ if (_is_default_toolchain) { +@@ -303,6 +303,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 -@@ -453,6 +453,7 @@ chrome_java_resources = [ +@@ -431,6 +431,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", -@@ -658,6 +659,7 @@ chrome_java_resources = [ +@@ -633,6 +634,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 -@@ -942,6 +942,8 @@ chrome_java_sources = [ +@@ -951,6 +951,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", @@ -179,7 +179,7 @@ new file mode 100644 diff --git a/chrome/android/java/res/values/styles.xml b/chrome/android/java/res/values/styles.xml --- a/chrome/android/java/res/values/styles.xml +++ b/chrome/android/java/res/values/styles.xml -@@ -331,6 +331,24 @@ found in the LICENSE file. +@@ -339,6 +339,24 @@ found in the LICENSE file. @@ -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 -@@ -111,6 +111,11 @@ found in the LICENSE file. +@@ -107,6 +107,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 -@@ -95,6 +95,8 @@ import java.util.HashMap; +@@ -94,6 +94,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. * -@@ -1175,6 +1177,7 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -1157,6 +1159,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 -@@ -17395,6 +17395,16 @@ Please help our engineers fix this problem. Tell us what happened right before y +@@ -17479,6 +17479,16 @@ Please help our engineers fix this problem. Tell us what happened right before y Never show this again. @@ -510,7 +510,7 @@ diff --git a/chrome/browser/browser_process.h b/chrome/browser/browser_process.h class BackgroundModeManager; class BrowserProcessPlatformPart; -@@ -88,6 +89,10 @@ namespace component_updater { +@@ -96,6 +97,10 @@ namespace component_updater { class ComponentUpdateService; } @@ -521,18 +521,18 @@ diff --git a/chrome/browser/browser_process.h b/chrome/browser/browser_process.h namespace gcm { class GCMDriver; } -@@ -276,6 +281,7 @@ class BrowserProcess { - #endif +@@ -294,6 +299,7 @@ class BrowserProcess { + virtual activity_reporter::ActivityReporter* activity_reporter() = 0; virtual component_updater::ComponentUpdateService* component_updater() = 0; + virtual adblock_updater::AdBlockUpdaterService* adblock_updater() = 0; + #if BUILDFLAG(IS_CHROMEOS) virtual MediaFileSystemRegistry* media_file_system_registry() = 0; - 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 -@@ -1284,6 +1284,34 @@ BrowserProcessImpl::component_updater() { +@@ -1345,6 +1345,34 @@ BrowserProcessImpl::component_updater() { return component_updater_.get(); } @@ -565,20 +565,20 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro +} + void BrowserProcessImpl::OnKeepAliveStateChanged(bool is_keeping_alive) { - if (is_keeping_alive) + if (is_keeping_alive) { Pin(); diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_process_impl.h --- a/chrome/browser/browser_process_impl.h +++ b/chrome/browser/browser_process_impl.h -@@ -213,6 +213,7 @@ class BrowserProcessImpl : public BrowserProcess, - #endif +@@ -220,6 +220,7 @@ class BrowserProcessImpl : public BrowserProcess, + activity_reporter::ActivityReporter* activity_reporter() override; component_updater::ComponentUpdateService* component_updater() override; + adblock_updater::AdBlockUpdaterService* adblock_updater() override; + #if BUILDFLAG(IS_CHROMEOS) MediaFileSystemRegistry* media_file_system_registry() override; - WebRtcLogUploader* webrtc_log_uploader() override; - network_time::NetworkTimeTracker* network_time_tracker() override; -@@ -426,6 +427,7 @@ class BrowserProcessImpl : public BrowserProcess, + #endif +@@ -439,6 +440,7 @@ class BrowserProcessImpl : public BrowserProcess, // to concerns over integrity of data shared between profiles, // but some users of component updater only install per-user. std::unique_ptr component_updater_; @@ -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 -@@ -430,6 +430,9 @@ StartupProfileInfo CreateInitialProfile( +@@ -431,6 +431,9 @@ StartupProfileInfo CreateInitialProfile( // missing code in the above test. CHECK(profile_info.profile) << "Cannot get default profile."; @@ -630,7 +630,7 @@ diff --git a/chrome/browser/flags/android/adblock_native_gateway.cc b/chrome/bro new file mode 100755 --- /dev/null +++ b/chrome/browser/flags/android/adblock_native_gateway.cc -@@ -0,0 +1,31 @@ +@@ -0,0 +1,33 @@ +#include "chrome/browser/flags/jni_headers/AdBlockNativeGateway_jni.h" + +#include "base/android/jni_string.h" @@ -639,7 +639,7 @@ new file mode 100755 +#include "components/prefs/pref_service.h" + +using base::android::ScopedJavaLocalRef; -+using base::android::JavaParamRef; ++using base::android::JavaRef; + +static ScopedJavaLocalRef JNI_AdBlockNativeGateway_GetAdBlockFiltersURL( + JNIEnv* env) { @@ -648,20 +648,22 @@ new file mode 100755 +} + +static void JNI_AdBlockNativeGateway_SetAdBlockFiltersURL( -+ JNIEnv* env, const JavaParamRef& url) { ++ JNIEnv* env, const JavaRef& url) { + g_browser_process->local_state()->SetString(prefs::kAdBlockFiltersURL, + base::android::ConvertJavaStringToUTF8(env, url)); +} + -+static jboolean JNI_AdBlockNativeGateway_GetAdBlockEnabled( ++static bool JNI_AdBlockNativeGateway_GetAdBlockEnabled( + JNIEnv* env) { + return g_browser_process->local_state()->GetBoolean(prefs::kAdBlockEnabled); +} + +static void JNI_AdBlockNativeGateway_SetAdBlockEnabled( -+ JNIEnv* env, jboolean enabled) { ++ JNIEnv* env, bool enabled) { + g_browser_process->local_state()->SetBoolean(prefs::kAdBlockEnabled, enabled); +} ++ ++DEFINE_JNI(AdBlockNativeGateway) diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/AdBlockNativeGateway.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/AdBlockNativeGateway.java new file mode 100755 --- /dev/null @@ -690,7 +692,7 @@ new file mode 100755 + } + + @NativeMethods -+ interface Natives { ++ public interface Natives { + void setAdBlockFiltersURL(String url); + String getAdBlockFiltersURL(); + void setAdBlockEnabled(boolean enabled); @@ -700,7 +702,7 @@ new file mode 100755 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 -@@ -716,6 +716,10 @@ void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) { +@@ -718,6 +718,10 @@ void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) { DefaultDnsOverHttpsConfigSource::RegisterPrefs(registry); NetworkProcessLaunchWatcher::RegisterPrefs(registry); @@ -714,7 +716,7 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows 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 -@@ -236,6 +236,20 @@ CHAR_LIMIT guidelines: +@@ -239,6 +239,20 @@ CHAR_LIMIT guidelines: Try searching the help center @@ -738,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 -@@ -2979,6 +2979,11 @@ inline constexpr char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled"; +@@ -2982,6 +2982,11 @@ inline constexpr char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled"; inline constexpr char kAudioCaptureAllowedUrls[] = "hardware.audio_capture_allowed_urls"; @@ -753,7 +755,7 @@ diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h diff --git a/components/browser_ui/strings/android/site_settings.grdp b/components/browser_ui/strings/android/site_settings.grdp --- a/components/browser_ui/strings/android/site_settings.grdp +++ b/components/browser_ui/strings/android/site_settings.grdp -@@ -424,6 +424,9 @@ +@@ -427,6 +427,9 @@ This site shows intrusive or misleading ads @@ -1115,7 +1117,7 @@ new file mode 100644 +#include "components/component_updater/update_scheduler.h" +#include "url/gurl.h" +#include "components/component_updater/download_filters_task.h" -+#include "components/subresource_filter/content/shared/browser/ruleset_service.h" ++#include "components/subresource_filter/content/browser/ruleset_service.h" +#include "services/network/public/cpp/shared_url_loader_factory.h" + +namespace adblock_updater { @@ -1577,17 +1579,18 @@ new file mode 100644 diff --git a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc --- a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc +++ b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc -@@ -18,6 +18,9 @@ +@@ -17,7 +17,10 @@ #include "base/trace_event/trace_event.h" #include "base/trace_event/traced_value.h" #include "base/tracing/protos/chrome_track_event.pbzero.h" +#include "components/content_settings/core/common/content_settings_types.h" + #include "components/subresource_filter/content/browser/activation_state_computing_navigation_throttle.h" +#include "components/subresource_filter/content/browser/subresource_filter_content_settings_manager.h" +#include "components/subresource_filter/content/browser/subresource_filter_profile_context.h" #include "components/subresource_filter/content/browser/ad_tagging_utils.h" #include "components/subresource_filter/content/browser/content_subresource_filter_web_contents_helper.h" - #include "components/subresource_filter/content/browser/profile_interaction_manager.h" -@@ -114,6 +117,7 @@ ContentSubresourceFilterThrottleManager:: + #include "components/subresource_filter/content/browser/page_load_statistics.h" +@@ -113,6 +116,7 @@ ContentSubresourceFilterThrottleManager:: profile_interaction_manager_( std::make_unique( profile_context)), @@ -1595,7 +1598,7 @@ diff --git a/components/subresource_filter/content/browser/content_subresource_f web_contents_helper_(web_contents_helper) {} ContentSubresourceFilterThrottleManager:: -@@ -661,6 +665,17 @@ ContentSubresourceFilterThrottleManager:: +@@ -659,6 +663,17 @@ ContentSubresourceFilterThrottleManager:: throttle->NotifyPageActivationWithRuleset(EnsureRulesetHandle(), ad_tagging_state); } @@ -1625,9 +1628,9 @@ diff --git a/components/subresource_filter/content/browser/content_subresource_f // Unowned since the throttle manager cannot outlive the Page that owns it. // The throttle manager is held as user data first on NavigationHandle, then // transferred to Page once it is created. Once the Page is created and this -diff --git a/components/subresource_filter/content/shared/browser/ruleset_service.cc b/components/subresource_filter/content/shared/browser/ruleset_service.cc ---- a/components/subresource_filter/content/shared/browser/ruleset_service.cc -+++ b/components/subresource_filter/content/shared/browser/ruleset_service.cc +diff --git a/components/subresource_filter/content/browser/ruleset_service.cc b/components/subresource_filter/content/browser/ruleset_service.cc +--- a/components/subresource_filter/content/browser/ruleset_service.cc ++++ b/components/subresource_filter/content/browser/ruleset_service.cc @@ -50,12 +50,7 @@ namespace { void RecordIndexAndWriteRulesetResult( std::string_view uma_tag, @@ -1759,9 +1762,9 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic if (!version.IsValid()) { return; } -diff --git a/components/subresource_filter/content/shared/browser/ruleset_service.h b/components/subresource_filter/content/shared/browser/ruleset_service.h ---- a/components/subresource_filter/content/shared/browser/ruleset_service.h -+++ b/components/subresource_filter/content/shared/browser/ruleset_service.h +diff --git a/components/subresource_filter/content/browser/ruleset_service.h b/components/subresource_filter/content/browser/ruleset_service.h +--- a/components/subresource_filter/content/browser/ruleset_service.h ++++ b/components/subresource_filter/content/browser/ruleset_service.h @@ -183,7 +183,7 @@ class RulesetService { // // Virtual so that it can be mocked out in tests. @@ -1784,9 +1787,9 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic // Reads the rules via the |unindexed_ruleset_stream_generator|, and indexes // them using |indexer|. Returns whether the entire ruleset could be parsed. static bool IndexRuleset( -diff --git a/components/subresource_filter/content/shared/browser/unindexed_ruleset_stream_generator.cc b/components/subresource_filter/content/shared/browser/unindexed_ruleset_stream_generator.cc ---- a/components/subresource_filter/content/shared/browser/unindexed_ruleset_stream_generator.cc -+++ b/components/subresource_filter/content/shared/browser/unindexed_ruleset_stream_generator.cc +diff --git a/components/subresource_filter/content/browser/unindexed_ruleset_stream_generator.cc b/components/subresource_filter/content/browser/unindexed_ruleset_stream_generator.cc +--- a/components/subresource_filter/content/browser/unindexed_ruleset_stream_generator.cc ++++ b/components/subresource_filter/content/browser/unindexed_ruleset_stream_generator.cc @@ -12,6 +12,7 @@ #include "third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl.h" #include "third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.h" diff --git a/build/patches/Bubble-Locking-on-UI-DevTools.patch b/build/patches/Bubble-Locking-on-UI-DevTools.patch index 2d018268..63eefa3f 100644 --- a/build/patches/Bubble-Locking-on-UI-DevTools.patch +++ b/build/patches/Bubble-Locking-on-UI-DevTools.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/ui/views/toolbar/reload_button.cc b/chrome/browser/ui/views/toolbar/reload_button.cc --- a/chrome/browser/ui/views/toolbar/reload_button.cc +++ b/chrome/browser/ui/views/toolbar/reload_button.cc -@@ -276,6 +276,14 @@ void ReloadButton::ButtonPressed(const ui::Event& event) { +@@ -284,6 +284,14 @@ void ReloadButton::ButtonPressed(const ui::Event& event) { command = IDC_RELOAD; } @@ -33,7 +33,7 @@ diff --git a/chrome/browser/ui/views/toolbar/reload_button.cc b/chrome/browser/u diff --git a/ui/views/widget/widget.h b/ui/views/widget/widget.h --- a/ui/views/widget/widget.h +++ b/ui/views/widget/widget.h -@@ -1468,6 +1468,19 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, +@@ -1475,6 +1475,19 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, // initialized. void SaveWindowPlacementIfNeeded(); @@ -53,7 +53,7 @@ diff --git a/ui/views/widget/widget.h b/ui/views/widget/widget.h protected: // Creates the RootView to be used within this Widget. Subclasses may override // to create custom RootViews that do specialized event processing. -@@ -1508,13 +1521,6 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, +@@ -1515,13 +1528,6 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, void set_widget_closed() { widget_closed_ = true; } private: @@ -67,7 +67,7 @@ diff --git a/ui/views/widget/widget.h b/ui/views/widget/widget.h class PaintAsActiveLockImpl; friend class ButtonTest; -@@ -1525,11 +1531,6 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, +@@ -1532,11 +1538,6 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, friend class ui_devtools::BubbleLocking; friend void DisableActivationChangeHandlingForTests(); diff --git a/build/patches/Change-popup-site-setting.patch b/build/patches/Change-popup-site-setting.patch index 1a53b17a..62ddedd3 100644 --- a/build/patches/Change-popup-site-setting.patch +++ b/build/patches/Change-popup-site-setting.patch @@ -297,7 +297,7 @@ new file mode 100644 diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc --- a/components/content_settings/core/browser/content_settings_registry.cc +++ b/components/content_settings/core/browser/content_settings_registry.cc -@@ -140,7 +140,7 @@ void ContentSettingsRegistry::Init() { +@@ -139,7 +139,7 @@ void ContentSettingsRegistry::Init() { WebsiteSettingsInfo::SYNCABLE, /*allowlisted_primary_schemes=*/ {kChromeUIScheme, kChromeDevToolsScheme, kExtensionScheme}, diff --git a/build/patches/Chrome-web-store-protection.patch b/build/patches/Chrome-web-store-protection.patch index 57c52243..a69b4964 100644 --- a/build/patches/Chrome-web-store-protection.patch +++ b/build/patches/Chrome-web-store-protection.patch @@ -16,9 +16,9 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html chrome/app/extensions_strings.grdp | 6 ++ .../developer_private_api.cc | 28 +++++++++ .../developer_private/developer_private_api.h | 3 + - .../developer_private_functions_shared.cc | 8 ++- + .../developer_private_functions.cc | 8 ++- .../profile_info_generator.cc | 3 + - .../webstore_private/webstore_private_api.cc | 15 ++++- + .../webstore_private/webstore_private_api.cc | 14 ++++- .../extensions/chrome_extension_system.cc | 1 + .../extensions/cws_info_service_factory.cc | 3 +- .../extensions/extension_management.cc | 1 + @@ -49,7 +49,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html extensions/common/extension_features.cc | 7 +++ extensions/common/extension_features.h | 10 +++ .../definitions/developer_private.d.ts | 2 + - 36 files changed, 254 insertions(+), 107 deletions(-) + 36 files changed, 253 insertions(+), 107 deletions(-) create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Webstore-protection.inc diff --git a/chrome/app/extensions_strings.grdp b/chrome/app/extensions_strings.grdp @@ -126,10 +126,10 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_a // Convenience method to get the DeveloperPrivateAPI for a profile. static DeveloperPrivateAPI* Get(content::BrowserContext* context); -diff --git a/chrome/browser/extensions/api/developer_private/developer_private_functions_shared.cc b/chrome/browser/extensions/api/developer_private/developer_private_functions_shared.cc ---- a/chrome/browser/extensions/api/developer_private/developer_private_functions_shared.cc -+++ b/chrome/browser/extensions/api/developer_private/developer_private_functions_shared.cc -@@ -375,6 +375,7 @@ ExtensionFunction::ResponseAction DeveloperPrivateAutoUpdateFunction::Run() { +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() { 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)); -@@ -511,7 +512,7 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() { +@@ -588,7 +589,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)) { -@@ -525,6 +526,11 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() { +@@ -602,6 +603,11 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() { ->MarkNoticeAsAcknowledgedGlobally(); } @@ -181,15 +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 -@@ -68,6 +68,7 @@ - #include "extensions/browser/scoped_active_install.h" - #include "extensions/buildflags/buildflags.h" - #include "extensions/common/extension.h" -+#include "extensions/common/extension_features.h" - #include "extensions/common/manifest.h" - #include "extensions/common/manifest_constants.h" - #include "extensions/common/manifest_handlers/permissions_parser.h" -@@ -242,6 +243,8 @@ Profile* GetProfileInIncognito(Profile* profile) { +@@ -255,6 +255,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) { @@ -198,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); } -@@ -249,11 +252,15 @@ std::string GetWebstoreLogin(Profile* profile) { +@@ -262,11 +264,15 @@ std::string GetWebstoreLogin(Profile* profile) { } void SetWebstoreLogin(Profile* profile, const std::string& login) { @@ -214,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; -@@ -1177,7 +1184,8 @@ ExtensionFunction::ResponseAction +@@ -1205,7 +1211,8 @@ ExtensionFunction::ResponseAction WebstorePrivateIsInIncognitoModeFunction::Run() { Profile* profile = Profile::FromBrowserContext(browser_context()); return RespondNow(ArgumentList(IsInIncognitoMode::Results::Create( @@ -224,7 +216,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api } WebstorePrivateIsPendingCustodianApprovalFunction:: -@@ -1274,11 +1282,14 @@ WebstorePrivateGetReferrerChainFunction::Run() { +@@ -1302,11 +1309,14 @@ WebstorePrivateGetReferrerChainFunction::Run() { request.mutable_referrer_chain_options()->set_recent_navigations_to_collect( recent_navigations_to_collect); @@ -267,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 -@@ -436,6 +436,7 @@ bool ExtensionManagement::IsExemptFromMV2DeprecationByPolicy( +@@ -440,6 +440,7 @@ bool ExtensionManagement::IsExemptFromMV2DeprecationByPolicy( bool ExtensionManagement::IsAllowedByUnpublishedAvailabilityPolicy( const Extension* extension) { @@ -323,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 -@@ -56,6 +56,7 @@ +@@ -55,6 +55,7 @@ #include "extensions/common/constants.h" #include "extensions/common/extension.h" #include "extensions/common/extension_id.h" @@ -331,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" -@@ -229,6 +230,10 @@ void ExtensionUpdater::Start() { +@@ -228,6 +229,10 @@ void ExtensionUpdater::Start() { DCHECK(!weak_ptr_factory_.HasWeakPtrs()); DCHECK(registry_); alive_ = true; @@ -342,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(); -@@ -380,7 +385,8 @@ void ExtensionUpdater::AddToDownloader( +@@ -379,7 +384,8 @@ void ExtensionUpdater::AddToDownloader( const Extension& extension = **extension_iter; const ExtensionId& extension_id = extension.id(); if (!Manifest::IsAutoUpdateableLocation(extension.location())) { @@ -352,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 -@@ -395,7 +401,7 @@ void ExtensionUpdater::AddToDownloader( +@@ -394,7 +400,7 @@ void ExtensionUpdater::AddToDownloader( continue; } @@ -361,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, -@@ -433,6 +439,12 @@ bool ExtensionUpdater::AddExtensionToDownloader( +@@ -432,6 +438,12 @@ bool ExtensionUpdater::AddExtensionToDownloader( } void ExtensionUpdater::CheckNow(CheckParams params) { @@ -374,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 -@@ -450,7 +462,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -449,7 +461,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { int request_id = next_request_id_++; @@ -383,7 +375,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro if (params.ids.empty()) { NotifyStarted(); } -@@ -519,7 +531,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -518,7 +530,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { update_check_params.update_info[pending_id] = GetExtensionUpdateData(pending_id); } else if (!Manifest::IsAutoUpdateableLocation(info->install_source())) { @@ -392,7 +384,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro continue; } // We have to mark high-priority extensions (such as policy-forced -@@ -529,7 +541,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -528,7 +540,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { // See https://crbug.com/904600 and https://crbug.com/965686. const bool is_high_priority_extension_pending = pending_extension_manager->HasHighPriorityPendingExtension(); @@ -401,7 +393,7 @@ 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 = -@@ -552,6 +564,8 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -551,6 +563,8 @@ void ExtensionUpdater::CheckNow(CheckParams params) { LOG(WARNING) << "Corrupt extension with id " << pending_id << " will be reinstalled with ExtensionDownloader."; } @@ -410,7 +402,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro } else { InstallStageTracker::Get(profile_)->ReportFailure( pending_id, -@@ -564,13 +578,6 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -563,13 +577,6 @@ void ExtensionUpdater::CheckNow(CheckParams params) { AddToDownloader(®istry_->disabled_extensions(), pending_ids, request_id, params.fetch_priority, &update_check_params); ExtensionSet remotely_disabled_extensions; @@ -424,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 { -@@ -578,7 +585,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -577,7 +584,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { const Extension* extension = registry_->GetExtensionById(id, ExtensionRegistry::EVERYTHING); if (extension) { @@ -433,7 +425,7 @@ 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)) { -@@ -722,7 +729,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished( +@@ -721,7 +728,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished( file.extension_id, InstallStageTracker::Stage::INSTALLING); UpdatePingData(file.extension_id, ping); @@ -442,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)); -@@ -733,6 +740,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished( +@@ -732,6 +739,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished( bool ExtensionUpdater::GetPingDataForExtension(const ExtensionId& id, DownloadPingData* ping_data) { @@ -450,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)); -@@ -852,7 +860,7 @@ bool ExtensionUpdater::CanUseUpdateService( +@@ -851,7 +859,7 @@ bool ExtensionUpdater::CanUseUpdateService( void ExtensionUpdater::InstallCRXFile(FetchedCRXFile crx_file) { std::set request_ids; @@ -459,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 -@@ -1061,7 +1069,7 @@ void ExtensionUpdater::NotifyIfFinished(int request_id) { +@@ -1060,7 +1068,7 @@ void ExtensionUpdater::NotifyIfFinished(int request_id) { if (!request.in_progress_ids.empty() || request.awaiting_update_service) { return; // This request is not done yet. } @@ -965,7 +957,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/browser/updater/extension_downloader.cc --- a/extensions/browser/updater/extension_downloader.cc +++ b/extensions/browser/updater/extension_downloader.cc -@@ -485,8 +485,8 @@ void ExtensionDownloader::CreateManifestLoader() { +@@ -486,8 +486,8 @@ void ExtensionDownloader::CreateManifestLoader() { std::vector id_vector(extension_ids.begin(), extension_ids.end()); std::string id_list = base::JoinString(id_vector, ","); @@ -976,7 +968,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro << (active_request->foreground_check() ? kUpdateInteractivityForeground : kUpdateInteractivityBackground); -@@ -511,7 +511,7 @@ void ExtensionDownloader::CreateManifestLoader() { +@@ -512,7 +512,7 @@ void ExtensionDownloader::CreateManifestLoader() { destination: WEBSITE } policy { @@ -985,7 +977,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 " -@@ -528,6 +528,7 @@ void ExtensionDownloader::CreateManifestLoader() { +@@ -529,6 +529,7 @@ void ExtensionDownloader::CreateManifestLoader() { auto resource_request = std::make_unique(); resource_request->url = active_request->full_url(), resource_request->load_flags = net::LOAD_DISABLE_CACHE; @@ -993,7 +985,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro if (active_request->fetch_priority() == DownloadFetchPriority::kForeground) { resource_request->priority = net::MEDIUM; -@@ -536,10 +537,6 @@ void ExtensionDownloader::CreateManifestLoader() { +@@ -537,10 +538,6 @@ void ExtensionDownloader::CreateManifestLoader() { // Send traffic-management headers to the webstore, and omit credentials. // https://bugs.chromium.org/p/chromium/issues/detail?id=647516 if (extension_urls::IsWebstoreUpdateUrl(active_request->full_url())) { @@ -1004,7 +996,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro resource_request->headers.SetHeader(kUpdateAppIdHeader, id_list); resource_request->headers.SetHeader( kUpdateUpdaterHeader, -@@ -824,20 +821,6 @@ void ExtensionDownloader::HandleManifestResults( +@@ -825,20 +822,6 @@ void ExtensionDownloader::HandleManifestResults( update.second->info); } @@ -1025,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); -@@ -859,7 +842,7 @@ ExtensionDownloader::GetUpdateAvailability( +@@ -860,7 +843,7 @@ ExtensionDownloader::GetUpdateAvailability( // extensions that have already existed in the system. if (!delegate_->GetExtensionExistingVersion(extension_id, &extension_version)) { @@ -1034,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 << "'"; -@@ -870,11 +853,11 @@ ExtensionDownloader::GetUpdateAvailability( +@@ -871,11 +854,11 @@ ExtensionDownloader::GetUpdateAvailability( const std::string& update_version_str = update->version; if (VLOG_IS_ON(2)) { if (update_version_str.empty()) @@ -1048,7 +1040,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro << " latest version is '" << update_version_str << "'"; } -@@ -884,21 +867,21 @@ ExtensionDownloader::GetUpdateAvailability( +@@ -885,21 +868,21 @@ ExtensionDownloader::GetUpdateAvailability( // we don't want it. if (update_version_str.empty()) { // If update manifest doesn't have version number => no update. @@ -1073,7 +1065,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro << update_version_str << "'"; bool can_rollback = update_version.CompareTo(existing_version) < 0 && -@@ -925,7 +908,9 @@ ExtensionDownloader::GetUpdateAvailability( +@@ -926,7 +909,9 @@ ExtensionDownloader::GetUpdateAvailability( } // Stop checking as soon as an update for |extension_id| is found. @@ -1084,7 +1076,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro *update_result_out = const_cast(update); return UpdateAvailability::kAvailable; } -@@ -1170,7 +1155,7 @@ void ExtensionDownloader::CreateExtensionLoader() { +@@ -1171,7 +1156,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; @@ -1093,7 +1085,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro extension_loader_resource_request_->credentials_mode = network::mojom::CredentialsMode::kOmit; } else { -@@ -1178,7 +1163,7 @@ void ExtensionDownloader::CreateExtensionLoader() { +@@ -1179,7 +1164,7 @@ void ExtensionDownloader::CreateExtensionLoader() { net::SiteForCookies::FromUrl(fetch->url); } @@ -1102,7 +1094,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 -@@ -1201,7 +1186,7 @@ void ExtensionDownloader::CreateExtensionLoader() { +@@ -1202,7 +1187,7 @@ void ExtensionDownloader::CreateExtensionLoader() { base::StringPrintf("Bearer %s", access_token_.c_str())); } @@ -1111,7 +1103,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro StartExtensionLoader(); } -@@ -1223,7 +1208,7 @@ void ExtensionDownloader::StartExtensionLoader() { +@@ -1224,7 +1209,7 @@ void ExtensionDownloader::StartExtensionLoader() { destination: WEBSITE } policy { @@ -1120,7 +1112,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 " -@@ -1294,6 +1279,7 @@ void ExtensionDownloader::OnExtensionLoadComplete(base::FilePath crx_path) { +@@ -1295,6 +1280,7 @@ void ExtensionDownloader::OnExtensionLoadComplete(base::FilePath crx_path) { RETRY_HISTOGRAM("CrxFetchSuccess", extensions_queue_.active_request_failure_count(), url); @@ -1128,7 +1120,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( -@@ -1314,7 +1300,7 @@ void ExtensionDownloader::OnExtensionLoadComplete(base::FilePath crx_path) { +@@ -1315,7 +1301,7 @@ void ExtensionDownloader::OnExtensionLoadComplete(base::FilePath crx_path) { } else { const std::set request_ids = active_request.GetRequestIds(); const ExtensionDownloaderDelegate::PingResult& ping = ping_results_[id]; @@ -1137,7 +1129,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) { -@@ -1408,6 +1394,7 @@ void ExtensionDownloader::NotifyExtensionsDownloadFailedWithList( +@@ -1409,6 +1395,7 @@ void ExtensionDownloader::NotifyExtensionsDownloadFailedWithList( bool ExtensionDownloader::IterateFetchCredentialsAfterFailure( ExtensionFetch* fetch, int response_code) { @@ -1159,7 +1151,7 @@ diff --git a/extensions/browser/updater/extension_downloader.h b/extensions/brow diff --git a/extensions/browser/updater/manifest_fetch_data.cc b/extensions/browser/updater/manifest_fetch_data.cc --- a/extensions/browser/updater/manifest_fetch_data.cc +++ b/extensions/browser/updater/manifest_fetch_data.cc -@@ -108,7 +108,7 @@ ManifestFetchData::ManifestFetchData(const GURL& update_url, +@@ -107,7 +107,7 @@ ManifestFetchData::ManifestFetchData(const GURL& update_url, : base_url_(update_url), full_url_(update_url), brand_code_(brand_code), @@ -1168,7 +1160,7 @@ diff --git a/extensions/browser/updater/manifest_fetch_data.cc b/extensions/brow fetch_priority_(fetch_priority) { UpdateFullUrl(base_query_params); request_ids_.insert(request_id); -@@ -161,18 +161,12 @@ bool ManifestFetchData::AddExtension(const std::string& id, +@@ -160,18 +160,12 @@ bool ManifestFetchData::AddExtension(const std::string& id, // Compute the string we'd append onto the full_url_, and see if it fits. std::vector parts; parts.push_back("id=" + id); @@ -1201,7 +1193,7 @@ 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 -@@ -183,4 +183,11 @@ BASE_FEATURE(kEnableShouldShowPromotion, base::FEATURE_DISABLED_BY_DEFAULT); +@@ -186,4 +186,11 @@ BASE_FEATURE(kSearchEngineUnconditionalDialog, BASE_FEATURE(kWebRequestPersistFilteredEvents, base::FEATURE_ENABLED_BY_DEFAULT); @@ -1216,7 +1208,7 @@ 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 -@@ -307,6 +307,16 @@ BASE_DECLARE_FEATURE(kWebRequestSecurityInfo); +@@ -310,6 +310,16 @@ BASE_DECLARE_FEATURE(kWebRequestSecurityInfo); // browser startup). BASE_DECLARE_FEATURE(kWebRequestPersistFilteredEvents); diff --git a/build/patches/Client-hints-overrides.patch b/build/patches/Client-hints-overrides.patch index 5a8184a3..fffac682 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 -@@ -202,9 +202,7 @@ const blink::UserAgentBrandList GetUserAgentBrandList( +@@ -186,9 +186,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 -@@ -695,6 +693,7 @@ blink::UserAgentMetadata GetUserAgentMetadata(bool only_low_entropy_ch) { +@@ -676,6 +674,7 @@ blink::UserAgentMetadata GetUserAgentMetadata(bool only_low_entropy_ch) { } // High entropy client hints. @@ -87,7 +87,7 @@ diff --git a/components/embedder_support/user_agent_utils.cc b/components/embedd diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/client_hints/client_hints.cc --- a/content/browser/client_hints/client_hints.cc +++ b/content/browser/client_hints/client_hints.cc -@@ -58,6 +58,7 @@ +@@ -57,6 +57,7 @@ #include "third_party/blink/public/common/features.h" #include "third_party/blink/public/common/page/page_zoom.h" #include "third_party/blink/public/common/user_agent/user_agent_metadata.h" @@ -95,7 +95,7 @@ diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/clie #include "ui/display/display.h" #include "ui/display/screen.h" #include "url/origin.h" -@@ -602,10 +603,21 @@ bool IsClientHintEnabled(const ClientHintsExtendedData& data, +@@ -601,10 +602,21 @@ bool IsClientHintEnabled(const ClientHintsExtendedData& data, bool IsClientHintAllowed(const ClientHintsExtendedData& data, WebClientHintsType type) { @@ -119,7 +119,7 @@ diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/clie network::GetClientHintToPolicyFeatureMap().at(type), data.resource_origin)); } -@@ -630,6 +642,7 @@ bool IsJavascriptEnabled(FrameTreeNode* frame_tree_node) { +@@ -629,6 +641,7 @@ bool IsJavascriptEnabled(FrameTreeNode* frame_tree_node) { void UpdateIFramePermissionsPolicyWithDelegationSupportForClientHints( ClientHintsExtendedData& data, const network::ParsedPermissionsPolicy& container_policy) { @@ -156,7 +156,7 @@ new file mode 100644 diff --git a/net/http/http_network_transaction.cc b/net/http/http_network_transaction.cc --- a/net/http/http_network_transaction.cc +++ b/net/http/http_network_transaction.cc -@@ -113,6 +113,7 @@ const size_t kMaxRestarts = 32; +@@ -114,6 +114,7 @@ const size_t kMaxRestarts = 32; // Returns true when Early Hints are allowed on the given protocol. bool EarlyHintsAreAllowedOn(HttpConnectionInfo connection_info) { @@ -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 -@@ -231,6 +231,8 @@ bool ShouldSendClientHint(const network::PermissionsPolicy& policy, +@@ -233,6 +233,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( -@@ -715,7 +717,7 @@ void FrameFetchContext::AddClientHintsIfNecessary( +@@ -726,7 +728,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 -@@ -610,6 +610,11 @@ +@@ -614,6 +614,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", -@@ -1016,8 +1021,7 @@ +@@ -1020,8 +1025,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 6344d2fa..9b036f01 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 -@@ -443,7 +443,7 @@ BASE_FEATURE(kRelatedWebsitePartitionAPI, base::FEATURE_DISABLED_BY_DEFAULT); +@@ -293,7 +293,7 @@ BASE_FEATURE(kRelatedWebsitePartitionAPI, base::FEATURE_DISABLED_BY_DEFAULT); // NetworkChangeNotifier::AreNetworkHandlesSupported). #if BUILDFLAG(IS_ANDROID) inline constexpr auto kMigrateSessionsOnNetworkChangeV2Default = diff --git a/build/patches/Compress-libchrome-to-free-up-some-space.patch b/build/patches/Compress-libchrome-to-free-up-some-space.patch index f60bdcf4..51b630a9 100644 --- a/build/patches/Compress-libchrome-to-free-up-some-space.patch +++ b/build/patches/Compress-libchrome-to-free-up-some-space.patch @@ -13,7 +13,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/android/chrome_public_apk_tmpl.gni b/chrome/android/chrome_public_apk_tmpl.gni --- a/chrome/android/chrome_public_apk_tmpl.gni +++ b/chrome/android/chrome_public_apk_tmpl.gni -@@ -674,6 +674,7 @@ template("chrome_common_apk_or_module_tmpl") { +@@ -579,6 +579,7 @@ template("chrome_common_apk_or_module_tmpl") { [ "//components/crash/core/app:chrome_crashpad_handler_named_as_so" ] loadable_modules += [ "$root_out_dir/libchrome_crashpad_handler.so" ] library_always_compress += [ "libchrome_crashpad_handler.so" ] diff --git a/build/patches/Content-settings-infrastructure.patch b/build/patches/Content-settings-infrastructure.patch index 4b069ab4..0f806725 100644 --- a/build/patches/Content-settings-infrastructure.patch +++ b/build/patches/Content-settings-infrastructure.patch @@ -47,7 +47,7 @@ Require: bromite-build-utils.patch .../ContentSettingsResources.java | 32 +- .../site_settings/SingleCategorySettings.java | 57 ++- .../site_settings/SingleWebsiteSettings.java | 48 +- - .../site_settings/SiteSettings.java | 33 +- + .../site_settings/SiteSettings.java | 35 +- .../site_settings/SiteSettingsCategory.java | 18 +- .../site_settings/SiteSettingsDelegate.java | 2 + .../TriStateSiteSettingsPreference.java | 11 + @@ -84,7 +84,7 @@ Require: bromite-build-utils.patch .../platform/web_content_settings_client.h | 13 + .../execution_context/execution_context.cc | 16 + .../execution_context/execution_context.h | 5 + - 73 files changed, 1962 insertions(+), 105 deletions(-) + 73 files changed, 1963 insertions(+), 106 deletions(-) create mode 100644 components/browser_ui/settings/android/java/res/layout/preference_spinner_single_widget.xml create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSetting.java create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSettingImpl.java @@ -109,7 +109,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/C /** A SiteSettingsDelegate instance that contains Chrome-specific Site Settings logic. */ @NullMarked public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { -@@ -240,7 +244,7 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { +@@ -251,7 +255,7 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { @Override public boolean isHelpAndFeedbackEnabled() { @@ -151,7 +151,7 @@ diff --git a/chrome/browser/content_settings/page_specific_content_settings_dele 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 -@@ -609,4 +609,5 @@ +@@ -628,4 +628,5 @@ @@ -276,9 +276,9 @@ diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resourc /** * Add all of the child routes that originate from the privacy route, -@@ -150,6 +151,7 @@ function addPrivacyChildRoutes(r: Partial) { - r.SITE_SETTINGS_LOCAL_NETWORK_ACCESS = - r.SITE_SETTINGS.createChild('localNetworkAccess'); +@@ -155,6 +156,7 @@ function addPrivacyChildRoutes(r: Partial) { + r.SITE_SETTINGS_LOOPBACK_NETWORK = + r.SITE_SETTINGS.createChild('loopbackNetwork'); } + setupContentSettingsRoutes(r); } @@ -351,7 +351,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d private getAllowOptionForCategory_(): ContentSetting { // Keep elements in alphabetical order within their groups. switch (this.category) { -@@ -176,6 +191,8 @@ export class SettingsCategoryDefaultRadioGroupElement extends +@@ -178,6 +193,8 @@ export class SettingsCategoryDefaultRadioGroupElement extends // "Ask" vs "Blocked". return ContentSetting.ASK; default: @@ -360,7 +360,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d assertNotReached('Invalid category: ' + this.category); } } -@@ -200,6 +217,7 @@ export class SettingsCategoryDefaultRadioGroupElement extends +@@ -202,6 +219,7 @@ export class SettingsCategoryDefaultRadioGroupElement extends /** @type {!ContentSetting} */ (this.getAllowOptionForCategory_()); this.browserProxy.setDefaultValueForContentType( this.category, @@ -368,7 +368,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d this.categoryEnabled_ ? allowOption : ContentSetting.BLOCK); if (this.selected !== this.categoryEnabled_) { this.selected = this.categoryEnabled_; -@@ -236,7 +254,10 @@ export class SettingsCategoryDefaultRadioGroupElement extends +@@ -240,7 +258,10 @@ export class SettingsCategoryDefaultRadioGroupElement extends } const enabled = isSettingEnabled(update.setting); @@ -383,8 +383,8 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d diff --git a/chrome/browser/resources/settings/site_settings/site_details.html b/chrome/browser/resources/settings/site_settings/site_details.html --- a/chrome/browser/resources/settings/site_settings/site_details.html +++ b/chrome/browser/resources/settings/site_settings/site_details.html -@@ -332,5 +332,6 @@ - label="$i18n{siteSettingsLocalNetworkAccess}"> +@@ -344,5 +344,6 @@ + label="$i18n{siteSettingsLoopbackNetwork}"> +
@@ -606,7 +606,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/site_settings_page. { route: routes.SITE_SETTINGS_ADS, id: Id.ADS, -@@ -452,10 +452,36 @@ function getCategoryItemMap(): Map { +@@ -478,10 +478,36 @@ function getCategoryItemMap(): Map { icon: 'privacy:cookie', }, ]; @@ -643,9 +643,9 @@ diff --git a/chrome/browser/resources/settings/site_settings/site_settings_page. function buildItemListFromIds(orderedIdList: ContentSettingsTypes[]): CategoryListItem[] { const map = getCategoryItemMap(); -@@ -540,7 +566,7 @@ export class SettingsSiteSettingsPageElement extends - Id.WEB_APP_INSTALLATION, - Id.LOCAL_NETWORK_ACCESS, +@@ -568,7 +594,7 @@ export class SettingsSiteSettingsPageElement extends + Id.LOCAL_NETWORK, + Id.LOOPBACK_NETWORK, ]), - contentBasic: buildItemListFromIds([ + contentBasic: buildBromiteItemListFromIds([ @@ -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|. -@@ -110,6 +158,13 @@ export function getLocalizationStringForContentType( +@@ -114,6 +162,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 -@@ -1620,6 +1620,7 @@ static_library("ui") { +@@ -1626,6 +1626,7 @@ static_library("ui") { "//components/commerce/core/webui", "//components/contextual_search:public", "//components/endpoint_fetcher", @@ -735,7 +735,7 @@ 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", -@@ -4790,6 +4791,7 @@ static_library("ui") { +@@ -4814,6 +4815,7 @@ static_library("ui") { "//components/power_bookmarks/core", "//components/power_bookmarks/storage", "//components/prefs", @@ -776,8 +776,8 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_main_view.cc b/chrome/b --- a/chrome/browser/ui/views/page_info/page_info_main_view.cc +++ b/chrome/browser/ui/views/page_info/page_info_main_view.cc @@ -55,6 +55,7 @@ - #include "ui/views/layout/box_layout.h" #include "ui/views/layout/flex_layout.h" + #include "ui/views/metadata/view_factory.h" #include "ui/views/vector_icons.h" +#include "ui/views/layout/table_layout.h" #include "ui/views/view_class_properties.h" @@ -855,7 +855,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.cc b/chrom #include "components/page_info/core/features.h" #include "components/page_info/core/proto/about_this_site_metadata.pb.h" #include "components/page_info/page_info.h" -@@ -280,7 +282,14 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon( +@@ -281,7 +283,14 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon( bool blocked_on_system_level) { PermissionSetting setting = permission.setting.value_or(permission.default_setting); @@ -870,7 +870,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.cc b/chrom auto* info = content_settings::PermissionSettingsRegistry::GetInstance()->Get( permission.type); // For guard content settings and Automatic Picture-in-Picture, ASK is treated -@@ -584,6 +593,17 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon( +@@ -592,6 +601,17 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon( icon = &vector_icons::kPrinterIcon; break; default: @@ -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" -@@ -4111,6 +4115,56 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, +@@ -4190,6 +4194,56 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, policy_indicator::AddLocalizedStrings(html_source); AddSecurityKeysStrings(html_source); @@ -1284,7 +1284,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/browser/ui/webui/settings/site_settings_helper.cc --- a/chrome/browser/ui/webui/settings/site_settings_helper.cc +++ b/chrome/browser/ui/webui/settings/site_settings_helper.cc -@@ -47,6 +47,8 @@ +@@ -46,6 +46,8 @@ #include "chrome/grit/generated_resources.h" #include "components/content_settings/core/browser/content_settings_provider.h" #include "components/content_settings/core/browser/host_content_settings_map.h" @@ -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" -@@ -261,13 +263,13 @@ constexpr auto kContentSettingsTypeGroupNames = std::to_array< +@@ -262,13 +264,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; -@@ -529,6 +531,13 @@ bool HasRegisteredGroupName(ContentSettingsType type) { +@@ -530,6 +532,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; } -@@ -542,11 +551,24 @@ ContentSettingsType ContentSettingsTypeFromGroupName(std::string_view name) { +@@ -543,11 +552,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 -@@ -561,7 +583,6 @@ std::string_view ContentSettingsTypeToGroupName(ContentSettingsType type) { +@@ -562,7 +584,6 @@ std::string_view ContentSettingsTypeToGroupName(ContentSettingsType type) { return entry.name ? entry.name : std::string_view(); } } @@ -1362,8 +1362,8 @@ 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."; } -@@ -664,6 +685,13 @@ std::vector GetVisiblePermissionCategories( - base_types->push_back(ContentSettingsType::LOCAL_NETWORK_ACCESS); +@@ -671,6 +692,13 @@ std::vector GetVisiblePermissionCategories( + } } + content_settings::WebsiteSettingsRegistry* website_settings = @@ -1379,7 +1379,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b diff --git a/components/browser_ui/settings/android/BUILD.gn b/components/browser_ui/settings/android/BUILD.gn --- a/components/browser_ui/settings/android/BUILD.gn +++ b/components/browser_ui/settings/android/BUILD.gn -@@ -92,6 +92,7 @@ android_resources("java_resources") { +@@ -97,6 +97,7 @@ android_resources("java_resources") { "java/res/layout/preference_chrome_button.xml", "java/res/layout/preference_chrome_image_view.xml", "java/res/layout/preference_spinner.xml", @@ -1567,18 +1567,18 @@ diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/b } android_library("javatests") { -@@ -208,6 +225,7 @@ robolectric_library("junit") { +@@ -211,6 +228,7 @@ robolectric_library("junit") { } android_resources("java_resources") { + allow_missing_resources = true sources = [ - "java/res/drawable-hdpi/ic_volume_up_grey600_24dp.png", "java/res/drawable-hdpi/permission_popups.png", + "java/res/drawable-hdpi/settings_sensors.png", diff --git a/components/browser_ui/site_settings/android/java/res/xml/site_settings_preferences.xml b/components/browser_ui/site_settings/android/java/res/xml/site_settings_preferences.xml --- a/components/browser_ui/site_settings/android/java/res/xml/site_settings_preferences.xml +++ b/components/browser_ui/site_settings/android/java/res/xml/site_settings_preferences.xml -@@ -198,4 +198,11 @@ The order of the following items is from: http://crbug.com/610358. +@@ -196,4 +196,11 @@ The order of the following items is from: http://crbug.com/610358. android:summary="@string/safety_hub_autorevocation_toggle_summary" app:backgroundStyle="card"/> @@ -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 -@@ -390,7 +390,8 @@ public class AllSiteSettings extends BaseSiteSettingsFragment +@@ -402,7 +402,8 @@ public class AllSiteSettings extends BaseSiteSettingsFragment if (queryHasChanged) getInfoForOrigins(); }); @@ -1603,10 +1603,10 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c MenuItem help = menu.add( Menu.NONE, -@@ -402,6 +403,8 @@ public class AllSiteSettings extends BaseSiteSettingsFragment - getResources(), - R.drawable.ic_help_and_feedback, - getContext().getTheme())); +@@ -412,6 +413,8 @@ public class AllSiteSettings extends BaseSiteSettingsFragment + help.setIcon( + TraceEventVectorDrawableCompat.create( + getResources(), R.drawable.ic_help_24dp, getContext().getTheme())); + if (!BromiteCustomContentSettingImpl.isHelpAndFeedbackEnabled(mCategory)) + help.setVisible(false); } @@ -2263,7 +2263,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c int icon, int title, @ContentSetting @Nullable Integer defaultEnabledValue, -@@ -662,6 +683,8 @@ public class ContentSettingsResources { +@@ -689,6 +710,8 @@ public class ContentSettingsResources { R.string.website_settings_window_management_ask, R.string.website_settings_window_management_block); } @@ -2272,7 +2272,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c assert false; // NOTREACHED return assumeNonNull(null); } -@@ -842,6 +865,9 @@ public class ContentSettingsResources { +@@ -869,6 +892,9 @@ public class ContentSettingsResources { @ContentSetting int value, boolean isOneTime, boolean isApproximateGeolocation) { @@ -2282,7 +2282,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c return getCategorySummary( type, value, -@@ -1049,6 +1075,8 @@ public class ContentSettingsResources { +@@ -1069,6 +1095,8 @@ public class ContentSettingsResources { */ public static int @Nullable [] getTriStateSettingDescriptionIDs( int contentType, boolean isPermissionSiteSettingsRadioButtonFeatureEnabled) { @@ -2294,7 +2294,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 -@@ -361,6 +361,10 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -368,6 +368,10 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment } else { @ContentSetting Integer contentSetting = website.site().getContentSetting(browserContextHandle, type); @@ -2305,7 +2305,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c if (contentSetting != null) { return ContentSetting.BLOCK == contentSetting; } -@@ -552,6 +556,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -559,6 +563,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment ? new HashSet<>(getArguments().getStringArrayList(EXTRA_SELECTED_DOMAINS)) : null; @@ -2313,7 +2313,7 @@ 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"); -@@ -587,7 +592,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -600,7 +605,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment if (queryHasChanged) getInfoForOrigins(); }); @@ -2323,10 +2323,10 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c MenuItem help = menu.add( Menu.NONE, -@@ -599,12 +605,20 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment - getResources(), - R.drawable.ic_help_and_feedback, - getContext().getTheme())); +@@ -610,12 +616,20 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment + help.setIcon( + TraceEventVectorDrawableCompat.create( + getResources(), R.drawable.ic_help_24dp, getContext().getTheme())); + if (!BromiteCustomContentSettingImpl.isHelpAndFeedbackEnabled(mCategory)) + help.setVisible(false); } @@ -2344,7 +2344,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()); -@@ -682,6 +696,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -693,6 +707,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment public boolean onPreferenceChange(Preference preference, Object newValue) { BrowserContextHandle browserContextHandle = getBrowserContextHandle(); PrefService prefService = UserPrefs.get(browserContextHandle); @@ -2356,7 +2356,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(); -@@ -856,7 +875,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -867,7 +886,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; } @@ -2365,7 +2365,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } // OnPreferenceClickListener: -@@ -974,17 +993,15 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -985,17 +1004,15 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment break; } @@ -2386,7 +2386,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c String exceptionDialogMessage = exceptionDialogMessageResourceId != 0 ? getString(exceptionDialogMessageResourceId) -@@ -995,7 +1012,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1006,7 +1023,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment getStyledContext(), ADD_EXCEPTION_KEY, exceptionDialogMessage, @@ -2395,7 +2395,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c mCategory, this)); -@@ -1179,8 +1196,16 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1190,8 +1207,16 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment private boolean isBlocked() { switch (mGlobalToggleLayout) { case GlobalToggleLayout.TRI_STATE_TOGGLE: @@ -2412,7 +2412,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c return (triStateToggle.getCheckedSetting() == ContentSetting.BLOCK); case GlobalToggleLayout.TRI_STATE_COOKIE_TOGGLE: TriStateCookieSettingsPreference triStateCookieToggle = -@@ -1333,7 +1358,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1348,7 +1373,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment } else if (res_id != -1) { infoText.setSummary(res_id); } else { @@ -2425,7 +2425,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } // Hide the anti-abuse text preferences, as needed. -@@ -1372,6 +1401,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1387,6 +1416,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment } else { screen.removePreference(mLocationTriStatePref); } @@ -2433,7 +2433,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c maybeShowReasonToggleDisabled(screen); -@@ -1580,6 +1610,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1595,6 +1625,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment iconIds = ContentSettingsResources.getTriStateSettingIconIDs(contentType); } triStateToggle.initialize( @@ -2441,7 +2441,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c setting, descriptionIds, iconIds, -@@ -1891,6 +1922,14 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1906,6 +1937,14 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment setLocationAccessEnabled.accept(allowButton.isChecked()); } @@ -2459,7 +2459,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/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java -@@ -58,6 +58,7 @@ import java.util.Collection; +@@ -59,6 +59,7 @@ import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -2467,7 +2467,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c /** Shows the permissions and other settings for a particular website. */ @NullMarked -@@ -204,7 +205,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -209,7 +210,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment case ContentSettingsType.WINDOW_MANAGEMENT: return "window_management_permission_list"; default: @@ -2476,7 +2476,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } } -@@ -650,7 +651,8 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -656,7 +657,8 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment private void setupContentSettingsPreferences() { Preference permissionsHeaderPref = findPreference(PREF_PERMISSIONS_HEADER); mMaxPermissionOrder = permissionsHeaderPref.getOrder(); @@ -2486,7 +2486,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c Preference preference = getPermissionPreference(type); preference.setKey(getPreferenceKey(type)); -@@ -682,6 +684,19 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -688,6 +690,19 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment } private Preference getPermissionPreference(@ContentSettingsType.EnumType int type) { @@ -2506,7 +2506,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(); -@@ -1354,7 +1369,14 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1345,7 +1360,14 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment value = ContentSetting.BLOCK; } @@ -2522,7 +2522,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c setUpPreferenceCommon(preference, value); preference.setOnPreferenceChangeListener(this); -@@ -1404,10 +1426,14 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1395,10 +1417,14 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment oneTimePreference.setBackgroundColor(mHighlightColor); } } else { @@ -2541,7 +2541,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c AppCompatResources.getColorStateList(getContext(), mHighlightColor) .getDefaultColor()); } -@@ -1713,7 +1739,13 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1704,7 +1730,13 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment if (newValue instanceof Boolean) { permission = (Boolean) newValue ? getEnabledValue(type) : ContentSetting.BLOCK; } else { @@ -2559,7 +2559,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/SiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettings.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettings.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettings.java -@@ -55,6 +55,7 @@ public class SiteSettings extends BaseSiteSettingsFragment +@@ -61,6 +61,7 @@ public class SiteSettings extends BaseSiteSettingsFragment SettingsUtils.addPreferencesFromResource(this, R.xml.site_settings_preferences); mPageTitle.set(getContext().getString(R.string.prefs_site_settings)); @@ -2567,7 +2567,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c configurePreferences(); updatePreferenceStates(); } -@@ -91,7 +92,7 @@ public class SiteSettings extends BaseSiteSettingsFragment +@@ -90,7 +91,7 @@ public class SiteSettings extends BaseSiteSettingsFragment // Remove unsupported settings categories. for (@SiteSettingsCategory.Type int type = 0; @@ -2576,7 +2576,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c type++) { if (!getSiteSettingsDelegate().isCategoryVisible(type)) { Preference pref = findPreference(type); -@@ -108,7 +109,7 @@ public class SiteSettings extends BaseSiteSettingsFragment +@@ -107,7 +108,7 @@ public class SiteSettings extends BaseSiteSettingsFragment @CookieControlsMode int cookieControlsMode = UserPrefs.get(browserContextHandle).getInteger(COOKIE_CONTROLS_MODE); @@ -2585,7 +2585,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c Preference p = findPreference(prefCategory); int contentType = SiteSettingsCategory.contentSettingsType(prefCategory); // p can be null if the Preference was removed in configurePreferences. -@@ -182,20 +183,22 @@ public class SiteSettings extends BaseSiteSettingsFragment +@@ -181,20 +182,22 @@ public class SiteSettings extends BaseSiteSettingsFragment } else if (Type.ZOOM == prefCategory) { // Don't want to set a summary for Zoom because we don't want any message to display // under the Zoom row on site settings. @@ -2621,28 +2621,37 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } if (prefCategory != Type.THIRD_PARTY_COOKIES) { +@@ -278,7 +281,7 @@ public class SiteSettings extends BaseSiteSettingsFragment + // Always remove the divider as the search is based on containment style. + indexData.removeEntry(PreferenceParser.createUniqueId(prefFragment, "divider")); + +- for (@Type int prefCategory = 0; prefCategory < Type.NUM_ENTRIES; prefCategory++) { ++ for (@Type int prefCategory = 0; prefCategory < BromiteCustomContentSettingImpl.NUM_ENTRIES(); prefCategory++) { + if (SiteSettingsCategory.contentSettingsType(prefCategory) < 0) continue; + + String key = SiteSettingsCategory.preferenceKey(prefCategory); diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java -@@ -82,7 +82,7 @@ public class SiteSettingsCategory { - Type.LOCAL_NETWORK_ACCESS, - Type.WINDOW_MANAGEMENT, +@@ -83,7 +83,7 @@ public class SiteSettingsCategory { Type.AUTO_PICTURE_IN_PICTURE, + Type.LOCAL_NETWORK, + Type.LOOPBACK_NETWORK, - Type.NUM_ENTRIES + Type.NUM_ENTRIES_CHROMIUM }) @Retention(RetentionPolicy.SOURCE) public @interface Type { -@@ -128,7 +128,7 @@ public class SiteSettingsCategory { - int AUTO_PICTURE_IN_PICTURE = 37; +@@ -130,7 +130,7 @@ public class SiteSettingsCategory { + int LOOPBACK_NETWORK = 38; /** Number of handled categories used for calculating array sizes. */ -- int NUM_ENTRIES = 38; -+ int NUM_ENTRIES_CHROMIUM = 38; +- int NUM_ENTRIES = 39; ++ int NUM_ENTRIES_CHROMIUM = 39; } private final BrowserContextHandle mBrowserContextHandle; -@@ -187,6 +187,9 @@ public class SiteSettingsCategory { +@@ -189,6 +189,9 @@ public class SiteSettingsCategory { } else { permission = ""; } @@ -2652,7 +2661,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c return new SiteSettingsCategory(browserContextHandle, type, permission); } -@@ -195,7 +198,7 @@ public class SiteSettingsCategory { +@@ -197,7 +200,7 @@ public class SiteSettingsCategory { @ContentSettingsType.EnumType int contentSettingsType) { assert contentSettingsType != -1; assert Type.ALL_SITES == 0; @@ -2661,7 +2670,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c if (contentSettingsType(i) == contentSettingsType) { return createFromType(browserContextHandle, i); } -@@ -206,7 +209,7 @@ public class SiteSettingsCategory { +@@ -208,7 +211,7 @@ public class SiteSettingsCategory { public static @Nullable SiteSettingsCategory createFromPreferenceKey( BrowserContextHandle browserContextHandle, String preferenceKey) { assert Type.ALL_SITES == 0; @@ -2670,8 +2679,8 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c if (preferenceKey(i).equals(preferenceKey)) { return createFromType(browserContextHandle, i); } -@@ -291,8 +294,7 @@ public class SiteSettingsCategory { - case Type.TRACKING_PROTECTION: +@@ -296,8 +299,7 @@ public class SiteSettingsCategory { + case Type.ZOOM: return ContentSettingsType.DEFAULT; // Conversion unavailable. } - assert false; @@ -2680,7 +2689,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } /** -@@ -393,8 +395,12 @@ public class SiteSettingsCategory { +@@ -400,8 +402,12 @@ public class SiteSettingsCategory { case Type.ZOOM: return "zoom"; default: @@ -2696,7 +2705,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/SiteSettingsDelegate.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsDelegate.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsDelegate.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsDelegate.java -@@ -198,6 +198,8 @@ public interface SiteSettingsDelegate { +@@ -188,6 +188,8 @@ public interface SiteSettingsDelegate { */ String getRelatedWebsiteSetOwner(String memberOrigin); @@ -2771,7 +2780,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/WebsitePermissionsFetcher.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java -@@ -129,7 +129,7 @@ public class WebsitePermissionsFetcher { +@@ -131,7 +131,7 @@ public class WebsitePermissionsFetcher { } break; default: @@ -2879,20 +2888,27 @@ diff --git a/components/content_settings/android/BUILD.gn b/components/content_s diff --git a/components/content_settings/core/browser/BUILD.gn b/components/content_settings/core/browser/BUILD.gn --- a/components/content_settings/core/browser/BUILD.gn +++ b/components/content_settings/core/browser/BUILD.gn -@@ -81,6 +81,13 @@ static_library("browser") { - } +@@ -81,6 +81,8 @@ static_library("browser") { configs += [ "//build/config/compiler:wexit_time_destructors" ] -+ + + deps += [ ":bromite_content_settings" ] -+} + + # TODO(crbug.com/40145057): remove deprecated RWS and this include. + # Allow access to /components/privacy_sandbox/privacy_sandbox_prefs.h + # from /chrome/browser/ui/page_info/page_info_unittest.cc +@@ -89,6 +91,11 @@ static_library("browser") { + public_deps += [ "//components/privacy_sandbox:privacy_sandbox_prefs" ] + } + +cpp_bromite_include("bromite_content_settings") { + inputs = [ "bromite_content_settings/placeholder.txt" ] + output_file = "bromite_content_settings.inc" - } - ++} ++ source_set("cookie_settings") { + sources = [ + "cookie_settings.cc", diff --git a/components/content_settings/core/browser/bromite_content_settings/placeholder.txt b/components/content_settings/core/browser/bromite_content_settings/placeholder.txt new file mode 100644 --- /dev/null @@ -2902,7 +2918,7 @@ new file mode 100644 diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc --- a/components/content_settings/core/browser/content_settings_registry.cc +++ b/components/content_settings/core/browser/content_settings_registry.cc -@@ -19,6 +19,7 @@ +@@ -18,6 +18,7 @@ #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/features.h" @@ -2910,7 +2926,7 @@ diff --git a/components/content_settings/core/browser/content_settings_registry. namespace content_settings { -@@ -848,6 +849,7 @@ void ContentSettingsRegistry::Init() { +@@ -869,6 +870,7 @@ void ContentSettingsRegistry::Init() { WebsiteSettingsRegistry::PLATFORM_CHROMEOS, ContentSettingsInfo::INHERIT_IN_INCOGNITO, PermissionSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY); @@ -2921,7 +2937,7 @@ diff --git a/components/content_settings/core/browser/content_settings_registry. diff --git a/components/content_settings/core/browser/content_settings_uma_util.cc b/components/content_settings/core/browser/content_settings_uma_util.cc --- a/components/content_settings/core/browser/content_settings_uma_util.cc +++ b/components/content_settings/core/browser/content_settings_uma_util.cc -@@ -226,11 +226,7 @@ void RecordContentSettingsHistogram(const std::string& name, +@@ -228,11 +228,7 @@ void RecordContentSettingsHistogram(const std::string& name, } int ContentSettingTypeToHistogramValue(ContentSettingsType content_setting) { @@ -3048,7 +3064,7 @@ diff --git a/components/content_settings/core/browser/website_settings_registry. diff --git a/components/content_settings/core/common/BUILD.gn b/components/content_settings/core/common/BUILD.gn --- a/components/content_settings/core/common/BUILD.gn +++ b/components/content_settings/core/common/BUILD.gn -@@ -54,6 +54,13 @@ static_library("common") { +@@ -53,6 +53,13 @@ static_library("common") { "//net", "//url", ] @@ -3062,7 +3078,7 @@ diff --git a/components/content_settings/core/common/BUILD.gn b/components/conte } source_set("unit_tests") { -@@ -86,6 +93,7 @@ mojom("content_settings_types") { +@@ -85,6 +92,7 @@ mojom("content_settings_types") { sources = [ "content_settings_types.mojom" ] public_deps = [ "//mojo/public/mojom/base" ] @@ -3079,7 +3095,7 @@ new file mode 100644 diff --git a/components/content_settings/core/common/content_settings.cc b/components/content_settings/core/common/content_settings.cc --- a/components/content_settings/core/common/content_settings.cc +++ b/components/content_settings/core/common/content_settings.cc -@@ -18,11 +18,12 @@ +@@ -17,11 +17,12 @@ #include "components/content_settings/core/common/content_settings_metadata.h" #include "components/content_settings/core/common/content_settings_types.h" #include "components/content_settings/core/common/content_settings_utils.h" @@ -3093,7 +3109,7 @@ diff --git a/components/content_settings/core/common/content_settings.cc b/compo const GURL& primary_url) { std::erase_if(settings, [&primary_url](const ContentSettingPatternSource& source) { -@@ -106,6 +107,13 @@ std::ostream& operator<<(std::ostream& os, +@@ -105,6 +106,13 @@ std::ostream& operator<<(std::ostream& os, // static bool RendererContentSettingRules::IsRendererContentSetting( ContentSettingsType content_type) { @@ -3107,7 +3123,7 @@ diff --git a/components/content_settings/core/common/content_settings.cc b/compo return content_type == ContentSettingsType::IMAGES || content_type == ContentSettingsType::JAVASCRIPT || content_type == ContentSettingsType::POPUPS || -@@ -115,7 +123,10 @@ bool RendererContentSettingRules::IsRendererContentSetting( +@@ -114,7 +122,10 @@ bool RendererContentSettingRules::IsRendererContentSetting( void RendererContentSettingRules::FilterRulesByOutermostMainFrameURL( const GURL& outermost_main_frame_url) { @@ -3119,7 +3135,7 @@ diff --git a/components/content_settings/core/common/content_settings.cc b/compo } RendererContentSettingRules::RendererContentSettingRules() = default; -@@ -135,7 +146,20 @@ RendererContentSettingRules& RendererContentSettingRules::operator=( +@@ -134,7 +145,20 @@ RendererContentSettingRules& RendererContentSettingRules::operator=( RendererContentSettingRules&& rules) = default; bool RendererContentSettingRules::operator==( @@ -3257,7 +3273,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 -@@ -492,5 +492,7 @@ enum ContentSettingsType { +@@ -496,5 +496,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, @@ -3378,7 +3394,7 @@ diff --git a/components/content_settings/renderer/content_settings_agent_impl.h diff --git a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoPermissionsController.java b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoPermissionsController.java --- a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoPermissionsController.java +++ b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoPermissionsController.java -@@ -241,6 +241,15 @@ public class PageInfoPermissionsController extends PageInfoPreferenceSubpageCont +@@ -244,6 +244,15 @@ public class PageInfoPermissionsController extends PageInfoPreferenceSubpageCont : perm1.nameMidSentence.toString()); } @@ -3405,8 +3421,8 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp #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" -@@ -206,6 +207,15 @@ void PageInfoControllerAndroid::SetPermissionInfo( - permissions_to_display.push_back(ContentSettingsType::LOCAL_NETWORK_ACCESS); +@@ -213,6 +214,15 @@ void PageInfoControllerAndroid::SetPermissionInfo( + } } + content_settings::WebsiteSettingsRegistry* website_settings = @@ -3421,7 +3437,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp std::map user_specified_settings_to_display; -@@ -284,6 +294,14 @@ std::optional PageInfoControllerAndroid::GetSettingToDisplay( +@@ -291,6 +301,14 @@ std::optional PageInfoControllerAndroid::GetSettingToDisplay( return permission.setting; } @@ -3447,7 +3463,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" -@@ -1391,6 +1392,14 @@ bool PageInfo::ShouldShowPermission( +@@ -1393,6 +1394,14 @@ bool PageInfo::ShouldShowPermission( } #endif // BUILDFLAG(IS_ANDROID) @@ -3462,7 +3478,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) { -@@ -1514,7 +1523,19 @@ void PageInfo::PresentSitePermissions() { +@@ -1516,7 +1525,19 @@ void PageInfo::PresentSitePermissions() { HostContentSettingsMap* content_settings = GetContentSettings(); DCHECK(web_contents_); @@ -3494,7 +3510,7 @@ diff --git a/components/page_info/page_info_ui.cc b/components/page_info/page_in #include "components/page_info/core/features.h" #include "components/page_info/page_info.h" #include "components/page_info/page_info_ui.h" -@@ -251,6 +252,13 @@ void CreateOppositeToDefaultSiteException( +@@ -256,6 +257,13 @@ void CreateOppositeToDefaultSiteException( std::u16string GetPermissionAskStateString(ContentSettingsType type) { int message_id = kInvalidResourceID; @@ -3508,7 +3524,7 @@ diff --git a/components/page_info/page_info_ui.cc b/components/page_info/page_in switch (type) { case ContentSettingsType::GEOLOCATION: message_id = IDS_PAGE_INFO_STATE_TEXT_LOCATION_ASK; -@@ -549,6 +557,12 @@ PageInfoUI::~PageInfoUI() = default; +@@ -560,6 +568,12 @@ PageInfoUI::~PageInfoUI() = default; // static std::u16string PageInfoUI::PermissionTypeToUIString(ContentSettingsType type) { @@ -3521,7 +3537,7 @@ diff --git a/components/page_info/page_info_ui.cc b/components/page_info/page_in for (const PermissionUIInfo& info : GetContentSettingsUIInfo()) { if (info.type == type) return l10n_util::GetStringUTF16(info.string_id); -@@ -559,6 +573,12 @@ std::u16string PageInfoUI::PermissionTypeToUIString(ContentSettingsType type) { +@@ -570,6 +584,12 @@ std::u16string PageInfoUI::PermissionTypeToUIString(ContentSettingsType type) { // static std::u16string PageInfoUI::PermissionTypeToUIStringMidSentence( ContentSettingsType type) { @@ -3534,7 +3550,7 @@ diff --git a/components/page_info/page_info_ui.cc b/components/page_info/page_in for (const PermissionUIInfo& info : GetContentSettingsUIInfo()) { if (info.type == type) return l10n_util::GetStringUTF16(info.string_id_mid_sentence); -@@ -952,6 +972,11 @@ bool PageInfoUI::ContentSettingsTypeInPageInfo(ContentSettingsType type) { +@@ -963,6 +983,11 @@ bool PageInfoUI::ContentSettingsTypeInPageInfo(ContentSettingsType type) { if (info.type == type) return true; } @@ -3589,7 +3605,7 @@ diff --git a/third_party/blink/public/platform/web_content_settings_client.h b/t 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 +++ b/third_party/blink/renderer/core/execution_context/execution_context.cc -@@ -78,6 +78,22 @@ +@@ -70,6 +70,22 @@ namespace blink { @@ -3615,7 +3631,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 -@@ -44,6 +44,7 @@ +@@ -43,6 +43,7 @@ #include "third_party/blink/public/mojom/origin_trials/origin_trial_feature.mojom-blink-forward.h" #include "third_party/blink/public/mojom/permissions_policy/policy_disposition.mojom-blink-forward.h" #include "third_party/blink/public/mojom/v8_cache_options.mojom-blink-forward.h" @@ -3623,10 +3639,10 @@ 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" -@@ -136,6 +137,10 @@ class TrustedTypePolicyFactory; - class WebCodecsLogger; - class WebPrintingManager; - class WebViewAndroid; +@@ -97,6 +98,10 @@ class SecurityOrigin; + class ScriptState; + class ScriptWrappable; + class TrustedTypePolicyFactory; +class WebContentSettingsClient; + +CORE_EXPORT WebContentSettingsClient* GetContentSettingsClientFor( diff --git a/build/patches/Cromite-Branding--improve-settings-ui.patch b/build/patches/Cromite-Branding--improve-settings-ui.patch index 2bc5c4f6..0fa3d0f9 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 -@@ -683,7 +683,7 @@ chrome_java_resources = [ +@@ -658,7 +658,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", @@ -30,16 +30,16 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja 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 -@@ -11,7 +11,7 @@ found in the LICENSE file. - - +@@ -12,7 +12,7 @@ found in the LICENSE file. + android:key="settings_promo_card" + android:order="0" /> 29220 bytes .../layered_app_icon_background.png | Bin 3519 -> 142032 bytes .../values/channel_constants.xml | 8 +- - .../about_settings/AboutChromeSettings.java | 4 +- .../ChromeContextMenuPopulator.java | 2 +- .../browser/fullscreen/FullscreenToast.java | 2 +- .../inline/BromiteInlineUpdateController.java | 19 +++- @@ -46,6 +45,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../prefs/chrome_pref_service_factory.cc | 6 +- .../profiles/profile_shortcut_manager_win.cc | 2 +- .../settings/settings_menu/settings_menu.html | 14 ++- + .../tab_group_sync/TabGroupSyncUtils.java | 5 +- .../OmniboxSuggestionsContainer.java | 8 +- .../strings/android_chrome_strings.grd | 4 +- .../toolbar/chrome_labs/chrome_labs_utils.cc | 1 + @@ -67,9 +67,9 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../webui/version/resources/about_version.ts | 4 +- .../resources/about_version_mobile.css | 9 ++ content/child/runtime_features.cc | 44 ++++----- - .../Cromite-Branding.inc | 2 + + .../Cromite-Branding.inc | 1 + tools/grit/grit/grd_reader.py | 35 +++++++ - 65 files changed, 265 insertions(+), 175 deletions(-) + 65 files changed, 266 insertions(+), 174 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 @@ -139,8 +139,8 @@ diff --git a/chrome/android/java/res/xml/legal_information_preferences.xml b/chr 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 -@@ -12,20 +12,20 @@ found in the LICENSE file. - +@@ -13,20 +13,20 @@ found in the LICENSE file. + android:order="0" /> Cromite search
+ Cromite quick action search -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 -@@ -82,7 +82,9 @@ public class AboutChromeSettings extends ChromeBaseSettingsFragment - p.setSummary(AboutSettingsBridge.getOSVersion()); - p = findPreference(PREF_LEGAL_INFORMATION); - assumeNonNull(p); -- int currentYear = CalendarFactory.get().get(Calendar.YEAR); -+ Calendar calendar = CalendarFactory.get(); -+ calendar.setTimeInMillis(System.currentTimeMillis()); -+ int currentYear = calendar.get(Calendar.YEAR); - p.setSummary(getString(R.string.legal_information_summary, currentYear)); - - ChromeSwitchPreference allowInlineUpdate = diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java -@@ -481,8 +481,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -485,8 +485,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { && !isEmptyUrl(mParams.getUrl()) && UrlUtilities.isAcceptedScheme(mParams.getUrl())) { if (mMode == ContextMenuMode.NORMAL) { @@ -9230,7 +9216,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/Br 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 -@@ -909,12 +909,12 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -913,12 +913,12 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { if (tab.canGoBack()) { return ActionType.NAVIGATE_BACK; } @@ -13223,7 +13209,7 @@ e)fqMZZ`3a)Ds&5H -- ++ + - -+ ++ + @@ -13321,7 +13308,7 @@ diff --git a/chrome/browser/hub/internal/android/res/layout/hub_toolbar_layout.x - android:layout_width="44dp" - android:layout_height="match_parent" - android:contentDescription="@string/search" -- android:src="@drawable/ic_search" +- android:src="@drawable/ic_search_24dp" - android:tooltipText="@string/accessibility_search_loupe_tooltip_text" style="@style/ToolbarMenuButton" - app:tint="@color/default_icon_color_tint_list" /> @@ -13433,6 +13420,21 @@ diff --git a/chrome/browser/resources/settings/settings_menu/settings_menu.html $i18n{aboutPageTitle} +diff --git a/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/browser/tab_group_sync/TabGroupSyncUtils.java b/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/browser/tab_group_sync/TabGroupSyncUtils.java +--- a/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/browser/tab_group_sync/TabGroupSyncUtils.java ++++ b/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/browser/tab_group_sync/TabGroupSyncUtils.java +@@ -127,7 +127,10 @@ public final class TabGroupSyncUtils { + for (String syncGroupId : tabGroupSyncService.getAllGroupIds()) { + SavedTabGroup savedTabGroup = tabGroupSyncService.getGroup(syncGroupId); + // If there is no local ID the group is already hidden so this is a no-op. +- if (savedTabGroup == null || savedTabGroup.localId == null) continue; ++ if (savedTabGroup == null || savedTabGroup.localId == null) { ++ tabGroupSyncService.removeGroup(syncGroupId); ++ continue; ++ } + + if (!isInAnyWindow(savedTabGroup.localId, filterList)) { + tabGroupSyncService.removeLocalTabGroupMapping( diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsContainer.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsContainer.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsContainer.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsContainer.java @@ -13444,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; -@@ -111,8 +112,11 @@ public class OmniboxSuggestionsContainer extends FrameLayout { +@@ -112,8 +113,11 @@ public class OmniboxSuggestionsContainer extends FrameLayout { // Omnibox. // Making the container `clickable=true` achieves similar goal, but this consumes all // activators, including keyboard key. @@ -13461,7 +13463,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow 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 -@@ -2380,7 +2380,7 @@ Your Google account may have other forms of browsing history like searches and a +@@ -2378,7 +2378,7 @@ Your Google account may have other forms of browsing history like searches and a About Chrome @@ -13470,7 +13472,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro Application version -@@ -5845,7 +5845,7 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -5868,7 +5868,7 @@ To change this setting, BEGIN_LINKdelete the Chrome d @@ -13526,7 +13528,7 @@ diff --git a/chrome/install_static/chromium_install_modes.cc b/chrome/install_st 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 -@@ -1020,7 +1020,7 @@ +@@ -994,7 +994,7 @@ @@ -18434,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 -@@ -1106,6 +1106,7 @@ bool AutocompleteController::ShouldRunProvider( +@@ -1105,6 +1105,7 @@ bool AutocompleteController::ShouldRunProvider( #if BUILDFLAG(IS_ANDROID) if (omnibox::IsAndroidHub(input_.current_page_classification())) { @@ -19195,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 -@@ -573,19 +573,22 @@ void ResolveInvalidConfigurations() { +@@ -576,19 +576,22 @@ void ResolveInvalidConfigurations() { base::FeatureList::IsEnabled( features::kPrivacySandboxAdsAPIsM1Override)) && !base::FeatureList::IsEnabled(blink::features::kFencedFrames)) { @@ -19222,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 << "=" -@@ -593,12 +596,14 @@ void ResolveInvalidConfigurations() { +@@ -596,12 +599,14 @@ void ResolveInvalidConfigurations() { WebRuntimeFeatures::EnableFeatureFromString( "FencedFramesLocalUnpartitionedDataAccess", false); } @@ -19238,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."; -@@ -606,30 +611,23 @@ void ResolveInvalidConfigurations() { +@@ -609,30 +614,23 @@ void ResolveInvalidConfigurations() { WebRuntimeFeatures::EnableTopicsDocumentAPI(false); WebRuntimeFeatures::EnableTopicsImgAPI(false); } else { @@ -19275,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 << "=" -@@ -637,23 +635,25 @@ void ResolveInvalidConfigurations() { +@@ -640,23 +638,25 @@ void ResolveInvalidConfigurations() { << " in addition."; WebRuntimeFeatures::EnableAttributionReporting(false); } @@ -19309,8 +19311,7 @@ diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/C new file mode 100644 --- /dev/null +++ b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Cromite-Branding.inc -@@ -0,0 +1,2 @@ -+SET_CROMITE_FEATURE_ENABLED(kAndroidTabDeclutterArchiveAllButActiveTab); +@@ -0,0 +1 @@ +SET_CROMITE_FEATURE_ENABLED(kGridTabSwitcherUpdate); diff --git a/tools/grit/grit/grd_reader.py b/tools/grit/grit/grd_reader.py --- a/tools/grit/grit/grd_reader.py diff --git a/build/patches/Customize-selection-popup.patch b/build/patches/Customize-selection-popup.patch index fab4fb31..c6c66ecc 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 -@@ -897,10 +897,17 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt +@@ -888,10 +888,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 -@@ -250,6 +250,14 @@ public class ActivityTabWebContentsDelegateAndroid extends TabWebContentsDelegat +@@ -248,6 +248,14 @@ public class ActivityTabWebContentsDelegateAndroid extends TabWebContentsDelegat // Skip opening a new Tab if it doesn't make sense. if (mTab.isClosing()) return false; @@ -121,14 +121,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/tab_activit WindowAndroid window = mTab.getWindowAndroid(); boolean openingPopup = window != null -@@ -294,7 +302,7 @@ public class ActivityTabWebContentsDelegateAndroid extends TabWebContentsDelegat +@@ -300,7 +308,7 @@ public class ActivityTabWebContentsDelegateAndroid extends TabWebContentsDelegat mTab, /* shouldPin= */ false, webContents, - TabLaunchType.FROM_LONGPRESS_FOREGROUND, + tabLaunchType, targetUrl, - !openingPopup && !willReparentTab); + addTabToModel); if (tab == null) return false; 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 @@ -140,8 +140,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo +import org.chromium.base.ContextUtils; import org.chromium.base.ObserverList; import org.chromium.base.TraceEvent; - import org.chromium.base.supplier.ObservableSupplier; -@@ -247,6 +248,13 @@ public class LayoutManagerImpl + import org.chromium.base.supplier.NonNullObservableSupplier; +@@ -249,6 +250,13 @@ public class LayoutManagerImpl != TabLaunchType .FROM_COLLABORATION_BACKGROUND_IN_GROUP) || (!getTabModelSelector().isIncognitoSelected() && incognito); @@ -176,7 +176,7 @@ 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 -@@ -33,6 +33,7 @@ import androidx.core.view.WindowInsetsCompat; +@@ -36,6 +36,7 @@ import androidx.core.view.WindowInsetsCompat; import org.chromium.base.Callback; import org.chromium.base.CallbackController; import org.chromium.base.DeviceInfo; @@ -184,7 +184,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi import org.chromium.base.TraceEvent; import org.chromium.base.lifetime.Destroyable; import org.chromium.base.metrics.RecordUserAction; -@@ -1021,11 +1022,16 @@ public class RootUiCoordinator +@@ -1033,11 +1034,16 @@ public class RootUiCoordinator TrackerFactory.getTrackerForProfile(tab.getProfile()) .notifyEvent(EventConstants.WEB_SEARCH_PERFORMED); @@ -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 -@@ -1114,7 +1114,7 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper +@@ -1115,7 +1115,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 48a0f74c..7011ead1 100644 --- a/build/patches/Dictionary-suggestions-for-the-Omnibox.patch +++ b/build/patches/Dictionary-suggestions-for-the-Omnibox.patch @@ -28,7 +28,7 @@ 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 -@@ -409,8 +409,17 @@ class LocationBarMediator +@@ -411,8 +411,17 @@ class LocationBarMediator if (!mUrlFocusedWithPastedText && !shouldRetainOmniboxOnFocus && mLocationBarLayout.shouldClearTextOnFocus()) { @@ -48,7 +48,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow } else if (shouldRetainOmniboxOnFocus) { mUrlCoordinator.setSelectAllOnFocus(true); } -@@ -1898,7 +1907,6 @@ class LocationBarMediator +@@ -1921,7 +1930,6 @@ class LocationBarMediator mUrlCoordinator.setKeyboardVisibility(true, false); } @@ -67,7 +67,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import android.os.SystemClock; import android.text.Editable; import android.text.InputType; -@@ -116,6 +117,7 @@ public class UrlBar extends AutocompleteEditText { +@@ -112,6 +113,7 @@ public class UrlBar extends AutocompleteEditText { private boolean mAllowFocus = true; private boolean mShouldSendTypingStartedEvent; @@ -75,7 +75,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow private boolean mPendingScroll; private boolean mIsInCct; -@@ -369,6 +371,28 @@ public class UrlBar extends AutocompleteEditText { +@@ -374,6 +376,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 e76581b1..ce09af05 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 -@@ -1142,6 +1142,11 @@ public class WebContentsAccessibilityImpl extends AccessibilityNodeProviderCompa +@@ -1205,6 +1205,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 b00b7f22..de287a54 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 -@@ -96,7 +96,8 @@ found in the LICENSE file. +@@ -97,7 +97,8 @@ found in the LICENSE file. android:fragment="org.chromium.chrome.browser.tasks.tab_management.TabsSettings" android:key="tabs" android:order="18" diff --git a/build/patches/Disable-CSSDynamicRangeLimit.patch b/build/patches/Disable-CSSDynamicRangeLimit.patch index daa4fc80..73c23e9b 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 -@@ -1419,7 +1419,7 @@ +@@ -1431,7 +1431,7 @@ }, { name: "CSSDynamicRangeLimit", diff --git a/build/patches/Disable-Compose-feature.patch b/build/patches/Disable-Compose-feature.patch index 6a2e72cb..66be0f42 100644 --- a/build/patches/Disable-Compose-feature.patch +++ b/build/patches/Disable-Compose-feature.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/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 -@@ -20,7 +20,9 @@ +@@ -21,7 +21,9 @@ #include "chrome/browser/browser_features.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/commerce/shopping_service_factory.h" @@ -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" -@@ -359,7 +361,7 @@ SettingsUI::SettingsUI(content::WebUI* web_ui) +@@ -358,7 +360,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 21aff747..2e89fa59 100644 --- a/build/patches/Disable-Compression-Dictionary-Transport.patch +++ b/build/patches/Disable-Compression-Dictionary-Transport.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/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 -@@ -1452,8 +1452,7 @@ void ChromeContentBrowserClient::RegisterProfilePrefs( +@@ -1449,8 +1449,7 @@ void ChromeContentBrowserClient::RegisterProfilePrefs( registry->RegisterBooleanPref(prefs::kSandboxExternalProtocolBlocked, true); registry->RegisterBooleanPref(prefs::kSSLErrorOverrideAllowed, true); registry->RegisterListPref(prefs::kSSLErrorOverrideAllowedForOrigins); diff --git a/build/patches/Disable-Device-Attributes-API.patch b/build/patches/Disable-Device-Attributes-API.patch index 55c56795..a9353d30 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 -@@ -155,6 +155,7 @@ bool IsPermissionsPolicyFeatureEnabled() { +@@ -154,6 +154,7 @@ bool IsPermissionsPolicyFeatureEnabled() { 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; -@@ -350,6 +351,10 @@ void DeviceServiceImpl::GetAnnotatedLocation( +@@ -349,6 +350,10 @@ void DeviceServiceImpl::GetAnnotatedLocation( void DeviceServiceImpl::GetDeviceAttribute( void (DeviceAttributeApi::*method)(DeviceAttributeCallback callback), DeviceAttributeCallback callback) { diff --git a/build/patches/Disable-FedCm.patch b/build/patches/Disable-FedCm.patch index a494ace5..078d4cda 100644 --- a/build/patches/Disable-FedCm.patch +++ b/build/patches/Disable-FedCm.patch @@ -17,7 +17,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc --- a/components/content_settings/core/browser/content_settings_registry.cc +++ b/components/content_settings/core/browser/content_settings_registry.cc -@@ -640,7 +640,7 @@ void ContentSettingsRegistry::Init() { +@@ -639,7 +639,7 @@ void ContentSettingsRegistry::Init() { PermissionSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY); Register(ContentSettingsType::FEDERATED_IDENTITY_AUTO_REAUTHN_PERMISSION, @@ -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 -@@ -2286,7 +2286,7 @@ +@@ -2316,7 +2316,7 @@ { name: "FedCm", public: true, diff --git a/build/patches/Disable-GSA-by-default.patch b/build/patches/Disable-GSA-by-default.patch index 1b6272f8..ec18c5f2 100644 --- a/build/patches/Disable-GSA-by-default.patch +++ b/build/patches/Disable-GSA-by-default.patch @@ -28,7 +28,7 @@ diff --git a/base/android/java/src/org/chromium/base/PackageUtils.java b/base/an diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java --- a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java -@@ -49,7 +49,6 @@ import org.chromium.chrome.browser.document.ChromeLauncherActivity; +@@ -51,7 +51,6 @@ import org.chromium.chrome.browser.document.ChromeLauncherActivity; import org.chromium.chrome.browser.externalnav.IntentWithRequestMetadataHandler; import org.chromium.chrome.browser.externalnav.IntentWithRequestMetadataHandler.RequestMetadata; import org.chromium.chrome.browser.flags.ChromeFeatureList; @@ -36,7 +36,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.j import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteCoordinator; import org.chromium.chrome.browser.pdf.PdfUtils; import org.chromium.chrome.browser.profiles.Profile; -@@ -303,9 +302,6 @@ public class IntentHandler { +@@ -306,9 +305,6 @@ public class IntentHandler { public static final String EXTRA_TIPS_NOTIFICATION_FEATURE_TYPE = "org.chromium.chrome.browser.tips_notification_feature_type"; @@ -46,7 +46,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.j /** Action to launch the Chrome Item Picker UI, e.g.: tabs. */ public static final String EXTRA_OPEN_CHROME_ITEM_PICKER = "org.chromium.chrome.browser.actions.open_chrome_item_picker"; -@@ -313,7 +309,6 @@ public class IntentHandler { +@@ -316,7 +312,6 @@ public class IntentHandler { /** Optional extra for the maximum number of items the user can select. */ public static final String EXTRA_ITEM_PICKER_MAX_SELECTABLE_ITEMS = "org.chromium.chrome.browser.extras.item_picker_max_selectable_items"; @@ -54,7 +54,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.j public static final String EXTRA_ITEM_PICKER_ERROR = "org.chromium.chrome.browser.chrome_item_picker.EXTRA_ITEM_PICKER_ERROR"; -@@ -569,8 +564,6 @@ public class IntentHandler { +@@ -572,8 +567,6 @@ public class IntentHandler { return ExternalAppId.LINE; } else if (PACKAGE_WHATSAPP.equals(packageName)) { return ExternalAppId.WHATSAPP; @@ -74,7 +74,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/share/LensUtils import org.chromium.components.externalauth.ExternalAuthUtils; /** This class provides utilities for intenting into Google Lens. */ -@@ -50,12 +49,7 @@ public class LensUtils { +@@ -49,12 +48,7 @@ public class LensUtils { if (context == null) { return ""; } @@ -87,7 +87,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/share/LensUtils } } -@@ -78,15 +72,11 @@ public class LensUtils { +@@ -77,15 +71,11 @@ public class LensUtils { * @return Whether the package is valid. */ public static boolean isValidAgsaPackage() { diff --git a/build/patches/Disable-GetInstalledRelatedApps-API.patch b/build/patches/Disable-GetInstalledRelatedApps-API.patch index 17394e94..69bbfa73 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 -@@ -3037,9 +3037,8 @@ +@@ -3080,9 +3080,8 @@ status: "stable", }, { diff --git a/build/patches/Disable-PrivacyGuide.patch b/build/patches/Disable-PrivacyGuide.patch index 1b350f05..65dba78d 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 -@@ -336,8 +336,7 @@ SettingsUI::SettingsUI(content::WebUI* web_ui) +@@ -335,8 +335,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 67e1ad3c..09b3298a 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 -@@ -1987,7 +1987,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -2031,7 +2031,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, registry->RegisterBooleanPref( prefs::kLensRegionSearchEnabled, true, user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); @@ -25,7 +25,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse diff --git a/chrome/browser/resources/new_tab_page/app.html b/chrome/browser/resources/new_tab_page/app.html --- a/chrome/browser/resources/new_tab_page/app.html +++ b/chrome/browser/resources/new_tab_page/app.html -@@ -40,25 +40,6 @@ import {nothing} from '//resources/lit/v3_0/lit.rollup.js'; +@@ -41,25 +41,6 @@ import {nothing} from '//resources/lit/v3_0/lit.rollup.js'; ?hidden="${!this.showScrim_}"> ` : ''}
@@ -49,12 +49,12 @@ diff --git a/chrome/browser/resources/new_tab_page/app.html b/chrome/browser/res - ?multi-line-enabled="${this.multiLineEnabled_}"> - ${this.showComposebox_ ? html` - ${this.enableModalComposebox_ ? html` -
+
+ diff --git a/chrome/browser/ui/webui/cr_components/searchbox/searchbox_handler.cc b/chrome/browser/ui/webui/cr_components/searchbox/searchbox_handler.cc --- a/chrome/browser/ui/webui/cr_components/searchbox/searchbox_handler.cc +++ b/chrome/browser/ui/webui/cr_components/searchbox/searchbox_handler.cc -@@ -299,6 +299,7 @@ void SearchboxHandler::SetupWebUIDataSource(content::WebUIDataSource* source, +@@ -298,6 +298,7 @@ void SearchboxHandler::SetupWebUIDataSource(content::WebUIDataSource* source, Profile* profile, bool enable_voice_search, bool enable_lens_search) { 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 d6a30c23..0696240a 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 -@@ -4951,8 +4951,8 @@ +@@ -5072,8 +5072,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 02f6d79f..45100e3e 100644 --- a/build/patches/Disable-TLS-resumption.patch +++ b/build/patches/Disable-TLS-resumption.patch @@ -79,7 +79,7 @@ new file mode 100644 diff --git a/net/http/http_network_session.cc b/net/http/http_network_session.cc --- a/net/http/http_network_session.cc +++ b/net/http/http_network_session.cc -@@ -218,6 +218,7 @@ HttpNetworkSession::HttpNetworkSession(const HttpNetworkSessionParams& params, +@@ -217,6 +217,7 @@ HttpNetworkSession::HttpNetworkSession(const HttpNetworkSessionParams& params, next_protos_.push_back(NextProto::kProtoHTTP11); @@ -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 -@@ -380,6 +380,38 @@ base::TimeDelta GetAdditionalDelayForMainJob() { +@@ -381,6 +381,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(); } -@@ -709,6 +735,8 @@ int SSLClientSocketImpl::Init() { +@@ -711,6 +737,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( -@@ -986,6 +1014,35 @@ int SSLClientSocketImpl::DoHandshakeComplete(int result) { +@@ -988,6 +1016,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 -@@ -1625,6 +1682,8 @@ bool SSLClientSocketImpl::IsRenegotiationAllowed() const { +@@ -1627,6 +1684,8 @@ bool SSLClientSocketImpl::IsRenegotiationAllowed() const { } bool SSLClientSocketImpl::IsCachingEnabled() const { @@ -232,7 +232,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket diff --git a/net/socket/ssl_client_socket_impl.h b/net/socket/ssl_client_socket_impl.h --- a/net/socket/ssl_client_socket_impl.h +++ b/net/socket/ssl_client_socket_impl.h -@@ -127,6 +127,8 @@ class NET_EXPORT_PRIVATE SSLClientSocketImpl +@@ -128,6 +128,8 @@ class NET_EXPORT_PRIVATE SSLClientSocketImpl friend class SSLContext; FRIEND_TEST_ALL_PREFIXES(SSLClientSocketTest, ParseServerTrustAnchorIDs); diff --git a/build/patches/Disable-Viewport-Segments.patch b/build/patches/Disable-Viewport-Segments.patch index b78b4ee3..7bf7f824 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 -@@ -5592,8 +5592,7 @@ +@@ -5695,8 +5695,7 @@ status: "stable", }, { diff --git a/build/patches/Disable-Web-Bluetooth-by-default-in-desktop-platforms.patch b/build/patches/Disable-Web-Bluetooth-by-default-in-desktop-platforms.patch index d76537a9..f323dfd1 100644 --- a/build/patches/Disable-Web-Bluetooth-by-default-in-desktop-platforms.patch +++ b/build/patches/Disable-Web-Bluetooth-by-default-in-desktop-platforms.patch @@ -14,7 +14,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc --- a/components/content_settings/core/browser/content_settings_registry.cc +++ b/components/content_settings/core/browser/content_settings_registry.cc -@@ -347,8 +347,13 @@ void ContentSettingsRegistry::Init() { +@@ -346,8 +346,13 @@ void ContentSettingsRegistry::Init() { ContentSettingsInfo::INHERIT_IF_LESS_PERMISSIVE, PermissionSettingsInfo::EXCEPTIONS_ON_SECURE_AND_INSECURE_ORIGINS); diff --git a/build/patches/Disable-WebGPU.patch b/build/patches/Disable-WebGPU.patch index 34ecf660..71448dac 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 -@@ -552,6 +552,8 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs( +@@ -555,6 +555,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 -@@ -196,7 +196,7 @@ BASE_FEATURE(kEnableDrDc, +@@ -190,7 +190,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) @@ -36,7 +36,7 @@ diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc diff --git a/third_party/blink/renderer/modules/webgpu/gpu.cc b/third_party/blink/renderer/modules/webgpu/gpu.cc --- a/third_party/blink/renderer/modules/webgpu/gpu.cc +++ b/third_party/blink/renderer/modules/webgpu/gpu.cc -@@ -153,6 +153,8 @@ GPU::GPU(NavigatorBase& navigator) +@@ -157,6 +157,8 @@ GPU::GPU(NavigatorBase& navigator) GPU::~GPU() = default; WGSLLanguageFeatures* GPU::wgslLanguageFeatures() const { @@ -45,7 +45,7 @@ diff --git a/third_party/blink/renderer/modules/webgpu/gpu.cc b/third_party/blin return wgsl_language_features_.Get(); } -@@ -404,6 +406,7 @@ ScriptPromise> GPU::requestAdapter( +@@ -412,6 +414,7 @@ ScriptPromise> GPU::requestAdapter( "WebGPU is experimental on this platform. See " "https://github.com/gpuweb/gpuweb/wiki/" "Implementation-Status#implementation-status")); diff --git a/build/patches/Disable-all-predictors-code.patch b/build/patches/Disable-all-predictors-code.patch index 4402f5c8..eec1cbab 100644 --- a/build/patches/Disable-all-predictors-code.patch +++ b/build/patches/Disable-all-predictors-code.patch @@ -5,86 +5,86 @@ Subject: Disable all predictors code 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/BUILD.gn | 3 --- - .../background_download_service_factory.cc | 2 +- - .../preloading_model_keyed_service.cc | 3 +++ - .../preloading_model_keyed_service_factory.cc | 4 +--- - .../optimization_guide/chrome_hints_manager.cc | 1 + - .../model_validator_keyed_service.cc | 6 +++++- - .../optimization_guide_keyed_service.cc | 1 - - .../password_change_delegate_impl.cc | 2 ++ - chrome/browser/permissions/BUILD.gn | 2 -- - .../permissions/chrome_permissions_client.cc | 2 -- - .../passage_embedder_delegate.cc | 2 ++ - .../permissions_ai_ui_selector.cc | 5 +++++ - .../permissions_ai_ui_selector.h | 5 ++++- - .../prediction_model_handler_provider.cc | 12 +++++++++--- - .../prediction_model_handler_provider.h | 2 ++ - .../quiet_notification_permission_ui_state.cc | 4 ++-- - .../autocomplete_action_predictor.cc | 2 ++ - .../predictors/loading_predictor_config.cc | 4 ++-- - .../browser/predictors/predictors_features.cc | 3 +-- - .../search_prefetch/field_trial_settings.cc | 4 ++++ - .../search_prefetch_url_loader_interceptor.cc | 1 + - ...chrome_browser_main_extra_parts_profiles.cc | 1 - - chrome/browser/safe_browsing/BUILD.gn | 1 - - ...cation_content_detection_service_factory.cc | 6 ++++++ - .../preloading/AndroidPrerenderManager.java | 1 + - .../ui/autofill/chrome_autofill_client.cc | 13 +------------ - chrome/browser/ui/tab_helpers.cc | 1 - - .../autofill_ml_internals_page_handler.cc | 2 ++ - .../autofill_ml_internals_page_handler.h | 3 +++ - .../autofill_ml_internals_ui.cc | 3 +++ - .../read_anything/read_aloud_app_model.cc | 16 ++++++++++++++-- - .../read_anything/read_aloud_app_model.h | 9 ++++++++- - .../read_anything_app_controller.cc | 10 ++++++++++ - .../read_anything_app_controller.h | 4 ++++ - chrome/test/BUILD.gn | 2 -- - chrome/utility/BUILD.gn | 2 +- - chrome/utility/services.cc | 8 -------- - components/BUILD.gn | 2 +- - .../browser/foundations/autofill_manager.cc | 6 ++++++ - .../browser/foundations/autofill_manager.h | 3 +++ - .../autofill_optimization_guide_decider.cc | 5 +++-- - .../field_classification_model_handler.cc | 12 ++++++++---- - .../field_classification_model_handler.h | 10 ++++++++-- - .../aim_eligibility_service_features.cc | 1 + - .../omnibox/browser/autocomplete_controller.cc | 4 ++++ - .../omnibox/browser/base_search_provider.cc | 4 ++-- - .../prediction_model_download_manager.cc | 6 ++++-- - .../delivery/prediction_model_fetcher_impl.cc | 1 + - .../core/hints/hints_fetcher.cc | 1 + - .../core/hints/hints_manager.cc | 2 ++ - .../core/optimization_guide_features.cc | 11 +++++------ - components/optimization_guide/features.gni | 3 +-- - .../core/page_content_annotations_features.cc | 7 +++++++ - .../page_content_annotations_model_manager.cc | 1 + - .../notification_content_detection/BUILD.gn | 4 ---- - components/viz/service/BUILD.gn | 4 ++-- - components/viz/service/gl/gpu_service_impl.cc | 18 ------------------ - content/browser/BUILD.gn | 6 +++--- - content/browser/gpu/gpu_process_host.cc | 6 +++--- - .../service_worker_main_resource_loader.cc | 1 + - .../Disable-all-predictors-code.inc | 2 ++ - .../Disable-all-predictors-code.inc | 1 + - .../Disable-all-predictors-code.inc | 1 + - .../Disable-all-predictors-code.inc | 1 + - .../Disable-all-predictors-code.inc | 5 +++++ - .../Disable-all-predictors-code.inc | 1 + - .../Disable-all-predictors-code.inc | 1 + - .../Disable-all-predictors-code.inc | 2 ++ - media/webrtc/BUILD.gn | 5 +++++ - media/webrtc/helpers.cc | 3 ++- - services/on_device_model/ml/BUILD.gn | 2 +- - services/on_device_model/ml/ts_model.cc | 4 ++-- - services/on_device_model/safety/BUILD.gn | 2 +- - services/webnn/BUILD.gn | 2 +- - services/webnn/features.gni | 2 +- - services/webnn/webnn_context_provider_impl.cc | 13 +------------ - .../core/html/parser/html_document_parser.cc | 1 + - .../document_speculation_rules.cc | 1 + - .../platform/runtime_enabled_features.json5 | 2 +- - 79 files changed, 198 insertions(+), 123 deletions(-) + chrome/browser/BUILD.gn | 3 -- + .../background_download_service_factory.cc | 2 +- + .../preloading_model_keyed_service.cc | 3 ++ + .../preloading_model_keyed_service_factory.cc | 4 +-- + .../chrome_hints_manager.cc | 1 + + .../model_validator_keyed_service.cc | 6 +++- + .../optimization_guide_keyed_service.cc | 1 - + .../password_change_delegate_impl.cc | 2 ++ + chrome/browser/permissions/BUILD.gn | 2 -- + .../permissions/chrome_permissions_client.cc | 2 -- + .../passage_embedder_delegate.cc | 2 ++ + .../permissions_ai_ui_selector.cc | 5 ++++ + .../permissions_ai_ui_selector.h | 5 +++- + .../prediction_model_handler_provider.cc | 12 ++++++-- + .../prediction_model_handler_provider.h | 2 ++ + .../quiet_notification_permission_ui_state.cc | 4 +-- + .../autocomplete_action_predictor.cc | 2 ++ + .../predictors/loading_predictor_config.cc | 4 +-- + .../browser/predictors/predictors_features.cc | 3 +- + .../search_prefetch/field_trial_settings.cc | 4 +++ + .../search_prefetch_url_loader_interceptor.cc | 1 + + ...hrome_browser_main_extra_parts_profiles.cc | 1 - + chrome/browser/safe_browsing/BUILD.gn | 1 - + ...ation_content_detection_service_factory.cc | 6 ++++ + .../preloading/AndroidPrerenderManager.java | 1 + + .../ui/autofill/chrome_autofill_client.cc | 13 +------- + chrome/browser/ui/tab_helpers.cc | 1 - + .../autofill_ml_internals_page_handler.cc | 2 ++ + .../autofill_ml_internals_page_handler.h | 3 ++ + .../autofill_ml_internals_ui.cc | 3 ++ + .../read_anything/read_aloud_app_model.cc | 16 ++++++++-- + .../read_anything/read_aloud_app_model.h | 9 +++++- + .../read_anything_app_controller.cc | 10 +++++++ + .../read_anything_app_controller.h | 4 +++ + chrome/test/BUILD.gn | 2 -- + chrome/utility/BUILD.gn | 2 +- + chrome/utility/services.cc | 8 ----- + components/BUILD.gn | 2 +- + .../browser/foundations/autofill_manager.cc | 6 ++++ + .../browser/foundations/autofill_manager.h | 3 ++ + .../autofill_optimization_guide_decider.cc | 5 ++-- + .../field_classification_model_handler.cc | 12 +++++--- + .../field_classification_model_handler.h | 10 +++++-- + .../aim_eligibility_service_features.cc | 1 + + .../browser/autocomplete_controller.cc | 4 +++ + .../omnibox/browser/base_search_provider.cc | 4 +-- + .../prediction_model_download_manager.cc | 6 ++-- + .../delivery/prediction_model_fetcher_impl.cc | 1 + + .../core/hints/hints_fetcher.cc | 1 + + .../core/hints/hints_manager.cc | 2 ++ + .../core/optimization_guide_features.cc | 11 ++++--- + components/optimization_guide/features.gni | 3 +- + .../core/page_content_annotations_features.cc | 7 +++++ + .../page_content_annotations_model_manager.cc | 1 + + .../browser/client_side_phishing_model.cc | 4 +-- + .../notification_content_detection/BUILD.gn | 4 --- + components/viz/service/BUILD.gn | 4 +-- + components/viz/service/gl/gpu_service_impl.cc | 18 ----------- + content/browser/BUILD.gn | 6 ++-- + content/browser/gpu/gpu_process_host.cc | 6 ++-- + .../service_worker_main_resource_loader.cc | 1 + + .../Disable-all-predictors-code.inc | 2 ++ + .../Disable-all-predictors-code.inc | 1 + + .../Disable-all-predictors-code.inc | 1 + + .../Disable-all-predictors-code.inc | 1 + + .../Disable-all-predictors-code.inc | 5 ++++ + .../Disable-all-predictors-code.inc | 1 + + .../Disable-all-predictors-code.inc | 1 + + .../Disable-all-predictors-code.inc | 2 ++ + media/webrtc/BUILD.gn | 5 ++++ + media/webrtc/helpers.cc | 3 +- + services/on_device_model/ml/ts_model.cc | 4 +-- + services/on_device_model/safety/BUILD.gn | 2 +- + services/webnn/BUILD.gn | 2 +- + services/webnn/features.gni | 2 +- + services/webnn/webnn_context_provider_impl.cc | 30 +------------------ + .../core/html/parser/html_document_parser.cc | 1 + + .../document_speculation_rules.cc | 1 + + .../platform/runtime_enabled_features.json5 | 2 +- + 79 files changed, 199 insertions(+), 141 deletions(-) create mode 100644 cromite_flags/chrome/browser/browser_features_cc/Disable-all-predictors-code.inc create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-all-predictors-code.inc create mode 100644 cromite_flags/chrome/common/chrome_features_cc/Disable-all-predictors-code.inc @@ -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 -@@ -731,8 +731,6 @@ static_library("browser") { +@@ -718,8 +718,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", -@@ -2364,7 +2362,6 @@ static_library("browser") { +@@ -2329,7 +2327,6 @@ static_library("browser") { "//components/resources", "//components/safe_browsing/content/browser", "//components/safe_browsing/content/browser:safe_browsing_service", @@ -179,7 +179,7 @@ diff --git a/chrome/browser/optimization_guide/chrome_hints_manager.cc b/chrome/ diff --git a/chrome/browser/optimization_guide/model_validator_keyed_service.cc b/chrome/browser/optimization_guide/model_validator_keyed_service.cc --- a/chrome/browser/optimization_guide/model_validator_keyed_service.cc +++ b/chrome/browser/optimization_guide/model_validator_keyed_service.cc -@@ -69,13 +69,13 @@ namespace optimization_guide { +@@ -68,13 +68,13 @@ namespace optimization_guide { ModelValidatorKeyedService::ModelValidatorKeyedService(Profile* profile) : profile_(profile) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); @@ -194,7 +194,7 @@ diff --git a/chrome/browser/optimization_guide/model_validator_keyed_service.cc if (switches::ShouldValidateModel()) { // Create the validator object which will get destroyed when the model // load is complete. -@@ -136,6 +136,7 @@ void ModelValidatorKeyedService::OnPrimaryAccountChanged( +@@ -135,6 +135,7 @@ void ModelValidatorKeyedService::OnPrimaryAccountChanged( void ModelValidatorKeyedService::StartModelExecutionValidation() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); @@ -202,7 +202,7 @@ diff --git a/chrome/browser/optimization_guide/model_validator_keyed_service.cc auto* opt_guide_service = OptimizationGuideKeyedServiceFactory::GetForProfile(profile_); if (!opt_guide_service) { -@@ -154,6 +155,7 @@ void ModelValidatorKeyedService::StartModelExecutionValidation() { +@@ -153,6 +154,7 @@ void ModelValidatorKeyedService::StartModelExecutionValidation() { /*options=*/{}, base::BindOnce(&ModelValidatorKeyedService::OnModelExecuteResponse, weak_ptr_factory_.GetWeakPtr())); @@ -210,7 +210,7 @@ diff --git a/chrome/browser/optimization_guide/model_validator_keyed_service.cc } void ModelValidatorKeyedService::StartOnDeviceModelExecutionValidation( -@@ -171,6 +173,7 @@ void ModelValidatorKeyedService::StartOnDeviceModelExecutionValidation( +@@ -170,6 +172,7 @@ void ModelValidatorKeyedService::StartOnDeviceModelExecutionValidation( void ModelValidatorKeyedService::PerformOnDeviceModelExecutionValidation( std::unique_ptr input) { @@ -218,7 +218,7 @@ diff --git a/chrome/browser/optimization_guide/model_validator_keyed_service.cc DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); auto* opt_guide_service = OptimizationGuideKeyedServiceFactory::GetForProfile(profile_); -@@ -218,6 +221,7 @@ void ModelValidatorKeyedService::ExecuteModel( +@@ -217,6 +220,7 @@ void ModelValidatorKeyedService::ExecuteModel( *metadata, base::BindRepeating( &ModelValidatorKeyedService::OnDeviceModelExecuteResponse, weak_ptr_factory_.GetWeakPtr(), std::move(request))); @@ -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 -@@ -420,7 +420,6 @@ void OptimizationGuideKeyedService::RemoveObserverForOptimizationTargetModel( +@@ -422,7 +422,6 @@ void OptimizationGuideKeyedService::RemoveObserverForOptimizationTargetModel( void OptimizationGuideKeyedService::RegisterOptimizationTypes( const std::vector& optimization_types) { @@ -240,13 +240,14 @@ 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 -@@ -353,11 +353,13 @@ void PasswordChangeDelegateImpl::StartPasswordChangeFlow() { +@@ -354,12 +354,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. +#if BUILDFLAG(BUILD_WITH_TFLITE_LIB) if (base::FeatureList::IsEnabled( - password_manager::features::kDownloadModelForPasswordChange)) { + password_manager::features:: + kProactivelyDownloadModelForPasswordChange)) { PasswordFieldClassificationModelHandlerFactory::GetForBrowserContext( originator_->GetBrowserContext()); } @@ -269,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 -@@ -482,8 +482,6 @@ ChromePermissionsClient::CreatePermissionUiSelectors( +@@ -475,8 +475,6 @@ ChromePermissionsClient::CreatePermissionUiSelectors( #endif selectors.emplace_back(std::make_unique( Profile::FromBrowserContext(browser_context))); @@ -343,7 +344,7 @@ diff --git a/chrome/browser/permissions/prediction_service/permissions_ai_ui_sel diff --git a/chrome/browser/permissions/prediction_service/permissions_ai_ui_selector.h b/chrome/browser/permissions/prediction_service/permissions_ai_ui_selector.h --- a/chrome/browser/permissions/prediction_service/permissions_ai_ui_selector.h +++ b/chrome/browser/permissions/prediction_service/permissions_ai_ui_selector.h -@@ -118,13 +118,14 @@ class PermissionsAiUiSelector : public permissions::PermissionUiSelector { +@@ -119,13 +119,14 @@ class PermissionsAiUiSelector : public permissions::PermissionUiSelector { void set_snapshot_for_testing(SkBitmap snapshot); #endif @@ -359,7 +360,7 @@ diff --git a/chrome/browser/permissions/prediction_service/permissions_ai_ui_sel void set_callback_for_testing(DecisionMadeCallback callback) { callback_ = std::move(callback); } -@@ -175,10 +176,12 @@ class PermissionsAiUiSelector : public permissions::PermissionUiSelector { +@@ -176,10 +177,12 @@ class PermissionsAiUiSelector : public permissions::PermissionUiSelector { // later. When the text is fetched asynchronously with success, // model_execution_callback will get called to continue the chain of // asynchronously added input data. @@ -425,7 +426,7 @@ diff --git a/chrome/browser/permissions/prediction_service/prediction_model_hand diff --git a/chrome/browser/permissions/prediction_service/prediction_model_handler_provider.h b/chrome/browser/permissions/prediction_service/prediction_model_handler_provider.h --- a/chrome/browser/permissions/prediction_service/prediction_model_handler_provider.h +++ b/chrome/browser/permissions/prediction_service/prediction_model_handler_provider.h -@@ -55,9 +55,11 @@ class PredictionModelHandlerProvider +@@ -61,9 +61,11 @@ class PredictionModelHandlerProvider #endif // BUILDFLAG(BUILD_WITH_TFLITE_LIB) private: @@ -436,7 +437,7 @@ diff --git a/chrome/browser/permissions/prediction_service/prediction_model_hand +#endif #if BUILDFLAG(BUILD_WITH_TFLITE_LIB) - std::unique_ptr + // LINT.IfChange(ModelHandlers) diff --git a/chrome/browser/permissions/quiet_notification_permission_ui_state.cc b/chrome/browser/permissions/quiet_notification_permission_ui_state.cc --- a/chrome/browser/permissions/quiet_notification_permission_ui_state.cc +++ b/chrome/browser/permissions/quiet_notification_permission_ui_state.cc @@ -516,9 +517,9 @@ 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 -@@ -1217,7 +1217,6 @@ void ChromeBrowserMainExtraPartsProfiles:: - #else - policy::UserPolicySigninServiceFactory::GetInstance(); +@@ -1208,7 +1208,6 @@ void ChromeBrowserMainExtraPartsProfiles:: + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) + policy::UserPolicyOidcSigninServiceFactory::GetInstance(); #endif - PredictionModelHandlerProviderFactory::GetInstance(); PredictionServiceFactory::GetInstance(); @@ -527,7 +528,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc 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 -@@ -54,7 +54,6 @@ static_library("safe_browsing") { +@@ -57,7 +57,6 @@ static_library("safe_browsing") { "//components/resources:components_resources_grit", "//components/safe_browsing:buildflags", "//components/safe_browsing/content/browser", @@ -586,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 -@@ -564,7 +564,7 @@ void ChromeAutofillClient::GetAiPageContent(GetAiPageContentCallback callback) { +@@ -566,7 +566,7 @@ void ChromeAutofillClient::GetAiPageContent(GetAiPageContentCallback callback) { } AutofillAiManager* ChromeAutofillClient::GetAutofillAiManager() { @@ -595,7 +596,7 @@ diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.cc b/chrome/brows } AutofillAiModelCache* ChromeAutofillClient::GetAutofillAiModelCache() { -@@ -1384,18 +1384,7 @@ void ChromeAutofillClient::TriggerPlusAddressUserPerceptionSurvey( +@@ -1396,18 +1396,7 @@ void ChromeAutofillClient::TriggerPlusAddressUserPerceptionSurvey( optimization_guide::ModelQualityLogsUploaderService* ChromeAutofillClient::GetMqlsUploadService() { @@ -617,14 +618,14 @@ 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 -@@ -464,7 +464,6 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -458,7 +458,6 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { } MixedContentSettingsTabHelper::CreateForWebContents(web_contents); NavigationMetricsRecorder::CreateForWebContents(web_contents); - NavigationPredictorPreconnectClient::CreateForWebContents(web_contents); - OpenerHeuristicService::Get(web_contents->GetBrowserContext()); if (optimization_guide::features::IsOptimizationHintsEnabled()) { OptimizationGuideWebContentsObserver::CreateForWebContents(web_contents); + } diff --git a/chrome/browser/ui/webui/autofill_ml_internals/autofill_ml_internals_page_handler.cc b/chrome/browser/ui/webui/autofill_ml_internals/autofill_ml_internals_page_handler.cc --- a/chrome/browser/ui/webui/autofill_ml_internals/autofill_ml_internals_page_handler.cc +++ b/chrome/browser/ui/webui/autofill_ml_internals/autofill_ml_internals_page_handler.cc @@ -821,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" -@@ -1810,6 +1812,7 @@ void ReadAnythingAppController::OnConnected() { +@@ -1928,6 +1930,7 @@ void ReadAnythingAppController::OnConnected() { render_frame()->GetBrowserInterfaceBroker().GetInterface( std::move(page_handler_factory_receiver)); @@ -829,7 +830,7 @@ 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; -@@ -1818,6 +1821,7 @@ void ReadAnythingAppController::OnConnected() { +@@ -1936,6 +1939,7 @@ void ReadAnythingAppController::OnConnected() { page_handler_->GetDependencyParserModel( base::BindOnce(&ReadAnythingAppController::UpdateDependencyParserModel, weak_ptr_factory_.GetWeakPtr())); @@ -837,7 +838,7 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_anything_app_contr } void ReadAnythingAppController::OnCopy() const { -@@ -2062,8 +2066,10 @@ std::u16string ReadAnythingAppController::GetCurrentTextContent() { +@@ -2192,8 +2196,10 @@ std::u16string ReadAnythingAppController::GetCurrentTextContent() { } void ReadAnythingAppController::PreprocessTextForSpeech() { @@ -848,7 +849,7 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_anything_app_contr } void ReadAnythingAppController::MovePositionToNextGranularity() { -@@ -2320,14 +2326,18 @@ bool ReadAnythingAppController::IsDocsLoadMoreButtonVisible() const { +@@ -2536,14 +2542,18 @@ bool ReadAnythingAppController::IsDocsLoadMoreButtonVisible() const { void ReadAnythingAppController::UpdateDependencyParserModel( base::File model_file) { @@ -880,7 +881,7 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_anything_app_contr class ReadAnythingAppControllerTest; class ReadAnythingAppControllerScreen2xDataCollectionModeTest; -@@ -313,7 +315,9 @@ class ReadAnythingAppController +@@ -339,7 +341,9 @@ class ReadAnythingAppController // available. void UpdateDependencyParserModel(base::File model_file); @@ -893,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 -@@ -5812,8 +5812,6 @@ if (!is_android) { +@@ -5845,8 +5845,6 @@ if (!is_android) { "//chrome/browser/ui/exclusive_access:test_support", "//chrome/browser/ui/hats", "//components/safe_browsing/content/browser:safe_browsing_blocking_page", @@ -917,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 -@@ -245,13 +245,6 @@ auto RunMirroringService( +@@ -242,13 +242,6 @@ auto RunMirroringService( #endif // !BUILDFLAG(IS_ANDROID) @@ -931,18 +932,18 @@ diff --git a/chrome/utility/services.cc b/chrome/utility/services.cc #if BUILDFLAG(ENABLE_BROWSER_SPEECH_SERVICE) auto RunSpeechRecognitionService( mojo::PendingReceiver receiver) { -@@ -440,7 +433,6 @@ void RegisterMainThreadServices(mojo::ServiceFactory& services) { - services.Add(RunWebAppOriginAssociationParser); +@@ -436,7 +429,6 @@ void RegisterMainThreadServices(mojo::ServiceFactory& services) { + services.Add(RunUnzipper); services.Add(RunCSVPasswordParser); services.Add(ContentBookmarkParser); - services.Add(RunPassageEmbeddingsService); #if !BUILDFLAG(IS_ANDROID) - services.Add(RunProfileImporter); + services.Add(RunOakSessionService); diff --git a/components/BUILD.gn b/components/BUILD.gn --- a/components/BUILD.gn +++ b/components/BUILD.gn -@@ -629,7 +629,7 @@ test("components_unittests") { +@@ -630,7 +630,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", @@ -954,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 -@@ -135,8 +135,10 @@ struct AutofillManager::AsyncContext { +@@ -136,8 +136,10 @@ struct AutofillManager::AsyncContext { std::vector forms; std::vector regex_predictions; @@ -965,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; -@@ -894,12 +896,14 @@ void AutofillManager::UpdateFormCache( +@@ -903,12 +905,14 @@ void AutofillManager::UpdateFormCache( auto apply_predictions = [](FormStructure& form_structure, const AsyncContext& context, size_t i) { @@ -980,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()); } -@@ -990,6 +994,7 @@ void AutofillManager::LogCurrentFieldTypes( +@@ -1022,6 +1026,7 @@ void AutofillManager::LogCurrentFieldTypes( } } @@ -988,7 +989,7 @@ diff --git a/components/autofill/core/browser/foundations/autofill_manager.cc b/ void AutofillManager::SubscribeToMlModelChanges( FieldClassificationModelHandler& handler) { switch (handler.optimization_target()) { -@@ -1013,5 +1018,6 @@ void AutofillManager::SubscribeToMlModelChanges( +@@ -1045,5 +1050,6 @@ void AutofillManager::SubscribeToMlModelChanges( NOTREACHED(); } } @@ -1006,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 { -@@ -374,10 +375,12 @@ class AutofillManager +@@ -378,10 +379,12 @@ class AutofillManager // Reparses all known forms. void ReparseKnownForms(); @@ -1022,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 -@@ -273,6 +273,7 @@ void AutofillOptimizationGuideDecider::OnPaymentsDataLoaded( +@@ -284,6 +284,7 @@ void AutofillOptimizationGuideDecider::OnPaymentsDataLoaded( // If we do not have any optimization types to register, do not do anything. if (!optimization_types.empty()) { @@ -1030,7 +1031,7 @@ diff --git a/components/autofill/core/browser/integrators/optimization_guide/aut decider_->RegisterOptimizationTypes( std::vector( std::move(optimization_types).extract())); -@@ -380,7 +381,7 @@ bool AutofillOptimizationGuideDecider::ShouldBlockSingleFieldSuggestions( +@@ -388,7 +389,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`. @@ -1039,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, -@@ -406,7 +407,7 @@ bool AutofillOptimizationGuideDecider::ShouldBlockFormFieldSuggestion( +@@ -414,7 +415,7 @@ bool AutofillOptimizationGuideDecider::ShouldBlockFormFieldSuggestion( const CreditCard& card) const { if (auto optimization_type = GetVcnMerchantOptOutOptimizationTypeForCard(card); @@ -1071,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 -@@ -164,6 +162,7 @@ void FieldClassificationModelHandler::ApplySmallFormRules( +@@ -166,6 +164,7 @@ void FieldClassificationModelHandler::ApplySmallFormRules( } } @@ -1079,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 { -@@ -236,6 +235,7 @@ FieldClassificationModelHandler::CreateMlPredictionLog( +@@ -238,6 +237,7 @@ FieldClassificationModelHandler::CreateMlPredictionLog( prediction_log->start_time = base::Time::Now(); return prediction_log; } @@ -1087,7 +1088,7 @@ diff --git a/components/autofill/core/browser/ml_model/field_classification_mode void PopulateMlPredictionLogAfterInference( autofill_ml_internals::mojom::MlPredictionLog& prediction_log, -@@ -264,9 +264,11 @@ void FieldClassificationModelHandler::GetModelPredictionsForForm( +@@ -267,9 +267,11 @@ void FieldClassificationModelHandler::GetModelPredictionsForForm( std::optional prediction_log = std::nullopt; @@ -1099,7 +1100,7 @@ diff --git a/components/autofill/core/browser/ml_model/field_classification_mode FieldClassificationModelEncoder::ModelInput encoded_input = state_->encoder.EncodeForm(form); -@@ -331,11 +333,13 @@ void FieldClassificationModelHandler::GetModelPredictionsForForm( +@@ -335,11 +337,13 @@ void FieldClassificationModelHandler::GetModelPredictionsForForm( predicted_types); } } @@ -1138,7 +1139,7 @@ diff --git a/components/autofill/core/browser/ml_model/field_classification_mode ~FieldClassificationModelHandler() override; // This function asynchronously queries predictions for the `form_structure` -@@ -136,8 +138,10 @@ class FieldClassificationModelHandler +@@ -143,8 +145,10 @@ class FieldClassificationModelHandler ModelInputHash CalculateModelInputHash( const FieldClassificationModelEncoder::ModelInput& input); @@ -1149,7 +1150,7 @@ diff --git a/components/autofill/core/browser/ml_model/field_classification_mode // Converts a `TokenId` to the string representation. std::string TokenIdToString( -@@ -163,7 +167,9 @@ class FieldClassificationModelHandler +@@ -170,7 +174,9 @@ class FieldClassificationModelHandler ModelChangeCallbackList model_change_callback_list_; @@ -1173,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 -@@ -53,7 +53,9 @@ +@@ -52,7 +52,9 @@ #include "components/omnibox/browser/autocomplete_match.h" #include "components/omnibox/browser/autocomplete_match_type.h" #include "components/omnibox/browser/autocomplete_provider.h" @@ -1183,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" -@@ -128,6 +130,7 @@ using ProviderType = AutocompleteProvider::Type; +@@ -127,6 +129,7 @@ using ProviderType = AutocompleteProvider::Type; constexpr bool is_android = !!BUILDFLAG(IS_ANDROID); @@ -1191,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 = -@@ -236,6 +239,7 @@ void RecordTotalMatchesScored(size_t num_scored) { +@@ -235,6 +238,7 @@ void RecordTotalMatchesScored(size_t num_scored) { base::UmaHistogramCounts1000("Omnibox.URLScoringModelExecuted.Matches", num_scored); } @@ -1259,7 +1260,7 @@ diff --git a/components/optimization_guide/core/delivery/prediction_model_downlo diff --git a/components/optimization_guide/core/delivery/prediction_model_fetcher_impl.cc b/components/optimization_guide/core/delivery/prediction_model_fetcher_impl.cc --- a/components/optimization_guide/core/delivery/prediction_model_fetcher_impl.cc +++ b/components/optimization_guide/core/delivery/prediction_model_fetcher_impl.cc -@@ -52,6 +52,7 @@ bool PredictionModelFetcherImpl::FetchOptimizationGuideServiceModels( +@@ -53,6 +53,7 @@ bool PredictionModelFetcherImpl::FetchOptimizationGuideServiceModels( proto::RequestContext request_context, const std::string& locale, ModelsFetchedCallback models_fetched_callback) { @@ -1281,7 +1282,7 @@ diff --git a/components/optimization_guide/core/hints/hints_fetcher.cc b/compone diff --git a/components/optimization_guide/core/hints/hints_manager.cc b/components/optimization_guide/core/hints/hints_manager.cc --- a/components/optimization_guide/core/hints/hints_manager.cc +++ b/components/optimization_guide/core/hints/hints_manager.cc -@@ -457,6 +457,7 @@ void HintsManager::Shutdown() { +@@ -461,6 +461,7 @@ void HintsManager::Shutdown() { OptimizationGuideDecision HintsManager::GetOptimizationGuideDecisionFromOptimizationTypeDecision( OptimizationTypeDecision optimization_type_decision) { @@ -1289,7 +1290,7 @@ diff --git a/components/optimization_guide/core/hints/hints_manager.cc b/compone switch (optimization_type_decision) { case OptimizationTypeDecision::kAllowedByOptimizationFilter: case OptimizationTypeDecision::kAllowedByHint: -@@ -2057,4 +2058,5 @@ void HintsManager::RemoveFetchedEntriesByHintKeys( +@@ -2063,4 +2064,5 @@ void HintsManager::RemoveFetchedEntriesByHintKeys( hint_cache_->RemoveHintsForHosts(std::move(on_success), hint_keys); } @@ -1298,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 -@@ -41,11 +41,7 @@ namespace features { +@@ -40,11 +40,7 @@ namespace features { namespace { constexpr auto enabled_by_default_mobile_only = @@ -1310,7 +1311,7 @@ diff --git a/components/optimization_guide/core/optimization_guide_features.cc b } // namespace -@@ -254,8 +250,7 @@ size_t MaxHostKeyedHintCacheSize() { +@@ -253,8 +249,7 @@ size_t MaxHostKeyedHintCacheSize() { } bool ShouldPersistHintsToDisk() { @@ -1320,7 +1321,7 @@ diff --git a/components/optimization_guide/core/optimization_guide_features.cc b } RequestContextSet GetAllowedContextsForPersonalizedMetadata() { -@@ -603,5 +598,9 @@ std::optional GetMainFrameGetAIPageContentTimeout() { +@@ -602,5 +597,9 @@ std::optional GetMainFrameGetAIPageContentTimeout() { return kGetAIPageContentMainFrameTimeoutParam.Get(); } @@ -1346,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 -@@ -69,6 +69,7 @@ const base::FeatureParam kPageContentExtractionTriggeringMode{ +@@ -55,6 +55,7 @@ const base::FeatureParam kPageContentExtractionTriggeringMode{ bool IsSupportedLocale(const std::string& locale, const std::string& supported_locales) { @@ -1354,7 +1355,7 @@ diff --git a/components/page_content_annotations/core/page_content_annotations_f if (supported_locales == "*") { return true; } -@@ -88,6 +89,7 @@ bool IsSupportedLocale(const std::string& locale, +@@ -74,6 +75,7 @@ bool IsSupportedLocale(const std::string& locale, bool IsSupportedCountry(const std::string& country_code, const std::string& supported_countries) { @@ -1362,7 +1363,7 @@ diff --git a/components/page_content_annotations/core/page_content_annotations_f if (supported_countries == "*") { return true; } -@@ -295,6 +297,7 @@ bool IsSupportedLocaleForFeature( +@@ -270,6 +272,7 @@ bool IsSupportedLocaleForFeature( const std::string& locale, const base::Feature& feature, const std::string& default_value = "de,en,es,fr,it,nl,pt,tr") { @@ -1370,7 +1371,7 @@ diff --git a/components/page_content_annotations/core/page_content_annotations_f if (!base::FeatureList::IsEnabled(feature)) { return false; } -@@ -312,6 +315,7 @@ bool IsSupportedLocaleForFeature( +@@ -287,6 +290,7 @@ bool IsSupportedLocaleForFeature( bool IsSupportedCountryForFeature(const std::string& country_code, const base::Feature& feature, const std::string& default_value) { @@ -1378,7 +1379,7 @@ diff --git a/components/page_content_annotations/core/page_content_annotations_f if (!base::FeatureList::IsEnabled(feature)) { return false; } -@@ -326,4 +330,7 @@ bool IsSupportedCountryForFeature(const std::string& country_code, +@@ -301,4 +305,7 @@ bool IsSupportedCountryForFeature(const std::string& country_code, return IsSupportedCountry(country_code, value); } @@ -1397,6 +1398,29 @@ diff --git a/components/page_content_annotations/core/page_content_annotations_m if (page_visibility_model_handler_) return; +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( + model_metadata.value()); + } + +- int loaded_image_embedder_version = -1; // Valid versions start at 1. ++ [[maybe_unused]] int loaded_image_embedder_version = -1; // Valid versions start at 1. + 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( + embedding_list_version_num); + } + } ++#if BUILDFLAG(BUILD_WITH_TFLITE_LIB) + // Drop any existing target image embeddings in preparation for a new set. + target_image_embeddings_.clear(); +-#if BUILDFLAG(BUILD_WITH_TFLITE_LIB) + // Only load image embeddings when the version of their embedder matches the + // version of the embedder that's been loaded. + if (model_and_list.second.has_value() && diff --git a/components/safe_browsing/content/browser/notification_content_detection/BUILD.gn b/components/safe_browsing/content/browser/notification_content_detection/BUILD.gn --- a/components/safe_browsing/content/browser/notification_content_detection/BUILD.gn +++ b/components/safe_browsing/content/browser/notification_content_detection/BUILD.gn @@ -1428,7 +1452,7 @@ 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 -@@ -649,24 +649,6 @@ void GpuServiceImpl::BindWebNNContextProvider( +@@ -657,24 +657,6 @@ void GpuServiceImpl::BindWebNNContextProvider( std::move(pending_receiver), client_id)); return; } @@ -1456,7 +1480,7 @@ diff --git a/components/viz/service/gl/gpu_service_impl.cc b/components/viz/serv diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn --- a/content/browser/BUILD.gn +++ b/content/browser/BUILD.gn -@@ -270,9 +270,9 @@ source_set("browser") { +@@ -271,9 +271,9 @@ source_set("browser") { "//services/viz/public/cpp/gpu", "//services/viz/public/mojom", "//services/webnn:buildflags", @@ -1472,7 +1496,7 @@ diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn diff --git a/content/browser/gpu/gpu_process_host.cc b/content/browser/gpu/gpu_process_host.cc --- a/content/browser/gpu/gpu_process_host.cc +++ b/content/browser/gpu/gpu_process_host.cc -@@ -1346,9 +1346,9 @@ bool GpuProcessHost::LaunchGpuProcess() { +@@ -1338,9 +1338,9 @@ bool GpuProcessHost::LaunchGpuProcess() { cmd_line->CopySwitchesFrom(browser_command_line, kSwitchNames); cmd_line->CopySwitchesFrom(browser_command_line, switches::kGLSwitchesCopiedFromGpuProcessHost); @@ -1488,10 +1512,10 @@ diff --git a/content/browser/gpu/gpu_process_host.cc b/content/browser/gpu/gpu_p diff --git a/content/browser/service_worker/service_worker_main_resource_loader.cc b/content/browser/service_worker/service_worker_main_resource_loader.cc --- a/content/browser/service_worker/service_worker_main_resource_loader.cc +++ b/content/browser/service_worker/service_worker_main_resource_loader.cc -@@ -550,6 +550,7 @@ bool ServiceWorkerMainResourceLoader::MaybeStartAutoPreload( - bool ServiceWorkerMainResourceLoader::StartRaceNetworkRequest( +@@ -537,6 +537,7 @@ bool ServiceWorkerMainResourceLoader::StartRaceNetworkRequest( scoped_refptr context, - scoped_refptr version) { + scoped_refptr version, + base::OnceCallback clone_completed_for_fetch_handler_callback) { + if ((true)) return false; // Set fetch_handler_bypass_option to tell the renderer that // RaceNetworkRequest is enabled. @@ -1520,7 +1544,7 @@ new file mode 100644 --- /dev/null +++ b/cromite_flags/components/password_manager/core/browser/features/password_features_cc/Disable-all-predictors-code.inc @@ -0,0 +1 @@ -+SET_CROMITE_FEATURE_DISABLED(kDownloadModelForPasswordChange); ++SET_CROMITE_FEATURE_DISABLED(kProactivelyDownloadModelForPasswordChange); diff --git a/cromite_flags/components/permissions/features_cc/Disable-all-predictors-code.inc b/cromite_flags/components/permissions/features_cc/Disable-all-predictors-code.inc new file mode 100644 --- /dev/null @@ -1592,18 +1616,6 @@ diff --git a/media/webrtc/helpers.cc b/media/webrtc/helpers.cc if (residual_echo_estimator_model) { optimization_guide::TFLiteOpResolver op_resolver; echo_estimator = webrtc::CreateNeuralResidualEchoEstimator( -diff --git a/services/on_device_model/ml/BUILD.gn b/services/on_device_model/ml/BUILD.gn ---- a/services/on_device_model/ml/BUILD.gn -+++ b/services/on_device_model/ml/BUILD.gn -@@ -83,7 +83,7 @@ if (use_blink || (is_ios && build_with_internal_optimization_guide)) { - if (use_blink) { - deps += [ "//gpu/config" ] - } -- if (!is_fuchsia && build_with_tflite_lib) { -+ if (build_with_tflite_lib && !is_fuchsia) { - deps += [ "//services/on_device_model/safety:bert_safety_model" ] - } - if (is_win || is_mac || is_linux) { diff --git a/services/on_device_model/ml/ts_model.cc b/services/on_device_model/ml/ts_model.cc --- a/services/on_device_model/ml/ts_model.cc +++ b/services/on_device_model/ml/ts_model.cc @@ -1640,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 -@@ -169,7 +169,7 @@ component("webnn_service") { +@@ -175,7 +175,7 @@ component("webnn_service") { } } @@ -1664,20 +1676,37 @@ diff --git a/services/webnn/features.gni b/services/webnn/features.gni 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 -@@ -244,18 +244,7 @@ void WebNNContextProviderImpl::CreateWebNNContext( +@@ -237,35 +237,7 @@ void WebNNContextProviderImpl::CreateWebNNContext( } #if BUILDFLAG(IS_WIN) - if (ort::ShouldCreateOrtContext(*options)) { +- const base::CommandLine* command_line = +- base::CommandLine::ForCurrentProcess(); +- - scoped_trace.AddStep("EnsureWebNNExecutionProvidersReady"); - +- // If ignore IHV EPs, use empty `ep_package_info` to create the ORT context. +- if (command_line->HasSwitch(switches::kWebNNOrtIgnoreIhvEps)) { +- DidEnsureWebNNExecutionProvidersReady( +- std::move(scoped_trace), std::move(options), +- std::move(write_tensor_producer), std::move(write_tensor_consumer), +- 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), +- /*ep_package_info=*/{}); +- return; +- } +- - gpu_host_->EnsureWebNNExecutionProvidersReady(base::BindOnce( - &WebNNContextProviderImpl::DidEnsureWebNNExecutionProvidersReady, - AsWeakPtr(), std::move(scoped_trace), std::move(options), - std::move(write_tensor_producer), std::move(write_tensor_consumer), - std::move(read_tensor_producer), std::move(read_tensor_consumer), -- command_buffer_id, std::move(sequence), std::move(owning_task_runner), -- std::move(receiver), std::move(remote), std::move(callback))); +- command_buffer_id, std::move(gpu_sequence), +- std::move(owning_task_runner), std::move(receiver), std::move(remote), +- std::move(callback))); - return; - } else if (dml::ShouldCreateDmlContext(*options)) { + if (dml::ShouldCreateDmlContext(*options)) { @@ -1687,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 -@@ -1846,6 +1846,7 @@ ALWAYS_INLINE bool HTMLDocumentParser::ShouldCheckTimeBudget( +@@ -1832,6 +1832,7 @@ ALWAYS_INLINE bool HTMLDocumentParser::ShouldCheckTimeBudget( } bool HTMLDocumentParser::ShouldSkipPreloadScan() { @@ -1698,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 -@@ -659,6 +659,7 @@ void DocumentSpeculationRules::UpdateSpeculationCandidates() { +@@ -665,6 +665,7 @@ void DocumentSpeculationRules::UpdateSpeculationCandidates() { return; } @@ -1709,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 -@@ -3989,7 +3989,7 @@ +@@ -4073,7 +4073,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 7ba2f9ff..3bf18a32 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 -@@ -1858,6 +1858,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1880,6 +1880,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 -@@ -187,7 +187,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -185,7 +185,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref(prefs::kEnterpriseHardwarePlatformAPIEnabled, false); @@ -85,7 +85,7 @@ diff --git a/chrome/browser/user_education/user_education_service_factory.cc b/c diff --git a/components/user_education/common/feature_promo/feature_promo_registry.cc b/components/user_education/common/feature_promo/feature_promo_registry.cc --- a/components/user_education/common/feature_promo/feature_promo_registry.cc +++ b/components/user_education/common/feature_promo/feature_promo_registry.cc -@@ -20,6 +20,7 @@ FeaturePromoRegistry& FeaturePromoRegistry::operator=( +@@ -19,6 +19,7 @@ FeaturePromoRegistry& FeaturePromoRegistry::operator=( FeaturePromoRegistry::~FeaturePromoRegistry() = default; void FeaturePromoRegistry::RegisterFeature(FeaturePromoSpecification spec) { @@ -93,7 +93,7 @@ diff --git a/components/user_education/common/feature_promo/feature_promo_regist const base::Feature* const iph_feature = spec.feature(); CHECK(iph_feature); CHECK_NE(FeaturePromoSpecification::PromoType::kUnspecified, -@@ -35,6 +36,7 @@ NewBadgeRegistry& NewBadgeRegistry::operator=( +@@ -34,6 +35,7 @@ NewBadgeRegistry& NewBadgeRegistry::operator=( NewBadgeRegistry::~NewBadgeRegistry() = default; void NewBadgeRegistry::RegisterFeature(NewBadgeSpecification spec) { diff --git a/build/patches/Disable-conversion-measurement-api.patch b/build/patches/Disable-conversion-measurement-api.patch index b4ec7e8d..142e2f70 100644 --- a/build/patches/Disable-conversion-measurement-api.patch +++ b/build/patches/Disable-conversion-measurement-api.patch @@ -54,7 +54,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html 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 -@@ -1352,6 +1352,7 @@ network::mojom::AttributionSupport +@@ -1357,6 +1357,7 @@ network::mojom::AttributionSupport AwContentBrowserClient::GetAttributionSupport( AttributionReportingOsApiState state, bool client_os_disabled) { @@ -62,7 +62,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: -@@ -1370,6 +1371,8 @@ bool AwContentBrowserClient::IsAttributionReportingOperationAllowed( +@@ -1375,6 +1376,8 @@ bool AwContentBrowserClient::IsAttributionReportingOperationAllowed( const url::Origin* destination_origin, const url::Origin* reporting_origin, bool* can_bypass) { @@ -74,7 +74,7 @@ diff --git a/android_webview/browser/aw_content_browser_client.cc b/android_webv diff --git a/android_webview/java/src/org/chromium/android_webview/AwSettings.java b/android_webview/java/src/org/chromium/android_webview/AwSettings.java --- a/android_webview/java/src/org/chromium/android_webview/AwSettings.java +++ b/android_webview/java/src/org/chromium/android_webview/AwSettings.java -@@ -202,7 +202,7 @@ public class AwSettings { +@@ -201,7 +201,7 @@ public class AwSettings { private boolean mSpatialNavigationEnabled; // Default depends on device features. private boolean mEnableSupportedHardwareAcceleratedFeatures; private int mMixedContentMode = WebSettings.MIXED_CONTENT_NEVER_ALLOW; @@ -83,7 +83,7 @@ diff --git a/android_webview/java/src/org/chromium/android_webview/AwSettings.ja @SpeculativeLoadingAllowedFlags private int mSpeculativeLoadingAllowedFlags = -@@ -1795,7 +1795,7 @@ public class AwSettings { +@@ -1806,7 +1806,7 @@ public class AwSettings { public void setAttributionBehavior(@AttributionBehavior int behavior) { synchronized (mAwSettingsLock) { if (mAttributionBehavior != behavior) { @@ -95,7 +95,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 -@@ -178,9 +178,6 @@ +@@ -184,9 +184,6 @@ android:exported="true"> @@ -116,7 +116,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro $1 $i18n{title} - - - $2 - + + + -@@ -525,7 +530,7 @@ are declared in tools/grit/grit_args.gni. +@@ -528,7 +533,7 @@ are declared in tools/grit/grit_args.gni. Disable @@ -143,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 -@@ -2348,6 +2348,9 @@ +@@ -2428,6 +2428,9 @@ URL with %s in place of query @@ -421,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 -@@ -3735,6 +3735,9 @@ static_library("browser") { +@@ -3705,6 +3705,9 @@ static_library("browser") { "//components/user_scripts/android", ] } @@ -434,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 -@@ -368,6 +368,9 @@ void PopulateChromeWebUIFrameBindersPartsDesktop( +@@ -375,6 +375,9 @@ void PopulateChromeWebUIFrameBindersPartsDesktop( #endif // !BUILDFLAG(IS_CHROMEOS) >(map); @@ -485,6 +486,18 @@ diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resourc build_webui("build") { grd_prefix = "settings" +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 + 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'; +-// ++// + export {PageCallbackRouter, PageHandlerFactory, PageHandlerRemote, PageRemote} from 'chrome://resources/js/batch_upload_promo.mojom-webui.js'; + export type {PageHandlerInterface} from 'chrome://resources/js/batch_upload_promo.mojom-webui.js'; + export {BatchUploadPromoProxyImpl} from 'chrome://resources/js/batch_upload_promo/batch_upload_promo_proxy.js'; diff --git a/chrome/browser/resources/settings/page_visibility.ts b/chrome/browser/resources/settings/page_visibility.ts --- a/chrome/browser/resources/settings/page_visibility.ts +++ b/chrome/browser/resources/settings/page_visibility.ts @@ -540,27 +553,27 @@ diff --git a/chrome/browser/resources/settings/people_page/sync_controls.ts b/ch import {PluralStringProxyImpl} from 'chrome://resources/js/plural_string_proxy.js'; import {sanitizeInnerHtml} from 'chrome://resources/js/parse_html_subset.js'; +// - import {BatchUploadPromoProxy} from 'chrome://resources/js/batch_upload_promo/batch_upload_promo_proxy.js'; + import {BatchUploadPromoProxyImpl} from 'chrome://resources/js/batch_upload_promo/batch_upload_promo_proxy.js'; // +// // clang-format on -@@ -166,7 +168,7 @@ export class SettingsSyncControlsElement extends +@@ -159,7 +161,7 @@ export class SettingsSyncControlsElement extends this.addWebUiListener( 'sync-prefs-changed', this.handleSyncPrefsChanged_.bind(this)); - // + // if (loadTimeData.getBoolean('unoPhase2FollowUp')) { - BatchUploadPromoProxy.getInstance() + BatchUploadPromoProxyImpl.getInstance() .callbackRouter.onLocalDataCountChanged.addListener( -@@ -261,7 +263,9 @@ export class SettingsSyncControlsElement extends +@@ -251,7 +253,9 @@ export class SettingsSyncControlsElement extends // Prevent navigation to href='#' and open the batch upload dialog instead. event.preventDefault(); +// - BatchUploadPromoProxy.getInstance().handler.onBatchUploadPromoClicked(); + BatchUploadPromoProxyImpl.getInstance().handler.onBatchUploadPromoClicked(); +// } // @@ -906,9 +919,9 @@ diff --git a/chrome/browser/search_engines/android/java/src/org/chromium/chrome/ 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 -@@ -691,7 +691,11 @@ static_library("ui") { - ] - } +@@ -680,7 +680,11 @@ static_library("ui") { + if (is_desktop_android) { + deps += [ "//chrome/browser/ui/android/extensions/windowing/internal" ] } - + if (is_android) { @@ -919,7 +932,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn # TODO(crbug.com/413572035): Move into build files of the actual # modules depending on this. eg: autofill, user_education. if (is_chrome_branded) { -@@ -1027,6 +1031,25 @@ static_library("ui") { +@@ -1028,6 +1032,25 @@ static_library("ui") { "//extensions/browser:extension_action_enums", ] } @@ -1141,10 +1154,14 @@ 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 -@@ -455,4 +460,7 @@ void RegisterChromeWebUIConfigs() { +@@ -456,8 +461,10 @@ void RegisterChromeWebUIConfigs() { #if BUILDFLAG(ENTERPRISE_WATERMARK) map.AddWebUIConfig(std::make_unique()); #endif +- + #if BUILDFLAG(IS_MAC) + map.AddWebUIConfig(std::make_unique()); + #endif // BUILDFLAG(IS_MAC) +#if BUILDFLAG(IS_ANDROID) + map.AddWebUIConfig(std::make_unique()); +#endif // BUILDFLAG(IS_ANDROID) @@ -1152,7 +1169,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/u 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 -@@ -235,6 +235,7 @@ bool FaviconSource::ShouldServiceRequest( +@@ -242,6 +242,7 @@ bool FaviconSource::ShouldServiceRequest( render_process_id); } @@ -1160,7 +1177,7 @@ diff --git a/chrome/browser/ui/webui/favicon_source.cc b/chrome/browser/ui/webui ui::NativeTheme* FaviconSource::GetNativeTheme( const content::WebContents::Getter& wc_getter) { #if BUILDFLAG(IS_ANDROID) -@@ -243,6 +244,7 @@ ui::NativeTheme* FaviconSource::GetNativeTheme( +@@ -250,6 +251,7 @@ ui::NativeTheme* FaviconSource::GetNativeTheme( return webui::GetNativeThemeDeprecated(wc_getter.Run()); #endif } @@ -1168,7 +1185,7 @@ diff --git a/chrome/browser/ui/webui/favicon_source.cc b/chrome/browser/ui/webui void FaviconSource::OnFaviconDataAvailable( content::URLDataSource::GotDataCallback callback, -@@ -265,8 +267,12 @@ void FaviconSource::SendDefaultResponse( +@@ -273,8 +275,12 @@ void FaviconSource::SendDefaultResponse( SendDefaultResponse( std::move(callback), parsed.size_in_dip, parsed.device_scale_factor, !parsed.force_light_mode && @@ -1181,7 +1198,7 @@ diff --git a/chrome/browser/ui/webui/favicon_source.cc b/chrome/browser/ui/webui parsed.force_empty_default_favicon ? DefaultFaviconBehavior::kUseEmptyIcon : DefaultFaviconBehavior::kUseGlobeIcon); -@@ -289,8 +295,12 @@ void FaviconSource::SendDefaultResponse( +@@ -297,8 +303,12 @@ void FaviconSource::SendDefaultResponse( DefaultFaviconBehavior behavior) { SendDefaultResponse(std::move(callback), 16, 1.0f, !force_light_mode && @@ -1194,7 +1211,7 @@ diff --git a/chrome/browser/ui/webui/favicon_source.cc b/chrome/browser/ui/webui behavior); } -@@ -309,6 +319,7 @@ void FaviconSource::SendDefaultResponse( +@@ -317,6 +327,7 @@ void FaviconSource::SendDefaultResponse( int resource_id; switch (size_in_dip) { @@ -1202,7 +1219,7 @@ diff --git a/chrome/browser/ui/webui/favicon_source.cc b/chrome/browser/ui/webui case 64: resource_id = dark_mode ? IDR_DEFAULT_FAVICON_DARK_64 : IDR_DEFAULT_FAVICON_64; -@@ -317,6 +328,7 @@ void FaviconSource::SendDefaultResponse( +@@ -325,6 +336,7 @@ void FaviconSource::SendDefaultResponse( resource_id = dark_mode ? IDR_DEFAULT_FAVICON_DARK_32 : IDR_DEFAULT_FAVICON_32; break; @@ -1213,7 +1230,7 @@ diff --git a/chrome/browser/ui/webui/favicon_source.cc b/chrome/browser/ui/webui diff --git a/chrome/browser/ui/webui/favicon_source.h b/chrome/browser/ui/webui/favicon_source.h --- a/chrome/browser/ui/webui/favicon_source.h +++ b/chrome/browser/ui/webui/favicon_source.h -@@ -69,7 +69,9 @@ class FaviconSource : public content::URLDataSource { +@@ -68,7 +68,9 @@ class FaviconSource : public content::URLDataSource { int render_process_id) override; protected: @@ -1358,7 +1375,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 -@@ -2790,6 +2790,8 @@ void AddSearchEnginesStrings(content::WebUIDataSource* html_source) { +@@ -2871,6 +2871,8 @@ void AddSearchEnginesStrings(content::WebUIDataSource* html_source) { {"searchEnginesQueryURL", IDS_SETTINGS_SEARCH_ENGINES_QUERY_URL}, {"searchEnginesQueryURLExplanation", IDS_SETTINGS_SEARCH_ENGINES_QUERY_URL_EXPLANATION}, @@ -1367,7 +1384,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}, -@@ -4105,7 +4107,11 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, +@@ -4184,7 +4186,11 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, AddSiteSettingsStrings(html_source, profile); AddSiteDataPageStrings(html_source, profile); AddStorageAccessStrings(html_source); @@ -1904,7 +1921,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 -@@ -423,7 +423,7 @@ jboolean TemplateUrlServiceAndroid::SetPlayAPISearchEngine( +@@ -419,7 +419,7 @@ bool TemplateUrlServiceAndroid::SetPlayAPISearchEngine( if (regulatory_api_turl->safe_for_autoreplace()) { template_url_service_->ResetTemplateURL( regulatory_api_turl, regulatory_api_turl->short_name(), @@ -1916,7 +1933,7 @@ diff --git a/components/search_engines/android/template_url_service_android.cc b diff --git a/components/search_engines/search_engines_switches.cc b/components/search_engines/search_engines_switches.cc --- a/components/search_engines/search_engines_switches.cc +++ b/components/search_engines/search_engines_switches.cc -@@ -43,6 +43,7 @@ const base::FeatureParam kSearchEngineChoiceTriggerRepromptParams{ +@@ -48,6 +48,7 @@ const base::FeatureParam kSearchEngineChoiceTriggerRepromptParams{ &kSearchEngineChoiceTriggerReprompt, /*name=*/"reprompt", /*default_value=*/kSearchEngineChoiceNoRepromptString}; @@ -1927,7 +1944,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 -@@ -2208,6 +2208,10 @@ void TemplateURL::SetURL(const std::string& url) { +@@ -2224,6 +2224,10 @@ void TemplateURL::SetURL(const std::string& url) { url_ref().InvalidateCachedValues(); } @@ -1941,7 +1958,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 -@@ -1014,6 +1014,7 @@ class TemplateURL { +@@ -1015,6 +1015,7 @@ class TemplateURL { bool CreatedByRegulatoryProgram() const; void SetURL(const std::string& url); @@ -1952,7 +1969,7 @@ diff --git a/components/search_engines/template_url.h b/components/search_engine diff --git a/components/search_engines/template_url_service.cc b/components/search_engines/template_url_service.cc --- a/components/search_engines/template_url_service.cc +++ b/components/search_engines/template_url_service.cc -@@ -803,13 +803,15 @@ TemplateURL* TemplateURLService::AddWithOverrides( +@@ -802,13 +802,15 @@ TemplateURL* TemplateURLService::AddWithOverrides( std::unique_ptr template_url, const std::u16string& short_name, const std::u16string& keyword, @@ -1969,7 +1986,7 @@ diff --git a/components/search_engines/template_url_service.cc b/components/sear return Add(std::move(template_url)); } -@@ -1030,7 +1032,8 @@ void TemplateURLService::IncrementUsageCount(TemplateURL* url) { +@@ -1029,7 +1031,8 @@ void TemplateURLService::IncrementUsageCount(TemplateURL* url) { void TemplateURLService::ResetTemplateURL(TemplateURL* url, const std::u16string& title, const std::u16string& keyword, @@ -1979,7 +1996,7 @@ diff --git a/components/search_engines/template_url_service.cc b/components/sear DCHECK(!IsCreatedByExtension(*url)); DCHECK(!keyword.empty()); DCHECK(!search_url.empty()); -@@ -1050,6 +1053,7 @@ void TemplateURLService::ResetTemplateURL(TemplateURL* url, +@@ -1049,6 +1052,7 @@ void TemplateURLService::ResetTemplateURL(TemplateURL* url, // The urls have changed, reset the favicon url. data.favicon_url = GURL(); } @@ -2013,7 +2030,7 @@ diff --git a/components/search_engines/template_url_service.h b/components/searc diff --git a/content/browser/webui/web_ui_impl.cc b/content/browser/webui/web_ui_impl.cc --- a/content/browser/webui/web_ui_impl.cc +++ b/content/browser/webui/web_ui_impl.cc -@@ -376,6 +376,10 @@ void WebUIImpl::RegisterMessageCallback(std::string_view message, +@@ -403,6 +403,10 @@ void WebUIImpl::RegisterMessageCallback(std::string_view message, message_callbacks_.emplace(message, std::move(callback)); } @@ -2024,7 +2041,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) { -@@ -389,9 +393,15 @@ void WebUIImpl::ProcessWebUIMessage(const GURL& source_url, +@@ -416,9 +420,15 @@ void WebUIImpl::ProcessWebUIMessage(const GURL& source_url, return; } @@ -2046,7 +2063,7 @@ diff --git a/content/browser/webui/web_ui_impl.cc b/content/browser/webui/web_ui diff --git a/content/browser/webui/web_ui_impl.h b/content/browser/webui/web_ui_impl.h --- a/content/browser/webui/web_ui_impl.h +++ b/content/browser/webui/web_ui_impl.h -@@ -86,6 +86,7 @@ class CONTENT_EXPORT WebUIImpl : public WebUI, public mojom::WebUIHost { +@@ -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; @@ -2054,8 +2071,8 @@ diff --git a/content/browser/webui/web_ui_impl.h b/content/browser/webui/web_ui_ bool CanCallJavascript() override; void CallJavascriptFunctionUnsafe( std::string_view function_name, -@@ -169,6 +170,8 @@ class CONTENT_EXPORT WebUIImpl : public WebUI, public mojom::WebUIHost { - +@@ -177,6 +178,8 @@ class CONTENT_EXPORT WebUIImpl : public WebUI, public mojom::WebUIHost { + std::unique_ptr broker_; std::unique_ptr controller_; + bool do_not_crash_on_unhandled_message_ = false; @@ -2103,7 +2120,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", -@@ -237,6 +247,12 @@ ts_library("library") { +@@ -233,6 +243,12 @@ ts_library("library") { [ "components-chromium/iron-fit-behavior/iron-fit-behavior.d.ts" ] } @@ -2298,8 +2315,8 @@ diff --git a/ui/webui/resources/cr_components/theme_color_picker/BUILD.gn b/ui/w diff --git a/ui/webui/resources/cr_elements/BUILD.gn b/ui/webui/resources/cr_elements/BUILD.gn --- a/ui/webui/resources/cr_elements/BUILD.gn +++ b/ui/webui/resources/cr_elements/BUILD.gn -@@ -36,7 +36,7 @@ build_webui("build") { - "cr_tabs/cr_tabs.css", +@@ -49,7 +49,7 @@ build_webui("build") { + "cr_icon_button/cr_icon_button.css", ] - if ((!is_android && !is_ios) || is_desktop_android) { @@ -2307,7 +2324,7 @@ 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 += [ -@@ -141,7 +141,7 @@ build_webui("build") { +@@ -144,7 +144,7 @@ build_webui("build") { ] } diff --git a/build/patches/Enable-share-intent.patch b/build/patches/Enable-share-intent.patch index 0f4b409d..933609d2 100644 --- a/build/patches/Enable-share-intent.patch +++ b/build/patches/Enable-share-intent.patch @@ -15,7 +15,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/android/java/AndroidManifest.xml | 28 ++- .../res/layout/sharing_intent_content.xml | 88 ++++++++++ .../chrome/browser/IntentHandler.java | 16 +- - .../browser/LaunchIntentDispatcher.java | 14 +- + .../browser/LaunchIntentDispatcher.java | 2 +- + .../document/ChromeLauncherActivity.java | 13 +- .../init/ProcessInitializationHandler.java | 2 + .../SharedIntentShareActivity.java | 159 ++++++++++++++++++ .../flags/android/chrome_feature_list.cc | 1 + @@ -24,7 +25,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../about_flags_cc/Enable-share-intent.inc | 12 ++ .../Enable-share-intent.inc | 3 + .../Enable-share-intent.inc | 1 + - 14 files changed, 332 insertions(+), 8 deletions(-) + 15 files changed, 332 insertions(+), 9 deletions(-) create mode 100644 chrome/android/java/res/layout/sharing_intent_content.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/sharing/shared_intent/SharedIntentShareActivity.java create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Enable-share-intent.inc @@ -34,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 -@@ -614,6 +614,7 @@ chrome_java_resources = [ +@@ -589,6 +589,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", @@ -45,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 -@@ -1035,6 +1035,7 @@ chrome_java_sources = [ +@@ -1047,6 +1047,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", @@ -56,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 -@@ -271,12 +271,6 @@ by a child template that "extends" this file. +@@ -274,12 +274,6 @@ by a child template that "extends" this file. @@ -69,7 +70,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -@@ -355,6 +349,10 @@ by a child template that "extends" this file. +@@ -365,6 +359,10 @@ by a child template that "extends" this file. @@ -80,7 +81,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -@@ -391,6 +389,24 @@ by a child template that "extends" this file. +@@ -401,6 +399,24 @@ by a child template that "extends" this file. @@ -201,7 +202,7 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java --- a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java -@@ -197,6 +197,9 @@ public class IntentHandler { +@@ -200,6 +200,9 @@ public class IntentHandler { private static final String EXTRA_TAB_LAUNCH_TYPE = "org.chromium.chrome.browser.tab_launch_type"; @@ -211,7 +212,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.j /** A hash code for the URL to verify intent data hasn't been modified. */ public static final String EXTRA_DATA_HASH_CODE = "org.chromium.chrome.browser.data_hash"; -@@ -1536,6 +1539,17 @@ public class IntentHandler { +@@ -1539,6 +1542,17 @@ public class IntentHandler { return IntentUtils.safeGetIntExtra(intent, EXTRA_DEST_TAB_ID, Tab.INVALID_TAB_ID); } @@ -229,7 +230,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.j /** * Creates an Intent that will launch a ChromeTabbedActivity on the new tab page. The Intent * will be trusted and therefore able to launch Incognito tabs. -@@ -1744,7 +1758,7 @@ public class IntentHandler { +@@ -1749,7 +1763,7 @@ public class IntentHandler { String headers = getExtraHeadersFromIntent(intent); headers = maybeAddAdditionalContentHeaders(intent, url, headers); @@ -241,38 +242,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.j diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java --- a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java -@@ -51,6 +51,7 @@ import org.chromium.chrome.browser.notifications.NotificationPlatformBridge; - import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations; - import org.chromium.chrome.browser.profiles.Profile; - import org.chromium.chrome.browser.profiles.ProfileManager; -+import org.chromium.chrome.browser.sharing.shared_intent.SharedIntentShareActivity; - import org.chromium.chrome.browser.searchwidget.SearchActivity; - import org.chromium.chrome.browser.tab.Tab; - import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityClient; -@@ -222,11 +223,22 @@ public class LaunchIntentDispatcher { - - String query = null; - final String action = intent.getAction(); -+ boolean isWebSearch = Intent.ACTION_WEB_SEARCH.equals(action); - if (Intent.ACTION_SEARCH.equals(action) -+ || isWebSearch - || MediaStore.INTENT_ACTION_MEDIA_SEARCH.equals(action)) { - query = IntentUtils.safeGetStringExtra(intent, SearchManager.QUERY); - } - if (TextUtils.isEmpty(query)) return false; -+ if (isWebSearch) { -+ Intent i = new Intent(Intent.ACTION_SEND); -+ i.putExtra(Intent.EXTRA_TEXT, query); -+ i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); -+ i.setClass(ContextUtils.getApplicationContext(), -+ SharedIntentShareActivity.class); -+ ContextUtils.getApplicationContext().startActivity(i); -+ return true; -+ } - - // Only the ChromeLauncherActivity can handle search intents. Drop the intent and abort the - // launch. -@@ -504,8 +516,8 @@ public class LaunchIntentDispatcher { +@@ -352,8 +352,8 @@ public class LaunchIntentDispatcher { /*incognito*/true); newIntent.setData(mIntent.getData()); newIntent.setPackage(applicationContext.getPackageName()); @@ -282,6 +252,41 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis } if (!chromeTabbedTaskExists(mActivity)) { newIntent.putExtra(IntentHandler.EXTRA_STARTED_TABBED_CHROME_TASK, true); +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/document/ChromeLauncherActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/document/ChromeLauncherActivity.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/document/ChromeLauncherActivity.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/document/ChromeLauncherActivity.java +@@ -35,6 +35,7 @@ import org.chromium.chrome.browser.multiwindow.MultiWindowUtils; + import org.chromium.chrome.browser.notifications.NotificationPlatformBridge; + import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations; + import org.chromium.chrome.browser.searchwidget.SearchActivity; ++import org.chromium.chrome.browser.sharing.shared_intent.SharedIntentShareActivity; + import org.chromium.chrome.browser.tab.Tab; + import org.chromium.chrome.browser.tabwindow.TabWindowInfo; + import org.chromium.chrome.browser.webapps.WebappLauncherActivity; +@@ -158,12 +159,22 @@ public class ChromeLauncherActivity extends Activity { + + String query = null; + final String action = intent.getAction(); ++ boolean isWebSearch = Intent.ACTION_WEB_SEARCH.equals(action); + if (Intent.ACTION_SEARCH.equals(action) ++ || isWebSearch + || MediaStore.INTENT_ACTION_MEDIA_SEARCH.equals(action)) { + query = IntentUtils.safeGetStringExtra(intent, SearchManager.QUERY); + } + if (TextUtils.isEmpty(query)) return false; +- ++ if (isWebSearch) { ++ Intent i = new Intent(Intent.ACTION_SEND); ++ i.putExtra(Intent.EXTRA_TEXT, query); ++ i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); ++ i.setClass(ContextUtils.getApplicationContext(), ++ SharedIntentShareActivity.class); ++ ContextUtils.getApplicationContext().startActivity(i); ++ return true; ++ } + Intent searchIntent = new Intent(Intent.ACTION_WEB_SEARCH); + searchIntent.putExtra(SearchManager.QUERY, query); + 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 @@ -406,7 +411,7 @@ new file mode 100644 + chromeIntent.setPackage(applicationContext.getPackageName()); + chromeIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + -+ LaunchIntentDispatcher.dispatch(this, chromeIntent); ++ LaunchIntentDispatcher.dispatchToTabbedActivity(this, chromeIntent); + finish(); + }); + @@ -456,7 +461,7 @@ new file mode 100644 + chromeIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + IntentHandler.setForceIncognitoMode(chromeIntent); + -+ LaunchIntentDispatcher.dispatch(this, chromeIntent); ++ LaunchIntentDispatcher.dispatchToTabbedActivity(this, chromeIntent); + finish(); + } + @@ -468,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 -@@ -410,6 +410,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -406,6 +406,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kRelatedSearchesAllLanguage, &kRelatedSearchesSwitch, &kReloadTabUiResourcesIfChanged, @@ -479,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 -@@ -584,6 +584,7 @@ public abstract class ChromeFeatureList { +@@ -575,6 +575,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"; @@ -490,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 -@@ -6410,6 +6410,19 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -6447,6 +6447,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 93f23b85..5f19ecfc 100644 --- a/build/patches/Enable-snackbar-swipe.patch +++ b/build/patches/Enable-snackbar-swipe.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/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 -@@ -10,13 +10,16 @@ import android.animation.Animator; +@@ -8,13 +8,16 @@ import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.ObjectAnimator; import android.app.Activity; @@ -29,8 +29,8 @@ 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; -@@ -33,6 +36,9 @@ import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeController; - import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeControllerFactory; +@@ -30,6 +33,9 @@ import org.chromium.build.annotations.Nullable; + import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeController; import org.chromium.chrome.ui.messages.R; import org.chromium.components.browser_ui.styles.SemanticColorUtils; +import org.chromium.components.browser_ui.widget.gesture.SwipeGestureListener; @@ -38,8 +38,8 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro +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.edge_to_edge.EdgeToEdgePadAdjuster; -@@ -46,7 +52,7 @@ import org.chromium.ui.interpolators.Interpolators; + import org.chromium.ui.insets.InsetObserver; +@@ -42,7 +48,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; -@@ -88,6 +94,16 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { +@@ -83,6 +89,16 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { } }; @@ -65,7 +65,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro /** * Creates an instance of the {@link SnackbarView}. * -@@ -147,13 +163,12 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { +@@ -116,13 +132,12 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { // Make sure clicks are not consumed by content beneath the container view. mContainerView.setClickable(true); @@ -85,11 +85,10 @@ 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); -@@ -508,4 +523,58 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { - public @Nullable EdgeToEdgePadAdjuster getEdgeToEdgePadAdjusterForTesting() { - return mEdgeToEdgePadAdjuster; +@@ -235,6 +250,60 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { + return mContainerView.isShown(); } -+ + + @Override + public boolean onTouch(View v, MotionEvent event) { + return mSwipeGestureListener.onTouchEvent(event); @@ -111,7 +110,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro + mContainerView.setTranslationX(tx); + } + -+ @Override ++ @Override + public void onSwipeFinished() { + if (!mSwipeStarted) return; + mSwipeStarted = false; @@ -143,5 +142,8 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro + public boolean isSwipeEnabled(@ScrollDirection int direction) { + return direction == ScrollDirection.LEFT || direction == ScrollDirection.RIGHT; + } - } ++ + void bringToFront() { + mContainerView.bringToFront(); + } -- 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 aaa2909a..84a7adf9 100644 --- a/build/patches/Enables-deactivation-of-the-js-debugger-statement.patch +++ b/build/patches/Enables-deactivation-of-the-js-debugger-statement.patch @@ -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 -@@ -1468,6 +1468,10 @@ inspectorBackend.registerCommand("Debugger.resume", [{"name": "terminateOnResume +@@ -1489,6 +1489,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 -@@ -5157,6 +5157,10 @@ export namespace ProtocolMapping { +@@ -5195,6 +5195,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 -@@ -4616,6 +4616,8 @@ declare namespace ProtocolProxyApi { +@@ -4648,6 +4648,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 -@@ -19979,6 +19979,10 @@ export namespace Debugger { +@@ -20379,6 +20379,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 -@@ -30380,8 +30380,17 @@ +@@ -30891,8 +30891,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, -@@ -33571,4 +33580,4 @@ +@@ -34082,4 +34091,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 -@@ -763,6 +763,7 @@ namespace internal { +@@ -775,6 +775,7 @@ namespace internal { /* AggregateError */ \ T(AllPromisesRejected, "All promises were rejected") \ T(CannotDeepFreezeObject, "Cannot DeepFreeze object of type %") \ diff --git a/build/patches/Experimental-support-for-extensions-on-Android.patch b/build/patches/Experimental-support-for-extensions-on-Android.patch index 9af71ed9..d4f66d48 100644 --- a/build/patches/Experimental-support-for-extensions-on-Android.patch +++ b/build/patches/Experimental-support-for-extensions-on-Android.patch @@ -13,15 +13,16 @@ folder in case of a crash on startup. License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- android_webview/BUILD.gn | 2 +- - base/android/device_info.cc | 8 +- + base/android/device_info.cc | 8 ++- base/android/device_info.h | 3 +- .../src/org/chromium/base/DeviceInfo.java | 6 +- + .../base/test/util/ApplicationTestUtils.java | 2 +- build/BUILD.gn | 2 +- build/config/android/rules.gni | 4 +- build/config/chrome_build.gni | 7 +- build/config/compiler/BUILD.gn | 2 +- build/config/compiler/pgo/BUILD.gn | 2 +- - chrome/android/BUILD.gn | 6 +- + chrome/android/BUILD.gn | 4 +- chrome/android/chrome_public_apk_tmpl.gni | 2 +- .../java/res/layout/manage_space_activity.xml | 14 +++- .../java/res/xml/developer_preferences.xml | 6 ++ @@ -30,33 +31,33 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../settings/AppearanceSettingsFragment.java | 2 +- .../overlays/strip/StripLayoutUtils.java | 2 +- .../DesktopSiteSettingsIphController.java | 2 +- - .../browser/init/AsyncInitTaskRunner.java | 2 +- - .../MediaCaptureNotificationServiceImpl.java | 8 +- + .../MediaCaptureNotificationServiceImpl.java | 8 +-- .../browser/multiwindow/MultiWindowUtils.java | 2 +- .../ChromeSiteSettingsDelegate.java | 2 +- - .../site_settings/ManageSpaceActivity.java | 20 +++++ + .../site_settings/ManageSpaceActivity.java | 20 ++++++ ...InterceptNavigationDelegateClientImpl.java | 2 +- .../browser/tab/RequestDesktopUtils.java | 2 +- .../TabbedAppMenuPropertiesDelegate.java | 2 +- .../tabbed_mode/TabbedRootUiCoordinator.java | 2 +- - .../chrome/browser/ui/RootUiCoordinator.java | 2 +- chrome/app/extensions_strings.grdp | 7 ++ chrome/app/theme/theme_resources.grd | 4 +- - chrome/browser/BUILD.gn | 8 +- - chrome/browser/about_flags.cc | 4 + + chrome/browser/BUILD.gn | 6 +- + chrome/browser/about_flags.cc | 4 ++ ...chrome_selection_dropdown_menu_delegate.cc | 4 +- .../bookmarks/bar/BookmarkBarUtils.java | 6 +- .../bar/BookmarkBarVisibilityProvider.java | 2 +- chrome/browser/browser_process_impl.cc | 2 +- - chrome/browser/chrome_browser_field_trials.cc | 84 +++++++++---------- + chrome/browser/chrome_browser_field_trials.cc | 72 +++++++++---------- .../chrome_browser_interface_binders_webui.cc | 4 +- .../browser/chrome_content_browser_client.cc | 4 +- chrome/browser/devtools/BUILD.gn | 2 +- .../chrome_download_manager_delegate.cc | 2 +- .../download_offline_content_provider.cc | 4 +- - chrome/browser/extensions/BUILD.gn | 12 ++- + chrome/browser/extensions/BUILD.gn | 12 +++- .../chrome_extensions_api_client_android.cc | 2 +- - .../extensions/extension_management.cc | 8 +- + .../extensions/api/identity/web_auth_flow.cc | 6 +- + .../extensions/api/identity/web_auth_flow.h | 4 +- + .../extensions/extension_management.cc | 8 ++- .../browser/extensions/extension_management.h | 2 +- chrome/browser/extensions/extension_util.cc | 11 +++ .../feedback/DeviceInfoFeedbackSource.java | 2 +- @@ -67,24 +68,24 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../media/webrtc/webrtc_event_log_manager.cc | 4 +- .../policy_value_and_status_aggregator.cc | 2 +- ...hrome_browser_main_extra_parts_profiles.cc | 2 +- - .../profiles/off_the_record_profile_impl.cc | 9 +- + .../profiles/off_the_record_profile_impl.cc | 9 ++- chrome/browser/profiles/profile_destroyer.cc | 2 +- chrome/browser/resources/BUILD.gn | 2 +- chrome/browser/resources/discards/BUILD.gn | 2 +- .../resources/extensions/detail_view.css | 6 ++ - .../resources/extensions/extensions.html | 8 +- + .../resources/extensions/extensions.html | 8 ++- .../resources/extensions/item_list.css | 11 +++ .../resources/extensions/toolbar.html.ts | 7 -- ...omeProvidedSharingOptionsProviderBase.java | 4 +- chrome/browser/startup_data.cc | 6 +- chrome/browser/startup_data.h | 6 +- .../common/task_manager_features.cc | 2 +- - chrome/browser/ui/BUILD.gn | 6 +- - .../browser/ui/android/context_menu_helper.cc | 12 ++- + chrome/browser/ui/BUILD.gn | 4 +- + .../browser/ui/android/context_menu_helper.cc | 12 +++- .../browser/ui/android/context_menu_helper.h | 4 +- .../desktop_site/DesktopSiteUtils.java | 4 +- chrome/browser/ui/android/extensions/BUILD.gn | 4 +- - .../extensions/extension_actions_bridge.cc | 23 +++++ + .../extensions/extension_actions_bridge.cc | 23 ++++++ .../extensions/extension_actions_bridge.h | 1 + .../java/res/layout/extensions_menu.xml | 1 + .../res/layout/extensions_menu_footer.xml | 4 +- @@ -92,30 +93,23 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../ui/extensions/ExtensionActionsBridge.java | 6 ++ .../extensions/windowing/internal/BUILD.gn | 2 +- .../Enable-extensions-Android.grdp | 15 ++++ - .../Extensions-Android.grdp | 9 ++ - chrome/browser/ui/android/tab_model/BUILD.gn | 4 +- - .../browser/ui/android/tab_model/tab_model.cc | 6 +- + .../Extensions-Android.grdp | 9 +++ + .../browser/ui/android/tab_model/tab_model.cc | 4 +- .../browser/ui/android/tab_model/tab_model.h | 2 +- - .../android/tab_model/tab_model_jni_bridge.cc | 12 +-- + .../android/tab_model/tab_model_jni_bridge.cc | 12 ++-- .../android/tab_model/tab_model_test_helper.h | 2 +- .../toolbar/java/res/layout/toolbar_phone.xml | 6 ++ - .../ExtensionActionListContainer.java | 8 +- + .../ExtensionActionListContainer.java | 8 ++- .../ExtensionToolbarCoordinatorImpl.java | 10 ++- - .../extensions/ExtensionsMenuCoordinator.java | 44 +++++----- + .../extensions/ExtensionsMenuCoordinator.java | 44 ++++++------ .../ExtensionsMenuItemProperties.java | 5 +- .../ExtensionsMenuItemViewBinder.java | 2 + - .../extensions/ExtensionsMenuMediator.java | 9 +- - chrome/browser/ui/browser_navigator_params.cc | 4 +- - chrome/browser/ui/browser_navigator_params.h | 4 +- - chrome/browser/ui/browser_window/BUILD.gn | 2 +- - .../ui/browser_window/internal/BUILD.gn | 2 +- + .../extensions/ExtensionsMenuMediator.java | 10 ++- chrome/browser/ui/prefs/BUILD.gn | 4 +- - chrome/browser/ui/prefs/prefs_tab_helper.cc | 8 +- - chrome/browser/ui/tabs/tab_list_interface.h | 4 +- - chrome/browser/ui/webid/BUILD.gn | 2 +- + chrome/browser/ui/prefs/prefs_tab_helper.cc | 8 +-- .../browser/ui/webui/chrome_web_ui_configs.cc | 4 +- .../browser/ui/webui/current_channel_logo.cc | 2 +- - .../browser/ui/webui/discards/discards_ui.cc | 8 +- + .../browser/ui/webui/discards/discards_ui.cc | 8 +-- chrome/chrome_paks.gni | 2 +- chrome/common/chrome_switches.cc | 2 +- chrome/common/chrome_switches.h | 2 +- @@ -124,14 +118,15 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html chrome/common/webui_url_constants.h | 2 +- .../sandbox_status_extension_android.cc | 3 +- .../sandbox_status_extension_android.h | 1 + - chrome/test/BUILD.gn | 16 ++-- + chrome/test/BUILD.gn | 14 ++-- chrome/version.gni | 4 +- .../core/browser/host_content_settings_map.cc | 6 ++ .../embedder_support/view/ContentView.java | 2 +- + .../embedder_support/user_agent_utils.cc | 14 ++-- .../browser/android/media_router_android.cc | 2 +- .../browser/android/media_router_android.h | 2 +- .../media_router/browser/media_router.h | 4 +- - .../policy/CombinedPolicyProvider.java | 8 +- + .../policy/CombinedPolicyProvider.java | 8 +-- .../components/policy/PolicyCacheUpdater.java | 2 +- .../android/policy_cache_updater_android.cc | 4 +- .../cloud/user_policy_signin_service_base.cc | 2 +- @@ -139,7 +134,6 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../common/cloud/cloud_policy_constants.cc | 2 +- components/policy/core/common/features.cc | 2 +- .../policy/core/common/policy_merger.cc | 4 +- - .../service/variations_service_client.cc | 2 +- .../installable/installable_icon_fetcher.cc | 6 +- .../installable/installable_icon_fetcher.h | 2 +- .../version/resources/about_version.html | 2 +- @@ -150,14 +144,14 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../browser/ContentUiEventHandler.java | 7 +- content/public/common/content_features.cc | 2 +- .../render_frame_media_playback_options.cc | 2 +- - .../about_flags_cc/Extensions-Android.inc | 12 +++ - .../about_flags_cc/Webstore-protection.inc | 8 +- + .../about_flags_cc/Extensions-Android.inc | 12 ++++ + .../about_flags_cc/Webstore-protection.inc | 8 +-- extensions/browser/BUILD.gn | 4 +- ...browser_context_keyed_service_factories.cc | 2 +- extensions/browser/api/system_cpu/BUILD.gn | 2 +- .../api/web_request/permission_helper.cc | 2 +- - extensions/browser/extension_frame_host.cc | 8 ++ - extensions/browser/extension_host.cc | 24 +++++- + extensions/browser/extension_frame_host.cc | 8 +++ + extensions/browser/extension_host.cc | 24 ++++++- extensions/buildflags/BUILD.gn | 3 +- extensions/buildflags/buildflags.gni | 4 +- extensions/common/api/schema.gni | 2 +- @@ -175,8 +169,8 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../renderer/modules/modules_initializer.cc | 4 +- tools/grit/grit_args.gni | 3 +- .../cpp_bundle_generator.py | 2 +- - .../ui/widget/PopupSpecCalculator.java | 9 +- - .../ui/test/util/UiDisableIfSkipCheck.java | 8 +- + .../ui/widget/PopupSpecCalculator.java | 9 ++- + .../ui/test/util/UiDisableIfSkipCheck.java | 8 +-- .../chromium/ui/test/util/UiRestriction.java | 2 +- ui/base/accelerators/command.cc | 2 +- ui/base/device_form_factor_android.cc | 2 +- @@ -186,7 +180,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html ui/webui/resources/cr_elements/BUILD.gn | 2 +- .../cr_elements/cr_toolbar/cr_toolbar.css | 6 ++ ui/webui/resources/css/BUILD.gn | 2 +- - 174 files changed, 597 insertions(+), 316 deletions(-) + 168 files changed, 585 insertions(+), 305 deletions(-) create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Enable-extensions-Android.grdp create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Extensions-Android.grdp create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Extensions-Android.inc @@ -194,7 +188,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/android_webview/BUILD.gn b/android_webview/BUILD.gn --- a/android_webview/BUILD.gn +++ b/android_webview/BUILD.gn -@@ -1301,7 +1301,7 @@ declare_args() { +@@ -1303,7 +1303,7 @@ declare_args() { # logic more easily on an emulator, so the decision to use the arm64 # orderfile for x64 (instead of arm32) is somewhat arbitrary. We just # needed to use some real orderfile. @@ -206,7 +200,7 @@ diff --git a/android_webview/BUILD.gn b/android_webview/BUILD.gn diff --git a/base/android/device_info.cc b/base/android/device_info.cc --- a/base/android/device_info.cc +++ b/base/android/device_info.cc -@@ -104,10 +104,14 @@ bool is_foldable() { +@@ -103,10 +103,14 @@ bool is_foldable() { return get_device_info().isFoldable; } @@ -222,7 +216,7 @@ diff --git a/base/android/device_info.cc b/base/android/device_info.cc // Available only on Android T+. int32_t vulkan_deqp_level() { return get_device_info().vulkanDeqpLevel; -@@ -123,7 +127,7 @@ bool is_xr() { +@@ -122,7 +126,7 @@ bool is_xr() { // check) as a first choice, but fall back to this if not feasible. bool is_tablet() { return was_launched_on_large_display() && !is_tv() && !is_automotive() && @@ -263,6 +257,18 @@ diff --git a/base/android/java/src/org/chromium/base/DeviceInfo.java b/base/andr public static int getVulkanDeqpLevel() { return getInstance().mIDeviceInfo.vulkanDeqpLevel; } +diff --git a/base/test/android/javatests/src/org/chromium/base/test/util/ApplicationTestUtils.java b/base/test/android/javatests/src/org/chromium/base/test/util/ApplicationTestUtils.java +--- a/base/test/android/javatests/src/org/chromium/base/test/util/ApplicationTestUtils.java ++++ b/base/test/android/javatests/src/org/chromium/base/test/util/ApplicationTestUtils.java +@@ -167,7 +167,7 @@ public class ApplicationTestUtils { + // called, it is just the notification to the test instrumentation that is + // missing. PersistAcrossReboots is currently only enabled on desktop builds. + boolean hasSkippedOnCreate = +- DeviceInfo.isDesktop() ++ DeviceInfo.isDesktopFalse() + && !hadOnCreateCall.get() + && (newStage == Stage.STARTED) + && stages.contains(Stage.CREATED); diff --git a/build/BUILD.gn b/build/BUILD.gn --- a/build/BUILD.gn +++ b/build/BUILD.gn @@ -278,7 +284,7 @@ diff --git a/build/BUILD.gn b/build/BUILD.gn diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni --- a/build/config/android/rules.gni +++ b/build/config/android/rules.gni -@@ -2027,8 +2027,8 @@ if (!is_robolectric && enable_java_templates) { +@@ -2031,8 +2031,8 @@ if (!is_robolectric && enable_java_templates) { } else { defines += [ "_LOGTAG_PREFIX=cr_" ] } @@ -344,37 +350,28 @@ diff --git a/build/config/compiler/pgo/BUILD.gn b/build/config/compiler/pgo/BUIL diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -958,7 +958,7 @@ if (_is_default_toolchain) { +@@ -954,7 +954,7 @@ if (_is_default_toolchain) { "//chrome/browser/password_entry_edit/android/internal:java", ] - if (is_desktop_android) { + if (is_desktop_android_cromite) { - deps += [ - "//chrome/browser/ui/android/extensions/windowing/internal:java", - "//chrome/browser/ui/browser_window/internal:java", -@@ -1225,7 +1225,7 @@ if (_is_default_toolchain) { - deps += [ "//chrome/browser/ui/android/extensions:junit" ] - } - -- if (is_desktop_android) { -+ if (is_desktop_android_cromite) { - deps += [ "//chrome/browser/ui/browser_window/internal:junit" ] - } - } -@@ -2416,7 +2416,7 @@ if (_is_default_toolchain) { - "//components/ip_protection/android/android_auth_client_lib/javatests:ip_protection_auth_javatests", + deps += + [ "//chrome/browser/ui/android/extensions/windowing/internal:java" ] + } else { +@@ -2298,7 +2298,7 @@ if (_is_default_toolchain) { + "//components/embedder_support/android:virtual_structure_javatests", ] - if (is_desktop_android) { + if (is_desktop_android_cromite) { deps += [ "//chrome/browser/ui/android/extensions/windowing/internal:javatests", - "//chrome/browser/ui/browser_window/internal:javatests", + diff --git a/chrome/android/chrome_public_apk_tmpl.gni b/chrome/android/chrome_public_apk_tmpl.gni --- a/chrome/android/chrome_public_apk_tmpl.gni +++ b/chrome/android/chrome_public_apk_tmpl.gni -@@ -43,7 +43,7 @@ default_chrome_public_jinja_variables = [ +@@ -39,7 +39,7 @@ default_chrome_public_jinja_variables = [ "enable_vr=$enable_vr", "enable_openxr=$enable_openxr", "enable_arcore=$enable_arcore", @@ -423,7 +420,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/ChromeBaseAppCompatActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java -@@ -578,7 +578,7 @@ public class ChromeBaseAppCompatActivity extends AppCompatActivity +@@ -620,7 +620,7 @@ public class ChromeBaseAppCompatActivity extends AppCompatActivity applySingleThemeOverlay(R.style.ThemeOverlay_BrowserUI_OptOutEdgeToEdge); } @@ -435,7 +432,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCo 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 -@@ -1173,7 +1173,7 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties +@@ -1180,7 +1180,7 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties && !shouldShowReaderModePrefs(currentTab) && currentTab != null && currentTab.getWebContents() != null @@ -447,7 +444,7 @@ 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/appearance/settings/AppearanceSettingsFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/appearance/settings/AppearanceSettingsFragment.java --- a/chrome/android/java/src/org/chromium/chrome/browser/appearance/settings/AppearanceSettingsFragment.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/appearance/settings/AppearanceSettingsFragment.java -@@ -58,7 +58,7 @@ public class AppearanceSettingsFragment extends ChromeBaseSettingsFragment +@@ -62,7 +62,7 @@ public class AppearanceSettingsFragment extends ChromeBaseSettingsFragment // This fragment may be used on Desktop or tablets. For Desktop we use the current Profile's // UserPrefs. For tablets, we use the local device preference. @@ -459,7 +456,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appearance/sett diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutUtils.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutUtils.java -@@ -420,7 +420,7 @@ public class StripLayoutUtils { +@@ -415,7 +415,7 @@ public class StripLayoutUtils { public static boolean shouldApplyMoreDensity() { return ChromeFeatureList.sTabStripDensityChangeAndroid.isEnabled() @@ -480,18 +477,6 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/desktop_site/De return new DesktopSiteSettingsIphController( windowAndroid, activityTabProvider, -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/AsyncInitTaskRunner.java b/chrome/android/java/src/org/chromium/chrome/browser/init/AsyncInitTaskRunner.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/init/AsyncInitTaskRunner.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/init/AsyncInitTaskRunner.java -@@ -76,7 +76,7 @@ public abstract class AsyncInitTaskRunner { - } - // TODO(crbug.com/389565104): Remove this if block when ready to move desktop to stable - // builds. -- if (VersionInfo.isStableBuild() && DeviceInfo.isDesktop()) { -+ if (VersionInfo.isStableBuild() && DeviceInfo.isDesktopFalse()) { - return "dev"; - } - if (VersionInfo.isBetaBuild()) { diff --git a/chrome/android/java/src/org/chromium/chrome/browser/media/MediaCaptureNotificationServiceImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/media/MediaCaptureNotificationServiceImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/media/MediaCaptureNotificationServiceImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/media/MediaCaptureNotificationServiceImpl.java @@ -534,7 +519,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/media/MediaCapt 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 -@@ -217,7 +217,7 @@ public class MultiWindowUtils implements ActivityStateListener { +@@ -200,7 +200,7 @@ public class MultiWindowUtils implements ActivityStateListener { return TabWindowManager.MAX_SELECTORS_S; } @@ -553,8 +538,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/C - return !DeviceInfo.isDesktop(); + return !DeviceInfo.isDesktopFalse(); case SiteSettingsCategory.Type.LOCAL_NETWORK_ACCESS: - return ChromeFeatureList.isEnabled(ChromeFeatureList.LOCAL_NETWORK_ACCESS); - case SiteSettingsCategory.Type.WINDOW_MANAGEMENT: + // Use LOCAL_NETWORK_ACCESS if LNA is enabled, but LNA Split permissions is not + // enabled. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ManageSpaceActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ManageSpaceActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ManageSpaceActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ManageSpaceActivity.java @@ -609,7 +594,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/M diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/InterceptNavigationDelegateClientImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/InterceptNavigationDelegateClientImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/InterceptNavigationDelegateClientImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/InterceptNavigationDelegateClientImpl.java -@@ -205,7 +205,7 @@ public class InterceptNavigationDelegateClientImpl implements InterceptNavigatio +@@ -208,7 +208,7 @@ public class InterceptNavigationDelegateClientImpl implements InterceptNavigatio // TODO(crbug.com/417047079): Replace the following desktop windowing checks with a better // approach. // return MultiWindowUtils.getInstance().isInMultiWindowMode(getActivity()); @@ -633,19 +618,19 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/RequestDesk 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 -@@ -826,7 +826,7 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm - // PDF. - NativePage nativePage = currentTab.getNativePage(); - boolean isPdfPage = nativePage != null && nativePage.isPdf(); -- boolean isEligibleForPrint = DeviceInfo.isDesktop() || isPdfPage; -+ boolean isEligibleForPrint = DeviceInfo.isDesktopCromite() || isPdfPage; +@@ -843,7 +843,7 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm + return false; + } - return canShareTab && isPrintingEnabled && isEligibleForPrint; +- return DeviceInfo.isDesktop() || isPdf; ++ return DeviceInfo.isDesktopFalse() || isPdf; } + + private MVCListAdapter.ListItem buildPrintItem(Tab currentTab) { 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 -@@ -2014,7 +2014,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -2036,7 +2036,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { } else if (id == R.id.toggle_bookmark_bar) { // isActivityStateBookmarkBarCompatible already checks the flag sAndroidBookmarkBar. if (BookmarkBarUtils.isActivityStateBookmarkBarCompatible(mActivity)) { @@ -654,18 +639,6 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab // Desktop uses the synced UserPref. BookmarkBarUtils.toggleUserPrefsShowBookmarksBar( mProfileSupplier.get(), /* fromKeyboardShortcut= */ true); -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 -@@ -714,7 +714,7 @@ public class RootUiCoordinator - mXrSpaceModeObservableSupplier = xrSpaceModeObservableSupplier; - - if (BrowserControlsUtils.doSyncMinHeightWithTotalHeightV2()) { -- if (DeviceInfo.isDesktop() -+ if (DeviceInfo.isDesktopFalse() - || BrowserControlsUtils.doSyncMinHeightWithTotalHeight(mActivity)) { - mTopControlsStacker.setScrollingDisabled(true); - } else if (mDesktopWindowStateManager != null) { 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 @@ -689,7 +662,7 @@ diff --git a/chrome/app/extensions_strings.grdp b/chrome/app/extensions_strings. diff --git a/chrome/app/theme/theme_resources.grd b/chrome/app/theme/theme_resources.grd --- a/chrome/app/theme/theme_resources.grd +++ b/chrome/app/theme/theme_resources.grd -@@ -372,7 +372,7 @@ +@@ -373,7 +373,7 @@ @@ -698,7 +671,7 @@ diff --git a/chrome/app/theme/theme_resources.grd b/chrome/app/theme/theme_resou -@@ -381,7 +381,7 @@ +@@ -382,7 +382,7 @@ @@ -710,16 +683,7 @@ diff --git a/chrome/app/theme/theme_resources.grd b/chrome/app/theme/theme_resou diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -4916,7 +4916,7 @@ static_library("browser") { - } - } - -- if (!is_android || is_desktop_android) { -+ if (!is_android || is_desktop_android_cromite) { - deps += [ "//chrome/browser/ui/browser_window" ] - } - -@@ -7644,7 +7644,7 @@ static_library("browser") { +@@ -7627,7 +7627,7 @@ static_library("browser") { deps += [ "//media/mojo/mojom:remoting" ] } @@ -728,7 +692,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn sources += [ "download/download_crx_util_android.cc" ] } -@@ -7958,7 +7958,7 @@ static_library("browser") { +@@ -7945,7 +7945,7 @@ static_library("browser") { # TODO(https://crbug.com/356905053): Add more dependencies here and merge this # block with the `enable_extensions` block above. @@ -737,7 +701,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn sources += [ # TODO(https://crbug.com/356905053): These files are temporary workarounds # allow for a lightweight extensions runtime in desktop-android builds. -@@ -8738,7 +8738,7 @@ static_library("browser_generated_files") { +@@ -8726,7 +8726,7 @@ static_library("browser_generated_files") { [ "//chrome/browser/ui/webui/new_tab_page/foo:mojo_bindings" ] } } @@ -749,7 +713,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 -@@ -369,6 +369,10 @@ +@@ -370,6 +370,10 @@ #include "extensions/common/switches.h" #endif // BUILDFLAG(ENABLE_EXTENSIONS_CORE) @@ -824,7 +788,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows 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 -@@ -357,7 +357,7 @@ void BrowserProcessImpl::Init() { +@@ -381,7 +381,7 @@ void BrowserProcessImpl::Init() { // TODO(devlin): Move this block out of BrowserProcessImpl to somewhere like // //chrome/browser/initialize_extensions_browser_client, analogous to // `EnsureExtensionsClientInitialized()` above? @@ -845,15 +809,7 @@ diff --git a/chrome/browser/chrome_browser_field_trials.cc b/chrome/browser/chro // Nota bene: Anything here is expected to be short-lived, unless deemed too // risky to launch to non-desktop platforms. New features being added here // should be the exception, and not the norm. Instead, you should place the -@@ -133,17 +133,17 @@ void ChromeBrowserFieldTrials::RegisterFeatureOverrides( - - // If enabled, then use desktop page webprefs for Android devices that have - // large displays, specifically tablets and desktops. -- feature_overrides.EnableFeature( -- blink::features::kAndroidDesktopWebPrefsLargeDisplays); -+ // feature_overrides.EnableFeature( -+ // blink::features::kAndroidDesktopWebPrefsLargeDisplays); - +@@ -134,11 +134,11 @@ void ChromeBrowserFieldTrials::RegisterFeatureOverrides( // Enables the caret browsing a11y feature - can use arrow keys to navigate // through web pages. // TODO(crbug.com/369139090): Remove when rollout is complete @@ -867,20 +823,19 @@ diff --git a/chrome/browser/chrome_browser_field_trials.cc b/chrome/browser/chro // If enabled, render processes associated only with tabs in unfocused windows // will be downgraded to "vis" priority, rather than remaining at "fg". This -@@ -153,8 +153,8 @@ void ChromeBrowserFieldTrials::RegisterFeatureOverrides( - - // Enables media capture (tab+window+screen sharing). - // TODO(crbug.com/352187279): Remove when tablet rollout is complete. -- feature_overrides.EnableFeature(kAndroidMediaPicker); -- feature_overrides.EnableFeature(features::kUserMediaScreenCapturing); -+ // feature_overrides.EnableFeature(kAndroidMediaPicker); -+ // feature_overrides.EnableFeature(features::kUserMediaScreenCapturing); - +@@ -149,16 +149,16 @@ void ChromeBrowserFieldTrials::RegisterFeatureOverrides( // Enable desktop tab management features. // TODO(crbug.com/422902625): Remove when rollout is complete to all form -@@ -163,10 +163,10 @@ void ChromeBrowserFieldTrials::RegisterFeatureOverrides( - feature_overrides.EnableFeature(chrome::android::kProtectedTabsAndroid); - feature_overrides.EnableFeature(features::kSubframeImportance); + // factors. +- feature_overrides.EnableFeature(chrome::android::kProcessRankPolicyAndroid); +- feature_overrides.EnableFeature(chrome::android::kProtectedTabsAndroid); +- feature_overrides.EnableFeature(features::kSubframeImportance); ++ // feature_overrides.EnableFeature(chrome::android::kProcessRankPolicyAndroid); have dangling ptr issue on shutdown ++ // feature_overrides.EnableFeature(chrome::android::kProtectedTabsAndroid); ++ // feature_overrides.EnableFeature(features::kSubframeImportance); + // TODO(crbug.com/465596248): Remove when experiment is complete. +- feature_overrides.EnableFeature(chrome::android::kProtectRecentlyVisibleTab); ++ // feature_overrides.EnableFeature(chrome::android::kProtectRecentlyVisibleTab); // TODO(crbug.com/422903297): Remove when tablet rollout is complete. - feature_overrides.EnableFeature(features::kRendererProcessLimitOnAndroid); + // feature_overrides.EnableFeature(features::kRendererProcessLimitOnAndroid); @@ -891,7 +846,7 @@ diff --git a/chrome/browser/chrome_browser_field_trials.cc b/chrome/browser/chro // TODO(b/432367402): Use a new Android API to replace this hack with a proper // solution. feature_overrides.EnableFeature(features::kAndroidCaptureKeyEvents); -@@ -175,12 +175,12 @@ void ChromeBrowserFieldTrials::RegisterFeatureOverrides( +@@ -167,12 +167,12 @@ void ChromeBrowserFieldTrials::RegisterFeatureOverrides( feature_overrides.EnableFeature(features::kAndroidDevToolsFrontend); // TODO(crbug.com/430304112): Remove when rollout is complete to all form // factors. @@ -908,7 +863,7 @@ diff --git a/chrome/browser/chrome_browser_field_trials.cc b/chrome/browser/chro // TODO(crbug.com/445446479): Remove when rollout is complete to all form // factors. feature_overrides.EnableFeature( -@@ -188,13 +188,13 @@ void ChromeBrowserFieldTrials::RegisterFeatureOverrides( +@@ -180,13 +180,13 @@ void ChromeBrowserFieldTrials::RegisterFeatureOverrides( // Bypass the WebAudio output buffer, to reduce audio latency. // TODO(crbug.com/436988695): Remove when the long term solution is // implemented. @@ -927,7 +882,7 @@ diff --git a/chrome/browser/chrome_browser_field_trials.cc b/chrome/browser/chro // Enables automatic picture-in-picture. // TODO(crbug.com/421608904): Remove when rollout is complete to all form // factors. -@@ -205,58 +205,58 @@ void ChromeBrowserFieldTrials::RegisterFeatureOverrides( +@@ -197,48 +197,48 @@ void ChromeBrowserFieldTrials::RegisterFeatureOverrides( feature_overrides.EnableFeature(media::kContextMenuPictureInPictureAndroid); // Disables the enhanced pip transition and uses the default animation. // TODO(crbug.com/440384447): Remove when enhanced pip transition is fixed. @@ -935,23 +890,12 @@ diff --git a/chrome/browser/chrome_browser_field_trials.cc b/chrome/browser/chro + // feature_overrides.DisableFeature(media::kAllowEnhancedPipTransition); // Enable by default for desktop platforms, pending a phone / foldable / // tablet rollout using the same flag. - // TODO(crbug.com/413776899): Remove when rollout on other form factors is - // complete. -- feature_overrides.EnableFeature(chrome::android::kInstanceSwitcherV2); -+ // feature_overrides.EnableFeature(chrome::android::kInstanceSwitcherV2); // TODO(crbug.com/442327273): Remove when rollout is complete to all form // factors. - feature_overrides.EnableFeature( - autofill::features::kAutofillAndroidDesktopKeyboardAccessoryRevamp); + // feature_overrides.EnableFeature( + // autofill::features::kAutofillAndroidDesktopKeyboardAccessoryRevamp); - // TODO(crbug.com/444486763): Remove when rollout is complete to all form - // factors. -- feature_overrides.EnableFeature(chrome::android::kAndroidTabHighlighting); -+ // feature_overrides.EnableFeature(chrome::android::kAndroidTabHighlighting); - // TODO(b/441672693): Remove when the feature is stable on other form factors. -- feature_overrides.EnableFeature(features::kAndroidAudioDeviceListener); -+ // feature_overrides.EnableFeature(features::kAndroidAudioDeviceListener); // Enable by default for desktop platforms, pending a tablet rollout using the // same flag. // TODO(crbug.com/445475304): Remove when tablet rollout is complete. @@ -965,17 +909,6 @@ diff --git a/chrome/browser/chrome_browser_field_trials.cc b/chrome/browser/chro + // feature_overrides.EnableFeature( + // chrome::android::kAndroidPinnedTabsTabletTabStrip); - // Three flags are required for the bookmarks bar feature. - // TODO(crbug.com/430059235): Remove once feature is launched to 100% on all -- // form factors. -- feature_overrides.EnableFeature(chrome::android::kAndroidBookmarkBar); -- feature_overrides.EnableFeature(chrome::android::kAndroidAppearanceSettings); -- feature_overrides.EnableFeature(chrome::android::kTopControlsRefactor); -+ // // form factors. -+ // feature_overrides.EnableFeature(chrome::android::kAndroidBookmarkBar); -+ // feature_overrides.EnableFeature(chrome::android::kAndroidAppearanceSettings); -+ // feature_overrides.EnableFeature(chrome::android::kTopControlsRefactor); - // Enable ANGLE/Vulkan features. // TODO (crbug.com//376280554): Enable these features with runtime checks // instead. @@ -1009,7 +942,13 @@ diff --git a/chrome/browser/chrome_browser_field_trials.cc b/chrome/browser/chro // Enable the ability for extensions to override chrome pages. // TODO(crbug.com/404069963): Remove flag when the feature is verified to be -@@ -275,7 +275,7 @@ void ChromeBrowserFieldTrials::RegisterFeatureOverrides( + // stable on desktop Android. +- feature_overrides.EnableFeature(chrome::android::kChromeNativeUrlOverriding); ++ // feature_overrides.EnableFeature(chrome::android::kChromeNativeUrlOverriding); + + // Enable desktop full screen to a screen feature flag by default for desktop + // platforms. +@@ -250,7 +250,7 @@ void ChromeBrowserFieldTrials::RegisterFeatureOverrides( // Enables the ability to specify a platform-specific zoom scaling that will // apply transparently to all pages. // TODO(crbug.com/450281745): Remove once feature is enabled by default. @@ -1042,7 +981,7 @@ diff --git a/chrome/browser/chrome_browser_interface_binders_webui.cc b/chrome/b 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 -@@ -4270,7 +4270,7 @@ base::OnceClosure ChromeContentBrowserClient::SelectClientCertificate( +@@ -4263,7 +4263,7 @@ base::OnceClosure ChromeContentBrowserClient::SelectClientCertificate( // TODO(wenz): This should instead proceed with the selected certificate // when there are matching certificates in the OS. #if BUILDFLAG(ENABLE_EXTENSIONS) && \ @@ -1051,7 +990,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch if (matching_certificates.empty() && nonmatching_certificates.empty()) { extensions::ProcessMap* process_map = extensions::ProcessMap::Get(profile); -@@ -4499,7 +4499,7 @@ void ChromeContentBrowserClient::OverrideWebPreferences( +@@ -4492,7 +4492,7 @@ void ChromeContentBrowserClient::OverrideWebPreferences( // Fill font preferences. These are not registered on Android unless we're built // with extensions (the chrome.fontSettings API can change these). // - http://crbug.com/308033, http://crbug.com/696364. @@ -1063,7 +1002,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch diff --git a/chrome/browser/devtools/BUILD.gn b/chrome/browser/devtools/BUILD.gn --- a/chrome/browser/devtools/BUILD.gn +++ b/chrome/browser/devtools/BUILD.gn -@@ -345,7 +345,7 @@ static_library("devtools") { +@@ -347,7 +347,7 @@ static_library("devtools") { } } @@ -1075,7 +1014,7 @@ diff --git a/chrome/browser/devtools/BUILD.gn b/chrome/browser/devtools/BUILD.gn diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrome/browser/download/chrome_download_manager_delegate.cc --- a/chrome/browser/download/chrome_download_manager_delegate.cc +++ b/chrome/browser/download/chrome_download_manager_delegate.cc -@@ -742,7 +742,7 @@ bool ChromeDownloadManagerDelegate::DetermineDownloadTarget( +@@ -743,7 +743,7 @@ bool ChromeDownloadManagerDelegate::DetermineDownloadTarget( DownloadPathReservationTracker::FilenameConflictAction action = kDefaultPlatformConflictAction; #if BUILDFLAG(IS_ANDROID) @@ -1096,7 +1035,7 @@ diff --git a/chrome/browser/download/download_offline_content_provider.cc b/chro #include "chrome/browser/download/download_core_service.h" #include "chrome/browser/download/download_core_service_factory.h" #endif -@@ -490,7 +490,7 @@ void DownloadOfflineContentProvider::OnDownloadUpdated(DownloadItem* item) { +@@ -489,7 +489,7 @@ void DownloadOfflineContentProvider::OnDownloadUpdated(DownloadItem* item) { return; } @@ -1108,7 +1047,7 @@ diff --git a/chrome/browser/download/download_offline_content_provider.cc b/chro 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 -@@ -1735,7 +1735,7 @@ source_set("chrome_extensions_browser_client") { +@@ -1727,7 +1727,7 @@ source_set("chrome_extensions_browser_client") { "//extensions/browser/updater:keepalive", ] @@ -1117,7 +1056,7 @@ diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUIL sources += [ "chrome_extensions_browser_client_android.cc" ] deps += [ -@@ -1750,6 +1750,16 @@ source_set("chrome_extensions_browser_client") { +@@ -1742,6 +1742,16 @@ source_set("chrome_extensions_browser_client") { "//extensions/browser", "//extensions/browser/kiosk", ] @@ -1146,10 +1085,61 @@ diff --git a/chrome/browser/extensions/api/chrome_extensions_api_client_android. namespace extensions { +diff --git a/chrome/browser/extensions/api/identity/web_auth_flow.cc b/chrome/browser/extensions/api/identity/web_auth_flow.cc +--- a/chrome/browser/extensions/api/identity/web_auth_flow.cc ++++ b/chrome/browser/extensions/api/identity/web_auth_flow.cc +@@ -38,7 +38,7 @@ + #include "chrome/browser/ui/browser.h" + #include "chrome/browser/ui/browser_window.h" + #else +-static_assert(BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)); ++static_assert(BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_CROMITE)); + #include "base/functional/callback_forward.h" + #include "chrome/browser/android/tab_android.h" + #include "chrome/browser/ui/android/tab_model/tab_model.h" +@@ -166,7 +166,7 @@ void WebAuthFlow::CloseInfoBar() { + } + } + +-#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS) ++#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_CROMITE) + void WebAuthFlow::OnBrowserWindowInterfaceInitialized( + BrowserWindowInterface* browser) { + TabModel* tab_model = +@@ -202,7 +202,7 @@ bool WebAuthFlow::DisplayAuthPageInPopupWindow() { + + browser->window()->Show(); + #else +- static_assert(BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)); ++ static_assert(BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_CROMITE)); + BrowserWindowCreateParams params(BrowserWindowInterface::TYPE_POPUP, + *profile_, user_gesture_); + if (popup_bounds_.has_value()) { +diff --git a/chrome/browser/extensions/api/identity/web_auth_flow.h b/chrome/browser/extensions/api/identity/web_auth_flow.h +--- a/chrome/browser/extensions/api/identity/web_auth_flow.h ++++ b/chrome/browser/extensions/api/identity/web_auth_flow.h +@@ -149,7 +149,7 @@ class WebAuthFlow : public content::WebContentsObserver, + void MaybeStartTimeout(); + void OnTimeout(); + +-#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS) ++#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_CROMITE) + void OnBrowserWindowInterfaceInitialized(BrowserWindowInterface* browser); + #endif + +@@ -195,7 +195,7 @@ class WebAuthFlow : public content::WebContentsObserver, + // the error code when the flow times out. + bool initial_url_loaded_ = false; + base::ScopedObservation profile_observation_{this}; +-#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS) ++#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_CROMITE) + base::WeakPtrFactory weak_factory_{this}; + #endif + }; 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 -@@ -178,8 +178,12 @@ ManagedInstallationMode ExtensionManagement::GetInstallationMode( +@@ -176,8 +176,12 @@ ManagedInstallationMode ExtensionManagement::GetInstallationMode( update_url ? *update_url : std::string()); } @@ -1163,7 +1153,7 @@ diff --git a/chrome/browser/extensions/extension_management.cc b/chrome/browser/ // If Finch has enabled extensions for corp, allow them. if (base::FeatureList::IsEnabled( extensions_features::kEnableExtensionsForCorpDesktopAndroid)) { -@@ -202,7 +206,7 @@ bool ExtensionManagement::ExtensionsEnabledForDesktopAndroid() const { +@@ -200,7 +204,7 @@ bool ExtensionManagement::ExtensionsEnabledForDesktopAndroid() const { ManagedInstallationMode ExtensionManagement::GetInstallationMode( const ExtensionId& extension_id, const std::string& update_url) { @@ -1175,9 +1165,9 @@ diff --git a/chrome/browser/extensions/extension_management.cc b/chrome/browser/ diff --git a/chrome/browser/extensions/extension_management.h b/chrome/browser/extensions/extension_management.h --- a/chrome/browser/extensions/extension_management.h +++ b/chrome/browser/extensions/extension_management.h -@@ -107,7 +107,7 @@ class ExtensionManagement : public KeyedService, - // from the command line, or when loaded as an unpacked extension). - bool BlocklistedByDefault() const; +@@ -103,7 +103,7 @@ class ExtensionManagement : public KeyedService, + const std::vector>& GetProviders() + const; -#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS) +#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_CROMITE) @@ -1278,7 +1268,7 @@ diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browse BASE_FEATURE(kMediaRouter, base::FEATURE_ENABLED_BY_DEFAULT); BASE_FEATURE(kCastAllowAllIPsFeature, "CastAllowAllIPs", -@@ -87,7 +87,7 @@ base::flat_map& GetStoredPrefValues() { +@@ -82,7 +82,7 @@ base::flat_map& GetStoredPrefValues() { return *stored_pref_values; } @@ -1287,7 +1277,7 @@ diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browse // TODO(mfoltz): Add full implementation for validating playout delay value. bool IsValidMirroringPlayoutDelayMs(int delay_ms) { return delay_ms <= 1000 && delay_ms >= 1; -@@ -102,7 +102,7 @@ void ClearMediaRouterStoredPrefsForTesting() { +@@ -97,7 +97,7 @@ void ClearMediaRouterStoredPrefsForTesting() { bool MediaRouterEnabled(content::BrowserContext* context) { if ((true)) return false; @@ -1296,7 +1286,7 @@ diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browse if (!base::FeatureList::IsEnabled(kMediaRouter)) { return false; } -@@ -137,7 +137,7 @@ bool MediaRouterEnabled(content::BrowserContext* context) { +@@ -132,7 +132,7 @@ bool MediaRouterEnabled(content::BrowserContext* context) { return true; } @@ -1329,7 +1319,7 @@ diff --git a/chrome/browser/media/webrtc/webrtc_event_log_manager.cc b/chrome/br bool enabled = false; #else bool enabled = true; -@@ -463,7 +463,7 @@ WebRtcEventLogManager::CreateRemoteLogFileWriterFactory() { +@@ -465,7 +465,7 @@ WebRtcEventLogManager::CreateRemoteLogFileWriterFactory() { if (remote_log_file_writer_factory_for_testing_) { return std::move(remote_log_file_writer_factory_for_testing_); } else { @@ -1353,7 +1343,7 @@ diff --git a/chrome/browser/policy/policy_value_and_status_aggregator.cc b/chrom 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 -@@ -659,7 +659,7 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -649,7 +649,7 @@ void ChromeBrowserMainExtraPartsProfiles:: chromeos_extensions::EnsureBrowserContextKeyedServiceFactoriesBuilt(); #endif extensions::EnsureBrowserContextKeyedServiceFactoriesBuilt(); @@ -1398,7 +1388,7 @@ diff --git a/chrome/browser/profiles/off_the_record_profile_impl.cc b/chrome/bro diff --git a/chrome/browser/profiles/profile_destroyer.cc b/chrome/browser/profiles/profile_destroyer.cc --- a/chrome/browser/profiles/profile_destroyer.cc +++ b/chrome/browser/profiles/profile_destroyer.cc -@@ -28,7 +28,7 @@ namespace { +@@ -29,7 +29,7 @@ namespace { #if BUILDFLAG(IS_ANDROID) // Set the render host waiting time to 5s on Android, that's the same // as an "Application Not Responding" timeout. @@ -1410,7 +1400,7 @@ diff --git a/chrome/browser/profiles/profile_destroyer.cc b/chrome/browser/profi diff --git a/chrome/browser/resources/BUILD.gn b/chrome/browser/resources/BUILD.gn --- a/chrome/browser/resources/BUILD.gn +++ b/chrome/browser/resources/BUILD.gn -@@ -126,7 +126,7 @@ group("resources") { +@@ -127,7 +127,7 @@ group("resources") { ] } @@ -1543,7 +1533,7 @@ diff --git a/chrome/browser/startup_data.cc b/chrome/browser/startup_data.cc #include "chrome/browser/extensions/chrome_extensions_browser_client.h" #include "extensions/browser/extensions_browser_client.h" #endif -@@ -163,7 +163,7 @@ StartupData::TakeProtoDatabaseProvider() { +@@ -167,7 +167,7 @@ StartupData::TakeProtoDatabaseProvider() { void StartupData::PreProfilePrefServiceInit() { pref_registry_ = base::MakeRefCounted(); @@ -1552,7 +1542,7 @@ diff --git a/chrome/browser/startup_data.cc b/chrome/browser/startup_data.cc // On desktop Android the ExtensionsBrowserClient is created here because it // must be initialized before BrowserContextKeyedServiceFactories are built. // Some factories use ExtensionsBrowserClient::Get() in their DependsOn(). -@@ -243,7 +243,7 @@ void StartupData::CreateServicesInternal() { +@@ -248,7 +248,7 @@ void StartupData::CreateServicesInternal() { } #endif @@ -1606,25 +1596,16 @@ diff --git a/chrome/browser/task_manager/common/task_manager_features.cc b/chrom 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 -@@ -672,7 +672,7 @@ static_library("ui") { - "//v8:v8_version", - ] +@@ -681,7 +681,7 @@ static_library("ui") { + } -- if (!is_android || is_desktop_android) { -+ if (!is_android || is_desktop_android_cromite) { - sources += [ - "browser_navigator.h", - "incognito_allowed_url.cc", -@@ -687,7 +687,7 @@ static_library("ui") { - ] - - # Desktop-Android-only dependencies. -- if (is_desktop_android) { -+ if (is_desktop_android_cromite) { - sources += [ "//chrome/browser/ui/android/browser_navigator_android.cc" ] - deps += [ - "//chrome/browser/ui/android/extensions/windowing/internal", -@@ -2912,7 +2912,7 @@ static_library("ui") { + # Desktop-Android-only dependencies. +- if (is_desktop_android) { ++ if (is_desktop_android_cromite) { + deps += [ "//chrome/browser/ui/android/extensions/windowing/internal" ] + } + if (is_android) { +@@ -2922,7 +2922,7 @@ static_library("ui") { allow_circular_includes_from += [ "//chrome/browser/ui/wallet" ] } @@ -1645,7 +1626,7 @@ diff --git a/chrome/browser/ui/android/context_menu_helper.cc b/chrome/browser/u #include "chrome/browser/extensions/extension_menu_model_android.h" #include "ui/menus/simple_menu_model.h" #endif // BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS) -@@ -45,7 +45,7 @@ ContextMenuHelper::ContextMenuHelper(content::WebContents* web_contents) +@@ -44,7 +44,7 @@ ContextMenuHelper::ContextMenuHelper(content::WebContents* web_contents) } ContextMenuHelper::~ContextMenuHelper() { @@ -1654,7 +1635,7 @@ diff --git a/chrome/browser/ui/android/context_menu_helper.cc b/chrome/browser/u extension_menu_model_.reset(); #endif // BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS) JNIEnv* env = base::android::AttachCurrentThread(); -@@ -59,7 +59,7 @@ void ContextMenuHelper::ShowContextMenu( +@@ -58,7 +58,7 @@ void ContextMenuHelper::ShowContextMenu( context_menu_params_ = params; gfx::NativeView view = GetWebContents().GetNativeView(); @@ -1663,7 +1644,7 @@ diff --git a/chrome/browser/ui/android/context_menu_helper.cc b/chrome/browser/u // Reset any previous menu model, in case a new menu is shown // before the old one was gracefully closed. extension_menu_model_.reset(); -@@ -82,11 +82,17 @@ void ContextMenuHelper::ShowContextMenu( +@@ -81,11 +81,17 @@ void ContextMenuHelper::ShowContextMenu( } void ContextMenuHelper::DismissContextMenu() { @@ -1726,7 +1707,7 @@ diff --git a/chrome/browser/ui/android/desktop_site/java/src/org/chromium/chrome diff --git a/chrome/browser/ui/android/extensions/BUILD.gn b/chrome/browser/ui/android/extensions/BUILD.gn --- a/chrome/browser/ui/android/extensions/BUILD.gn +++ b/chrome/browser/ui/android/extensions/BUILD.gn -@@ -78,8 +78,8 @@ if (enable_extensions_core) { +@@ -82,8 +82,8 @@ if (enable_extensions_core) { # BuildConfig. java_cpp_template("generate_buildflags") { sources = [ "java/templates/ExtensionsBuildflags.template" ] @@ -1748,14 +1729,14 @@ diff --git a/chrome/browser/ui/android/extensions/extension_actions_bridge.cc b/ +#include "base/task/thread_pool.h" #include "chrome/browser/extensions/extension_action_runner.h" #include "chrome/browser/profiles/profile.h" - #include "chrome/browser/ui/android/extensions/extension_actions_bridge_factory.h" + #include "chrome/browser/ui/browser_window/public/browser_window_interface.h" #include "chrome/browser/ui/extensions/icon_with_badge_image_source.h" #include "content/public/browser/web_contents.h" +#include "extensions/common/constants.h" #include "extensions/browser/extension_action.h" #include "extensions/browser/extension_action_manager.h" #include "extensions/browser/extension_registry.h" -@@ -203,6 +206,26 @@ ExtensionAction::ShowAction ExtensionActionsBridge::RunAction( +@@ -198,6 +201,26 @@ ExtensionAction::ShowAction ExtensionActionsBridge::RunAction( return runner->RunAction(extension, /*grant_tab_permissions=*/true); } @@ -1785,7 +1766,7 @@ diff --git a/chrome/browser/ui/android/extensions/extension_actions_bridge.cc b/ diff --git a/chrome/browser/ui/android/extensions/extension_actions_bridge.h b/chrome/browser/ui/android/extensions/extension_actions_bridge.h --- a/chrome/browser/ui/android/extensions/extension_actions_bridge.h +++ b/chrome/browser/ui/android/extensions/extension_actions_bridge.h -@@ -53,6 +53,7 @@ class ExtensionActionsBridge : public ToolbarActionsModel::Observer, +@@ -52,6 +52,7 @@ class ExtensionActionsBridge : public ToolbarActionsModel::Observer { const ToolbarActionsModel::ActionId& action_id, int tab_id, content::WebContents* web_contents); @@ -1842,7 +1823,7 @@ diff --git a/chrome/browser/ui/android/extensions/java/res/values/dimens.xml b/c diff --git a/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/browser/ui/extensions/ExtensionActionsBridge.java b/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/browser/ui/extensions/ExtensionActionsBridge.java --- a/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/browser/ui/extensions/ExtensionActionsBridge.java +++ b/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/browser/ui/extensions/ExtensionActionsBridge.java -@@ -240,6 +240,10 @@ public class ExtensionActionsBridge { +@@ -241,6 +241,10 @@ public class ExtensionActionsBridge implements Destroyable { void onActionIconUpdated(String actionId); } @@ -1853,7 +1834,7 @@ diff --git a/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/b @NativeMethods public interface Natives { boolean extensionsEnabled(@JniType("Profile*") Profile profile); -@@ -272,6 +276,8 @@ public class ExtensionActionsBridge { +@@ -275,6 +279,8 @@ public class ExtensionActionsBridge implements Destroyable { int tabId, @JniType("content::WebContents*") WebContents webContents); @@ -1908,52 +1889,22 @@ new file mode 100644 + Enable experimental support for extensions in Android + + -diff --git a/chrome/browser/ui/android/tab_model/BUILD.gn b/chrome/browser/ui/android/tab_model/BUILD.gn ---- a/chrome/browser/ui/android/tab_model/BUILD.gn -+++ b/chrome/browser/ui/android/tab_model/BUILD.gn -@@ -67,7 +67,7 @@ source_set("impl") { - "//ui/base:types", - ] - -- if (is_desktop_android) { -+ if (is_desktop_android_cromite) { - deps += [ - "//chrome/browser/ui/browser_window", - "//chrome/browser/ui/browser_window/internal", -@@ -97,7 +97,7 @@ source_set("test_support") { - "//chrome/browser/ui/android/tab_model", - ] - -- if (is_desktop_android) { -+ if (is_desktop_android_cromite) { - deps += [ "//chrome/browser/ui/browser_window" ] - } - } diff --git a/chrome/browser/ui/android/tab_model/tab_model.cc b/chrome/browser/ui/android/tab_model/tab_model.cc --- a/chrome/browser/ui/android/tab_model/tab_model.cc +++ b/chrome/browser/ui/android/tab_model/tab_model.cc -@@ -20,7 +20,7 @@ - #include "components/sync_sessions/session_sync_service.h" - #include "ui/base/unowned_user_data/scoped_unowned_user_data.h" - --#if BUILDFLAG(IS_DESKTOP_ANDROID) -+#if BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE) - #include "chrome/browser/ui/browser_window/public/browser_window_interface.h" // nogncheck - #endif - -@@ -53,7 +53,7 @@ sync_sessions::OpenTabsUIDelegate* GetOpenTabsUIDelegate(Profile* profile) { +@@ -46,7 +46,7 @@ sync_sessions::OpenTabsUIDelegate* GetOpenTabsUIDelegate(Profile* profile) { // TODO(http://crbug.com/444518651): remove the if-def when - // |BrowserWindowInterface| is compiled into all Android builds. + // |BrowserWindowInterface| is compiled and running on all Android builds. SessionID GetInitialSessionId() { -#if BUILDFLAG(IS_DESKTOP_ANDROID) +#if BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE) return SessionID::InvalidValue(); #else return SessionID::NewUnique(); -@@ -162,7 +162,7 @@ void TabModel::RecordActualSyncedTabsHistogram() { +@@ -155,7 +155,7 @@ void TabModel::RecordActualSyncedTabsHistogram() { // TODO(http://crbug.com/444518651): remove the if-def when - // |BrowserWindowInterface| is compiled into all Android builds. + // |BrowserWindowInterface| is compiled and running on all Android builds. -#if BUILDFLAG(IS_DESKTOP_ANDROID) +#if BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE) void TabModel::SetSessionId(SessionID session_id) { @@ -1962,7 +1913,7 @@ diff --git a/chrome/browser/ui/android/tab_model/tab_model.cc b/chrome/browser/u diff --git a/chrome/browser/ui/android/tab_model/tab_model.h b/chrome/browser/ui/android/tab_model/tab_model.h --- a/chrome/browser/ui/android/tab_model/tab_model.h +++ b/chrome/browser/ui/android/tab_model/tab_model.h -@@ -292,7 +292,7 @@ class TabModel : public TabListInterface { +@@ -301,7 +301,7 @@ class TabModel : public TabListInterface { LocationBarModel* GetLocationBarModel(); @@ -1974,7 +1925,7 @@ diff --git a/chrome/browser/ui/android/tab_model/tab_model.h b/chrome/browser/ui diff --git a/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.cc b/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.cc --- a/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.cc +++ b/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.cc -@@ -45,7 +45,7 @@ +@@ -49,7 +49,7 @@ // "chrome/browser/ui/browser_window" is available on desktop Android, but not // other Android builds. @@ -1983,7 +1934,7 @@ diff --git a/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.cc b/chrom #include "chrome/browser/ui/browser_window/internal/android/android_browser_window.h" // nogncheck #include "chrome/browser/ui/browser_window/public/browser_window_interface.h" // nogncheck #include "chrome/browser/ui/browser_window/public/browser_window_interface_iterator.h" // nogncheck -@@ -78,7 +78,7 @@ std::vector GetAllTabsFromHandles( +@@ -86,7 +86,7 @@ std::vector GetAllTabsFromHandles(const Container& handles) { return tabs; } @@ -1992,7 +1943,7 @@ diff --git a/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.cc b/chrom AndroidBrowserWindow* GetAndroidBrowserWindow(SessionID session_id) { for (BrowserWindowInterface* window : GetAllBrowserWindowInterfaces()) { if (window->GetSessionID() == session_id) { -@@ -117,7 +117,7 @@ void TabModelJniBridge::AssociateWithBrowserWindow( +@@ -125,7 +125,7 @@ void TabModelJniBridge::AssociateWithBrowserWindow( long native_android_browser_window) { // BrowserWindowInterface is available on desktop Android, but not other Android // builds. For non-desktop Android, this function should be a no-op. @@ -2001,7 +1952,7 @@ diff --git a/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.cc b/chrom BrowserWindowInterface* android_browser_window = reinterpret_cast(native_android_browser_window); CHECK(android_browser_window != nullptr); -@@ -153,7 +153,7 @@ void TabModelJniBridge::MoveTabToWindowForTesting( +@@ -161,7 +161,7 @@ void TabModelJniBridge::MoveTabToWindowForTesting( TabAndroid* tab, long android_browser_window_ptr, int new_index) { @@ -2010,7 +1961,7 @@ diff --git a/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.cc b/chrom SessionID destination_window_id = reinterpret_cast(android_browser_window_ptr) ->GetSessionID(); -@@ -168,7 +168,7 @@ void TabModelJniBridge::MoveTabGroupToWindowForTesting( +@@ -176,7 +176,7 @@ void TabModelJniBridge::MoveTabGroupToWindowForTesting( const base::Token& group_id, long android_browser_window_ptr, int new_index) { @@ -2019,7 +1970,7 @@ diff --git a/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.cc b/chrom SessionID destination_window_id = reinterpret_cast(android_browser_window_ptr) ->GetSessionID(); -@@ -633,7 +633,7 @@ void TabModelJniBridge::MoveTabGroupToWindow(tab_groups::TabGroupId group_id, +@@ -766,7 +766,7 @@ void TabModelJniBridge::MoveTabGroupToWindow(tab_groups::TabGroupId group_id, ScopedJavaLocalRef TabModelJniBridge::GetActivityForWindow( SessionID window_id) { ScopedJavaLocalRef jactivity; @@ -2031,7 +1982,7 @@ diff --git a/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.cc b/chrom diff --git a/chrome/browser/ui/android/tab_model/tab_model_test_helper.h b/chrome/browser/ui/android/tab_model/tab_model_test_helper.h --- a/chrome/browser/ui/android/tab_model/tab_model_test_helper.h +++ b/chrome/browser/ui/android/tab_model/tab_model_test_helper.h -@@ -105,7 +105,7 @@ class TestTabModel : public TabModel { +@@ -120,7 +120,7 @@ class TestTabModel : public TabModel { // BrowserWindowInterface is available on desktop Android, but not other Android // builds. @@ -2092,7 +2043,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow import android.view.ViewStub; import android.widget.LinearLayout; -@@ -22,6 +23,7 @@ import org.chromium.chrome.browser.tabmodel.TabCreator; +@@ -19,6 +20,7 @@ import org.chromium.chrome.browser.tabmodel.TabCreator; import org.chromium.chrome.browser.theme.ThemeColorProvider; import org.chromium.chrome.browser.ui.browser_window.ChromeAndroidTask; import org.chromium.chrome.browser.ui.extensions.ExtensionActionsBridge; @@ -2100,7 +2051,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.ui.extensions.R; import org.chromium.ui.base.WindowAndroid; -@@ -54,6 +56,11 @@ public class ExtensionToolbarCoordinatorImpl implements ExtensionToolbarCoordina +@@ -45,6 +47,11 @@ public class ExtensionToolbarCoordinatorImpl implements ExtensionToolbarCoordina extensionToolbarStub.setLayoutResource(R.layout.extension_toolbar_container); LinearLayout container = (LinearLayout) extensionToolbarStub.inflate(); @@ -2112,9 +2063,9 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow mExtensionActionListCoordinator = new ExtensionActionListCoordinator( context, -@@ -71,7 +78,8 @@ public class ExtensionToolbarCoordinatorImpl implements ExtensionToolbarCoordina - taskSupplier, - profileSupplier, +@@ -59,7 +66,8 @@ public class ExtensionToolbarCoordinatorImpl implements ExtensionToolbarCoordina + themeColorProvider, + task, currentTabSupplier, - tabCreator); + tabCreator, @@ -2125,7 +2076,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionsMenuCoordinator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionsMenuCoordinator.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionsMenuCoordinator.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionsMenuCoordinator.java -@@ -28,6 +28,7 @@ import org.chromium.chrome.browser.tabmodel.TabCreator; +@@ -24,6 +24,7 @@ import org.chromium.chrome.browser.tabmodel.TabCreator; import org.chromium.chrome.browser.theme.ThemeColorProvider; import org.chromium.chrome.browser.toolbar.MenuBuilderHelper; import org.chromium.chrome.browser.ui.browser_window.ChromeAndroidTask; @@ -2133,17 +2084,17 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.ui.extensions.R; import org.chromium.chrome.browser.ui.theme.BrandedColorScheme; import org.chromium.components.embedder_support.util.UrlConstants; -@@ -86,7 +87,8 @@ public class ExtensionsMenuCoordinator implements Destroyable { - OneshotSupplier taskSupplier, - ObservableSupplier<@Nullable Profile> profileSupplier, - ObservableSupplier<@Nullable Tab> currentTabSupplier, +@@ -76,7 +77,8 @@ public class ExtensionsMenuCoordinator implements Destroyable { + ThemeColorProvider themeColorProvider, + ChromeAndroidTask task, + NullableObservableSupplier currentTabSupplier, - TabCreator tabCreator) { + TabCreator tabCreator, + ExtensionActionListCoordinator extensionActionListCoordinator) { mContext = context; mCurrentTabSupplier = currentTabSupplier; mTabCreator = tabCreator; -@@ -129,6 +131,21 @@ public class ExtensionsMenuCoordinator implements Destroyable { +@@ -117,6 +119,21 @@ public class ExtensionsMenuCoordinator implements Destroyable { } }; @@ -2165,7 +2116,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow mMediator = new ExtensionsMenuMediator( mContext, -@@ -137,35 +154,14 @@ public class ExtensionsMenuCoordinator implements Destroyable { +@@ -124,30 +141,9 @@ public class ExtensionsMenuCoordinator implements Destroyable { mCurrentTabSupplier, mExtensionModels, () -> { @@ -2192,11 +2143,6 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow - mShouldShowMenuOnInit = false; - } }, - (extensionsSupported) -> { - int visibility = extensionsSupported ? View.VISIBLE : View.GONE; - mExtensionsMenuButton.setVisibility(visibility); - mExtensionsMenuTabSwitcherDivider.setVisibility(visibility); - }, - mExtensionsMenuButton.getRootView()); + mExtensionsMenuButton.getRootView(), + extensionActionListCoordinator); @@ -2234,35 +2180,36 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionsMenuMediator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionsMenuMediator.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionsMenuMediator.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionsMenuMediator.java -@@ -19,6 +19,7 @@ import org.chromium.chrome.browser.extensions.ContextMenuSource; - import org.chromium.chrome.browser.profiles.Profile; +@@ -15,6 +15,7 @@ import org.chromium.build.annotations.NullMarked; + import org.chromium.chrome.browser.extensions.ContextMenuSource; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.ui.browser_window.ChromeAndroidTask; +import org.chromium.chrome.browser.toolbar.extensions.ExtensionActionListCoordinator; import org.chromium.chrome.browser.ui.extensions.ExtensionAction; import org.chromium.chrome.browser.ui.extensions.ExtensionActionContextMenuBridge; import org.chromium.chrome.browser.ui.extensions.ExtensionActionsBridge; -@@ -44,6 +45,7 @@ class ExtensionsMenuMediator implements Destroyable { +@@ -37,6 +38,7 @@ class ExtensionsMenuMediator implements Destroyable { + private final Runnable mOnUpdateFinishedRunnable; private final ExtensionActionsUpdateHelper mExtensionActionsUpdateHelper; - private final Callback<@Nullable Profile> mProfileUpdatedCallback = this::onProfileUpdated; private final View mRootView; + private final ExtensionActionListCoordinator mExtensionActionListCoordinator; public ExtensionsMenuMediator( Context context, -@@ -53,8 +55,10 @@ class ExtensionsMenuMediator implements Destroyable { +@@ -44,9 +46,10 @@ class ExtensionsMenuMediator implements Destroyable { + NullableObservableSupplier currentTabSupplier, ModelList extensionModels, Runnable onUpdateFinishedRunnable, - Callback onExtensionsAvailableCallback, - View rootView) { + View rootView, + ExtensionActionListCoordinator extensionActionListCoordinator) { - mTaskSupplier = taskSupplier; + mTask = task; +- + mExtensionActionListCoordinator = extensionActionListCoordinator; - mProfileSupplier = profileSupplier; - mProfileSupplier.addObserver(mProfileUpdatedCallback); - -@@ -164,6 +168,9 @@ class ExtensionsMenuMediator implements Destroyable { + mOnUpdateFinishedRunnable = onUpdateFinishedRunnable; + mContext = context; + mRootView = rootView; +@@ -136,6 +139,9 @@ class ExtensionsMenuMediator implements Destroyable { new PropertyModel.Builder(ExtensionsMenuItemProperties.ALL_KEYS) .with(ExtensionsMenuItemProperties.TITLE, action.getTitle()) .with(ExtensionsMenuItemProperties.ICON, icon) @@ -2272,76 +2219,10 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow .with( ExtensionsMenuItemProperties.CLICK_LISTENER, (view) -> onPrimaryClick((ListMenuButton) view, actionId)) -diff --git a/chrome/browser/ui/browser_navigator_params.cc b/chrome/browser/ui/browser_navigator_params.cc ---- a/chrome/browser/ui/browser_navigator_params.cc -+++ b/chrome/browser/ui/browser_navigator_params.cc -@@ -17,7 +17,7 @@ - #include "chrome/browser/ui/browser.h" - #endif - --#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_DESKTOP_ANDROID) -+#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE) - #include "chrome/browser/ui/browser_window/public/browser_window_interface.h" // nogncheck - #endif - -@@ -30,7 +30,7 @@ NavigateParams::NavigateParams(std::unique_ptr contents_to_insert) - : contents_to_insert(std::move(contents_to_insert)) {} - #endif - --#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_DESKTOP_ANDROID) -+#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE) - NavigateParams::NavigateParams(BrowserWindowInterface* a_browser, - const GURL& a_url, - ui::PageTransition a_transition) -diff --git a/chrome/browser/ui/browser_navigator_params.h b/chrome/browser/ui/browser_navigator_params.h ---- a/chrome/browser/ui/browser_navigator_params.h -+++ b/chrome/browser/ui/browser_navigator_params.h -@@ -76,7 +76,7 @@ struct NavigateParams { - std::unique_ptr contents_to_insert); - #endif - --#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_DESKTOP_ANDROID) -+#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE) - NavigateParams(BrowserWindowInterface* a_browser, - const GURL& a_url, - ui::PageTransition a_transition); -@@ -263,7 +263,7 @@ struct NavigateParams { - }; - PathBehavior path_behavior = RESPECT; - --#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_DESKTOP_ANDROID) -+#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE) - // [in] Specifies a BrowserWindowInterface object where the navigation - // could occur or the tab could be added. Navigate() is not obliged to - // use this BrowserWindowInterface if it is not compatible with the -diff --git a/chrome/browser/ui/browser_window/BUILD.gn b/chrome/browser/ui/browser_window/BUILD.gn ---- a/chrome/browser/ui/browser_window/BUILD.gn -+++ b/chrome/browser/ui/browser_window/BUILD.gn -@@ -4,7 +4,7 @@ - - import("//chrome/common/features.gni") - --assert(is_win || is_mac || is_linux || is_chromeos || is_desktop_android) -+assert(is_win || is_mac || is_linux || is_chromeos || is_desktop_android_cromite) - - # This is the public interface for a browser window. Most features in - # //chrome/browser depend on this interface, and thus to prevent circular -diff --git a/chrome/browser/ui/browser_window/internal/BUILD.gn b/chrome/browser/ui/browser_window/internal/BUILD.gn ---- a/chrome/browser/ui/browser_window/internal/BUILD.gn -+++ b/chrome/browser/ui/browser_window/internal/BUILD.gn -@@ -4,7 +4,7 @@ - - import("//chrome/common/features.gni") - --assert(is_win || is_mac || is_linux || is_chromeos || is_desktop_android) -+assert(is_win || is_mac || is_linux || is_chromeos || is_desktop_android_cromite) - - source_set("internal") { - sources = [ "create_browser_window.cc" ] diff --git a/chrome/browser/ui/prefs/BUILD.gn b/chrome/browser/ui/prefs/BUILD.gn --- a/chrome/browser/ui/prefs/BUILD.gn +++ b/chrome/browser/ui/prefs/BUILD.gn -@@ -67,7 +67,7 @@ source_set("impl") { +@@ -65,7 +65,7 @@ source_set("impl") { } } @@ -2350,7 +2231,7 @@ diff --git a/chrome/browser/ui/prefs/BUILD.gn b/chrome/browser/ui/prefs/BUILD.gn source_set("browser_tests") { testonly = true defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ] -@@ -85,7 +85,7 @@ if (!is_android || enable_desktop_android_extensions) { +@@ -83,7 +83,7 @@ if (!is_android || enable_desktop_android_extensions) { "//third_party/blink/public/common:headers", ] @@ -2398,43 +2279,10 @@ diff --git a/chrome/browser/ui/prefs/prefs_tab_helper.cc b/chrome/browser/ui/pre RegisterFontFamilyPrefs(registry, fonts_with_defaults); registry->RegisterIntegerPref(prefs::kWebKitDefaultFontSize, 16); -diff --git a/chrome/browser/ui/tabs/tab_list_interface.h b/chrome/browser/ui/tabs/tab_list_interface.h ---- a/chrome/browser/ui/tabs/tab_list_interface.h -+++ b/chrome/browser/ui/tabs/tab_list_interface.h -@@ -18,7 +18,7 @@ - - // BrowserWindowInterface is available on desktop Android, but not other Android - // builds. --#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_DESKTOP_ANDROID) -+#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE) - class BrowserWindowInterface; - #endif - -@@ -35,7 +35,7 @@ class TabListInterface { - TabListInterface(const TabListInterface& other) = delete; - void operator=(const TabListInterface& other) = delete; - --#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_DESKTOP_ANDROID) -+#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE) - // Returns the TabListInterface associated with the given `browser`. - static TabListInterface* From(BrowserWindowInterface* browser); - #endif -diff --git a/chrome/browser/ui/webid/BUILD.gn b/chrome/browser/ui/webid/BUILD.gn ---- a/chrome/browser/ui/webid/BUILD.gn -+++ b/chrome/browser/ui/webid/BUILD.gn -@@ -37,7 +37,7 @@ source_set("webid") { - "//ui/base", - ] - -- if (!is_android || is_desktop_android) { -+ if (!is_android || is_desktop_android_cromite) { - deps += [ "//chrome/browser/ui/browser_window" ] - } - } 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 -@@ -181,7 +181,7 @@ +@@ -182,7 +182,7 @@ // BUILDFLAG(IS_ANDROID) #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ @@ -2443,7 +2291,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/u #include "chrome/browser/ui/webui/discards/discards_ui.h" #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_DESKTOP_ANDROID) -@@ -414,7 +414,7 @@ void RegisterChromeWebUIConfigs() { +@@ -415,7 +415,7 @@ void RegisterChromeWebUIConfigs() { // BUILDFLAG(IS_ANDROID) #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ @@ -2506,7 +2354,7 @@ diff --git a/chrome/browser/ui/webui/discards/discards_ui.cc b/chrome/browser/ui diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni --- a/chrome/chrome_paks.gni +++ b/chrome/chrome_paks.gni -@@ -513,7 +513,7 @@ template("chrome_extra_paks") { +@@ -512,7 +512,7 @@ template("chrome_extra_paks") { deps += [ "//chrome/browser/resources/app_settings:resources" ] } @@ -2542,7 +2390,7 @@ diff --git a/chrome/common/chrome_switches.h b/chrome/common/chrome_switches.h diff --git a/chrome/common/extensions/api/api_sources.gni b/chrome/common/extensions/api/api_sources.gni --- a/chrome/common/extensions/api/api_sources.gni +++ b/chrome/common/extensions/api/api_sources.gni -@@ -66,6 +66,13 @@ uncompiled_sources_ = [ +@@ -68,6 +68,13 @@ uncompiled_sources_ = [ "top_sites.json", ] @@ -2553,7 +2401,7 @@ diff --git a/chrome/common/extensions/api/api_sources.gni b/chrome/common/extens + ] +} + - # Some APIs (e.g. cookies) rely on types and headers from other APIs. + # Some APIs rely on types and headers from other APIs. types_only_schema_sources_ = [] diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_constants.cc @@ -2571,7 +2419,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 -@@ -566,7 +566,7 @@ inline constexpr char kChromeUIOsUrlAppURL[] = "chrome://internal/"; +@@ -562,7 +562,7 @@ inline constexpr char kChromeUIOsUrlAppURL[] = "chrome://internal/"; #endif // BUILDFLAG(IS_CHROMEOS) #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ @@ -2614,7 +2462,7 @@ diff --git a/chrome/renderer/sandbox_status_extension_android.h b/chrome/rendere diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn -@@ -364,7 +364,7 @@ static_library("test_support") { +@@ -366,7 +366,7 @@ static_library("test_support") { ] } @@ -2623,7 +2471,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn public_deps += [ "//extensions/browser:test_support", "//extensions/common:test_support", -@@ -477,7 +477,7 @@ static_library("test_support") { +@@ -479,7 +479,7 @@ static_library("test_support") { # TODO(https://crbug.com/356905053): Continue pulling more common test # support pieces into here and eventually merge this with the # `enable_extensions` block above. @@ -2632,7 +2480,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn deps += [ "//chrome/renderer/extensions" ] public_deps += [ -@@ -1535,7 +1535,7 @@ source_set("platform_browser_tests") { +@@ -1555,7 +1555,7 @@ source_set("platform_browser_tests") { sources += [ "../browser/enterprise/remote_commands/user_remote_commands_service_browsertest.cc" ] } @@ -2641,7 +2489,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn deps += [ "//chrome/browser/ui/prefs:browser_tests" ] } -@@ -1788,7 +1788,7 @@ source_set("platform_browser_tests") { +@@ -1827,7 +1827,7 @@ source_set("platform_browser_tests") { "//chrome/browser/ui/browser_window", ] } @@ -2650,16 +2498,16 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn sources += [ "../browser/devtools/global_confirm_info_bar_browsertest.cc" ] } -@@ -2074,7 +2074,7 @@ if (is_android) { - +@@ -2120,7 +2120,7 @@ if (is_android) { extra_args = [] + # TODO(crbug.com/473636857): Include once all Android builds correctly use BrowserWindowInterface. - if (is_desktop_android) { + if (is_desktop_android_cromite) { sources += [ "../browser/ui/android/browser_navigator_android_browsertest.cc" ] - deps += [ -@@ -2175,7 +2175,7 @@ if (is_android) { + deps += +@@ -2214,7 +2214,7 @@ if (is_android) { ] } @@ -2668,15 +2516,10 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn sources += [ # These API tests can't be part of platform_browser_tests because they # run in interactive_ui_tests on Win/Mac/Linux. -@@ -8060,11 +8060,11 @@ test("unit_tests") { +@@ -8111,7 +8111,7 @@ test("unit_tests") { deps += [ "//chrome/browser/android/extensions:android" ] } -- if (!is_android || is_desktop_android) { -+ if (!is_android || is_desktop_android_cromite) { - deps += [ "//chrome/browser/ui/browser_window/internal:unit_tests" ] - } - - if (is_desktop_android) { + if (is_desktop_android_cromite) { deps += [ @@ -2693,8 +2536,8 @@ diff --git a/chrome/version.gni b/chrome/version.gni + if (is_desktop_android_false) { _version_dictionary_template += "chrome_desktop_version_code = \"@CHROME_DESKTOP_VERSION_CODE@\" " - _version_dictionary_template += -@@ -383,7 +383,7 @@ if (is_android) { + _version_dictionary_template += "chrome_desktop_beta_version_code = \"@CHROME_DESKTOP_BETA_VERSION_CODE@\" " +@@ -384,7 +384,7 @@ if (is_android) { } else { true_true_true_true = trichrome_64_32_version_code } @@ -2706,7 +2549,7 @@ diff --git a/chrome/version.gni b/chrome/version.gni 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 -@@ -329,6 +329,12 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, +@@ -328,6 +328,12 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, RecordExceptionMetrics(); } @@ -2731,6 +2574,72 @@ diff --git a/components/embedder_support/android/java/src/org/chromium/component if (MotionEventUtils.isTrackpadEvent(event) && event.getClassification() == MotionEvent.CLASSIFICATION_TWO_FINGER_SWIPE && forwarder != null) { +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 +@@ -321,7 +321,7 @@ std::string GetUnifiedPlatform() { + #if BUILDFLAG(IS_ANDROID) + // The Android XR device by default also has the unified platform of desktop + // form factor. +- if (base::android::device_info::is_desktop() || ++ if (base::android::device_info::is_desktop_false() || + base::android::device_info::is_xr()) { + return kUnifiedPlatformLinuxX64; + } +@@ -580,7 +580,7 @@ bool GetMobileBitForUAMetadata() { + // Android and not a desktop form factor, AND the kUseMobileUserAgent switch + // is present. + #if BUILDFLAG(IS_ANDROID) +- if (base::android::device_info::is_desktop() || ++ if (base::android::device_info::is_desktop_false() || + base::android::device_info::is_xr()) { + return false; + } +@@ -603,7 +603,7 @@ std::string GetPlatformVersion() { + #endif + + #if BUILDFLAG(IS_ANDROID) +- if (base::android::device_info::is_desktop() || ++ if (base::android::device_info::is_desktop_false() || + base::android::device_info::is_xr()) { + return std::string(); + } +@@ -623,7 +623,7 @@ std::string GetPlatformVersion() { + + std::string GetPlatformForUAMetadata() { + #if BUILDFLAG(IS_ANDROID) +- if (base::android::device_info::is_desktop() || ++ if (base::android::device_info::is_desktop_false() || + base::android::device_info::is_xr()) { + return "Linux"; + } +@@ -743,7 +743,7 @@ std::string GetCpuArchitecture() { + // TODO(crbug.com/433345971) The user agent string should contain the actual + // cpu type information obtained from the Android device. Same for the cpu bit + // count in #GetCpuBitness below. +- if (base::android::device_info::is_desktop() || ++ if (base::android::device_info::is_desktop_false() || + base::android::device_info::is_xr()) { + return "x86"; + } +@@ -783,7 +783,7 @@ std::string GetCpuBitness() { + #elif BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FUCHSIA) + return "64"; + #elif BUILDFLAG(IS_ANDROID) +- if (base::android::device_info::is_desktop() || ++ if (base::android::device_info::is_desktop_false() || + base::android::device_info::is_xr()) { + return "64"; + } +@@ -857,7 +857,7 @@ std::string BuildModelInfo() { + if ((true)) return std::string(); + #if BUILDFLAG(IS_ANDROID) + // Model information is not exposed on Android desktop. +- if (base::android::device_info::is_desktop()) { ++ if (base::android::device_info::is_desktop_false()) { + return std::string(); + } + diff --git a/components/media_router/browser/android/media_router_android.cc b/components/media_router/browser/android/media_router_android.cc --- a/components/media_router/browser/android/media_router_android.cc +++ b/components/media_router/browser/android/media_router_android.cc @@ -2888,18 +2797,6 @@ diff --git a/components/policy/core/common/policy_merger.cc b/components/policy/ : policies_to_merge_(std::move(policies_to_merge)){} #else : policies_to_merge_(std::move(policies_to_merge)), -diff --git a/components/variations/service/variations_service_client.cc b/components/variations/service/variations_service_client.cc ---- a/components/variations/service/variations_service_client.cc -+++ b/components/variations/service/variations_service_client.cc -@@ -48,7 +48,7 @@ version_info::Channel VariationsServiceClient::GetChannelForVariations() { - // TODO(crbug.com/389565104): Remove this if block when ready to move desktop - // to stable builds. - if (channel == version_info::Channel::STABLE && -- base::android::device_info::is_desktop()) { -+ base::android::device_info::is_desktop_false()) { - return version_info::Channel::DEV; - } - #endif diff --git a/components/webapps/browser/installable/installable_icon_fetcher.cc b/components/webapps/browser/installable/installable_icon_fetcher.cc --- a/components/webapps/browser/installable/installable_icon_fetcher.cc +++ b/components/webapps/browser/installable/installable_icon_fetcher.cc @@ -2978,7 +2875,7 @@ diff --git a/content/browser/renderer_host/media/video_capture_manager.cc b/cont application_state_has_running_activities_ = true; app_status_listener_ = base::android::ApplicationStatusListener::New(base::BindRepeating( -@@ -951,7 +951,7 @@ VideoCaptureManager::GetOrCreateController( +@@ -953,7 +953,7 @@ VideoCaptureManager::GetOrCreateController( return new_controller; } @@ -2999,7 +2896,7 @@ diff --git a/content/browser/renderer_host/media/video_capture_manager.h b/conte #include "base/android/application_status_listener.h" #endif -@@ -208,7 +208,7 @@ class CONTENT_EXPORT VideoCaptureManager +@@ -211,7 +211,7 @@ class CONTENT_EXPORT VideoCaptureManager void TakePhoto(const base::UnguessableToken& session_id, VideoCaptureDevice::TakePhotoCallback callback); @@ -3008,7 +2905,7 @@ diff --git a/content/browser/renderer_host/media/video_capture_manager.h b/conte // Some devices had troubles when stopped and restarted quickly, so the device // is only stopped when Chrome is sent to background and not when, e.g., a tab // is hidden, see http://crbug.com/582295. -@@ -324,7 +324,7 @@ class CONTENT_EXPORT VideoCaptureManager +@@ -327,7 +327,7 @@ class CONTENT_EXPORT VideoCaptureManager void ReleaseDevices(); void ResumeDevices(); @@ -3049,7 +2946,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/Conten 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 -@@ -622,7 +622,7 @@ BASE_FEATURE(kLoadingPredictorLimitPreconnectSocketCount, +@@ -591,7 +591,7 @@ BASE_FEATURE(kLoadingPredictorLimitPreconnectSocketCount, base::FEATURE_DISABLED_BY_DEFAULT); BASE_FEATURE(kLogJsConsoleMessages, @@ -3124,7 +3021,7 @@ diff --git a/extensions/browser/BUILD.gn b/extensions/browser/BUILD.gn import("//build/config/android/rules.gni") } -@@ -1161,7 +1161,7 @@ source_set("unit_tests") { +@@ -1168,7 +1168,7 @@ source_set("unit_tests") { configs += [ "//build/config/compiler:no_exit_time_destructors" ] } @@ -3277,12 +3174,12 @@ diff --git a/extensions/common/api/schema.gni b/extensions/common/api/schema.gni -if (enable_desktop_android_extensions) { +if (enable_desktop_android_extensions_cromite) { extensions_types_only_schema_files_ += [ - "clipboard.idl", + "clipboard.webidl", "scripts_internal.idl", diff --git a/extensions/common/command.cc b/extensions/common/command.cc --- a/extensions/common/command.cc +++ b/extensions/common/command.cc -@@ -118,7 +118,7 @@ std::string Command::CommandPlatform() { +@@ -119,7 +119,7 @@ std::string Command::CommandPlatform() { return ui::kKeybindingPlatformChromeOs; #elif BUILDFLAG(IS_LINUX) return ui::kKeybindingPlatformLinux; @@ -3303,7 +3200,7 @@ diff --git a/extensions/common/extension_features.cc b/extensions/common/extensi // Disabled by default because on first-run we don't have a Finch seed yet, so // we want to default to the safe behavior of no extensions. BASE_FEATURE(kEnableExtensionsForCorpDesktopAndroid, -@@ -151,7 +151,7 @@ BASE_FEATURE(kDisableExtensionsOnChromeUrlsSwitch, +@@ -148,7 +148,7 @@ BASE_FEATURE(kDisableExtensionsOnChromeUrlsSwitch, // TODO (crbug.com/426554244): Determine if this switch should be // removed for desktop-android builds as well. #if BUILDFLAG(GOOGLE_CHROME_BRANDING) && !BUILDFLAG(IS_CHROMEOS) && \ @@ -3312,7 +3209,7 @@ diff --git a/extensions/common/extension_features.cc b/extensions/common/extensi base::FEATURE_ENABLED_BY_DEFAULT #else base::FEATURE_DISABLED_BY_DEFAULT -@@ -190,4 +190,10 @@ CROMITE_FEATURE(kEnableExtensionAutoupdate, +@@ -193,4 +193,10 @@ CROMITE_FEATURE(kEnableExtensionAutoupdate, CROMITE_FEATURE(kEnableExtensionManagementToChromeStore, "EnableExtensionToChromeStore", base::FEATURE_DISABLED_BY_DEFAULT); @@ -3335,7 +3232,7 @@ diff --git a/extensions/common/extension_features.h b/extensions/common/extensio // If enabled, extensions will be enabled for @google.com and @managedchrome.com // users on desktop Android. Otherwise they will be blocked. BASE_DECLARE_FEATURE(kEnableExtensionsForCorpDesktopAndroid); -@@ -317,6 +317,10 @@ BASE_DECLARE_FEATURE(kEnableExtensionAutoupdate); +@@ -320,6 +320,10 @@ BASE_DECLARE_FEATURE(kEnableExtensionAutoupdate); // Allows the installation of new extensions. // If active, exposes all features to the chrome web store like chromium. BASE_DECLARE_FEATURE(kEnableExtensionManagementToChromeStore); @@ -3349,7 +3246,7 @@ diff --git a/extensions/common/extension_features.h b/extensions/common/extensio diff --git a/extensions/common/extension_l10n_util.cc b/extensions/common/extension_l10n_util.cc --- a/extensions/common/extension_l10n_util.cc +++ b/extensions/common/extension_l10n_util.cc -@@ -471,8 +471,10 @@ bool GetValidLocales(const base::FilePath& locale_path, +@@ -470,8 +470,10 @@ bool GetValidLocales(const base::FilePath& locale_path, } if (valid_locales->empty()) { @@ -3360,7 +3257,7 @@ diff --git a/extensions/common/extension_l10n_util.cc b/extensions/common/extens } return true; -@@ -567,7 +569,11 @@ bool ShouldSkipValidation(const base::FilePath& locales_path, +@@ -566,7 +568,11 @@ bool ShouldSkipValidation(const base::FilePath& locales_path, // '.svn' directories. base::FilePath relative_path; if (!locales_path.AppendRelativePath(locale_path, &relative_path)) { @@ -3400,7 +3297,7 @@ diff --git a/extensions/common/manifest_handlers/default_locale_handler.cc b/ext diff --git a/extensions/renderer/bindings/api_binding_util.cc b/extensions/renderer/bindings/api_binding_util.cc --- a/extensions/renderer/bindings/api_binding_util.cc +++ b/extensions/renderer/bindings/api_binding_util.cc -@@ -134,7 +134,7 @@ std::string GetPlatformString() { +@@ -148,7 +148,7 @@ std::string GetPlatformString() { return "mac"; #elif BUILDFLAG(IS_WIN) return "win"; @@ -3412,7 +3309,7 @@ diff --git a/extensions/renderer/bindings/api_binding_util.cc b/extensions/rende 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 -@@ -587,7 +587,7 @@ bool IsSkiaGraphiteSupportedByDevice(const base::CommandLine* command_line) { +@@ -586,7 +586,7 @@ bool IsSkiaGraphiteSupportedByDevice(const base::CommandLine* command_line) { // Desktop Android isn't ready to pick up the fieldtrial_testing_config.json // change that enables graphite. However, it's the same platform as regular // Android and does. Skip enabling the feature there for now. @@ -3421,7 +3318,7 @@ diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc return false; } -@@ -700,7 +700,7 @@ bool ShouldEnableDrDc() { +@@ -699,7 +699,7 @@ bool ShouldEnableDrDc() { // Chrome on Android desktop aims to be Vulkan-only, which can result // in crashes when enabled together with DrDc. Re-enable DrDc after // crbug.com/380295059 is fixed if it is shown beneficial on desktop. @@ -3459,7 +3356,7 @@ diff --git a/skia/features.gni b/skia/features.gni 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 -@@ -2340,7 +2340,7 @@ BASE_FEATURE(kStopInBackground, +@@ -2336,7 +2336,7 @@ BASE_FEATURE(kStopInBackground, // b/248036988 - Disable this for Chromecast on Android builds to prevent apps // that play audio in the background from stopping. #if BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CAST_ANDROID) && \ @@ -3471,24 +3368,24 @@ diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/fea diff --git a/third_party/blink/renderer/modules/modules_initializer.cc b/third_party/blink/renderer/modules/modules_initializer.cc --- a/third_party/blink/renderer/modules/modules_initializer.cc +++ b/third_party/blink/renderer/modules/modules_initializer.cc -@@ -119,7 +119,7 @@ - +@@ -120,7 +120,7 @@ namespace blink { + namespace { -#if BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_DESKTOP_ANDROID) +#if BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_DESKTOP_ANDROID_FALSE) class SuspendCaptureObserver : public GarbageCollected, - public PageVisibilityObserver { -@@ -365,7 +365,7 @@ void ModulesInitializer::ProvideModulesToPage( + public Supplement, +@@ -374,7 +374,7 @@ void ModulesInitializer::ProvideModulesToPage( const SessionStorageNamespaceId& namespace_id) const { StorageNamespace::ProvideSessionStorageNamespaceTo(page, namespace_id); AudioGraphTracer::ProvideAudioGraphTracerTo(page); -#if BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_DESKTOP_ANDROID) +#if BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_DESKTOP_ANDROID_FALSE) - page.SetSuspendCaptureObserver( - MakeGarbageCollected(page)); + page.ProvideSupplement(MakeGarbageCollected(page)); #endif // BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_DESKTOP_ANDROID) + } diff --git a/tools/grit/grit_args.gni b/tools/grit/grit_args.gni --- a/tools/grit/grit_args.gni +++ b/tools/grit/grit_args.gni @@ -3642,8 +3539,8 @@ diff --git a/ui/webui/resources/BUILD.gn b/ui/webui/resources/BUILD.gn diff --git a/ui/webui/resources/cr_elements/BUILD.gn b/ui/webui/resources/cr_elements/BUILD.gn --- a/ui/webui/resources/cr_elements/BUILD.gn +++ b/ui/webui/resources/cr_elements/BUILD.gn -@@ -36,7 +36,7 @@ build_webui("build") { - "cr_tabs/cr_tabs.css", +@@ -49,7 +49,7 @@ build_webui("build") { + "cr_icon_button/cr_icon_button.css", ] - if ((!is_ios) || is_desktop_android) { diff --git a/build/patches/Experimental-user-scripts-support.patch b/build/patches/Experimental-user-scripts-support.patch index 95532923..61a10b53 100644 --- a/build/patches/Experimental-user-scripts-support.patch +++ b/build/patches/Experimental-user-scripts-support.patch @@ -29,7 +29,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- chrome/android/BUILD.gn | 8 +- .../android/java/res/xml/main_preferences.xml | 5 + - .../browser/download/DownloadUtils.java | 6 + + .../browser/download/DownloadUtils.java | 7 + .../init/ProcessInitializationHandler.java | 4 + chrome/android/java_sources.gni | 3 + chrome/browser/BUILD.gn | 7 + @@ -63,7 +63,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../user_scripts/UserScriptsBridge.java | 212 +++++ .../user_scripts/UserScriptsPreferences.java | 122 +++ .../user_scripts/android/java_sources.gni | 18 + - .../android/user_scripts_bridge.cc | 173 ++++ + .../android/user_scripts_bridge.cc | 174 ++++ .../android/user_scripts_bridge.h | 31 + ...Allow-playing-videos-in-background.user.js | 25 + .../assets/Dont-track-me-Google.user.js | 826 ++++++++++++++++++ @@ -136,7 +136,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../strings/userscripts_strings.grdp | 54 ++ .../Experimental-user-scripts-support.inc | 13 + tools/gritsettings/resource_ids.spec | 6 + - 109 files changed, 10493 insertions(+), 3 deletions(-) + 109 files changed, 10495 insertions(+), 3 deletions(-) create mode 100644 components/user_scripts/README.md create mode 100755 components/user_scripts/android/BUILD.gn create mode 100644 components/user_scripts/android/java/res/layout/accept_script_item.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", -@@ -695,6 +699,7 @@ if (_is_default_toolchain) { +@@ -699,6 +703,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", -@@ -1704,6 +1709,7 @@ if (_is_default_toolchain) { +@@ -1692,6 +1697,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 -@@ -145,6 +145,11 @@ found in the LICENSE file. +@@ -141,6 +141,11 @@ found in the LICENSE file. android:key="useragent_settings" android:order="20" android:title="@string/prefs_useragent_settings"/> @@ -276,26 +276,27 @@ 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/download/DownloadUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java --- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java -@@ -80,6 +80,7 @@ import org.chromium.ui.base.DeviceFormFactor; +@@ -81,6 +81,7 @@ import org.chromium.ui.base.DeviceFormFactor; import org.chromium.ui.base.MimeTypeUtils; import org.chromium.ui.widget.Toast; import org.chromium.url.GURL; +import org.chromium.chrome.browser.user_scripts.UserScriptsUtils; import java.io.File; - -@@ -430,6 +431,11 @@ public class DownloadUtils { - @Nullable String referrer, - @DownloadOpenSource int source, - Context context) { -+ if (UserScriptsUtils.getInstance().openFile(filePath, mimeType, downloadGuid, -+ originalUrl, referrer, -+ getUriForItem(filePath))) { + import java.util.Locale; +@@ -466,6 +467,12 @@ public class DownloadUtils { + * @param req The {@link DownloadOpenRequest} with all open-file parameters. + */ + private static boolean doOpenFile(DownloadOpenRequest req) { ++ if (UserScriptsUtils.getInstance().openFile( ++ req.mFilePath, req.mMimeType, req.mDownloadGuid, ++ req.mOriginalUrl, req.mReferrer, ++ getUriForItem(req.mFilePath))) { + return true; + } - DownloadMetrics.recordDownloadOpen(source, mimeType); DownloadManagerService service = DownloadManagerService.getDownloadManagerService(); + // Check if Chrome should open the file itself. 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 @@ -337,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 -@@ -3720,6 +3720,13 @@ static_library("browser") { +@@ -3690,6 +3690,13 @@ static_library("browser") { ] deps += [ "//chrome/android/modules/dev_ui/provider:native" ] } @@ -354,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 -@@ -194,6 +194,7 @@ +@@ -190,6 +190,7 @@ #include "components/ui_devtools/switches.h" #include "components/variations/variations_switches.h" #include "components/version_info/channel.h" @@ -365,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 -@@ -284,6 +284,7 @@ +@@ -258,6 +258,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" - #include "chrome/browser/gcm/gcm_product_util.h" -@@ -1717,6 +1718,9 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -1760,6 +1761,9 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, omnibox::RegisterProfilePrefs(registry); ZeroSuggestProvider::RegisterProfilePrefs(registry); NtpCustomBackgroundService::RegisterProfilePrefs(registry); @@ -399,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 -@@ -598,6 +598,11 @@ +@@ -588,6 +588,11 @@ #include "chrome/browser/net/nss_service_factory.h" #endif @@ -411,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()); } -@@ -1452,6 +1457,10 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -1443,6 +1448,10 @@ void ChromeBrowserMainExtraPartsProfiles:: #endif WebDataServiceFactory::GetInstance(); webrtc_event_logging::WebRtcEventLogManagerKeyedServiceFactory::GetInstance(); @@ -425,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 -@@ -122,6 +122,10 @@ +@@ -124,6 +124,10 @@ #include "extensions/common/manifest.h" #endif @@ -436,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" -@@ -1562,6 +1566,13 @@ void ProfileManager::DoFinalInitForServices(Profile* profile, +@@ -1569,6 +1573,13 @@ void ProfileManager::DoFinalInitForServices(Profile* profile, // initializing the supervised flag if necessary). ChildAccountServiceFactory::GetForProfile(profile)->Init(); ListFamilyMembersServiceFactory::GetForProfile(profile)->Init(); @@ -524,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" -@@ -446,7 +449,9 @@ void RegisterChromeWebUIConfigs() { +@@ -447,7 +450,9 @@ void RegisterChromeWebUIConfigs() { map.AddWebUIConfig( std::make_unique()); #endif @@ -568,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 -@@ -239,6 +239,12 @@ static_library("renderer") { +@@ -240,6 +240,12 @@ static_library("renderer") { deps += [ "//components/webapps/isolated_web_apps:scheme" ] } @@ -627,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 -@@ -1408,6 +1430,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentStart( +@@ -1405,6 +1427,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentStart( render_frame); // |render_frame| might be dead by now. #endif @@ -645,7 +646,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer } void ChromeContentRendererClient::RunScriptsAtDocumentEnd( -@@ -1417,6 +1450,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentEnd( +@@ -1414,6 +1447,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentEnd( render_frame); // |render_frame| might be dead by now. #endif @@ -663,7 +664,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer } void ChromeContentRendererClient::RunScriptsAtDocumentIdle( -@@ -1426,6 +1470,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentIdle( +@@ -1423,6 +1467,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentIdle( render_frame); // |render_frame| might be dead by now. #endif @@ -2069,7 +2070,7 @@ new file mode 100644 + } + + @NativeMethods -+ interface Natives { ++ public interface Natives { + boolean isEnabled(); + void setEnabled(boolean enabled); + @@ -2240,7 +2241,7 @@ diff --git a/components/user_scripts/android/user_scripts_bridge.cc b/components new file mode 100644 --- /dev/null +++ b/components/user_scripts/android/user_scripts_bridge.cc -@@ -0,0 +1,173 @@ +@@ -0,0 +1,174 @@ +/* + This file is part of Bromite. + @@ -2280,7 +2281,6 @@ new file mode 100644 +using base::android::ConvertJavaStringToUTF8; +using base::android::ConvertUTF16ToJavaString; +using base::android::ConvertUTF8ToJavaString; -+using base::android::JavaParamRef; +using base::android::JavaRef; +using base::android::ScopedJavaGlobalRef; +using base::android::ScopedJavaLocalRef; @@ -2341,7 +2341,7 @@ new file mode 100644 + +static void JNI_UserScriptsBridge_RemoveScript( + JNIEnv* env, -+ const JavaParamRef& jscript_key) { ++ const JavaRef& jscript_key) { + user_scripts::UserScriptsBrowserClient* client = GetUserScriptsBrowserClient(); + if (client == NULL) return; + @@ -2351,7 +2351,7 @@ new file mode 100644 + +static void JNI_UserScriptsBridge_SetScriptEnabled( + JNIEnv* env, -+ const JavaParamRef& jscript_key, ++ const JavaRef& jscript_key, + jboolean is_enabled) { + user_scripts::UserScriptsBrowserClient* client = GetUserScriptsBrowserClient(); + if (client == NULL) return; @@ -2371,7 +2371,7 @@ new file mode 100644 + +static void JNI_UserScriptsBridge_SelectAndAddScriptFromFile( + JNIEnv* env, -+ const JavaParamRef& jwindow_android) { ++ const JavaRef& jwindow_android) { + user_scripts::UserScriptsBrowserClient* client = GetUserScriptsBrowserClient(); + if (client == NULL) return; + @@ -2380,7 +2380,7 @@ new file mode 100644 +} + +static void JNI_UserScriptsBridge_TryToInstall(JNIEnv* env, -+ const JavaParamRef& jscript_path) { ++ const JavaRef& jscript_path) { + user_scripts::UserScriptsBrowserClient* client = GetUserScriptsBrowserClient(); + if (client == NULL) return; + @@ -2413,6 +2413,8 @@ new file mode 100644 + Java_UserScriptsBridge_onUserScriptLoaded(env, result, j_error); +} + ++DEFINE_JNI(UserScriptsBridge) ++ +} diff --git a/components/user_scripts/android/user_scripts_bridge.h b/components/user_scripts/android/user_scripts_bridge.h new file mode 100644 @@ -6003,11 +6005,11 @@ new file mode 100755 + +bool IsStandardScheme(std::string_view scheme) { + // "*" gets the same treatment as a standard scheme. -+ if (scheme == "*") ++ if (scheme == "*") { + return true; ++ } + -+ return url::IsStandard(scheme.data(), -+ url::Component(0, static_cast(scheme.length()))); ++ return url::IsStandard(scheme); +} + +bool IsValidPortForScheme(std::string_view scheme, std::string_view port) { @@ -11493,14 +11495,14 @@ diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ --- a/tools/gritsettings/resource_ids.spec +++ b/tools/gritsettings/resource_ids.spec @@ -1254,6 +1254,12 @@ - "META": {"sizes": {"includes": [5]}}, - "includes": [7490], + "META": {"sizes": {"includes": [10]}}, + "includes": [7495], }, + "components/user_scripts/renderer/resources/user_scripts_renderer_resources.grd": { -+ "includes": [7500], ++ "includes": [7505], + }, + "components/user_scripts/browser/resources/browser_resources.grd": { -+ "includes": [7620], ++ "includes": [7625], + }, # END components/ section. diff --git a/build/patches/Eyeo-Adblock-for-Cromite.patch b/build/patches/Eyeo-Adblock-for-Cromite.patch index 0bfc7b21..78f92dee 100644 --- a/build/patches/Eyeo-Adblock-for-Cromite.patch +++ b/build/patches/Eyeo-Adblock-for-Cromite.patch @@ -40,8 +40,8 @@ suit Cromite logic. chrome/browser/ui/tab_helpers.cc | 3 +- .../extensions/api/_permission_features.json | 14 - .../common/extensions/api/adblock_private.idl | 8 + - .../adblock/android/adblock_controller_jni.cc | 79 +- - .../components/adblock/AdblockController.java | 51 +- + .../adblock/android/adblock_controller_jni.cc | 85 +- + .../components/adblock/AdblockController.java | 53 +- components/adblock/content/browser/BUILD.gn | 24 +- .../content/browser/adblock_blocking_page.cc | 183 + .../content/browser/adblock_blocking_page.h | 75 + @@ -131,7 +131,7 @@ suit Cromite logic. .../renderer/core/exported/web_document.cc | 13 +- .../blink/renderer/core/html/html_element.cc | 8 +- .../definitions/adblock_private.d.ts | 14 + - 126 files changed, 9342 insertions(+), 687 deletions(-) + 126 files changed, 9347 insertions(+), 690 deletions(-) rename chrome/browser/adblock/android/java/res/xml/{adblock_preferences.xml => eyeo_adblock_preferences.xml} (59%) create mode 100644 chrome/browser/resources/settings/adblock_page/adblock_page.html create mode 100644 chrome/browser/resources/settings/adblock_page/adblock_page.ts @@ -160,7 +160,7 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j -@@ -90,11 +81,6 @@ Use of this source code is governed by the GPLv3 that can be found in the compon +@@ -91,11 +82,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 @@ -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 -@@ -730,11 +730,15 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient { +@@ -727,11 +727,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" -@@ -183,6 +184,19 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { +@@ -182,6 +183,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 -@@ -259,7 +259,6 @@ +@@ -255,7 +255,6 @@ #include "chrome/common/buildflags.h" #include "chrome/common/chrome_features.h" #include "components/adblock/content/browser/factories/adblock_request_throttle_factory.h" @@ -1202,7 +1202,7 @@ 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" -@@ -967,7 +966,6 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -953,7 +952,6 @@ void ChromeBrowserMainExtraPartsProfiles:: // Makes manual testing possible. FakeSmartCardDeviceServiceFactory::GetInstance(); #endif @@ -1221,7 +1221,7 @@ diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resourc "appearance_page/appearance_fonts_page.ts", "appearance_page/appearance_page_index.ts", "appearance_page/appearance_page.ts", -@@ -442,6 +443,7 @@ build_webui("build") { +@@ -446,6 +447,7 @@ build_webui("build") { ts_definitions = [ "//tools/typescript/definitions/autofill_private.d.ts", "//tools/typescript/definitions/chrome_event.d.ts", @@ -1790,7 +1790,7 @@ diff --git a/chrome/browser/resources/settings/page_visibility.ts b/chrome/brows diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resources/settings/route.ts --- a/chrome/browser/resources/settings/route.ts +++ b/chrome/browser/resources/settings/route.ts -@@ -272,6 +272,10 @@ function createRoutes(): SettingsRoutes { +@@ -277,6 +277,10 @@ function createRoutes(): SettingsRoutes { '/onStartup', 'onStartup', loadTimeData.getString('onStartup')); } @@ -1815,14 +1815,14 @@ diff --git a/chrome/browser/resources/settings/router.ts b/chrome/browser/resour diff --git a/chrome/browser/resources/settings/settings.ts b/chrome/browser/resources/settings/settings.ts --- a/chrome/browser/resources/settings/settings.ts +++ b/chrome/browser/resources/settings/settings.ts -@@ -56,6 +56,7 @@ export {HomeUrlInputElement} from './appearance_page/home_url_input.js'; +@@ -65,6 +65,7 @@ export {HomeUrlInputElement} from './appearance_page/home_url_input.js'; export {SettingsAutofillAiEntriesListElement} from './autofill_page/autofill_ai_entries_list.js'; export {SettingsAutofillPageElement} from './autofill_page/autofill_page.js'; export {SettingsAutofillPageIndexElement} from './autofill_page/autofill_page_index.js'; +export {SettingsAdblockPageElement} from './adblock_page/adblock_page.js'; - export {PasswordCheckReferrer, PasswordManagerImpl, PasswordManagerPage, PasswordManagerProxy} from './autofill_page/password_manager_proxy.js'; + export {PasswordCheckReferrer, PasswordManagerImpl, PasswordManagerPage} from './autofill_page/password_manager_proxy.js'; + export type {PasswordManagerProxy} from './autofill_page/password_manager_proxy.js'; export {BaseMixin} from './base_mixin.js'; - export {SettingsCheckboxListEntryElement} from './controls/settings_checkbox_list_entry.js'; diff --git a/chrome/browser/resources/settings/settings_main/settings_main.html b/chrome/browser/resources/settings/settings_main/settings_main.html --- a/chrome/browser/resources/settings/settings_main/settings_main.html +++ b/chrome/browser/resources/settings/settings_main/settings_main.html @@ -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 -@@ -351,7 +351,8 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -345,7 +345,8 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { auto* original_profile = profile->GetOriginalProfile(); adblock::EnsureBackgroundServicesStarted(original_profile); adblock::RegisterAdblockWebContentObserver< @@ -1947,6 +1947,15 @@ diff --git a/components/adblock/android/adblock_controller_jni.cc b/components/a #include "base/logging.h" #include "components/adblock/android/jni_headers/AdblockController_jni.h" #include "components/adblock/content/browser/factories/subscription_service_factory.h" +@@ -34,7 +36,7 @@ + using base::android::CheckException; + using base::android::ConvertUTF8ToJavaString; + using base::android::GetClass; +-using base::android::JavaParamRef; ++using base::android::JavaRef; + using base::android::MethodID; + using base::android::ScopedJavaLocalRef; + using base::android::ToJavaArrayOfObjects; @@ -48,6 +50,9 @@ ScopedJavaLocalRef ToJava(JNIEnv* env, const std::string& url, const std::string& title, @@ -1971,7 +1980,7 @@ diff --git a/components/adblock/android/adblock_controller_jni.cc b/components/a std::vector> CSubscriptionsToJObjects( JNIEnv* env, -+ const base::android::JavaParamRef& jbrowser_context_handle, ++ const base::android::JavaRef& jbrowser_context_handle, const std::vector>& subscriptions) { + auto* subscription_service = + adblock::SubscriptionServiceFactory::GetForBrowserContext( @@ -2013,13 +2022,13 @@ diff --git a/components/adblock/android/adblock_controller_jni.cc b/components/a false)); } } -@@ -104,6 +129,52 @@ std::vector> CSubscriptionsToJObjects( +@@ -104,10 +129,56 @@ std::vector> CSubscriptionsToJObjects( } // namespace +static void +JNI_AdblockController_StartUpdate(JNIEnv* env, -+ const base::android::JavaParamRef& jbrowser_context_handle) { ++ const base::android::JavaRef& jbrowser_context_handle) { + auto* subscription_service = + adblock::SubscriptionServiceFactory::GetForBrowserContext( + content::BrowserContextFromJavaHandle(jbrowser_context_handle)); @@ -2028,7 +2037,7 @@ diff --git a/components/adblock/android/adblock_controller_jni.cc b/components/a + +static base::android::ScopedJavaLocalRef +JNI_AdblockController_GetCustomSubscriptions(JNIEnv* env, -+ const base::android::JavaParamRef& jbrowser_context_handle) { ++ const base::android::JavaRef& jbrowser_context_handle) { + DCHECK_CURRENTLY_ON(content::BrowserThread::UI); + auto* subscription_service = + adblock::SubscriptionServiceFactory::GetForBrowserContext( @@ -2046,7 +2055,7 @@ diff --git a/components/adblock/android/adblock_controller_jni.cc b/components/a + +static jboolean JNI_AdblockController_IsPrivilegedFiltersEnabled( + JNIEnv* env, -+ const base::android::JavaParamRef& jbrowser_context_handle) { ++ const base::android::JavaRef& jbrowser_context_handle) { + auto* subscription_service = + adblock::SubscriptionServiceFactory::GetForBrowserContext( + content::BrowserContextFromJavaHandle(jbrowser_context_handle)); @@ -2055,7 +2064,7 @@ diff --git a/components/adblock/android/adblock_controller_jni.cc b/components/a + +static void JNI_AdblockController_SetPrivilegedFiltersEnabled( + JNIEnv* env, -+ const base::android::JavaParamRef& jbrowser_context_handle, ++ const base::android::JavaRef& jbrowser_context_handle, + jboolean j_enabled) { + auto* subscription_service = + adblock::SubscriptionServiceFactory::GetForBrowserContext( @@ -2066,6 +2075,11 @@ diff --git a/components/adblock/android/adblock_controller_jni.cc b/components/a static base::android::ScopedJavaLocalRef JNI_AdblockController_GetInstalledSubscriptions( JNIEnv* env, +- const base::android::JavaParamRef& jbrowser_context_handle) { ++ const base::android::JavaRef& jbrowser_context_handle) { + DCHECK_CURRENTLY_ON(content::BrowserThread::UI); + auto* subscription_service = + adblock::SubscriptionServiceFactory::GetForBrowserContext( @@ -119,7 +190,7 @@ JNI_AdblockController_GetInstalledSubscriptions( return ToJavaArrayOfObjects( @@ -2075,6 +2089,12 @@ diff --git a/components/adblock/android/adblock_controller_jni.cc b/components/a subscription_service->GetFilteringConfiguration( adblock::kAdblockFilteringConfigurationName)))); } +@@ -131,3 +202,5 @@ JNI_AdblockController_GetRecommendedSubscriptions(JNIEnv* env) { + auto list = adblock::config::GetKnownSubscriptions(); + return ToJavaArrayOfObjects(env, CSubscriptionsToJObjects(env, list)); + } ++ ++DEFINE_JNI(AdblockController) diff --git a/components/adblock/android/java/src/org/chromium/components/adblock/AdblockController.java b/components/adblock/android/java/src/org/chromium/components/adblock/AdblockController.java --- a/components/adblock/android/java/src/org/chromium/components/adblock/AdblockController.java +++ b/components/adblock/android/java/src/org/chromium/components/adblock/AdblockController.java @@ -2167,10 +2187,12 @@ diff --git a/components/adblock/android/java/src/org/chromium/components/adblock @UiThread public List getInstalledSubscriptions() { return (List) -@@ -276,6 +321,10 @@ public class AdblockController { +@@ -275,7 +320,11 @@ public class AdblockController { + } @NativeMethods - interface Natives { +- interface Natives { ++ public interface Natives { + void startUpdate(BrowserContextHandle contextHandle); + boolean isPrivilegedFiltersEnabled(BrowserContextHandle contextHandle); + void setPrivilegedFiltersEnabled(BrowserContextHandle contextHandle, boolean enabled); @@ -12898,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 -@@ -1158,7 +1158,7 @@ void ContentBrowserClient::WillCreateURLLoaderFactory( +@@ -1145,7 +1145,7 @@ void ContentBrowserClient::WillCreateURLLoaderFactory( DCHECK(browser_context); } @@ -12907,7 +12929,7 @@ diff --git a/content/public/browser/content_browser_client.cc b/content/public/b return false; } -@@ -1167,9 +1167,11 @@ uint32_t ContentBrowserClient::GetWebSocketOptions(RenderFrameHost* frame) { +@@ -1154,9 +1154,11 @@ uint32_t ContentBrowserClient::GetWebSocketOptions(RenderFrameHost* frame) { } void ContentBrowserClient::CreateWebSocket( @@ -12922,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 -@@ -2151,7 +2151,7 @@ class CONTENT_EXPORT ContentBrowserClient { +@@ -2140,7 +2140,7 @@ class CONTENT_EXPORT ContentBrowserClient { scoped_refptr navigation_response_task_runner); // Returns true when the embedder wants to intercept a websocket connection. @@ -12931,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); -@@ -2173,9 +2173,11 @@ class CONTENT_EXPORT ContentBrowserClient { +@@ -2162,9 +2162,11 @@ class CONTENT_EXPORT ContentBrowserClient { // Always called on the UI thread and only when the Network Service is // enabled. virtual void CreateWebSocket( @@ -12977,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 -@@ -646,6 +646,14 @@ void StyleEngine::PrepareUpdateActiveStyleSheetsInShadow( +@@ -652,6 +652,14 @@ void StyleEngine::PrepareUpdateActiveStyleSheetsInShadow( collection->PrepareUpdateActiveStyleSheets(medium); } @@ -12995,7 +13017,7 @@ diff --git a/third_party/blink/renderer/core/css/style_engine.cc b/third_party/b diff --git a/third_party/blink/renderer/core/css/style_engine.h b/third_party/blink/renderer/core/css/style_engine.h --- a/third_party/blink/renderer/core/css/style_engine.h +++ b/third_party/blink/renderer/core/css/style_engine.h -@@ -280,6 +280,7 @@ class CORE_EXPORT StyleEngine final : public GarbageCollected, +@@ -289,6 +289,7 @@ class CORE_EXPORT StyleEngine final : public GarbageCollected, const ComputedStyle* embedder_style) const; void ViewportStyleSettingChanged(); @@ -13051,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 -@@ -2842,13 +2842,7 @@ void HTMLElement::setSpellcheck(bool enable) { +@@ -2917,13 +2917,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 b76bf28e..f2f4be1b 100644 --- a/build/patches/Fix-chromium-build-bugs.patch +++ b/build/patches/Fix-chromium-build-bugs.patch @@ -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 -@@ -300,6 +300,7 @@ static_library("safe_browsing") { +@@ -309,6 +309,7 @@ static_library("safe_browsing") { "//components/version_info", "//content/public/browser", "//services/preferences/public/mojom", @@ -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 -@@ -833,11 +833,11 @@ MLConfig& MLConfig::operator=(const MLConfig& other) = default; +@@ -818,11 +818,11 @@ MLConfig& MLConfig::operator=(const MLConfig& other) = default; ScopedMLConfigForTesting::ScopedMLConfigForTesting() : original_config_(std::make_unique(GetMLConfig())) { @@ -131,7 +131,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 -@@ -358,6 +358,7 @@ void BindDateTimeChooserForFrame( +@@ -359,6 +359,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 ed1e4a6b..e35c3930 100644 --- a/build/patches/Fonts-fingerprinting-mitigation.patch +++ b/build/patches/Fonts-fingerprinting-mitigation.patch @@ -120,7 +120,7 @@ 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 -@@ -252,6 +252,10 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE_PARAM(int, +@@ -251,6 +251,10 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE_PARAM(int, BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kLessAggressiveParkableString); BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kCombineNewWindowIPCs); @@ -134,7 +134,7 @@ diff --git a/third_party/blink/public/common/features.h b/third_party/blink/publ 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 -@@ -801,6 +801,7 @@ component("platform") { +@@ -798,6 +798,7 @@ component("platform") { "fonts/simple_font_data.cc", "fonts/simple_font_data.h", "fonts/skia/font_cache_skia.cc", @@ -145,7 +145,7 @@ diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/re diff --git a/third_party/blink/renderer/platform/fonts/font_cache.h b/third_party/blink/renderer/platform/fonts/font_cache.h --- a/third_party/blink/renderer/platform/fonts/font_cache.h +++ b/third_party/blink/renderer/platform/fonts/font_cache.h -@@ -315,7 +315,7 @@ class PLATFORM_EXPORT FontCache final { +@@ -283,7 +283,7 @@ class PLATFORM_EXPORT FontCache final { sk_sp CreateTypeface(const FontDescription&, const FontFaceCreationParams&, @@ -433,7 +433,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc b/third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc --- a/third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc +++ b/third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc -@@ -61,12 +61,35 @@ +@@ -62,12 +62,35 @@ #error This file should not be used by MacOS. #endif @@ -448,7 +448,7 @@ diff --git a/third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc b namespace blink { AtomicString ToAtomicString(const SkString& str) { - return AtomicString::FromUTF8(std::string_view(str.begin(), str.end())); + return AtomicString::FromUTF8(base::as_string_view(str)); } +sk_sp ReturnIfAllowed(sk_sp typeface, const std::string& name, bool check_fonts) { @@ -469,7 +469,7 @@ diff --git a/third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc b namespace { const FontPlatformData* CreateFontPlatformDataForTypeface( sk_sp typeface, -@@ -263,7 +286,7 @@ const SimpleFontData* FontCache::GetLastResortFallbackFont( +@@ -264,7 +287,7 @@ const SimpleFontData* FontCache::GetLastResortFallbackFont( sk_sp FontCache::CreateTypeface( const FontDescription& font_description, const FontFaceCreationParams& creation_params, @@ -478,7 +478,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. -@@ -281,6 +304,16 @@ sk_sp FontCache::CreateTypeface( +@@ -282,6 +305,16 @@ sk_sp FontCache::CreateTypeface( DCHECK_NE(family, font_family_names::kSystemUi); // convert the name to utf8 name = family.Utf8(); @@ -495,7 +495,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 -@@ -288,11 +321,11 @@ sk_sp FontCache::CreateTypeface( +@@ -289,11 +322,11 @@ sk_sp FontCache::CreateTypeface( if (const char* locale_family = GetLocaleSpecificFamilyName(family)) { if (sk_sp typeface = CreateLocaleSpecificTypeface(font_description, locale_family)) @@ -510,7 +510,7 @@ diff --git a/third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc b } #if !BUILDFLAG(IS_WIN) -@@ -302,6 +335,7 @@ const FontPlatformData* FontCache::CreateFontPlatformData( +@@ -303,6 +336,7 @@ const FontPlatformData* FontCache::CreateFontPlatformData( float font_size, AlternateFontName alternate_name) { std::string name; @@ -518,7 +518,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) -@@ -322,7 +356,7 @@ const FontPlatformData* FontCache::CreateFontPlatformData( +@@ -323,7 +357,7 @@ const FontPlatformData* FontCache::CreateFontPlatformData( noto_color_emoji_from_gmscore)) { typeface = CreateTypefaceFromUniqueName(creation_params); } else { diff --git a/build/patches/Force-use-vpython3-for-all-scripts.patch b/build/patches/Force-use-vpython3-for-all-scripts.patch new file mode 100644 index 00000000..3e5effd2 --- /dev/null +++ b/build/patches/Force-use-vpython3-for-all-scripts.patch @@ -0,0 +1,26 @@ +From: uazo +Date: Thu, 5 Feb 2026 12:13:49 +0000 +Subject: Force use vpython3 for all scripts + +Some scripts need the latest version of python not available in the docker container. +The patch forces the use of python in the virtual environment in the version +required by the chromium build tools. + +License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html +--- + .gn | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/.gn b/.gn +--- a/.gn ++++ b/.gn +@@ -10,7 +10,7 @@ buildconfig = "//build/config/BUILDCONFIG.gn" + + # The python interpreter to use by default. On Windows, this will look + # for python3.exe and python3.bat. +-script_executable = "python3" ++script_executable = "vpython3" + + # These arguments override the default values for items in a declare_args + # block. "gn args" in turn can override these. +-- diff --git a/build/patches/Force-use-vpython3-for-some-scripts.patch b/build/patches/Force-use-vpython3-for-some-scripts.patch deleted file mode 100644 index 7cc9a24e..00000000 --- a/build/patches/Force-use-vpython3-for-some-scripts.patch +++ /dev/null @@ -1,325 +0,0 @@ -From: uazo -Date: Fri, 2 May 2025 14:16:01 +0000 -Subject: Force use vpython3 for some scripts - -Some scripts need the latest version of python not available in the docker container. -The patch forces the use of python in the virtual environment in the version -required by the chromium build tools. - -License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html ---- - build/config/android/internal_rules.gni | 22 ++++++++++++++----- - build/config/python.gni | 7 +++++- - .../generate_expired_histograms_array.gni | 7 ++++-- - .../variations/field_trial_config/BUILD.gn | 4 +++- - third_party/blink/renderer/bindings/BUILD.gn | 5 ++++- - third_party/perfetto/gn/BUILD.gn | 5 ++++- - tools/grit/grit_rule.gni | 4 +++- - .../json_schema_compiler/json_schema_api.gni | 12 +++++++--- - tools/json_to_struct/json_to_struct.gni | 4 +++- - ...enerate_allowlist_from_histograms_file.gni | 5 +++-- - 10 files changed, 56 insertions(+), 19 deletions(-) - -diff --git a/build/config/android/internal_rules.gni b/build/config/android/internal_rules.gni ---- a/build/config/android/internal_rules.gni -+++ b/build/config/android/internal_rules.gni -@@ -627,12 +627,15 @@ template("write_build_config") { - } else { - action_with_pydeps(target_name) { - forward_variables_from(invoker, [ "testonly" ]) -- script = "//build/android/gyp/write_build_config.py" -+ script = "//build/gn_run_binary.py" -+ original_script = "//build/android/gyp/write_build_config.py" - depfile = "$target_gen_dir/$target_name.d" - inputs = _inputs - outputs = _outputs - - args = [ -+ rebase_path("//third_party/depot_tools/vpython3"), -+ rebase_path(original_script), - "--output", - rebase_path(invoker.build_config, root_build_dir), - "--depfile", -@@ -3032,17 +3035,18 @@ if (enable_java_templates) { - } - - action_with_pydeps(target_name) { -+ script = "//build/gn_run_binary.py" - if (invoker.use_turbine) { -- script = "//build/android/gyp/turbine.py" -+ original_script = "//build/android/gyp/turbine.py" - inputs = [ - "//third_party/jdk/current/bin/java", - android_sdk_jar, - ] - } else if (invoker.enable_errorprone) { -- script = "//build/android/gyp/errorprone.py" -+ original_script = "//build/android/gyp/errorprone.py" - inputs = javac_paths_for_inputs - } else { -- script = "//build/android/gyp/compile_java.py" -+ original_script = "//build/android/gyp/compile_java.py" - inputs = javac_paths_for_inputs - } - -@@ -3058,7 +3062,10 @@ if (enable_java_templates) { - deps += invoker.deps - } - -- args = [] -+ args = [ -+ rebase_path("//third_party/depot_tools/vpython3"), -+ rebase_path(original_script), -+ ] - if (invoker.enable_errorprone) { - _stamp_file = "$target_out_dir/$target_name.stamp" - outputs = [ _stamp_file ] -@@ -3257,7 +3264,8 @@ if (enable_java_templates) { - } - - action_with_pydeps(target_name) { -- script = "//build/android/gyp/compile_kt.py" -+ script = "//build/gn_run_binary.py" -+ original_script = "//build/android/gyp/compile_kt.py" - depfile = "$target_gen_dir/$target_name.d" - deps = _srcjar_deps - if (defined(invoker.deps)) { -@@ -3286,6 +3294,8 @@ if (enable_java_templates) { - "$target_gen_dir/${invoker.main_target_name}/generated_java", - root_build_dir) - args = [ -+ rebase_path("//third_party/depot_tools/vpython3"), -+ rebase_path(original_script), - "--depfile=$_rebased_depfile", - "--generated-dir=$_rebased_generated_dir", - "--jar-path=$_rebased_output_jar_path", -diff --git a/build/config/python.gni b/build/config/python.gni ---- a/build/config/python.gni -+++ b/build/config/python.gni -@@ -91,6 +91,7 @@ template("action_with_pydeps") { - [ - "testonly", - "visibility", -+ "original_script" - ]) - forward_variables_from(invoker, - "*", -@@ -102,7 +103,11 @@ template("action_with_pydeps") { - # Read and filter out comments. - # Happens every time the template is instantiated, but benchmarking shows no - # perceivable impact on overall 'gn gen' speed. -- _pydeps_file = invoker.script + "deps" -+ if (!defined(original_script)) { -+ _pydeps_file = invoker.script + "deps" -+ } else { -+ _pydeps_file = invoker.original_script + "deps" -+ } - - _pydeps_lines = - read_file(_pydeps_file, "list lines") # https://crbug.com/1102058 -diff --git a/components/metrics/generate_expired_histograms_array.gni b/components/metrics/generate_expired_histograms_array.gni ---- a/components/metrics/generate_expired_histograms_array.gni -+++ b/components/metrics/generate_expired_histograms_array.gni -@@ -30,7 +30,7 @@ template("generate_expired_histograms_array") { - action(target_name) { - header_filename = "$target_gen_dir/" + invoker.header_filename - -- script = "//tools/metrics/histograms/generate_expired_histograms_array.py" -+ script = "//build/gn_run_binary.py" - outputs = [ header_filename ] - - inputs = histograms_xml_files -@@ -38,7 +38,10 @@ template("generate_expired_histograms_array") { - major_branch_date_filepath = invoker.major_branch_date_filepath - milestone_filepath = invoker.milestone_filepath - -- args = [] -+ args = [ -+ rebase_path("//third_party/depot_tools/vpython3"), -+ rebase_path("//tools/metrics/histograms/generate_expired_histograms_array.py") -+ ] - - if (defined(invoker.namespace) && invoker.namespace != "") { - args += [ "-n" + invoker.namespace ] -diff --git a/components/variations/field_trial_config/BUILD.gn b/components/variations/field_trial_config/BUILD.gn ---- a/components/variations/field_trial_config/BUILD.gn -+++ b/components/variations/field_trial_config/BUILD.gn -@@ -5,7 +5,7 @@ import("//tools/json_to_struct/json_to_struct.gni") - - action("field_trial_testing_config_action") { - visibility = [ ":field_trial_config" ] -- script = "//tools/variations/fieldtrial_to_struct.py" -+ script = "//build/gn_run_binary.py" - - source = "//testing/variations/fieldtrial_testing_config.json" - inputs = JSON_TO_STRUCT_FILES + [ source ] -@@ -22,6 +22,8 @@ action("field_trial_testing_config_action") { - } - - args = [ -+ rebase_path("//third_party/depot_tools/vpython3"), -+ rebase_path("//tools/variations/fieldtrial_to_struct.py"), - rebase_path(source, root_build_dir), - "--destbase=" + rebase_path(target_gen_dir, root_build_dir), - "--namespace=variations", -diff --git a/third_party/blink/renderer/bindings/BUILD.gn b/third_party/blink/renderer/bindings/BUILD.gn ---- a/third_party/blink/renderer/bindings/BUILD.gn -+++ b/third_party/blink/renderer/bindings/BUILD.gn -@@ -113,7 +113,8 @@ action_with_pydeps("web_idl_database") { - "//testing/libfuzzer/research/fuzzilli_idl_fuzzing:*", - ] - -- script = "scripts/build_web_idl_database.py" -+ script = "//build/gn_run_binary.py" -+ original_script = "scripts/build_web_idl_database.py" - - input_data_files = get_target_outputs(":web_idl_in_core") + - get_target_outputs(":web_idl_in_core_for_testing") + -@@ -139,6 +140,8 @@ action_with_pydeps("web_idl_database") { - outputs = [ web_idl_database_filepath ] - - args = [ -+ rebase_path("//third_party/depot_tools/vpython3"), -+ rebase_path(original_script), - "--output", - rebase_path(web_idl_database_filepath, root_build_dir), - "--runtime_enabled_features", -diff --git a/third_party/perfetto/gn/BUILD.gn b/third_party/perfetto/gn/BUILD.gn ---- a/third_party/perfetto/gn/BUILD.gn -+++ b/third_party/perfetto/gn/BUILD.gn -@@ -36,7 +36,8 @@ if (perfetto_root_path == "//") { - # pattern #if PERFETTO_BUILDFLAG(PERFETTO_ANDROID_BUILD) - buildflag_gen_dir_ = "$root_gen_dir/$perfetto_root_path/build_config" - action("gen_buildflags") { -- script = "write_buildflag_header.py" -+ script = "//build/gn_run_binary.py" -+ original_script = "write_buildflag_header.py" - gen_header_path = "$buildflag_gen_dir_/perfetto_build_flags.h" - - perfetto_component_build = false -@@ -114,6 +115,8 @@ action("gen_buildflags") { - - rel_out_path = rebase_path(gen_header_path, "$root_build_dir") - args = [ -+ rebase_path("//third_party/depot_tools/vpython3"), -+ rebase_path(original_script), - "--out", - rel_out_path, - "--rsp", -diff --git a/tools/grit/grit_rule.gni b/tools/grit/grit_rule.gni ---- a/tools/grit/grit_rule.gni -+++ b/tools/grit/grit_rule.gni -@@ -154,7 +154,7 @@ template("grit") { - - _grit_custom_target = target_name + "_grit" - action(_grit_custom_target) { -- script = "//tools/grit/grit.py" -+ script = "//build/gn_run_binary.py" - inputs = [ invoker.source ] - - testonly = defined(invoker.testonly) && invoker.testonly -@@ -197,6 +197,8 @@ template("grit") { - } - - args = [ -+ rebase_path("//third_party/depot_tools/vpython3"), -+ rebase_path("//tools/grit/grit.py"), - "-i", - _rebased_source_path, - "build", -diff --git a/tools/json_schema_compiler/json_schema_api.gni b/tools/json_schema_compiler/json_schema_api.gni ---- a/tools/json_schema_compiler/json_schema_api.gni -+++ b/tools/json_schema_compiler/json_schema_api.gni -@@ -112,13 +112,15 @@ template("generated_json_strings") { - - action(bundle_generator_schema_name) { - visibility = [ ":$root_target_name" ] -- script = compiler_script -+ script = "//build/gn_run_binary.py" - inputs = compiler_sources + invoker.sources - outputs = [ - "$target_gen_dir/generated_schemas.cc", - "$target_gen_dir/generated_schemas.h", - ] - args = [ -+ rebase_path("//third_party/depot_tools/vpython3"), -+ rebase_path(compiler_script), - "--root=" + rebase_path(root_folder, root_build_dir), - "--destdir=$destdir", - "--namespace=$root_namespace", -@@ -227,13 +229,15 @@ template("function_registration") { - - action(bundle_generator_registration_name) { - visibility = [ ":$root_target_name" ] -- script = compiler_script -+ script = "//build/gn_run_binary.py" - inputs = compiler_sources + invoker.sources - outputs = [ - "$gen_child_dir/generated_api_registration.cc", - "$gen_child_dir/generated_api_registration.h", - ] - args = [ -+ rebase_path("//third_party/depot_tools/vpython3"), -+ rebase_path(compiler_script), - "--root=" + rebase_path(root_folder, root_build_dir), - "--destdir=$destdir", - "--namespace=$root_namespace", -@@ -321,7 +325,7 @@ template("generated_types") { - - action_foreach(schema_generator_name) { - visibility = [ ":$root_target_name" ] -- script = compiler_script -+ script = "//build/gn_run_binary.py" - sources = invoker.sources - inputs = compiler_sources - outputs = [ -@@ -329,6 +333,8 @@ template("generated_types") { - "$target_gen_dir/{{source_name_part}}.h", - ] - args = [ -+ rebase_path("//third_party/depot_tools/vpython3"), -+ rebase_path(compiler_script), - "{{source}}", - "--root=" + rebase_path(root_folder, root_build_dir), - "--destdir=$destdir", -diff --git a/tools/json_to_struct/json_to_struct.gni b/tools/json_to_struct/json_to_struct.gni ---- a/tools/json_to_struct/json_to_struct.gni -+++ b/tools/json_to_struct/json_to_struct.gni -@@ -41,7 +41,7 @@ template("json_to_struct") { - - action(action_name) { - visibility = [ ":$source_set_name" ] -- script = "//tools/json_to_struct/json_to_struct.py" -+ script = "//build/gn_run_binary.py" - - inputs = JSON_TO_STRUCT_FILES + [ - invoker.source, -@@ -56,6 +56,8 @@ template("json_to_struct") { - ] - - args = [ -+ rebase_path("//third_party/depot_tools/vpython3"), -+ rebase_path("//tools/json_to_struct/json_to_struct.py"), - rebase_path(invoker.source, root_build_dir), - "--destbase=" + rebase_path(out_dir, root_build_dir), - "--namespace=" + invoker.namespace, -diff --git a/tools/metrics/generate_allowlist_from_histograms_file.gni b/tools/metrics/generate_allowlist_from_histograms_file.gni ---- a/tools/metrics/generate_allowlist_from_histograms_file.gni -+++ b/tools/metrics/generate_allowlist_from_histograms_file.gni -@@ -26,12 +26,13 @@ template("generate_allowlist_from_histograms_file") { - action(target_name) { - output_file = "$target_gen_dir/" + invoker.output_file - -- script = -- "//tools/metrics/histograms/generate_allowlist_from_histograms_file.py" -+ script = "//build/gn_run_binary.py" - outputs = [ output_file ] - sources = [ invoker.input_xml_file ] - - args = [ -+ rebase_path("//third_party/depot_tools/vpython3"), -+ rebase_path("//tools/metrics/histograms/generate_allowlist_from_histograms_file.py"), - "--allow_list_name=" + invoker.allow_list_name, - "--namespace=" + invoker.namespace, - "--tag=" + invoker.tag, --- diff --git a/build/patches/Guard-for-user-agent-reduction.patch b/build/patches/Guard-for-user-agent-reduction.patch index e0eb4d2c..98ba63ca 100644 --- a/build/patches/Guard-for-user-agent-reduction.patch +++ b/build/patches/Guard-for-user-agent-reduction.patch @@ -4,35 +4,22 @@ Subject: Guard for user-agent reduction License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - chrome/browser/chrome_content_browser_client.cc | 2 +- - components/embedder_support/user_agent_utils.cc | 5 +++++ - .../platform/runtime_enabled_features.json5 | 16 ++++++++-------- - 3 files changed, 14 insertions(+), 9 deletions(-) + components/embedder_support/user_agent_utils.cc | 5 +++++ + .../platform/runtime_enabled_features.json5 | 14 +++++++------- + 2 files changed, 12 insertions(+), 7 deletions(-) -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 -@@ -1472,7 +1472,7 @@ void ChromeContentBrowserClient::RegisterProfilePrefs( - registry->RegisterIntegerPref( - prefs::kUserAgentReduction, - static_cast( -- embedder_support::UserAgentReductionEnterprisePolicyState::kDefault)); -+ embedder_support::UserAgentReductionEnterprisePolicyState::kForceEnabled)); - registry->RegisterBooleanPref(prefs::kOriginAgentClusterDefaultEnabled, true); - - registry->RegisterBooleanPref( 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 -@@ -899,6 +899,7 @@ std::string BuildUserAgentFromProduct(const std::string& product) { +@@ -855,6 +855,7 @@ std::string BuildUserAgentFromProduct(const std::string& product) { } std::string BuildModelInfo() { + if ((true)) return std::string(); #if BUILDFLAG(IS_ANDROID) // Model information is not exposed on Android desktop. - if (ui::GetDeviceFormFactor() == ui::DEVICE_FORM_FACTOR_DESKTOP) { -@@ -941,6 +942,10 @@ std::string GetAndroidOSInfo( + if (base::android::device_info::is_desktop()) { +@@ -897,6 +898,10 @@ std::string GetAndroidOSInfo( IncludeAndroidModel include_android_model) { std::string android_info_str; @@ -46,7 +33,7 @@ diff --git a/components/embedder_support/user_agent_utils.cc b/components/embedd 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 -@@ -4155,9 +4155,9 @@ +@@ -4240,22 +4240,22 @@ // If enabled, the deviceModel will be reduced to "K" and the // androidVersion will be reduced to a static "10" string in android // User-Agent string. @@ -59,7 +46,13 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 }, // If enabled, the platform version in User-Agent Data will be removed. // This feature is limited to Linux only. -@@ -4169,15 +4169,15 @@ + { +- name: "ReduceUserAgentDataLinuxPlatformVersion", +- status: {"Linux": "stable"}, ++ name: "ReduceUserAgentDataLinuxPlatformVersion", // keep enabled ++ status: {"Linux": "stable"}, // in bromite + }, + // If enabled, the minor version of the User-Agent string will be reduced. // This User-Agent Reduction feature has been enabled starting from M101, // but we still keep this flag for future phase tests. { @@ -67,16 +60,6 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 - status: "stable", + name: "ReduceUserAgentMinorVersion", // keep enabled + status: "stable", // in bromite - }, - { - // If enabled, the platform and oscpu of the User-Agent string will be - // reduced. -- name: "ReduceUserAgentPlatformOsCpu", -- depends_on: ["ReduceUserAgentMinorVersion"], -- status: {"Android": "", "default": "stable"}, -+ name: "ReduceUserAgentPlatformOsCpu", // keep -+ depends_on: ["ReduceUserAgentMinorVersion"], // enabled -+ status: {"Android": "", "default": "stable"}, // in bromite }, { public: true, diff --git a/build/patches/Hardening-against-incognito-mode-detection.patch b/build/patches/Hardening-against-incognito-mode-detection.patch index ef7c62ea..b8c93cf8 100644 --- a/build/patches/Hardening-against-incognito-mode-detection.patch +++ b/build/patches/Hardening-against-incognito-mode-detection.patch @@ -11,7 +11,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/storage/browser/quota/quota_manager_impl.cc b/storage/browser/quota/quota_manager_impl.cc --- a/storage/browser/quota/quota_manager_impl.cc +++ b/storage/browser/quota/quota_manager_impl.cc -@@ -1785,7 +1785,7 @@ int64_t QuotaManagerImpl::GetQuotaForStorageKey( +@@ -1786,7 +1786,7 @@ int64_t QuotaManagerImpl::GetQuotaForStorageKey( return kNoLimit; } @@ -20,7 +20,7 @@ diff --git a/storage/browser/quota/quota_manager_impl.cc b/storage/browser/quota storage_key.origin().GetURL())) { return settings.session_only_per_storage_key_quota; } -@@ -2454,7 +2454,7 @@ void QuotaManagerImpl::SimulateStoragePressure(const url::Origin& origin_url) { +@@ -2455,7 +2455,7 @@ void QuotaManagerImpl::SimulateStoragePressure(const url::Origin& origin_url) { void QuotaManagerImpl::IsSimulateStoragePressureAvailable( IsSimulateStoragePressureAvailableCallback callback) { // We assume this is only the case in incognito. If it changes, update this. diff --git a/build/patches/History-number-of-days-privacy-setting.patch b/build/patches/History-number-of-days-privacy-setting.patch index 803ced29..e220614e 100644 --- a/build/patches/History-number-of-days-privacy-setting.patch +++ b/build/patches/History-number-of-days-privacy-setting.patch @@ -24,7 +24,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../layout/preference_spinner_single_line.xml | 7 +++ .../settings/SpinnerPreference.java | 7 +++ ...istory-number-of-days-privacy-setting.grdp | 18 ++++++ - .../core/browser/browsing_history_service.cc | 2 +- + .../core/browser/browsing_history_service.cc | 4 +- .../core/browser/expire_history_backend.cc | 13 +++- .../core/browser/expire_history_backend.h | 2 + .../history/core/browser/history_backend.cc | 17 +++++ @@ -35,13 +35,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html components/history/core/common/pref_names.h | 1 + components/history_embeddings/sql_database.cc | 2 +- .../omnibox/browser/shortcuts_backend.cc | 4 +- - 25 files changed, 263 insertions(+), 15 deletions(-) + 25 files changed, 264 insertions(+), 16 deletions(-) create mode 100644 components/cromite_components_strings_grd/History-number-of-days-privacy-setting.grdp diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -130,6 +130,12 @@ found in the LICENSE file. +@@ -123,6 +123,12 @@ found in the LICENSE file. android:key="javascript_optimizer" android:title="@string/website_settings_privacy_and_security_javascript_optimizer_row_label" android:fragment="org.chromium.components.browser_ui.site_settings.SingleCategorySettings" /> @@ -57,15 +57,15 @@ 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 -@@ -64,6 +64,7 @@ import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; +@@ -66,6 +66,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; +import org.chromium.components.browser_ui.settings.SpinnerPreference; + 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; - import org.chromium.components.browser_ui.site_settings.WebsitePreferenceBridge; -@@ -97,6 +98,9 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; +@@ -100,6 +101,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 -@@ -161,6 +165,8 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -163,6 +167,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)); -@@ -309,6 +315,40 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -296,6 +302,40 @@ public class PrivacySettings extends ChromeBaseSettingsFragment Preference syncAndServicesLink = findPreference(PREF_SYNC_AND_SERVICES_LINK); syncAndServicesLink.setSummary(buildFooterString()); @@ -123,9 +123,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting + }); + Preference thirdPartyCookies = findPreference(PREF_THIRD_PARTY_COOKIES); - if (showTrackingProtectionUi()) { - if (thirdPartyCookies != null) thirdPartyCookies.setVisible(false); -@@ -636,6 +676,29 @@ public class PrivacySettings extends ChromeBaseSettingsFragment + if (thirdPartyCookies != null) { + thirdPartyCookies +@@ -646,6 +686,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" -@@ -238,6 +239,9 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { +@@ -237,6 +238,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 -@@ -375,6 +375,7 @@ std::unique_ptr Profile::CreateProfile(const base::FilePath& path, +@@ -374,6 +374,7 @@ std::unique_ptr Profile::CreateProfile(const base::FilePath& path, void ProfileImpl::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref(prefs::kSavingBrowserHistoryDisabled, false); @@ -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 -@@ -1270,6 +1270,18 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1267,6 +1267,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 -@@ -2252,6 +2252,11 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, +@@ -2297,6 +2297,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,19 +425,28 @@ 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 -@@ -656,7 +656,7 @@ void BrowsingHistoryService::ReturnResultsToDriver( - MergeDuplicateResults(state.get(), &results); - - const base::Time local_expiry_threshold = +@@ -682,7 +682,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 = - clock_->Now() - base::Days(HistoryBackend::kExpireDaysThreshold); -+ clock_->Now() - base::Days(90); // dont care - base::flat_map pre_expiry_counts; - base::flat_map post_expiry_counts; - for (const HistoryEntry& entry : results) { ++ clock_->Now() - base::Days(90); // no matter + 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( + // 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 = +- clock_->Now() - base::Days(HistoryBackend::kExpireDaysThreshold); ++ clock_->Now() - base::Days(90); // dont care + base::flat_map pre_expiry_counts; + base::flat_map post_expiry_counts; + for (const HistoryEntry& entry : results) { diff --git a/components/history/core/browser/expire_history_backend.cc b/components/history/core/browser/expire_history_backend.cc --- a/components/history/core/browser/expire_history_backend.cc +++ b/components/history/core/browser/expire_history_backend.cc -@@ -390,7 +390,7 @@ const ExpiringVisitsReader* +@@ -391,7 +391,7 @@ const ExpiringVisitsReader* void ExpireHistoryBackend::StartExpiringOldStuff( base::TimeDelta expiration_threshold) { @@ -446,7 +455,7 @@ diff --git a/components/history/core/browser/expire_history_backend.cc b/compone // Remove all readers, just in case this was method was called before. readers_.clear(); -@@ -406,6 +406,11 @@ void ExpireHistoryBackend::StartExpiringOldStuff( +@@ -407,6 +407,11 @@ void ExpireHistoryBackend::StartExpiringOldStuff( ScheduleExpire(); } @@ -458,7 +467,7 @@ diff --git a/components/history/core/browser/expire_history_backend.cc b/compone void ExpireHistoryBackend::DeleteFaviconsIfPossible(DeleteEffects* effects) { if (!favicon_db_) return; -@@ -654,6 +659,12 @@ void ExpireHistoryBackend::DoExpireIteration() { +@@ -655,6 +660,12 @@ void ExpireHistoryBackend::DoExpireIteration() { return; } @@ -474,7 +483,7 @@ diff --git a/components/history/core/browser/expire_history_backend.cc b/compone diff --git a/components/history/core/browser/expire_history_backend.h b/components/history/core/browser/expire_history_backend.h --- a/components/history/core/browser/expire_history_backend.h +++ b/components/history/core/browser/expire_history_backend.h -@@ -81,6 +81,8 @@ class ExpireHistoryBackend { +@@ -82,6 +82,8 @@ class ExpireHistoryBackend { // will continue until the object is deleted. void StartExpiringOldStuff(base::TimeDelta expiration_threshold); @@ -486,7 +495,7 @@ diff --git a/components/history/core/browser/expire_history_backend.h b/componen diff --git a/components/history/core/browser/history_backend.cc b/components/history/core/browser/history_backend.cc --- a/components/history/core/browser/history_backend.cc +++ b/components/history/core/browser/history_backend.cc -@@ -164,6 +164,10 @@ const int kCommitIntervalSeconds = 10; +@@ -163,6 +163,10 @@ const int kCommitIntervalSeconds = 10; // deleting some. const int kMaxRedirectCount = 32; @@ -497,7 +506,7 @@ diff --git a/components/history/core/browser/history_backend.cc b/components/his // The maximum number of days for which domain visit metrics are computed // each time HistoryBackend::GetDomainDiversity() is called. constexpr int kDomainDiversityMaxBacktrackedDays = 7; -@@ -1333,6 +1337,19 @@ void HistoryBackend::InitImpl( +@@ -1328,6 +1332,19 @@ void HistoryBackend::InitImpl( expirer_.StartExpiringOldStuff(base::Days(kExpireDaysThreshold)); } @@ -514,13 +523,13 @@ diff --git a/components/history/core/browser/history_backend.cc b/components/his + } +} + - void HistoryBackend::OnMemoryPressure( - base::MemoryPressureLevel memory_pressure_level) { - // TODO(sebmarchand): Check if MEMORY_PRESSURE_LEVEL_MODERATE should also be + void HistoryBackend::CloseAllDatabases() { + // Reset to avoid dangling pointers to the database. + history_sync_bridge_.reset(); diff --git a/components/history/core/browser/history_backend.h b/components/history/core/browser/history_backend.h --- a/components/history/core/browser/history_backend.h +++ b/components/history/core/browser/history_backend.h -@@ -205,10 +205,6 @@ class HistoryBackend : public base::RefCountedThreadSafe, +@@ -203,10 +203,6 @@ class HistoryBackend : public base::RefCountedThreadSafe, // Check if the transition should increment the typed_count of a visit. static bool IsTypedIncrement(ui::PageTransition transition); @@ -531,7 +540,7 @@ diff --git a/components/history/core/browser/history_backend.h b/components/hist // Init must be called to complete object creation. This object can be // constructed on any thread, but all other functions including Init() must // be called on the history thread. -@@ -236,6 +232,8 @@ class HistoryBackend : public base::RefCountedThreadSafe, +@@ -234,6 +230,8 @@ class HistoryBackend : public base::RefCountedThreadSafe, void Init(bool force_fail, const HistoryDatabaseParams& history_database_params); @@ -600,7 +609,7 @@ diff --git a/components/history/core/browser/history_service.cc b/components/his diff --git a/components/history/core/browser/history_service.h b/components/history/core/browser/history_service.h --- a/components/history/core/browser/history_service.h +++ b/components/history/core/browser/history_service.h -@@ -36,6 +36,8 @@ +@@ -37,6 +37,8 @@ #include "components/favicon_base/favicon_callback.h" #include "components/favicon_base/favicon_types.h" #include "components/favicon_base/favicon_usage_data.h" @@ -609,7 +618,7 @@ diff --git a/components/history/core/browser/history_service.h b/components/hist #include "components/history/core/browser/history_types.h" #include "components/history/core/browser/keyword_id.h" #include "components/history/core/browser/url_row.h" -@@ -118,6 +120,8 @@ class HistoryService : public KeyedService, +@@ -119,6 +121,8 @@ class HistoryService : public KeyedService, // Returns the directory containing the History databases. const base::FilePath& history_dir() const { return history_dir_; } @@ -618,7 +627,7 @@ diff --git a/components/history/core/browser/history_service.h b/components/hist // Triggers the backend to load if it hasn't already, and then returns whether // it's finished loading. // Note: Virtual needed for mocking. -@@ -1175,6 +1179,10 @@ class HistoryService : public KeyedService, +@@ -1176,6 +1180,10 @@ class HistoryService : public KeyedService, raw_ptr local_device_info_provider_ = nullptr; 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 2bb1a0a8..565a782a 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 @@ -24,7 +24,7 @@ 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. -@@ -1033,17 +1033,6 @@ void SharedWorkerHost::OnClientConnectionLost() { +@@ -1037,17 +1037,6 @@ void SharedWorkerHost::OnClientConnectionLost() { break; } } diff --git a/build/patches/Improve-the-browser-sandbox.patch b/build/patches/Improve-the-browser-sandbox.patch index f2efa71f..e7cac5b2 100644 --- a/build/patches/Improve-the-browser-sandbox.patch +++ b/build/patches/Improve-the-browser-sandbox.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/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 -@@ -359,7 +359,7 @@ namespace features { +@@ -361,7 +361,7 @@ namespace features { // this feature is disabled any failed launches in the current browser session // will still result in sandbox being disabled for the lifetime of the running // browser. diff --git a/build/patches/Increase-number-of-autocomplete-matches-to-10.patch b/build/patches/Increase-number-of-autocomplete-matches-to-10.patch index 5a1afcb5..48bc9af9 100644 --- a/build/patches/Increase-number-of-autocomplete-matches-to-10.patch +++ b/build/patches/Increase-number-of-autocomplete-matches-to-10.patch @@ -13,7 +13,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/components/omnibox/browser/autocomplete_result.cc b/components/omnibox/browser/autocomplete_result.cc --- a/components/omnibox/browser/autocomplete_result.cc +++ b/components/omnibox/browser/autocomplete_result.cc -@@ -102,10 +102,11 @@ constexpr size_t kMaxPedalMatchIndex = +@@ -101,10 +101,11 @@ constexpr size_t kMaxPedalMatchIndex = size_t AutocompleteResult::GetMaxMatches( bool is_zero_suggest, AutocompleteInput::FeaturedKeywordMode featured_keyword_mode) { diff --git a/build/patches/Internal-firewall.patch b/build/patches/Internal-firewall.patch index ad866265..fc219d06 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 -@@ -2551,6 +2551,7 @@ static_library("browser") { +@@ -2516,6 +2516,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 -@@ -240,6 +240,7 @@ +@@ -236,6 +236,7 @@ #include "sandbox/policy/features.h" #include "sandbox/policy/switches.h" #include "services/device/public/cpp/device_features.h" @@ -131,7 +131,7 @@ diff --git a/chrome/browser/download/android/download_controller.cc b/chrome/bro diff --git a/chrome/browser/offline_pages/android/downloads/offline_page_download_bridge.cc b/chrome/browser/offline_pages/android/downloads/offline_page_download_bridge.cc --- a/chrome/browser/offline_pages/android/downloads/offline_page_download_bridge.cc +++ b/chrome/browser/offline_pages/android/downloads/offline_page_download_bridge.cc -@@ -242,13 +242,43 @@ void DuplicateCheckDone(const GURL& url, +@@ -241,13 +241,43 @@ void DuplicateCheckDone(const GURL& url, base::BindOnce(&OnDuplicateDialogConfirmed, std::move(callback))); } @@ -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 -@@ -1184,6 +1184,7 @@ component("net") { +@@ -1202,6 +1202,7 @@ component("net") { "//components/unexportable_keys", "//components/network_session_configurator/common", "//net/http:transport_security_state_generated_files", @@ -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 -@@ -431,6 +431,9 @@ URLRequestHttpJob::URLRequestHttpJob( +@@ -432,6 +432,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() { -@@ -725,6 +728,18 @@ void URLRequestHttpJob::MaybeStartTransactionInternal(int result) { +@@ -726,6 +729,18 @@ void URLRequestHttpJob::MaybeStartTransactionInternal(int result) { void URLRequestHttpJob::StartTransactionInternal() { DCHECK(!override_response_headers_); @@ -366,9 +366,9 @@ diff --git a/net/url_request/url_request_http_job.h b/net/url_request/url_reques #if BUILDFLAG(ENABLE_DEVICE_BOUND_SESSIONS) #include "net/device_bound_sessions/session_service.h" -@@ -99,6 +100,8 @@ class NET_EXPORT_PRIVATE URLRequestHttpJob : public URLRequestJob { - return priority_; - } +@@ -97,6 +98,8 @@ class NET_EXPORT_PRIVATE URLRequestHttpJob : public URLRequestJob { + + RequestPriority priority() const { return priority_; } + std::unique_ptr firewall_service_; + @@ -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" -@@ -1852,6 +1853,9 @@ void NetworkContext::OnNewSCTAuditingReportSent() { +@@ -1830,6 +1831,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)); } -@@ -1865,6 +1869,17 @@ void NetworkContext::CreateRestrictedUDPSocket( +@@ -1843,6 +1847,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, -@@ -1877,6 +1892,17 @@ void NetworkContext::CreateTCPServerSocket( +@@ -1855,6 +1870,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), -@@ -1891,6 +1917,21 @@ void NetworkContext::CreateTCPConnectedSocket( +@@ -1869,6 +1895,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), -@@ -1902,6 +1943,20 @@ void NetworkContext::CreateTCPBoundSocket( +@@ -1880,6 +1921,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), -@@ -1969,6 +2024,24 @@ void NetworkContext::CreateWebSocket( +@@ -1947,6 +2002,24 @@ void NetworkContext::CreateWebSocket( mojo::PendingRemote auth_handler, mojo::PendingRemote header_client, const std::optional& throttling_profile_id) { @@ -1794,7 +1794,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont diff --git a/services/network/public/cpp/simple_url_loader.cc b/services/network/public/cpp/simple_url_loader.cc --- a/services/network/public/cpp/simple_url_loader.cc +++ b/services/network/public/cpp/simple_url_loader.cc -@@ -1288,6 +1288,8 @@ SimpleURLLoaderImpl::SimpleURLLoaderImpl( +@@ -1273,6 +1273,8 @@ SimpleURLLoaderImpl::SimpleURLLoaderImpl( timeout_timer_(timeout_tick_clock_) { // Allow creation and use on different threads. DETACH_FROM_SEQUENCE(sequence_checker_); @@ -1803,7 +1803,7 @@ diff --git a/services/network/public/cpp/simple_url_loader.cc b/services/network #if DCHECK_IS_ON() if (resource_request_->request_body) { for (const DataElement& element : -@@ -1803,6 +1805,21 @@ void SimpleURLLoaderImpl::StartRequest( +@@ -1770,6 +1772,21 @@ void SimpleURLLoaderImpl::StartRequest( resource_request_->request_body->AppendDataPipe( string_upload_data_pipe_getter_->GetRemoteForNewUpload()); } @@ -1836,7 +1836,7 @@ diff --git a/services/network/public/cpp/simple_url_loader.h b/services/network/ class GURL; -@@ -463,6 +464,8 @@ class COMPONENT_EXPORT(NETWORK_CPP) SimpleURLLoader { +@@ -469,6 +470,8 @@ class COMPONENT_EXPORT(NETWORK_CPP) SimpleURLLoader { protected: SimpleURLLoader(); diff --git a/build/patches/JIT-site-settings.patch b/build/patches/JIT-site-settings.patch index d8418402..114b54df 100644 --- a/build/patches/JIT-site-settings.patch +++ b/build/patches/JIT-site-settings.patch @@ -279,7 +279,7 @@ new file mode 100644 diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc --- a/components/content_settings/core/browser/content_settings_registry.cc +++ b/components/content_settings/core/browser/content_settings_registry.cc -@@ -579,7 +579,7 @@ void ContentSettingsRegistry::Init() { +@@ -578,7 +578,7 @@ void ContentSettingsRegistry::Init() { PermissionSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY); Register(ContentSettingsType::JAVASCRIPT_JIT, "javascript-jit", @@ -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 -@@ -4270,12 +4270,17 @@ UrlInfo NavigationRequest::GetUrlInfo() { +@@ -4261,12 +4261,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 -@@ -3608,6 +3608,9 @@ void RenderProcessHostImpl::AppendRendererCommandLine( +@@ -3618,6 +3618,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 -@@ -305,6 +305,13 @@ SiteInfo SiteInfo::Create(const IsolationContext& isolation_context, +@@ -317,6 +317,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 0a589b56..81017315 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 -@@ -1183,11 +1183,9 @@ +@@ -1187,11 +1187,9 @@ status: "stable", }, { diff --git a/build/patches/Keep-Manta-Service-Disabled.patch b/build/patches/Keep-Manta-Service-Disabled.patch index 92894995..28d5c091 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 -@@ -1044,7 +1044,6 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -1031,7 +1031,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 60d6b5ad..f533396f 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 -@@ -1266,8 +1266,7 @@ +@@ -1273,8 +1273,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 8cfe11ad..7f041ca6 100644 --- a/build/patches/Keep-disabled-FetchLaterAPI.patch +++ b/build/patches/Keep-disabled-FetchLaterAPI.patch @@ -79,7 +79,7 @@ diff --git a/content/browser/loader/keep_alive_url_loader.cc b/content/browser/l diff --git a/content/browser/loader/keep_alive_url_loader.h b/content/browser/loader/keep_alive_url_loader.h --- a/content/browser/loader/keep_alive_url_loader.h +++ b/content/browser/loader/keep_alive_url_loader.h -@@ -430,9 +430,6 @@ class CONTENT_EXPORT KeepAliveURLLoader +@@ -431,9 +431,6 @@ class CONTENT_EXPORT KeepAliveURLLoader // disconnected from the remote of URLLoader in the renderer. base::OneShotTimer disconnected_loader_timer_; @@ -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 -@@ -3137,7 +3137,7 @@ void ResourceFetcher::PrepareForLeakDetection() { +@@ -3103,7 +3103,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 -@@ -2383,8 +2383,8 @@ +@@ -2413,8 +2413,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 0c568d6e..173ec522 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 -@@ -1139,7 +1139,7 @@ public class MultiWindowUtils implements ActivityStateListener { +@@ -1115,7 +1115,7 @@ public class MultiWindowUtils implements ActivityStateListener { int totalCount = 0; for (TabModel model : models) { for (Tab tab : model) { 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 3d18be9a..1f0f854d 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 -@@ -6152,10 +6152,10 @@ +@@ -5579,10 +5579,10 @@ "expiry_milestone": -1 }, { diff --git a/build/patches/Keyboard-protection-flag.patch b/build/patches/Keyboard-protection-flag.patch index f7ec824f..ff037aba 100644 --- a/build/patches/Keyboard-protection-flag.patch +++ b/build/patches/Keyboard-protection-flag.patch @@ -23,10 +23,10 @@ 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 -@@ -928,6 +928,11 @@ public final class ProductionSupportedFlagList { - + " retried without a restart.\n" - + " Note: WebViewUseStartupTasksLogicP2 and kWebViewStartupTasksYieldToNative" - + " also enable the same behaviour as this flag."), +@@ -924,6 +924,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."), + Flag.baseFeature( + "SystemKeyboardProtection", + "Hides user preference on the system keyboard by setting the standard " @@ -213,16 +213,16 @@ diff --git a/third_party/blink/renderer/core/events/keyboard_event.cc b/third_pa diff --git a/third_party/blink/renderer/core/events/keyboard_event.h b/third_party/blink/renderer/core/events/keyboard_event.h --- a/third_party/blink/renderer/core/events/keyboard_event.h +++ b/third_party/blink/renderer/core/events/keyboard_event.h -@@ -99,6 +99,8 @@ class CORE_EXPORT KeyboardEvent final : public UIEventWithKeyState { - unsigned which() const override; - bool isComposing() const { return is_composing_; } +@@ -101,6 +101,8 @@ class CORE_EXPORT KeyboardEvent final : public UIEventWithKeyState { + + CSSPseudoElement* pseudoTarget() const { return Event::pseudoTarget(); } + DispatchEventResult DispatchEvent(EventDispatcher&) override; + void Trace(Visitor*) const override; private: -@@ -111,6 +113,7 @@ class CORE_EXPORT KeyboardEvent final : public UIEventWithKeyState { +@@ -113,6 +115,7 @@ class CORE_EXPORT KeyboardEvent final : public UIEventWithKeyState { bool is_composing_ = false; unsigned char_code_ = 0; unsigned key_code_ = 0; @@ -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 -@@ -156,6 +156,14 @@ bool ShouldUseCursorEventHook() { +@@ -150,6 +150,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 b4697648..4e282cf4 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 -@@ -1400,6 +1400,14 @@ void ProfileNetworkContextService::ConfigureNetworkContextParamsInternal( +@@ -1398,6 +1398,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 -@@ -3230,7 +3230,7 @@ NetworkContext::MakeSessionCleanupCookieStore() const { +@@ -3216,7 +3216,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 -@@ -354,6 +354,14 @@ struct NetworkContextParams { +@@ -357,6 +357,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 f2dcc00e..f53c8f5c 100644 --- a/build/patches/Log-dangling-attributes-in-some-html-elements.patch +++ b/build/patches/Log-dangling-attributes-in-some-html-elements.patch @@ -42,7 +42,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 -@@ -5103,6 +5103,14 @@ void Document::ProcessBaseElement() { +@@ -5100,6 +5100,14 @@ void Document::ProcessBaseElement() { KURL base_element_url; if (href) { String stripped_href = StripLeadingAndTrailingHTMLSpaces(*href); @@ -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); } -@@ -5120,6 +5128,14 @@ void Document::ProcessBaseElement() { +@@ -5117,6 +5125,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 } } -@@ -5150,6 +5166,8 @@ void Document::ProcessBaseElement() { +@@ -5147,6 +5163,8 @@ void Document::ProcessBaseElement() { if (target->Contains('<')) UseCounter::Count(*this, WebFeature::kBaseWithOpenBracketInTarget); base_target_ = *target; @@ -84,7 +84,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/element.cc b/third_party/blink/renderer/core/dom/element.cc --- a/third_party/blink/renderer/core/dom/element.cc +++ b/third_party/blink/renderer/core/dom/element.cc -@@ -3897,8 +3897,26 @@ void Element::StripScriptingAttributes( +@@ -4111,8 +4111,26 @@ void Element::StripScriptingAttributes( attribute_vector.Shrink(destination); } @@ -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 -@@ -790,7 +790,8 @@ class CORE_EXPORT Element : public ContainerNode, public Animatable { +@@ -821,7 +821,8 @@ class CORE_EXPORT Element : public ContainerNode { virtual bool HasLegalLinkAttribute(const QualifiedName&) const; // Only called by the parser immediately after element construction. @@ -217,7 +217,7 @@ diff --git a/third_party/blink/renderer/core/html/html_frame_element_base.cc b/t 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 -@@ -168,6 +168,12 @@ void HTMLIFrameElement::CollectStyleForPresentationAttribute( +@@ -170,6 +170,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; -@@ -182,6 +188,16 @@ void HTMLIFrameElement::ParseAttribute( +@@ -184,6 +190,16 @@ void HTMLIFrameElement::ParseAttribute( } AtomicString old_name = name_; name_ = value; @@ -250,7 +250,7 @@ diff --git a/third_party/blink/renderer/core/html/html_iframe_element.cc b/third diff --git a/third_party/blink/renderer/core/html/html_iframe_element.h b/third_party/blink/renderer/core/html/html_iframe_element.h --- a/third_party/blink/renderer/core/html/html_iframe_element.h +++ b/third_party/blink/renderer/core/html/html_iframe_element.h -@@ -66,6 +66,8 @@ class CORE_EXPORT HTMLIFrameElement : public HTMLFrameElementBase { +@@ -68,6 +68,8 @@ class CORE_EXPORT HTMLIFrameElement : public HTMLFrameElementBase, const V8UnionStringOrTrustedHTML* srcdoc() const; void setSrcdoc(const V8UnionStringOrTrustedHTML*, ExceptionState&); @@ -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 -@@ -3246,6 +3246,12 @@ +@@ -3305,6 +3305,12 @@ name: "MacDisableCtrlHomeEnd", status: "stable", }, diff --git a/build/patches/Logcat-crash-reports-UI.patch b/build/patches/Logcat-crash-reports-UI.patch index 4595cc08..60261708 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 -@@ -640,6 +640,7 @@ static_library("ui") { +@@ -642,6 +642,7 @@ static_library("ui") { "//third_party/re2", "//third_party/webrtc_overrides:webrtc_component", "//third_party/zlib", diff --git a/build/patches/Media-fingerprinting-mitigations.patch b/build/patches/Media-fingerprinting-mitigations.patch index 86e69f07..9684d4b6 100644 --- a/build/patches/Media-fingerprinting-mitigations.patch +++ b/build/patches/Media-fingerprinting-mitigations.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/modules/webcodecs/video_decoder.cc b/third_party/blink/renderer/modules/webcodecs/video_decoder.cc --- a/third_party/blink/renderer/modules/webcodecs/video_decoder.cc +++ b/third_party/blink/renderer/modules/webcodecs/video_decoder.cc -@@ -295,7 +295,7 @@ ScriptPromise VideoDecoder::isConfigSupported( +@@ -296,7 +296,7 @@ ScriptPromise VideoDecoder::isConfigSupported( auto* config_copy = CopyConfig(*config); // Run the "Check Configuration Support" algorithm. diff --git a/build/patches/Modify-default-preferences.patch b/build/patches/Modify-default-preferences.patch index 0fd55c14..02a2433d 100644 --- a/build/patches/Modify-default-preferences.patch +++ b/build/patches/Modify-default-preferences.patch @@ -7,10 +7,11 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/about_flags.cc | 1 + .../extensions/background_mode_manager.cc | 2 +- .../browser/chrome_content_browser_client.cc | 2 +- + chrome/browser/prefs/browser_prefs.cc | 2 +- chrome/browser/preloading/preloading_prefs.h | 2 +- chrome/browser/profiles/profile.cc | 2 +- .../reset_page/reset_profile_dialog.html | 2 +- - chrome/browser/ui/browser_ui_prefs.cc | 6 +++--- + chrome/browser/ui/browser_ui_prefs.cc | 4 ++-- components/bookmarks/browser/BUILD.gn | 2 ++ components/bookmarks/browser/bookmark_utils.cc | 7 +++++-- components/bookmarks/browser/features.cc | 17 +++++++++++++++++ @@ -23,7 +24,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../primary_account_manager.cc | 2 +- .../Modify-default-preferences.inc | 8 ++++++++ .../features_cc/Modify-default-preferences.inc | 1 + - 19 files changed, 70 insertions(+), 19 deletions(-) + 20 files changed, 70 insertions(+), 19 deletions(-) create mode 100644 components/bookmarks/browser/features.cc create mode 100644 components/bookmarks/browser/features.h create mode 100755 cromite_flags/chrome/browser/about_flags_cc/Modify-default-preferences.inc @@ -32,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 -@@ -86,6 +86,7 @@ +@@ -82,6 +82,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" @@ -55,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 -@@ -1424,7 +1424,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs( +@@ -1421,7 +1421,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs( void ChromeContentBrowserClient::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref(prefs::kDisable3DAPIs, false); @@ -64,6 +65,18 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch // Register user prefs for mapping SitePerProcess and IsolateOrigins in // user policy in addition to the same named ones in Local State (which are // used for mapping the command-line flags). +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( + registry->RegisterTimePref(kMerchantTrustPageInfoLastOpenTime, base::Time()); + + // Deprecated 12/2025. +- registry->RegisterBooleanPref(kCloudPrintProxyEnabled, true); ++ registry->RegisterBooleanPref(kCloudPrintProxyEnabled, false); + registry->RegisterStringPref(kCloudPrintEmail, std::string()); + } + 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 @@ -103,20 +116,16 @@ diff --git a/chrome/browser/resources/settings/reset_page/reset_profile_dialog.h 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 -@@ -129,10 +129,10 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -129,7 +129,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref(prefs::kWebAppCreateInAppsMenu, true); registry->RegisterBooleanPref(prefs::kWebAppCreateInQuickLaunchBar, true); registry->RegisterBooleanPref( - translate::prefs::kOfferTranslateEnabled, true, + translate::prefs::kOfferTranslateEnabled, false, user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); - registry->RegisterStringPref(prefs::kCloudPrintEmail, std::string()); -- registry->RegisterBooleanPref(prefs::kCloudPrintProxyEnabled, true); -+ registry->RegisterBooleanPref(prefs::kCloudPrintProxyEnabled, false); registry->RegisterDictionaryPref(prefs::kBrowserWindowPlacement); registry->RegisterDictionaryPref(prefs::kBrowserWindowPlacementPopup); - registry->RegisterDictionaryPref(prefs::kAppWindowPlacement); -@@ -209,7 +209,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -207,7 +207,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { #endif registry->RegisterBooleanPref( @@ -219,7 +228,7 @@ new file mode 100644 diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc --- a/components/content_settings/core/browser/content_settings_registry.cc +++ b/components/content_settings/core/browser/content_settings_registry.cc -@@ -157,7 +157,7 @@ void ContentSettingsRegistry::Init() { +@@ -156,7 +156,7 @@ void ContentSettingsRegistry::Init() { PermissionSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY); Register(ContentSettingsType::NOTIFICATIONS, "notifications", @@ -228,7 +237,7 @@ diff --git a/components/content_settings/core/browser/content_settings_registry. /*allowlisted_primary_schemes=*/{}, /*valid_settings=*/ {CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, CONTENT_SETTING_ASK}, -@@ -218,7 +218,7 @@ void ContentSettingsRegistry::Init() { +@@ -217,7 +217,7 @@ void ContentSettingsRegistry::Init() { PermissionSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY); Register(ContentSettingsType::PROTECTED_MEDIA_IDENTIFIER, @@ -237,7 +246,7 @@ diff --git a/components/content_settings/core/browser/content_settings_registry. WebsiteSettingsInfo::UNSYNCABLE, /*allowlisted_primary_schemes=*/{}, #if BUILDFLAG(IS_ANDROID) /*valid_settings=*/ -@@ -245,7 +245,7 @@ void ContentSettingsRegistry::Init() { +@@ -244,7 +244,7 @@ void ContentSettingsRegistry::Init() { PermissionSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY); Register(ContentSettingsType::BACKGROUND_SYNC, "background-sync", @@ -246,7 +255,7 @@ diff --git a/components/content_settings/core/browser/content_settings_registry. /*allowlisted_primary_schemes=*/{}, /*valid_settings=*/{CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK}, WebsiteSettingsInfo::TOP_ORIGIN_ONLY_SCOPE, -@@ -360,7 +360,7 @@ void ContentSettingsRegistry::Init() { +@@ -359,7 +359,7 @@ void ContentSettingsRegistry::Init() { // TODO(crbug.com/40602007): Update this to "SECURE_ONLY" once // DeviceOrientationEvents and DeviceMotionEvents are only fired in secure // contexts. @@ -258,7 +267,7 @@ diff --git a/components/content_settings/core/browser/content_settings_registry. diff --git a/components/content_settings/core/browser/cookie_settings.cc b/components/content_settings/core/browser/cookie_settings.cc --- a/components/content_settings/core/browser/cookie_settings.cc +++ b/components/content_settings/core/browser/cookie_settings.cc -@@ -94,7 +94,7 @@ void CookieSettings::RegisterProfilePrefs( +@@ -83,7 +83,7 @@ void CookieSettings::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable* registry) { registry->RegisterIntegerPref( prefs::kCookieControlsMode, @@ -282,7 +291,7 @@ diff --git a/components/payments/core/payment_prefs.cc b/components/payments/cor diff --git a/components/safe_browsing/core/common/safe_browsing_prefs.cc b/components/safe_browsing/core/common/safe_browsing_prefs.cc --- a/components/safe_browsing/core/common/safe_browsing_prefs.cc +++ b/components/safe_browsing/core/common/safe_browsing_prefs.cc -@@ -232,13 +232,13 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { +@@ -270,13 +270,13 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { registry->RegisterBooleanPref( prefs::kSafeBrowsingSawInterstitialScoutReporting, false); registry->RegisterBooleanPref( @@ -311,10 +320,10 @@ diff --git a/components/security_interstitials/core/features.cc b/components/sec diff --git a/components/signin/internal/identity_manager/primary_account_manager.cc b/components/signin/internal/identity_manager/primary_account_manager.cc --- a/components/signin/internal/identity_manager/primary_account_manager.cc +++ b/components/signin/internal/identity_manager/primary_account_manager.cc -@@ -330,7 +330,7 @@ void PrimaryAccountManager::RegisterProfilePrefs(PrefRegistrySimple* registry) { - prefs::kGoogleServicesSyncingGaiaIdMigratedToSignedIn, std::string()); - registry->RegisterStringPref( +@@ -322,7 +322,7 @@ void PrimaryAccountManager::RegisterProfilePrefs(PrefRegistrySimple* registry) { prefs::kGoogleServicesSyncingUsernameMigratedToSignedIn, std::string()); + registry->RegisterIntegerPref(prefs::kGoogleServicesSyncingUserMigrationType, + /*SyncToSigninMigrationType::kUnknown=*/0); - registry->RegisterBooleanPref(prefs::kSigninAllowed, true); + registry->RegisterBooleanPref(prefs::kSigninAllowed, false); registry->RegisterBooleanPref(prefs::kSignedInWithCredentialProvider, false); diff --git a/build/patches/Move-navigation-bar-to-bottom.patch b/build/patches/Move-navigation-bar-to-bottom.patch index 496d84ec..824505c9 100644 --- a/build/patches/Move-navigation-bar-to-bottom.patch +++ b/build/patches/Move-navigation-bar-to-bottom.patch @@ -17,8 +17,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html cc/base/features.h | 2 + cc/input/browser_controls_offset_manager.cc | 6 + cc/trees/layer_tree_host_impl.cc | 3 + - .../tab_management/TabGroupUiCoordinator.java | 7 +- - .../tab_management/TabGroupUiMediator.java | 51 +++++- + .../tab_management/TabGroupUiCoordinator.java | 8 +- + .../tab_management/TabGroupUiMediator.java | 52 +++++- .../tab_management/TabGroupUiProperties.java | 5 + .../tab_management/TabGroupUiToolbarView.java | 17 ++ .../tab_management/TabGroupUiViewBinder.java | 3 + @@ -89,7 +89,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../toolbar/ToolbarLongPressMenuHandler.java | 8 - .../bottom/BottomControlsContentDelegate.java | 12 +- .../bottom/BottomControlsCoordinator.java | 11 +- - .../bottom/BottomControlsMediator.java | 32 +++- + .../bottom/BottomControlsMediator.java | 35 ++++- .../bottom/BottomControlsProperties.java | 6 +- .../bottom/BottomControlsViewBinder.java | 2 + .../bottom/ScrollingBottomViewSceneLayer.java | 19 ++- @@ -100,11 +100,11 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../res/xml/accessibility_preferences.xml | 8 + .../accessibility/AccessibilitySettings.java | 27 ++++ .../AccessibilitySettingsDelegate.java | 9 ++ - components/viz/common/features.cc | 2 + + components/viz/common/features.cc | 1 + .../render_widget_host_view_android.cc | 3 + .../Move-navigation-bar-to-bottom.inc | 17 ++ .../renderer/core/frame/viewport_data.cc | 1 + - 91 files changed, 1063 insertions(+), 88 deletions(-) + 91 files changed, 1067 insertions(+), 88 deletions(-) create mode 100644 chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/ReversedLinearLayout.java create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Move-navigation-bar-to-bottom.inc @@ -141,7 +141,7 @@ diff --git a/cc/base/features.h b/cc/base/features.h diff --git a/cc/input/browser_controls_offset_manager.cc b/cc/input/browser_controls_offset_manager.cc --- a/cc/input/browser_controls_offset_manager.cc +++ b/cc/input/browser_controls_offset_manager.cc -@@ -21,6 +21,7 @@ +@@ -25,6 +25,7 @@ #include "ui/gfx/animation/tween.h" #include "ui/gfx/geometry/transform.h" #include "ui/gfx/geometry/vector2d_f.h" @@ -149,7 +149,7 @@ diff --git a/cc/input/browser_controls_offset_manager.cc b/cc/input/browser_cont namespace cc { namespace { -@@ -549,6 +550,11 @@ gfx::Vector2dF BrowserControlsOffsetManager::ScrollBy( +@@ -623,6 +624,11 @@ gfx::Vector2dF BrowserControlsOffsetManager::ScrollBy( // content. If the top controls have no height, the content should scroll // immediately. gfx::Vector2dF applied_delta(0.f, old_top_offset - ContentTopOffset()); @@ -164,7 +164,7 @@ diff --git a/cc/input/browser_controls_offset_manager.cc b/cc/input/browser_cont 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 -@@ -5292,6 +5292,9 @@ bool LayerTreeHostImpl::AnimateBrowserControls(base::TimeTicks time) { +@@ -5464,6 +5464,9 @@ bool LayerTreeHostImpl::AnimateBrowserControls(base::TimeTicks time) { if (scroll_delta.IsZero()) return false; @@ -177,7 +177,15 @@ diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator.java -@@ -57,6 +57,7 @@ import org.chromium.components.sensitive_content.SensitiveContentFeatures; +@@ -26,6 +26,7 @@ import org.chromium.base.supplier.ObservableSupplier; + import org.chromium.base.supplier.ObservableSupplierImpl; + import org.chromium.base.supplier.ObservableSuppliers; + import org.chromium.base.supplier.OneshotSupplier; ++import org.chromium.base.supplier.NullableObservableSupplier; + import org.chromium.base.supplier.SettableNonNullObservableSupplier; + import org.chromium.base.supplier.SettableNullableObservableSupplier; + import org.chromium.build.annotations.Initializer; +@@ -61,6 +62,7 @@ import org.chromium.components.sensitive_content.SensitiveContentFeatures; import org.chromium.ui.modaldialog.ModalDialogManager; import org.chromium.ui.modelutil.PropertyModel; import org.chromium.ui.modelutil.PropertyModelChangeProcessor; @@ -185,17 +193,17 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser import java.util.List; import java.util.function.Supplier; -@@ -196,7 +197,8 @@ public class TabGroupUiCoordinator implements TabGroupUiMediator.ResetHandler, T +@@ -198,7 +200,8 @@ public class TabGroupUiCoordinator implements TabGroupUiMediator.ResetHandler, T @Initializer public void initializeWithNative( BottomControlsCoordinator.BottomControlsVisibilityController visibilityController, - Callback onSnapshotTokenChange) { + Callback onSnapshotTokenChange, -+ TopUiThemeColorProvider topUiThemeColorProvider, ObservableSupplier tabSupplier) { ++ TopUiThemeColorProvider topUiThemeColorProvider, NullableObservableSupplier tabSupplier) { ObservableSupplierImpl tabStripTokenSupplier = new ObservableSupplierImpl<>(); var currentTabGroupModelFilterSupplier = -@@ -293,7 +295,8 @@ public class TabGroupUiCoordinator implements TabGroupUiMediator.ResetHandler, T +@@ -294,7 +297,8 @@ public class TabGroupUiCoordinator implements TabGroupUiMediator.ResetHandler, T sharedImageTilesConfigBuilder, mThemeColorProvider, onSnapshotTokenChange, @@ -208,7 +216,15 @@ 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/TabGroupUiMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java -@@ -77,6 +77,12 @@ import java.util.List; +@@ -25,6 +25,7 @@ import org.chromium.base.Token; + import org.chromium.base.metrics.RecordHistogram; + import org.chromium.base.metrics.RecordUserAction; + import org.chromium.base.supplier.LazyOneshotSupplier; ++import org.chromium.base.supplier.NullableObservableSupplier; + import org.chromium.base.supplier.NonNullObservableSupplier; + import org.chromium.base.supplier.ObservableSupplier; + import org.chromium.base.supplier.ObservableSupplierImpl; +@@ -79,6 +80,12 @@ import java.util.List; import java.util.Objects; import java.util.function.Supplier; @@ -221,7 +237,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser /** A mediator for the TabGroupUi. Responsible for managing the internal state of the component. */ @NullMarked public class TabGroupUiMediator implements BackPressHandler { -@@ -152,6 +158,11 @@ public class TabGroupUiMediator implements BackPressHandler { +@@ -154,6 +161,11 @@ public class TabGroupUiMediator implements BackPressHandler { private final Callback mOnSnapshotTokenChange; private final ObservableSupplier mChildTokenSupplier; @@ -233,18 +249,18 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser // These should only be used when regular (non-incognito) tabs are set in the model. private final @Nullable SharedImageTilesCoordinator mSharedImageTilesCoordinator; private final SharedImageTilesConfig.@Nullable Builder mSharedImageTilesConfigBuilder; -@@ -183,7 +194,9 @@ public class TabGroupUiMediator implements BackPressHandler { +@@ -184,7 +196,9 @@ public class TabGroupUiMediator implements BackPressHandler { SharedImageTilesConfig.@Nullable Builder sharedImageTilesConfigBuilder, ThemeColorProvider themeColorProvider, Callback onSnapshotTokenChange, - ObservableSupplierImpl childTokenSupplier) { + ObservableSupplierImpl childTokenSupplier, -+ TopUiThemeColorProvider topUiThemeColorProvider, ObservableSupplier tabSupplier) { ++ TopUiThemeColorProvider topUiThemeColorProvider, NullableObservableSupplier tabSupplier) { + mTopUiThemeColorProvider = topUiThemeColorProvider; mResetHandler = resetHandler; mModel = model; mTabModelSelector = tabModelSelector; -@@ -237,11 +250,30 @@ public class TabGroupUiMediator implements BackPressHandler { +@@ -238,11 +252,30 @@ public class TabGroupUiMediator implements BackPressHandler { mIsShowingHub = true; } @@ -275,7 +291,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser resetTabStrip(); } -@@ -263,6 +295,8 @@ public class TabGroupUiMediator implements BackPressHandler { +@@ -264,6 +297,8 @@ public class TabGroupUiMediator implements BackPressHandler { @Override public void restoreCompleted() { resetTabStrip(); @@ -284,7 +300,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser } @Override -@@ -361,6 +395,8 @@ public class TabGroupUiMediator implements BackPressHandler { +@@ -361,6 +396,8 @@ public class TabGroupUiMediator implements BackPressHandler { mModel.set(TabGroupUiProperties.WIDTH_PX_CALLBACK, mWidthPxSupplier::set); resetTabStrip(); @@ -293,7 +309,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser mHandleBackPressChangedSupplier = handleBackPressChangedSupplier; if (mTabGridDialogControllerSupplier != null) { mTabGridDialogControllerSupplier.onAvailable( -@@ -393,6 +429,18 @@ public class TabGroupUiMediator implements BackPressHandler { +@@ -393,6 +430,18 @@ public class TabGroupUiMediator implements BackPressHandler { mModel.set(TINT, mThemeColorProvider.getTint()); } @@ -312,14 +328,14 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser private void setupToolbarButtons() { View.OnClickListener showGroupDialogOnClickListener = view -> { -@@ -585,6 +633,7 @@ public class TabGroupUiMediator implements BackPressHandler { +@@ -584,6 +633,7 @@ public class TabGroupUiMediator implements BackPressHandler { @SuppressWarnings("NullAway") public void destroy() { + mTabObserver.destroy(); if (mTabModelSelector != null) { - var filterProvider = mTabModelSelector.getTabGroupModelFilterProvider(); - + mTabModelSelector.removeTabGroupModelFilterObserver(mTabModelObserver); + mTabModelSelector.getCurrentTabModelSupplier().removeObserver(mCurrentTabModelObserver); diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiProperties.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiProperties.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiProperties.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiProperties.java @@ -432,7 +448,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser import android.graphics.Rect; import android.util.Size; import android.view.InputDevice; -@@ -75,6 +81,8 @@ import org.chromium.ui.modelutil.SimpleRecyclerViewAdapter; +@@ -76,6 +82,8 @@ import org.chromium.ui.modelutil.SimpleRecyclerViewAdapter; import org.chromium.ui.recyclerview.widget.ItemTouchHelper2; import org.chromium.ui.widget.ViewLookupCachingFrameLayout; @@ -441,7 +457,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; -@@ -163,6 +171,124 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO +@@ -164,6 +172,124 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO private int mAwaitingTabId = Tab.INVALID_TAB_ID; private @TabActionState int mTabActionState; @@ -566,7 +582,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser /** * Construct a coordinator for UI that shows a list of tabs. * -@@ -423,6 +549,12 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO +@@ -424,6 +550,12 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO checkAwaitingLayout(); } }; @@ -579,7 +595,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser mRecyclerView.setLayoutManager(gridLayoutManager); mMediator.registerOrientationListener(gridLayoutManager); mMediator.updateSpanCount( -@@ -442,6 +574,17 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO +@@ -443,6 +575,17 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO } }; mRecyclerView.setLayoutManager(layoutManager); @@ -597,16 +613,16 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser } mMediator.setRecyclerViewItemAnimationToggle(mRecyclerView::setDisableItemAnimations); } -@@ -461,7 +604,7 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO - if (emptyViewParent != null) { - mTabListEmptyCoordinator = - new TabListEmptyCoordinator( -- emptyViewParent, mModelList, this::runOnItemAnimatorFinished); -+ emptyViewParent, mModelList, this::runOnItemAnimatorFinished, mBrowserControlsStateProvider); +@@ -465,7 +608,7 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO + mRecyclerView, + emptyViewParent, + mModelList, +- this::runOnItemAnimatorFinished); ++ this::runOnItemAnimatorFinished, mBrowserControlsStateProvider); } mTabListHighlighter = new TabListHighlighter(mModelList); mTabListMergeAnimationManager = new TabListMergeAnimationManager(mRecyclerView); -@@ -798,6 +941,9 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO +@@ -802,6 +945,9 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO void prepareTabSwitcherPaneView() { registerLayoutChangeListener(); mRecyclerView.setupCustomItemAnimator(); @@ -619,7 +635,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/TabListEmptyCoordinator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEmptyCoordinator.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEmptyCoordinator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEmptyCoordinator.java -@@ -11,7 +11,9 @@ import android.view.View; +@@ -13,7 +13,9 @@ import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; @@ -627,9 +643,9 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser +import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider; import androidx.annotation.DrawableRes; + import androidx.annotation.Px; import androidx.annotation.StringRes; - -@@ -24,6 +26,7 @@ import org.chromium.chrome.browser.flags.ChromeFeatureList; +@@ -27,6 +29,7 @@ import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.tab_ui.R; import org.chromium.ui.modelutil.ListObservable; import org.chromium.ui.modelutil.ListObservable.ListObserver; @@ -637,19 +653,23 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser /** * Empty coordinator that is responsible for showing an empty state view in tab switcher when we are -@@ -47,15 +50,18 @@ class TabListEmptyCoordinator { +@@ -51,12 +54,14 @@ class TabListEmptyCoordinator { private boolean mIsTabSwitcherShowing; private boolean mIsListObserverAttached; private @Nullable TabListEmptyIllustrationAnimationManager mIllustrationAnimationManager; + private BrowserControlsStateProvider mBrowserControlsStateProvider; public TabListEmptyCoordinator( -- ViewGroup rootView, TabListModel model, Callback runOnItemAnimatorFinished) { -+ ViewGroup rootView, TabListModel model, Callback runOnItemAnimatorFinished, + TabListRecyclerView recyclerView, + ViewGroup rootView, + TabListModel model, +- Callback runOnItemAnimatorFinished) { ++ Callback runOnItemAnimatorFinished, + BrowserControlsStateProvider browserControlsStateProvider) { + mRecyclerView = recyclerView; mRootView = rootView; mContext = rootView.getContext(); - mRunOnItemAnimatorFinished = runOnItemAnimatorFinished; +@@ -64,6 +69,7 @@ class TabListEmptyCoordinator { // Observe TabListModel to determine when to add / remove empty state view. mModel = model; @@ -657,7 +677,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser mListObserver = new ListObserver<>() { @Override -@@ -188,6 +194,15 @@ class TabListEmptyCoordinator { +@@ -214,6 +220,15 @@ class TabListEmptyCoordinator { public void attachEmptyView() { if (mEmptyView != null && mEmptyView.getParent() == null) { mRootView.addView(mEmptyView); @@ -676,15 +696,15 @@ 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/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 -@@ -44,6 +44,7 @@ import org.chromium.build.BuildConfig; +@@ -45,6 +45,7 @@ import org.chromium.build.BuildConfig; import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; import org.chromium.chrome.browser.compositor.CompositorViewHolder; +import org.chromium.chrome.browser.flags.ChromeFeatureList; - import org.chromium.chrome.browser.hub.DisplayButtonData; import org.chromium.chrome.browser.hub.FadeHubLayoutAnimationFactory; import org.chromium.chrome.browser.hub.FullButtonData; -@@ -174,6 +175,7 @@ public abstract class TabSwitcherPaneBase implements Pane, TabSwitcher, TabSwitc + import org.chromium.chrome.browser.hub.HubContainerView; +@@ -146,6 +147,7 @@ public abstract class TabSwitcherPaneBase extends PaneBase private @Nullable PaneHubController mPaneHubController; private @Nullable Long mWaitForTabStateInitializedStartTimeMs; private final @Nullable ObservableSupplier mXrSpaceModeObservableSupplier; @@ -692,7 +712,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser /** * @param context The activity context. -@@ -490,6 +492,13 @@ public abstract class TabSwitcherPaneBase implements Pane, TabSwitcher, TabSwitc +@@ -454,6 +456,13 @@ public abstract class TabSwitcherPaneBase extends PaneBase Log.d(TAG, "Geometry not ready using fallback animation."); useFallbackAnimation = true; } @@ -717,7 +737,7 @@ diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/ import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; -@@ -763,6 +764,9 @@ public class FeedSurfaceCoordinator +@@ -774,6 +775,9 @@ public class FeedSurfaceCoordinator ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); layoutParams.setMarginStart(margin); layoutParams.setMarginEnd(margin); @@ -741,7 +761,7 @@ diff --git a/chrome/android/java/res/layout/search_activity.xml b/chrome/android 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 -@@ -44,7 +44,8 @@ found in the LICENSE file. +@@ -45,7 +45,8 @@ found in the LICENSE file. android:fragment="org.chromium.chrome.browser.toolbar.settings.AddressBarSettingsFragment" android:key="address_bar" android:order="7" @@ -754,12 +774,12 @@ 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/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 -@@ -1074,7 +1074,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt - mRootUiCoordinator.getDataSharingTabManager(), +@@ -1067,7 +1067,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt mRootUiCoordinator.getBottomSheetController(), mRootUiCoordinator.getShareDelegateSupplier(), -- mXrSceneCoreSessionManagerSupplier.get()); -+ mXrSceneCoreSessionManagerSupplier.get(), + mXrSceneCoreSessionManagerSupplier.get(), +- mBackPressManager); ++ mBackPressManager, + /*browserControlsManagerSupplier*/ () -> getBrowserControlsManager()); mLayoutStateProviderSupplier.set(mLayoutManager); } @@ -876,7 +896,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/tabmodel/He 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 -@@ -271,6 +271,10 @@ public class CompositorViewHolder extends FrameLayout +@@ -273,6 +273,10 @@ public class CompositorViewHolder extends FrameLayout @Override public void setCurrentTouchEventOffsets(float top) { EventForwarder forwarder = getEventForwarder(); @@ -887,9 +907,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/Comp if (forwarder != null) forwarder.setCurrentTouchOffsetY(top); } -@@ -965,6 +969,9 @@ public class CompositorViewHolder extends FrameLayout - ? assumeNonNull(mApplicationBottomInsetSupplier.get()) - .webContentsHeightInset +@@ -992,6 +996,9 @@ public class CompositorViewHolder extends FrameLayout + mApplicationBottomInsetSupplier != null + ? mApplicationBottomInsetSupplier.getInsets().webContentsHeightInset : 0; + if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + keyboardInset = 0; @@ -945,7 +965,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromeTablet.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromeTablet.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromeTablet.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromeTablet.java -@@ -40,6 +40,7 @@ import org.chromium.ui.base.WindowAndroid; +@@ -43,6 +43,7 @@ import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.dragdrop.DragAndDropDelegate; import org.chromium.ui.resources.dynamics.DynamicResourceLoader; import org.chromium.ui.xr.scenecore.XrSceneCoreSessionManager; @@ -953,22 +973,22 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo import java.util.function.Supplier; -@@ -111,7 +112,8 @@ public class LayoutManagerChromeTablet extends LayoutManagerChrome { - DataSharingTabManager dataSharingTabManager, +@@ -115,7 +116,8 @@ public class LayoutManagerChromeTablet extends LayoutManagerChrome { BottomSheetController bottomSheetController, Supplier shareDelegateSupplier, -- @Nullable XrSceneCoreSessionManager xrSceneCoreSessionManager) { -+ @Nullable XrSceneCoreSessionManager xrSceneCoreSessionManager, + @Nullable XrSceneCoreSessionManager xrSceneCoreSessionManager, +- BackPressManager backPressManager) { ++ BackPressManager backPressManager, + Supplier browserControlsManagerSupplier) { super( host, contentContainer, -@@ -149,7 +151,8 @@ public class LayoutManagerChromeTablet extends LayoutManagerChrome { - dataSharingTabManager, +@@ -154,7 +156,8 @@ public class LayoutManagerChromeTablet extends LayoutManagerChrome { bottomSheetController, shareDelegateSupplier, -- xrSpaceModeObservableSupplier); -+ xrSpaceModeObservableSupplier, + xrSpaceModeObservableSupplier, +- backPressManager); ++ backPressManager, + browserControlsManagerSupplier); addSceneOverlay(mTabStripLayoutHelperManager); addObserver(mTabStripLayoutHelperManager.getTabSwitcherObserver()); @@ -976,7 +996,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/ToolbarSwipeLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/ToolbarSwipeLayout.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/ToolbarSwipeLayout.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/ToolbarSwipeLayout.java -@@ -54,6 +54,8 @@ import org.chromium.ui.base.LocalizationUtils; +@@ -55,6 +55,8 @@ import org.chromium.ui.base.LocalizationUtils; import org.chromium.ui.interpolators.Interpolators; import org.chromium.ui.resources.ResourceManager; @@ -985,7 +1005,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo import java.util.ArrayList; import java.util.List; -@@ -527,7 +529,11 @@ public class ToolbarSwipeLayout extends Layout { +@@ -528,7 +530,11 @@ public class ToolbarSwipeLayout extends Layout { mLeftToolbarOverlay.setXOffset(leftX * dpToPx); } mLeftTab.setX(leftX); @@ -998,7 +1018,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo needUpdate = updateSnap(dt, mLeftTab) || needUpdate; } else if (mLeftToolbarOverlay != null) { mLeftToolbarOverlay.setManualVisibility(false); -@@ -540,7 +546,11 @@ public class ToolbarSwipeLayout extends Layout { +@@ -541,7 +547,11 @@ public class ToolbarSwipeLayout extends Layout { mRightToolbarOverlay.setXOffset(rightX * dpToPx); } mRightTab.setX(rightX); @@ -1014,7 +1034,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/ScrollDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/ScrollDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/ScrollDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/ScrollDelegate.java -@@ -361,7 +361,7 @@ public class ScrollDelegate { +@@ -352,7 +352,7 @@ public class ScrollDelegate { boolean useUnadjustedScrollOffset = isRtl != isLeft; float scrollOffset = mScrollOffset; @@ -1026,7 +1046,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java -@@ -116,6 +116,8 @@ import org.chromium.ui.interpolators.Interpolators; +@@ -118,6 +118,8 @@ import org.chromium.ui.interpolators.Interpolators; import org.chromium.ui.resources.ResourceManager; import org.chromium.ui.util.ColorUtils; import org.chromium.url.GURL; @@ -1035,7 +1055,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over import java.util.ArrayList; import java.util.List; -@@ -276,12 +278,17 @@ public class StripLayoutHelperManager +@@ -282,12 +284,17 @@ public class StripLayoutHelperManager // Drag-Drop private @Nullable TabStripDragHandler mTabStripDragHandler; @@ -1053,7 +1073,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over if (mModelSelectorButton != null && mModelSelectorButton.onDown(x, y, buttons)) { return; } -@@ -306,6 +313,7 @@ public class StripLayoutHelperManager +@@ -312,6 +319,7 @@ public class StripLayoutHelperManager if (DragDropGlobalState.hasValue()) { return; } @@ -1061,7 +1081,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over if (mModelSelectorButton != null) { mModelSelectorButton.drag(x, y); } -@@ -317,6 +325,7 @@ public class StripLayoutHelperManager +@@ -323,6 +331,7 @@ public class StripLayoutHelperManager if (DragDropGlobalState.hasValue()) { return; } @@ -1069,7 +1089,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over long time = time(); if (mModelSelectorButton != null && mModelSelectorButton.click(x, y, buttons)) { mModelSelectorButton.handleClick(time, buttons, modifiers); -@@ -330,6 +339,7 @@ public class StripLayoutHelperManager +@@ -336,6 +345,7 @@ public class StripLayoutHelperManager if (DragDropGlobalState.hasValue()) { return; } @@ -1077,7 +1097,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over getActiveStripLayoutHelper().fling(time(), velocityX); } -@@ -338,6 +348,7 @@ public class StripLayoutHelperManager +@@ -344,6 +354,7 @@ public class StripLayoutHelperManager if (DragDropGlobalState.hasValue()) { return; } @@ -1085,17 +1105,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over getActiveStripLayoutHelper().onLongPress(x, y); } -@@ -477,7 +488,8 @@ public class StripLayoutHelperManager - DataSharingTabManager dataSharingTabManager, +@@ -484,7 +495,8 @@ public class StripLayoutHelperManager BottomSheetController bottomSheetController, Supplier shareDelegateSupplier, -- @Nullable ObservableSupplier xrSpaceModeObservableSupplier) { -+ @Nullable ObservableSupplier xrSpaceModeObservableSupplier, + @Nullable ObservableSupplier xrSpaceModeObservableSupplier, +- BackPressManager backPressManager) { ++ BackPressManager backPressManager, + Supplier browserControlsManagerSupplier) { mContext = context; Resources res = context.getResources(); mManagerHost = managerHost; -@@ -597,6 +609,8 @@ public class StripLayoutHelperManager +@@ -608,6 +620,8 @@ public class StripLayoutHelperManager multiInstanceManager, shareDelegateSupplier, TabGroupListBottomSheetCoordinator::new); @@ -1104,7 +1124,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over tabHoverCardViewStub.setOnInflateListener( (viewStub, view) -> { -@@ -818,6 +832,7 @@ public class StripLayoutHelperManager +@@ -827,6 +841,7 @@ public class StripLayoutHelperManager RectF viewport, RectF visibleViewport, ResourceManager resourceManager) { assert mTabStripTreeProvider != null; mResourceManager = resourceManager; @@ -1112,7 +1132,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over // When refactor is enabled, the mSceneLayerYOffset / mSceneLayerVisibleHeight wil be // calculated externally, so we can skip the adjustment here. -@@ -861,6 +876,10 @@ public class StripLayoutHelperManager +@@ -870,6 +885,10 @@ public class StripLayoutHelperManager getStripTransitionScrimColor(), mStripTransitionScrimOpacity); } @@ -1123,7 +1143,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over mTabStripTreeProvider.pushAndUpdateStrip( this, mLayerTitleCacheSupplier.get(), -@@ -874,7 +893,9 @@ public class StripLayoutHelperManager +@@ -883,7 +902,9 @@ public class StripLayoutHelperManager mStripTransitionScrimOpacity, getActiveStripLayoutHelper().getLeftPaddingToDraw(), getActiveStripLayoutHelper().getRightPaddingToDraw(), @@ -1134,7 +1154,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over } private float getVisibleHeightDp(float topControlOffsetDp) { -@@ -976,11 +997,21 @@ public class StripLayoutHelperManager +@@ -985,11 +1006,21 @@ public class StripLayoutHelperManager mRightPadding, mTopPadding); @@ -1363,15 +1383,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/modaldialog/Chr 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 -@@ -132,6 +132,7 @@ import org.chromium.content_public.browser.NavigationController; - import org.chromium.ui.base.DeviceFormFactor; +@@ -136,6 +136,7 @@ import org.chromium.ui.base.DeviceFormFactor; import org.chromium.ui.base.WindowAndroid; + import org.chromium.ui.modaldialog.ModalDialogManager; import org.chromium.url.GURL; +import org.chromium.chrome.browser.flags.ChromeFeatureList; import androidx.annotation.NonNull; import org.chromium.chrome.browser.bookmarks.BookmarkManagerOpener; -@@ -916,11 +917,16 @@ public class NewTabPage +@@ -931,11 +932,16 @@ public class NewTabPage final int topControlsDistanceToRest = mBrowserControlsStateProvider.getContentOffset() - mBrowserControlsStateProvider.getTopControlsHeight(); @@ -1390,7 +1410,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. if (topMargin != layoutParams.topMargin || bottomMargin != layoutParams.bottomMargin) { layoutParams.topMargin = topMargin; -@@ -936,9 +942,7 @@ public class NewTabPage +@@ -951,9 +957,7 @@ public class NewTabPage * strip. */ private int getToolbarExtraYOffset() { @@ -1414,7 +1434,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL import android.view.View; import android.view.ViewGroup; import android.view.ViewStub; -@@ -214,7 +217,12 @@ public class NewTabPageLayout extends LinearLayout +@@ -230,7 +233,12 @@ public class NewTabPageLayout extends LinearLayout Log.i(TAG, "NewTabPageLayout.onFinishInflate before insertSiteSectionView"); initializeSiteSectionView(); @@ -1431,7 +1451,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsPage.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsPage.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsPage.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsPage.java -@@ -33,6 +33,7 @@ import org.chromium.components.embedder_support.util.UrlConstants; +@@ -34,6 +34,7 @@ import org.chromium.components.embedder_support.util.UrlConstants; import org.chromium.ui.base.DeviceFormFactor; import org.chromium.ui.base.ViewUtils; import org.chromium.ui.edge_to_edge.EdgeToEdgePadAdjuster; @@ -1439,7 +1459,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsP /** * The native recent tabs page. Lists recently closed tabs, open windows and tabs from the user's -@@ -117,7 +118,8 @@ public class RecentTabsPage +@@ -118,7 +119,8 @@ public class RecentTabsPage mView.addOnAttachStateChangeListener(this); @@ -1449,7 +1469,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsP mBrowserControlsStateProvider = browserControlsStateProvider; mBrowserControlsStateProvider.addObserver(this); onBottomControlsHeightChanged( -@@ -129,14 +131,23 @@ public class RecentTabsPage +@@ -130,14 +132,23 @@ public class RecentTabsPage mTabStripHeightSupplier = tabStripHeightSupplier; mView.setPadding(0, mTabStripHeightSupplier.get(), 0, 0); @@ -1475,7 +1495,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsP mEdgeToEdgeSupplier = edgeToEdgeSupplier; mPadAdjuster = EdgeToEdgeControllerFactory.createForViewAndObserveSupplier( -@@ -362,7 +373,7 @@ public class RecentTabsPage +@@ -363,7 +374,7 @@ public class RecentTabsPage if (mBrowserControlsStateProvider == null) return; final View recentTabsRoot = mView.findViewById(R.id.recent_tabs_root); @@ -1484,7 +1504,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsP final int contentOffset = mBrowserControlsStateProvider.getContentOffset(); ViewGroup.MarginLayoutParams layoutParams = (ViewGroup.MarginLayoutParams) recentTabsRoot.getLayoutParams(); -@@ -378,9 +389,17 @@ public class RecentTabsPage +@@ -379,9 +390,17 @@ public class RecentTabsPage // If the content offset is different from the margin, we use translationY to position the // view in line with the content offset. @@ -1536,9 +1556,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se +import androidx.coordinatorlayout.widget.CoordinatorLayout; + import java.lang.ref.WeakReference; + import java.util.function.Supplier; - /** Queries the user's default search engine and shows autocomplete suggestions. */ -@@ -305,6 +310,15 @@ public class SearchActivity extends AsyncInitializationActivity +@@ -306,6 +311,15 @@ public class SearchActivity extends AsyncInitializationActivity // Build the search box. mSearchBox = contentView.findViewById(R.id.search_location_bar); mAnchorView = contentView.findViewById(R.id.toolbar); @@ -1557,7 +1577,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/settings/FragmentDependencyProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java -@@ -189,6 +189,11 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl +@@ -201,6 +201,11 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl if (fragment instanceof INeedSnackbarManager) { ((INeedSnackbarManager)fragment).setSnackbarManagerSupplier(mSnackbarManagerSupplier); } @@ -1621,7 +1641,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/status_indicato 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 -@@ -235,6 +235,9 @@ import org.chromium.url.GURL; +@@ -242,6 +242,9 @@ import org.chromium.url.GURL; import java.util.List; import java.util.function.Supplier; @@ -1631,7 +1651,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar /** * Contains logic for managing the toolbar visual component. This class manages the interactions * with the rest of the application to ensure the toolbar is always visually up to date. -@@ -904,6 +907,17 @@ public class ToolbarManager +@@ -896,6 +899,17 @@ public class ToolbarManager /* matchTrustedCdnUrl= */ mIsCustomTab); mControlContainer = controlContainer; mToolbarHairline = mControlContainer.findViewById(R.id.toolbar_hairline); @@ -1649,7 +1669,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar mBookmarkModelSupplier = bookmarkModelSupplier; mBookmarkModelSupplier.addObserver(mBookmarkModelSupplierObserver); -@@ -1623,6 +1637,7 @@ public class ToolbarManager +@@ -1602,6 +1616,7 @@ public class ToolbarManager // the height won't be measured by the background image. if (mControlContainer.getBackground() == null) { setControlContainerTopMargin(getToolbarExtraYOffset()); @@ -1657,7 +1677,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar } else if (mLayoutChangeListener == null) { mLayoutChangeListener = (view, -@@ -1636,6 +1651,7 @@ public class ToolbarManager +@@ -1615,6 +1630,7 @@ public class ToolbarManager oldBottom) -> { if (mControlContainer.getBackground() == null) { setControlContainerTopMargin(getToolbarExtraYOffset()); @@ -1665,7 +1685,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar mControlContainer.removeOnLayoutChangeListener( mLayoutChangeListener); mLayoutChangeListener = null; -@@ -2264,9 +2280,21 @@ public class ToolbarManager +@@ -2278,9 +2294,21 @@ public class ToolbarManager return ((LocationBarCoordinator) mLocationBar).getUrlBarViewRectProvider(); } @@ -1688,7 +1708,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar assert mTabGroupUiOneshotSupplier == null; assert mUndoBarThrottle != null; assert mLayoutManager != null; -@@ -2284,7 +2312,7 @@ public class ToolbarManager +@@ -2297,7 +2325,7 @@ public class ToolbarManager mActivityTabProvider, mTabModelSelector, mActivity, @@ -1697,7 +1717,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar mBrowserControlsSizer, mScrimManager, mOmniboxFocusStateSupplier, -@@ -2311,7 +2339,7 @@ public class ToolbarManager +@@ -2324,7 +2352,7 @@ public class ToolbarManager mControlsVisibilityDelegate, mFullscreenManager, mEdgeToEdgeControllerSupplier, @@ -1706,22 +1726,22 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar bottomControlsContentDelegateSupplier, mTabObscuringHandler, mOverlayPanelVisibilitySupplier, -@@ -2319,7 +2347,8 @@ public class ToolbarManager +@@ -2332,7 +2360,8 @@ public class ToolbarManager /* readAloudRestoringSupplier= */ () -> { final var readAloud = mReadAloudControllerSupplier.get(); return readAloud != null && readAloud.isRestoringPlayer(); - }); + }, -+ mTopUiThemeColorProvider, mActivityTabProvider); ++ mTopUiThemeColorProvider, mActivityTabProvider.asObservable()); if (mInitializedWithNative) { bottomControlsCoordinator.initializeWithNative(); } diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/BottomContainer.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/BottomContainer.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ui/BottomContainer.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/BottomContainer.java -@@ -23,6 +23,7 @@ import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeController; - import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; - import org.chromium.ui.base.ApplicationViewportInsetSupplier; +@@ -23,6 +23,7 @@ import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider + import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeController; + import org.chromium.ui.base.ApplicationViewportInsetTracker; import org.chromium.ui.base.ViewportInsets; +import org.chromium.chrome.browser.flags.ChromeFeatureList; @@ -1775,7 +1795,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/system/Statu import org.chromium.chrome.browser.layouts.LayoutManager; import org.chromium.chrome.browser.layouts.LayoutStateProvider; import org.chromium.chrome.browser.layouts.LayoutStateProvider.LayoutStateObserver; -@@ -586,6 +588,12 @@ public class StatusBarColorController +@@ -617,6 +619,12 @@ public class StatusBarColorController UiUtils.setStatusBarColor(window, color); } @@ -1799,7 +1819,7 @@ diff --git a/chrome/browser/android/compositor/layer/toolbar_layer.cc b/chrome/b #include "cc/resources/scoped_ui_resource.h" #include "cc/slim/layer.h" #include "cc/slim/nine_patch_layer.h" -@@ -145,6 +146,10 @@ void ToolbarLayer::PushResource(int toolbar_resource_id, +@@ -160,6 +161,10 @@ void ToolbarLayer::PushResource(int toolbar_resource_id, y_offset = legacy_content_offset - layer_->bounds().height(); } @@ -1808,8 +1828,8 @@ diff --git a/chrome/browser/android/compositor/layer/toolbar_layer.cc b/chrome/b + } + layer_->SetPosition(gfx::PointF(x_offset, y_offset)); - - if (features::IsAndroidAnimatedProgressBarInVizEnabled()) { + layer_->SetOffsetTag(offset_tag); + } diff --git a/chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer.cc b/chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer.cc --- a/chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer.cc +++ b/chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer.cc @@ -1821,7 +1841,7 @@ diff --git a/chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer // Must come after all headers that specialize FromJniType() / ToJniType(). #include "chrome/android/chrome_jni_headers/TabStripSceneLayer_jni.h" -@@ -151,8 +152,10 @@ void TabStripSceneLayer::SetContentTree( +@@ -149,8 +150,10 @@ void TabStripSceneLayer::SetContentTree(JNIEnv* env, content_tree_ = content_tree; if (content_tree) { layer()->InsertChild(content_tree->layer(), 0); @@ -1834,7 +1854,7 @@ diff --git a/chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer } } } -@@ -208,7 +211,12 @@ void TabStripSceneLayer::UpdateTabStripLayer(JNIEnv* env, +@@ -205,7 +208,12 @@ void TabStripSceneLayer::UpdateTabStripLayer(JNIEnv* env, jfloat right_padding, jfloat top_padding) { gfx::RectF content(0, y_offset, width, height); @@ -1848,7 +1868,7 @@ diff --git a/chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer background_layer_->SetBounds(gfx::Size(width, height)); background_layer_->SetBackgroundColor(SkColor4f::FromColor(background_color)); -@@ -217,7 +225,7 @@ void TabStripSceneLayer::UpdateTabStripLayer(JNIEnv* env, +@@ -214,7 +222,7 @@ void TabStripSceneLayer::UpdateTabStripLayer(JNIEnv* env, tab_strip_layer_->SetPosition(gfx::PointF(0, top_padding)); // Content tree should not be affected by tab strip scene layer visibility. @@ -1860,7 +1880,7 @@ diff --git a/chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer diff --git a/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BottomControlsStacker.java b/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BottomControlsStacker.java --- a/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BottomControlsStacker.java +++ b/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BottomControlsStacker.java -@@ -275,7 +275,7 @@ public class BottomControlsStacker implements BrowserControlsStateProvider.Obser +@@ -274,7 +274,7 @@ public class BottomControlsStacker implements BrowserControlsStateProvider.Obser /** * @return {@link BrowserControlsStateProvider} instance in the current Activity. */ @@ -1941,7 +1961,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse #include "chrome/browser/android/webapk/webapk_features.h" #include "chrome/browser/browser_features.h" #include "chrome/browser/contextmenu/context_menu_features.h" -@@ -377,6 +378,8 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -371,6 +372,8 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kNewTabPageCustomizationToolbarButton, &kNewTabPageCustomizationV2, &kNotificationPermissionBottomSheet, @@ -1953,7 +1973,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 -@@ -513,6 +513,10 @@ public abstract class ChromeFeatureList { +@@ -502,6 +502,10 @@ public abstract class ChromeFeatureList { public static final String NAV_BAR_COLOR_ANIMATION = "NavBarColorAnimation"; public static final String NEW_TAB_PAGE_CUSTOMIZATION = "NewTabPageCustomization"; public static final String NEW_TAB_PAGE_CUSTOMIZATION_FOR_MVT = "NewTabPageCustomizationForMvt"; @@ -1964,7 +1984,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"; -@@ -1023,6 +1027,10 @@ public abstract class ChromeFeatureList { +@@ -1008,6 +1012,10 @@ public abstract class ChromeFeatureList { public static final CachedFlag sNotificationTrampoline = newCachedFlag(NOTIFICATION_TRAMPOLINE, false); public static final CachedFlag sPCctMinimumHeight = newCachedFlag(PCCT_MINIMUM_HEIGHT, true); @@ -1973,17 +1993,17 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f + public static final CachedFlag sMoveTopToolbarToBottom = + newCachedFlag(MOVE_TOP_TOOLBAR_TO_BOTTOM, false); public static final CachedFlag sPaintPreviewDemo = newCachedFlag(PAINT_PREVIEW_DEMO, false); - public static final CachedFlag sPostGetMyMemoryStateToBackground = - newCachedFlag(POST_GET_MEMORY_PRESSURE_TO_BACKGROUND, true); -@@ -1260,6 +1268,8 @@ public abstract class ChromeFeatureList { + public static final CachedFlag sPersistAcrossReboots = + newCachedFlag(PERSIST_ACROSS_REBOOTS, false); +@@ -1241,6 +1249,8 @@ public abstract class ChromeFeatureList { sNewTabPageCustomizationV2, sNotificationTrampoline, sPCctMinimumHeight, + sMoveTopToolbarToBottom, + sDisableToolbarSwipeUp, sPaintPreviewDemo, + sPersistAcrossReboots, sPostGetMyMemoryStateToBackground, - sPowerSavingModeBroadcastReceiverInBackground, diff --git a/chrome/browser/hub/internal/BUILD.gn b/chrome/browser/hub/internal/BUILD.gn --- a/chrome/browser/hub/internal/BUILD.gn +++ b/chrome/browser/hub/internal/BUILD.gn @@ -1995,7 +2015,7 @@ diff --git a/chrome/browser/hub/internal/BUILD.gn b/chrome/browser/hub/internal/ "android/java/src/org/chromium/chrome/browser/hub/ApplyButtonData.java", "android/java/src/org/chromium/chrome/browser/hub/EmptyHubBottomToolbarDelegate.java", "android/java/src/org/chromium/chrome/browser/hub/FadeHubLayoutAnimationFactory.java", -@@ -102,6 +103,10 @@ android_library("java") { +@@ -103,6 +104,10 @@ android_library("java") { "//ui/edge_to_edge:java", "//url:url_java", ] @@ -2009,7 +2029,7 @@ diff --git a/chrome/browser/hub/internal/BUILD.gn b/chrome/browser/hub/internal/ diff --git a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubCoordinator.java b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubCoordinator.java --- a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubCoordinator.java +++ b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubCoordinator.java -@@ -13,6 +13,7 @@ import android.view.LayoutInflater; +@@ -14,6 +14,7 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.FrameLayout; @@ -2017,15 +2037,15 @@ diff --git a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/br import org.chromium.base.Callback; import org.chromium.base.DeviceInfo; -@@ -23,6 +24,7 @@ import org.chromium.base.supplier.OneshotSupplier; - import org.chromium.build.annotations.NullMarked; +@@ -29,6 +30,7 @@ import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; import org.chromium.chrome.browser.feature_engagement.TrackerFactory; + import org.chromium.chrome.browser.hub.HubPaneHostView.OnPaneSwipeListener; +import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.ProfileProvider; import org.chromium.chrome.browser.tab.Tab; -@@ -171,6 +173,13 @@ public class HubCoordinator implements PaneHubController, BackPressHandler { +@@ -181,6 +183,13 @@ public class HubCoordinator implements PaneHubController, BackPressHandler, OnPa paneManager.getFocusedPaneSupplier(), hubColorMixer, defaultPaneId); @@ -2037,7 +2057,7 @@ diff --git a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/br + mainContainer.setLayoutParams(params); + } - ObservableSupplier<@Nullable View> overlayViewSupplier = + NullableObservableSupplier overlayViewSupplier = mPaneManager diff --git a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubManagerImpl.java b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubManagerImpl.java --- a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubManagerImpl.java @@ -2050,7 +2070,7 @@ diff --git a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/br import android.widget.FrameLayout.LayoutParams; import androidx.annotation.ColorInt; -@@ -19,6 +20,7 @@ import org.chromium.base.supplier.OneshotSupplier; +@@ -20,6 +21,7 @@ import org.chromium.base.supplier.OneshotSupplier; import org.chromium.build.annotations.MonotonicNonNull; import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; @@ -2058,7 +2078,7 @@ diff --git a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/br import org.chromium.chrome.browser.back_press.BackPressManager; import org.chromium.chrome.browser.profiles.ProfileProvider; import org.chromium.chrome.browser.tab.Tab; -@@ -143,7 +145,10 @@ public class HubManagerImpl implements HubManager, HubController { +@@ -144,7 +146,10 @@ public class HubManagerImpl implements HubManager, HubController { LayoutParams params = (LayoutParams) mHubContainerView.getLayoutParams(); assert params != null : "HubContainerView should always have layout params."; mStatusIndicatorHeight = height; @@ -2070,7 +2090,7 @@ diff --git a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/br mHubContainerView.setLayoutParams(params); } -@@ -153,7 +158,10 @@ public class HubManagerImpl implements HubManager, HubController { +@@ -154,7 +159,10 @@ public class HubManagerImpl implements HubManager, HubController { LayoutParams params = (LayoutParams) mHubContainerView.getLayoutParams(); assert params != null : "HubContainerView should always have layout params."; mAppHeaderHeight = height; @@ -2082,7 +2102,7 @@ diff --git a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/br mHubContainerView.setLayoutParams(params); } -@@ -301,6 +309,8 @@ public class HubManagerImpl implements HubManager, HubController { +@@ -302,6 +310,8 @@ public class HubManagerImpl implements HubManager, HubController { } mSnackbarOverrideToken = mSnackbarManager.pushParentViewToOverrideStack( @@ -2193,7 +2213,7 @@ diff --git a/chrome/browser/hub/internal/android/res/layout/hub_toolbar_layout.x 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 -@@ -2034,7 +2034,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -2075,7 +2075,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, #if BUILDFLAG(IS_ANDROID) registry->RegisterBooleanPref(prefs::kVirtualKeyboardResizesLayoutByDefault, @@ -2329,7 +2349,7 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch diff --git a/chrome/browser/ui/android/edge_to_edge/internal/java/src/org/chromium/chrome/browser/ui/edge_to_edge/EdgeToEdgeControllerImpl.java b/chrome/browser/ui/android/edge_to_edge/internal/java/src/org/chromium/chrome/browser/ui/edge_to_edge/EdgeToEdgeControllerImpl.java --- a/chrome/browser/ui/android/edge_to_edge/internal/java/src/org/chromium/chrome/browser/ui/edge_to_edge/EdgeToEdgeControllerImpl.java +++ b/chrome/browser/ui/android/edge_to_edge/internal/java/src/org/chromium/chrome/browser/ui/edge_to_edge/EdgeToEdgeControllerImpl.java -@@ -687,6 +687,7 @@ public class EdgeToEdgeControllerImpl +@@ -688,6 +688,7 @@ public class EdgeToEdgeControllerImpl * the system insets due to the keyboard or the bottom controls being visible. */ private boolean shouldPadAdjusters() { @@ -2574,7 +2594,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import java.util.List; import java.util.function.Supplier; -@@ -1304,7 +1306,9 @@ class AutocompleteMediator +@@ -1311,7 +1313,9 @@ class AutocompleteMediator @Override public void onSuggestionDropdownScroll() { mSuggestionsListScrolled = true; @@ -2662,7 +2682,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow 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 -@@ -1539,6 +1539,12 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1536,6 +1536,12 @@ Your Google account may have other forms of browsing history like searches and a Force Tablet Mode @@ -2700,7 +2720,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow @@ -68,6 +69,10 @@ public class LocationBarFocusScrimHandler implements UrlFocusChangeListener { mContext = context; - int topMargin = tabStripHeightSupplier.get() == null ? 0 : tabStripHeightSupplier.get(); + int topMargin = tabStripHeightSupplier.get(); + if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + // since the top bar is at the bottom, we need to cover the whole page + topMargin = 0; @@ -2711,7 +2731,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ToolbarLongPressMenuHandler.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ToolbarLongPressMenuHandler.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ToolbarLongPressMenuHandler.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ToolbarLongPressMenuHandler.java -@@ -219,14 +219,6 @@ public class ToolbarLongPressMenuHandler implements ConfigurationChangedObserver +@@ -221,14 +221,6 @@ public class ToolbarLongPressMenuHandler implements ConfigurationChangedObserver @VisibleForTesting ModelList buildMenuItems(boolean onTop) { ModelList itemList = new ModelList(); @@ -2735,7 +2755,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow +import android.app.Activity; + -+import org.chromium.base.supplier.ObservableSupplier; ++import org.chromium.base.supplier.NullableObservableSupplier; +import org.chromium.chrome.browser.theme.TopUiThemeColorProvider; +import org.chromium.chrome.browser.tab.CurrentTabObserver; +import org.chromium.chrome.browser.tab.Tab; @@ -2754,14 +2774,14 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow BottomControlsCoordinator.BottomControlsVisibilityController visibilityController, - Callback onModelTokenChange); + Callback onModelTokenChange, -+ TopUiThemeColorProvider topUiThemeColorProvider, ObservableSupplier tabSupplier); ++ TopUiThemeColorProvider topUiThemeColorProvider, NullableObservableSupplier tabSupplier); /** Destroy the delegate. */ void destroy(); diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator.java -@@ -33,6 +33,8 @@ import org.chromium.ui.modelutil.PropertyModelChangeProcessor; +@@ -35,6 +35,8 @@ import org.chromium.ui.modelutil.PropertyModelChangeProcessor; import org.chromium.ui.resources.ResourceManager; import org.chromium.ui.resources.dynamics.ViewResourceAdapter; import org.chromium.ui.widget.Toast; @@ -2770,7 +2790,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow import java.util.HashSet; import java.util.Set; -@@ -88,6 +90,8 @@ public class BottomControlsCoordinator implements BackPressHandler { +@@ -92,6 +94,8 @@ public class BottomControlsCoordinator implements BackPressHandler { * @param constraintsSupplier Used to access current constraints of the browser controls. * @param readAloudRestoringSupplier Supplier that returns true if Read Aloud is currently * restoring its player, e.g. after theme change. @@ -2779,14 +2799,14 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow */ @SuppressLint("CutPasteId") // Not actually cut and paste since it's View vs ViewGroup. public BottomControlsCoordinator( -@@ -103,7 +107,9 @@ public class BottomControlsCoordinator implements BackPressHandler { +@@ -107,7 +111,9 @@ public class BottomControlsCoordinator implements BackPressHandler { TabObscuringHandler tabObscuringHandler, ObservableSupplier overlayPanelVisibilitySupplier, - ObservableSupplier<@Nullable Integer> constraintsSupplier, + NullableObservableSupplier<@BrowserControlsState Integer> constraintsSupplier, - Supplier readAloudRestoringSupplier) { + Supplier readAloudRestoringSupplier, + TopUiThemeColorProvider topUiThemeColorProvider, -+ ObservableSupplier tabSupplier) { ++ NullableObservableSupplier tabSupplier) { mRootFrameLayout = root; root.setConstraintsSupplier(constraintsSupplier); PropertyModel model = new PropertyModel(BottomControlsProperties.ALL_KEYS); @@ -2796,14 +2816,14 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow }, - root::onModelTokenChange); + root::onModelTokenChange, -+ topUiThemeColorProvider, tabSupplier); ++ topUiThemeColorProvider, tabSupplier); mContentDelegateWrapper.set(contentDelegate); }, mContentDelegateSupplier, diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsMediator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsMediator.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsMediator.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsMediator.java -@@ -27,6 +27,7 @@ import org.chromium.ui.KeyboardVisibilityDelegate; +@@ -26,6 +26,7 @@ import org.chromium.ui.KeyboardVisibilityDelegate; import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.edge_to_edge.EdgeToEdgeSupplier.ChangeObserver; import org.chromium.ui.modelutil.PropertyModel; @@ -2811,7 +2831,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow import java.util.function.Supplier; -@@ -155,6 +156,12 @@ class BottomControlsMediator +@@ -154,6 +155,12 @@ class BottomControlsMediator void setBottomControlsVisible(boolean visible) { boolean visibilityChanged = mIsBottomControlsVisible != visible; @@ -2824,7 +2844,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow mIsBottomControlsVisible = visible; updateCompositedViewVisibility(); updateAndroidViewVisibility(); -@@ -184,6 +191,19 @@ class BottomControlsMediator +@@ -183,6 +190,22 @@ class BottomControlsMediator mTabObscuringHandler.removeObserver(this); } @@ -2839,12 +2859,15 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow + boolean requestNewFrame, + boolean isVisibilityForced) { + mModel.set(BottomControlsProperties.TOPCONTROLSMINHEIGHT_OFFSET, topControlsMinHeightOffset); ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { ++ mModel.set(BottomControlsProperties.Y_OFFSET, -topOffset); ++ } + } + @Override public void onBottomControlsHeightChanged( int bottomControlsHeight, int bottomControlsMinHeight) { -@@ -273,11 +293,13 @@ class BottomControlsMediator +@@ -272,11 +295,13 @@ class BottomControlsMediator && !mIsInSwipeLayout && getBrowserControls().getBottomControlOffset() == 0; if (visible) { @@ -2900,7 +2923,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/ScrollingBottomViewSceneLayer.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/ScrollingBottomViewSceneLayer.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/ScrollingBottomViewSceneLayer.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/ScrollingBottomViewSceneLayer.java -@@ -20,6 +20,8 @@ import org.chromium.chrome.browser.layouts.scene_layer.SceneOverlayLayer; +@@ -18,6 +18,8 @@ import org.chromium.chrome.browser.layouts.scene_layer.SceneOverlayLayer; import org.chromium.components.browser_ui.widget.ViewResourceFrameLayout; import org.chromium.ui.resources.ResourceManager; @@ -2909,7 +2932,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow /** * A composited view that sits at the bottom of the screen and listens to changes in the browser * controls. When visible, the view will mimic the behavior of the top browser controls when -@@ -40,6 +42,9 @@ public class ScrollingBottomViewSceneLayer extends SceneOverlayLayer implements +@@ -38,6 +40,9 @@ public class ScrollingBottomViewSceneLayer extends SceneOverlayLayer implements /** The current Y offset of the bottom view in px. */ private int mCurrentYOffsetPx; @@ -2919,7 +2942,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow /** The current X offset of the bottom view in px. */ private int mCurrentXOffsetPx; -@@ -97,6 +102,13 @@ public class ScrollingBottomViewSceneLayer extends SceneOverlayLayer implements +@@ -95,6 +100,13 @@ public class ScrollingBottomViewSceneLayer extends SceneOverlayLayer implements mOffsetTag = offsetTag; } @@ -2933,10 +2956,10 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow /** * @param visible Whether this {@link SceneLayer} is visible. */ -@@ -128,6 +140,11 @@ public class ScrollingBottomViewSceneLayer extends SceneOverlayLayer implements - isShadowVisible = mBottomView.getVisibility() != View.VISIBLE; - } - +@@ -118,6 +130,11 @@ public class ScrollingBottomViewSceneLayer extends SceneOverlayLayer implements + @Override + public SceneOverlayLayer getUpdatedSceneOverlayTree( + RectF viewport, RectF visibleViewport, ResourceManager resourceManager) { + float offsetPy = viewport.height() + mCurrentYOffsetPx; + if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + // fix the offset of the fake bottom controls, used only for animations @@ -2945,19 +2968,19 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow ScrollingBottomViewSceneLayerJni.get() .updateScrollingBottomViewLayer( mNativePtr, -@@ -135,7 +152,7 @@ public class ScrollingBottomViewSceneLayer extends SceneOverlayLayer implements +@@ -125,7 +142,7 @@ public class ScrollingBottomViewSceneLayer extends SceneOverlayLayer implements mResourceId, mTopShadowHeightPx, mCurrentXOffsetPx, - viewport.height() + mCurrentYOffsetPx, + offsetPy, - isShadowVisible, + true, mOffsetTag); diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java -@@ -78,6 +78,10 @@ import java.lang.annotation.RetentionPolicy; +@@ -80,6 +80,10 @@ import java.lang.annotation.RetentionPolicy; import java.util.function.BooleanSupplier; import java.util.function.Supplier; @@ -2968,7 +2991,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow /** Layout for the browser controls (omnibox, menu, tab strip, etc..). */ @NullMarked public class ToolbarControlContainer extends OptimizedFrameLayout -@@ -191,6 +195,11 @@ public class ToolbarControlContainer extends OptimizedFrameLayout +@@ -193,6 +197,11 @@ public class ToolbarControlContainer extends OptimizedFrameLayout if (view != null) ((MarginLayoutParams)view.getLayoutParams()).topMargin = tab_strip_height; } @@ -2983,7 +3006,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarOverlayCoordinator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarOverlayCoordinator.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarOverlayCoordinator.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarOverlayCoordinator.java -@@ -23,11 +23,14 @@ import org.chromium.chrome.browser.theme.TopUiThemeColorProvider; +@@ -24,11 +24,14 @@ import org.chromium.chrome.browser.theme.TopUiThemeColorProvider; import org.chromium.chrome.browser.toolbar.R; import org.chromium.chrome.browser.toolbar.ToolbarProgressBar; import org.chromium.components.browser_ui.widget.ClipDrawableProgressBar; @@ -2998,7 +3021,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow /** The public interface for the top toolbar texture component. */ @NullMarked public class TopToolbarOverlayCoordinator implements SceneOverlay { -@@ -76,6 +79,12 @@ public class TopToolbarOverlayCoordinator implements SceneOverlay { +@@ -77,6 +80,12 @@ public class TopToolbarOverlayCoordinator implements SceneOverlay { browserControlsStateProvider.getContentOffset()) .with(TopToolbarOverlayProperties.ANONYMIZE, false) .with(TopToolbarOverlayProperties.SHOW_SHADOW, showHairline) @@ -3011,7 +3034,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow .build(); mSceneLayer = new TopToolbarSceneLayer(resourceManagerSupplier); mChangeProcessor = -@@ -151,6 +160,7 @@ public class TopToolbarOverlayCoordinator implements SceneOverlay { +@@ -152,6 +161,7 @@ public class TopToolbarOverlayCoordinator implements SceneOverlay { @Override public SceneOverlayLayer getUpdatedSceneOverlayTree( RectF viewport, RectF visibleViewport, ResourceManager resourceManager) { @@ -3095,7 +3118,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 -@@ -55,6 +55,11 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -59,6 +59,11 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment private BooleanPreferenceDelegate mForceTabletUIDelegate; static final String PREF_FORCE_TABLET_UI = "force_tablet_ui"; @@ -3107,7 +3130,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c private PageZoomPreference mPageZoomDefaultZoomPref; private ChromeSwitchPreference mPageZoomIncludeOSAdjustment; private ChromeSwitchPreference mPageZoomAlwaysShowPref; -@@ -71,6 +76,10 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -76,6 +81,10 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment mDelegate = delegate; } @@ -3118,7 +3141,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); -@@ -136,6 +145,18 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -141,6 +150,18 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment forceTabletUiPref.setChecked(mForceTabletUIDelegate.getValue()); forceTabletUiPref.setOnPreferenceChangeListener(this); @@ -3137,7 +3160,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c Preference captions = findPreference(PREF_CAPTIONS); captions.setOnPreferenceClickListener( preference -> { -@@ -238,6 +259,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -243,6 +264,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment mDelegate.getBrowserContextHandle(), (Integer) newValue); } else if (PREF_PAGE_ZOOM_ALWAYS_SHOW.equals(preference.getKey())) { PageZoomUtils.setShouldAlwaysShowZoomMenuItem((Boolean) newValue); @@ -3180,18 +3203,12 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c diff --git a/components/viz/common/features.cc b/components/viz/common/features.cc --- a/components/viz/common/features.cc +++ b/components/viz/common/features.cc -@@ -45,11 +45,13 @@ BASE_FEATURE(kAndroidAnimatedProgressBarInViz, +@@ -38,6 +38,7 @@ namespace features { // offsets provided by the embedded renderer, circumventing browser main // involvement. For now, this applies only to top controls. BASE_FEATURE(kAndroidBrowserControlsInViz, base::FEATURE_ENABLED_BY_DEFAULT); +SET_CROMITE_FEATURE_DISABLED(kAndroidBrowserControlsInViz); - // If this flag is enabled, AndroidBrowserControlsInViz and - // BottomControlsRefactor with the "Dispatch yOffset" variation must also be - // enabled. - BASE_FEATURE(kAndroidBcivBottomControls, base::FEATURE_ENABLED_BY_DEFAULT); -+SET_CROMITE_FEATURE_DISABLED(kAndroidBcivBottomControls); - // If this flag is enabled, a DumpWithoutCrashing() is captured when a bad // state is detected when moving the composited UI. For example, this could diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/content/browser/renderer_host/render_widget_host_view_android.cc 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 fa196ec7..7c23d0e1 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 @@ -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/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -84,6 +84,19 @@ found in the LICENSE file. +@@ -77,6 +77,19 @@ found in the LICENSE file. android:key="secure_dns" android:title="@string/settings_secure_dns_title" android:fragment="org.chromium.chrome.browser.privacy.secure_dns.SecureDnsSettings" /> @@ -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 -@@ -78,6 +78,13 @@ import org.chromium.ui.text.SpanApplier; +@@ -81,6 +81,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 -@@ -97,6 +104,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -100,6 +107,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"; @@ -66,9 +66,9 @@ 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"; - @VisibleForTesting static final String PREF_TRACKING_PROTECTION = "tracking_protection"; private static final String PREF_ADVANCED_PROTECTION_INFO = "advanced_protection_info"; -@@ -210,6 +227,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment + +@@ -202,6 +219,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); -@@ -357,6 +384,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -372,6 +399,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; } -@@ -369,6 +399,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -384,6 +414,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 -@@ -457,6 +457,10 @@ For more settings that use data to improve your Chrome experience, go to diff --git a/build/patches/Multi-Screen-Window-Placement-API-fix.patch b/build/patches/Multi-Screen-Window-Placement-API-fix.patch index 0c00b286..9e90c1b7 100644 --- a/build/patches/Multi-Screen-Window-Placement-API-fix.patch +++ b/build/patches/Multi-Screen-Window-Placement-API-fix.patch @@ -29,7 +29,7 @@ diff --git a/content/browser/permissions/permission_service_impl.cc b/content/br 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 -@@ -19186,7 +19186,8 @@ RenderFrameHostImpl::GetCachedPermissionStatuses() { +@@ -19326,7 +19326,8 @@ RenderFrameHostImpl::GetCachedPermissionStatuses() { {PermissionName::WEB_APP_INSTALLATION, PermissionType::WEB_APP_INSTALLATION}, #endif @@ -42,7 +42,7 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/b diff --git a/third_party/blink/renderer/core/frame/cached_permission_status.cc b/third_party/blink/renderer/core/frame/cached_permission_status.cc --- a/third_party/blink/renderer/core/frame/cached_permission_status.cc +++ b/third_party/blink/renderer/core/frame/cached_permission_status.cc -@@ -33,9 +33,9 @@ CachedPermissionStatus::CachedPermissionStatus(ExecutionContext* context) +@@ -37,9 +37,9 @@ CachedPermissionStatus::CachedPermissionStatus(ExecutionContext* context) permission_service_(context), permission_observer_receivers_(this, context) { CHECK(context); @@ -58,7 +58,7 @@ diff --git a/third_party/blink/renderer/core/frame/cached_permission_status.cc b diff --git a/third_party/blink/renderer/core/frame/cached_permission_status.h b/third_party/blink/renderer/core/frame/cached_permission_status.h --- a/third_party/blink/renderer/core/frame/cached_permission_status.h +++ b/third_party/blink/renderer/core/frame/cached_permission_status.h -@@ -68,6 +68,7 @@ class CORE_EXPORT CachedPermissionStatus final +@@ -72,6 +72,7 @@ class CORE_EXPORT CachedPermissionStatus final private: friend class HTMLPermissionElement; @@ -131,10 +131,10 @@ diff --git a/third_party/blink/renderer/core/frame/screen.h b/third_party/blink/ #include "third_party/blink/renderer/core/dom/events/event_target.h" #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h" +#include "third_party/blink/renderer/core/frame/cached_permission_status.h" - #include "third_party/blink/renderer/platform/forward_declared_member.h" + #include "third_party/blink/renderer/platform/heap/garbage_collected.h" +#include "third_party/blink/public/mojom/permissions/permission.mojom-blink.h" +#include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h" - #include "third_party/blink/renderer/platform/heap/garbage_collected.h" + #include "third_party/blink/renderer/platform/supplementable.h" #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h" #include "ui/gfx/geometry/rect.h" @@ -143,16 +143,16 @@ diff --git a/third_party/blink/renderer/core/frame/screen.h b/third_party/blink/ namespace display { struct ScreenInfo; } -@@ -46,7 +51,7 @@ namespace blink { +@@ -45,7 +50,7 @@ namespace blink { + class LocalDOMWindow; - class ScreenScreenOrientation; --class CORE_EXPORT Screen : public EventTarget, public ExecutionContextClient { -+class CORE_EXPORT Screen : public EventTarget, public CachedPermissionStatus::Client, public ExecutionContextClient { +-class CORE_EXPORT Screen : public EventTarget, ++class CORE_EXPORT Screen : public EventTarget, public CachedPermissionStatus::Client, + public ExecutionContextClient, + public Supplementable { DEFINE_WRAPPERTYPEINFO(); - - public: -@@ -97,10 +102,20 @@ class CORE_EXPORT Screen : public EventTarget, public ExecutionContextClient { +@@ -89,8 +94,18 @@ class CORE_EXPORT Screen : public EventTarget, gfx::Rect GetRect(bool available) const; const display::ScreenInfo& GetScreenInfo() const; @@ -165,8 +165,6 @@ diff --git a/third_party/blink/renderer/core/frame/screen.h b/third_party/blink/ + // The internal id of the underlying display, to support multi-screen devices. int64_t display_id_; - - ForwardDeclaredMember screen_screen_orientation_; + + private: + bool window_management_permission_granted_ = false; diff --git a/build/patches/Multiple-fingerprinting-mitigations.patch b/build/patches/Multiple-fingerprinting-mitigations.patch index 70816a97..dfa78e38 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 -@@ -2532,6 +2532,7 @@ static_library("browser") { +@@ -2497,6 +2497,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 -@@ -265,6 +265,8 @@ +@@ -262,6 +262,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 -@@ -296,6 +296,7 @@ source_set("browser") { +@@ -297,6 +297,7 @@ source_set("browser") { "//third_party/re2", "//third_party/snappy", "//third_party/sqlite", @@ -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" -@@ -3680,6 +3681,8 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( +@@ -3690,6 +3691,8 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( switches::kDisableBestEffortTasks, switches::kDisableBreakpad, switches::kDisableFileSystem, @@ -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 -@@ -518,6 +520,10 @@ void SetRuntimeFeaturesFromCommandLine(const base::CommandLine& command_line) { +@@ -521,6 +523,10 @@ void SetRuntimeFeaturesFromCommandLine(const base::CommandLine& command_line) { // as a last resort. void SetCustomizedRuntimeFeaturesFromCombinedArgs( const base::CommandLine& command_line) { @@ -172,7 +172,7 @@ diff --git a/third_party/blink/public/platform/web_runtime_features.h b/third_pa 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 -@@ -41,6 +41,7 @@ +@@ -40,6 +40,7 @@ #include "base/i18n/time_formatting.h" #include "base/metrics/histogram_functions.h" #include "base/notreached.h" @@ -180,7 +180,7 @@ 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" -@@ -1093,6 +1094,16 @@ Document::Document(const DocumentInit& initializer, +@@ -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); DCHECK(agent_); @@ -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(); -@@ -2807,6 +2818,14 @@ void Document::UpdateStyleAndLayoutTreeForThisDocument() { +@@ -2795,6 +2806,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 -@@ -597,6 +597,10 @@ class CORE_EXPORT Document : public ContainerNode, +@@ -570,6 +570,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; -@@ -3055,6 +3059,9 @@ class CORE_EXPORT Document : public ContainerNode, +@@ -2821,6 +2825,9 @@ class CORE_EXPORT Document : public ContainerNode, base::ElapsedTimer start_time_; @@ -260,7 +260,7 @@ diff --git a/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creat diff --git a/third_party/blink/renderer/core/html/canvas/text_metrics.cc b/third_party/blink/renderer/core/html/canvas/text_metrics.cc --- a/third_party/blink/renderer/core/html/canvas/text_metrics.cc +++ b/third_party/blink/renderer/core/html/canvas/text_metrics.cc -@@ -89,6 +89,24 @@ TextMetrics::TextMetrics(const Font* font, +@@ -90,6 +90,24 @@ TextMetrics::TextMetrics(const Font* font, Update(font, direction, baseline, align, text, text_painter); } @@ -288,7 +288,7 @@ diff --git a/third_party/blink/renderer/core/html/canvas/text_metrics.cc b/third diff --git a/third_party/blink/renderer/core/html/canvas/text_metrics.h b/third_party/blink/renderer/core/html/canvas/text_metrics.h --- a/third_party/blink/renderer/core/html/canvas/text_metrics.h +++ b/third_party/blink/renderer/core/html/canvas/text_metrics.h -@@ -109,6 +109,8 @@ class CORE_EXPORT TextMetrics final : public ScriptWrappable { +@@ -110,6 +110,8 @@ class CORE_EXPORT TextMetrics final : public ScriptWrappable { float x_position_; }; @@ -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" -@@ -523,6 +527,10 @@ ImageData* BaseRenderingContext2D::getImageDataInternal( +@@ -524,6 +528,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; -@@ -1170,9 +1178,23 @@ TextMetrics* BaseRenderingContext2D::measureText(const String& text) { +@@ -1171,9 +1179,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 -@@ -1752,7 +1752,9 @@ component("platform") { +@@ -1751,7 +1751,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", -@@ -1836,6 +1838,7 @@ component("platform") { +@@ -1835,6 +1837,7 @@ component("platform") { "//third_party/blink/public/strings", "//third_party/blink/renderer/platform/wtf", "//third_party/ced", @@ -449,7 +449,7 @@ 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 -@@ -69,6 +69,14 @@ void WebRuntimeFeatures::EnableFluentOverlayScrollbars(bool enable) { +@@ -68,6 +68,14 @@ void WebRuntimeFeatures::EnableFluentOverlayScrollbars(bool enable) { RuntimeEnabledFeatures::SetFluentOverlayScrollbarsEnabled(enable); } @@ -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 -@@ -3554,6 +3554,12 @@ +@@ -3618,6 +3618,12 @@ status: {"Mac": "test", "default": "stable"}, base_feature: "none", }, diff --git a/build/patches/Never-treat-Proguard-warnings-as-errors.patch b/build/patches/Never-treat-Proguard-warnings-as-errors.patch index c422a703..fbe2f215 100644 --- a/build/patches/Never-treat-Proguard-warnings-as-errors.patch +++ b/build/patches/Never-treat-Proguard-warnings-as-errors.patch @@ -9,7 +9,7 @@ Subject: Never treat Proguard warnings as errors diff --git a/build/config/android/internal_rules.gni b/build/config/android/internal_rules.gni --- a/build/config/android/internal_rules.gni +++ b/build/config/android/internal_rules.gni -@@ -1303,9 +1303,9 @@ if (enable_java_templates) { +@@ -1300,9 +1300,9 @@ if (enable_java_templates) { _source_file_template, "--proguard-configs=@FileArg($_rebased_build_config:proguard_all_configs)", ] diff --git a/build/patches/OpenSearch-miscellaneous.patch b/build/patches/OpenSearch-miscellaneous.patch index c2499b85..9d9caec3 100644 --- a/build/patches/OpenSearch-miscellaneous.patch +++ b/build/patches/OpenSearch-miscellaneous.patch @@ -176,7 +176,7 @@ diff --git a/chrome/renderer/chrome_render_frame_observer.cc b/chrome/renderer/c #include "base/metrics/histogram_macros.h" #include "base/no_destructor.h" #include "base/strings/string_number_conversions.h" -@@ -276,6 +277,7 @@ void ChromeRenderFrameObserver::DidFinishLoad() { +@@ -272,6 +273,7 @@ void ChromeRenderFrameObserver::DidFinishLoad() { GURL osdd_url = frame->GetDocument().OpenSearchDescriptionURL(); if (!osdd_url.is_empty()) { diff --git a/build/patches/Override-Navigator-Language.patch b/build/patches/Override-Navigator-Language.patch index adcd5c56..bb4da9b5 100644 --- a/build/patches/Override-Navigator-Language.patch +++ b/build/patches/Override-Navigator-Language.patch @@ -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" -@@ -3590,8 +3591,11 @@ void RenderProcessHostImpl::AppendRendererCommandLine( +@@ -3600,8 +3601,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 20af54e9..c4d8cedc 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 -@@ -2738,7 +2738,7 @@ bool InspectorNetworkAgent::FetchResourceContent(Document* document, +@@ -2809,7 +2809,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 -@@ -737,7 +737,8 @@ bool ImageLoader::ShouldLoadImmediately(const KURL& url) const { +@@ -741,7 +741,8 @@ bool ImageLoader::ShouldLoadImmediately(const KURL& url) const { if (!url.IsNull()) { Resource* resource = MemoryCache::Get()->ResourceForURL( url, element_->GetDocument().Fetcher()->GetCacheIdentifier( @@ -78,7 +78,7 @@ diff --git a/third_party/blink/renderer/core/loader/image_loader.cc b/third_part diff --git a/third_party/blink/renderer/platform/loader/fetch/memory_cache.cc b/third_party/blink/renderer/platform/loader/fetch/memory_cache.cc --- a/third_party/blink/renderer/platform/loader/fetch/memory_cache.cc +++ b/third_party/blink/renderer/platform/loader/fetch/memory_cache.cc -@@ -349,7 +349,7 @@ void MemoryCache::RemoveInternal(ResourceMap* resource_map, +@@ -344,7 +344,7 @@ void MemoryCache::RemoveInternal(ResourceMap* resource_map, } bool MemoryCache::Contains(const Resource* resource) const { @@ -87,7 +87,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/memory_cache.cc b/ return false; const auto resource_maps_it = -@@ -365,13 +365,9 @@ bool MemoryCache::Contains(const Resource* resource) const { +@@ -360,13 +360,9 @@ bool MemoryCache::Contains(const Resource* resource) const { return resource == resources_it->value->GetResource(); } @@ -105,7 +105,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/memory_cache.cc b/ diff --git a/third_party/blink/renderer/platform/loader/fetch/memory_cache.h b/third_party/blink/renderer/platform/loader/fetch/memory_cache.h --- a/third_party/blink/renderer/platform/loader/fetch/memory_cache.h +++ b/third_party/blink/renderer/platform/loader/fetch/memory_cache.h -@@ -130,10 +130,7 @@ class PLATFORM_EXPORT MemoryCache final : public GarbageCollected, +@@ -131,10 +131,7 @@ class PLATFORM_EXPORT MemoryCache final : public GarbageCollected, // Do not use this method outside test purposes. // A resourfe URL is not enough to do a correct MemoryCache lookup, and // relying on the method would likely yield wrong results. @@ -116,8 +116,8 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/memory_cache.h b/t void Add(Resource*); void Remove(Resource*); -@@ -180,6 +177,8 @@ class PLATFORM_EXPORT MemoryCache final : public GarbageCollected, - void OnUpdateMemoryLimit() override; +@@ -178,6 +175,8 @@ class PLATFORM_EXPORT MemoryCache final : public GarbageCollected, + bool HasStrongReferenceForTesting(Resource*) const; private: + HeapVector> ResourcesForURL(const KURL&) const; @@ -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 -@@ -1035,7 +1035,8 @@ Resource* ResourceFetcher::CreateResourceForStaticData( +@@ -1017,7 +1017,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. -@@ -1486,7 +1487,8 @@ Resource* ResourceFetcher::RequestResource(FetchParameters& params, +@@ -1468,7 +1469,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); -@@ -1810,7 +1812,8 @@ Resource* ResourceFetcher::CreateResourceForLoading( +@@ -1778,7 +1780,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)); -@@ -2952,11 +2955,47 @@ void ResourceFetcher::UpdateImagePrioritiesAndSpeculativeDecodes() { +@@ -2918,11 +2921,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 -@@ -2971,12 +3010,13 @@ String ResourceFetcher::GetCacheIdentifier(const KURL& url, +@@ -2937,12 +2976,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. -@@ -2989,7 +3029,7 @@ String ResourceFetcher::GetCacheIdentifier(ResourceType type, +@@ -2955,7 +2995,7 @@ String ResourceFetcher::GetCacheIdentifier(ResourceType type, } // Fallback to the standard cache identifier logic. @@ -239,7 +239,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h --- a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h +++ b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h -@@ -288,10 +288,16 @@ class PLATFORM_EXPORT ResourceFetcher +@@ -284,10 +284,16 @@ class PLATFORM_EXPORT ResourceFetcher // `url` is used for finding a matching WebBundle. // If `skip_service_worker` is true, the identifier won't be a ServiceWorker's // identifier to keep the cache separated. @@ -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 -@@ -5023,8 +5023,8 @@ +@@ -5141,8 +5141,8 @@ status: "stable", }, { diff --git a/build/patches/Partition-HSTS-cache-by-NAK.patch b/build/patches/Partition-HSTS-cache-by-NAK.patch index ddcdb8f4..dd935e20 100644 --- a/build/patches/Partition-HSTS-cache-by-NAK.patch +++ b/build/patches/Partition-HSTS-cache-by-NAK.patch @@ -228,7 +228,7 @@ new file mode 100644 diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_state.cc --- a/net/http/transport_security_state.cc +++ b/net/http/transport_security_state.cc -@@ -79,7 +79,7 @@ bool HashesIntersect(const absl::flat_hash_set& a, +@@ -78,7 +78,7 @@ bool HashesIntersect(const absl::flat_hash_set& a, // Converts |hostname| from dotted form ("www.google.com") to the form // used in DNS: "\x03www\x06google\x03com", lowercases that, and returns // the result. @@ -237,7 +237,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ // We cannot perform the operations as detailed in the spec here as `host` // has already undergone IDN processing before it reached us. Thus, we // lowercase the input (probably redudnant since most input here has been -@@ -100,6 +100,29 @@ std::vector CanonicalizeHost(std::string_view host) { +@@ -99,6 +99,29 @@ std::vector CanonicalizeHost(std::string_view host) { return std::move(new_host).value(); } @@ -267,7 +267,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ // PreloadResult is the result of resolving a specific name in the preloaded // data. struct PreloadResult { -@@ -191,7 +214,7 @@ bool DecodeHSTSPreload(std::string_view search_hostname, PreloadResult* out) { +@@ -190,7 +213,7 @@ bool DecodeHSTSPreload(std::string_view search_hostname, PreloadResult* out) { // Ensure that |search_hostname| is a valid hostname before // processing. @@ -276,7 +276,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ return false; } // Normalize any trailing '.' used for DNS suffix searches. -@@ -250,18 +273,19 @@ TransportSecurityState::TransportSecurityState( +@@ -249,18 +272,19 @@ TransportSecurityState::TransportSecurityState( // Both HSTS and HPKP cause fatal SSL errors, so return true if a // host has either. @@ -299,7 +299,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ 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()); -@@ -269,12 +293,13 @@ base::Value::Dict TransportSecurityState::NetLogUpgradeToSSLParam( +@@ -268,12 +292,13 @@ base::Value::Dict TransportSecurityState::NetLogUpgradeToSSLParam( } SSLUpgradeDecision TransportSecurityState::GetSSLUpgradeDecision( @@ -314,7 +314,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ // Only top level navigations should be upgraded when // kHstsTopLevelNavigationsOnly is enabled. -@@ -285,7 +310,7 @@ SSLUpgradeDecision TransportSecurityState::GetSSLUpgradeDecision( +@@ -284,7 +309,7 @@ SSLUpgradeDecision TransportSecurityState::GetSSLUpgradeDecision( STSState sts_state; // Check the dynamic list first (removing the entry if expired). @@ -323,7 +323,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ // [*.]localhost hosts now ignore Strict-Transport-Security response // headers, but an entry may have been stored before this restriction // was introduced (crbug.com/41251622). -@@ -310,29 +335,31 @@ SSLUpgradeDecision TransportSecurityState::GetSSLUpgradeDecision( +@@ -309,29 +334,31 @@ SSLUpgradeDecision TransportSecurityState::GetSSLUpgradeDecision( } bool TransportSecurityState::ShouldUpgradeToSSL( @@ -361,7 +361,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ } ct::CTRequirementsStatus TransportSecurityState::CheckCTRequirements( -@@ -386,12 +413,13 @@ void TransportSecurityState::UpdatePinList( +@@ -385,12 +412,13 @@ void TransportSecurityState::UpdatePinList( } void TransportSecurityState::AddHSTSInternal( @@ -376,7 +376,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ if (canonicalized_host.empty()) return; -@@ -415,13 +443,14 @@ void TransportSecurityState::AddHSTSInternal( +@@ -414,13 +442,14 @@ void TransportSecurityState::AddHSTSInternal( DirtyNotify(); } @@ -393,7 +393,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ if (canonicalized_host.empty()) return; -@@ -469,10 +498,10 @@ TransportSecurityState::PKPStatus TransportSecurityState::CheckPins( +@@ -468,10 +497,10 @@ TransportSecurityState::PKPStatus TransportSecurityState::CheckPins( return PKPStatus::VIOLATED; } @@ -406,7 +406,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ if (canonicalized_host.empty()) return false; -@@ -549,7 +578,8 @@ void TransportSecurityState::DirtyNotify() { +@@ -548,7 +577,8 @@ void TransportSecurityState::DirtyNotify() { delegate_->StateIsDirty(this); } @@ -416,7 +416,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ std::string_view value) { DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); -@@ -568,23 +598,25 @@ bool TransportSecurityState::AddHSTSHeader(std::string_view host, +@@ -567,23 +597,25 @@ bool TransportSecurityState::AddHSTSHeader(std::string_view host, upgrade_mode = STSState::MODE_FORCE_HTTPS; } @@ -447,7 +447,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ } size_t TransportSecurityState::num_sts_entries() const { -@@ -609,9 +641,10 @@ TransportSecurityState::PKPStatus +@@ -608,9 +640,10 @@ TransportSecurityState::PKPStatus TransportSecurityState::CheckPublicKeyPinsImpl( std::string_view host, bool is_issued_by_known_root, @@ -460,7 +460,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ // HasPublicKeyPins should have returned true in order for this method to have // been called. -@@ -652,7 +685,7 @@ bool TransportSecurityState::GetStaticPKPState(std::string_view host, +@@ -651,7 +684,7 @@ bool TransportSecurityState::GetStaticPKPState(std::string_view host, PreloadResult result; if (host_pins_.has_value()) { // Ensure that |host| is a valid hostname before processing. @@ -469,7 +469,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ return false; } // Normalize any trailing '.' used for DNS suffix searches. -@@ -717,21 +750,21 @@ bool TransportSecurityState::GetStaticPKPState(std::string_view host, +@@ -716,21 +749,21 @@ bool TransportSecurityState::GetStaticPKPState(std::string_view host, return false; } @@ -497,7 +497,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ if (canonicalized_host.empty()) return false; -@@ -768,11 +801,11 @@ bool TransportSecurityState::GetDynamicSTSState(std::string_view host, +@@ -767,11 +800,11 @@ bool TransportSecurityState::GetDynamicSTSState(std::string_view host, return false; } @@ -631,7 +631,7 @@ diff --git a/net/http/transport_security_state.h b/net/http/transport_security_s diff --git a/net/quic/crypto/proof_verifier_chromium.cc b/net/quic/crypto/proof_verifier_chromium.cc --- a/net/quic/crypto/proof_verifier_chromium.cc +++ b/net/quic/crypto/proof_verifier_chromium.cc -@@ -410,7 +410,8 @@ int ProofVerifierChromium::Job::DoVerifyCertComplete(int result) { +@@ -409,7 +409,8 @@ int ProofVerifierChromium::Job::DoVerifyCertComplete(int result) { TransportSecurityState::PKPStatus pin_validity = transport_security_state_->CheckPublicKeyPins( hostname_, cert_verify_result.is_issued_by_known_root, @@ -641,7 +641,7 @@ diff --git a/net/quic/crypto/proof_verifier_chromium.cc b/net/quic/crypto/proof_ switch (pin_validity) { case TransportSecurityState::PKPStatus::VIOLATED: result = ERR_SSL_PINNED_KEY_NOT_IN_CERT_CHAIN; -@@ -435,7 +436,7 @@ int ProofVerifierChromium::Job::DoVerifyCertComplete(int result) { +@@ -434,7 +435,7 @@ int ProofVerifierChromium::Job::DoVerifyCertComplete(int result) { verify_details_->is_fatal_cert_error = IsCertStatusError(cert_status) && result != ERR_CERT_KNOWN_INTERCEPTION_BLOCKED && @@ -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 -@@ -1528,7 +1528,7 @@ bool QuicChromiumClientSession::CanPool( +@@ -1542,7 +1542,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 -@@ -1232,7 +1232,8 @@ ssl_verify_result_t SSLClientSocketImpl::HandleVerifyResult() { +@@ -1234,7 +1234,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 |= -@@ -1252,7 +1253,7 @@ ssl_verify_result_t SSLClientSocketImpl::HandleVerifyResult() { +@@ -1254,7 +1255,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( @@ -729,7 +729,7 @@ diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc diff --git a/net/spdy/spdy_session.h b/net/spdy/spdy_session.h --- a/net/spdy/spdy_session.h +++ b/net/spdy/spdy_session.h -@@ -319,7 +319,8 @@ class NET_EXPORT SpdySession +@@ -318,7 +318,8 @@ class NET_EXPORT SpdySession const SSLInfo& ssl_info, const SSLConfigService& ssl_config_service, std::string_view old_hostname, @@ -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 -@@ -405,20 +405,6 @@ std::unique_ptr URLRequestContextBuilder::Build() { +@@ -410,20 +410,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 -@@ -370,6 +370,7 @@ std::unique_ptr URLRequestHttpJob::Create(URLRequest* request) { +@@ -371,6 +371,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(), -@@ -1244,7 +1245,7 @@ void URLRequestHttpJob::ProcessStrictTransportSecurityHeader() { +@@ -1218,7 +1219,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 } } -@@ -1324,7 +1325,7 @@ void URLRequestHttpJob::OnStartCompleted(int result) { +@@ -1298,7 +1299,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 -@@ -2090,6 +2090,7 @@ void NetworkContext::CreateHostResolver( +@@ -2068,6 +2068,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, -@@ -2101,6 +2102,7 @@ void NetworkContext::VerifyCertInternal( +@@ -2079,6 +2080,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(); -@@ -2131,20 +2133,22 @@ void NetworkContext::VerifyCertInternal( +@@ -2109,20 +2111,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)); } -@@ -2185,17 +2189,19 @@ void NetworkContext::SetCorsOriginAccessListsForOrigin( +@@ -2163,17 +2167,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 = -@@ -2207,10 +2213,10 @@ void NetworkContext::IsHSTSActiveForHost(const std::string& host, +@@ -2185,10 +2191,10 @@ void NetworkContext::IsHSTSActiveForHost(const std::string& host, } std::move(callback).Run( @@ -872,7 +872,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont GetHSTSStateCallback callback) { base::Value::Dict result; -@@ -2248,10 +2254,10 @@ void NetworkContext::GetHSTSState(const std::string& domain, +@@ -2226,10 +2232,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)); -@@ -2289,6 +2295,7 @@ void NetworkContext::GetHSTSState(const std::string& domain, +@@ -2267,6 +2273,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 = -@@ -2299,7 +2306,7 @@ void NetworkContext::DeleteDynamicDataForHost( +@@ -2277,7 +2284,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( -@@ -2357,7 +2364,7 @@ void NetworkContext::PreconnectSockets( +@@ -2335,7 +2342,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. -@@ -3200,7 +3207,9 @@ void NetworkContext::OnConnectionError() { +@@ -3186,7 +3193,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. -@@ -3226,6 +3235,7 @@ GURL NetworkContext::GetHSTSRedirectForPreconnect(const GURL& original_url) { +@@ -3212,6 +3221,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); -@@ -3287,7 +3297,8 @@ void NetworkContext::OnVerifyCertComplete(uint64_t cert_verify_id, int result) { +@@ -3273,7 +3283,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, @@ -943,7 +943,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont 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 -@@ -423,12 +423,14 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -417,12 +417,14 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext mojo::PendingReceiver receiver) override; void VerifyCert(const scoped_refptr& certificate, const net::HostPortPair& host_port, @@ -958,7 +958,7 @@ diff --git a/services/network/network_context.h b/services/network/network_conte const std::string& ocsp_result, const std::string& sct_list, VerifyCertCallback callback) override; -@@ -437,16 +439,18 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -431,16 +433,18 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext const std::string& hostname, const scoped_refptr& tls_certificate, Verify2QwacCertBindingCallback callback) override; @@ -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( -@@ -807,7 +811,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -792,7 +796,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); -@@ -819,6 +824,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -804,6 +809,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, -@@ -999,6 +1005,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -979,6 +985,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 -@@ -1576,6 +1576,7 @@ interface NetworkContext { +@@ -1565,6 +1565,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); -@@ -1584,6 +1585,7 @@ interface NetworkContext { +@@ -1573,6 +1574,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); -@@ -1597,18 +1599,18 @@ interface NetworkContext { +@@ -1586,18 +1588,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 -@@ -1627,7 +1629,7 @@ interface NetworkContext { +@@ -1616,7 +1618,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 0ad2f1d8..6c959d1e 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 -@@ -1110,6 +1110,11 @@ void MediaDevicesManager::OnDevicesEnumerated( +@@ -1113,6 +1113,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 41c60947..3c91ecdf 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 -@@ -13030,6 +13030,8 @@ void RenderFrameHostImpl::ReportBlockingCrossPartitionBlobURL( +@@ -13097,6 +13097,8 @@ void RenderFrameHostImpl::ReportBlockingCrossPartitionBlobURL( } bool RenderFrameHostImpl::IsFullCookieAccessAllowed() { @@ -276,7 +276,7 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/ diff --git a/storage/browser/blob/blob_url_store_impl.h b/storage/browser/blob/blob_url_store_impl.h --- a/storage/browser/blob/blob_url_store_impl.h +++ b/storage/browser/blob/blob_url_store_impl.h -@@ -54,16 +54,22 @@ class COMPONENT_EXPORT(STORAGE_BROWSER) BlobURLStoreImpl +@@ -55,16 +55,22 @@ class COMPONENT_EXPORT(STORAGE_BROWSER) BlobURLStoreImpl void Register( mojo::PendingRemote blob, const GURL& url, @@ -301,7 +301,7 @@ diff --git a/storage/browser/blob/blob_url_store_impl.h b/storage/browser/blob/b private: // Checks if the passed in url is a valid blob url for this blob url store. -@@ -76,6 +82,11 @@ class COMPONENT_EXPORT(STORAGE_BROWSER) BlobURLStoreImpl +@@ -77,6 +83,11 @@ class COMPONENT_EXPORT(STORAGE_BROWSER) BlobURLStoreImpl bool has_storage_access_handle, BlobUrlRegistry::MappingStatus mapping_status); 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 b550246c..83e0d3e8 100644 --- a/build/patches/Partitioning-all-cookies-by-top-frame-domain.patch +++ b/build/patches/Partitioning-all-cookies-by-top-frame-domain.patch @@ -14,9 +14,8 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../net/profile_network_context_service.cc | 12 +++--- .../privacy_sandbox_settings_delegate.cc | 1 + ...storage_access_grant_permission_context.cc | 13 +++++++ - .../experiment/experiment_manager_impl.cc | 1 + .../strings/android/site_settings.grdp | 4 +- - .../core/browser/cookie_settings.cc | 4 +- + .../core/browser/cookie_settings.cc | 6 +-- .../core/common/cookie_settings_base.cc | 39 +------------------ ...ioning-all-cookies-by-top-frame-domain.inc | 4 ++ ...ioning-all-cookies-by-top-frame-domain.inc | 1 + @@ -41,7 +40,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../cookie_store_delete_options.idl | 2 +- ui/webui/webui_allowlist.cc | 1 + url/url_features.cc | 1 + - 32 files changed, 91 insertions(+), 66 deletions(-) + 31 files changed, 90 insertions(+), 68 deletions(-) create mode 100644 cromite_flags/components/content_settings/core/common/features_cc/Partitioning-all-cookies-by-top-frame-domain.inc create mode 100644 cromite_flags/components/permissions/features_cc/Partitioning-all-cookies-by-top-frame-domain.inc create mode 100644 cromite_flags/content/public/common/content_features_cc/Partitioning-all-cookies-by-top-frame-domain.inc @@ -51,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 -@@ -3651,7 +3651,7 @@ bool ChromeContentBrowserClient::IsFullCookieAccessAllowed( +@@ -3630,7 +3630,7 @@ bool ChromeContentBrowserClient::IsFullCookieAccessAllowed( scoped_refptr cookie_settings = CookieSettingsFactory::GetForProfile(profile); if (!cookie_settings) { @@ -77,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 -@@ -1133,16 +1133,16 @@ ProfileNetworkContextService::CreateCookieManagerParams( +@@ -1132,16 +1132,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. @@ -103,14 +102,14 @@ diff --git a/chrome/browser/net/profile_network_context_service.cc b/chrome/brow diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_settings_delegate.cc b/chrome/browser/privacy_sandbox/privacy_sandbox_settings_delegate.cc --- a/chrome/browser/privacy_sandbox/privacy_sandbox_settings_delegate.cc +++ b/chrome/browser/privacy_sandbox/privacy_sandbox_settings_delegate.cc -@@ -354,6 +354,7 @@ bool PrivacySandboxSettingsDelegate::IsCookieDeprecationLabelAllowed() const { +@@ -144,6 +144,7 @@ bool PrivacySandboxSettingsDelegate::HasAppropriateTopicsConsent() const { - bool PrivacySandboxSettingsDelegate:: - AreThirdPartyCookiesBlockedByCookieDeprecationExperiment() const { + bool PrivacySandboxSettingsDelegate::PrivacySandboxRestrictedNoticeRequired() + const { + if ((true)) return false; - if (net::cookie_util::IsForceThirdPartyCookieBlockingEnabled()) { - return false; - } + if ((true)) return true; + auto* identity_manager = IdentityManagerFactory::GetForProfile(profile_); + 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 @@ -141,17 +140,6 @@ diff --git a/chrome/browser/storage_access_api/storage_access_grant_permission_c if (metadata.AreSitesInSameFirstPartySet()) { switch (metadata.top_frame_entry()->site_type()) { case net::SiteType::kPrimary: -diff --git a/chrome/browser/tpcd/experiment/experiment_manager_impl.cc b/chrome/browser/tpcd/experiment/experiment_manager_impl.cc ---- a/chrome/browser/tpcd/experiment/experiment_manager_impl.cc -+++ b/chrome/browser/tpcd/experiment/experiment_manager_impl.cc -@@ -177,6 +177,7 @@ void ExperimentManagerImpl::MaybeUpdateSyntheticTrialRegistration() { - } - - std::optional ExperimentManagerImpl::IsClientEligible() const { -+ if ((true)) return std::nullopt; - if (kForceEligibleForTesting.Get()) { - return true; - } diff --git a/components/browser_ui/strings/android/site_settings.grdp b/components/browser_ui/strings/android/site_settings.grdp --- a/components/browser_ui/strings/android/site_settings.grdp +++ b/components/browser_ui/strings/android/site_settings.grdp @@ -164,7 +152,7 @@ diff --git a/components/browser_ui/strings/android/site_settings.grdp b/componen Third-party cookies are blocked -@@ -688,7 +688,7 @@ +@@ -691,7 +691,7 @@ A site you visit can embed content from other sites, for example, images, ads, and text. Cookies set by these other sites are called third-party cookies. @@ -176,7 +164,7 @@ diff --git a/components/browser_ui/strings/android/site_settings.grdp b/componen diff --git a/components/content_settings/core/browser/cookie_settings.cc b/components/content_settings/core/browser/cookie_settings.cc --- a/components/content_settings/core/browser/cookie_settings.cc +++ b/components/content_settings/core/browser/cookie_settings.cc -@@ -126,6 +126,7 @@ void CookieSettings::SetTemporaryCookieGrantForHeuristic( +@@ -115,6 +115,7 @@ void CookieSettings::SetTemporaryCookieGrantForHeuristic( const GURL& first_party_url, base::TimeDelta ttl, bool use_schemeless_patterns) { @@ -184,11 +172,13 @@ diff --git a/components/content_settings/core/browser/cookie_settings.cc b/compo if (url.is_empty() || first_party_url.is_empty()) { return; } -@@ -390,8 +391,7 @@ bool CookieSettings::ShouldBlockThirdPartyCookiesInternal() const { +@@ -352,10 +353,7 @@ bool CookieSettings::ShouldBlockThirdPartyCookiesInternal() const { } bool CookieSettings::MitigationsEnabledFor3pcdInternal() const { -- return AreThirdPartyCookiesLimited() || +- return (base::FeatureList::IsEnabled( +- content_settings::features::kTrackingProtection3pcd) && +- !is_incognito_) || - net::cookie_util::IsForceThirdPartyCookieBlockingEnabled(); + return false; } @@ -197,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 -@@ -598,48 +598,11 @@ CookieSettingsBase::DecideAccess(const GURL& url, +@@ -597,48 +597,11 @@ CookieSettingsBase::DecideAccess(const GURL& url, ThirdPartyCookieAllowMechanism::kAllowByGlobalSetting}; } @@ -246,7 +236,7 @@ diff --git a/components/content_settings/core/common/cookie_settings_base.cc b/c if (is_explicit_setting) { return AllowAllCookies{ -@@ -675,7 +638,7 @@ CookieSettingsBase::GetCookieSettingInternal( +@@ -674,7 +637,7 @@ CookieSettingsBase::GetCookieSettingInternal( } return CookieSettingWithMetadata{/*cookie_setting=*/CONTENT_SETTING_ALLOW, /*allow_partitioned_cookies=*/true, @@ -275,7 +265,7 @@ new file mode 100644 --- /dev/null +++ b/cromite_flags/content/public/common/content_features_cc/Partitioning-all-cookies-by-top-frame-domain.inc @@ -0,0 +1 @@ -+SET_CROMITE_FEATURE_DISABLED(kCookieDeprecationFacilitatedTesting); ++// empty file diff --git a/cromite_flags/net/base/features_cc/Partitioning-all-cookies-by-top-frame-domain.inc b/cromite_flags/net/base/features_cc/Partitioning-all-cookies-by-top-frame-domain.inc new file mode 100644 --- /dev/null @@ -305,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 -@@ -1089,11 +1089,6 @@ CanonicalCookie::IsCanonicalForFromStorage() const { +@@ -1094,11 +1094,6 @@ CanonicalCookie::IsCanonicalForFromStorage() const { return Fail(CanonicalizationFailure::kEmptyNameWithHiddenPrefix); } @@ -344,7 +334,7 @@ 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 -@@ -803,6 +803,7 @@ bool IsCookiePartitionedValid(const GURL& url, +@@ -802,6 +802,7 @@ bool IsCookiePartitionedValid(const GURL& url, bool secure, bool is_partitioned, bool partition_has_nonce) { @@ -399,7 +389,7 @@ diff --git a/net/cookies/parsed_cookie.h b/net/cookies/parsed_cookie.h 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 -@@ -816,6 +816,14 @@ bool SQLitePersistentCookieStore::Backend::DoInitializeDatabase() { +@@ -817,6 +817,14 @@ bool SQLitePersistentCookieStore::Backend::DoInitializeDatabase() { if (!restore_old_session_cookies_) DeleteSessionCookiesOnStartup(); @@ -430,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 -@@ -1652,6 +1652,7 @@ bool URLRequestHttpJob::NeedsRetryWithStorageAccess() { +@@ -1627,6 +1627,7 @@ bool URLRequestHttpJob::NeedsRetryWithStorageAccess() { auto determine_storage_access_retry_outcome = [&]() -> cookie_util::ActivateStorageAccessRetryOutcome { using enum cookie_util::ActivateStorageAccessRetryOutcome; @@ -441,7 +431,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque diff --git a/services/network/cookie_settings.cc b/services/network/cookie_settings.cc --- a/services/network/cookie_settings.cc +++ b/services/network/cookie_settings.cc -@@ -46,8 +46,7 @@ namespace network { +@@ -45,8 +45,7 @@ namespace network { namespace { bool ShouldApply3pcdRelatedReasons(const net::CanonicalCookie& cookie) { @@ -451,7 +441,7 @@ diff --git a/services/network/cookie_settings.cc b/services/network/cookie_setti } bool IsValidType(ContentSettingsType type) { -@@ -125,8 +124,7 @@ bool IsOriginOpaqueHttpOrHttps( +@@ -124,8 +123,7 @@ bool IsOriginOpaqueHttpOrHttps( // static bool CookieSettings::IsCookieAllowed(const net::CanonicalCookie& cookie, const CookieSettingWithMetadata& setting) { @@ -475,7 +465,7 @@ diff --git a/services/network/cors/cors_url_loader.cc b/services/network/cors/co diff --git a/services/network/restricted_cookie_manager.cc b/services/network/restricted_cookie_manager.cc --- a/services/network/restricted_cookie_manager.cc +++ b/services/network/restricted_cookie_manager.cc -@@ -984,6 +984,12 @@ void RestrictedCookieManager::SetCookieFromString( +@@ -985,6 +985,12 @@ void RestrictedCookieManager::SetCookieFromString( shared_memory_region = GetAndPrepareSharedMemoryRegion(url); } @@ -491,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 -@@ -2582,6 +2582,7 @@ bool URLLoader::ShouldSetLoadWithStorageAccess() const { +@@ -2588,6 +2588,7 @@ bool URLLoader::ShouldSetLoadWithStorageAccess() const { auto determine_storage_access_load_outcome = [&]() -> net::cookie_util::ActivateStorageAccessLoadOutcome { @@ -513,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 -@@ -393,6 +393,7 @@ ScriptPromise CookieStore::set(ScriptState* script_state, +@@ -413,6 +413,7 @@ ScriptPromise CookieStore::set(ScriptState* script_state, CookieInit* set_options = CookieInit::Create(); set_options->setName(name); set_options->setValue(value); @@ -521,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); } -@@ -416,6 +417,7 @@ ScriptPromise CookieStore::Delete( +@@ -436,6 +437,7 @@ ScriptPromise CookieStore::Delete( set_options->setName(name); set_options->setValue(name.empty() ? "deleted" : ""); set_options->setExpires(0); @@ -529,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); } -@@ -431,6 +433,7 @@ ScriptPromise CookieStore::Delete( +@@ -451,6 +453,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 f1895bf5..b48016d4 100644 --- a/build/patches/Private-network-access-content-settings.patch +++ b/build/patches/Private-network-access-content-settings.patch @@ -12,9 +12,10 @@ 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 +- ...rivate-network-access-content-settings.inc | 2 + services/network/public/cpp/features.cc | 2 +- - 7 files changed, 175 insertions(+), 4 deletions(-) + 8 files changed, 178 insertions(+), 7 deletions(-) create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromiteInsecurePrivateNetworkContentSetting.java create mode 100644 components/browser_ui/strings/bromite_content_settings/insecure_private_network.grdp create mode 100644 components/content_settings/core/browser/bromite_content_settings/insecure_private_network.inc @@ -24,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 -@@ -4113,6 +4113,31 @@ bool ShouldPromptOnMultipleMatchingCertificates(const Profile* profile) { +@@ -4106,6 +4106,31 @@ bool ShouldPromptOnMultipleMatchingCertificates(const Profile* profile) { return false; } @@ -56,7 +57,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch } // namespace base::OnceClosure ChromeContentBrowserClient::SelectClientCertificate( -@@ -7695,12 +7720,17 @@ content::ContentBrowserClient::PrivateNetworkRequestPolicyOverride +@@ -7662,12 +7687,17 @@ content::ContentBrowserClient::PrivateNetworkRequestPolicyOverride ChromeContentBrowserClient::ShouldOverridePrivateNetworkRequestPolicy( content::BrowserContext* browser_context, const url::Origin& origin) { @@ -76,7 +77,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch -#endif Profile* profile = Profile::FromBrowserContext(browser_context); - if (profile->GetPrefs()->GetBoolean( + diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromiteInsecurePrivateNetworkContentSetting.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromiteInsecurePrivateNetworkContentSetting.java new file mode 100644 --- /dev/null @@ -236,6 +237,34 @@ 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 +@@ -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 + // to reduce instances of this happening before enabling this feature. +- return Policy::kAllow; ++ return Policy::kWarn; + case AddressSpace::kLocal: + // Requests from the non secure contexts in the `local` address space + // to localhost are blocked only if the right feature is enabled. + // This is controlled separately because private network websites face + // additional hurdles compared to public websites. See crbug.com/1234044. +- return Policy::kWarn; ++ return Policy::kBlock; + case AddressSpace::kPublic: + case AddressSpace::kLoopback: + // Private network requests from non secure contexts are blocked if the +@@ -137,7 +137,7 @@ Policy DerivePolicyForNonSecureContext( + // has no effect. Indeed, requests initiated from the local address space + // are never considered private network requests - they cannot target + // more-private address spaces. +- return Policy::kWarn; ++ return Policy::kBlock; + } + } + diff --git a/cromite_flags/services/network/public/cpp/features_cc/Private-network-access-content-settings.inc b/cromite_flags/services/network/public/cpp/features_cc/Private-network-access-content-settings.inc new file mode 100644 --- /dev/null diff --git a/build/patches/PublicKeyCredential-fingerprinting-mitigations.patch b/build/patches/PublicKeyCredential-fingerprinting-mitigations.patch index f00ad699..2ce1059c 100644 --- a/build/patches/PublicKeyCredential-fingerprinting-mitigations.patch +++ b/build/patches/PublicKeyCredential-fingerprinting-mitigations.patch @@ -13,7 +13,7 @@ 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 -@@ -1906,6 +1906,7 @@ void AuthenticatorCommonImpl::GetClientCapabilities( +@@ -2028,6 +2028,7 @@ void AuthenticatorCommonImpl::GetClientCapabilities( base::FeatureList::IsEnabled(device::kWebAuthnPasskeyUpgrade))); IsHybridTransportSupported( @@ -21,7 +21,7 @@ diff --git a/content/browser/webauth/authenticator_common_impl.cc b/content/brow base::BindOnce(&MakeCapability, client_capabilities::kHybridTransport) .Then(barrier_callback)); -@@ -1933,11 +1934,25 @@ void AuthenticatorCommonImpl::GetClientCapabilities( +@@ -2055,11 +2056,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) { -@@ -1983,6 +1998,13 @@ void AuthenticatorCommonImpl::ContinueIsUvpaaAfterOverrideCheck( +@@ -2105,6 +2120,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 1ea7a67f..b3e1ecf3 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,18 +45,18 @@ 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 -@@ -261,6 +261,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -253,6 +253,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kAsyncNotificationManagerForDownload, &kAutomotiveBackButtonBarStreamline, &kAuxiliarySearchDonation, + &kCloseAllTabsModalDialog, &kAuxiliarySearchHistoryDonation, + &kAvoidDoubleMultiwindowChanges, &kBlockIntentsWhileLocked, - &kBookmarkPaneAndroid, 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 -@@ -371,6 +371,7 @@ public abstract class ChromeFeatureList { +@@ -361,6 +361,7 @@ public abstract class ChromeFeatureList { public static final String CLEAR_INSTANCE_INFO_WHEN_CLOSED_INTENTIONALLY = "ClearInstanceInfoWhenClosedIntentionally"; public static final String CLEAR_INTENT_WHEN_RECREATED = "ClearIntentWhenRecreated"; diff --git a/build/patches/Re-introduce-override_build_timestamp.patch b/build/patches/Re-introduce-override_build_timestamp.patch index 79bbc280..330f5f92 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 -@@ -4436,8 +4436,12 @@ if (current_toolchain == default_toolchain) { +@@ -4467,8 +4467,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 c20162d8..43fff542 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 -@@ -489,7 +489,7 @@ class DnsHTTPAttempt : public DnsAttempt, public URLRequest::Delegate { +@@ -510,7 +510,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 -@@ -530,6 +530,7 @@ void URLRequestHttpJob::OnGotFirstPartySetMetadata( +@@ -531,6 +531,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()) { -@@ -537,11 +538,14 @@ void URLRequestHttpJob::OnGotFirstPartySetMetadata( +@@ -538,11 +539,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(); -@@ -793,10 +797,10 @@ void URLRequestHttpJob::StartTransactionInternal() { +@@ -794,10 +798,10 @@ void URLRequestHttpJob::StartTransactionInternal() { void URLRequestHttpJob::AddExtraHeaders() { request_info_.extra_headers.SetAcceptEncodingIfMissing( request()->url(), request()->accepted_stream_types(), diff --git a/build/patches/Remove-ChromiumNetworkAdapter.patch b/build/patches/Remove-ChromiumNetworkAdapter.patch index cb9e05f2..5144291b 100644 --- a/build/patches/Remove-ChromiumNetworkAdapter.patch +++ b/build/patches/Remove-ChromiumNetworkAdapter.patch @@ -7,7 +7,7 @@ without asking the native code License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- - .../webview_shell/WebViewBrowserFragment.java | 56 ----------------- + .../webview_shell/WebViewBrowserFragment.java | 57 ----------------- .../browser/download/OMADownloadHandler.java | 39 ------------ .../browser/feedback/ConnectivityChecker.java | 36 +---------- .../ConnectivityDetector.java | 63 ------------------- @@ -15,12 +15,12 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../util/HttpURLConnectionFactoryImpl.java | 7 +-- .../firstrun/VariationsSeedFetcher.java | 26 +------- .../chromium/net/ChromiumNetworkAdapter.java | 13 ---- - 8 files changed, 4 insertions(+), 239 deletions(-) + 8 files changed, 4 insertions(+), 240 deletions(-) diff --git a/android_webview/tools/system_webview_shell/apk/src/org/chromium/webview_shell/WebViewBrowserFragment.java b/android_webview/tools/system_webview_shell/apk/src/org/chromium/webview_shell/WebViewBrowserFragment.java --- a/android_webview/tools/system_webview_shell/apk/src/org/chromium/webview_shell/WebViewBrowserFragment.java +++ b/android_webview/tools/system_webview_shell/apk/src/org/chromium/webview_shell/WebViewBrowserFragment.java -@@ -239,62 +239,6 @@ public class WebViewBrowserFragment extends Fragment { +@@ -239,63 +239,6 @@ public class WebViewBrowserFragment extends Fragment { /** Downloading file in background thread */ @Override protected String doInBackground() { @@ -29,28 +29,29 @@ diff --git a/android_webview/tools/system_webview_shell/apk/src/org/chromium/web - NetworkTrafficAnnotationTag.createComplete( - "android_webview_shell", - """ -- semantics { -- sender: "WebViewBrowserFragment (Android)" -- description: -- "Downloads files as specified by the shell browser." -- trigger: "User interations within the browser, causing a download" -- data: "No additional data." -- destination: LOCAL -- internal { -- contacts { -- email: "avvall@chromium.org" -- } -- } -- user_data { -- type: NONE -- } -- last_reviewed: "2024-07-25" -- } -- policy { -- cookies_allowed: NO -- setting: "This feature can not be disabled." -- policy_exception_justification: "Not implemented." -- }"""); +- semantics { +- sender: "WebViewBrowserFragment (Android)" +- description: +- "Downloads files as specified by the shell browser." +- trigger: "User interations within the browser, causing a download" +- data: "No additional data." +- destination: LOCAL +- internal { +- contacts { +- email: "avvall@chromium.org" +- } +- } +- user_data { +- type: NONE +- } +- last_reviewed: "2024-07-25" +- } +- policy { +- cookies_allowed: NO +- setting: "This feature can not be disabled." +- policy_exception_justification: "Not implemented." +- }\ +- """); - URL url = new URL(mFileUrl); - URLConnection connection = ChromiumNetworkAdapter.openConnection(url, annotation); - connection.connect(); diff --git a/build/patches/Remove-EV-certificates.patch b/build/patches/Remove-EV-certificates.patch index e1f06cd0..d4176886 100644 --- a/build/patches/Remove-EV-certificates.patch +++ b/build/patches/Remove-EV-certificates.patch @@ -16,7 +16,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/net/cert/ev_root_ca_metadata.cc b/net/cert/ev_root_ca_metadata.cc --- a/net/cert/ev_root_ca_metadata.cc +++ b/net/cert/ev_root_ca_metadata.cc -@@ -37,7 +37,19 @@ struct EVMetadata { +@@ -36,7 +36,19 @@ struct EVMetadata { const std::string_view policy_oids[kMaxOIDsPerCA]; }; @@ -37,7 +37,7 @@ diff --git a/net/cert/ev_root_ca_metadata.cc b/net/cert/ev_root_ca_metadata.cc #endif // defined(PLATFORM_USES_CHROMIUM_EV_METADATA) } // namespace -@@ -116,7 +128,6 @@ bool EVRootCAMetadata::RemoveEVCA(const SHA256HashValue& fingerprint) { +@@ -115,7 +127,6 @@ bool EVRootCAMetadata::RemoveEVCA(const SHA256HashValue& fingerprint) { // bool EVRootCAMetadata::IsEVPolicyOID(bssl::der::Input policy_oid) const { 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 f6f37bc7..d40d00a7 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 -@@ -683,6 +683,8 @@ chrome_java_resources = [ +@@ -658,6 +658,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,8 +56,8 @@ 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 -@@ -963,6 +963,8 @@ chrome_java_sources = [ - "java/src/org/chromium/chrome/browser/privacy_sandbox/ChromeTrackingProtectionDelegate.java", +@@ -971,6 +971,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", + "java/src/org/chromium/chrome/browser/privacy/settings/RefererSettingsFragment.java", @@ -120,7 +120,7 @@ new file mode 100644 diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -119,6 +119,10 @@ found in the LICENSE file. +@@ -112,6 +112,10 @@ found in the LICENSE file. android:title="@string/close_tabs_on_exit_title" android:summary="@string/close_tabs_on_exit_summary" android:defaultValue="false" /> @@ -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; -@@ -115,6 +116,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -118,6 +119,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"; -@@ -527,6 +529,10 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -542,6 +544,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 -@@ -242,6 +242,11 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { +@@ -241,6 +241,11 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { (*s_allowlist)[::prefs::kExpireDaysThreshold] = settings_api::PrefType::kNumber; @@ -410,7 +410,7 @@ diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chro 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 -@@ -673,6 +673,9 @@ SystemNetworkContextManager::SystemNetworkContextManager( +@@ -675,6 +675,9 @@ SystemNetworkContextManager::SystemNetworkContextManager( base::BindRepeating(&SystemNetworkContextManager::UpdateReferrersEnabled, base::Unretained(this))); @@ -420,7 +420,7 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows pref_change_registrar_.Add( prefs::kExplicitlyAllowedNetworkPorts, base::BindRepeating( -@@ -755,6 +758,7 @@ void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) { +@@ -757,6 +760,7 @@ void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) { // the system NetworkContext, and the per-profile pref values are used for // the profile NetworkContexts. registry->RegisterBooleanPref(prefs::kEnableReferrers, true); @@ -431,7 +431,7 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows diff --git a/chrome/browser/renderer_preferences_util.cc b/chrome/browser/renderer_preferences_util.cc --- a/chrome/browser/renderer_preferences_util.cc +++ b/chrome/browser/renderer_preferences_util.cc -@@ -149,6 +149,7 @@ void UpdateFromSystemSettings(blink::RendererPreferences* prefs, +@@ -150,6 +150,7 @@ void UpdateFromSystemSettings(blink::RendererPreferences* prefs, prefs->caret_blink_interval = ui::NativeTheme::GetInstanceForNativeUi()->caret_blink_interval(); prefs->enable_referrers = pref_service->GetBoolean(prefs::kEnableReferrers); @@ -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 -@@ -1098,6 +1098,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 -@@ -2257,6 +2257,10 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, +@@ -2302,6 +2302,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}, @@ -576,7 +576,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide 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 -@@ -1567,6 +1567,9 @@ inline constexpr char kEnableDoNotTrack[] = "enable_do_not_track"; +@@ -1564,6 +1564,9 @@ inline constexpr char kEnableDoNotTrack[] = "enable_do_not_track"; inline constexpr char kEnableEncryptedMedia[] = "webkit.webprefs.encrypted_media_enabled"; @@ -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 -@@ -403,6 +403,15 @@ void AddAdditionalRequestHeaders( +@@ -397,6 +397,15 @@ void AddAdditionalRequestHeaders( blink::mojom::Referrer(GURL(), network::mojom::ReferrerPolicy::kNever); } diff --git a/build/patches/Remove-binary-blob-integrations.patch b/build/patches/Remove-binary-blob-integrations.patch index 37cdabdc..ea4e16a3 100644 --- a/build/patches/Remove-binary-blob-integrations.patch +++ b/build/patches/Remove-binary-blob-integrations.patch @@ -26,7 +26,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- ...em_webview_bundle.AndroidManifest.expected | 5 - build/config/android/config.gni | 4 +- - chrome/android/BUILD.gn | 30 +- + chrome/android/BUILD.gn | 18 - chrome/android/chrome_java_sources.gni | 4 - chrome/android/java/AndroidManifest.xml | 33 - .../browser/PlayServicesVersionInfo.java | 12 +- @@ -51,8 +51,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/webauthn/android/BUILD.gn | 1 - .../CableAuthenticatorModuleProvider.java | 35 +- chrome/browser/webid/BUILD.gn | 3 - - .../DigitalCredentialsCreationDelegate.java | 112 --- - ...igitalCredentialsPresentationDelegate.java | 88 +- + .../DigitalCredentialsCreationDelegate.java | 121 +-- + ...igitalCredentialsPresentationDelegate.java | 89 +- chrome/test/android/BUILD.gn | 2 - .../ExternalNavigationHandler.java | 8 - components/externalauth/android/BUILD.gn | 3 - @@ -88,14 +88,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../android/backend/common/BUILD.gn | 2 - .../backend/OneTimeTokensMetricsRecorder.java | 16 - .../android/backend/sms/BUILD.gn | 3 - - .../sms/AndroidSmsOtpFetchReceiverBridge.java | 8 +- + .../sms/AndroidSmsOtpFetchReceiverBridge.java | 11 +- components/signin/public/android/BUILD.gn | 3 - components/webauthn/android/BUILD.gn | 12 +- .../webauthn/ConditionalUiState.java | 15 + - .../webauthn/Fido2CredentialRequest.java | 107 +-- - .../webauthn/GmsCoreGetCredentialsHelper.java | 78 +- + .../webauthn/Fido2CredentialRequest.java | 113 +-- + .../webauthn/GmsCoreGetCredentialsHelper.java | 79 +- .../components/webauthn/GmsCoreUtils.java | 74 +- - .../webauthn/IdentityCredentialsHelper.java | 119 +-- + .../webauthn/IdentityCredentialsHelper.java | 143 +-- .../webauthn/WebauthnModeProvider.java | 15 - .../cred_man/CredManMetricsHelper.java | 17 +- .../push_messaging/push_messaging_manager.cc | 2 +- @@ -111,7 +111,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../gms/ChromiumPlayServicesAvailability.java | 17 +- third_party/androidx/customizations.gni | 14 +- third_party/cardboard/BUILD.gn | 4 - - 87 files changed, 138 insertions(+), 2684 deletions(-) + 87 files changed, 134 insertions(+), 2720 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 @@ -139,7 +139,7 @@ diff --git a/android_webview/expectations/system_webview_bundle.AndroidManifest. diff --git a/build/config/android/config.gni b/build/config/android/config.gni --- a/build/config/android/config.gni +++ b/build/config/android/config.gni -@@ -203,9 +203,7 @@ if (is_android) { +@@ -197,9 +197,7 @@ if (is_android) { # google_play_services_package contains the path where individual client # targets (e.g. google_play_services_base_java) are located. @@ -153,7 +153,7 @@ 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 -@@ -287,14 +287,6 @@ if (_is_default_toolchain) { +@@ -288,14 +288,6 @@ if (_is_default_toolchain) { ":java_overlay_resources", ":system_ai_service_proto_java", ":usage_stats_proto_java", @@ -168,32 +168,20 @@ 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", -@@ -737,12 +729,21 @@ if (_is_default_toolchain) { - "//services/shape_detection:shape_detection_java", +@@ -742,12 +734,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", -+ # added for Bromite in place of binary blobs -+ "//third_party/androidx:androidx_annotation_annotation_java", - "//third_party/android_deps:com_airbnb_android_lottie_java", + "//third_party/android_deps:chromium_play_services_availability_java", +- "//third_party/android_deps:com_airbnb_android_lottie_java", - "//third_party/android_deps:com_google_code_findbugs_jsr305_java", -+ "//third_party/androidx:androidx_lifecycle_lifecycle_common_java", -+ "//third_party/androidx:androidx_appcompat_appcompat_java", -+ "//third_party/androidx:androidx_fragment_fragment_java", -+ "//third_party/androidx:androidx_core_core_java", -+ "//third_party/androidx:androidx_media_media_java", -+ "//third_party/androidx:androidx_recyclerview_recyclerview_java", -+ "//third_party/androidx:androidx_vectordrawable_vectordrawable_java", -+ "//base:base_java", -+ "//third_party/jni_zero:jni_zero_java", -+ "//third_party/android_deps:chromium_play_services_availability_java", + "//third_party/android_deps:com_google_errorprone_error_prone_annotations_java", "//third_party/android_deps:guava_android_java", "//third_party/android_deps:material_design_java", - "//third_party/android_deps:playcore_java", "//third_party/android_deps:protobuf_lite_runtime_java", "//third_party/android_media:android_media_java", "//third_party/android_swipe_refresh:android_swipe_refresh_java", -@@ -1979,7 +1980,6 @@ if (_is_default_toolchain) { +@@ -1903,7 +1892,6 @@ if (_is_default_toolchain) { ] deps = [ ":chrome_java", @@ -201,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", -@@ -2111,7 +2111,6 @@ if (_is_default_toolchain) { +@@ -2009,7 +1997,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", @@ -209,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", -@@ -2138,14 +2137,10 @@ if (_is_default_toolchain) { +@@ -2037,14 +2024,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", @@ -224,10 +212,10 @@ 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", -@@ -2160,7 +2155,6 @@ if (_is_default_toolchain) { - "//components/embedder_support/android:application_java", - "//components/minidump_uploader:minidump_uploader_java", +@@ -2063,7 +2046,6 @@ if (_is_default_toolchain) { "//components/module_installer/android:module_installer_java", + "//components/policy/android:policy_java", + "//components/variations/android:variations_java", - "//third_party/android_deps:playcore_java", "//third_party/androidx:androidx_annotation_annotation_java", "//third_party/androidx:androidx_collection_collection_java", @@ -235,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 -@@ -989,10 +989,6 @@ chrome_java_sources = [ +@@ -997,10 +997,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", @@ -244,8 +232,8 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java - "java/src/org/chromium/chrome/browser/services/gcm/GCMNativeBackgroundTask.java", - "java/src/org/chromium/chrome/browser/services/gcm/GcmUma.java", "java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java", - "java/src/org/chromium/chrome/browser/settings/MainSettings.java", - "java/src/org/chromium/chrome/browser/settings/MultiColumnSettings.java", + + # LINT.IfChange(MainSettingsBuildRule) 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 @@ -269,7 +257,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -@@ -822,16 +817,6 @@ by a child template that "extends" this file. +@@ -835,16 +830,6 @@ by a child template that "extends" this file. @@ -286,7 +274,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro @@ -305,7 +293,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -@@ -1369,12 +1342,6 @@ by a child template that "extends" this file. +@@ -1380,12 +1353,6 @@ by a child template that "extends" this file. {% endif %} @@ -428,7 +416,7 @@ diff --git a/chrome/browser/language/android/BUILD.gn b/chrome/browser/language/ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/AppLanguagePromoDialog.java b/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/AppLanguagePromoDialog.java --- a/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/AppLanguagePromoDialog.java +++ b/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/AppLanguagePromoDialog.java -@@ -594,12 +594,6 @@ public class AppLanguagePromoDialog { +@@ -593,12 +593,6 @@ public class AppLanguagePromoDialog { mLoadingModal.set(ModalDialogProperties.CUSTOM_VIEW, customView); @@ -441,7 +429,7 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse boolean isSelectedCurrentUi = AppLocaleUtils.isAppLanguagePref(selectedLanguage.getCode()); if (!isSelectedCurrentUi) { // Only record isTopLanguage if the app language has changed. -@@ -607,31 +601,6 @@ public class AppLanguagePromoDialog { +@@ -606,31 +600,6 @@ public class AppLanguagePromoDialog { } AndroidLanguageMetricsBridge.reportAppLanguagePromptLanguage( selectedLanguage.isSystemDefault() ? "" : selectedLanguage.getCode()); @@ -476,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 -@@ -24,7 +24,6 @@ import org.chromium.build.annotations.Nullable; +@@ -25,7 +25,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; @@ -484,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; -@@ -144,11 +143,6 @@ public class LanguageSettings extends ChromeBaseSettingsFragment +@@ -148,11 +147,6 @@ public class LanguageSettings extends ChromeBaseSettingsFragment * translate target language, and detailed translate preferences. */ private void createDetailedPreferences() { @@ -651,7 +639,7 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerHelper.java b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerHelper.java --- a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerHelper.java +++ b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerHelper.java -@@ -18,8 +18,6 @@ import androidx.annotation.IntDef; +@@ -16,8 +16,6 @@ import androidx.annotation.IntDef; import androidx.annotation.VisibleForTesting; import androidx.fragment.app.FragmentActivity; @@ -660,7 +648,7 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom import org.jni_zero.JniType; import org.jni_zero.NativeMethods; -@@ -502,13 +500,6 @@ public class PasswordManagerHelper { +@@ -490,13 +488,6 @@ public class PasswordManagerHelper { // If the exception is not a Chrome-defined one, it means that the call failed at the // API call level. It could have either failed with a known ApiException or because of a // different error (e.g. a different exception thrown by the implementation of the API). @@ -719,7 +707,7 @@ diff --git a/chrome/browser/push_messaging/push_messaging_service_factory.cc b/c diff --git a/chrome/browser/safe_browsing/notification_telemetry/notification_telemetry_service.cc b/chrome/browser/safe_browsing/notification_telemetry/notification_telemetry_service.cc --- a/chrome/browser/safe_browsing/notification_telemetry/notification_telemetry_service.cc +++ b/chrome/browser/safe_browsing/notification_telemetry/notification_telemetry_service.cc -@@ -130,6 +130,7 @@ NotificationTelemetryService::NotificationTelemetryService( +@@ -133,6 +133,7 @@ NotificationTelemetryService::NotificationTelemetryService( // Notification Telemetry Service is a keyed service and will outlive // any invocations of the callback being registered with the push messaging // service (also a keyed service). @@ -730,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 -@@ -128,8 +128,6 @@ static_library("ui") { +@@ -131,8 +131,6 @@ static_library("ui") { "webui/flags/flags_ui.h", "webui/flags/flags_ui_handler.cc", "webui/flags/flags_ui_handler.h", @@ -739,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", -@@ -469,7 +467,6 @@ static_library("ui") { +@@ -473,7 +471,6 @@ static_library("ui") { "//components/feedback/content", "//components/feedback/redaction_tool", "//components/find_in_page", @@ -750,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 -@@ -174,8 +174,6 @@ android_library("java") { +@@ -175,8 +175,6 @@ android_library("java") { deps = [ ":java_resources", @@ -759,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", -@@ -536,8 +534,6 @@ robolectric_library("junit") { +@@ -521,8 +519,6 @@ robolectric_library("junit") { deps = [ ":java", ":java_resources", @@ -771,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 -@@ -266,11 +266,9 @@ public class FullscreenSigninMediator +@@ -278,11 +278,9 @@ public class FullscreenSigninMediator AccountUtils.getAccountsIfFulfilledOrEmpty(mAccountManagerFacade.getAccounts()), this::onChildAccountStatusReady); @@ -787,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 -@@ -246,7 +246,6 @@ void RegisterChromeWebUIConfigs() { +@@ -247,7 +247,6 @@ void RegisterChromeWebUIConfigs() { map.AddWebUIConfig(std::make_unique()); map.AddWebUIConfig(std::make_unique()); map.AddWebUIConfig(std::make_unique()); @@ -868,8 +856,8 @@ diff --git a/chrome/browser/webauthn/android/java/src/org/chromium/chrome/browse diff --git a/chrome/browser/webid/BUILD.gn b/chrome/browser/webid/BUILD.gn --- a/chrome/browser/webid/BUILD.gn +++ b/chrome/browser/webid/BUILD.gn -@@ -14,8 +14,6 @@ if (is_android) { - "android/java/src/org/chromium/chrome/browser/webid/IdentityCredentialsDelegate.java", +@@ -16,8 +16,6 @@ if (is_android) { + "android/java/src/org/chromium/chrome/browser/webid/TestIdP.java", ] deps = [ - "$google_play_services_package:google_play_services_identity_credentials_java", @@ -877,7 +865,7 @@ diff --git a/chrome/browser/webid/BUILD.gn b/chrome/browser/webid/BUILD.gn "//base:base_java", "//base:service_loader_java", "//content/public/android:content_java", -@@ -44,7 +42,6 @@ if (is_android) { +@@ -49,7 +47,6 @@ if (is_android) { deps = [ ":java", @@ -888,7 +876,7 @@ diff --git a/chrome/browser/webid/BUILD.gn b/chrome/browser/webid/BUILD.gn diff --git a/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/webid/DigitalCredentialsCreationDelegate.java b/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/webid/DigitalCredentialsCreationDelegate.java --- a/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/webid/DigitalCredentialsCreationDelegate.java +++ b/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/webid/DigitalCredentialsCreationDelegate.java -@@ -21,10 +21,6 @@ import androidx.credentials.exceptions.CreateCredentialException; +@@ -18,10 +18,6 @@ import androidx.credentials.exceptions.CreateCredentialException; import androidx.credentials.exceptions.CreateCredentialUnknownException; import androidx.credentials.provider.PendingIntentHandler; @@ -899,14 +887,23 @@ diff --git a/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/w import org.json.JSONException; import org.json.JSONObject; -@@ -49,115 +45,7 @@ public class DigitalCredentialsCreationDelegate { - +@@ -46,122 +42,7 @@ public class DigitalCredentialsCreationDelegate { @OptIn(markerClass = androidx.credentials.ExperimentalDigitalCredentialApi.class) - public Promise create(Activity window, String origin, String request) { -- final IdentityCredentialClient client = -- IdentityCredentialManager.Companion.getClient(window); + public Promise create( + WindowAndroid windowAndroid, String origin, String request) { +- Activity window = windowAndroid.getActivity().get(); +- if (window == null) return Promise.rejected(); - - final Promise result = new Promise<>(); +- final IdentityCredentialClient client; +- try { +- client = IdentityCredentialManager.Companion.getClient(window); +- } catch (Exception e) { +- // Thrown when running in phones without the most current GMS +- // version. +- return Promise.rejected(); +- } +- +- final Promise result = new Promise<>(); - - ResultReceiver resultReceiver = - new ResultReceiver(new Handler(Looper.getMainLooper())) { @@ -920,9 +917,7 @@ diff --git a/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/w - } - Log.d(TAG, "Received a response"); - Intent providerData = -- Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU -- ? data.getParcelable(BUNDLE_KEY_PROVIDER_DATA, Intent.class) -- : data.getParcelable(BUNDLE_KEY_PROVIDER_DATA); +- IntentUtils.safeGetParcelable(data, BUNDLE_KEY_PROVIDER_DATA); - - if (providerData == null) { - Log.d(TAG, "Response doesn't contain providerData"); @@ -988,23 +983,22 @@ diff --git a/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/w - "Response doesn't contain pendingIntent")); - return; - } -- try { -- Log.d(TAG, "Sending an intent for sender"); -- Log.d(TAG, request); -- startIntentSenderForResult( -- /* activity= */ window, -- /* intent= */ response.getPendingIntent().getIntentSender(), -- /* requestCode= */ REQUEST_CODE_DIGITAL_CREDENTIALS_CREATION, -- /* fillInIntent= */ null, -- /* flagsMask= */ 0, -- /* flagsValues= */ 0, -- /* extraFlags= */ 0, -- /* options= */ null); -- } catch (SendIntentException e) { +- Log.d(TAG, "Sending an intent for sender"); +- Log.d(TAG, request); +- int requestCode = +- windowAndroid.showCancelableIntent( +- response.getPendingIntent(), +- (resultCode, intent) -> { +- if (resultCode != Activity.RESULT_OK +- && result.isPending()) { +- result.reject( +- new Exception("Cancelled or Crashed")); +- } +- }, +- null); +- if (requestCode == WindowAndroid.START_INTENT_FAILURE) { - Log.e(TAG, "Sending an intent for sender failed"); -- if (result.isPending()) { -- result.reject(e); -- } +- result.reject(new Exception("Failed to start intent")); - } - }) - .addOnFailureListener( @@ -1012,13 +1006,15 @@ diff --git a/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/w - result.reject(new CreateCredentialUnknownException("unknown error")); - }); - - return result; +- return result; ++ return Promise.rejected(); } + private static @Nullable DigitalCredential parseResponse(String responseJson) { diff --git a/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/webid/DigitalCredentialsPresentationDelegate.java b/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/webid/DigitalCredentialsPresentationDelegate.java --- a/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/webid/DigitalCredentialsPresentationDelegate.java +++ b/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/webid/DigitalCredentialsPresentationDelegate.java -@@ -21,13 +21,6 @@ import androidx.credentials.Credential; +@@ -18,13 +18,6 @@ import androidx.credentials.Credential; import androidx.credentials.GetDigitalCredentialOption; import androidx.credentials.provider.PendingIntentHandler; @@ -1032,10 +1028,10 @@ diff --git a/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/w import org.json.JSONException; import org.json.JSONObject; -@@ -58,78 +51,7 @@ public class DigitalCredentialsPresentationDelegate { +@@ -57,79 +50,7 @@ public class DigitalCredentialsPresentationDelegate { + Activity window = windowAndroid.getActivity().get(); + if (window == null) return Promise.rejected(); - @OptIn(markerClass = androidx.credentials.ExperimentalDigitalCredentialApi.class) - public Promise get(Activity window, String origin, String request) { - final IdentityCredentialClient client; - try { - client = IdentityCredentialManager.Companion.getClient(window); @@ -1089,21 +1085,22 @@ diff --git a/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/w - resultReceiver)) - .addOnSuccessListener( - response -> { -- try { -- Log.d(TAG, "Sending an intent for sender"); -- Log.d(TAG, request); -- startIntentSenderForResult( -- /* activity= */ window, -- /* intent= */ response.getPendingIntent().getIntentSender(), -- REQUEST_CODE_DIGITAL_CREDENTIALS, -- /* fillInIntent= */ null, -- /* flagsMask= */ 0, -- /* flagsValues= */ 0, -- /* extraFlags= */ 0, -- /* options= */ null); -- } catch (SendIntentException e) { +- Log.d(TAG, "Sending an intent for sender"); +- Log.d(TAG, request); +- int requestCode = +- windowAndroid.showCancelableIntent( +- response.getPendingIntent(), +- (resultCode, intent) -> { +- if (resultCode != Activity.RESULT_OK +- && result.isPending()) { +- result.reject( +- new Exception("Cancelled or Crashed")); +- } +- }, +- null); +- if (requestCode == WindowAndroid.START_INTENT_FAILURE) { - Log.e(TAG, "Sending an intent for sender failed"); -- result.reject(e); +- result.reject(new Exception("Failed to start intent")); - } - }); - @@ -1112,7 +1109,7 @@ diff --git a/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/w } /** -@@ -149,7 +71,7 @@ public class DigitalCredentialsPresentationDelegate { +@@ -149,7 +70,7 @@ public class DigitalCredentialsPresentationDelegate { @VisibleForTesting public static DigitalCredential extractDigitalCredentialFromResponseBundle( int code, Bundle bundle) @@ -1121,7 +1118,7 @@ diff --git a/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/w // Try to read the new format. var digitalCredential = extractDigitalCredentialFromModernResponse(bundle); if (digitalCredential != null) { -@@ -158,11 +80,7 @@ public class DigitalCredentialsPresentationDelegate { +@@ -158,11 +79,7 @@ public class DigitalCredentialsPresentationDelegate { // TODO(crbug.com/336329411) Handle the case when the intent doesn't contain the modern // response, but contains the modern exception. @@ -1137,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 -@@ -379,8 +379,6 @@ android_library("chrome_java_integration_test_support") { +@@ -382,8 +382,6 @@ android_library("chrome_java_integration_test_support") { deps = [ ":chrome_java_test_support_common", @@ -1149,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 -@@ -2818,14 +2818,6 @@ public class ExternalNavigationHandler { +@@ -2853,14 +2853,6 @@ public class ExternalNavigationHandler { * @return Whether the given intent is going to open an Instant App. */ private static boolean isIntentToInstantApp(Intent intent) { @@ -3062,7 +3059,7 @@ diff --git a/components/module_installer/android/BUILD.gn b/components/module_in diff --git a/components/omnibox/common/BUILD.gn b/components/omnibox/common/BUILD.gn --- a/components/omnibox/common/BUILD.gn +++ b/components/omnibox/common/BUILD.gn -@@ -54,7 +54,6 @@ if (is_android) { +@@ -58,7 +58,6 @@ if (is_android) { ":jni_headers", ] deps = [ @@ -3149,7 +3146,7 @@ diff --git a/components/one_time_tokens/android/backend/common/java/src/org/chro diff --git a/components/one_time_tokens/android/backend/sms/BUILD.gn b/components/one_time_tokens/android/backend/sms/BUILD.gn --- a/components/one_time_tokens/android/backend/sms/BUILD.gn +++ b/components/one_time_tokens/android/backend/sms/BUILD.gn -@@ -46,7 +46,6 @@ android_library("java") { +@@ -48,7 +48,6 @@ android_library("java") { ] deps = [ @@ -3157,7 +3154,7 @@ diff --git a/components/one_time_tokens/android/backend/sms/BUILD.gn b/component "//base:base_java", "//build/android:build_java", "//components/one_time_tokens/android/backend/common:java", -@@ -70,7 +69,6 @@ robolectric_binary("one_time_tokens_junit_tests") { +@@ -72,7 +71,6 @@ robolectric_binary("one_time_tokens_junit_tests") { deps = [ ":java", ":sms_otp_fetching_interface_java", @@ -3165,7 +3162,7 @@ diff --git a/components/one_time_tokens/android/backend/sms/BUILD.gn b/component "//base:base_java", "//base:base_java_test_support", "//base:base_junit_test_support", -@@ -81,7 +79,6 @@ robolectric_binary("one_time_tokens_junit_tests") { +@@ -83,7 +81,6 @@ robolectric_binary("one_time_tokens_junit_tests") { android_library("sms_otp_fetching_interface_java") { deps = [ @@ -3186,13 +3183,16 @@ diff --git a/components/one_time_tokens/android/backend/sms/java/src/org/chromiu import org.jni_zero.CalledByNative; import org.jni_zero.JNINamespace; import org.jni_zero.NativeClassQualifiedName; -@@ -41,10 +38,7 @@ class AndroidSmsOtpFetchReceiverBridge { +@@ -42,13 +39,7 @@ class AndroidSmsOtpFetchReceiverBridge { void onOtpValueRetrievalError(Exception exception) { if (mNativeReceiverBridge == 0) return; - int errorCode = CommonStatusCodes.ERROR; -- if (exception instanceof ApiException) { -- errorCode = ((ApiException) exception).getStatusCode(); +- if (exception instanceof OneTimeTokensBackendException backendException) { +- errorCode = backendException.getErrorCode(); +- } +- if (exception instanceof ApiException apiException) { +- errorCode = apiException.getStatusCode(); - } + int errorCode = /* CommonStatusCodes.ERROR */ 13; AndroidSmsOtpFetchReceiverBridgeJni.get() @@ -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", -@@ -205,7 +203,6 @@ robolectric_library("junit") { +@@ -200,7 +198,6 @@ robolectric_library("junit") { deps = [ ":java", ":signin_java_test_support", @@ -3221,7 +3221,7 @@ diff --git a/components/signin/public/android/BUILD.gn b/components/signin/publi diff --git a/components/webauthn/android/BUILD.gn b/components/webauthn/android/BUILD.gn --- a/components/webauthn/android/BUILD.gn +++ b/components/webauthn/android/BUILD.gn -@@ -42,8 +42,6 @@ android_library("java") { +@@ -41,8 +41,6 @@ android_library("java") { "java/src/org/chromium/components/webauthn/Barrier.java", "java/src/org/chromium/components/webauthn/CreateConfirmationUiDelegate.java", "java/src/org/chromium/components/webauthn/Fido2Api.java", @@ -3229,7 +3229,7 @@ diff --git a/components/webauthn/android/BUILD.gn b/components/webauthn/android/ - "java/src/org/chromium/components/webauthn/Fido2ApiCallHelper.java", "java/src/org/chromium/components/webauthn/Fido2CredentialRequest.java", "java/src/org/chromium/components/webauthn/FidoIntentSender.java", - "java/src/org/chromium/components/webauthn/GetCredentialResponseCallback.java", + "java/src/org/chromium/components/webauthn/GetMatchingCredentialIdsDelegate.java", @@ -74,11 +72,11 @@ android_library("java") { "java/src/org/chromium/components/webauthn/cred_man/GpmCredManRequestDecorator.java", ] @@ -3246,7 +3246,7 @@ diff --git a/components/webauthn/android/BUILD.gn b/components/webauthn/android/ "//base:base_java", "//base:service_loader_java", "//base/version_info/android:version_constants_java", -@@ -223,8 +221,6 @@ robolectric_library("junit") { +@@ -232,8 +230,6 @@ robolectric_library("junit") { deps = [ ":java", ":test_support_java", @@ -3287,15 +3287,15 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut import org.jni_zero.JNINamespace; import org.jni_zero.NativeMethods; -@@ -50,7 +48,6 @@ import org.chromium.blink.mojom.ResidentKeyRequirement; - import org.chromium.blink_public.common.BlinkFeatures; +@@ -51,7 +49,6 @@ import org.chromium.blink_public.common.BlinkFeatures; import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; + import org.chromium.components.password_manager.BrowserAssistedLoginType; -import org.chromium.components.webauthn.Fido2ApiCall.Fido2ApiCallParams; import org.chromium.components.webauthn.cred_man.CredManHelper; import org.chromium.components.webauthn.cred_man.CredManSupportProvider; import org.chromium.content_public.browser.ClientDataJson; -@@ -146,12 +143,7 @@ public class Fido2CredentialRequest +@@ -154,12 +151,7 @@ public class Fido2CredentialRequest implements WebauthnBrowserBridge.Provider { */ public Fido2CredentialRequest(AuthenticationContextProvider authenticationContextProvider) { mAuthenticationContextProvider = authenticationContextProvider; @@ -3309,8 +3309,8 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut mPlayServicesAvailable = playServicesAvailable; mCredManHelper = new CredManHelper(mAuthenticationContextProvider, this, mPlayServicesAvailable); -@@ -348,22 +340,6 @@ public class Fido2CredentialRequest - returnErrorAndResetCallback(AuthenticatorStatus.UNKNOWN_ERROR); +@@ -356,29 +348,6 @@ public class Fido2CredentialRequest implements WebauthnBrowserBridge.Provider { + /* credentialRequestResult= */ null); return; } - try { @@ -3321,19 +3321,26 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut - Uri.parse(convertOriginToString(origin)), - clientDataHash, - maybeBrowserOptions, -- getMaybeResultReceiver(), -- this::onGotPendingIntent, -- this::onBinderCallException); +- getMaybeResultReceiver(Fido2ApiRequestType.MAKE_CREDENTIAL), +- (pendingIntent) -> +- onGotPendingIntent( +- pendingIntent, +- Fido2ApiRequestType.MAKE_CREDENTIAL), +- (e) -> +- onBinderCallException( +- e, Fido2ApiRequestType.MAKE_CREDENTIAL)); - } catch (NoSuchAlgorithmException e) { -- mMakeCredentialErrorOutcome = MakeCredentialOutcome.ALGORITHM_NOT_SUPPORTED; -- returnErrorAndResetCallback(AuthenticatorStatus.ALGORITHM_UNSUPPORTED); +- returnErrorAndResetCallback( +- AuthenticatorStatus.ALGORITHM_UNSUPPORTED, +- MakeCredentialOutcome.ALGORITHM_NOT_SUPPORTED, +- /* credentialRequestResult= */ null); - return; - } return; } int result = -@@ -411,23 +387,6 @@ public class Fido2CredentialRequest - returnErrorAndResetCallback(AuthenticatorStatus.UNKNOWN_ERROR); +@@ -435,27 +404,6 @@ public class Fido2CredentialRequest implements WebauthnBrowserBridge.Provider { + /* credentialRequestResult= */ null); return; } - @@ -3345,18 +3352,22 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut - Uri.parse(convertOriginToString(origin)), - clientDataHash, - maybeBrowserOptions, -- getMaybeResultReceiver(), -- this::onGotPendingIntent, -- this::onBinderCallException); +- getMaybeResultReceiver(Fido2ApiRequestType.MAKE_CREDENTIAL), +- (pendingIntent) -> +- onGotPendingIntent( +- pendingIntent, Fido2ApiRequestType.MAKE_CREDENTIAL), +- (e) -> onBinderCallException(e, Fido2ApiRequestType.MAKE_CREDENTIAL)); - } catch (NoSuchAlgorithmException e) { -- mMakeCredentialErrorOutcome = MakeCredentialOutcome.ALGORITHM_NOT_SUPPORTED; -- returnErrorAndResetCallback(AuthenticatorStatus.ALGORITHM_UNSUPPORTED); +- returnErrorAndResetCallback( +- AuthenticatorStatus.ALGORITHM_UNSUPPORTED, +- MakeCredentialOutcome.ALGORITHM_NOT_SUPPORTED, +- /* credentialRequestResult= */ null); - return; - } } - /** -@@ -796,32 +755,6 @@ public class Fido2CredentialRequest + @SuppressWarnings("NewApi") +@@ -909,32 +857,6 @@ public class Fido2CredentialRequest implements WebauthnBrowserBridge.Provider { callback.onIsUserVerifyingPlatformAuthenticatorAvailableResponse(false); return; } @@ -3388,8 +3399,8 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut - }); } - public void handleReportRequest( -@@ -1178,16 +1111,6 @@ public class Fido2CredentialRequest + public void handleReportRequest(PublicKeyCredentialReportOptions options, Origin origin) { +@@ -1271,16 +1193,6 @@ public class Fido2CredentialRequest implements WebauthnBrowserBridge.Provider { if (options.mediation == Mediation.CONDITIONAL) { mCancellableUiState = CancellableUiState.REQUEST_SENT_TO_PLATFORM; } @@ -3400,60 +3411,55 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut - publicKeyOptions, - Uri.parse(callerOriginString), - clientDataHash, -- getMaybeResultReceiver(), -- this::onGotPendingIntent, -- this::onBinderCallException); +- getMaybeResultReceiver(requestType), +- (pendingIntent) -> onGotPendingIntent(pendingIntent, requestType), +- (e) -> onBinderCallException(e, requestType)); } private void handleNonCredentialReturn(GetCredentialOptions options, Integer reason) { -@@ -1231,34 +1154,6 @@ public class Fido2CredentialRequest - return; - } - mCancellableUiState = CancellableUiState.REQUEST_SENT_TO_PLATFORM; +@@ -1325,29 +1237,6 @@ public class Fido2CredentialRequest implements WebauthnBrowserBridge.Provider { + assert mCancellableUiState == CancellableUiState.NONE + || mCancellableUiState == CancellableUiState.REQUEST_SENT_TO_PLATFORM + || mCancellableUiState == CancellableUiState.WAITING_FOR_SELECTION; - -- Fido2ApiCallParams params = -- WebauthnModeProvider.getInstance() -- .getFido2ApiCallParams(mAuthenticationContextProvider.getWebContents()); -- assertNonNull(mAuthenticationContextProvider.getContext()); -- assertNonNull(params); -- Fido2ApiCall call = new Fido2ApiCall(mAuthenticationContextProvider.getContext(), params); -- Parcel args = call.start(); -- String callbackDescriptor = params.mCallbackDescriptor; -- Fido2ApiCall.PendingIntentResult result = -- new Fido2ApiCall.PendingIntentResult(callbackDescriptor); -- args.writeStrongBinder(result); -- args.writeInt(1); // This indicates that the following options are present. -- Fido2Api.appendBrowserGetAssertionOptionsToParcel( -- options, -- Uri.parse(callerOriginString), -- clientDataHash, -- /* tunnelId= */ null, -- /* resultReceiver= */ null, -- args); -- Task task = -- call.run( -- Fido2ApiCall.METHOD_BROWSER_HYBRID_SIGN, -- Fido2ApiCall.TRANSACTION_HYBRID_SIGN, -- args, -- result); -- task.addOnSuccessListener(this::onGotPendingIntent); -- task.addOnFailureListener(this::onBinderCallException); +- if (mCancellableUiState == CancellableUiState.REQUEST_SENT_TO_PLATFORM) { +- logError( +- TAG, +- "Received a second credential selection while the first still in progress."); +- return; +- } +- if (isConditional) { +- mCancellableUiState = CancellableUiState.REQUEST_SENT_TO_PLATFORM; +- } else { +- mCancellableUiState = CancellableUiState.NONE; +- } +- +- Fido2ApiCallHelper.getInstance() +- .invokeFido2HybridGetAssertion( +- mAuthenticationContextProvider, +- options, +- Uri.parse(callerOriginString), +- clientDataHash, +- (pendingIntent) -> +- onGotPendingIntent( +- pendingIntent, Fido2ApiRequestType.GET_ASSERTION_HYBRID), +- (e) -> onBinderCallException(e, Fido2ApiRequestType.GET_ASSERTION_HYBRID)); } // Handles a PendingIntent from the GMSCore FIDO library. diff --git a/components/webauthn/android/java/src/org/chromium/components/webauthn/GmsCoreGetCredentialsHelper.java b/components/webauthn/android/java/src/org/chromium/components/webauthn/GmsCoreGetCredentialsHelper.java --- a/components/webauthn/android/java/src/org/chromium/components/webauthn/GmsCoreGetCredentialsHelper.java +++ b/components/webauthn/android/java/src/org/chromium/components/webauthn/GmsCoreGetCredentialsHelper.java -@@ -10,8 +10,6 @@ import android.os.SystemClock; +@@ -8,8 +8,6 @@ import static org.chromium.components.webauthn.WebauthnLogger.log; - import androidx.annotation.VisibleForTesting; + import android.os.SystemClock; -import com.google.android.gms.tasks.OnFailureListener; - import org.chromium.base.ResettersForTesting; import org.chromium.base.metrics.RecordHistogram; import org.chromium.build.annotations.NullMarked; -@@ -70,6 +68,9 @@ public class GmsCoreGetCredentialsHelper { +@@ -80,6 +78,9 @@ public class GmsCoreGetCredentialsHelper { public interface GetCredentialsCallback { void onCredentialsReceived(List credentials); } @@ -3463,7 +3469,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut public static GmsCoreGetCredentialsHelper getInstance() { if (sInstance == null) { -@@ -100,78 +101,7 @@ public class GmsCoreGetCredentialsHelper { +@@ -109,79 +110,7 @@ public class GmsCoreGetCredentialsHelper { GetCredentialsCallback successCallback, OnFailureListener failureCallback) { log(TAG, "getCredentials with reason: " + reason); @@ -3501,6 +3507,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut - startTimeMs); - }); - } else { +- recordNoCacheReason(reason); - getCredentialsFromFido2Api( - authenticationContextProvider, - relyingPartyId, @@ -3672,7 +3679,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut diff --git a/components/webauthn/android/java/src/org/chromium/components/webauthn/IdentityCredentialsHelper.java b/components/webauthn/android/java/src/org/chromium/components/webauthn/IdentityCredentialsHelper.java --- a/components/webauthn/android/java/src/org/chromium/components/webauthn/IdentityCredentialsHelper.java +++ b/components/webauthn/android/java/src/org/chromium/components/webauthn/IdentityCredentialsHelper.java -@@ -12,12 +12,6 @@ import android.os.Bundle; +@@ -13,12 +13,6 @@ import android.os.Bundle; import androidx.annotation.VisibleForTesting; @@ -3685,10 +3692,10 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut import org.jni_zero.JNINamespace; import org.chromium.blink.mojom.AuthenticatorStatus; -@@ -56,53 +50,8 @@ public class IdentityCredentialsHelper { - MakeCredentialResponseCallback responseCallback, - ErrorCallback errorCallback) { +@@ -57,70 +51,15 @@ public class IdentityCredentialsHelper { log(TAG, "handleConditionalCreateRequest"); + WebauthnRequestCallback callback = + assertNonNull(mAuthenticationContextProvider.getRequestCallback()); - try { - IdentityCredentialClient client = - IdentityCredentialManager.Companion.getClient( @@ -3698,19 +3705,20 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut - GmsCoreUtils.wrapSuccessCallback( - (handle) -> - onConditionalCreateSuccess( -- clientDataJson, -- options, -- responseCallback, -- errorCallback, -- handle))) +- clientDataJson, options, handle))) - .addOnFailureListener( -- GmsCoreUtils.wrapFailureCallback( -- (exception) -> -- onConditionalCreateFailure(errorCallback, exception))); +- GmsCoreUtils.wrapFailureCallback(this::onConditionalCreateFailure)); - } catch (Exception e) { - logError(TAG, "CreateCredential failed ", e); -- errorCallback.onResult( -- AuthenticatorStatus.NOT_ALLOWED_ERROR, MakeCredentialOutcome.OTHER_FAILURE); +- callback.onComplete( +- WebauthnRequestResponse.forFailedMakeCredential( +- AuthenticatorStatus.NOT_ALLOWED_ERROR, +- new RequestMetrics.Builder() +- .setMakeCredentialOutcome(MakeCredentialOutcome.OTHER_FAILURE) +- .setMakeCredentialResult( +- CredentialRequestResult +- .ANDROID_IDENTITY_CREDENTIALS_ERROR) +- .build())); - return; - } - } @@ -3718,8 +3726,6 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut - private void onConditionalCreateSuccess( - byte @Nullable [] clientDataJson, - PublicKeyCredentialCreationOptions options, -- MakeCredentialResponseCallback responseCallback, -- ErrorCallback errorCallback, - CreateCredentialHandle handle) { - log(TAG, "onConditionalCreateSuccess"); - Bundle data = assertNonNull(handle.getCreateCredentialResponse()).getData(); @@ -3727,21 +3733,46 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut - CredManHelper.parseCreateCredentialResponseData(data); - if (response == null) { - log(TAG, "parseCreateCredentialResponseData() failed"); -- errorCallback.onResult( -- AuthenticatorStatus.NOT_ALLOWED_ERROR, MakeCredentialOutcome.OTHER_FAILURE); +- assumeNonNull(mAuthenticationContextProvider.getRequestCallback()) +- .onComplete( +- WebauthnRequestResponse.forFailedMakeCredential( +- AuthenticatorStatus.NOT_ALLOWED_ERROR, +- new RequestMetrics.Builder() +- .setMakeCredentialOutcome( +- MakeCredentialOutcome.OTHER_FAILURE) +- .setMakeCredentialResult( +- CredentialRequestResult +- .ANDROID_IDENTITY_CREDENTIALS_ERROR) +- .build())); - return; - } - if (clientDataJson != null) { - response.info.clientDataJson = clientDataJson; - } - response.echoCredProps = options.credProps; -- responseCallback.onRegisterResponse(AuthenticatorStatus.SUCCESS, response); -+ errorCallback.onResult( -+ AuthenticatorStatus.NOT_ALLOWED_ERROR, MakeCredentialOutcome.OTHER_FAILURE); +- assumeNonNull(mAuthenticationContextProvider.getRequestCallback()) +- .onComplete( +- WebauthnRequestResponse.forSuccessfulMakeCredential( +- response, +- new RequestMetrics.Builder() +- .setMakeCredentialOutcome(MakeCredentialOutcome.SUCCESS) +- .setMakeCredentialResult( +- CredentialRequestResult +- .ANDROID_IDENTITY_CREDENTIALS_SUCCESS) +- .build())); ++ callback.onComplete( ++ WebauthnRequestResponse.forFailedMakeCredential( ++ AuthenticatorStatus.NOT_ALLOWED_ERROR, ++ new RequestMetrics.Builder() ++ .setMakeCredentialOutcome(MakeCredentialOutcome.OTHER_FAILURE) ++ .setMakeCredentialResult( ++ CredentialRequestResult ++ .ANDROID_IDENTITY_CREDENTIALS_ERROR) ++ .build())); } - private void onConditionalCreateFailure(ErrorCallback errorCallback, Exception e) { -@@ -125,70 +74,6 @@ public class IdentityCredentialsHelper { + private void onConditionalCreateFailure(Exception e) { +@@ -153,70 +92,6 @@ public class IdentityCredentialsHelper { // Dispatches a Report request. public void handleReportRequest(PublicKeyCredentialReportOptions options, String origin) { @@ -3762,8 +3793,8 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut - logError(TAG, "handleReportRequest failed ", e); - return; - } - } - +- } +- - @VisibleForTesting - public SignalCredentialStateRequest buildSignalCredentialStateRequest( - PublicKeyCredentialReportOptions options, String origin) { @@ -3783,8 +3814,8 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut - requestDataBundle.putCharSequence(CRED_MAN_PREFIX + "signal_request_json_key", requestJson); - - return new SignalCredentialStateRequest(type, origin, requestDataBundle); -- } -- + } + - @VisibleForTesting - public CreateCredentialRequest buildConditionalCreateRequest( - PublicKeyCredentialCreationOptions options, @@ -3892,7 +3923,7 @@ diff --git a/content/browser/push_messaging/push_messaging_manager.cc b/content/ diff --git a/content/public/android/BUILD.gn b/content/public/android/BUILD.gn --- a/content/public/android/BUILD.gn +++ b/content/public/android/BUILD.gn -@@ -169,10 +169,6 @@ android_library("content_full_java") { +@@ -165,10 +165,6 @@ android_library("content_full_java") { ":content_java_resources", ":content_main_dex_java", ":content_util_java", @@ -3906,7 +3937,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 -@@ -3803,10 +3803,6 @@ if (is_android) { +@@ -3806,10 +3806,6 @@ if (is_android) { testonly = true sources = content_java_sources_needing_jni deps = [ @@ -4401,7 +4432,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. if (!defined(guava_android_target)) { java_prebuilt("com_google_guava_guava_java") { -@@ -965,190 +596,6 @@ template("define_autorolled_targets") { +@@ -974,190 +605,6 @@ template("define_autorolled_targets") { ] } @@ -4413,7 +4444,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_ - enable_bytecode_checks = false - - # To remove visibility constraint, add this dependency to -- # //third_party/android_deps/autorolled/build.gradle. +- # //third_party/android_deps/autorolled/build.gradle.template - visibility = [ - ":*", - "//third_party/androidx:*", @@ -4431,7 +4462,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_ - enable_bytecode_checks = false - - # To remove visibility constraint, add this dependency to -- # //third_party/android_deps/autorolled/build.gradle. +- # //third_party/android_deps/autorolled/build.gradle.template - visibility = [ - ":*", - "//third_party/androidx:*", @@ -4455,7 +4486,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_ - enable_bytecode_checks = false - - # To remove visibility constraint, add this dependency to -- # //third_party/android_deps/autorolled/build.gradle. +- # //third_party/android_deps/autorolled/build.gradle.template - visibility = [ - ":*", - "//third_party/androidx:*", @@ -4478,7 +4509,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_ - enable_bytecode_checks = false - - # To remove visibility constraint, add this dependency to -- # //third_party/android_deps/autorolled/build.gradle. +- # //third_party/android_deps/autorolled/build.gradle.template - visibility = [ - ":*", - "//third_party/androidx:*", @@ -4501,7 +4532,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_ - enable_bytecode_checks = false - - # To remove visibility constraint, add this dependency to -- # //third_party/android_deps/autorolled/build.gradle. +- # //third_party/android_deps/autorolled/build.gradle.template - visibility = [ - ":*", - "//third_party/androidx:*", @@ -4521,7 +4552,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_ - enable_bytecode_checks = false - - # To remove visibility constraint, add this dependency to -- # //third_party/android_deps/autorolled/build.gradle. +- # //third_party/android_deps/autorolled/build.gradle.template - visibility = [ - ":*", - "//third_party/androidx:*", @@ -4541,7 +4572,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_ - enable_bytecode_checks = false - - # To remove visibility constraint, add this dependency to -- # //third_party/android_deps/autorolled/build.gradle. +- # //third_party/android_deps/autorolled/build.gradle.template - visibility = [ - ":*", - "//third_party/androidx:*", @@ -4563,7 +4594,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_ - enable_bytecode_checks = false - - # To remove visibility constraint, add this dependency to -- # //third_party/android_deps/autorolled/build.gradle. +- # //third_party/android_deps/autorolled/build.gradle.template - visibility = [ - ":*", - "//third_party/androidx:*", @@ -4582,7 +4613,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_ - enable_bytecode_checks = false - - # To remove visibility constraint, add this dependency to -- # //third_party/android_deps/autorolled/build.gradle. +- # //third_party/android_deps/autorolled/build.gradle.template - visibility = [ - ":*", - "//third_party/androidx:*", @@ -4592,7 +4623,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" -@@ -1165,242 +612,6 @@ template("define_autorolled_targets") { +@@ -1174,242 +621,6 @@ template("define_autorolled_targets") { testonly = true } @@ -4606,7 +4637,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_ - enable_bytecode_checks = false - - # To remove visibility constraint, add this dependency to -- # //third_party/android_deps/autorolled/build.gradle. +- # //third_party/android_deps/autorolled/build.gradle.template - visibility = [ - ":*", - "//third_party/androidx:*", @@ -4623,7 +4654,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_ - enable_bytecode_checks = false - - # To remove visibility constraint, add this dependency to -- # //third_party/android_deps/autorolled/build.gradle. +- # //third_party/android_deps/autorolled/build.gradle.template - visibility = [ - ":*", - "//third_party/androidx:*", @@ -4650,7 +4681,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_ - enable_bytecode_checks = false - - # To remove visibility constraint, add this dependency to -- # //third_party/android_deps/autorolled/build.gradle. +- # //third_party/android_deps/autorolled/build.gradle.template - visibility = [ - ":*", - "//third_party/androidx:*", @@ -4671,7 +4702,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_ - enable_bytecode_checks = false - - # To remove visibility constraint, add this dependency to -- # //third_party/android_deps/autorolled/build.gradle. +- # //third_party/android_deps/autorolled/build.gradle.template - visibility = [ - ":*", - "//third_party/androidx:*", @@ -4695,7 +4726,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_ - enable_bytecode_checks = false - - # To remove visibility constraint, add this dependency to -- # //third_party/android_deps/autorolled/build.gradle. +- # //third_party/android_deps/autorolled/build.gradle.template - visibility = [ - ":*", - "//third_party/androidx:*", @@ -4712,7 +4743,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_ - enable_bytecode_checks = false - - # To remove visibility constraint, add this dependency to -- # //third_party/android_deps/autorolled/build.gradle. +- # //third_party/android_deps/autorolled/build.gradle.template - visibility = [ - ":*", - "//third_party/androidx:*", @@ -4734,7 +4765,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_ - enable_bytecode_checks = false - - # To remove visibility constraint, add this dependency to -- # //third_party/android_deps/autorolled/build.gradle. +- # //third_party/android_deps/autorolled/build.gradle.template - visibility = [ - ":*", - "//third_party/androidx:*", @@ -4754,7 +4785,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_ - enable_bytecode_checks = false - - # To remove visibility constraint, add this dependency to -- # //third_party/android_deps/autorolled/build.gradle. +- # //third_party/android_deps/autorolled/build.gradle.template - visibility = [ - ":*", - "//third_party/androidx:*", @@ -4774,7 +4805,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_ - enable_bytecode_checks = false - - # To remove visibility constraint, add this dependency to -- # //third_party/android_deps/autorolled/build.gradle. +- # //third_party/android_deps/autorolled/build.gradle.template - visibility = [ - ":*", - "//third_party/androidx:*", @@ -4799,7 +4830,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_ - enable_bytecode_checks = false - - # To remove visibility constraint, add this dependency to -- # //third_party/android_deps/autorolled/build.gradle. +- # //third_party/android_deps/autorolled/build.gradle.template - visibility = [ - ":*", - "//third_party/androidx:*", @@ -4820,7 +4851,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_ - enable_bytecode_checks = false - - # To remove visibility constraint, add this dependency to -- # //third_party/android_deps/autorolled/build.gradle. +- # //third_party/android_deps/autorolled/build.gradle.template - visibility = [ - ":*", - "//third_party/androidx:*", @@ -4835,7 +4866,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" -@@ -1923,28 +1134,6 @@ template("define_autorolled_targets") { +@@ -1945,28 +1156,6 @@ template("define_autorolled_targets") { deps = [ "//third_party/android_deps:org_jetbrains_kotlinx_kotlinx_coroutines_core_jvm_java" ] } @@ -4849,7 +4880,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_ - enable_bytecode_checks = false - - # To remove visibility constraint, add this dependency to -- # //third_party/android_deps/autorolled/build.gradle. +- # //third_party/android_deps/autorolled/build.gradle.template - visibility = [ - ":*", - "//third_party/androidx:*", @@ -4917,7 +4948,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 -@@ -160,7 +160,7 @@ template("androidx_java_prebuilt") { +@@ -163,7 +163,7 @@ template("androidx_java_prebuilt") { } } @@ -4926,7 +4957,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" -@@ -177,6 +177,18 @@ template("androidx_android_aar_prebuilt") { +@@ -180,6 +180,18 @@ template("androidx_android_aar_prebuilt") { } } diff --git a/build/patches/Remove-detection-of-captive-portals.patch b/build/patches/Remove-detection-of-captive-portals.patch index a09473fc..0e6d2765 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 -@@ -600,7 +600,7 @@ void ProfileNetworkContextService::ConfigureNetworkContextParams( +@@ -608,7 +608,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 27ffaf0e..d73dde88 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 -@@ -1175,9 +1175,6 @@ public class KeyboardShortcuts { +@@ -1196,9 +1196,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 -@@ -2648,15 +2648,6 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -2669,15 +2669,6 @@ public abstract class ChromeActivity extends AsyncInitializationActivity final Tab currentTab = getActivityTab(); @@ -58,10 +58,10 @@ 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 -@@ -138,6 +138,7 @@ public class AutofillPaymentMethodsFragment extends ChromeBaseSettingsFragment +@@ -142,6 +142,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_and_feedback); + help.setIcon(R.drawable.ic_help_24dp); + help.setVisible(false); } @@ -69,10 +69,10 @@ 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 -@@ -170,6 +170,7 @@ public class AutofillProfilesFragment extends ChromeBaseSettingsFragment +@@ -173,6 +173,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_and_feedback); + help.setIcon(R.drawable.ic_help_24dp); + help.setVisible(false); } @@ -80,9 +80,9 @@ 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 -@@ -900,6 +900,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -903,6 +903,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment TraceEventVectorDrawableCompat.create( - getResources(), R.drawable.ic_help_and_feedback, getActivity().getTheme())); + getResources(), R.drawable.ic_help_24dp, getActivity().getTheme())); help.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); + help.setVisible(false); } @@ -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 -@@ -1242,7 +1242,6 @@ public abstract class BaseCustomTabActivity extends ChromeActivity { +@@ -1257,7 +1257,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,10 +102,10 @@ 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 -@@ -579,6 +579,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -589,6 +589,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment help.setIcon( TraceEventVectorDrawableCompat.create( - getResources(), R.drawable.ic_help_and_feedback, getActivity().getTheme())); + getResources(), R.drawable.ic_help_24dp, getActivity().getTheme())); + help.setVisible(false); } @@ -113,10 +113,10 @@ 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 -@@ -881,6 +881,7 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -866,6 +866,7 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity help.setIcon( TraceEventVectorDrawableCompat.create( - getResources(), R.drawable.ic_help_and_feedback, getTheme())); + getResources(), R.drawable.ic_help_24dp, getTheme())); + help.setVisible(false); return super.onCreateOptionsMenu(menu); } @@ -124,10 +124,10 @@ 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 -@@ -171,6 +171,7 @@ public class GoogleServicesSettings extends ChromeBaseSettingsFragment +@@ -174,6 +174,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_and_feedback); + help.setIcon(R.drawable.ic_help_24dp); + help.setVisible(false); } @@ -135,10 +135,10 @@ 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 -@@ -312,6 +312,7 @@ public class ManageSyncSettings extends ChromeBaseSettingsFragment +@@ -323,6 +323,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_and_feedback); + help.setIcon(R.drawable.ic_help_24dp); + help.setVisible(false); if (mIsFromSigninScreen) { ActionBar actionBar = ((AppCompatActivity) getActivity()).getSupportActionBar(); @@ -146,7 +146,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/M 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 -@@ -411,7 +411,7 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm +@@ -414,7 +414,7 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm } // Help @@ -160,7 +160,7 @@ diff --git a/chrome/browser/autofill/android/java/res/menu/prefeditor_editor_men +++ b/chrome/browser/autofill/android/java/res/menu/prefeditor_editor_menu.xml @@ -19,6 +19,7 @@ found in the LICENSE file. android:id="@+id/help_menu_id" - android:icon="@drawable/ic_help_and_feedback" + android:icon="@drawable/ic_help_24dp" android:title="@string/help" + android:visibility="gone" app:showAsAction="ifRoom" /> @@ -169,10 +169,10 @@ 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 -@@ -122,6 +122,7 @@ public class AutofillOptionsFragment extends ChromeBaseSettingsFragment { +@@ -124,6 +124,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_and_feedback); + help.setIcon(R.drawable.ic_help_24dp); + help.setVisible(false); } @@ -183,7 +183,7 @@ diff --git a/chrome/browser/prefetch/android/java/src/org/chromium/chrome/browse @@ -46,6 +46,7 @@ public abstract class PreloadPagesSettingsFragmentBase extends ChromeBaseSetting help.setIcon( TraceEventVectorDrawableCompat.create( - getResources(), R.drawable.ic_help_and_feedback, getActivity().getTheme())); + getResources(), R.drawable.ic_help_24dp, getActivity().getTheme())); + help.setVisible(false); } @@ -194,7 +194,7 @@ diff --git a/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome @@ -74,6 +74,7 @@ public abstract class PrivacySandboxSettingsBaseFragment extends ChromeBaseSetti help.setIcon( TraceEventVectorDrawableCompat.create( - getResources(), R.drawable.ic_help_and_feedback, getActivity().getTheme())); + getResources(), R.drawable.ic_help_24dp, getActivity().getTheme())); + help.setVisible(false); } @@ -205,7 +205,7 @@ diff --git a/chrome/browser/safe_browsing/android/java/src/org/chromium/chrome/b @@ -64,6 +64,7 @@ public abstract class SafeBrowsingSettingsFragmentBase extends ChromeBaseSetting help.setIcon( TraceEventVectorDrawableCompat.create( - getResources(), R.drawable.ic_help_and_feedback, getActivity().getTheme())); + getResources(), R.drawable.ic_help_24dp, getActivity().getTheme())); + help.setVisible(false); } diff --git a/build/patches/Remove-navigator.connection-info.patch b/build/patches/Remove-navigator.connection-info.patch index c102a700..1055dcda 100644 --- a/build/patches/Remove-navigator.connection-info.patch +++ b/build/patches/Remove-navigator.connection-info.patch @@ -16,7 +16,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/third_party/blink/renderer/modules/netinfo/network_information.cc b/third_party/blink/renderer/modules/netinfo/network_information.cc --- a/third_party/blink/renderer/modules/netinfo/network_information.cc +++ b/third_party/blink/renderer/modules/netinfo/network_information.cc -@@ -79,7 +79,7 @@ NetworkInformation::~NetworkInformation() { +@@ -80,7 +80,7 @@ NetworkInformation::~NetworkInformation() { } bool NetworkInformation::IsObserving() const { @@ -25,7 +25,7 @@ diff --git a/third_party/blink/renderer/modules/netinfo/network_information.cc b } V8ConnectionType NetworkInformation::type() const { -@@ -180,6 +180,7 @@ void NetworkInformation::ConnectionChange( +@@ -181,6 +181,7 @@ void NetworkInformation::ConnectionChange( const std::optional& transport_rtt, const std::optional& downlink_mbps, bool save_data) { @@ -33,7 +33,7 @@ diff --git a/third_party/blink/renderer/modules/netinfo/network_information.cc b DCHECK(GetExecutionContext()->IsContextThread()); const String host = Host(); -@@ -261,6 +262,7 @@ void NetworkInformation::RemoveAllEventListeners() { +@@ -262,6 +263,7 @@ void NetworkInformation::RemoveAllEventListeners() { } bool NetworkInformation::HasPendingActivity() const { @@ -41,7 +41,7 @@ diff --git a/third_party/blink/renderer/modules/netinfo/network_information.cc b DCHECK(context_stopped_ || IsObserving() == HasEventListeners()); // Prevent collection of this object when there are active listeners. -@@ -273,6 +275,7 @@ void NetworkInformation::ContextDestroyed() { +@@ -274,6 +276,7 @@ void NetworkInformation::ContextDestroyed() { } void NetworkInformation::StartObserving() { @@ -49,7 +49,7 @@ diff --git a/third_party/blink/renderer/modules/netinfo/network_information.cc b if (!IsObserving() && !context_stopped_) { type_ = GetNetworkStateNotifier().ConnectionType(); DCHECK(!connection_observer_handle_); -@@ -283,6 +286,7 @@ void NetworkInformation::StartObserving() { +@@ -284,6 +287,7 @@ void NetworkInformation::StartObserving() { } void NetworkInformation::StopObserving() { diff --git a/build/patches/Remove-preload-of-com.google.android.gms.fonts.patch b/build/patches/Remove-preload-of-com.google.android.gms.fonts.patch deleted file mode 100644 index 6a8b70ad..00000000 --- a/build/patches/Remove-preload-of-com.google.android.gms.fonts.patch +++ /dev/null @@ -1,70 +0,0 @@ -From: uazo -Date: Wed, 6 Jul 2022 09:37:25 +0000 -Subject: Remove preload of com.google.android.gms.fonts - -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/android/java/res_base/font/chrome_google_sans.xml | 8 +------- - .../java/res_base/font/chrome_google_sans_bold.xml | 8 +------- - .../java/res_base/font/chrome_google_sans_medium.xml | 8 +------- - .../org/chromium/chrome/browser/fonts/FontPreloader.java | 1 + - 4 files changed, 4 insertions(+), 21 deletions(-) - -diff --git a/chrome/android/java/res_base/font/chrome_google_sans.xml b/chrome/android/java/res_base/font/chrome_google_sans.xml ---- a/chrome/android/java/res_base/font/chrome_google_sans.xml -+++ b/chrome/android/java/res_base/font/chrome_google_sans.xml -@@ -8,10 +8,4 @@ found in the LICENSE file. - -+ tools:ignore="FontValidationError,FontValidationWarning,UnusedResources"/> -diff --git a/chrome/android/java/res_base/font/chrome_google_sans_bold.xml b/chrome/android/java/res_base/font/chrome_google_sans_bold.xml ---- a/chrome/android/java/res_base/font/chrome_google_sans_bold.xml -+++ b/chrome/android/java/res_base/font/chrome_google_sans_bold.xml -@@ -8,10 +8,4 @@ found in the LICENSE file. - -+ tools:ignore="FontValidationError,FontValidationWarning,UnusedResources"/> -diff --git a/chrome/android/java/res_base/font/chrome_google_sans_medium.xml b/chrome/android/java/res_base/font/chrome_google_sans_medium.xml ---- a/chrome/android/java/res_base/font/chrome_google_sans_medium.xml -+++ b/chrome/android/java/res_base/font/chrome_google_sans_medium.xml -@@ -8,10 +8,4 @@ found in the LICENSE file. - -+ tools:ignore="FontValidationError,FontValidationWarning,UnusedResources"/> -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/fonts/FontPreloader.java b/chrome/android/java/src/org/chromium/chrome/browser/fonts/FontPreloader.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/fonts/FontPreloader.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/fonts/FontPreloader.java -@@ -64,6 +64,7 @@ public class FontPreloader { - mThreadChecker.assertOnValidThread(); - if (!mInitialized) { - mInitialized = true; -+ if ((true)) return; - context = context.getApplicationContext(); - // Create an empty callback so we can call the async version of #getFont. - var callback = --- diff --git a/build/patches/Remove-segmentation-platform.patch b/build/patches/Remove-segmentation-platform.patch index f97717c3..f6dc97cd 100644 --- a/build/patches/Remove-segmentation-platform.patch +++ b/build/patches/Remove-segmentation-platform.patch @@ -47,7 +47,7 @@ diff --git a/chrome/browser/segmentation_platform/chrome_browser_main_extra_part diff --git a/components/segmentation_platform/public/features.cc b/components/segmentation_platform/public/features.cc --- a/components/segmentation_platform/public/features.cc +++ b/components/segmentation_platform/public/features.cc -@@ -272,4 +272,7 @@ constexpr base::FeatureParam kWindowTimeMinutes{&kAndroidTipsNotifications, +@@ -243,4 +243,7 @@ constexpr base::FeatureParam kWindowTimeMinutes{&kAndroidTipsNotifications, "window_time_minutes", /*default_value=*/120}; 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 fb801b34..18ed0f99 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 @@ -59,7 +59,7 @@ new file mode 100644 diff --git a/storage/browser/blob/blob_memory_controller.cc b/storage/browser/blob/blob_memory_controller.cc --- a/storage/browser/blob/blob_memory_controller.cc +++ b/storage/browser/blob/blob_memory_controller.cc -@@ -51,6 +51,15 @@ using MemoryAllocation = BlobMemoryController::MemoryAllocation; +@@ -50,6 +50,15 @@ using MemoryAllocation = BlobMemoryController::MemoryAllocation; using QuotaAllocationTask = BlobMemoryController::QuotaAllocationTask; using DiskSpaceFuncPtr = BlobMemoryController::DiskSpaceFuncPtr; @@ -75,7 +75,7 @@ diff --git a/storage/browser/blob/blob_memory_controller.cc b/storage/browser/bl File::Error CreateBlobDirectory(const FilePath& blob_storage_dir) { File::Error error = File::FILE_OK; base::CreateDirectoryAndGetError(blob_storage_dir, &error); -@@ -81,22 +90,15 @@ BlobStorageLimits CalculateBlobStorageLimitsImpl( +@@ -80,22 +89,15 @@ BlobStorageLimits CalculateBlobStorageLimitsImpl( uint64_t memory_size = optional_memory_size_for_testing ? optional_memory_size_for_testing.value() @@ -244,7 +244,7 @@ diff --git a/third_party/blink/renderer/core/timing/memory_info.cc b/third_party diff --git a/third_party/blink/renderer/core/timing/window_performance.cc b/third_party/blink/renderer/core/timing/window_performance.cc --- a/third_party/blink/renderer/core/timing/window_performance.cc +++ b/third_party/blink/renderer/core/timing/window_performance.cc -@@ -325,7 +325,7 @@ MemoryInfo* WindowPerformance::memory(ScriptState* script_state) const { +@@ -326,7 +326,7 @@ MemoryInfo* WindowPerformance::memory(ScriptState* script_state) const { const bool is_locked_to_site = Platform::Current()->IsLockedToSite(); auto* memory_info = MakeGarbageCollected( is_locked_to_site ? MemoryInfo::Precision::kPrecise diff --git a/build/patches/Remove-voice-recognition-integration.patch b/build/patches/Remove-voice-recognition-integration.patch index 55f92491..bfc2bcb1 100644 --- a/build/patches/Remove-voice-recognition-integration.patch +++ b/build/patches/Remove-voice-recognition-integration.patch @@ -30,7 +30,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/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 -@@ -505,7 +505,7 @@ public class BaseCustomTabRootUiCoordinator extends RootUiCoordinator { +@@ -508,7 +508,7 @@ public class BaseCustomTabRootUiCoordinator extends RootUiCoordinator { mIntentDataProvider.get(), AppCompatResources.getDrawable(mActivity, R.drawable.ic_open_in_new_white_24dp), mOpenInBrowserRunnable, @@ -42,7 +42,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/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 -@@ -81,7 +81,6 @@ import org.chromium.chrome.browser.ntp_customization.theme.chrome_colors.NtpThem +@@ -83,7 +83,6 @@ import org.chromium.chrome.browser.ntp_customization.theme.chrome_colors.NtpThem 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; @@ -50,7 +50,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImpl; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.readaloud.ReadAloudController; -@@ -145,7 +144,6 @@ public class NewTabPage +@@ -149,7 +148,6 @@ public class NewTabPage TemplateUrlServiceObserver, BrowserControlsStateProvider.Observer, FeedSurfaceDelegate, @@ -58,7 +58,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. ModuleDelegateHost { private static final String TAG = "NewTabPage"; -@@ -179,7 +177,6 @@ public class NewTabPage +@@ -183,7 +181,6 @@ public class NewTabPage protected boolean mIsDefaultSearchEngineGoogle; protected @Nullable OmniboxStub mOmniboxStub; @@ -66,7 +66,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. // The timestamp at which the constructor was called. protected final long mConstructedTimeNs; -@@ -395,8 +392,7 @@ public class NewTabPage +@@ -401,8 +398,7 @@ public class NewTabPage @Override public boolean isVoiceSearchEnabled() { @@ -76,7 +76,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. } @Override -@@ -407,14 +403,7 @@ public class NewTabPage +@@ -413,14 +409,7 @@ public class NewTabPage if (mIsDestroyed) return; FeedReliabilityLogger feedReliabilityLogger = mFeedSurfaceProvider.getReliabilityLogger(); @@ -92,7 +92,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. if (feedReliabilityLogger != null) { feedReliabilityLogger.onOmniboxFocused(); } -@@ -1087,12 +1076,6 @@ public class NewTabPage +@@ -1102,12 +1091,6 @@ public class NewTabPage mOmniboxStub.addUrlFocusChangeListener(feedReliabilityLogger); } } @@ -105,7 +105,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. } /** -@@ -1111,11 +1094,6 @@ public class NewTabPage +@@ -1126,11 +1109,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); -@@ -1200,9 +1178,6 @@ public class NewTabPage +@@ -1215,9 +1193,6 @@ public class NewTabPage mOmniboxStub.removeUrlFocusChangeListener(feedReliabilityLogger); } mFeedSurfaceProvider.destroy(); @@ -149,7 +149,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se 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; -@@ -332,7 +331,7 @@ public class SearchActivity extends AsyncInitializationActivity +@@ -333,7 +332,7 @@ public class SearchActivity extends AsyncInitializationActivity this::bringTabGroupToFront, /*omniboxUma*/ (url, transition, isNtp) -> {}, /* bookmarkState= */ (url) -> 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 -@@ -1021,7 +1021,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1027,7 +1027,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 -@@ -117,7 +117,6 @@ import org.chromium.chrome.browser.omnibox.OmniboxStub; +@@ -123,7 +123,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; -@@ -3282,10 +3281,6 @@ public class ToolbarManager +@@ -3336,10 +3335,6 @@ public class ToolbarManager return mLocationBar.getOmniboxStub(); } @@ -306,7 +306,7 @@ 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 -@@ -117,7 +117,6 @@ import org.chromium.chrome.browser.ntp_customization.edge_to_edge.TopInsetCoordi +@@ -122,7 +122,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.geo.GeolocationHeader; @@ -314,7 +314,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi import org.chromium.chrome.browser.paint_preview.DemoPaintPreview; import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer; import org.chromium.chrome.browser.password_manager.PasswordManagerLauncher; -@@ -337,7 +336,6 @@ public class RootUiCoordinator +@@ -343,7 +342,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; -@@ -810,9 +808,6 @@ public class RootUiCoordinator +@@ -821,9 +819,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; } -@@ -1801,23 +1796,10 @@ public class RootUiCoordinator +@@ -1813,23 +1808,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 -@@ -164,7 +164,6 @@ android_library("java") { +@@ -165,7 +165,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", @@ -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; -@@ -630,12 +629,6 @@ public class LocationBarCoordinator +@@ -633,12 +632,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; -@@ -799,7 +792,7 @@ public class LocationBarCoordinator +@@ -802,7 +795,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 } /** -@@ -1000,11 +993,6 @@ public class LocationBarCoordinator +@@ -1014,11 +1007,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 -@@ -29,7 +29,6 @@ import org.chromium.chrome.browser.omnibox.status.StatusCoordinator; +@@ -30,7 +30,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; -@@ -493,11 +492,6 @@ public class LocationBarLayout extends ConstraintLayout { +@@ -506,11 +505,6 @@ public class LocationBarLayout extends ConstraintLayout { mSearchEngineUtils = searchEngineUtils; } @@ -461,7 +461,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 -@@ -73,7 +73,6 @@ import org.chromium.chrome.browser.omnibox.status.StatusCoordinator; +@@ -75,7 +75,6 @@ import org.chromium.chrome.browser.omnibox.status.StatusCoordinator; import org.chromium.chrome.browser.omnibox.styles.OmniboxResourceProvider; import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteCoordinator; import org.chromium.chrome.browser.omnibox.suggestions.OmniboxLoadUrlParams; @@ -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; -@@ -124,8 +123,6 @@ import java.util.function.Supplier; +@@ -126,8 +125,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, -@@ -185,7 +182,6 @@ class LocationBarMediator +@@ -187,7 +184,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; -@@ -283,8 +279,6 @@ class LocationBarMediator +@@ -285,8 +281,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; -@@ -387,9 +381,6 @@ class LocationBarMediator +@@ -389,9 +383,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(); -@@ -531,11 +522,6 @@ class LocationBarMediator +@@ -533,11 +524,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; } -@@ -858,10 +844,6 @@ class LocationBarMediator +@@ -860,10 +846,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,7 +528,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow } /** package */ -@@ -1548,10 +1530,7 @@ class LocationBarMediator +@@ -1550,10 +1532,7 @@ class LocationBarMediator } if (isUrlBarFocusedWithUserInput()) return false; @@ -540,7 +540,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow return false; } boolean isToolbarMicEnabled = mIsToolbarMicEnabledSupplier.getAsBoolean(); -@@ -1569,6 +1548,7 @@ class LocationBarMediator +@@ -1571,6 +1550,7 @@ class LocationBarMediator @VisibleForTesting boolean shouldShowLensButton() { @@ -548,7 +548,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow if (mAutocompleteRequestTypeSupplier.get() != AutocompleteRequestType.SEARCH) { return false; } -@@ -1884,11 +1864,6 @@ class LocationBarMediator +@@ -1907,11 +1887,6 @@ class LocationBarMediator } } @@ -560,7 +560,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow @Override public void addUrlFocusChangeListener(UrlFocusChangeListener listener) { mUrlFocusChangeListeners.addObserver(listener); -@@ -1904,7 +1879,7 @@ class LocationBarMediator +@@ -1927,7 +1902,7 @@ class LocationBarMediator return mUrlHasFocus; } @@ -569,7 +569,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow public void clearOmniboxFocus() { setUrlBarFocus( /* shouldBeFocused= */ false, -@@ -1913,25 +1888,7 @@ class LocationBarMediator +@@ -1936,25 +1911,7 @@ class LocationBarMediator AutocompleteRequestType.SEARCH); } @@ -596,7 +596,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow public void setSearchQuery(String query) { if (TextUtils.isEmpty(query)) return; -@@ -1955,20 +1912,6 @@ class LocationBarMediator +@@ -1978,20 +1935,6 @@ class LocationBarMediator mUrlCoordinator.setKeyboardVisibility(true, false); } @@ -650,10 +650,10 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.omnibox.OmniboxMetrics; 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; import org.chromium.components.omnibox.AutocompleteInput; - import org.chromium.components.omnibox.AutocompleteMatch; -@@ -341,25 +340,6 @@ public class AutocompleteController { +@@ -355,25 +354,6 @@ public class AutocompleteController { mNativeController, bridge == null ? 0L : bridge.getNativeInstance()); } @@ -679,7 +679,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow /** * Updates searchbox stats parameters on the selected match that we will navigate to and * returns the updated URL. -@@ -469,11 +449,6 @@ public class AutocompleteController { +@@ -483,11 +463,6 @@ public class AutocompleteController { long nativeAutocompleteControllerAndroid, long nativeComposeboxQueryControllerBridge); @@ -724,9 +724,9 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.omnibox.suggestions.action.OmniboxActionInSuggest; import org.chromium.chrome.browser.omnibox.suggestions.basic.BasicSuggestionProcessor.BookmarkState; -import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; + import org.chromium.chrome.browser.preloading.PreloadingFeatureMap; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.share.ShareDelegate; - import org.chromium.chrome.browser.tab.Tab; @@ -541,15 +540,6 @@ class AutocompleteMediator mShouldPreventOmniboxAutocomplete = prevent; } 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 a5674667..41974d6a 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 -@@ -2986,7 +2986,8 @@ void DocumentLoader::CommitNavigation() { +@@ -2990,7 +2990,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(); } -@@ -2997,6 +2998,7 @@ void DocumentLoader::CommitNavigation() { +@@ -3001,6 +3002,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/Restore-BookmarkToolbar-setCurrentFolder.patch b/build/patches/Restore-BookmarkToolbar-setCurrentFolder.patch index 6e1f685f..a2232a7a 100644 --- a/build/patches/Restore-BookmarkToolbar-setCurrentFolder.patch +++ b/build/patches/Restore-BookmarkToolbar-setCurrentFolder.patch @@ -33,7 +33,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows private boolean mEditButtonVisible; private boolean mNewFolderButtonVisible; private boolean mNewFolderButtonEnabled; -@@ -66,6 +69,10 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -67,6 +70,10 @@ public class BookmarkToolbar extends SelectableListToolbar setOnMenuItemClickListener(this); } @@ -44,7 +44,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows void setSelectionDelegate(SelectionDelegate selectionDelegate) { mSelectionDelegate = selectionDelegate; getMenu().setGroupEnabled(R.id.selection_mode_menu_group, true); -@@ -169,6 +176,10 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -176,6 +183,10 @@ public class BookmarkToolbar extends SelectableListToolbar getMenu().findItem(id).setChecked(true); } @@ -58,7 +58,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarCoordinator.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarCoordinator.java --- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarCoordinator.java +++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarCoordinator.java -@@ -59,6 +59,7 @@ public class BookmarkToolbarCoordinator { +@@ -62,6 +62,7 @@ public class BookmarkToolbarCoordinator { searchDelegate, R.string.bookmark_toolbar_search, R.id.search_menu_id); mModel = new PropertyModel.Builder(BookmarkToolbarProperties.ALL_KEYS).build(); @@ -69,7 +69,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java --- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java +++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java -@@ -299,6 +299,7 @@ class BookmarkToolbarMediator +@@ -324,6 +324,7 @@ class BookmarkToolbarMediator @Override public void onFolderStateSet(@Nullable BookmarkId folder) { mCurrentFolder = folder; @@ -97,7 +97,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows static final WritableObjectPropertyKey SELECTION_DELEGATE = new WritableObjectPropertyKey<>(); -@@ -70,6 +73,10 @@ class BookmarkToolbarProperties { +@@ -72,6 +75,10 @@ class BookmarkToolbarProperties { static final WritableObjectPropertyKey FAKE_SELECTION_STATE_CHANGE = new WritableObjectPropertyKey<>(/* skipEquality= */ true); @@ -108,7 +108,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows /** Callables to delegate business logic back to the mediator */ static final WritableObjectPropertyKey> MENU_ID_CLICKED_FUNCTION = new WritableObjectPropertyKey<>(); -@@ -92,6 +99,8 @@ class BookmarkToolbarProperties { +@@ -94,6 +101,8 @@ class BookmarkToolbarProperties { NEW_FOLDER_BUTTON_VISIBLE, NEW_FOLDER_BUTTON_ENABLED, NAVIGATION_BUTTON_STATE, diff --git a/build/patches/Restore-LastTabStandingTracker.patch b/build/patches/Restore-LastTabStandingTracker.patch index cd60e0a7..adeae19e 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 -@@ -1573,6 +1573,16 @@ static_library("browser") { +@@ -1531,6 +1531,16 @@ static_library("browser") { "webdata_services/web_data_service_factory.cc", ] @@ -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 -@@ -142,6 +142,7 @@ +@@ -140,6 +140,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" -@@ -1126,6 +1127,7 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -1116,6 +1117,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 -@@ -51,6 +51,7 @@ +@@ -50,6 +50,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" -@@ -450,6 +451,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -444,6 +445,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 6d5c416c..c4129e21 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 -@@ -401,6 +401,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -397,6 +397,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kRecordIncognitoNtpTimeToFirstNavigationMetric, &kRecordSuppressionMetrics, &kReengagementNotification, @@ -34,14 +34,14 @@ 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 -@@ -501,6 +501,7 @@ public abstract class ChromeFeatureList { +@@ -488,6 +488,7 @@ public abstract class ChromeFeatureList { + "MayLaunchUrlUsesSeparateStoragePartition"; public static final String MEDIA_INDICATORS_ANDROID = "MediaIndicatorsAndroid"; - public static final String MINI_ORIGIN_BAR = "MiniOriginBar"; public static final String MOST_VISITED_TILES_CUSTOMIZATION = "MostVisitedTilesCustomization"; + public static final String SEARCH_READY_OMNIBOX = "SearchReadyOmnibox"; public static final String MOST_VISITED_TILES_RESELECT = "MostVisitedTilesReselect"; - public static final String MULTI_INSTANCE_APPLICATION_STATUS_CLEANUP = - "MultiInstanceApplicationStatusCleanup"; + public static final String MOVE_TO_FRONT_IN_LAUNCH_INTENT_DISPATCHER = + "MoveToFrontInLaunchIntentDispatcher"; diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder.java diff --git a/build/patches/Restore-Simplified-NTP-launch.patch b/build/patches/Restore-Simplified-NTP-launch.patch index 07e0bec4..83626dbb 100644 --- a/build/patches/Restore-Simplified-NTP-launch.patch +++ b/build/patches/Restore-Simplified-NTP-launch.patch @@ -68,7 +68,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 -@@ -55,6 +55,11 @@ chrome_java_resources = [ +@@ -53,6 +53,11 @@ chrome_java_resources = [ "java/res/drawable-hdpi/ic_exit_to_app_white_24dp.png", "java/res/drawable-hdpi/ic_file_download_white_24dp.png", "java/res/drawable-hdpi/ic_link_grey600_36dp.png", @@ -80,7 +80,7 @@ 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", -@@ -563,6 +568,7 @@ chrome_java_resources = [ +@@ -538,6 +543,7 @@ chrome_java_resources = [ "java/res/layout/manage_sync_settings_bottom_bar.xml", "java/res/layout/material_tooltip.xml", "java/res/layout/multiline_spinner_item.xml", @@ -88,7 +88,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja "java/res/layout/mv_tiles_layout.xml", "java/res/layout/navigation_bubble.xml", "java/res/layout/navigation_sheet.xml", -@@ -572,8 +578,10 @@ chrome_java_resources = [ +@@ -547,8 +553,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 -@@ -630,6 +630,7 @@ chrome_java_sources = [ +@@ -634,6 +634,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", -@@ -1059,6 +1060,7 @@ chrome_java_sources = [ +@@ -1071,6 +1072,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", @@ -515,7 +515,7 @@ new file mode 100644 + android:gravity="center" + android:layout_gravity="center" + android:drawablePadding="8dp" -+ android:drawableStart="@drawable/btn_star_filled" ++ android:drawableStart="@drawable/ic_star_filled_24dp" + android:text="@string/menu_bookmarks" + android:textAppearance="@style/TextAppearance.TextSmall.Secondary" + app:drawableHeight="20sp" @@ -576,12 +576,12 @@ diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res 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 -@@ -3475,7 +3475,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt - getStartupMetricsTracker(), +@@ -3472,7 +3472,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt mRootUiCoordinator.getExclusiveAccessManager(), mBackPressManager, -- mMultiInstanceManager); -+ mMultiInstanceManager, + mMultiInstanceManager, +- mRecentlyClosedEntriesManager); ++ mRecentlyClosedEntriesManager, + mBookmarkManagerOpenerSupplier); } return mTabDelegateFactory; @@ -589,7 +589,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java --- a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java -@@ -13,6 +13,7 @@ import org.chromium.build.annotations.Nullable; +@@ -14,6 +14,7 @@ import org.chromium.build.annotations.Nullable; import org.chromium.chrome.browser.app.ChromeActivity; import org.chromium.chrome.browser.app.tab_activity_glue.ActivityTabWebContentsDelegateAndroid; import org.chromium.chrome.browser.back_press.BackPressManager; @@ -597,7 +597,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDe import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider; import org.chromium.chrome.browser.compositor.CompositorViewHolder; import org.chromium.chrome.browser.contextmenu.ChromeContextMenuPopulator; -@@ -56,6 +57,8 @@ import org.chromium.ui.modaldialog.ModalDialogManager; +@@ -58,6 +59,8 @@ import org.chromium.ui.modaldialog.ModalDialogManager; import java.util.List; import java.util.function.Supplier; @@ -606,7 +606,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}. -@@ -89,6 +92,8 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory { +@@ -92,6 +95,8 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory { private final ObservableSupplier mTopInsetCoordinatorSupplier; private final StartupMetricsTracker mStartupMetricsTracker; private final @Nullable ExclusiveAccessManager mExclusiveAccessManager; @@ -615,30 +615,30 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDe private @Nullable NativePageFactory mNativePageFactory; private final BackPressManager mBackPressManager; private final MultiInstanceManager mMultiInstanceManager; -@@ -122,7 +127,8 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory { - StartupMetricsTracker startupMetricsTracker, +@@ -128,7 +133,8 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory { @Nullable ExclusiveAccessManager exclusiveAccessManager, BackPressManager backPressManager, -- MultiInstanceManager multiInstanceManager) { -+ MultiInstanceManager multiInstanceManager, + MultiInstanceManager multiInstanceManager, +- RecentlyClosedEntriesManager recentlyClosedEntriesManager) { ++ RecentlyClosedEntriesManager recentlyClosedEntriesManager, + @NonNull ObservableSupplier bookmarkManagerOpenerSupplier) { mActivity = activity; mAppBrowserControlsVisibilityDelegate = appBrowserControlsVisibilityDelegate; mShareDelegateSupplier = shareDelegateSupplier; -@@ -152,6 +158,7 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory { - mExclusiveAccessManager = exclusiveAccessManager; +@@ -160,6 +166,7 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory { mBackPressManager = backPressManager; mMultiInstanceManager = multiInstanceManager; + mRecentlyClosedEntriesManager = recentlyClosedEntriesManager; + mBookmarkManagerOpenerSupplier = bookmarkManagerOpenerSupplier; } @Override -@@ -224,7 +231,8 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory { - mTopInsetCoordinatorSupplier, +@@ -235,7 +242,8 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory { mStartupMetricsTracker, mBackPressManager, -- mMultiInstanceManager); -+ mMultiInstanceManager, + mMultiInstanceManager, +- mRecentlyClosedEntriesManager); ++ mRecentlyClosedEntriesManager, + mBookmarkManagerOpenerSupplier); } return mNativePageFactory.createNativePage(url, candidatePage, tab, pdfInfo); @@ -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 -@@ -150,7 +150,10 @@ public class IdentityDiscController +@@ -151,7 +151,10 @@ public class IdentityDiscController mButtonData.setButtonSpec( buttonSpecWithDrawableAndDescription(mButtonData.getButtonSpec(), email)); @@ -723,7 +723,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat import org.chromium.base.lifetime.Destroyable; import org.chromium.base.metrics.RecordUserAction; -@@ -31,6 +32,7 @@ import org.chromium.chrome.browser.app.ChromeActivity; +@@ -33,6 +34,7 @@ import org.chromium.chrome.browser.app.ChromeActivity; import org.chromium.chrome.browser.app.download.home.DownloadPage; import org.chromium.chrome.browser.back_press.BackPressManager; import org.chromium.chrome.browser.bookmarks.BookmarkPage; @@ -731,7 +731,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat import org.chromium.chrome.browser.browser_controls.BrowserControlsMarginAdapter; import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider; import org.chromium.chrome.browser.flags.ChromeFeatureList; -@@ -98,6 +100,7 @@ public class NativePageFactory { +@@ -104,6 +106,7 @@ public class NativePageFactory { private final ObservableSupplier mEdgeToEdgeControllerSupplier; private final ObservableSupplier mTopInsetCoordinatorSupplier; private final StartupMetricsTracker mStartupMetricsTracker; @@ -739,38 +739,38 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat private @Nullable NewTabPageCreationTracker mNewTabPageCreationTracker; private @Nullable NativePageBuilder mNativePageBuilder; -@@ -124,7 +127,8 @@ public class NativePageFactory { - ObservableSupplier topInsetCoordinatorSupplier, +@@ -134,7 +137,8 @@ public class NativePageFactory { StartupMetricsTracker startupMetricsTracker, BackPressManager backPressManager, -- MultiInstanceManager multiInstanceManager) { -+ MultiInstanceManager multiInstanceManager, + MultiInstanceManager multiInstanceManager, +- RecentlyClosedEntriesManager recentlyClosedEntriesManager) { ++ RecentlyClosedEntriesManager recentlyClosedEntriesManager, + @NonNull ObservableSupplier bookmarkManagerOpenerSupplier) { mActivity = activity; mBottomSheetController = sheetController; mBrowserControlsManager = browserControlsManager; -@@ -144,6 +148,7 @@ public class NativePageFactory { - mStartupMetricsTracker = startupMetricsTracker; +@@ -157,6 +161,7 @@ public class NativePageFactory { mBackPressManager = backPressManager; mMultiInstanceManager = multiInstanceManager; + mRecentlyClosedEntriesManager = recentlyClosedEntriesManager; + mBookmarkManagerOpenerSupplier = bookmarkManagerOpenerSupplier; } private NativePageBuilder getBuilder() { -@@ -169,7 +174,8 @@ public class NativePageFactory { - mTopInsetCoordinatorSupplier, +@@ -185,7 +190,8 @@ public class NativePageFactory { mStartupMetricsTracker, mBackPressManager, -- mMultiInstanceManager); -+ mMultiInstanceManager, + mMultiInstanceManager, +- mRecentlyClosedEntriesManager); ++ mRecentlyClosedEntriesManager, + mBookmarkManagerOpenerSupplier); } return mNativePageBuilder; } -@@ -204,9 +210,10 @@ public class NativePageFactory { - private final StartupMetricsTracker mStartupMetricsTracker; +@@ -223,9 +229,10 @@ public class NativePageFactory { private final BackPressManager mBackPressManager; private final MultiInstanceManager mMultiInstanceManager; + private final RecentlyClosedEntriesManager mRecentlyClosedEntriesManager; + private final ObservableSupplier mBookmarkManagerOpenerSupplier; public NativePageBuilder( @@ -779,25 +779,25 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat Supplier newTabPageCreationTracker, BottomSheetController sheetController, BrowserControlsManager browserControlsManager, -@@ -225,7 +232,8 @@ public class NativePageFactory { - ObservableSupplier topInsetCoordinatorSupplier, +@@ -247,7 +254,8 @@ public class NativePageFactory { StartupMetricsTracker startupMetricsTracker, BackPressManager backPressManager, -- MultiInstanceManager multiInstanceManager) { -+ MultiInstanceManager multiInstanceManager, + MultiInstanceManager multiInstanceManager, +- RecentlyClosedEntriesManager recentlyClosedEntriesManager) { ++ RecentlyClosedEntriesManager recentlyClosedEntriesManager, + @NonNull ObservableSupplier bookmarkManagerOpenerSupplier) { mActivity = activity; mNewTabPageCreationTracker = newTabPageCreationTracker; mBottomSheetController = sheetController; -@@ -246,6 +254,7 @@ public class NativePageFactory { - mStartupMetricsTracker = startupMetricsTracker; +@@ -271,6 +279,7 @@ public class NativePageFactory { mBackPressManager = backPressManager; mMultiInstanceManager = multiInstanceManager; + mRecentlyClosedEntriesManager = recentlyClosedEntriesManager; + mBookmarkManagerOpenerSupplier = bookmarkManagerOpenerSupplier; } protected NativePage buildNewTabPage(Tab tab, String url) { -@@ -288,7 +297,8 @@ public class NativePageFactory { +@@ -315,7 +324,8 @@ public class NativePageFactory { mEdgeToEdgeControllerSupplier, mTopInsetCoordinatorSupplier, mStartupMetricsTracker, @@ -822,8 +822,8 @@ 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 -@@ -133,6 +133,9 @@ import org.chromium.ui.base.DeviceFormFactor; - import org.chromium.ui.base.WindowAndroid; +@@ -137,6 +137,9 @@ import org.chromium.ui.base.WindowAndroid; + import org.chromium.ui.modaldialog.ModalDialogManager; import org.chromium.url.GURL; +import androidx.annotation.NonNull; @@ -832,7 +832,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. import java.util.List; import java.util.function.Supplier; -@@ -534,7 +537,8 @@ public class NewTabPage +@@ -544,7 +547,8 @@ public class NewTabPage ObservableSupplier edgeToEdgeControllerSupplier, ObservableSupplier topInsetCoordinatorSupplier, StartupMetricsTracker startupMetricsTracker, @@ -842,7 +842,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. mConstructedTimeNs = System.nanoTime(); TraceEvent.begin(TAG); -@@ -563,7 +567,7 @@ public class NewTabPage +@@ -573,7 +577,7 @@ public class NewTabPage nativePageHost, tabModelSelector, mTab, @@ -870,15 +870,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL import org.chromium.chrome.browser.lens.LensMetrics; import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher; import org.chromium.chrome.browser.logo.LogoBridge.Logo; -@@ -60,6 +62,7 @@ import org.chromium.chrome.browser.suggestions.tile.MostVisitedTilesCoordinator; +@@ -61,6 +63,7 @@ import org.chromium.chrome.browser.suggestions.tile.MostVisitedTilesCoordinator; import org.chromium.chrome.browser.suggestions.tile.MostVisitedTilesLayout; import org.chromium.chrome.browser.suggestions.tile.TileGroup; import org.chromium.chrome.browser.suggestions.tile.TileGroup.Delegate; +import org.chromium.chrome.browser.suggestions.tile.MostVisitedTilesGridLayout; 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; - import org.chromium.chrome.browser.ui.signin.signin_promo.NtpSigninPromoCoordinator; -@@ -111,6 +114,8 @@ public class NewTabPageLayout extends LinearLayout +@@ -123,6 +126,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. -@@ -123,7 +128,7 @@ public class NewTabPageLayout extends LinearLayout +@@ -135,7 +140,7 @@ public class NewTabPageLayout extends LinearLayout */ private boolean mHasShownView; @@ -896,7 +896,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL private boolean mSearchProviderIsGoogle; private boolean mShowingNonStandardGoogleLogo; private boolean mIsOmniboxMobileParityUpdateV2Enabled; -@@ -131,7 +136,7 @@ public class NewTabPageLayout extends LinearLayout +@@ -143,7 +148,7 @@ public class NewTabPageLayout extends LinearLayout private boolean mInitialized; private float mUrlFocusChangePercent; @@ -905,7 +905,7 @@ 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. */ -@@ -308,6 +313,7 @@ public class NewTabPageLayout extends LinearLayout +@@ -336,6 +341,7 @@ public class NewTabPageLayout extends LinearLayout initializeMostVisitedTilesCoordinator( mProfile, lifecycleDispatcher, tileGroupDelegate, touchEnabledDelegate); initializeDseIconView(shouldShowDseIcon()); @@ -913,7 +913,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL initializeSearchBoxTextView(); initializeVoiceSearchButton(); initializeLensButton(); -@@ -742,8 +748,8 @@ public class NewTabPageLayout extends LinearLayout +@@ -784,8 +790,8 @@ public class NewTabPageLayout extends LinearLayout private void calculateTabletMvtWidth(int totalWidth) { if (mMvTilesContainerLayout.getVisibility() == GONE) return; @@ -924,7 +924,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL updateMvtOnTablet(); } -@@ -793,7 +799,7 @@ public class NewTabPageLayout extends LinearLayout +@@ -835,7 +841,7 @@ public class NewTabPageLayout extends LinearLayout && mInitialized) { return; } @@ -933,7 +933,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL mSearchProviderIsGoogle = isGoogle; if (!mSearchProviderIsGoogle) { -@@ -842,6 +848,7 @@ public class NewTabPageLayout extends LinearLayout +@@ -879,6 +885,7 @@ public class NewTabPageLayout extends LinearLayout * @param disable Whether to disable the animations. */ void setUrlFocusAnimationsDisabled(boolean disable) { @@ -941,7 +941,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL if (disable == mDisableUrlFocusChangeAnimations) return; mDisableUrlFocusChangeAnimations = disable; if (!disable) onUrlFocusAnimationChanged(); -@@ -1246,6 +1253,22 @@ public class NewTabPageLayout extends LinearLayout +@@ -1280,6 +1287,22 @@ public class NewTabPageLayout extends LinearLayout return mMostVisitedTilesCoordinator; } @@ -1357,7 +1357,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til TileRenderer renderer, PropertyModel propertyModel, boolean isTablet, -@@ -214,12 +214,10 @@ public class MostVisitedTilesMediator implements TileGroup.Observer { +@@ -215,12 +215,10 @@ public class MostVisitedTilesMediator implements TileGroup.Observer { @Override public void onCustomTileCreation(Tile tile) { @@ -1370,7 +1370,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til } public void onConfigurationChanged() { -@@ -329,7 +327,5 @@ public class MostVisitedTilesMediator implements TileGroup.Observer { +@@ -330,7 +328,5 @@ public class MostVisitedTilesMediator implements TileGroup.Observer { double firstTileScore = mTileGroup.getSuggestionScore(firstTile.getUrl()); if (firstTileScore < MVT_CUSTOMIZATION_IPH_TILE_SCORE_THRESHOULD) return; @@ -1445,7 +1445,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileRenderer.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileRenderer.java --- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileRenderer.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileRenderer.java -@@ -174,7 +174,7 @@ public class TileRenderer { +@@ -172,7 +172,7 @@ public class TileRenderer { */ public void renderTileSection( List sectionTiles, @@ -1454,7 +1454,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til TileGroup.TileSetupDelegate setupDelegate) { try (TraceEvent e = TraceEvent.scoped("TileRenderer.renderTileSection")) { // Map the old tile views by url so they can be reused later. -@@ -212,7 +212,7 @@ public class TileRenderer { +@@ -210,7 +210,7 @@ public class TileRenderer { if (prevTile != null && (prevTile.getData().source == TileSource.CUSTOM_LINKS) != (tile.getData().source == TileSource.CUSTOM_LINKS)) { @@ -1463,7 +1463,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til } parent.addTile(tileView); if (focusedUrl != null && focusedUrl.equals(tile.getUrl().getSpec())) { -@@ -228,7 +228,7 @@ public class TileRenderer { +@@ -226,7 +226,7 @@ public class TileRenderer { if (shouldShowAddNewButton(sectionTiles)) { TileView addCustomLinksButton = buildAddCustomLinksButton(parent, setupDelegate); @@ -1472,7 +1472,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til } } } -@@ -263,7 +263,7 @@ public class TileRenderer { +@@ -261,7 +261,7 @@ public class TileRenderer { */ @VisibleForTesting SuggestionsTileView buildTileView( @@ -1481,7 +1481,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til SuggestionsTileView tileView = (SuggestionsTileView) LayoutInflater.from(parent.getContext()) -@@ -330,7 +330,7 @@ public class TileRenderer { +@@ -324,7 +324,7 @@ public class TileRenderer { return tileView; } @@ -1490,7 +1490,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til return (SuggestionsTileVerticalDivider) LayoutInflater.from(parent.getContext()) .inflate(R.layout.suggestions_tile_vertical_divider, parent, false); -@@ -351,7 +351,7 @@ public class TileRenderer { +@@ -345,7 +345,7 @@ public class TileRenderer { } TileView buildAddCustomLinksButton( @@ -1514,7 +1514,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til 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 -@@ -60,7 +60,7 @@ static const int kTimesIgnoredForSuppression = 3; +@@ -59,7 +59,7 @@ static const int kTimesIgnoredForSuppression = 3; // These are the maximum # of bookmarks we can use as signals. If the user has // <= kMaxBookmarks, then we just use those bookmarks. Otherwise we filter all // bookmarks on site engagement > 0, sort, and trim to kMaxBookmarks. @@ -1526,9 +1526,9 @@ 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 -@@ -354,6 +354,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { - &kInstanceSwitcherV2, +@@ -348,6 +348,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kKeyboardEscBackNavigation, + &kLaunchCauseScreenOffFix, &kLensOnQuickActionSearchWidget, + &kSimplifiedNTP, &kLinkHoverStatusBar, @@ -1537,18 +1537,18 @@ 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 -@@ -502,6 +502,7 @@ public abstract class ChromeFeatureList { +@@ -489,6 +489,7 @@ public abstract class ChromeFeatureList { + "MayLaunchUrlUsesSeparateStoragePartition"; public static final String MEDIA_INDICATORS_ANDROID = "MediaIndicatorsAndroid"; - public static final String MINI_ORIGIN_BAR = "MiniOriginBar"; public static final String MOST_VISITED_TILES_CUSTOMIZATION = "MostVisitedTilesCustomization"; + public static final String SIMPLIFIED_NTP = "SimplifiedNTP"; public static final String SEARCH_READY_OMNIBOX = "SearchReadyOmnibox"; public static final String MOST_VISITED_TILES_RESELECT = "MostVisitedTilesReselect"; - public static final String MULTI_INSTANCE_APPLICATION_STATUS_CLEANUP = -@@ -980,7 +981,7 @@ public abstract class ChromeFeatureList { - newCachedFlag(LOCK_BACK_PRESS_HANDLER_AT_START, true); - public static final CachedFlag sLockTopControlsOnLargeTabletsV2 = - newCachedFlag(LOCK_TOP_CONTROLS_ON_LARGE_TABLETS_V2, false); + public static final String MOVE_TO_FRONT_IN_LAUNCH_INTENT_DISPATCHER = +@@ -961,7 +962,7 @@ public abstract class ChromeFeatureList { + newCachedFlag( + LOCK_TOP_CONTROLS_ON_LARGE_TABLETS_V2, + /* defaultValue= */ false); - 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 = @@ -1581,7 +1581,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 -@@ -4013,6 +4013,12 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4027,6 +4027,12 @@ To change this setting, BEGIN_LINKdelete the Chrome d Recent tabs @@ -1621,7 +1621,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 -@@ -196,6 +196,7 @@ BASE_FEATURE(kRemoveSearchReadyOmnibox, DISABLED); +@@ -187,6 +187,7 @@ BASE_FEATURE(kRemoveSearchReadyOmnibox, DISABLED); BASE_FEATURE(kDefaultTypedNavigationsToHttps, "OmniboxDefaultTypedNavigationsToHttps", enable_if(IS_IOS)); @@ -1629,18 +1629,18 @@ 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. -@@ -282,6 +283,7 @@ BASE_FEATURE(kOmniboxMobileParityUpdate, ENABLED); +@@ -273,6 +274,7 @@ BASE_FEATURE(kOmniboxMobileParityUpdate, ENABLED); // Updates various NTP/Omnibox assets and descriptions for visual alignment on // Android and iOS, V2. BASE_FEATURE(kOmniboxMobileParityUpdateV2, ENABLED); +SET_CROMITE_FEATURE_DISABLED(kOmniboxMobileParityUpdateV2); - #if BUILDFLAG(IS_IOS) - // Updates the search engine logo on NTP. iOS only. + // The features below allow tuning number of suggestions offered to users in + // specific contexts. These features are default enabled and are used to control 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 -@@ -802,9 +802,9 @@ class TemplateURL { +@@ -803,9 +803,9 @@ class TemplateURL { } const GURL& favicon_url() const { return data().favicon_url; } 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 145a4cee..5812084a 100644 --- a/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch +++ b/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch @@ -9,7 +9,6 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- .../ReaderModeToolbarButtonController.java | 4 ++-- .../ContextualPageActionController.java | 4 ++++ - .../chrome/browser/settings/MainSettings.java | 9 +-------- .../segmentation_platform_config.cc | 1 + .../strings/android_chrome_strings.grd | 3 +++ ...tton_group_adaptive_toolbar_preference.xml | 9 +++++++++ @@ -20,13 +19,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../adaptive/AdaptiveToolbarStats.java | 2 ++ ...oButtonGroupAdaptiveToolbarPreference.java | 19 ++++++++++++------- ...ve-button-in-top-toolbar-customization.inc | 1 + - 13 files changed, 43 insertions(+), 21 deletions(-) + 12 files changed, 42 insertions(+), 13 deletions(-) create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Restore-adaptive-button-in-top-toolbar-customization.inc diff --git a/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeToolbarButtonController.java b/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeToolbarButtonController.java --- a/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeToolbarButtonController.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeToolbarButtonController.java -@@ -79,11 +79,11 @@ public class ReaderModeToolbarButtonController extends BaseButtonDataProvider +@@ -71,11 +71,11 @@ public class ReaderModeToolbarButtonController extends BaseButtonDataProvider modalDialogManager, AppCompatResources.getDrawable(context, R.drawable.ic_mobile_friendly_24dp), context.getString(R.string.reader_mode_cpa_button_text), @@ -38,12 +37,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/R - /* tooltipTextResId= */ R.string.show_reading_mode_text); + /* tooltipTextResId= */ R.string.reader_mode_action_chip_label_simplify_page); - mContext = context; - mActivityTabProvider = activityTabProvider; + mReaderModeIphControllerSupplier = readerModeIphControllerSupplier; + mActivityTabObserver = diff --git a/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java b/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java --- a/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java -@@ -292,6 +292,10 @@ public class ContextualPageActionController { +@@ -293,6 +293,10 @@ public class ContextualPageActionController { && mTabSupplier.get().getId() == tab.getId(); if (!isSameTab) return; @@ -54,29 +53,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/segmentation_pl showDynamicAction(result); }); } -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 -@@ -350,14 +350,7 @@ public class MainSettings extends ChromeBaseSettingsFragment - getContext(), - getProfile(), - /* androidPermissionDelegate= */ null, -- /* behavior= */ null) -- .recomputeUiState( -- uiState -> { -- // Don't show toolbar shortcut settings if disabled from finch. -- if (!uiState.canShowUi) { -- removePreferenceIfPresent(PREF_TOOLBAR_SHORTCUT); -- } -- }); -+ /* behavior= */ null); - // LINT.ThenChange(//chrome/android/java/src/org/chromium/chrome/browser/appearance/settings/AppearanceSettingsFragment.java:InitPrefToolbarShortcut) - - // LINT.IfChange(InitPrefUiTheme) diff --git a/chrome/browser/segmentation_platform/segmentation_platform_config.cc b/chrome/browser/segmentation_platform/segmentation_platform_config.cc --- a/chrome/browser/segmentation_platform/segmentation_platform_config.cc +++ b/chrome/browser/segmentation_platform/segmentation_platform_config.cc -@@ -74,6 +74,7 @@ constexpr int kAdaptiveToolbarDefaultSelectionTTLDays = 56; +@@ -75,6 +75,7 @@ constexpr int kAdaptiveToolbarDefaultSelectionTTLDays = 56; #if BUILDFLAG(IS_ANDROID) std::unique_ptr GetConfigForAdaptiveToolbar() { @@ -87,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 -@@ -5085,6 +5085,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -5108,6 +5108,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d View @@ -119,7 +99,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/res/layout/radio_button_grou diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController.java -@@ -361,7 +361,7 @@ public class AdaptiveToolbarButtonController +@@ -362,7 +362,7 @@ public class AdaptiveToolbarButtonController } private boolean isScreenWideEnoughForButton() { @@ -205,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; -@@ -68,6 +69,7 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut +@@ -67,6 +68,7 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut mAutoButton = (RadioButtonWithDescription) holder.findViewById(R.id.adaptive_option_based_on_usage); @@ -213,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); -@@ -75,6 +77,7 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut +@@ -74,6 +76,7 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut (RadioButtonWithDescription) holder.findViewById(R.id.adaptive_option_voice_search); mTranslateButton = (RadioButtonWithDescription) holder.findViewById(R.id.adaptive_option_translate); @@ -221,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); -@@ -82,6 +85,8 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut +@@ -81,6 +84,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); @@ -230,7 +210,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow mIsBound = true; -@@ -159,13 +164,6 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut +@@ -158,13 +163,6 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut mAutoButton.setDescriptionText( getContext().getString(resId, getButtonString(uiState.autoButtonCaption))); @@ -244,7 +224,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow updateVoiceButtonVisibility(); updateReadAloudButtonVisibility(); updatePageSummaryButtonVisibility(); -@@ -193,6 +191,8 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut +@@ -191,6 +189,8 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut mSelected = AdaptiveToolbarButtonVariant.READ_ALOUD; } else if (mPageSummaryButton.isChecked()) { mSelected = AdaptiveToolbarButtonVariant.PAGE_SUMMARY; @@ -253,7 +233,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow } else { assert false : "No matching setting found."; } -@@ -232,6 +232,8 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut +@@ -230,6 +230,8 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut return mReadAloudButton; case AdaptiveToolbarButtonVariant.PAGE_SUMMARY: return mPageSummaryButton; @@ -262,7 +242,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow } return null; } -@@ -263,6 +265,9 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut +@@ -261,6 +263,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 324fa416..a613a649 100644 --- a/build/patches/Restore-chrome-password-store.patch +++ b/build/patches/Restore-chrome-password-store.patch @@ -19,15 +19,15 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../android/java/res/xml/main_preferences.xml | 3 +- .../AutofillPaymentMethodsFragment.java | 1 + .../settings/AutofillProfilesFragment.java | 1 + - .../settings/PasswordSettings.java | 697 ++++++++++++++++++ + .../settings/PasswordSettings.java | 709 ++++++++++++++++++ .../settings/FragmentDependencyProvider.java | 5 + - .../chrome/browser/settings/MainSettings.java | 13 - + .../chrome/browser/settings/MainSettings.java | 15 - .../settings/SettingsNavigationImpl.java | 4 + chrome/browser/BUILD.gn | 7 + .../autofill/AutofillClientProviderUtils.java | 1 + chrome/browser/password_entry_edit/BUILD.gn | 11 + .../password_entry_edit/android/BUILD.gn | 73 ++ - .../android/credential_edit_bridge.cc | 139 ++++ + .../android/credential_edit_bridge.cc | 141 ++++ .../android/credential_edit_bridge.h | 96 +++ .../android/internal/BUILD.gn | 96 +++ .../CredentialEditBridge.java | 135 ++++ @@ -43,12 +43,12 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../CredentialEditFragmentView.java | 226 ++++++ .../CredentialEntryFragmentViewBase.java | 135 ++++ .../browser/password_manager/android/BUILD.gn | 23 + - .../PasswordManagerHelper.java | 19 +- + .../PasswordManagerHelper.java | 22 +- .../PasswordManagerUtilBridge.java | 3 +- .../settings/CallbackDelayer.java | 18 + .../settings/DialogManager.java | 168 +++++ .../settings/ExportErrorDialogFragment.java | 110 +++ - .../password_manager/settings/ExportFlow.java | 583 +++++++++++++++ + .../password_manager/settings/ExportFlow.java | 583 ++++++++++++++ .../settings/ExportFlowInterface.java | 90 +++ .../settings/NonCancelableProgressBar.java | 55 ++ .../PasswordAccessReauthenticationHelper.java | 143 ++++ @@ -60,17 +60,17 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../settings/PasswordsPreference.java | 1 + .../settings/ProgressBarDialogFragment.java | 70 ++ .../settings/ReauthenticationManager.java | 198 +++++ - .../settings/SavedPasswordEntry.java | 41 ++ + .../settings/SavedPasswordEntry.java | 41 + .../settings/SingleThreadBarrierClosure.java | 49 ++ .../settings/TimedCallbackDelayer.java | 33 + .../android/password_manager_android_util.cc | 1 + - .../android/password_ui_view_android.cc | 449 +++++++++++ + .../android/password_ui_view_android.cc | 450 +++++++++++ .../android/password_ui_view_android.h | 196 +++++ .../android/pwm_disabled/BUILD.gn | 2 - .../password_store_backend_factory.cc | 14 +- ...ssword_manager_settings_service_factory.cc | 4 +- chrome/browser/prefs/browser_prefs.cc | 7 - - .../strings/android_chrome_strings.grd | 123 +++- + .../strings/android_chrome_strings.grd | 123 ++- .../Import-Password-Android.grdp | 9 + .../autofill/core/common/autofill_features.cc | 1 + .../settings/SettingsNavigation.java | 3 + @@ -87,7 +87,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../core/common/password_manager_pref_names.h | 2 - components/sync/service/sync_prefs.cc | 2 +- .../Restore-chrome-password-store.inc | 1 + - 79 files changed, 5539 insertions(+), 76 deletions(-) + 79 files changed, 5556 insertions(+), 79 deletions(-) create mode 100644 chrome/android/java/res/layout/password_no_result.xml create mode 100644 chrome/android/java/res/menu/save_password_preferences_action_bar_menu.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java @@ -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 -@@ -793,6 +793,10 @@ if (_is_default_toolchain) { +@@ -799,6 +799,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 = [ -@@ -935,6 +939,10 @@ if (_is_default_toolchain) { +@@ -943,6 +947,10 @@ if (_is_default_toolchain) { "//components/visited_url_ranking/internal:internal_java", ] @@ -153,12 +153,12 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn + ] + if (is_desktop_android) { - deps += [ - "//chrome/browser/ui/android/extensions/windowing/internal:java", + deps += + [ "//chrome/browser/ui/android/extensions/windowing/internal:java" ] 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 -@@ -674,3 +674,8 @@ chrome_java_resources = [ +@@ -649,3 +649,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 -@@ -898,6 +898,7 @@ chrome_java_sources = [ +@@ -907,6 +907,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 -@@ -587,10 +587,7 @@ class ManualFillingMediator +@@ -608,10 +608,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 -@@ -477,10 +477,9 @@ by a child template that "extends" this file. +@@ -487,10 +487,9 @@ by a child template that "extends" this file. @@ -266,14 +266,14 @@ new file mode 100644 + + + + @@ -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 -@@ -60,7 +60,8 @@ found in the LICENSE file. +@@ -61,7 +61,8 @@ found in the LICENSE file. android:key="autofill_section" android:order="11" android:title="@string/prefs_section_autofill"/> @@ -322,30 +322,30 @@ 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 -@@ -841,6 +841,7 @@ public class AutofillPaymentMethodsFragment extends ChromeBaseSettingsFragment +@@ -812,6 +812,7 @@ public class AutofillPaymentMethodsFragment extends ChromeBaseSettingsFragment } - private boolean disabledSettingsInThirdPartyMode() { + private static boolean disabledSettingsInThirdPartyMode(Profile profile) { + if ((true)) return false; return (AutofillClientProviderUtils.getAndroidAutofillFrameworkAvailability( - UserPrefs.get(getProfile())) - == AndroidAutofillAvailabilityStatus.AVAILABLE) + UserPrefs.get(profile)) + == AndroidAutofillAvailabilityStatus.AVAILABLE); 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 -@@ -447,6 +447,7 @@ public class AutofillProfilesFragment extends ChromeBaseSettingsFragment +@@ -462,6 +462,7 @@ public class AutofillProfilesFragment extends ChromeBaseSettingsFragment } - private boolean disabledSettingsInThirdPartyMode() { + private static boolean disabledSettingsInThirdPartyMode(Profile profile) { + if ((true)) return false; return AutofillClientProviderUtils.getAndroidAutofillFrameworkAvailability( - UserPrefs.get(getProfile())) - == AndroidAutofillAvailabilityStatus.AVAILABLE + UserPrefs.get(profile)) + == AndroidAutofillAvailabilityStatus.AVAILABLE; diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java new file mode 100644 --- /dev/null +++ b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java -@@ -0,0 +1,697 @@ +@@ -0,0 +1,709 @@ +// Copyright 2014 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. @@ -353,6 +353,7 @@ new file mode 100644 +package org.chromium.chrome.browser.password_manager.settings; + +import static org.chromium.chrome.browser.password_manager.PasswordMetricsUtil.PASSWORD_SETTINGS_EXPORT_METRICS_ID; ++import static org.chromium.build.NullUtil.assumeNonNull; + +import android.app.Activity; +import android.content.Context; @@ -377,6 +378,7 @@ new file mode 100644 +import org.chromium.base.supplier.ObservableSupplier; +import org.chromium.base.supplier.ObservableSupplierImpl; +import org.chromium.build.annotations.Nullable; ++import org.chromium.build.annotations.MonotonicNonNull; +import org.chromium.chrome.R; +import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer; +import org.chromium.chrome.browser.password_manager.PasswordManagerHelper; @@ -389,6 +391,7 @@ new file mode 100644 +import org.chromium.components.browser_ui.settings.ChromeBasePreference; +import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; +import org.chromium.components.browser_ui.settings.SearchUtils; ++import org.chromium.components.browser_ui.settings.SearchViewProvider; +import org.chromium.components.browser_ui.settings.TextMessagePreference; +import org.chromium.components.browser_ui.styles.SemanticColorUtils; +import org.chromium.components.prefs.PrefService; @@ -411,7 +414,7 @@ new file mode 100644 + */ +public class PasswordSettings extends ChromeBaseSettingsFragment + implements PasswordListObserver, -+ Preference.OnPreferenceClickListener, ++ Preference.OnPreferenceClickListener, SearchViewProvider, + SyncService.SyncStateChangedListener { + @IntDef({ + TrustedVaultBannerState.NOT_SHOWN, @@ -480,6 +483,7 @@ new file mode 100644 + private final ExportFlow mExportFlow = new ExportFlow(); + private ActivityWindowAndroid mWindowAndroid; + private IntentRequestTracker mIntentRequestTracker; ++ private @MonotonicNonNull SearchViewProvider.Observer mSearchViewObserver; + + @Override + public void onCreatePreferences(@Nullable Bundle savedInstanceState, @Nullable String rootKey) { @@ -562,6 +566,11 @@ new file mode 100644 + } + + @Override ++ public void setSearchViewObserver(SearchViewProvider.Observer observer) { ++ mSearchViewObserver = observer; ++ } ++ ++ @Override + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + menu.clear(); + mMenu = menu; @@ -573,7 +582,8 @@ new file mode 100644 + mHelpItem = menu.findItem(R.id.menu_id_targeted_help); + mHelpItem.setVisible(false); + SearchUtils.initializeSearchView( -+ mSearchItem, mSearchQuery, getActivity(), this::filterPasswords); ++ mSearchItem, mSearchQuery, getActivity(), ++ assumeNonNull(mSearchViewObserver), this::filterPasswords); + } + + @Override @@ -842,6 +852,8 @@ new file mode 100644 + public void onDestroy() { + super.onDestroy(); + ++ if (mSearchViewObserver != null) mSearchViewObserver.onUpdated(false); ++ + if (SyncServiceFactory.getForProfile(getProfile()) != null) { + SyncServiceFactory.getForProfile(getProfile()).removeSyncStateChangedListener(this); + } @@ -1055,7 +1067,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme import org.chromium.chrome.browser.password_manager.PasswordManagerHelper; import org.chromium.chrome.browser.password_manager.PasswordStoreBridge; import org.chromium.chrome.browser.privacy_guide.PrivacyGuideFragment; -@@ -131,6 +133,9 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl +@@ -145,6 +147,9 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl PasswordManagerHelper.getForProfile(mProfile), new SettingsCustomTabLauncherImpl()); } @@ -1068,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 -@@ -608,19 +608,6 @@ public class MainSettings extends ChromeBaseSettingsFragment +@@ -625,15 +625,6 @@ public class MainSettings extends ChromeBaseSettingsFragment return SettingsNavigationHelper.showAutofillProfileSettings( getActivity()); }); @@ -1077,17 +1089,26 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe - passwordsPreference.setOnPreferenceClickListener( - preference -> { - onPreferenceSelected(preference); -- PasswordManagerLauncher.showPasswordSettings( -- getActivity(), -- getProfile(), -- ManagePasswordsReferrer.CHROME_SETTINGS, -- mModalDialogManagerSupplier, -- /* managePasskeys= */ false); +- showPasswordSettings( +- getActivity(), getProfile(), mModalDialogManagerSupplier.asNonNull()); - return true; - }); // 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 + Context context, + Profile profile, + ObservableSupplier modalDialogManagerSupplier) { +- PasswordManagerLauncher.showPasswordSettings( +- context, +- profile, +- ManagePasswordsReferrer.CHROME_SETTINGS, +- modalDialogManagerSupplier.asNonNull(), +- /* managePasskeys= */ false); + } + + private void updatePlusAddressesPreference() { diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsNavigationImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsNavigationImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsNavigationImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsNavigationImpl.java @@ -1107,7 +1128,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin case SettingsFragment.GOOGLE_SERVICES: case SettingsFragment.MANAGE_SYNC: case SettingsFragment.FINANCIAL_ACCOUNTS: -@@ -134,6 +136,8 @@ public class SettingsNavigationImpl implements SettingsNavigation { +@@ -156,6 +158,8 @@ public class SettingsNavigationImpl implements SettingsNavigation { return SiteSettings.class; case SettingsFragment.ACCESSIBILITY: return AccessibilitySettings.class; @@ -1119,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 -@@ -3365,6 +3365,13 @@ static_library("browser") { +@@ -3330,6 +3330,13 @@ static_library("browser") { "touch_to_fill/password_manager/touch_to_fill_controller_webauthn_delegate.h", ] @@ -1242,7 +1263,7 @@ diff --git a/chrome/browser/password_entry_edit/android/credential_edit_bridge.c new file mode 100644 --- /dev/null +++ b/chrome/browser/password_entry_edit/android/credential_edit_bridge.cc -@@ -0,0 +1,139 @@ +@@ -0,0 +1,141 @@ +// Copyright 2021 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. @@ -1382,6 +1403,8 @@ new file mode 100644 + base::UnescapeRule::SPACES, nullptr, nullptr, nullptr) + : std::u16string(); +} ++ ++DEFINE_JNI(CredentialEditBridge) diff --git a/chrome/browser/password_entry_edit/android/credential_edit_bridge.h b/chrome/browser/password_entry_edit/android/credential_edit_bridge.h new file mode 100644 --- /dev/null @@ -2553,7 +2576,7 @@ new file mode 100644 + + modalDialogManagerSupplier, + ModalDialogManager modalDialogManager, SettingsCustomTabLauncher settingsCustomTabLauncher) { + if ((true)) return false; // Automotive doesn't support the export flow. if (!DeviceInfo.isAutomotive() && LoginDbDeprecationUtilBridge.hasPasswordsInCsv(mProfile)) { -@@ -179,16 +181,6 @@ public class PasswordManagerHelper { +@@ -170,16 +172,6 @@ public class PasswordManagerHelper { return true; } @@ -3022,7 +3054,7 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom - new PasswordManagerUnavailableDialogCoordinator() - .showDialog( - context, -- assertNonNull(modalDialogManagerSupplier.get()), +- modalDialogManager, - PasswordManagerUtilBridge.isGooglePlayServicesUpdatable() - ? GmsUpdateLauncher::launch - : null); @@ -3031,9 +3063,14 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom return false; } -@@ -413,6 +405,11 @@ public class PasswordManagerHelper { - Supplier<@Nullable ModalDialogManager> modalDialogManagerSupplier, - Context context, +@@ -396,10 +388,16 @@ public class PasswordManagerHelper { + + @VisibleForTesting + void launchTheCredentialManager( ++ Context context, + @ManagePasswordsReferrer int referrer, + @Nullable SyncService syncService, + LoadingModalDialogCoordinator loadingDialogCoordinator, @Nullable String account) { + SettingsNavigation settingsNavigation = + SettingsNavigationFactory.createSettingsNavigation(); @@ -5317,7 +5354,7 @@ diff --git a/chrome/browser/password_manager/android/password_ui_view_android.cc new file mode 100644 --- /dev/null +++ b/chrome/browser/password_manager/android/password_ui_view_android.cc -@@ -0,0 +1,449 @@ +@@ -0,0 +1,450 @@ +// Copyright 2013 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. @@ -5370,7 +5407,6 @@ new file mode 100644 + +namespace { + -+using base::android::JavaParamRef; +using base::android::JavaRef; +using base::android::ScopedJavaLocalRef; +using IsInsecureCredential = CredentialEditBridge::IsInsecureCredential; @@ -5587,7 +5623,7 @@ new file mode 100644 + JNIEnv* env, + const base::android::JavaRef& context, + int index, -+ const JavaParamRef& obj) { ++ const JavaRef& obj) { + if (static_cast(index) >= passwords_.size() || + credential_edit_bridge_) { + return; @@ -5609,7 +5645,7 @@ new file mode 100644 + JNIEnv* env, + const base::android::JavaRef& context, + int index, -+ const JavaParamRef& obj) { ++ const JavaRef& obj) { + if (static_cast(index) >= blocked_sites_.size() || + credential_edit_bridge_) { + return; @@ -5666,7 +5702,7 @@ new file mode 100644 +jboolean PasswordUiViewAndroid::StartImporting( + JNIEnv* env, + const base::android::JavaRef& obj, -+ const JavaParamRef& java_window) { ++ const JavaRef& java_window) { + ui::WindowAndroid* window = + ui::WindowAndroid::FromJavaWindowAndroid(java_window); + CHECK(window); @@ -5706,7 +5742,7 @@ new file mode 100644 + +// static +static jlong JNI_PasswordUiView_Init(JNIEnv* env, -+ const JavaParamRef& obj, ++ const JavaRef& obj, + Profile* profile) { + PasswordUiViewAndroid* controller = + new PasswordUiViewAndroid(env, obj, profile); @@ -5767,6 +5803,8 @@ new file mode 100644 + break; + } +} ++ ++DEFINE_JNI(PasswordUiView) diff --git a/chrome/browser/password_manager/android/password_ui_view_android.h b/chrome/browser/password_manager/android/password_ui_view_android.h new file mode 100644 --- /dev/null @@ -5864,12 +5902,12 @@ new file mode 100644 + JNIEnv* env, + const base::android::JavaRef& context, + int index, -+ const base::android::JavaParamRef& obj); ++ const base::android::JavaRef& obj); + void HandleShowBlockedCredentialView( + JNIEnv* env, + const base::android::JavaRef& context, + int index, -+ const base::android::JavaParamRef& obj); ++ const base::android::JavaRef& obj); + jboolean IsWaitingForPasswordStore(JNIEnv* env, + const base::android::JavaRef&); + @@ -5882,7 +5920,7 @@ new file mode 100644 + + jboolean StartImporting(JNIEnv* env, + const base::android::JavaRef& obj, -+ const base::android::JavaParamRef& java_window); ++ const base::android::JavaRef& java_window); + + // Destroy the native implementation. + void Destroy(JNIEnv*, const base::android::JavaRef&); @@ -6038,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 -@@ -2475,13 +2475,6 @@ void MigrateObsoleteProfilePrefs(PrefService* profile_prefs, +@@ -2525,13 +2525,6 @@ void MigrateObsoleteProfilePrefs(PrefService* profile_prefs, profile_prefs->ClearPref(kObsoletePasswordsUseUPMLocalAndSeparateStores); profile_prefs->ClearPref(kObsoleteEmptyProfileStoreLoginDatabase); profile_prefs->ClearPref(kObsoleteUpmAutoExportCsvNeedsDeletion); @@ -6055,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 -@@ -703,7 +703,7 @@ For more settings that use data to improve your Chrome experience, go to @@ -6064,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 -@@ -803,6 +803,127 @@ For more settings that use data to improve your Chrome experience, go to @@ -6209,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 -@@ -401,6 +401,7 @@ BASE_FEATURE(kAutofillDeduplicateAccountAddresses, +@@ -418,6 +418,7 @@ BASE_FEATURE(kAutofillDeduplicateAccountAddresses, // If enabled, other apps can open the Autofill Options in Chrome. BASE_FEATURE(kAutofillDeepLinkAutofillOptions, base::FEATURE_ENABLED_BY_DEFAULT); @@ -6483,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 -@@ -715,7 +715,7 @@ bool SyncPrefs::IsTypeSupportedInTransportMode(UserSelectableType type) { +@@ -714,7 +714,7 @@ bool SyncPrefs::IsTypeSupportedInTransportMode(UserSelectableType type) { kSeparateLocalAndAccountSearchEngines); #endif case UserSelectableType::kPasswords: diff --git a/build/patches/Restore-offline-indicator-v2-flag.patch b/build/patches/Restore-offline-indicator-v2-flag.patch index 011704d4..ca3c9ba8 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 -@@ -1456,7 +1456,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1465,7 +1465,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; } -@@ -1490,6 +1491,11 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1499,6 +1500,11 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { hubManager.setStatusIndicatorHeight(mStatusIndicatorHeight); }); @@ -117,7 +117,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab 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 -@@ -379,6 +379,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -373,6 +373,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kNotificationPermissionBottomSheet, &kNotificationPermissionVariant, &kNotificationTrampoline, @@ -128,7 +128,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 -@@ -520,6 +520,7 @@ public abstract class ChromeFeatureList { +@@ -509,6 +509,7 @@ public abstract class ChromeFeatureList { "NotificationPermissionBottomSheet"; public static final String NOTIFICATION_PERMISSION_VARIANT = "NotificationPermissionVariant"; public static final String NOTIFICATION_TRAMPOLINE = "NotificationTrampoline"; diff --git a/build/patches/Revert-Permit-blocking-of-view-source.patch b/build/patches/Revert-Permit-blocking-of-view-source.patch index 15a06c0c..544d9e61 100644 --- a/build/patches/Revert-Permit-blocking-of-view-source.patch +++ b/build/patches/Revert-Permit-blocking-of-view-source.patch @@ -6,18 +6,27 @@ This reverts commit e72fc9b64116bf259e516096fcc60b58ae8ae1b3. License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../policy/content/policy_blocklist_navigation_throttle.cc | 1 + - 1 file changed, 1 insertion(+) + .../policy/content/policy_blocklist_navigation_throttle.cc | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/components/policy/content/policy_blocklist_navigation_throttle.cc b/components/policy/content/policy_blocklist_navigation_throttle.cc --- a/components/policy/content/policy_blocklist_navigation_throttle.cc +++ b/components/policy/content/policy_blocklist_navigation_throttle.cc -@@ -59,6 +59,7 @@ PolicyBlocklistNavigationThrottle::~PolicyBlocklistNavigationThrottle() = - default; +@@ -67,7 +67,7 @@ bool PolicyBlocklistNavigationThrottle::IsViewSourceNavigation() { - bool PolicyBlocklistNavigationThrottle::IsBlockedViewSourceNavigation() { -+ if ((true)) return false; - content::NavigationEntry* nav_entry = - navigation_handle()->GetNavigationEntry(); - if (!nav_entry || !nav_entry->IsViewSourceMode()) { + PolicyBlocklistState + PolicyBlocklistNavigationThrottle::GetViewSourceNavigationBlocklistState() { +- CHECK(IsViewSourceNavigation()); ++ if ((true)) CHECK(false); + GURL view_source_url = + GURL(std::string("view-source:") + navigation_handle()->GetURL().spec()); + +@@ -100,6 +100,7 @@ PolicyBlocklistNavigationThrottle::WillStartOrRedirectRequest( + // If the navigation is to view-source, check if the view-source:url should + // be blocked. + if (IsViewSourceNavigation()) { ++ if ((true)) return PROCEED; + PolicyBlocklistState view_source_blocklist_state = + GetViewSourceNavigationBlocklistState(); + if (view_source_blocklist_state.url_blocklist_state == -- 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 383e5dd9..46352d3c 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 -@@ -2616,6 +2616,10 @@ +@@ -2318,6 +2318,10 @@ "yangsharon@google.com", "alexmos@google.com", "creis@google.com" ], "expiry_milestone": 150 }, @@ -63,7 +63,7 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil diff --git a/content/browser/android/overscroll_controller_android.cc b/content/browser/android/overscroll_controller_android.cc --- a/content/browser/android/overscroll_controller_android.cc +++ b/content/browser/android/overscroll_controller_android.cc -@@ -66,14 +66,15 @@ std::unique_ptr CreateGlowEffect(OverscrollGlowClient* client) { +@@ -67,14 +67,15 @@ std::unique_ptr CreateGlowEffect(OverscrollGlowClient* client) { std::unique_ptr CreateRefreshEffect( ui::OverscrollRefreshHandler* overscroll_refresh_handler, float dpi_scale) { 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 82401602..0cf9ab89 100644 --- a/build/patches/Revert-removal-of-execution-context-address-space.patch +++ b/build/patches/Revert-removal-of-execution-context-address-space.patch @@ -17,7 +17,6 @@ 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 --- - ...val-of-execution-context-address-space.inc | 2 ++ .../execution_context/execution_context.cc | 9 +++++++ .../execution_context/execution_context.h | 4 +++ .../core/exported/web_shared_worker_impl.cc | 1 + @@ -52,20 +51,12 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../audio_worklet_global_scope_test.cc | 1 + .../webaudio/audio_worklet_thread_test.cc | 1 + .../worklet/worklet_thread_test_common.cc | 2 +- - 35 files changed, 153 insertions(+), 15 deletions(-) - create mode 100644 cromite_flags/content/public/common/content_features_cc/Revert-removal-of-execution-context-address-space.inc + 34 files changed, 151 insertions(+), 15 deletions(-) -diff --git a/cromite_flags/content/public/common/content_features_cc/Revert-removal-of-execution-context-address-space.inc b/cromite_flags/content/public/common/content_features_cc/Revert-removal-of-execution-context-address-space.inc -new file mode 100644 ---- /dev/null -+++ b/cromite_flags/content/public/common/content_features_cc/Revert-removal-of-execution-context-address-space.inc -@@ -0,0 +1,2 @@ -+SET_CROMITE_FEATURE_ENABLED(kBlockInsecurePrivateNetworkRequests); -+SET_CROMITE_FEATURE_ENABLED(kBlockInsecurePrivateNetworkRequestsFromPrivate); 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 +++ b/third_party/blink/renderer/core/execution_context/execution_context.cc -@@ -523,6 +523,15 @@ void ExecutionContext::SetReferrerPolicy( +@@ -515,6 +515,15 @@ void ExecutionContext::SetReferrerPolicy( policy_container_->UpdateReferrerPolicy(referrer_policy); } @@ -84,7 +75,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 -@@ -35,6 +35,7 @@ +@@ -34,6 +34,7 @@ #include "net/storage_access_api/status.h" #include "services/metrics/public/cpp/ukm_source_id.h" #include "services/network/public/mojom/permissions_policy/permissions_policy_feature.mojom-blink-forward.h" @@ -92,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" -@@ -420,6 +421,9 @@ class CORE_EXPORT ExecutionContext : public MojoBindingContext, +@@ -382,6 +383,9 @@ class CORE_EXPORT ExecutionContext : public Supplementable, const String& message = g_empty_string, const String& source_file = g_empty_string) const {} @@ -223,7 +214,7 @@ diff --git a/third_party/blink/renderer/core/loader/modulescript/worker_module_s diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third_party/blink/renderer/core/workers/dedicated_worker.cc --- a/third_party/blink/renderer/core/workers/dedicated_worker.cc +++ b/third_party/blink/renderer/core/workers/dedicated_worker.cc -@@ -360,6 +360,7 @@ void DedicatedWorker::OnScriptLoadStarted( +@@ -362,6 +362,7 @@ void DedicatedWorker::OnScriptLoadStarted( ContinueStart(script_request_url_, std::move(worker_main_script_load_params), network::mojom::ReferrerPolicy::kDefault, Vector(), @@ -231,7 +222,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third std::move(back_forward_cache_controller_host), std::move(coep_reporting_observer), std::move(dip_reporting_observer)); -@@ -426,6 +427,7 @@ void DedicatedWorker::OnFinished( +@@ -428,6 +429,7 @@ void DedicatedWorker::OnFinished( ? mojo::Clone(classic_script_loader_->GetContentSecurityPolicy() ->GetParsedPolicies()) : Vector(), @@ -239,7 +230,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third std::move(back_forward_cache_controller_host), /*coep_reporting_observer=*/mojo::NullReceiver(), /*dip_reporting_observer=*/mojo::NullReceiver()); -@@ -443,6 +445,7 @@ void DedicatedWorker::ContinueStart( +@@ -445,6 +447,7 @@ void DedicatedWorker::ContinueStart( network::mojom::ReferrerPolicy referrer_policy, Vector response_content_security_policies, @@ -247,7 +238,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third mojo::PendingRemote back_forward_cache_controller_host, mojo::PendingReceiver -@@ -467,6 +470,7 @@ void DedicatedWorker::ContinueStart( +@@ -469,6 +472,7 @@ void DedicatedWorker::ContinueStart( std::move(worker_main_script_load_params), std::move(referrer_policy), std::move(response_content_security_policies), @@ -255,7 +246,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third std::move(back_forward_cache_controller_host), std::move(coep_reporting_observer), std::move(dip_reporting_observer)), -@@ -476,6 +480,7 @@ void DedicatedWorker::ContinueStart( +@@ -478,6 +482,7 @@ void DedicatedWorker::ContinueStart( ContinueStartInternal( script_url, std::move(worker_main_script_load_params), std::move(referrer_policy), std::move(response_content_security_policies), @@ -263,7 +254,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third std::move(back_forward_cache_controller_host), std::move(coep_reporting_observer), std::move(dip_reporting_observer)); } -@@ -487,6 +492,7 @@ void DedicatedWorker::ContinueStartInternal( +@@ -489,6 +494,7 @@ void DedicatedWorker::ContinueStartInternal( network::mojom::ReferrerPolicy referrer_policy, Vector response_content_security_policies, @@ -271,7 +262,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third mojo::PendingRemote back_forward_cache_controller_host, mojo::PendingReceiver -@@ -501,6 +507,7 @@ void DedicatedWorker::ContinueStartInternal( +@@ -503,6 +509,7 @@ void DedicatedWorker::ContinueStartInternal( CreateGlobalScopeCreationParams( script_url, referrer_policy, std::move(response_content_security_policies), @@ -279,7 +270,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third std::move(coep_reporting_observer), std::move(dip_reporting_observer)), std::move(worker_main_script_load_params), options_, script_url, -@@ -539,6 +546,7 @@ DedicatedWorker::CreateGlobalScopeCreationParams( +@@ -541,6 +548,7 @@ DedicatedWorker::CreateGlobalScopeCreationParams( network::mojom::ReferrerPolicy referrer_policy, Vector response_content_security_policies, @@ -287,7 +278,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third mojo::PendingReceiver coep_reporting_observer, mojo::PendingReceiver -@@ -591,6 +599,7 @@ DedicatedWorker::CreateGlobalScopeCreationParams( +@@ -593,6 +601,7 @@ DedicatedWorker::CreateGlobalScopeCreationParams( execution_context->GetSecurityOrigin(), execution_context->IsSecureContext(), execution_context->GetHttpsState(), MakeGarbageCollected(), CreateWebContentSettingsClient(), @@ -655,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" -@@ -187,6 +188,7 @@ class CORE_EXPORT WorkerGlobalScope +@@ -176,6 +177,7 @@ class CORE_EXPORT WorkerGlobalScope virtual void Initialize( const KURL& response_url, network::mojom::ReferrerPolicy response_referrer_policy, 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 96835fac..8d327a86 100644 --- a/build/patches/Revert-remove-allowscript-content-setting-secondary-url.patch +++ b/build/patches/Revert-remove-allowscript-content-setting-secondary-url.patch @@ -188,7 +188,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_dom_window.cc b/third_party/blink/renderer/core/frame/local_dom_window.cc --- a/third_party/blink/renderer/core/frame/local_dom_window.cc +++ b/third_party/blink/renderer/core/frame/local_dom_window.cc -@@ -52,6 +52,7 @@ +@@ -51,6 +51,7 @@ #include "third_party/blink/public/platform/task_type.h" #include "third_party/blink/public/platform/web_string.h" #include "third_party/blink/public/web/web_picture_in_picture_window_options.h" @@ -196,7 +196,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p #include "third_party/blink/renderer/bindings/core/v8/binding_security.h" #include "third_party/blink/renderer/bindings/core/v8/capture_source_location.h" #include "third_party/blink/renderer/bindings/core/v8/isolated_world_csp.h" -@@ -509,7 +510,10 @@ bool LocalDOMWindow::CanExecuteScripts( +@@ -500,7 +501,10 @@ bool LocalDOMWindow::CanExecuteScripts( } return false; } @@ -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 -@@ -4157,19 +4157,6 @@ bool LocalFrame::IsSameOrigin() { +@@ -4147,19 +4147,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 -@@ -932,12 +932,6 @@ class CORE_EXPORT LocalFrame final +@@ -930,12 +930,6 @@ class CORE_EXPORT LocalFrame final return *v8_local_compile_hints_producer_; } @@ -250,7 +250,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/b diff --git a/third_party/blink/renderer/core/html/html_meta_element.cc b/third_party/blink/renderer/core/html/html_meta_element.cc --- a/third_party/blink/renderer/core/html/html_meta_element.cc +++ b/third_party/blink/renderer/core/html/html_meta_element.cc -@@ -790,7 +790,9 @@ void HTMLMetaElement::ProcessMetaCH(Document& document, +@@ -797,7 +797,9 @@ void HTMLMetaElement::ProcessMetaCH(Document& document, return; } @@ -264,7 +264,7 @@ diff --git a/third_party/blink/renderer/core/html/html_meta_element.cc b/third_p diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.cc b/third_party/blink/renderer/core/loader/base_fetch_context.cc --- a/third_party/blink/renderer/core/loader/base_fetch_context.cc +++ b/third_party/blink/renderer/core/loader/base_fetch_context.cc -@@ -273,7 +273,7 @@ BaseFetchContext::CanRequestInternal( +@@ -274,7 +274,7 @@ BaseFetchContext::CanRequestInternal( } if (type == ResourceType::kScript) { @@ -276,7 +276,7 @@ diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.cc b/thir diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.h b/third_party/blink/renderer/core/loader/base_fetch_context.h --- a/third_party/blink/renderer/core/loader/base_fetch_context.h +++ b/third_party/blink/renderer/core/loader/base_fetch_context.h -@@ -106,7 +106,7 @@ class CORE_EXPORT BaseFetchContext : public FetchContext { +@@ -107,7 +107,7 @@ class CORE_EXPORT BaseFetchContext : public FetchContext { : fetcher_properties_(properties), console_logger_(logger) {} // Used for security checks. @@ -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 -@@ -625,7 +625,8 @@ void FrameFetchContext::AddClientHintsIfNecessary( +@@ -636,7 +636,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; } -@@ -1088,15 +1089,26 @@ void FrameFetchContext::SetFirstPartyCookie(ResourceRequest& request) { +@@ -1099,15 +1100,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, -@@ -177,7 +188,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext, +@@ -178,7 +189,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext, // BaseFetchContext overrides: net::SiteForCookies GetSiteForCookies() const override; SubresourceFilter* GetSubresourceFilter() const override; @@ -366,7 +366,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.h b/thir diff --git a/third_party/blink/renderer/core/loader/worker_fetch_context.cc b/third_party/blink/renderer/core/loader/worker_fetch_context.cc --- a/third_party/blink/renderer/core/loader/worker_fetch_context.cc +++ b/third_party/blink/renderer/core/loader/worker_fetch_context.cc -@@ -78,10 +78,14 @@ SubresourceFilter* WorkerFetchContext::GetSubresourceFilter() const { +@@ -79,10 +79,14 @@ SubresourceFilter* WorkerFetchContext::GetSubresourceFilter() const { return subresource_filter_.Get(); } diff --git a/build/patches/Set-caret-blink-interval-to-default.patch b/build/patches/Set-caret-blink-interval-to-default.patch index b213a9c1..caa9f0e5 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 -@@ -3602,9 +3602,7 @@ void WebViewImpl::UpdateRendererPreferences( +@@ -3749,9 +3749,7 @@ void WebViewImpl::UpdateRendererPreferences( UpdateFontRenderingFromRendererPrefs(); blink::SetCaretBlinkInterval( diff --git a/build/patches/Set-the-screen-frame-rate-to-60-Hz.patch b/build/patches/Set-the-screen-frame-rate-to-60-Hz.patch index 7859ec64..291d341b 100644 --- a/build/patches/Set-the-screen-frame-rate-to-60-Hz.patch +++ b/build/patches/Set-the-screen-frame-rate-to-60-Hz.patch @@ -9,39 +9,45 @@ The feature can be disabled using the throttle-main-thread-to-60hz flag (enabled License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- - cc/base/features.cc | 3 ++- - cc/scheduler/scheduler_state_machine.cc | 17 +++++++++++++++++ - .../java/res/xml/privacy_preferences.xml | 6 ++++++ - chrome/browser/about_flags.cc | 6 +++--- - .../browser/chrome_content_browser_client.cc | 11 +++++++++++ - .../Set-the-screen-frame-rate-to-60-Hz.grdp | 9 +++++++++ - components/viz/common/features.cc | 1 + - .../common/frame_sinks/begin_frame_source.cc | 14 +++++++++++++- - .../common/frame_sinks/begin_frame_source.h | 1 + - components/viz/service/display/display.cc | 18 ++++++++++++++++-- - .../external_begin_frame_source_android.cc | 13 +++++++++++++ - .../external_begin_frame_source_android.h | 2 ++ - .../root_compositor_frame_sink_impl.cc | 10 ++++++++-- - .../Set-the-screen-frame-rate-to-60-Hz.inc | 7 +++++++ - .../renderer/core/animation/animation_clock.cc | 11 ++++++++--- - .../core/view_transition/view_transition.cc | 2 ++ - 16 files changed, 119 insertions(+), 12 deletions(-) + cc/base/features.cc | 9 ++------- + cc/scheduler/scheduler_state_machine.cc | 19 ++++++++++++++++++- + .../java/res/xml/privacy_preferences.xml | 6 ++++++ + chrome/browser/about_flags.cc | 6 +++--- + .../browser/chrome_content_browser_client.cc | 11 +++++++++++ + .../Set-the-screen-frame-rate-to-60-Hz.grdp | 9 +++++++++ + components/viz/common/features.cc | 1 + + .../common/frame_sinks/begin_frame_source.cc | 14 +++++++++++++- + .../common/frame_sinks/begin_frame_source.h | 1 + + components/viz/service/display/display.cc | 18 ++++++++++++++++-- + .../external_begin_frame_source_android.cc | 13 +++++++++++++ + .../external_begin_frame_source_android.h | 2 ++ + .../root_compositor_frame_sink_impl.cc | 10 ++++++++-- + .../Set-the-screen-frame-rate-to-60-Hz.inc | 7 +++++++ + .../core/animation/animation_clock.cc | 11 ++++++++--- + .../core/view_transition/view_transition.cc | 2 ++ + 16 files changed, 120 insertions(+), 19 deletions(-) create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Set-the-screen-frame-rate-to-60-Hz.grdp create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Set-the-screen-frame-rate-to-60-Hz.inc diff --git a/cc/base/features.cc b/cc/base/features.cc --- a/cc/base/features.cc +++ b/cc/base/features.cc -@@ -135,7 +135,7 @@ BASE_FEATURE(kPreventDuplicateImageDecodes, base::FEATURE_DISABLED_BY_DEFAULT); - +@@ -136,13 +136,7 @@ BASE_FEATURE(kPreventDuplicateImageDecodes, base::FEATURE_DISABLED_BY_DEFAULT); BASE_FEATURE(kInitImageDecodeLastUseTime, base::FEATURE_ENABLED_BY_DEFAULT); --BASE_FEATURE(kThrottleMainFrameTo60Hz, base::FEATURE_DISABLED_BY_DEFAULT); + // Enabled on Android, after a field trial showed improvements. +-BASE_FEATURE(kThrottleMainFrameTo60Hz, +-#if BUILDFLAG(IS_ANDROID) +- base::FEATURE_ENABLED_BY_DEFAULT +-#else +- base::FEATURE_DISABLED_BY_DEFAULT +-#endif +-); +CROMITE_FEATURE(kThrottleMainFrameTo60Hz, "ThrottleMainFrameTo60Hz", base::FEATURE_ENABLED_BY_DEFAULT); - BASE_FEATURE(kBoostFrameRateForUrgentMainFrame, - base::FEATURE_DISABLED_BY_DEFAULT); -@@ -163,6 +163,7 @@ BASE_FEATURE(kViewTransitionFloorTransform, base::FEATURE_ENABLED_BY_DEFAULT); + #if BUILDFLAG(IS_ANDROID) + BASE_FEATURE(kThrottleMainFrameTo60HzWebView, +@@ -175,6 +169,7 @@ BASE_FEATURE(kViewTransitionFloorTransform, base::FEATURE_ENABLED_BY_DEFAULT); BASE_FEATURE(kRenderThrottleFrameRate, base::FEATURE_ENABLED_BY_DEFAULT); const base::FeatureParam kRenderThrottledFrameIntervalHz{ &kRenderThrottleFrameRate, "render-throttled-frame-interval-hz", 30}; @@ -52,7 +58,16 @@ diff --git a/cc/base/features.cc b/cc/base/features.cc diff --git a/cc/scheduler/scheduler_state_machine.cc b/cc/scheduler/scheduler_state_machine.cc --- a/cc/scheduler/scheduler_state_machine.cc +++ b/cc/scheduler/scheduler_state_machine.cc -@@ -1548,6 +1548,15 @@ void SchedulerStateMachine::FrameIntervalUpdated( +@@ -34,7 +34,7 @@ const int kMaxPendingSubmitFrames = 1; + bool IsEligibleToThrottleMainFrameRate() { + #if BUILDFLAG(IS_ANDROID) + // Still requires balancing tradeoffs for desktop Android, not enabled yet. +- return !base::android::device_info::is_desktop(); ++ return true; + #else + return true; + #endif +@@ -1578,6 +1578,15 @@ void SchedulerStateMachine::FrameIntervalUpdated( // // Apply some slack, so that if for some reason the interval is a bit larger // than 8.33333333333333ms, then we catch it still. @@ -65,10 +80,10 @@ diff --git a/cc/scheduler/scheduler_state_machine.cc b/cc/scheduler/scheduler_st + } + if ((true)) return; +#endif - // - // Do not enable throttling for the synchronous compositor, as it hasn't been - // evaluated for this use case, as of 09/2025. The aim is to make sure that -@@ -1876,6 +1885,14 @@ base::TimeTicks SchedulerStateMachine::Now() const { + constexpr float kSlackFactor = .9; + bool fast_vsync_interval = + frame_interval < base::Hertz(120) * (1 / kSlackFactor); +@@ -1903,6 +1912,14 @@ base::TimeTicks SchedulerStateMachine::Now() const { } base::TimeDelta SchedulerStateMachine::MainFrameThrottledInterval() const { @@ -86,7 +101,7 @@ diff --git a/cc/scheduler/scheduler_state_machine.cc b/cc/scheduler/scheduler_st diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -98,6 +98,12 @@ found in the LICENSE file. +@@ -92,6 +92,12 @@ found in the LICENSE file. android:summary="@string/tab_switcher_list_mode_summary" app:featureName="TabSwitcherListMode" app:needRestart="true" /> @@ -102,7 +117,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi 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 -@@ -12052,9 +12052,9 @@ const FeatureEntry kFeatureEntries[] = { +@@ -11700,9 +11700,9 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(::features::kBlockRootWindowAccessibleNameChangeEvent)}, #endif // BUILDFLAG(IS_MAC) @@ -118,7 +133,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc 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 -@@ -52,6 +52,7 @@ +@@ -51,6 +51,7 @@ #include "build/branding_buildflags.h" #include "build/build_config.h" #include "build/config/chromebox_for_meetings/buildflags.h" // PLATFORM_CFM @@ -126,7 +141,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch #include "chrome/browser/after_startup_task_utils.h" #include "chrome/browser/ai/ai_manager.h" #include "chrome/browser/app_mode/app_mode_utils.h" -@@ -305,6 +306,7 @@ +@@ -302,6 +303,7 @@ #include "components/variations/variations_associated_data.h" #include "components/variations/variations_switches.h" #include "components/version_info/version_info.h" @@ -134,7 +149,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch #include "components/webapps/common/web_app_id.h" #include "components/webui/chrome_urls/pref_names.h" #include "content/public/browser/attribution_data_model.h" -@@ -2718,6 +2720,15 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( +@@ -2720,6 +2722,15 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( command_line->AppendSwitchASCII(ash::switches::kHomedir, homedir.value()); #endif @@ -167,10 +182,10 @@ new file mode 100644 diff --git a/components/viz/common/features.cc b/components/viz/common/features.cc --- a/components/viz/common/features.cc +++ b/components/viz/common/features.cc -@@ -97,6 +97,7 @@ const char kMaxOverlaysParam[] = "max_overlays"; +@@ -84,6 +84,7 @@ const char kMaxOverlaysParam[] = "max_overlays"; BASE_FEATURE(kDelegatedCompositing, base::FEATURE_DISABLED_BY_DEFAULT); - BASE_FEATURE(kAvoidDuplicateDelayBeginFrame, base::FEATURE_DISABLED_BY_DEFAULT); + BASE_FEATURE(kAvoidDuplicateDelayBeginFrame, base::FEATURE_ENABLED_BY_DEFAULT); +SET_CROMITE_FEATURE_ENABLED(kAvoidDuplicateDelayBeginFrame); const char kDrawQuadSplit[] = "num_of_splits"; @@ -178,7 +193,7 @@ diff --git a/components/viz/common/features.cc b/components/viz/common/features. diff --git a/components/viz/common/frame_sinks/begin_frame_source.cc b/components/viz/common/frame_sinks/begin_frame_source.cc --- a/components/viz/common/frame_sinks/begin_frame_source.cc +++ b/components/viz/common/frame_sinks/begin_frame_source.cc -@@ -25,6 +25,7 @@ +@@ -24,6 +24,7 @@ #include "base/tracing/protos/chrome_track_event.pbzero.h" #include "components/viz/common/features.h" #include "components/viz/common/frame_sinks/delay_based_time_source.h" @@ -186,7 +201,7 @@ diff --git a/components/viz/common/frame_sinks/begin_frame_source.cc b/component namespace viz { -@@ -250,7 +251,10 @@ BackToBackBeginFrameSource::BackToBackBeginFrameSource( +@@ -260,7 +261,10 @@ BackToBackBeginFrameSource::BackToBackBeginFrameSource( time_source_->SetClient(this); // The time_source_ ticks immediately, so we SetActive(true) for a single // tick when we need it, and keep it as SetActive(false) otherwise. @@ -198,7 +213,7 @@ diff --git a/components/viz/common/frame_sinks/begin_frame_source.cc b/component } BackToBackBeginFrameSource::~BackToBackBeginFrameSource() = default; -@@ -308,6 +312,14 @@ void BackToBackBeginFrameSource::OnTimerTick() { +@@ -318,6 +322,14 @@ void BackToBackBeginFrameSource::OnTimerTick() { } base::TimeTicks frame_time = time_source_->LastTickTime(); base::TimeDelta interval = max_vrr_interval_.value_or(vsync_interval_); @@ -216,7 +231,7 @@ diff --git a/components/viz/common/frame_sinks/begin_frame_source.cc b/component diff --git a/components/viz/common/frame_sinks/begin_frame_source.h b/components/viz/common/frame_sinks/begin_frame_source.h --- a/components/viz/common/frame_sinks/begin_frame_source.h +++ b/components/viz/common/frame_sinks/begin_frame_source.h -@@ -339,6 +339,7 @@ class VIZ_COMMON_EXPORT BackToBackBeginFrameSource +@@ -362,6 +362,7 @@ class VIZ_COMMON_EXPORT BackToBackBeginFrameSource pending_begin_frame_observers_; uint64_t next_sequence_number_; base::TimeDelta vsync_interval_ = BeginFrameArgs::DefaultInterval(); @@ -227,7 +242,7 @@ diff --git a/components/viz/common/frame_sinks/begin_frame_source.h b/components diff --git a/components/viz/service/display/display.cc b/components/viz/service/display/display.cc --- a/components/viz/service/display/display.cc +++ b/components/viz/service/display/display.cc -@@ -33,6 +33,7 @@ +@@ -32,6 +32,7 @@ #include "base/trace_event/traced_value.h" #include "base/trace_event/typed_macros.h" #include "build/build_config.h" @@ -235,7 +250,7 @@ diff --git a/components/viz/service/display/display.cc b/components/viz/service/ #include "cc/base/math_util.h" #include "cc/base/region.h" #include "cc/base/simple_enclosed_region.h" -@@ -274,8 +275,21 @@ void Display::PresentationGroupTiming::OnSwap(gfx::SwapTimings timings, +@@ -272,8 +273,21 @@ void Display::PresentationGroupTiming::OnSwap(gfx::SwapTimings timings, auto frame_latency = timings.swap_start - frame_time_; if (frame_latency < base::Seconds(0)) { @@ -319,7 +334,7 @@ diff --git a/components/viz/service/frame_sinks/root_compositor_frame_sink_impl. #include "components/viz/common/features.h" #include "components/viz/common/frame_sinks/begin_frame_source.h" #include "components/viz/service/display/display.h" -@@ -753,7 +754,10 @@ void RootCompositorFrameSinkImpl::FrameIntervalDeciderResultCallback( +@@ -757,7 +758,10 @@ void RootCompositorFrameSinkImpl::FrameIntervalDeciderResultCallback( result); interval = interval_and_compat.first; gfx::SurfaceControlFrameRateCompatibility compat = interval_and_compat.second; @@ -331,7 +346,7 @@ diff --git a/components/viz/service/frame_sinks/root_compositor_frame_sink_impl. if (decided_display_interval_ == interval && decided_display_frame_rate_compat_ == compat) { return; -@@ -775,7 +779,9 @@ void RootCompositorFrameSinkImpl::FrameIntervalDeciderResultCallback( +@@ -779,7 +783,9 @@ void RootCompositorFrameSinkImpl::FrameIntervalDeciderResultCallback( return interval.interval; }), result); @@ -385,7 +400,7 @@ diff --git a/third_party/blink/renderer/core/animation/animation_clock.cc b/thir diff --git a/third_party/blink/renderer/core/view_transition/view_transition.cc b/third_party/blink/renderer/core/view_transition/view_transition.cc --- a/third_party/blink/renderer/core/view_transition/view_transition.cc +++ b/third_party/blink/renderer/core/view_transition/view_transition.cc -@@ -989,8 +989,10 @@ CSSStyleSheet* ViewTransition::UAStyleSheet() const { +@@ -998,8 +998,10 @@ CSSStyleSheet* ViewTransition::UAStyleSheet() const { void ViewTransition::WillCommitCompositorFrame() { // There should only be 1 commit when we're in the capturing phase and // rendering is paused immediately after it finishes. diff --git a/build/patches/Show-NTP-at-startup.patch b/build/patches/Show-NTP-at-startup.patch index 923098f9..4c373277 100644 --- a/build/patches/Show-NTP-at-startup.patch +++ b/build/patches/Show-NTP-at-startup.patch @@ -103,7 +103,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeInactivit 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 -@@ -3088,6 +3088,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt +@@ -3107,6 +3107,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt mInactivityTrackerSupplier.set( new ChromeInactivityTracker( ChromePreferenceKeys.TABBED_ACTIVITY_LAST_BACKGROUNDED_TIME_MS_PREF)); @@ -127,7 +127,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToC import org.chromium.chrome.browser.magic_stack.HomeModulesMetricsUtils; import org.chromium.chrome.browser.ntp.NewTabPage; import org.chromium.chrome.browser.profiles.Profile; -@@ -130,6 +132,18 @@ public final class ReturnToChromeUtil { +@@ -129,6 +131,18 @@ public final class ReturnToChromeUtil { return false; } @@ -146,7 +146,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToC // Checks whether to show the NTP homepage due to feature flag // HOME_SURFACE_RETURN_TIME_SECONDS. long lastVisibleTimeMs = inactivityTracker.getLastVisibleTimeMs(); -@@ -248,7 +262,7 @@ public final class ReturnToChromeUtil { +@@ -247,7 +261,7 @@ public final class ReturnToChromeUtil { TabModel currentTabModel, TabCreator tabCreator, HomeSurfaceTracker homeSurfaceTracker) { @@ -158,7 +158,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToC 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 -@@ -1007,7 +1007,7 @@ +@@ -1031,7 +1031,7 @@ Open a specific page or set of pages @@ -170,7 +170,7 @@ diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp 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 -@@ -425,6 +425,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -421,6 +421,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kSearchInCCTIfEnabledByEmbedder, &kSearchResumptionModuleAndroid, &kSettingsMultiColumn, @@ -238,7 +238,7 @@ diff --git a/chrome/browser/performance_manager/policies/background_tab_loading_ 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 -@@ -958,6 +958,8 @@ public final class ChromePreferenceKeys { +@@ -1000,6 +1000,8 @@ public final class ChromePreferenceKeys { public static final String TABBED_ACTIVITY_LAST_BACKGROUNDED_TIME_MS_PREF = "ChromeTabbedActivity.BackgroundTimeMs"; @@ -261,7 +261,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro diff --git a/chrome/browser/resource_coordinator/session_restore_policy.h b/chrome/browser/resource_coordinator/session_restore_policy.h --- a/chrome/browser/resource_coordinator/session_restore_policy.h +++ b/chrome/browser/resource_coordinator/session_restore_policy.h -@@ -31,7 +31,7 @@ class SessionRestorePolicy { +@@ -29,7 +29,7 @@ class SessionRestorePolicy { public: // Minimum site engagement score for a tab to be restored, if it doesn't // communicate in the background. @@ -284,7 +284,7 @@ diff --git a/chrome/browser/resources/settings/on_startup_page/on_startup_page.t diff --git a/chrome/browser/sessions/session_restore.cc b/chrome/browser/sessions/session_restore.cc --- a/chrome/browser/sessions/session_restore.cc +++ b/chrome/browser/sessions/session_restore.cc -@@ -920,7 +920,13 @@ class SessionRestoreImpl : public BrowserListObserver { +@@ -928,7 +928,13 @@ class SessionRestoreImpl : public BrowserListObserver { // be selected as ShowBrowser() will load the selected tab. bool is_selected_tab = (initial_tab_count == 0) && (i == selected_tab_index); @@ -299,7 +299,7 @@ diff --git a/chrome/browser/sessions/session_restore.cc b/chrome/browser/session // Convert the last active time because WebContents needs a TimeTicks. const base::TimeDelta delta = tab.last_active_time - epoch_time; const base::TimeTicks last_active_time_ticks = epoch_time_ticks + delta; -@@ -1240,6 +1246,7 @@ class SessionRestoreImpl : public BrowserListObserver { +@@ -1248,6 +1254,7 @@ class SessionRestoreImpl : public BrowserListObserver { } if (last_normal_browser && !normal_startup_tabs.empty()) { AppendURLsToBrowser(last_normal_browser, normal_startup_tabs); @@ -310,7 +310,7 @@ diff --git a/chrome/browser/sessions/session_restore.cc b/chrome/browser/session diff --git a/chrome/browser/sessions/tab_loader.cc b/chrome/browser/sessions/tab_loader.cc --- a/chrome/browser/sessions/tab_loader.cc +++ b/chrome/browser/sessions/tab_loader.cc -@@ -52,7 +52,7 @@ struct ScoredTabComparator { +@@ -51,7 +51,7 @@ struct ScoredTabComparator { }; // Testing seams. @@ -319,7 +319,7 @@ diff --git a/chrome/browser/sessions/tab_loader.cc b/chrome/browser/sessions/tab base::RepeatingCallback* g_construction_callback = nullptr; // Determines if the given browser (can be null) is closing. -@@ -375,7 +375,7 @@ void TabLoader::OnMemoryPressure( +@@ -374,7 +374,7 @@ void TabLoader::OnMemoryPressure( bool TabLoader::ShouldStopLoadingTabs() const { DCHECK(reentry_depth_ > 0); // This can only be called internally. @@ -328,7 +328,7 @@ diff --git a/chrome/browser/sessions/tab_loader.cc b/chrome/browser/sessions/tab scheduled_to_load_count_ >= g_max_loaded_tab_count_for_testing) { return true; } -@@ -417,7 +417,7 @@ size_t TabLoader::GetMaxNewTabLoads() const { +@@ -412,7 +412,7 @@ size_t TabLoader::GetMaxNewTabLoads() const { tabs_to_load = std::min(tabs_to_load, tabs_to_load_.size()); // Finally, enforce testing tab load limits. @@ -337,7 +337,7 @@ diff --git a/chrome/browser/sessions/tab_loader.cc b/chrome/browser/sessions/tab size_t tabs_remaining_for_testing = g_max_loaded_tab_count_for_testing - scheduled_to_load_count_; tabs_to_load = std::min(tabs_to_load, tabs_remaining_for_testing); -@@ -775,6 +775,7 @@ void TabLoader::MoveToSortedPosition(TabVector::iterator it) { +@@ -770,6 +770,7 @@ void TabLoader::MoveToSortedPosition(TabVector::iterator it) { } size_t TabLoader::MaxSimultaneousLoads() const { @@ -348,7 +348,7 @@ diff --git a/chrome/browser/sessions/tab_loader.cc b/chrome/browser/sessions/tab diff --git a/chrome/browser/sessions/tab_loader.h b/chrome/browser/sessions/tab_loader.h --- a/chrome/browser/sessions/tab_loader.h +++ b/chrome/browser/sessions/tab_loader.h -@@ -282,7 +282,7 @@ class TabLoader : public base::RefCounted, +@@ -281,7 +281,7 @@ class TabLoader : public base::RefCounted, // This is monotonically increasing, and can never exceed the combined number // of tabs passed into this TabLoader via StartLoading(). This is only used in // order to support a combined maximum total number of tab loads for testing. @@ -489,7 +489,7 @@ diff --git a/chrome/browser/ui/browser_tabrestore.cc b/chrome/browser/ui/browser diff --git a/chrome/browser/ui/startup/startup_browser_creator_impl.cc b/chrome/browser/ui/startup/startup_browser_creator_impl.cc --- a/chrome/browser/ui/startup/startup_browser_creator_impl.cc +++ b/chrome/browser/ui/startup/startup_browser_creator_impl.cc -@@ -560,6 +560,14 @@ StartupBrowserCreatorImpl::DetermineStartupTabs( +@@ -567,6 +567,14 @@ StartupBrowserCreatorImpl::DetermineStartupTabs( AppendTabs(provider.GetNewTabPageTabs(*command_line_, profile_), &tabs); } 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 4e31ff5e..6968faa3 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 @@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java -@@ -662,6 +662,8 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -668,6 +668,8 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment setUpSoundPreference(preference); } else if (type == ContentSettingsType.JAVASCRIPT) { setUpJavascriptPreference(preference); @@ -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) { -@@ -1257,17 +1259,8 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1248,17 +1250,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"}) -@@ -1620,12 +1613,13 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1611,12 +1604,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( -@@ -1635,6 +1629,29 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1626,6 +1620,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 -@@ -1652,9 +1669,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1643,9 +1660,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 11e7e2a5..0cf918ce 100644 --- a/build/patches/Site-setting-for-images.patch +++ b/build/patches/Site-setting-for-images.patch @@ -259,7 +259,7 @@ new file mode 100644 diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc --- a/components/content_settings/core/browser/content_settings_registry.cc +++ b/components/content_settings/core/browser/content_settings_registry.cc -@@ -107,8 +107,7 @@ void ContentSettingsRegistry::Init() { +@@ -106,8 +106,7 @@ void ContentSettingsRegistry::Init() { kChromeUIUntrustedScheme}, /*valid_settings=*/{CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK}, WebsiteSettingsInfo::TOP_ORIGIN_ONLY_SCOPE, @@ -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 -@@ -4144,19 +4144,6 @@ bool LocalFrame::IsSameOrigin() { +@@ -4134,19 +4134,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 -@@ -931,12 +931,6 @@ class CORE_EXPORT LocalFrame final +@@ -929,12 +929,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 -@@ -319,6 +319,7 @@ ResourceFetcher* FrameFetchContext::CreateFetcherForCommittedDocument( +@@ -321,6 +321,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( -@@ -507,16 +508,13 @@ void FrameFetchContext::AddResourceTiming( +@@ -518,16 +519,13 @@ void FrameFetchContext::AddResourceTiming( ->AddResourceTiming(std::move(info), initiator_type); } @@ -427,7 +427,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.h b/thir 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 -@@ -1041,9 +1041,8 @@ void Page::SettingsChanged(ChangeType change_type) { +@@ -1040,9 +1040,8 @@ void Page::SettingsChanged(ChangeType change_type) { for (Frame* frame = MainFrame(); frame; frame = frame->Tree().TraverseNext()) { if (auto* local_frame = DynamicTo(frame)) { @@ -454,15 +454,15 @@ 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 -@@ -831,6 +831,7 @@ ResourceFetcher::ResourceFetcher(const ResourceFetcherInit& init) +@@ -823,6 +823,7 @@ ResourceFetcher::ResourceFetcher(const ResourceFetcherInit& init) blob_registry_remote_(init.context_lifecycle_notifier), context_lifecycle_notifier_(init.context_lifecycle_notifier), auto_load_images_(true), + images_enabled_(true), allow_stale_resources_(false), - image_fetched_(false), - memory_pressure_listener_registration_( -@@ -2021,7 +2022,7 @@ bool ResourceFetcher::IsImageResourceDisallowedToBeReused( + image_fetched_(false) { + InstanceCounters::IncrementCounter(InstanceCounters::kResourceFetcherCounter); +@@ -1989,7 +1990,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 -@@ -2266,8 +2267,20 @@ void ResourceFetcher::SetAutoLoadImages(bool enable) { +@@ -2234,8 +2235,20 @@ void ResourceFetcher::SetAutoLoadImages(bool enable) { ReloadImagesIfNotDeferred(); } @@ -496,7 +496,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h --- a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h +++ b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h -@@ -235,6 +235,7 @@ class PLATFORM_EXPORT ResourceFetcher +@@ -231,6 +231,7 @@ class PLATFORM_EXPORT ResourceFetcher bool StartLoad(Resource*, bool is_potentially_unused_preload = false); void SetAutoLoadImages(bool); @@ -504,7 +504,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h FetchContext& Context() const; void ClearContext(); -@@ -717,6 +718,7 @@ class PLATFORM_EXPORT ResourceFetcher +@@ -705,6 +706,7 @@ class PLATFORM_EXPORT ResourceFetcher bool is_in_request_resource_ = false; bool auto_load_images_ : 1; diff --git a/build/patches/Supporting-Dangling-Ptr-Detection-via-BackupRefPtr.patch b/build/patches/Supporting-Dangling-Ptr-Detection-via-BackupRefPtr.patch index 62a32c95..51557930 100644 --- a/build/patches/Supporting-Dangling-Ptr-Detection-via-BackupRefPtr.patch +++ b/build/patches/Supporting-Dangling-Ptr-Detection-via-BackupRefPtr.patch @@ -26,8 +26,8 @@ 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(kPartitionAllocLargeEmptySlotSpanRing, - #endif +@@ -95,6 +95,7 @@ BASE_FEATURE_PARAM(int, + partition_alloc::internal::SlotSpanRingMaxSize::kMedium); BASE_FEATURE(kPartitionAllocWithAdvancedChecks, FEATURE_DISABLED_BY_DEFAULT); +SET_CROMITE_FEATURE_ENABLED(kPartitionAllocWithAdvancedChecks); @@ -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 -@@ -287,6 +287,20 @@ void StartMemoryReclaimer(scoped_refptr task_runner) { +@@ -289,6 +289,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 -@@ -298,13 +312,18 @@ std::map ProposeSyntheticFinchTrials() { +@@ -300,13 +314,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(); -@@ -919,10 +938,7 @@ bool PartitionAllocSupport::ShouldEnablePartitionAllocWithAdvancedChecks( +@@ -922,10 +941,7 @@ bool PartitionAllocSupport::ShouldEnablePartitionAllocWithAdvancedChecks( base::features::kPartitionAllocWithAdvancedChecks)) { return false; } diff --git a/build/patches/Switch-to-fstack-protector-strong.patch b/build/patches/Switch-to-fstack-protector-strong.patch index 4eb74d5d..f6031a2e 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 -@@ -455,7 +455,7 @@ config("compiler") { +@@ -464,7 +464,7 @@ config("compiler") { } else if (is_posix || is_fuchsia) { if (current_os != "aix") { # Not available on aix. diff --git a/build/patches/Temp-Backport-Fix-CtrlW-to-close-current-tab.patch b/build/patches/Temp-Backport-Fix-CtrlW-to-close-current-tab.patch deleted file mode 100644 index adf8ad0c..00000000 --- a/build/patches/Temp-Backport-Fix-CtrlW-to-close-current-tab.patch +++ /dev/null @@ -1,32 +0,0 @@ -From: uazo -Date: Sat, 24 Jan 2026 16:30:35 +0000 -Subject: Temp Backport Fix CtrlW to close current tab - ---- - .../org/chromium/chrome/browser/KeyboardShortcuts.java | 8 +++++++- - 1 file changed, 7 insertions(+), 1 deletion(-) - -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 -@@ -1095,12 +1095,18 @@ public class KeyboardShortcuts { - if (!currentTabModel.isTabMultiSelected(tab.getId())) continue; - selectedTabs.add(tab); - } -+ // backport 7435408: Fix Ctrl+W to close current tab when tab highlighting is disabled -+ // https://chromium-review.googlesource.com/c/chromium/src/+/7435408 -+ List tabsToClose = -+ selectedTabs.isEmpty() -+ ? List.of(TabModelUtils.getCurrentTab(currentTabModel)) -+ : selectedTabs; - Tab tab = TabModelUtils.getCurrentTab(currentTabModel); - if (tab != null) { - currentTabModel - .getTabRemover() - .closeTabs( -- TabClosureParams.closeTabs(selectedTabs) -+ TabClosureParams.closeTabs(tabsToClose) - .allowUndo(false) - .tabClosingSource( - TabClosingSource.KEYBOARD_SHORTCUT) --- diff --git a/build/patches/Temp-disable-UseContextSnapshot.patch b/build/patches/Temp-disable-UseContextSnapshot.patch index 9f427b3b..d23a9766 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 -@@ -1079,6 +1079,7 @@ BASE_FEATURE(kUnrestrictedSharedArrayBuffer, base::FEATURE_DISABLED_BY_DEFAULT); +@@ -1072,6 +1072,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 ad5aff89..aee314b5 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 -@@ -5581,10 +5581,10 @@ const FeatureEntry kFeatureEntries[] = { +@@ -5494,10 +5494,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 9edcb260..17153c1f 100644 --- a/build/patches/Temp-disable-predictive-back-gesture.patch +++ b/build/patches/Temp-disable-predictive-back-gesture.patch @@ -16,7 +16,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro android:appComponentFactory="org.chromium.chrome.browser.base.SplitCompatAppComponentFactory" - android:enableOnBackInvokedCallback="true" + android:enableOnBackInvokedCallback="false" - {% block extra_application_attributes %}{% endblock %}> - - {% if channel in ['canary', 'dev', 'default'] %} + {% if javaless_renderers is defined %} + android:zygotePreloadNativeLib="lib{{ library_name }}.so" + {% endif %} -- diff --git a/build/patches/Temp-use-PREVIEW-for-IDCompositionDevice5.patch b/build/patches/Temp-use-PREVIEW-for-IDCompositionDevice5.patch index d9b890bd..4e3b765a 100644 --- a/build/patches/Temp-use-PREVIEW-for-IDCompositionDevice5.patch +++ b/build/patches/Temp-use-PREVIEW-for-IDCompositionDevice5.patch @@ -24,7 +24,7 @@ diff --git a/components/viz/service/display_embedder/skia_output_device_dcomp.cc #include "third_party/skia/include/core/SkCanvas.h" #include "third_party/skia/include/core/SkSurface.h" #include "third_party/skia/include/gpu/ganesh/GrDirectContext.h" -@@ -61,7 +62,7 @@ OutputSurface::DCSupportLevel GetDcSupportLevel() { +@@ -59,7 +60,7 @@ OutputSurface::DCSupportLevel GetDcSupportLevel() { Microsoft::WRL::ComPtr dcomp_device = gl::GetDirectCompositionDevice(); diff --git a/build/patches/Timezone-customization.patch b/build/patches/Timezone-customization.patch index 757e7049..4da099c9 100644 --- a/build/patches/Timezone-customization.patch +++ b/build/patches/Timezone-customization.patch @@ -59,7 +59,7 @@ diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/b ] resources_package = "org.chromium.components.browser_ui.site_settings" -@@ -295,6 +296,8 @@ android_resources("java_resources") { +@@ -287,6 +288,8 @@ android_resources("java_resources") { "java/res/xml/site_settings_preferences.xml", "java/res/xml/storage_access_settings.xml", "java/res/xml/website_preferences.xml", @@ -566,21 +566,21 @@ 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 -@@ -1352,5 +1352,21 @@ JNI_WebsitePreferenceBridge_ToHostOnlyPattern( +@@ -1351,5 +1351,21 @@ JNI_WebsitePreferenceBridge_ToHostOnlyPattern(JNIEnv* env, return ConvertUTF8ToJavaString(env, host_only_pattern.ToString()); } +static void JNI_WebsitePreferenceBridge_SetCustomTimezone( + JNIEnv* env, -+ const JavaParamRef& jbrowser_context_handle, -+ const JavaParamRef& custom_timezone) { ++ const JavaRef& jbrowser_context_handle, ++ const JavaRef& custom_timezone) { + std::string new_timezone = ConvertJavaStringToUTF8(env, custom_timezone); + GetHostContentSettingsMap(jbrowser_context_handle)->SetTimezoneOverrideValue(new_timezone); +} + +static base::android::ScopedJavaLocalRef JNI_WebsitePreferenceBridge_GetCustomTimezone( + JNIEnv* env, -+ const JavaParamRef& jbrowser_context_handle) { ++ const JavaRef& jbrowser_context_handle) { + std::string custom_timezone; + GetHostContentSettingsMap(jbrowser_context_handle)->GetTimezoneOverrideValue(custom_timezone); + return ConvertUTF8ToJavaString(env, custom_timezone); @@ -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 -@@ -103,6 +103,8 @@ void PrefProvider::RegisterProfilePrefs( +@@ -106,6 +106,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 -@@ -185,6 +187,10 @@ PrefProvider::PrefProvider(PrefService* prefs, +@@ -193,6 +195,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() { -@@ -517,4 +523,14 @@ void PrefProvider::SetClockForTesting(const base::Clock* clock) { +@@ -583,4 +589,14 @@ void PrefProvider::SetClockForTesting(const base::Clock* clock) { } } @@ -712,7 +712,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov private: friend class DeadlockCheckerObserver; // For testing. -@@ -130,6 +133,7 @@ class PrefProvider : public UserModifiableProvider { +@@ -135,6 +138,7 @@ class PrefProvider : public UserModifiableProvider { base::ThreadChecker thread_checker_; raw_ptr 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 -@@ -750,6 +750,14 @@ void HostContentSettingsMap::SetClockForTesting(const base::Clock* clock) { +@@ -749,6 +749,14 @@ void HostContentSettingsMap::SetClockForTesting(const base::Clock* clock) { } } diff --git a/build/patches/Use-BoringSSL-for-RandBytes.patch b/build/patches/Use-BoringSSL-for-RandBytes.patch index 3fcaf40c..a9521b8b 100644 --- a/build/patches/Use-BoringSSL-for-RandBytes.patch +++ b/build/patches/Use-BoringSSL-for-RandBytes.patch @@ -24,7 +24,7 @@ diff --git a/base/rand_util_fuchsia.cc b/base/rand_util_fuchsia.cc diff --git a/base/rand_util_posix.cc b/base/rand_util_posix.cc --- a/base/rand_util_posix.cc +++ b/base/rand_util_posix.cc -@@ -102,7 +102,7 @@ namespace { +@@ -97,7 +97,7 @@ namespace { // rand_util_win.cc. std::atomic g_use_boringssl; diff --git a/build/patches/Use-browser-navigation-handler.patch b/build/patches/Use-browser-navigation-handler.patch index ae255162..0dba0782 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 -@@ -105,6 +105,7 @@ import org.chromium.ui.util.MotionEventUtils; +@@ -107,6 +107,7 @@ import org.chromium.ui.util.MotionEventUtils; import org.chromium.url.GURL; import java.util.ArrayList; @@ -94,7 +94,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/Hist import org.chromium.chrome.browser.fullscreen.FullscreenManager; import org.chromium.chrome.browser.fullscreen.FullscreenOptions; import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher; -@@ -205,6 +206,9 @@ public class HistoryNavigationCoordinator +@@ -206,6 +207,9 @@ public class HistoryNavigationCoordinator * @return {@code} true if the feature is enabled. */ private boolean isFeatureEnabled() { @@ -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 -@@ -89,6 +89,7 @@ import org.chromium.chrome.browser.firstrun.FirstRunStatus; +@@ -92,6 +92,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; -@@ -865,7 +866,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -869,7 +870,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { @Override public void onInflationComplete() { mCoordinator = mActivity.findViewById(R.id.coordinator); diff --git a/build/patches/Use-list-mode-for-tab-switcher.patch b/build/patches/Use-list-mode-for-tab-switcher.patch index 66c6c79d..5f5c4e2c 100644 --- a/build/patches/Use-list-mode-for-tab-switcher.patch +++ b/build/patches/Use-list-mode-for-tab-switcher.patch @@ -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", -@@ -110,6 +112,8 @@ android_resources("java_resources") { +@@ -111,6 +113,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 -@@ -107,6 +111,7 @@ found in the LICENSE file. +@@ -114,6 +118,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 -@@ -231,7 +231,9 @@ public class TabGridDialogCoordinator implements TabGridDialogMediator.DialogCon +@@ -235,7 +235,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, -@@ -347,6 +349,11 @@ public class TabGridDialogCoordinator implements TabGridDialogMediator.DialogCon +@@ -352,6 +354,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( -@@ -357,7 +364,7 @@ public class TabGridDialogCoordinator implements TabGridDialogMediator.DialogCon +@@ -362,7 +369,7 @@ public class TabGridDialogCoordinator implements TabGridDialogMediator.DialogCon mCurrentTabGroupModelFilterSupplier, mTabContentManager, mTabListCoordinator::setRecyclerViewPosition, @@ -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; -@@ -909,6 +910,13 @@ public class TabGridDialogMediator +@@ -898,6 +899,13 @@ public class TabGridDialogMediator TabGridDialogProperties.DIALOG_UNGROUP_BAR_HOVERED_TEXT_COLOR, ungroupBarHoveredTextColor); mModel.set(TabGridDialogProperties.IS_INCOGNITO, isIncognito); @@ -253,7 +253,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/TabGridDialogView.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogView.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogView.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogView.java -@@ -1133,6 +1133,19 @@ public class TabGridDialogView extends FrameLayout { +@@ -1141,6 +1141,19 @@ public class TabGridDialogView extends FrameLayout { mHairline.setVisibility(visible ? VISIBLE : GONE); } @@ -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 -@@ -119,13 +119,13 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO +@@ -120,13 +120,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; } -@@ -371,6 +371,8 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO +@@ -373,6 +373,8 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO assumeNonNull(model); if (mMode == TabListMode.GRID) { TabGridViewBinder.onViewRecycled(model, viewHolder.itemView); @@ -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"); -@@ -532,7 +549,7 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO +@@ -533,7 +550,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); -@@ -564,9 +581,13 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO +@@ -565,9 +582,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); -@@ -650,7 +671,7 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO +@@ -654,7 +675,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); } -@@ -685,7 +706,7 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO +@@ -689,7 +710,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); } -@@ -739,7 +760,7 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO +@@ -743,7 +764,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 -@@ -404,7 +404,7 @@ public class TabListEditorCoordinator { +@@ -410,7 +410,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 -@@ -2601,8 +2601,26 @@ class TabListMediator implements TabListNotificationHandler { +@@ -2584,8 +2584,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 -@@ -330,7 +330,7 @@ public abstract class TabSwitcherPaneBase implements Pane, TabSwitcher, TabSwitc +@@ -294,7 +294,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) { -@@ -359,7 +359,7 @@ public abstract class TabSwitcherPaneBase implements Pane, TabSwitcher, TabSwitc +@@ -323,7 +323,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 -@@ -147,7 +147,10 @@ public class TabSwitcherPaneCoordinatorFactory { +@@ -148,7 +148,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 -@@ -187,6 +187,8 @@ internal_tab_management_java_sources = [ +@@ -185,6 +185,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", @@ -1056,7 +1056,7 @@ diff --git a/chrome/android/features/tab_ui/tab_management_java_sources.gni b/ch diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -88,6 +88,12 @@ found in the LICENSE file. +@@ -82,6 +82,12 @@ found in the LICENSE file. android:summary="@string/allow_external_intent_requests_summary" app:featureName="AllowExternalIntentRequests" app:needRestart="false" /> @@ -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 -@@ -194,6 +194,7 @@ import org.chromium.chrome.browser.tabmodel.TabModelSelectorTabObserver; +@@ -198,6 +198,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; -@@ -680,8 +681,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -692,8 +693,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity new TabContentManager( this, mBrowserControlsManagerSupplier.get(), @@ -1094,7 +1094,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv diff --git a/chrome/browser/android/favicon_helper.cc b/chrome/browser/android/favicon_helper.cc --- a/chrome/browser/android/favicon_helper.cc +++ b/chrome/browser/android/favicon_helper.cc -@@ -46,12 +46,109 @@ using base::android::JavaParamRef; +@@ -45,12 +45,109 @@ using base::android::ConvertUTF8ToJavaString; using base::android::JavaRef; using base::android::ScopedJavaGlobalRef; using base::android::ScopedJavaLocalRef; @@ -1205,7 +1205,7 @@ diff --git a/chrome/browser/android/favicon_helper.cc b/chrome/browser/android/f cancelable_task_tracker_ = std::make_unique(); } -@@ -59,6 +156,67 @@ void FaviconHelper::Destroy(JNIEnv* env) { +@@ -58,6 +155,67 @@ void FaviconHelper::Destroy(JNIEnv* env) { delete this; } @@ -1214,7 +1214,7 @@ diff --git a/chrome/browser/android/favicon_helper.cc b/chrome/browser/android/f + Profile* profile, + std::vector& gurls, + jint j_desired_size_in_pixel, -+ const base::android::JavaParamRef& ++ const base::android::JavaRef& + j_composed_favicon_image_callback) { + DCHECK(profile); + if (!profile) { @@ -1270,10 +1270,10 @@ diff --git a/chrome/browser/android/favicon_helper.cc b/chrome/browser/android/f + id_to_job_.erase(job_id); +} + - jboolean FaviconHelper::GetLocalFaviconImageForURL( + bool FaviconHelper::GetLocalFaviconImageForURL( JNIEnv* env, Profile* profile, -@@ -144,6 +302,30 @@ jboolean FaviconHelper::GetForeignFaviconImageForURL( +@@ -143,6 +301,30 @@ bool FaviconHelper::GetForeignFaviconImageForURL( FaviconHelper::~FaviconHelper() = default; @@ -1304,7 +1304,7 @@ diff --git a/chrome/browser/android/favicon_helper.cc b/chrome/browser/android/f void FaviconHelper::OnFaviconBitmapResultAvailable( const JavaRef& j_favicon_image_callback, const favicon_base::FaviconRawBitmapResult& result) { -@@ -163,4 +345,34 @@ void FaviconHelper::OnFaviconBitmapResultAvailable( +@@ -162,4 +344,34 @@ void FaviconHelper::OnFaviconBitmapResultAvailable( env, j_favicon_image_callback, j_favicon_bitmap, result.icon_url); } @@ -1342,7 +1342,7 @@ diff --git a/chrome/browser/android/favicon_helper.cc b/chrome/browser/android/f diff --git a/chrome/browser/android/favicon_helper.h b/chrome/browser/android/favicon_helper.h --- a/chrome/browser/android/favicon_helper.h +++ b/chrome/browser/android/favicon_helper.h -@@ -27,6 +27,12 @@ class FaviconHelper { +@@ -26,6 +26,12 @@ class FaviconHelper { FaviconHelper(const FaviconHelper&) = delete; FaviconHelper& operator=(const FaviconHelper&) = delete; @@ -1351,11 +1351,11 @@ diff --git a/chrome/browser/android/favicon_helper.h b/chrome/browser/android/fa + Profile* profile, + std::vector& gurls, + jint j_desired_size_in_pixel, -+ const base::android::JavaParamRef& j_favicon_image_callback); - jboolean GetLocalFaviconImageForURL( ++ const base::android::JavaRef& j_favicon_image_callback); + bool GetLocalFaviconImageForURL( JNIEnv* env, Profile* profile, -@@ -45,11 +51,22 @@ class FaviconHelper { +@@ -44,11 +50,22 @@ class FaviconHelper { GURL url, int desired_size_in_pixel, favicon_base::FaviconRawBitmapCallback callback_runner); @@ -1378,7 +1378,7 @@ diff --git a/chrome/browser/android/favicon_helper.h b/chrome/browser/android/fa // This function is expected to be bound to a WeakPtr, so that // it won't be run if the FaviconHelper is deleted and // |j_favicon_image_callback| isn't executed in that case. -@@ -57,8 +74,16 @@ class FaviconHelper { +@@ -56,8 +73,16 @@ class FaviconHelper { const base::android::JavaRef& j_favicon_image_callback, const favicon_base::FaviconRawBitmapResult& result); @@ -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 -@@ -65,6 +65,7 @@ import org.chromium.build.annotations.Nullable; +@@ -68,6 +68,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; -@@ -2030,7 +2031,7 @@ public class ToolbarPhone extends ToolbarLayout +@@ -2115,7 +2116,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); } -@@ -2267,7 +2268,8 @@ public class ToolbarPhone extends ToolbarLayout +@@ -2344,7 +2345,8 @@ public class ToolbarPhone extends ToolbarLayout ToggleTabStackButtonCoordinator tabSwitcherButtonCoordinator = getTabSwitcherButtonCoordinator(); assumeNonNull(tabSwitcherButtonCoordinator); @@ -1720,10 +1720,10 @@ 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 -@@ -253,6 +253,7 @@ android_resources("java_resources") { +@@ -235,6 +235,7 @@ android_resources("java_resources") { "java/res/drawable/ic_visibility_off_black.xml", - "java/res/drawable/ic_volume_off_white_24dp.xml", - "java/res/drawable/ic_volume_on_white_24dp.xml", + "java/res/drawable/ic_volume_off_fill_24dp.xml", + "java/res/drawable/ic_volume_up_fill_24dp.xml", + "java/res/drawable/ic_warning_red_16dp.xml", "java/res/drawable/ic_warning_red_24dp.xml", "java/res/drawable/ic_warning_red_outline_32dp.xml", diff --git a/build/patches/User-agent-customization.patch b/build/patches/User-agent-customization.patch index b26d1336..e7c3d40d 100644 --- a/build/patches/User-agent-customization.patch +++ b/build/patches/User-agent-customization.patch @@ -10,7 +10,6 @@ whereas the content setting is intended for use in a specific site. 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 --- - .../browser/aw_content_browser_client.cc | 2 +- base/base_switches.cc | 2 + base/base_switches.h | 2 + chrome/android/chrome_java_resources.gni | 2 + @@ -24,9 +23,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../settings/UserAgentPreferences.java | 189 ++++++++++++++++++ .../chromium/chrome/browser/tab/TabImpl.java | 64 +++++- .../chromium/chrome/browser/tab/TabUtils.java | 8 +- - .../browser/android/content/content_utils.cc | 32 ++- + .../browser/android/content/content_utils.cc | 29 +++ .../preferences/browser_prefs_android.cc | 7 + - .../privacy_preferences_manager_impl.cc | 127 ++++++++++++ + .../privacy_preferences_manager_impl.cc | 126 ++++++++++++ ...ktop_site_web_contents_observer_android.cc | 11 + ...sktop_site_web_contents_observer_android.h | 2 + .../preferences/ChromePreferenceKeys.java | 2 - @@ -46,25 +45,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/web_contents/web_contents_impl.cc | 6 +- .../framehost/NavigationControllerImpl.java | 17 +- content/renderer/render_thread_impl.cc | 1 - - 36 files changed, 811 insertions(+), 26 deletions(-) + 35 files changed, 807 insertions(+), 24 deletions(-) create mode 100644 chrome/android/java/res/layout/custom_useragent_preferences.xml create mode 100644 chrome/android/java/res/xml/useragent_preferences.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/settings/UserAgentPreferences.java create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromiteRequestDesktopSiteContentSetting.java create mode 100644 components/browser_ui/strings/bromite_content_settings/request_desktop_site.grdp -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 -@@ -201,7 +201,7 @@ base::WeakPtr GetAsyncCheckTracker( - } // anonymous namespace - - std::string GetProduct() { -- return embedder_support::GetProductAndVersion(); -+ return embedder_support::GetProductAndVersion(embedder_support::UserAgentReductionEnterprisePolicyState::kForceEnabled); - } - - std::string GetUserAgent() { diff --git a/base/base_switches.cc b/base/base_switches.cc --- a/base/base_switches.cc +++ b/base/base_switches.cc @@ -92,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 -@@ -684,6 +684,8 @@ chrome_java_resources = [ +@@ -659,6 +659,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", @@ -104,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 -@@ -932,6 +932,7 @@ chrome_java_sources = [ +@@ -941,6 +941,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", @@ -226,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 -@@ -140,6 +140,11 @@ found in the LICENSE file. +@@ -136,6 +136,11 @@ found in the LICENSE file. android:key="content_settings" android:order="26" android:title="@string/prefs_site_settings"/> @@ -271,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 -@@ -2814,7 +2814,10 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -2835,7 +2835,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. @@ -563,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 -@@ -82,6 +82,9 @@ import org.chromium.components.autofill.AutofillProvider; +@@ -84,6 +84,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; @@ -573,7 +560,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav import org.chromium.components.dom_distiller.core.DomDistillerUrlUtils; import org.chromium.components.embedder_support.contextmenu.ContextMenuPopulatorFactory; import org.chromium.components.embedder_support.util.UrlConstants; -@@ -127,6 +130,9 @@ import org.chromium.chrome.browser.preferences.Pref; +@@ -129,6 +132,9 @@ import org.chromium.chrome.browser.preferences.Pref; import org.chromium.chrome.browser.profiles.ProfileManager; import org.chromium.components.user_prefs.UserPrefs; @@ -583,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. -@@ -2342,9 +2348,6 @@ class TabImpl implements Tab { +@@ -2423,9 +2429,6 @@ class TabImpl implements Tab { } if (mWebContents != null) { @@ -593,7 +580,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav mWebContents.getNavigationController().loadIfNecessary(); } mIsBeingRestored = true; -@@ -2744,6 +2747,11 @@ class TabImpl implements Tab { +@@ -2825,6 +2828,11 @@ class TabImpl implements Tab { url = webContents.getVisibleUrl(); } @@ -605,7 +592,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav boolean shouldRequestDesktopSite = DesktopSiteUtils.shouldOverrideDesktopSite(mProfile, url, getContext()); -@@ -2773,7 +2781,7 @@ class TabImpl implements Tab { +@@ -2854,7 +2862,7 @@ class TabImpl implements Tab { } boolean usingDesktopUserAgent = getWebContents().getNavigationController().getUseDesktopUserAgent(); @@ -614,8 +601,8 @@ 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. */ -@@ -2923,6 +2931,54 @@ class TabImpl implements Tab { - /* allowDialog= */ false); +@@ -3035,6 +3043,54 @@ class TabImpl implements Tab { + ResettersForTesting.register(this::clearNativePtr); } + int overrideUserAgentWhenUnFrozen = (int)UserAgentOverrideOption.INHERIT; @@ -690,7 +677,7 @@ 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,23 @@ +@@ -8,9 +8,22 @@ #include "content/public/browser/web_contents.h" #include "third_party/blink/public/common/user_agent/user_agent_metadata.h" @@ -706,7 +693,6 @@ diff --git a/chrome/browser/android/content/content_utils.cc b/chrome/browser/an +using base::android::ConvertJavaStringToUTF8; +using base::android::ConvertUTF16ToJavaString; +using base::android::ConvertUTF8ToJavaString; -+using base::android::JavaParamRef; +using base::android::JavaRef; +using base::android::ScopedJavaGlobalRef; +using base::android::ScopedJavaLocalRef; @@ -714,10 +700,10 @@ 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 +33,22 @@ static void JNI_ContentUtils_SetUserAgentOverride( +@@ -19,6 +32,22 @@ static void JNI_ContentUtils_SetUserAgentOverride( JNIEnv* env, - const base::android::JavaParamRef& jweb_contents, - jboolean j_override_in_new_tabs) { + const base::android::JavaRef& jweb_contents, + bool j_override_in_new_tabs) { + bool enabled = + g_browser_process->local_state()->GetBoolean(prefs::kOverrideUserAgentDesktopModeEnabled); + @@ -737,15 +723,6 @@ diff --git a/chrome/browser/android/content/content_utils.cc b/chrome/browser/an constexpr char kLinuxInfoStr[] = "X11; Linux x86_64"; // Note: Any updates to desktop overrides here should also be applied to -@@ -29,7 +59,7 @@ static void JNI_ContentUtils_SetUserAgentOverride( - blink::UserAgentOverride spoofed_ua; - spoofed_ua.ua_string_override = - embedder_support::BuildUserAgentFromOSAndProduct( -- kLinuxInfoStr, embedder_support::GetProductAndVersion()); -+ kLinuxInfoStr, embedder_support::GetProductAndVersion(embedder_support::UserAgentReductionEnterprisePolicyState::kForceEnabled)); - spoofed_ua.ua_metadata_override = metadata; - spoofed_ua.ua_metadata_override->platform = "Linux"; - spoofed_ua.ua_metadata_override->platform_version = diff --git a/chrome/browser/android/preferences/browser_prefs_android.cc b/chrome/browser/android/preferences/browser_prefs_android.cc --- a/chrome/browser/android/preferences/browser_prefs_android.cc +++ b/chrome/browser/android/preferences/browser_prefs_android.cc @@ -773,7 +750,7 @@ diff --git a/chrome/browser/android/preferences/browser_prefs_android.cc b/chrom diff --git a/chrome/browser/android/preferences/privacy_preferences_manager_impl.cc b/chrome/browser/android/preferences/privacy_preferences_manager_impl.cc --- a/chrome/browser/android/preferences/privacy_preferences_manager_impl.cc +++ b/chrome/browser/android/preferences/privacy_preferences_manager_impl.cc -@@ -12,9 +12,35 @@ +@@ -12,9 +12,34 @@ #include "components/policy/core/common/features.h" #include "components/prefs/pref_service.h" @@ -801,15 +778,14 @@ diff --git a/chrome/browser/android/preferences/privacy_preferences_manager_impl +using base::android::ConvertJavaStringToUTF8; +using base::android::ConvertUTF16ToJavaString; +using base::android::ConvertUTF8ToJavaString; -+using base::android::JavaParamRef; +using base::android::JavaRef; +using base::android::ScopedJavaGlobalRef; +using base::android::ScopedJavaLocalRef; + - static jboolean JNI_PrivacyPreferencesManagerImpl_IsMetricsReportingEnabled( + static bool JNI_PrivacyPreferencesManagerImpl_IsMetricsReportingEnabled( JNIEnv* env) { PrefService* local_state = g_browser_process->local_state(); -@@ -37,4 +63,105 @@ JNI_PrivacyPreferencesManagerImpl_IsMetricsReportingDisabledByPolicy( +@@ -37,4 +62,105 @@ JNI_PrivacyPreferencesManagerImpl_IsMetricsReportingDisabledByPolicy( !local_state->GetBoolean(metrics::prefs::kMetricsReportingEnabled); } @@ -877,7 +853,7 @@ diff --git a/chrome/browser/android/preferences/privacy_preferences_manager_impl + +static void JNI_PrivacyPreferencesManagerImpl_SetOverrideUserAgentValue( + JNIEnv* env, -+ const JavaParamRef& ua, jboolean desktopMode) { ++ const JavaRef& ua, jboolean desktopMode) { + std::string new_ua = ConvertJavaStringToUTF8(env, ua); + if (desktopMode == false) { + g_browser_process->local_state()->SetString(prefs::kOverrideUserAgent, @@ -972,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 -@@ -1281,8 +1281,6 @@ public final class ChromePreferenceKeys { +@@ -1331,8 +1331,6 @@ public final class ChromePreferenceKeys { SIGNIN_PROMO_NTP_LAST_SHOWN_TIME, SYNC_PROMO_TOTAL_SHOW_COUNT, SEARCH_RESUMPTION_MODULE_COLLAPSE_ON_NTP, @@ -1002,15 +978,15 @@ 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 -@@ -391,6 +391,8 @@ public interface Tab extends TabLifecycle { +@@ -374,6 +374,8 @@ public interface Tab extends TabLifecycle { /** Goes to the navigation entry after the current one. */ void goForward(); + void SetOverrideUserAgent(boolean usingDesktopUserAgent, boolean forcedByUser); + - /** - * @return true if the {@link Tab} is a custom tab, including CCTs, TWAs and WebAPKs. - */ + /** Returns true if the {@link Tab} is a custom tab, including CCTs, TWAs and WebAPKs. */ + boolean isCustomTab(); + 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 @@ -1026,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 -@@ -501,6 +501,24 @@ public class TabWindowManagerImpl implements TabWindowManager { +@@ -502,6 +502,24 @@ public class TabWindowManagerImpl implements TabWindowManager { return null; } @@ -1065,7 +1041,7 @@ diff --git a/chrome/browser/ui/android/desktop_site/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 -@@ -250,6 +250,32 @@ CHAR_LIMIT guidelines: +@@ -253,6 +253,32 @@ CHAR_LIMIT guidelines: Visit help page @@ -1101,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 -@@ -1916,6 +1916,14 @@ inline constexpr char kNaviOnboardGroup[] = "browser.navi_onboard_group"; +@@ -1913,6 +1913,14 @@ inline constexpr char kNaviOnboardGroup[] = "browser.navi_onboard_group"; inline constexpr char kHadThreeConsecutiveNotificationPermissionDenies[] = "profile.content_settings.had_three_consecutive_denies.notifications"; @@ -1244,15 +1220,15 @@ diff --git a/components/browser_ui/widget/android/java/src/org/chromium/componen diff --git a/content/browser/renderer_host/navigation_controller_android.cc b/content/browser/renderer_host/navigation_controller_android.cc --- a/content/browser/renderer_host/navigation_controller_android.cc +++ b/content/browser/renderer_host/navigation_controller_android.cc -@@ -225,6 +225,7 @@ base::android::ScopedJavaLocalRef NavigationControllerAndroid::LoadUrl( - jboolean can_load_local_resources, - jboolean is_renderer_initiated, - jboolean should_replace_current_entry, +@@ -222,6 +222,7 @@ base::android::ScopedJavaLocalRef NavigationControllerAndroid::LoadUrl( + bool can_load_local_resources, + bool is_renderer_initiated, + bool should_replace_current_entry, + jint user_agent_override_option, - const JavaParamRef& j_initiator_origin, - jboolean has_user_gesture, - jboolean should_clear_history_list, -@@ -320,6 +321,9 @@ base::android::ScopedJavaLocalRef NavigationControllerAndroid::LoadUrl( + const JavaRef& j_initiator_origin, + bool has_user_gesture, + bool should_clear_history_list, +@@ -317,6 +318,9 @@ base::android::ScopedJavaLocalRef NavigationControllerAndroid::LoadUrl( params.navigation_ui_data = std::move(navigation_ui_data); @@ -1265,18 +1241,18 @@ 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 -@@ -73,6 +73,7 @@ class CONTENT_EXPORT NavigationControllerAndroid { - jboolean can_load_local_resources, - jboolean is_renderer_initiated, - jboolean should_replace_current_entry, +@@ -70,6 +70,7 @@ class CONTENT_EXPORT NavigationControllerAndroid { + bool can_load_local_resources, + bool is_renderer_initiated, + bool should_replace_current_entry, + jint user_agent_override_option, - const base::android::JavaParamRef& j_initiator_origin, - jboolean has_user_gesture, - jboolean should_clear_history_list, + const base::android::JavaRef& j_initiator_origin, + bool has_user_gesture, + bool should_clear_history_list, 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 -@@ -3836,6 +3836,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( +@@ -3846,6 +3846,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( #if BUILDFLAG(IS_CHROMEOS) switches::kSchedulerBoostUrgent, #endif @@ -1295,7 +1271,7 @@ diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser #include "base/check_op.h" #include "base/command_line.h" #include "base/containers/contains.h" -@@ -2375,8 +2376,6 @@ void WebContentsImpl::SetUserAgentOverride( +@@ -2403,8 +2404,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); @@ -1304,7 +1280,7 @@ diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser if (GetUserAgentOverride() == ua_override) { return; -@@ -3750,6 +3749,9 @@ const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences( +@@ -3758,6 +3757,9 @@ const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences( #else prefs.viewport_meta_enabled = false; #endif @@ -1358,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 -@@ -848,7 +848,6 @@ void RenderThreadImpl::InitializeRenderer( +@@ -793,7 +793,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 025916e2..7d7d50f9 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 -@@ -4341,6 +4341,7 @@ +@@ -4360,6 +4360,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, -@@ -4348,7 +4349,6 @@ +@@ -4367,7 +4368,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 -@@ -2354,7 +2354,12 @@ ComputedStyleBuilder StyleResolver::InitialStyleBuilderForElement() const { +@@ -2359,7 +2359,12 @@ ComputedStyleBuilder StyleResolver::InitialStyleBuilderForElement() const { ComputedStyleBuilder builder = CreateComputedStyleBuilder(); builder.SetRtlOrdering(GetDocument().VisuallyOrdered() ? EOrder::kVisual : EOrder::kLogical); @@ -338,7 +338,7 @@ diff --git a/third_party/blink/renderer/core/events/mouse_event.h b/third_party/ namespace blink { -@@ -146,8 +147,22 @@ class CORE_EXPORT MouseEvent : public UIEventWithKeyState { +@@ -148,8 +149,22 @@ class CORE_EXPORT MouseEvent : public UIEventWithKeyState { // Note that these values are adjusted to counter the effects of zoom, so that // values exposed via DOM APIs are invariant under zooming. @@ -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 -@@ -1110,7 +1110,7 @@ WebPagePopupImpl* WebViewImpl::OpenPagePopup(PagePopupClient* client) { +@@ -1143,7 +1143,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, @@ -411,7 +411,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_party/blink/renderer/core/frame/local_dom_window.cc --- a/third_party/blink/renderer/core/frame/local_dom_window.cc +++ b/third_party/blink/renderer/core/frame/local_dom_window.cc -@@ -1614,7 +1614,12 @@ int LocalDOMWindow::outerHeight() const { +@@ -1601,7 +1601,12 @@ int LocalDOMWindow::outerHeight() const { if (frame->IsInFencedFrameTree()) { return innerHeight(); } @@ -425,7 +425,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p Page* page = frame->GetPage(); if (!page) return 0; -@@ -1639,7 +1644,12 @@ int LocalDOMWindow::outerWidth() const { +@@ -1626,7 +1631,12 @@ int LocalDOMWindow::outerWidth() const { if (frame->IsInFencedFrameTree()) { return innerWidth(); } @@ -439,7 +439,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p Page* page = frame->GetPage(); if (!page) return 0; -@@ -1835,7 +1845,8 @@ double LocalDOMWindow::devicePixelRatio() const { +@@ -1822,7 +1832,8 @@ double LocalDOMWindow::devicePixelRatio() const { if (!GetFrame()) return 0.0; @@ -449,7 +449,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p } ScriptPromise LocalDOMWindow::scrollBy(ScriptState* script_state, -@@ -2445,6 +2456,23 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate, +@@ -2432,6 +2443,23 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate, if (!completed_url.IsEmpty() || result.new_window) result.frame->Navigate(frame_request, WebFrameLoadType::kStandard); @@ -473,7 +473,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p // TODO(japhet): window-open-noopener.html?_top and several tests in // html/browsers/windows/browsing-context-names/ appear to require that // the special case target names (_top, _parent, _self) ignore opener -@@ -2496,6 +2524,15 @@ DOMWindow* LocalDOMWindow::openPictureInPictureWindow( +@@ -2483,6 +2511,15 @@ DOMWindow* LocalDOMWindow::openPictureInPictureWindow( DCHECK(result.new_window); result.frame->Navigate(frame_request, WebFrameLoadType::kStandard); @@ -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 -@@ -1685,6 +1685,10 @@ void LocalFrame::RestoreScrollOffsets() { +@@ -1672,6 +1672,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_); } -@@ -1871,12 +1875,16 @@ mojom::blink::DevicePostureType LocalFrame::GetDevicePosture() { +@@ -1861,12 +1865,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; } -@@ -3466,6 +3474,11 @@ void LocalFrame::SetScaleFactor(float scale_factor) { +@@ -3456,6 +3464,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 -@@ -433,7 +433,8 @@ class CORE_EXPORT LocalFrame final +@@ -431,7 +431,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); -@@ -442,7 +443,7 @@ class CORE_EXPORT LocalFrame final +@@ -440,7 +441,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. -@@ -1140,6 +1141,7 @@ class CORE_EXPORT LocalFrame final +@@ -1098,6 +1099,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 -@@ -1945,6 +1945,15 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( +@@ -1954,6 +1954,15 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( if (DeviceEmulator() && widget_base_ && !widget_base_->WillBeDestroyed()) { DeviceEmulator()->UpdateVisualProperties(visual_properties); @@ -735,7 +735,7 @@ diff --git a/third_party/blink/renderer/core/input/touch.cc b/third_party/blink/ 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 -@@ -108,6 +108,13 @@ +@@ -107,6 +107,13 @@ #include "ui/color/color_provider_utils.h" #include "ui/gfx/geometry/insets_conversions.h" @@ -749,7 +749,7 @@ diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/re namespace blink { namespace { -@@ -1268,7 +1275,96 @@ void Page::UpdateAcceleratedCompositingSettings() { +@@ -1269,7 +1276,96 @@ void Page::UpdateAcceleratedCompositingSettings() { } } @@ -849,9 +849,9 @@ diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/re diff --git a/third_party/blink/renderer/core/page/page.h b/third_party/blink/renderer/core/page/page.h --- a/third_party/blink/renderer/core/page/page.h +++ b/third_party/blink/renderer/core/page/page.h -@@ -597,6 +597,10 @@ class CORE_EXPORT Page final : public GarbageCollected, - - #endif +@@ -538,6 +538,10 @@ class CORE_EXPORT Page final : public GarbageCollected, + // related pages will include the new page instead of the old page, etc. + void TakePropertiesForLocalMainFrameSwap(Page* old_page); + void CalculateEmulatedScreenSetting(LocalFrame* frame, bool force = false); + bool IsScreenEmulated() { return is_screen_emulated_; } @@ -860,7 +860,7 @@ diff --git a/third_party/blink/renderer/core/page/page.h b/third_party/blink/ren private: friend class ScopedPagePauser; class CloseTaskHandler; -@@ -767,6 +771,11 @@ class CORE_EXPORT Page final : public GarbageCollected, +@@ -708,6 +712,11 @@ class CORE_EXPORT Page final : public GarbageCollected, // browser side FrameTree has the FrameTree::Type of kFencedFrame. bool is_fenced_frame_tree_ = false; @@ -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 -@@ -2032,6 +2032,12 @@ class ComputedStyle final : public ComputedStyleBase { +@@ -2059,6 +2059,12 @@ class ComputedStyle final : public ComputedStyleBase { IsRunningBackdropFilterAnimationOnCompositor(); } diff --git a/build/patches/WIN-Disable-updater.patch b/build/patches/WIN-Disable-updater.patch index 7e321284..0bb8136f 100644 --- a/build/patches/WIN-Disable-updater.patch +++ b/build/patches/WIN-Disable-updater.patch @@ -4,9 +4,9 @@ Subject: WIN Disable updater --- chrome/browser/active_use_util.h | 2 +- - chrome/browser/updater/BUILD.gn | 16 ------- - .../browser/updater/browser_updater_client.cc | 46 +------------------ - 3 files changed, 2 insertions(+), 62 deletions(-) + chrome/browser/updater/BUILD.gn | 14 ------ + .../browser/updater/browser_updater_client.cc | 43 +------------------ + 3 files changed, 2 insertions(+), 57 deletions(-) diff --git a/chrome/browser/active_use_util.h b/chrome/browser/active_use_util.h --- a/chrome/browser/active_use_util.h @@ -22,23 +22,21 @@ 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 -@@ -31,22 +31,6 @@ if (is_win || is_mac) { - "//components/version_info", +@@ -38,20 +38,6 @@ source_set("updater") { + "//chrome/updater/mojom", ] - if (is_win) { -- sources += [ "browser_updater_client_win.cc" ] -- -- if (enable_updater) { -- sources += [ "browser_updater_client_util_win.cc" ] -- } else { -- sources += [ "browser_updater_client_util_no_updater.cc" ] -- } -- +- sources += [ +- "browser_updater_client_util_win.cc", +- "browser_updater_client_win.cc", +- "scheduler_win.cc", +- ] - deps += [ - "//chrome/browser/google", - "//chrome/install_static:install_static_util", - "//chrome/installer/util:with_no_strings", +- "//chrome/updater:browser_sources", - ] - } - @@ -48,7 +46,7 @@ diff --git a/chrome/browser/updater/BUILD.gn b/chrome/browser/updater/BUILD.gn diff --git a/chrome/browser/updater/browser_updater_client.cc b/chrome/browser/updater/browser_updater_client.cc --- a/chrome/browser/updater/browser_updater_client.cc +++ b/chrome/browser/updater/browser_updater_client.cc -@@ -64,19 +64,6 @@ BrowserUpdaterClient::~BrowserUpdaterClient() { +@@ -57,19 +57,6 @@ BrowserUpdaterClient::~BrowserUpdaterClient() { void BrowserUpdaterClient::Register(base::OnceClosure complete) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); @@ -57,8 +55,8 @@ diff --git a/chrome/browser/updater/browser_updater_client.cc b/chrome/browser/u - base::BindOnce(&BrowserUpdaterClient::GetRegistrationRequest, this), - base::BindOnce( - [](base::OnceCallback callback, -- scoped_refptr update_service, -- const updater::RegistrationRequest& request) { +- scoped_refptr update_service, +- const RegistrationRequest& request) { - update_service->RegisterApp(request, std::move(callback)); - }, - base::BindPostTaskToCurrentDefault( @@ -68,23 +66,21 @@ diff --git a/chrome/browser/updater/browser_updater_client.cc b/chrome/browser/u } void BrowserUpdaterClient::RegistrationCompleted(base::OnceClosure complete, -@@ -108,24 +95,6 @@ void BrowserUpdaterClient::CheckForUpdate( - base::RepeatingCallback +@@ -101,22 +88,6 @@ void BrowserUpdaterClient::CheckForUpdate( + base::RepeatingCallback version_updater_callback) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - -- updater::UpdateService::UpdateState update_state; -- update_state.state = -- updater::UpdateService::UpdateState::State::kCheckingForUpdates; +- UpdateService::UpdateState update_state; +- update_state.state = UpdateService::UpdateState::State::kCheckingForUpdates; - version_updater_callback.Run(update_state); - update_service_->Update( -- GetAppId(), {}, updater::UpdateService::Priority::kForeground, -- updater::UpdateService::PolicySameVersionUpdate::kNotAllowed, +- GetAppId(), {}, UpdateService::Priority::kForeground, +- UpdateService::PolicySameVersionUpdate::kNotAllowed, - /*language=*/{}, - base::BindPostTaskToCurrentDefault( -- base::BindRepeating([](const updater::UpdateService::UpdateState& -- state) { -- *GetLastOnDemandUpdateStateStorage() = state; +- base::BindRepeating([](const UpdateService::UpdateState& state) { +- GetLastOnDemandUpdateStateStorage() = state; - return state; - }).Then(version_updater_callback)), - base::BindPostTaskToCurrentDefault( @@ -93,22 +89,21 @@ diff --git a/chrome/browser/updater/browser_updater_client.cc b/chrome/browser/u } void BrowserUpdaterClient::UpdateCompleted( -@@ -174,20 +143,7 @@ void BrowserUpdaterClient::IsBrowserRegisteredCompleted( +@@ -163,19 +134,7 @@ void BrowserUpdaterClient::IsBrowserRegisteredCompleted( base::OnceCallback callback, - const std::vector& apps) { + const std::vector& apps) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); -- const auto updater = std::ranges::find_if( -- apps, [](const updater::UpdateService::AppState& state) { -- return base::EqualsCaseInsensitiveASCII(state.app_id, -- updater::kUpdaterAppId); +- const auto updater = +- std::ranges::find_if(apps, [](const UpdateService::AppState& state) { +- return base::EqualsCaseInsensitiveASCII(state.app_id, kUpdaterAppId); - }); - if (updater != apps.end()) { -- *GetLastKnownUpdaterRegistrationStorage() = *updater; +- GetLastKnownUpdaterRegistrationStorage() = *updater; - } - const auto app = - std::ranges::find_if(apps, &BrowserUpdaterClient::AppMatches); - if (app != apps.end()) { -- *GetLastKnownBrowserRegistrationStorage() = *app; +- GetLastKnownBrowserRegistrationStorage() = *app; - } - std::move(callback).Run(app != apps.end()); + std::move(callback).Run(true); diff --git a/build/patches/WIN-Fix-log-to-file.patch b/build/patches/WIN-Fix-log-to-file.patch index 1cd06120..854b6ee4 100644 --- a/build/patches/WIN-Fix-log-to-file.patch +++ b/build/patches/WIN-Fix-log-to-file.patch @@ -90,7 +90,7 @@ diff --git a/chrome/common/logging_chrome.h b/chrome/common/logging_chrome.h diff --git a/content/app/content_main.cc b/content/app/content_main.cc --- a/content/app/content_main.cc +++ b/content/app/content_main.cc -@@ -331,9 +331,12 @@ NO_STACK_PROTECTOR int RunContentProcess( +@@ -344,9 +344,12 @@ NO_STACK_PROTECTOR int RunContentProcess( } else if (command_line->HasSwitch(switches::kEnableLogging)) { // Route stdio to parent console (if any) or create one, do not create a // console in children if handles are being passed. diff --git a/build/patches/WIN-enable-pdf-plugin.patch b/build/patches/WIN-enable-pdf-plugin.patch index 1b8193a2..5f3a0146 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 -@@ -2390,7 +2390,9 @@ const mojom::RendererContentSettingsPtr& LocalFrame::GetContentSettings() +@@ -2380,7 +2380,9 @@ const mojom::RendererContentSettingsPtr& LocalFrame::GetContentSettings() } 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 3befe211..98a7bf9a 100644 --- a/build/patches/Warning-message-for-unsupported-hardware-aes.patch +++ b/build/patches/Warning-message-for-unsupported-hardware-aes.patch @@ -51,7 +51,7 @@ 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 -@@ -429,6 +429,7 @@ if (is_win) { +@@ -430,6 +430,7 @@ if (is_win) { "//components/webapps/isolated_web_apps:scheme", "//content/public/app", "//crypto", @@ -59,7 +59,7 @@ diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn "//headless:headless_non_renderer", "//headless:headless_shell_browser_lib", "//net:net_resources", -@@ -1636,6 +1637,8 @@ if (is_android) { +@@ -1638,6 +1639,8 @@ if (is_android) { "//chrome/common/profiler", "//chrome/gpu", "//chrome/renderer", @@ -71,7 +71,7 @@ diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegate.cc --- a/chrome/app/chrome_main_delegate.cc +++ b/chrome/app/chrome_main_delegate.cc -@@ -98,6 +98,9 @@ +@@ -100,6 +100,9 @@ #include "ui/base/resource/resource_bundle.h" #include "ui/base/resource/scoped_startup_resource_bundle.h" #include "ui/base/ui_base_switches.h" @@ -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) -@@ -1090,6 +1093,12 @@ std::optional ChromeMainDelegate::BasicStartupComplete() { +@@ -1114,6 +1117,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 -@@ -7327,6 +7327,10 @@ Keep your key file in a safe place. You will need it to create new versions of y +@@ -7340,6 +7340,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 -@@ -3841,6 +3841,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( +@@ -3851,6 +3851,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( switches::kSchedulerBoostUrgent, #endif switches::kDesktopModeViewportMetaEnabled, diff --git a/build/patches/Welcome-screen.patch b/build/patches/Welcome-screen.patch index da9936ab..21fed1dc 100644 --- a/build/patches/Welcome-screen.patch +++ b/build/patches/Welcome-screen.patch @@ -12,8 +12,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/android/java/res/values/dimens.xml | 11 + chrome/android/java/res/values/styles.xml | 24 ++ .../DefaultSearchEngineFirstRunFragment.java | 3 - - .../browser/firstrun/FirstRunActivity.java | 23 +- + .../browser/firstrun/FirstRunActivity.java | 39 +- .../firstrun/FirstRunFlowSequencer.java | 55 +-- + .../browser/firstrun/FirstRunFragment.java | 3 + .../browser/firstrun/FirstRunUtils.java | 1 + .../firstrun/ToSAndUMAFirstRunFragment.java | 321 +++++++++++++++++ .../firstrun/TosAndUmaFragmentView.java | 336 ++++++++++++++++++ @@ -22,7 +23,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html ...creenSigninAndHistorySyncActivityBase.java | 6 +- .../browser/locale/LocaleManagerDelegate.java | 5 +- .../Welcome-screen.grdp | 27 ++ - 16 files changed, 907 insertions(+), 76 deletions(-) + 17 files changed, 926 insertions(+), 76 deletions(-) create mode 100644 chrome/android/java/res/layout/fre_tosanduma.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/firstrun/TosAndUmaFragmentView.java @@ -31,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 -@@ -542,6 +542,7 @@ chrome_java_resources = [ +@@ -517,6 +517,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", @@ -42,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 -@@ -653,6 +653,8 @@ chrome_java_sources = [ +@@ -657,6 +657,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", @@ -240,7 +241,7 @@ diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res diff --git a/chrome/android/java/res/values/styles.xml b/chrome/android/java/res/values/styles.xml --- a/chrome/android/java/res/values/styles.xml +++ b/chrome/android/java/res/values/styles.xml -@@ -356,6 +356,30 @@ found in the LICENSE file. +@@ -364,6 +364,30 @@ found in the LICENSE file. 1 @@ -293,7 +294,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/Defaul diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java -@@ -42,8 +42,7 @@ import org.chromium.chrome.browser.feature_engagement.TrackerFactory; +@@ -23,6 +23,7 @@ import androidx.annotation.CallSuper; + import androidx.annotation.ColorInt; + import androidx.annotation.StringRes; + import androidx.annotation.VisibleForTesting; ++import androidx.fragment.app.Fragment; + 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; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; @@ -303,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; -@@ -232,7 +231,7 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa +@@ -231,7 +231,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(); @@ -312,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); -@@ -257,9 +256,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa +@@ -256,9 +256,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. @@ -322,7 +331,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR assumeNonNull(mFreProperties); mFirstRunFlowSequencer.updateFirstRunProperties(mFreProperties); -@@ -275,16 +271,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa +@@ -274,16 +271,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa mFreProgressStates.add(MobileFreProgress.DEFAULT_SEARCH_ENGINE_SHOWN); } @@ -339,7 +348,29 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR if (mPagerAdapter != null) { mPagerAdapter.notifyDataSetChanged(); } -@@ -666,11 +652,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa +@@ -498,6 +485,21 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa + return true; + } + ++ @Override ++ public void onAttachFragment(Fragment fragment) { ++ if (!(fragment instanceof FirstRunFragment)) return; ++ ++ FirstRunFragment page = (FirstRunFragment) fragment; ++ if (mNativeInitializationPromise.isFulfilled()) { ++ page.onNativeInitialized(); ++ } else { ++ mNativeInitializationPromise.then( ++ (ignored) -> { ++ page.onNativeInitialized(); ++ }); ++ } ++ } ++ + // Activity: + @Override + public void onRestoreInstanceState(@Nullable Bundle state) { +@@ -645,11 +647,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa public void acceptTermsOfService(boolean allowMetricsAndCrashUploading) { assert mNativeInitializationPromise.isFulfilled(); @@ -471,6 +502,19 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR } return true; } +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunFragment.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunFragment.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunFragment.java +@@ -12,6 +12,9 @@ import org.chromium.build.annotations.Nullable; + /** This interface is implemented by FRE fragments. */ + @NullMarked + public interface FirstRunFragment { ++ ++ default void onNativeInitialized() {} ++ + /** + * @see androidx.fragment.app.Fragment#getActivity(). + */ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunUtils.java --- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunUtils.java @@ -1190,7 +1234,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/Fullscre /** Base class for First run experience and fullscreen signin and history sync promos. */ @NullMarked -@@ -92,9 +90,7 @@ public abstract class FullscreenSigninAndHistorySyncActivityBase extends AsyncIn +@@ -85,9 +83,7 @@ public abstract class FullscreenSigninAndHistorySyncActivityBase extends AsyncIn @Override @CallSuper public void triggerLayoutInflation() { diff --git a/build/patches/add-browser-policy.patch b/build/patches/add-browser-policy.patch index 57105a47..6fd622d0 100644 --- a/build/patches/add-browser-policy.patch +++ b/build/patches/add-browser-policy.patch @@ -23,8 +23,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../core/browser/browser_policy_connector.cc | 3 + .../common/command_line_policy_provider.cc | 3 + .../core/common/policy_loader_command_line.cc | 138 ++++++++++++++++-- - .../policy/core/common/policy_pref_names.cc | 3 + - .../policy/core/common/policy_pref_names.h | 1 + + .../policy/core/common/policy_pref_names.h | 3 + .../policy/core/common/policy_service_impl.cc | 3 + .../policy/core/common/policy_switches.cc | 2 + .../policy/core/common/policy_switches.h | 1 + @@ -39,7 +38,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html extensions/common/extension_features.cc | 1 + google_apis/gaia/gaia_auth_fetcher.cc | 1 + net/socket/ssl_client_socket_impl.cc | 3 + - 35 files changed, 328 insertions(+), 162 deletions(-) + 34 files changed, 327 insertions(+), 162 deletions(-) diff --git a/base/win/win_util.cc b/base/win/win_util.cc --- a/base/win/win_util.cc @@ -160,7 +159,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro diff --git a/chrome/browser/android/preferences/privacy_preferences_manager_impl.cc b/chrome/browser/android/preferences/privacy_preferences_manager_impl.cc --- a/chrome/browser/android/preferences/privacy_preferences_manager_impl.cc +++ b/chrome/browser/android/preferences/privacy_preferences_manager_impl.cc -@@ -58,6 +58,11 @@ static jboolean +@@ -57,6 +57,11 @@ static bool JNI_PrivacyPreferencesManagerImpl_IsMetricsReportingDisabledByPolicy( JNIEnv* env) { const PrefService* local_state = g_browser_process->local_state(); @@ -175,16 +174,16 @@ diff --git a/chrome/browser/android/preferences/privacy_preferences_manager_impl diff --git a/chrome/browser/metrics/chrome_feature_list_creator.cc b/chrome/browser/metrics/chrome_feature_list_creator.cc --- a/chrome/browser/metrics/chrome_feature_list_creator.cc +++ b/chrome/browser/metrics/chrome_feature_list_creator.cc -@@ -37,6 +37,8 @@ - #include "content/public/common/content_switches.h" +@@ -41,6 +41,8 @@ #include "services/network/public/cpp/network_switches.h" + #include "services/network/public/cpp/shared_url_loader_factory.h" #include "ui/base/resource/resource_bundle.h" +#include "components/policy/core/common/policy_pref_names.h" +#include "components/policy/core/common/policy_switches.h" #if BUILDFLAG(IS_WIN) #include "chrome/installer/util/google_update_settings.h" -@@ -188,6 +190,16 @@ void ChromeFeatureListCreator::CreatePrefService() { +@@ -202,6 +204,16 @@ void ChromeFeatureListCreator::CreatePrefService() { // ManagementService's cache. if (local_state_pref_store->ReadPrefs() == JsonPrefStore::PREF_READ_ERROR_NONE) { @@ -204,7 +203,7 @@ diff --git a/chrome/browser/metrics/chrome_feature_list_creator.cc b/chrome/brow diff --git a/chrome/browser/navigation_predictor/search_engine_preconnector.cc b/chrome/browser/navigation_predictor/search_engine_preconnector.cc --- a/chrome/browser/navigation_predictor/search_engine_preconnector.cc +++ b/chrome/browser/navigation_predictor/search_engine_preconnector.cc -@@ -63,6 +63,9 @@ namespace features { +@@ -64,6 +64,9 @@ namespace features { BASE_FEATURE(kPreconnectFromKeyedService, base::FEATURE_ENABLED_BY_DEFAULT); BASE_FEATURE(kPreconnectToSearch, base::FEATURE_ENABLED_BY_DEFAULT); @@ -230,7 +229,7 @@ diff --git a/chrome/browser/policy/chrome_browser_policy_connector.cc b/chrome/b diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc b/chrome/browser/policy/configuration_policy_handler_list_factory.cc --- a/chrome/browser/policy/configuration_policy_handler_list_factory.cc +++ b/chrome/browser/policy/configuration_policy_handler_list_factory.cc -@@ -2538,9 +2538,9 @@ bool AreFuturePoliciesEnabledByDefault() { +@@ -2523,9 +2523,9 @@ bool AreFuturePoliciesEnabledByDefault() { if (base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kTestType)) { return true; } @@ -243,7 +242,7 @@ diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc } } // namespace -@@ -3374,7 +3374,10 @@ std::unique_ptr BuildHandlerList( +@@ -3369,7 +3369,10 @@ std::unique_ptr BuildHandlerList( key::kExtensionInstallCloudPolicyChecksEnabled, extensions::pref_names::kExtensionInstallCloudPolicyChecksEnabled, base::Value::Type::BOOLEAN)); @@ -340,7 +339,7 @@ diff --git a/chrome/browser/signin/bound_session_credentials/throttled_gaia_auth diff --git a/chrome/browser/signin/chrome_signin_client.cc b/chrome/browser/signin/chrome_signin_client.cc --- a/chrome/browser/signin/chrome_signin_client.cc +++ b/chrome/browser/signin/chrome_signin_client.cc -@@ -278,7 +278,9 @@ void ChromeSigninClient::DoFinalInit() { +@@ -292,7 +292,9 @@ void ChromeSigninClient::DoFinalInit() { bool ChromeSigninClient::ProfileAllowsSigninCookies(Profile* profile) { scoped_refptr cookie_settings = CookieSettingsFactory::GetForProfile(profile); @@ -351,7 +350,7 @@ diff --git a/chrome/browser/signin/chrome_signin_client.cc b/chrome/browser/sign } PrefService* ChromeSigninClient::GetPrefs() { -@@ -404,6 +406,9 @@ bool ChromeSigninClient::AreNetworkCallsDelayed() { +@@ -410,6 +412,9 @@ bool ChromeSigninClient::AreNetworkCallsDelayed() { } void ChromeSigninClient::DelayNetworkCall(base::OnceClosure callback) { @@ -395,7 +394,7 @@ diff --git a/chrome/browser/ui/webui/policy/policy_ui_handler.cc b/chrome/browse #include "base/strings/utf_string_conversions.h" #include "base/task/task_traits.h" #include "base/task/thread_pool.h" -@@ -71,6 +72,7 @@ +@@ -70,6 +71,7 @@ #include "components/policy/core/common/policy_details.h" #include "components/policy/core/common/policy_logger.h" #include "components/policy/core/common/policy_pref_names.h" @@ -403,7 +402,7 @@ diff --git a/chrome/browser/ui/webui/policy/policy_ui_handler.cc b/chrome/browse #include "components/policy/core/common/policy_scheduler.h" #include "components/policy/core/common/policy_types.h" #include "components/policy/core/common/policy_utils.h" -@@ -214,6 +216,10 @@ void PolicyUIHandler::RegisterMessages() { +@@ -213,6 +215,10 @@ void PolicyUIHandler::RegisterMessages() { "exportPoliciesJSON", base::BindRepeating(&PolicyUIHandler::HandleExportPoliciesJson, base::Unretained(this))); @@ -414,7 +413,7 @@ diff --git a/chrome/browser/ui/webui/policy/policy_ui_handler.cc b/chrome/browse web_ui()->RegisterMessageCallback( "listenPoliciesUpdates", base::BindRepeating(&PolicyUIHandler::HandleListenPoliciesUpdates, -@@ -504,8 +510,102 @@ void PolicyUIHandler::SendPolicies() { +@@ -503,8 +509,102 @@ void PolicyUIHandler::SendPolicies() { "policies-updated", base::Value( policy_value_and_status_aggregator_->GetAggregatedPolicyNames()), @@ -546,7 +545,7 @@ diff --git a/components/browser_ui/strings/android/browser_ui_strings.grd b/comp diff --git a/components/commerce/core/commerce_feature_list.cc b/components/commerce/core/commerce_feature_list.cc --- a/components/commerce/core/commerce_feature_list.cc +++ b/components/commerce/core/commerce_feature_list.cc -@@ -67,56 +67,6 @@ const CountryLocaleMap& GetAllowedCountryToLocaleMap() { +@@ -69,56 +69,6 @@ const CountryLocaleMap& GetAllowedCountryToLocaleMap() { return *allowed_map; } @@ -603,7 +602,7 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm } // namespace BASE_FEATURE(kCommerceAllowLocalImages, base::FEATURE_DISABLED_BY_DEFAULT); -@@ -278,16 +228,15 @@ const base::FeatureParam kRevertIconOnFailure{ +@@ -280,16 +230,15 @@ const base::FeatureParam kRevertIconOnFailure{ &kShoppingList, kRevertIconOnFailureParam, false}; bool IsPartnerMerchant(const GURL& url) { @@ -623,7 +622,7 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm } bool IsCartDiscountFeatureEnabled() { -@@ -339,6 +288,7 @@ bool IsEnabledForCountryAndLocale(const base::Feature& feature, +@@ -341,6 +290,7 @@ bool IsEnabledForCountryAndLocale(const base::Feature& feature, bool IsRegionLockedFeatureEnabled(const base::Feature& feature, const std::string& country_code, const std::string& locale) { @@ -631,7 +630,7 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm auto* feature_list = base::FeatureList::GetInstance(); // If the feature has a server-side config, this check will ensure that -@@ -371,6 +321,7 @@ base::TimeDelta GetDiscountFetchDelay() { +@@ -373,6 +323,7 @@ base::TimeDelta GetDiscountFetchDelay() { } bool IsNoDiscountMerchant(const GURL& url) { @@ -639,7 +638,7 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm auto* pattern_from_component = commerce_heuristics::CommerceHeuristicsData::GetInstance() .GetNoDiscountMerchantPattern(); -@@ -382,4 +333,6 @@ bool IsNoDiscountMerchant(const GURL& url) { +@@ -384,4 +335,6 @@ bool IsNoDiscountMerchant(const GURL& url) { return RE2::PartialMatch(url.host(), *pattern_from_component); } #endif @@ -830,34 +829,23 @@ diff --git a/components/policy/core/common/policy_loader_command_line.cc b/compo return bundle; } -diff --git a/components/policy/core/common/policy_pref_names.cc b/components/policy/core/common/policy_pref_names.cc ---- a/components/policy/core/common/policy_pref_names.cc -+++ b/components/policy/core/common/policy_pref_names.cc -@@ -95,6 +95,9 @@ const char kBackForwardCacheEnabled[] = "policy.back_forward_cache_enabled"; - const char kReadAloudEnabled[] = "policy.read_aloud_enabled"; - #endif // BUILDFLAG(IS_ANDROID) - -+const char kDisabledDefaultPoliciesList[] = -+ "policy.disabled_default_policies_list"; -+ - #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS) - // Last time that a check for cloud policy management was done. This time is - // recorded on Android and iOS so that retries aren't attempted on every diff --git a/components/policy/core/common/policy_pref_names.h b/components/policy/core/common/policy_pref_names.h --- a/components/policy/core/common/policy_pref_names.h +++ b/components/policy/core/common/policy_pref_names.h -@@ -65,6 +65,7 @@ extern const char kIncognitoModeBlocklist[]; - extern const char kIncognitoModeAllowlist[]; - extern const char kUserPolicyRefreshRate[]; - extern const char kIntensiveWakeUpThrottlingEnabled[]; -+extern const char kDisabledDefaultPoliciesList[]; +@@ -121,6 +121,9 @@ inline constexpr char kNativeWindowOcclusionEnabled[] = + inline constexpr char kIntensiveWakeUpThrottlingEnabled[] = + "policy.intensive_wake_up_throttling_enabled"; + ++inline constexpr char kDisabledDefaultPoliciesList[] = ++ "policy.disabled_default_policies_list"; ++ #if BUILDFLAG(IS_ANDROID) - extern const char kBackForwardCacheEnabled[]; - extern const char kReadAloudEnabled[]; + // Boolean policy preference to disable the BackForwardCache feature. + inline constexpr char kBackForwardCacheEnabled[] = diff --git a/components/policy/core/common/policy_service_impl.cc b/components/policy/core/common/policy_service_impl.cc --- a/components/policy/core/common/policy_service_impl.cc +++ b/components/policy/core/common/policy_service_impl.cc -@@ -52,6 +52,9 @@ namespace { +@@ -51,6 +51,9 @@ namespace { // Metrics should not be enforced so if this policy is set as mandatory // downgrade it to a recommended level policy. void DowngradeMetricsReportingToRecommendedPolicy(PolicyMap* policies) { @@ -981,7 +969,7 @@ diff --git a/components/policy/resources/webui/policy_row.ts b/components/policy diff --git a/components/policy_strings.grdp b/components/policy_strings.grdp --- a/components/policy_strings.grdp +++ b/components/policy_strings.grdp -@@ -675,8 +675,8 @@ Additional details: +@@ -690,8 +690,8 @@ Additional details: Default @@ -1061,7 +1049,7 @@ diff --git a/google_apis/gaia/gaia_auth_fetcher.cc b/google_apis/gaia/gaia_auth_ 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 -@@ -794,6 +794,7 @@ int SSLClientSocketImpl::Init() { +@@ -796,6 +796,7 @@ int SSLClientSocketImpl::Init() { return ERR_UNEXPECTED; } @@ -1069,7 +1057,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket // Disable SHA-1 server signatures. // TODO(crbug.com/boringssl/699): Once the default is flipped in BoringSSL, we // no longer need to override it. -@@ -1216,6 +1217,8 @@ ssl_verify_result_t SSLClientSocketImpl::HandleVerifyResult() { +@@ -1218,6 +1219,8 @@ ssl_verify_result_t SSLClientSocketImpl::HandleVerifyResult() { cert_verifier_request_.reset(); diff --git a/build/patches/autofill-miscellaneous.patch b/build/patches/autofill-miscellaneous.patch index 4418d804..3b19166c 100644 --- a/build/patches/autofill-miscellaneous.patch +++ b/build/patches/autofill-miscellaneous.patch @@ -55,7 +55,7 @@ diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc 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 -@@ -456,15 +456,6 @@ ChromeAutofillClient::GetURLLoaderFactory() { +@@ -458,15 +458,6 @@ ChromeAutofillClient::GetURLLoaderFactory() { ->GetURLLoaderFactoryForBrowserProcess(); } @@ -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 -@@ -115,7 +115,6 @@ class ChromeAutofillClient : public ContentAutofillClient, +@@ -117,7 +117,6 @@ class ChromeAutofillClient : public ContentAutofillClient, version_info::Channel GetChannel() const final; bool IsOffTheRecord() const final; scoped_refptr GetURLLoaderFactory() final; @@ -85,7 +85,7 @@ diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.h b/chrome/browse diff --git a/components/android_autofill/browser/android_autofill_client.cc b/components/android_autofill/browser/android_autofill_client.cc --- a/components/android_autofill/browser/android_autofill_client.cc +++ b/components/android_autofill/browser/android_autofill_client.cc -@@ -80,17 +80,6 @@ AndroidAutofillClient::GetURLLoaderFactory() { +@@ -79,17 +79,6 @@ AndroidAutofillClient::GetURLLoaderFactory() { ->GetURLLoaderFactoryForBrowserProcess(); } @@ -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 -@@ -506,33 +506,6 @@ std::optional GetUploadPayloadForApi( +@@ -504,33 +504,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) { -@@ -564,15 +537,7 @@ std::optional GetAPIQueryPayload( +@@ -562,15 +535,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() { -@@ -902,31 +867,13 @@ size_t AutofillCrowdsourcingManager::GetPayloadLength( +@@ -900,31 +865,13 @@ size_t AutofillCrowdsourcingManager::GetPayloadLength( std::tuple AutofillCrowdsourcingManager::GetRequestURLAndMethod( const FormRequestData& request_data) const { @@ -207,7 +207,7 @@ diff --git a/components/autofill/core/browser/crowdsourcing/autofill_crowdsourci diff --git a/components/autofill/core/browser/crowdsourcing/autofill_crowdsourcing_manager.h b/components/autofill/core/browser/crowdsourcing/autofill_crowdsourcing_manager.h --- a/components/autofill/core/browser/crowdsourcing/autofill_crowdsourcing_manager.h +++ b/components/autofill/core/browser/crowdsourcing/autofill_crowdsourcing_manager.h -@@ -37,8 +37,6 @@ namespace autofill { +@@ -38,8 +38,6 @@ namespace autofill { class AutofillClient; @@ -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 -@@ -321,10 +321,6 @@ class AutofillClient { +@@ -304,10 +304,6 @@ class AutofillClient { // Returns the VotesUploader. virtual VotesUploader& GetVotesUploader() = 0; @@ -242,7 +242,7 @@ diff --git a/components/autofill/core/browser/foundations/autofill_client.h b/co - // Returns whether the client has a PersonalDataManager. // - // TODO(crbug.cm/455121491) This is a temporary fix to avoid crashes when + // TODO(crbug.com/455121491) This is a temporary fix to avoid crashes when 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 @@ -258,8 +258,8 @@ diff --git a/components/autofill/core/browser/foundations/autofill_manager.cc b/ - // server response is processed, to ensure server predictions are not lost. - client().GetCrowdsourcingManager().StartQueryRequest( - queryable_forms, driver().GetIsolationInfo(), -- AfterParsingFinishesDeprecated(base::BindOnce( -- &AutofillManager::OnLoadedServerPredictions, GetWeakPtr()))); +- base::BindOnce(&AutofillManager::OnLoadedServerPredictions, +- GetWeakPtr())); - } } @@ -267,7 +267,7 @@ 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 -@@ -799,6 +799,7 @@ BASE_FEATURE(kAutofillPopupDontAcceptNonVisibleEnoughSuggestion, +@@ -855,6 +855,7 @@ BASE_FEATURE(kAutofillPopupDontAcceptNonVisibleEnoughSuggestion, // affect their functionality. BASE_FEATURE(kAutofillPopupZOrderSecuritySurface, base::FEATURE_ENABLED_BY_DEFAULT); @@ -287,7 +287,7 @@ diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/auto user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); registry->RegisterIntegerPref( kAutofillLastVersionDeduped, 0, -@@ -52,10 +52,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -59,10 +59,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { kAutofillHasSeenIban, false, user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); registry->RegisterBooleanPref( @@ -300,7 +300,7 @@ diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/auto user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); registry->RegisterBooleanPref( kAutofillPaymentCardBenefits, true, -@@ -107,7 +107,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -114,7 +114,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { #endif // Deprecated prefs registered for migration. diff --git a/build/patches/bromite-build-utils.patch b/build/patches/bromite-build-utils.patch index 8ec63b3f..d97038fd 100644 --- a/build/patches/bromite-build-utils.patch +++ b/build/patches/bromite-build-utils.patch @@ -14,13 +14,13 @@ Subject: bromite build utils build/config/android/rules.gni | 6 +- .../ChromeAccessibilitySettingsDelegate.java | 5 + chrome/browser/flags/BUILD.gn | 8 +- - .../flags/android/cromite_native_utils.cc | 92 +++++++++++++++ + .../flags/android/cromite_native_utils.cc | 94 +++++++++++++++ .../flags/android/cromite_native_utils.h | 14 +++ .../browser/flags/CromiteNativeUtils.java | 46 ++++++++ mojo/public/tools/mojom/mojom_parser.py | 22 +++- tools/grit/grit/grd_reader.py | 27 ++++- tools/grit/preprocess_if_expr.py | 32 +++++- - 17 files changed, 536 insertions(+), 19 deletions(-) + 17 files changed, 538 insertions(+), 19 deletions(-) create mode 100644 build/bromite/bromite_utils.gni create mode 100644 build/bromite/gyp/cpp_bromite_include.py create mode 100644 build/bromite/gyp/cpp_bromite_include.pydeps @@ -433,16 +433,7 @@ diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni --- a/build/config/android/rules.gni +++ b/build/config/android/rules.gni -@@ -209,7 +209,7 @@ if (!is_robolectric && enable_java_templates) { - # } - template("java_cpp_enum") { - action_with_pydeps(target_name) { -- forward_variables_from(invoker, TESTONLY_AND_VISIBILITY + [ "sources" ]) -+ forward_variables_from(invoker, TESTONLY_AND_VISIBILITY + [ "sources", "deps" ]) - - # The sources aren't compiled so don't check their dependencies. - check_includes = false -@@ -220,6 +220,10 @@ if (!is_robolectric && enable_java_templates) { +@@ -224,6 +224,10 @@ if (!is_robolectric && enable_java_templates) { _rebased_sources = rebase_path(invoker.sources, root_build_dir) args = [ "--srcjar=$_rebased_srcjar_path" ] + _rebased_sources @@ -453,6 +444,15 @@ diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni outputs = [ _srcjar_path ] } } +@@ -278,7 +282,7 @@ if (!is_robolectric && enable_java_templates) { + # my.java.package. + template("java_cpp_strings") { + action_with_pydeps(target_name) { +- forward_variables_from(invoker, TESTONLY_AND_VISIBILITY + [ "sources" ]) ++ forward_variables_from(invoker, TESTONLY_AND_VISIBILITY + [ "sources", "deps" ]) + + # The sources aren't compiled so don't check their dependencies. + check_includes = false 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 @@ -504,7 +504,7 @@ diff --git a/chrome/browser/flags/android/cromite_native_utils.cc b/chrome/brows new file mode 100755 --- /dev/null +++ b/chrome/browser/flags/android/cromite_native_utils.cc -@@ -0,0 +1,92 @@ +@@ -0,0 +1,94 @@ +#include "chrome/browser/flags/android/cromite_native_utils.h" + +#include "chrome/browser/browser_process.h" @@ -514,10 +514,10 @@ new file mode 100755 + +#include "base/android/jni_string.h" + -+using base::android::JavaParamRef; ++using base::android::JavaRef; + +static void JNI_CromiteNativeUtils_SetEnabled(JNIEnv* env, -+ const JavaParamRef& featureName, jboolean isEnabled) { ++ const JavaRef& featureName, bool isEnabled) { + flags_ui::PrefServiceFlagsStorage flags_storage( + g_browser_process->local_state()); + std::set entries = flags_storage.GetFlags(); @@ -560,7 +560,7 @@ new file mode 100755 +} + +static jboolean JNI_CromiteNativeUtils_IsFlagEnabled(JNIEnv* env, -+ const JavaParamRef& featureName) { ++ const JavaRef& featureName) { + auto internal_name = base::android::ConvertJavaStringToUTF8(env, featureName); + + flags_ui::PrefServiceFlagsStorage flags_storage( @@ -597,6 +597,8 @@ new file mode 100755 + + return false; +} ++ ++DEFINE_JNI(CromiteNativeUtils) diff --git a/chrome/browser/flags/android/cromite_native_utils.h b/chrome/browser/flags/android/cromite_native_utils.h new file mode 100755 --- /dev/null @@ -662,7 +664,7 @@ new file mode 100755 + } + + @NativeMethods -+ interface Natives { ++ public interface Natives { + void setEnabled(String featureName, boolean newValue); + boolean isFlagEnabled(String featureName); + } diff --git a/build/patches/disable-WebView-variations-support.patch b/build/patches/disable-WebView-variations-support.patch index 72643377..cd268b60 100644 --- a/build/patches/disable-WebView-variations-support.patch +++ b/build/patches/disable-WebView-variations-support.patch @@ -12,7 +12,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumAwInit.java b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumAwInit.java --- a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumAwInit.java +++ b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumAwInit.java -@@ -664,13 +664,6 @@ public class WebViewChromiumAwInit { +@@ -678,13 +678,6 @@ public class WebViewChromiumAwInit { } AwBrowserProcess.configureChildProcessLauncher(); @@ -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 -@@ -661,10 +661,6 @@ public class WebViewChromiumFactoryProvider implements WebViewFactoryProvider { +@@ -658,10 +658,6 @@ public class WebViewChromiumFactoryProvider implements WebViewFactoryProvider { // This must happen after pref value has been read and SafeMode setup has completed. setupStartupTaskExperiments(androidXConfig); @@ -39,5 +39,5 @@ diff --git a/android_webview/glue/java/src/com/android/webview/chromium/WebViewC - if (WebViewCachedFlags.get() .isCachedFeatureEnabled(AwFeatures.WEBVIEW_MOVE_WORK_TO_PROVIDER_INIT)) { - PostTask.postTask( + mAwInit.runNonUiThreadCapableStartupTasks(); -- 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 7875b39a..dda78a4f 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 -@@ -149,12 +149,12 @@ const size_t kMaxHostLength = 4096; +@@ -150,12 +150,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-add-suffix-to-package-name.patch b/build/patches/do-not-add-suffix-to-package-name.patch index bba7880a..eb5653cb 100644 --- a/build/patches/do-not-add-suffix-to-package-name.patch +++ b/build/patches/do-not-add-suffix-to-package-name.patch @@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/chrome_public_apk_tmpl.gni b/chrome/android/chrome_public_apk_tmpl.gni --- a/chrome/android/chrome_public_apk_tmpl.gni +++ b/chrome/android/chrome_public_apk_tmpl.gni -@@ -30,7 +30,7 @@ declare_args() { +@@ -26,7 +26,7 @@ declare_args() { chrome_public_manifest_package = "org.chromium.chrome" if (use_stable_package_name_for_trichrome) { chrome_public_manifest_package += ".stable" diff --git a/build/patches/do-not-block-build-incompatible-profiles.patch b/build/patches/do-not-block-build-incompatible-profiles.patch index 0528fbe2..e5d7ead9 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 -@@ -2651,7 +2651,7 @@ template("run_mksnapshot") { +@@ -2671,7 +2671,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/do-not-hide-.orig-files.patch b/build/patches/do-not-hide-.orig-files.patch index 797a4bc7..492cc431 100644 --- a/build/patches/do-not-hide-.orig-files.patch +++ b/build/patches/do-not-hide-.orig-files.patch @@ -17,6 +17,6 @@ diff --git a/.gitignore b/.gitignore -*.orig +# *.orig *.pdb + *.profraw *.props - *.pyc -- diff --git a/build/patches/enable-ftrivial-auto-var-init-zero.patch b/build/patches/enable-ftrivial-auto-var-init-zero.patch index 475345ef..0daf2ffb 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 -@@ -471,6 +471,10 @@ config("compiler") { +@@ -480,6 +480,10 @@ config("compiler") { cflags += [ "-fwrapv" ] } diff --git a/build/patches/eyeo-133.0.6943.49-android_api.patch b/build/patches/eyeo-133.0.6943.49-android_api.patch index 576ee200..df7b9060 100644 --- a/build/patches/eyeo-133.0.6943.49-android_api.patch +++ b/build/patches/eyeo-133.0.6943.49-android_api.patch @@ -10,11 +10,11 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module chrome/android/chrome_java_sources.gni | 4 + .../browser/adblock/TabIdTranslator.java | 36 ++ chrome/browser/BUILD.gn | 4 + - .../android/adblock/tab_id_translator_jni.cc | 41 ++ + .../android/adblock/tab_id_translator_jni.cc | 43 ++ chrome/browser/ui/BUILD.gn | 6 + components/adblock/android/BUILD.gn | 107 ++++ .../adblock/android/adblock_controller_jni.cc | 133 +++++ - .../filtering_configuration_android.cc | 244 ++++++++ + .../filtering_configuration_android.cc | 246 ++++++++ .../android/filtering_configuration_android.h | 94 +++ .../components/adblock/AdblockController.java | 283 +++++++++ .../components/adblock/AdblockSwitches.java | 22 + @@ -44,9 +44,9 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module .../TestPagesWildcardDomainTestBase.java | 116 ++++ .../TestResourceFilteringObserver.java | 180 ++++++ .../adblock/TestVerificationUtils.java | 220 +++++++ - ...esource_classification_notifier_android.cc | 163 +++++ + ...esource_classification_notifier_android.cc | 166 ++++++ ...resource_classification_notifier_android.h | 72 +++ - 40 files changed, 5609 insertions(+) + 40 files changed, 5616 insertions(+) create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/adblock/TabIdTranslator.java create mode 100644 chrome/browser/android/adblock/tab_id_translator_jni.cc create mode 100644 components/adblock/android/BUILD.gn @@ -97,7 +97,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn import("//build/config/android/config.gni") import("//build/config/cronet/config.gni") -@@ -541,6 +544,7 @@ if (_is_default_toolchain) { +@@ -546,6 +549,7 @@ if (_is_default_toolchain) { "//chrome/browser/xsurface:java", "//chrome/browser/xsurface_provider:dependency_provider_impl_java", "//chrome/browser/xsurface_provider:java", @@ -105,7 +105,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//components/android_autofill/browser:features_java", "//components/android_autofill/browser:java", "//components/autofill/android:autofill_features_java", -@@ -1473,6 +1477,7 @@ if (_is_default_toolchain) { +@@ -1460,6 +1464,7 @@ if (_is_default_toolchain) { "//chrome/test/data/translate/", "//chrome/test/data/webauthn/", "//chrome/test/media_router/resources/", @@ -113,7 +113,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//components/test/data/autofill/", "//components/test/data/payments/", "//content/test/data/browsing_data/", -@@ -3177,6 +3182,12 @@ if (_is_default_toolchain) { +@@ -3054,6 +3059,12 @@ if (_is_default_toolchain) { sources += [ "java/src/org/chromium/chrome/browser/media/MediaCapturePickerManagerBridge.java" ] } @@ -126,7 +126,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn # Used for testing only, should not be shipped to end users. if (enable_offline_pages_harness) { sources += [ "java/src/org/chromium/chrome/browser/offlinepages/evaluation/OfflinePageEvaluationBridge.java" ] -@@ -3269,6 +3280,7 @@ if (_is_default_toolchain) { +@@ -3146,6 +3157,7 @@ if (_is_default_toolchain) { "//chrome/browser/ui/plus_addresses/android:jni_headers", "//chrome/browser/util:jni_headers", "//chrome/browser/webauthn/android:jni_headers", @@ -147,7 +147,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java import("//content/public/common/features.gni") -@@ -58,6 +61,7 @@ chrome_java_sources = [ +@@ -62,6 +65,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettingsBridge.java", "java/src/org/chromium/chrome/browser/accessibility/settings/CaretBrowsingDialog.java", "java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java", @@ -199,7 +199,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 -@@ -3392,6 +3392,10 @@ static_library("browser") { +@@ -3357,6 +3357,10 @@ static_library("browser") { ] deps += [ "//chrome/browser/password_entry_edit/android" ] @@ -214,7 +214,7 @@ diff --git a/chrome/browser/android/adblock/tab_id_translator_jni.cc b/chrome/br new file mode 100644 --- /dev/null +++ b/chrome/browser/android/adblock/tab_id_translator_jni.cc -@@ -0,0 +1,41 @@ +@@ -0,0 +1,43 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -256,10 +256,12 @@ new file mode 100644 + + return tab->GetAndroidId(); +} ++ ++DEFINE_JNI(TabIdTranslator) 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 -@@ -1054,6 +1054,12 @@ static_library("ui") { +@@ -1055,6 +1055,12 @@ static_library("ui") { deps += [ "//components/themes:ntp_background_proto", ] @@ -526,7 +528,7 @@ diff --git a/components/adblock/android/filtering_configuration_android.cc b/com new file mode 100644 --- /dev/null +++ b/components/adblock/android/filtering_configuration_android.cc -@@ -0,0 +1,244 @@ +@@ -0,0 +1,246 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -563,7 +565,7 @@ new file mode 100644 +using base::android::AttachCurrentThread; +using base::android::ConvertJavaStringToUTF8; +using base::android::ConvertUTF8ToJavaString; -+using base::android::JavaParamRef; ++using base::android::JavaRef; +using base::android::ScopedJavaLocalRef; +using base::android::ToJavaArrayOfStrings; + @@ -571,7 +573,7 @@ new file mode 100644 + +FilteringConfigurationAndroid::FilteringConfigurationAndroid( + JNIEnv* env, -+ const JavaParamRef& jcontroller, ++ const JavaRef& jcontroller, + const std::string& configuration_name, + SubscriptionService* subscription_service, + PrefService* pref_service) @@ -657,14 +659,14 @@ new file mode 100644 + +void FilteringConfigurationAndroid::AddAllowedDomain( + JNIEnv* env, -+ const JavaParamRef& allowed_domain) { ++ const JavaRef& allowed_domain) { + filtering_configuration_ptr->AddAllowedDomain( + ConvertJavaStringToUTF8(allowed_domain)); +} + +void FilteringConfigurationAndroid::RemoveAllowedDomain( + JNIEnv* env, -+ const JavaParamRef& allowed_domain) { ++ const JavaRef& allowed_domain) { + filtering_configuration_ptr->RemoveAllowedDomain( + ConvertJavaStringToUTF8(allowed_domain)); +} @@ -677,14 +679,14 @@ new file mode 100644 + +void FilteringConfigurationAndroid::AddCustomFilter( + JNIEnv* env, -+ const JavaParamRef& custom_filter) { ++ const JavaRef& custom_filter) { + filtering_configuration_ptr->AddCustomFilter( + ConvertJavaStringToUTF8(custom_filter)); +} + +void FilteringConfigurationAndroid::RemoveCustomFilter( + JNIEnv* env, -+ const JavaParamRef& custom_filter) { ++ const JavaRef& custom_filter) { + filtering_configuration_ptr->RemoveCustomFilter( + ConvertJavaStringToUTF8(custom_filter)); +} @@ -697,14 +699,14 @@ new file mode 100644 + +void FilteringConfigurationAndroid::AddFilterList( + JNIEnv* env, -+ const JavaParamRef& url) { ++ const JavaRef& url) { + filtering_configuration_ptr->AddFilterList( + GURL{ConvertJavaStringToUTF8(url)}); +} + +void FilteringConfigurationAndroid::RemoveFilterList( + JNIEnv* env, -+ const JavaParamRef& url) { ++ const JavaRef& url) { + filtering_configuration_ptr->RemoveFilterList( + GURL{ConvertJavaStringToUTF8(url)}); +} @@ -726,9 +728,9 @@ new file mode 100644 + +static jlong JNI_FilteringConfiguration_Create( + JNIEnv* env, -+ const JavaParamRef& jcontroller, -+ const JavaParamRef& jstring, -+ const JavaParamRef& jbrowser_context_handle) { ++ const JavaRef& jcontroller, ++ const JavaRef& jstring, ++ const JavaRef& jbrowser_context_handle) { + DCHECK(!jcontroller.is_null()); + DCHECK(!jbrowser_context_handle.is_null()); + auto* context = @@ -742,7 +744,7 @@ new file mode 100644 +static ScopedJavaLocalRef +JNI_FilteringConfiguration_GetConfigurations( + JNIEnv* env, -+ const JavaParamRef& jbrowser_context_handle) { ++ const JavaRef& jbrowser_context_handle) { + std::vector configurations; + std::ranges::transform( + adblock::SubscriptionServiceFactory::GetForBrowserContext( @@ -755,7 +757,7 @@ new file mode 100644 + +static jboolean JNI_FilteringConfiguration_IsAutoInstallEnabled( + JNIEnv* env, -+ const JavaParamRef& jbrowser_context_handle) { ++ const JavaRef& jbrowser_context_handle) { + return adblock::SubscriptionServiceFactory::GetForBrowserContext( + content::BrowserContextFromJavaHandle(jbrowser_context_handle)) + ->IsAutoInstallEnabled() @@ -766,11 +768,13 @@ new file mode 100644 +static void JNI_FilteringConfiguration_SetAutoInstallEnabled( + JNIEnv* env, + jboolean j_enabled, -+ const JavaParamRef& jbrowser_context_handle) { ++ const JavaRef& jbrowser_context_handle) { + adblock::SubscriptionServiceFactory::GetForBrowserContext( + content::BrowserContextFromJavaHandle(jbrowser_context_handle)) + ->SetAutoInstallEnabled(j_enabled == JNI_TRUE); +} ++ ++DEFINE_JNI(FilteringConfiguration) diff --git a/components/adblock/android/filtering_configuration_android.h b/components/adblock/android/filtering_configuration_android.h new file mode 100644 --- /dev/null @@ -813,7 +817,7 @@ new file mode 100644 + public: + explicit FilteringConfigurationAndroid( + JNIEnv* env, -+ const base::android::JavaParamRef& jcontroller, ++ const base::android::JavaRef& jcontroller, + const std::string& configuration_name, + adblock::SubscriptionService* subscription_service, + PrefService* pref_service); @@ -823,21 +827,21 @@ new file mode 100644 + void SetEnabled(JNIEnv* env, jboolean j_enabled); + jboolean IsEnabled(JNIEnv* env) const; + void AddFilterList(JNIEnv* env, -+ const base::android::JavaParamRef& url); ++ const base::android::JavaRef& url); + void RemoveFilterList(JNIEnv* env, -+ const base::android::JavaParamRef& url); ++ const base::android::JavaRef& url); + base::android::ScopedJavaLocalRef GetFilterLists( + JNIEnv* env) const; + void AddAllowedDomain(JNIEnv* env, -+ const base::android::JavaParamRef& domain); ++ const base::android::JavaRef& domain); + void RemoveAllowedDomain(JNIEnv* env, -+ const base::android::JavaParamRef& domain); ++ const base::android::JavaRef& domain); + base::android::ScopedJavaLocalRef GetAllowedDomains( + JNIEnv* env) const; + void AddCustomFilter(JNIEnv* env, -+ const base::android::JavaParamRef& filter); ++ const base::android::JavaRef& filter); + void RemoveCustomFilter(JNIEnv* env, -+ const base::android::JavaParamRef& filter); ++ const base::android::JavaRef& filter); + base::android::ScopedJavaLocalRef GetCustomFilters( + JNIEnv* env) const; + @@ -1641,7 +1645,7 @@ new file mode 100644 + } + + @NativeMethods -+ interface Natives { ++ public interface Natives { + void destroy(long nativeFilteringConfigurationAndroid); + + void setEnabled(long nativeFilteringConfigurationAndroid, boolean enabled); @@ -5707,7 +5711,7 @@ diff --git a/components/adblock/android/resource_classification_notifier_android new file mode 100644 --- /dev/null +++ b/components/adblock/android/resource_classification_notifier_android.cc -@@ -0,0 +1,163 @@ +@@ -0,0 +1,166 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -5731,16 +5735,17 @@ new file mode 100644 +#include "base/android/jni_array.h" +#include "base/android/jni_string.h" +#include "base/android/jni_weak_ref.h" -+#include "components/adblock/android/jni_headers/ResourceClassificationNotifier_jni.h" +#include "components/adblock/content/browser/factories/resource_classification_runner_factory.h" +#include "components/adblock/core/common/adblock_utils.h" +#include "content/public/browser/android/browser_context_handle.h" +#include "content/public/browser/render_process_host.h" +#include "content/public/browser/web_contents.h" + ++#include "components/adblock/android/jni_headers/ResourceClassificationNotifier_jni.h" ++ +using base::android::AttachCurrentThread; +using base::android::ConvertUTF8ToJavaString; -+using base::android::JavaParamRef; ++using base::android::JavaRef; +using base::android::ScopedJavaLocalRef; +using base::android::ToJavaArrayOfStrings; + @@ -5748,7 +5753,7 @@ new file mode 100644 + +ResourceClassificationNotifierAndroid::ResourceClassificationNotifierAndroid( + JNIEnv* env, -+ const JavaParamRef& jcontroller, ++ const JavaRef& jcontroller, + ResourceClassificationRunner* classification_runner) + : classification_runner_(classification_runner), + java_weak_controller_(env, jcontroller) { @@ -5794,7 +5799,7 @@ new file mode 100644 + render_frame_host->GetGlobalId(); + Java_ResourceClassificationNotifier_requestMatchedCallback( + env, java_controller, j_url, was_blocked, j_parents, j_subscription, -+ j_configuration, static_cast(content_type), rfh_id.child_id, ++ j_configuration, static_cast(content_type), rfh_id.child_id.GetUnsafeValue(), + rfh_id.frame_routing_id); + } +} @@ -5820,7 +5825,7 @@ new file mode 100644 + render_frame_host->GetGlobalId(); + Java_ResourceClassificationNotifier_pageAllowedCallback( + env, java_controller, j_url, j_subscription, j_configuration, -+ rfh_id.child_id, rfh_id.frame_routing_id); ++ rfh_id.child_id.GetUnsafeValue(), rfh_id.frame_routing_id); + } +} + @@ -5853,7 +5858,7 @@ new file mode 100644 + render_frame_host->GetGlobalId(); + Java_ResourceClassificationNotifier_popupMatchedCallback( + env, java_controller, j_url, was_blocked, j_opener, j_subscription, -+ j_configuration, rfh_id.child_id, rfh_id.frame_routing_id); ++ j_configuration, rfh_id.child_id.GetUnsafeValue(), rfh_id.frame_routing_id); + } +} + @@ -5861,8 +5866,8 @@ new file mode 100644 + +static jlong JNI_ResourceClassificationNotifier_Create( + JNIEnv* env, -+ const JavaParamRef& jcontroller, -+ const base::android::JavaParamRef& jbrowser_context_handle) { ++ const JavaRef& jcontroller, ++ const base::android::JavaRef& jbrowser_context_handle) { + DCHECK(!jcontroller.is_null()); + DCHECK(!jbrowser_context_handle.is_null()); + return reinterpret_cast( @@ -5871,6 +5876,8 @@ new file mode 100644 + adblock::ResourceClassificationRunnerFactory::GetForBrowserContext( + content::BrowserContextFromJavaHandle(jbrowser_context_handle)))); +} ++ ++DEFINE_JNI(ResourceClassificationNotifier) diff --git a/components/adblock/android/resource_classification_notifier_android.h b/components/adblock/android/resource_classification_notifier_android.h new file mode 100644 --- /dev/null @@ -5910,7 +5917,7 @@ new file mode 100644 + public: + ResourceClassificationNotifierAndroid( + JNIEnv* env, -+ const base::android::JavaParamRef& jcontroller, ++ const base::android::JavaRef& jcontroller, + ResourceClassificationRunner* classification_runner); + ~ResourceClassificationNotifierAndroid() override; + 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 fc2d4760..15ab15c5 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 -@@ -266,6 +266,10 @@ if (_is_default_toolchain) { +@@ -267,6 +267,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" ] } -@@ -805,6 +809,10 @@ if (_is_default_toolchain) { +@@ -799,6 +803,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 fedf73c1..961d3e53 100644 --- a/build/patches/eyeo-133.0.6943.49-base.patch +++ b/build/patches/eyeo-133.0.6943.49-base.patch @@ -719,7 +719,7 @@ diff --git a/DEPS b/DEPS + # If you change this, also update the libc++ revision in # //buildtools/deps_revisions.gni. - 'libcxx_revision': '07572e7b169225ef3a999584cba9d9004631ae66', + 'libcxx_revision': '7ab65651aed6802d2599dcb7a73b1f82d5179d05', @@ -1628,6 +1634,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' + '@' + 'd9a0c174b535ee5165fb8ef278324be9efa49352', + 'url': Var('chromium_git') + '/website.git' + '@' + 'cb33846322e88ba1acc3188c1daa4b00b94be767', }, diff --git a/LICENSE b/LICENSE --- a/LICENSE @@ -786,7 +786,7 @@ diff --git a/base/threading/thread_restrictions.h b/base/threading/thread_restri #ifndef BASE_THREADING_THREAD_RESTRICTIONS_H_ #define BASE_THREADING_THREAD_RESTRICTIONS_H_ -@@ -172,6 +176,9 @@ class OverlayProcessorWebView; +@@ -175,6 +179,9 @@ class OverlayProcessorWebView; class ScopedAllowInitGLBindings; class VizCompositorThreadRunnerWebView; } // namespace android_webview @@ -796,7 +796,7 @@ diff --git a/base/threading/thread_restrictions.h b/base/threading/thread_restri namespace ash { class LoginEventRecorder; class StartupCustomizationDocument; -@@ -658,6 +665,8 @@ class BASE_EXPORT ScopedAllowBlocking { +@@ -665,6 +672,8 @@ class BASE_EXPORT ScopedAllowBlocking { friend class ::BrowserStateDirectoryBuilder; #endif @@ -827,7 +827,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn "//components/affiliations/core/browser:unit_tests", "//components/aggregation_service:unit_tests", "//components/apdu:unit_tests", -@@ -1116,6 +1117,7 @@ if (use_blink) { +@@ -1120,6 +1121,7 @@ if (use_blink) { deps = [ "//base", "//base/test:test_support", @@ -50228,7 +50228,7 @@ diff --git a/content/browser/loader/navigation_url_loader_impl.cc b/content/brow #include "content/browser/loader/navigation_url_loader_impl.h" #include -@@ -1576,7 +1580,7 @@ void NavigationURLLoaderImpl::OnReceiveRedirect( +@@ -1570,7 +1574,7 @@ void NavigationURLLoaderImpl::OnReceiveRedirect( ? head->bypass_redirect_checks : bypass_redirect_checks_; @@ -50251,7 +50251,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" -@@ -3635,6 +3639,12 @@ void RenderFrameHostImpl::ExecuteJavaScriptMethod( +@@ -3711,6 +3715,12 @@ void RenderFrameHostImpl::ExecuteJavaScriptMethod( std::move(callback)); } @@ -50278,7 +50278,7 @@ 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_ -@@ -505,6 +509,10 @@ class CONTENT_EXPORT RenderFrameHostImpl +@@ -513,6 +517,10 @@ class CONTENT_EXPORT RenderFrameHostImpl const std::u16string& method_name, base::Value::List arguments, JavaScriptResultCallback callback) override; @@ -50303,7 +50303,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_ -@@ -558,6 +562,9 @@ class CONTENT_EXPORT RenderFrameHost : public IPC::Listener { +@@ -560,6 +564,9 @@ class CONTENT_EXPORT RenderFrameHost : public IPC::Listener { virtual void AddMessageToConsole(blink::mojom::ConsoleMessageLevel level, const std::string& message) = 0; @@ -50433,7 +50433,7 @@ diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn "//components/variations/service", "//components/web_cache/renderer", "//content:content_resources", -@@ -429,6 +440,7 @@ static_library("content_shell_lib") { +@@ -430,6 +441,7 @@ static_library("content_shell_lib") { "//mojo/public/java/system:test_support", "//ui/android", ] @@ -50441,7 +50441,7 @@ diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn } if (shell_use_toolkit_views) { -@@ -519,6 +531,8 @@ repack("pak") { +@@ -520,6 +532,8 @@ repack("pak") { sources = [ "$root_gen_dir/base/tracing/protos/tracing_proto_resources.pak", @@ -50450,7 +50450,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", -@@ -552,6 +566,8 @@ repack("pak") { +@@ -553,6 +567,8 @@ repack("pak") { deps = [ ":resources", "//base/tracing/protos:chrome_track_event_resources", @@ -50809,7 +50809,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 -@@ -474,7 +478,7 @@ void WebRequestProxyingURLLoaderFactory::InProgressRequest::OnReceiveRedirect( +@@ -468,7 +472,7 @@ void WebRequestProxyingURLLoaderFactory::InProgressRequest::OnReceiveRedirect( head->bypass_redirect_checks = true; } @@ -50879,7 +50879,7 @@ diff --git a/third_party/blink/public/mojom/frame/frame.mojom b/third_party/blin module blink.mojom; -@@ -1028,6 +1032,10 @@ interface LocalFrame { +@@ -1007,6 +1011,10 @@ interface LocalFrame { // the given point in the view coordinate space. PluginActionAt(gfx.mojom.Point location, blink.mojom.PluginActionType action); @@ -50904,7 +50904,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_ -@@ -152,6 +156,14 @@ class BLINK_EXPORT WebDocument : public WebNode { +@@ -154,6 +158,14 @@ class BLINK_EXPORT WebDocument : public WebNode { WebCssOrigin = WebCssOrigin::kAuthor, BackForwardCacheAware = BackForwardCacheAware::kAllow); @@ -51059,7 +51059,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 -@@ -2842,7 +2842,13 @@ void HTMLElement::setSpellcheck(bool enable) { +@@ -2917,7 +2917,13 @@ void HTMLElement::setSpellcheck(bool enable) { } void HTMLElement::click() { @@ -51740,7 +51740,7 @@ diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ # across all the grd files. If you are adding a new grd file, please add @@ -1260,6 +1264,14 @@ "components/user_scripts/browser/resources/browser_resources.grd": { - "includes": [7620], + "includes": [7625], }, + "components/adblock/core/resources/adblock_resources.grd": { + "META": {"sizes": {"includes": [10],}}, @@ -51776,7 +51776,7 @@ diff --git a/tools/metrics/histograms/metadata/extensions/enums.xml b/tools/metr -@@ -3255,6 +3259,8 @@ Called by update_extension_permission.py.--> +@@ -3260,6 +3264,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 0d5f5145..35e5a544 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" -@@ -1597,7 +1602,7 @@ content::ContentClient* ChromeMainDelegate::CreateContentClient() { +@@ -1624,7 +1629,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") -@@ -206,6 +209,8 @@ static_library("browser") { +@@ -207,6 +210,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", -@@ -2103,6 +2108,7 @@ static_library("browser") { +@@ -2072,6 +2077,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", -@@ -8510,6 +8516,7 @@ static_library("browser_public_dependencies") { +@@ -8498,6 +8504,7 @@ static_library("browser_public_dependencies") { "//chrome/services/file_util/public/mojom", "//components/account_id", "//components/autofill/content/browser", @@ -186,7 +186,7 @@ diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_brows #include "chrome/browser/chrome_browser_main.h" -@@ -88,6 +92,7 @@ +@@ -90,6 +94,7 @@ #include "chrome/grit/branded_strings.h" #include "chrome/grit/generated_resources.h" #include "chrome/installer/util/google_update_settings.h" @@ -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" -@@ -1763,6 +1768,8 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { +@@ -1795,6 +1800,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") -@@ -488,6 +491,7 @@ source_set("extensions") { +@@ -485,6 +488,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", -@@ -830,6 +834,7 @@ source_set("extensions") { +@@ -824,6 +828,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" -@@ -254,6 +258,15 @@ +@@ -250,6 +254,15 @@ #include "chrome/browser/webid/federated_identity_permission_context_factory.h" #include "chrome/common/buildflags.h" #include "chrome/common/chrome_features.h" @@ -318,7 +318,7 @@ 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" -@@ -954,6 +967,15 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -940,6 +953,15 @@ void ChromeBrowserMainExtraPartsProfiles:: // Makes manual testing possible. FakeSmartCardDeviceServiceFactory::GetInstance(); #endif @@ -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") -@@ -307,6 +310,7 @@ group("dev_ui_resources") { +@@ -305,6 +308,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", -@@ -381,6 +385,7 @@ repack("dev_ui_paks") { +@@ -379,6 +383,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,8 +376,8 @@ 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") -@@ -408,6 +411,7 @@ static_library("ui") { - "//chrome/services/media_gallery_util/public/mojom", +@@ -411,6 +414,7 @@ static_library("ui") { + "//chrome/installer/util:with_no_strings", "//components/access_code_cast/common:metrics", "//components/account_id", + "//components/adblock/content:browser", @@ -435,16 +435,16 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc #include "chrome/browser/ui/tab_helpers.h" -@@ -104,6 +108,8 @@ +@@ -102,6 +106,8 @@ #include "chrome/common/chrome_features.h" #include "chrome/common/chrome_isolated_world_ids.h" #include "chrome/common/chrome_switches.h" +#include "components/adblock/content/browser/adblock_webcontents_observer.h" +#include "components/adblock/content/browser/factories/embedding_utils.h" - #include "components/autofill/content/browser/content_autofill_client.h" - #include "components/autofill/content/browser/content_autofill_driver_factory.h" - #include "components/autofill/core/browser/foundations/browser_autofill_manager.h" -@@ -341,6 +347,12 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { + #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) { 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); -@@ -369,6 +381,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -363,6 +375,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { // completions. HttpAuthCacheStatus::HttpAuthCacheStatus::CreateForWebContents(web_contents); #endif // BUILDFLAG(IS_ANDROID) @@ -478,22 +478,22 @@ diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni import("//ash/ambient/resources/resources.gni") import("//build/config/chrome_build.gni") -@@ -125,6 +128,7 @@ template("chrome_extra_paks") { - "$root_gen_dir/chrome/connectors_internals_resources.pak", +@@ -124,6 +127,7 @@ template("chrome_extra_paks") { + "$root_gen_dir/chrome/common_resources.pak", "$root_gen_dir/chrome/saved_tab_groups_unsupported_resources.pak", "$root_gen_dir/chrome/segmentation_internals_resources.pak", + "$root_gen_dir/components/adblock/core/resources/adblock_resources.pak", "$root_gen_dir/components/autofill/core/browser/geo/autofill_address_rewriter_resources.pak", "$root_gen_dir/components/autofill/core/browser/geo/autofill_alternative_state_name_map_resources.pak", "$root_gen_dir/components/autofill_and_password_manager_internals_resources.pak", -@@ -165,6 +169,7 @@ template("chrome_extra_paks") { - "//chrome/browser/resources/connectors_internals:resources", +@@ -164,6 +168,7 @@ template("chrome_extra_paks") { + "//chrome/browser/resources", "//chrome/browser/resources/saved_tab_groups_unsupported:resources", "//chrome/common:resources", + "//components/adblock/core/resources:adblock_resources", "//components/autofill/core/browser:autofill_address_rewriter_resources", "//components/autofill/core/browser:autofill_alternative_state_name_map_resources", - "//components/metrics:server_urls_grd", + "//components/enterprise/connectors/resources", diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn --- a/chrome/common/BUILD.gn +++ b/chrome/common/BUILD.gn 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 ec16d19d..43d22daf 100644 --- a/build/patches/eyeo-133.0.6943.49-extension_api.patch +++ b/build/patches/eyeo-133.0.6943.49-extension_api.patch @@ -72,7 +72,7 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module 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 -@@ -834,6 +834,17 @@ source_set("extensions") { +@@ -828,6 +828,17 @@ source_set("extensions") { ] } @@ -103,7 +103,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") -@@ -139,6 +142,7 @@ function_registration("api_registration") { +@@ -142,6 +145,7 @@ function_registration("api_registration") { # include generated headers from these targets. # TODO(brettw) this should be made unnecessary if possible. "//chrome/common/extensions/api", @@ -2138,7 +2138,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" -@@ -33,10 +37,12 @@ +@@ -35,10 +39,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 +2151,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" -@@ -106,6 +112,8 @@ void EnsureApiBrowserContextKeyedServiceFactoriesBuilt() { +@@ -109,6 +115,8 @@ void EnsureApiBrowserContextKeyedServiceFactoriesBuilt() { #if BUILDFLAG(ENABLE_EXTENSIONS) extensions::ActivityLogAPI::GetFactoryInstance(); @@ -3872,7 +3872,7 @@ diff --git a/chrome/common/extensions/api/api_sources.gni b/chrome/common/extens import("//chrome/common/features.gni") import("//pdf/features.gni") -@@ -38,6 +41,8 @@ schema_sources_ = [ +@@ -40,6 +43,8 @@ schema_sources_ = [ "tabs.json", "web_authentication_proxy.webidl", "web_navigation.json", @@ -4139,7 +4139,7 @@ diff --git a/chrome/common/extensions/permissions/permission_set_unittest.cc b/c #include "extensions/common/permissions/permission_set.h" -@@ -891,6 +895,10 @@ TEST(PermissionsTest, PermissionMessages) { +@@ -896,6 +900,10 @@ TEST(PermissionsTest, PermissionMessages) { skip.insert(APIPermissionID::kSystemLog); skip.insert(APIPermissionID::kOdfsConfigPrivate); @@ -4153,7 +4153,7 @@ diff --git a/chrome/common/extensions/permissions/permission_set_unittest.cc b/c diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn -@@ -4291,6 +4291,20 @@ if (!is_android) { +@@ -4335,6 +4335,20 @@ if (!is_android) { ] } diff --git a/build/patches/kill-Vision.patch b/build/patches/kill-Vision.patch index 16de9ca7..bb9e02a2 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 -@@ -295,8 +295,6 @@ if (_is_default_toolchain) { +@@ -296,8 +296,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/profile-resetter-disable-send-settings.patch b/build/patches/profile-resetter-disable-send-settings.patch index bec165fe..1642caf9 100644 --- a/build/patches/profile-resetter-disable-send-settings.patch +++ b/build/patches/profile-resetter-disable-send-settings.patch @@ -18,7 +18,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/profile_resetter/reset_report_uploader.cc b/chrome/browser/profile_resetter/reset_report_uploader.cc --- a/chrome/browser/profile_resetter/reset_report_uploader.cc +++ b/chrome/browser/profile_resetter/reset_report_uploader.cc -@@ -22,7 +22,7 @@ +@@ -23,7 +23,7 @@ namespace { const char kResetReportUrl[] = diff --git a/build/patches/translate-disable-fetching-of-languages-from-server.patch b/build/patches/translate-disable-fetching-of-languages-from-server.patch index ba5a0aab..448cf928 100644 --- a/build/patches/translate-disable-fetching-of-languages-from-server.patch +++ b/build/patches/translate-disable-fetching-of-languages-from-server.patch @@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/components/translate/core/browser/translate_language_list.cc b/components/translate/core/browser/translate_language_list.cc --- a/components/translate/core/browser/translate_language_list.cc +++ b/components/translate/core/browser/translate_language_list.cc -@@ -393,6 +393,7 @@ GURL TranslateLanguageList::TranslateLanguageUrl() { +@@ -392,6 +392,7 @@ GURL TranslateLanguageList::TranslateLanguageUrl() { } void TranslateLanguageList::RequestLanguageList() { @@ -18,7 +18,7 @@ diff --git a/components/translate/core/browser/translate_language_list.cc b/comp // If resource requests are not allowed, we'll get a callback when they are. if (!resource_requests_allowed_) { request_pending_ = true; -@@ -422,6 +423,7 @@ void TranslateLanguageList::RequestLanguageList() { +@@ -421,6 +422,7 @@ void TranslateLanguageList::RequestLanguageList() { if (!result) NotifyEvent(__LINE__, "Request is omitted due to retry limit"); } diff --git a/build/patches/ungoogled-chromium-Disable-Network-Time-Tracker.patch b/build/patches/ungoogled-chromium-Disable-Network-Time-Tracker.patch index 0368bec0..9029d38a 100644 --- a/build/patches/ungoogled-chromium-Disable-Network-Time-Tracker.patch +++ b/build/patches/ungoogled-chromium-Disable-Network-Time-Tracker.patch @@ -9,8 +9,8 @@ Fixes https://github.com/Eloston/ungoogled-chromium/issues/302 License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - components/network_time/network_time_tracker.cc | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) + components/network_time/network_time_tracker.cc | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/components/network_time/network_time_tracker.cc b/components/network_time/network_time_tracker.cc --- a/components/network_time/network_time_tracker.cc @@ -23,11 +23,12 @@ diff --git a/components/network_time/network_time_tracker.cc b/components/networ namespace { -@@ -300,7 +301,7 @@ void NetworkTimeTracker::UpdateNetworkTime(base::Time network_time, +@@ -324,8 +325,7 @@ void NetworkTimeTracker::UpdateNetworkTime(base::Time network_time, } bool NetworkTimeTracker::AreTimeFetchesEnabled() const { -- return base::FeatureList::IsEnabled(kNetworkTimeServiceQuerying); +- return is_initialized() && +- base::FeatureList::IsEnabled(kNetworkTimeServiceQuerying); + return false; } diff --git a/build/patches/ungoogled-chromium-Disable-profile-avatar.patch b/build/patches/ungoogled-chromium-Disable-profile-avatar.patch index 66049538..4d32dac1 100644 --- a/build/patches/ungoogled-chromium-Disable-profile-avatar.patch +++ b/build/patches/ungoogled-chromium-Disable-profile-avatar.patch @@ -14,8 +14,8 @@ 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 -@@ -1249,8 +1249,6 @@ static_library("browser") { - "profiles/incognito_mode_policy_handler.h", +@@ -1224,8 +1224,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", - "profiles/profile_avatar_downloader.cc", @@ -26,7 +26,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn 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 -@@ -381,12 +381,6 @@ gfx::Image ProfileAttributesEntry::GetAvatarIcon( +@@ -380,12 +380,6 @@ gfx::Image ProfileAttributesEntry::GetAvatarIcon( int size_for_placeholder_avatar, bool use_high_res_file, const PlaceholderAvatarIconParams& icon_params) const { diff --git a/build/patches/ungoogled-chromium-Disable-translate-integration.patch b/build/patches/ungoogled-chromium-Disable-translate-integration.patch index 561b78be..609d1216 100644 --- a/build/patches/ungoogled-chromium-Disable-translate-integration.patch +++ b/build/patches/ungoogled-chromium-Disable-translate-integration.patch @@ -6,18 +6,18 @@ Remove translate offer License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../xml/languages_detailed_preferences.xml | 42 ---------------- - .../java/res/xml/languages_preferences.xml | 5 -- - .../language/settings/LanguageSettings.java | 50 +------------------ - .../strings/android_chrome_strings.grd | 3 -- - .../core/browser/translate_manager.cc | 5 +- - .../core/browser/translate_script.cc | 17 ++----- - 6 files changed, 10 insertions(+), 112 deletions(-) + .../xml/languages_detailed_preferences.xml | 41 ----- + .../java/res/xml/languages_preferences.xml | 4 - + .../language/settings/LanguageSettings.java | 153 ------------------ + .../strings/android_chrome_strings.grd | 3 - + .../core/browser/translate_manager.cc | 5 +- + .../core/browser/translate_script.cc | 17 +- + 6 files changed, 8 insertions(+), 215 deletions(-) diff --git a/chrome/browser/language/android/java/res/xml/languages_detailed_preferences.xml b/chrome/browser/language/android/java/res/xml/languages_detailed_preferences.xml --- a/chrome/browser/language/android/java/res/xml/languages_detailed_preferences.xml +++ b/chrome/browser/language/android/java/res/xml/languages_detailed_preferences.xml -@@ -39,46 +39,4 @@ found in the LICENSE file. +@@ -39,45 +39,4 @@ found in the LICENSE file. @@ -30,8 +30,7 @@ diff --git a/chrome/browser/language/android/java/res/xml/languages_detailed_pre - - - @@ -67,28 +66,27 @@ diff --git a/chrome/browser/language/android/java/res/xml/languages_detailed_pre diff --git a/chrome/browser/language/android/java/res/xml/languages_preferences.xml b/chrome/browser/language/android/java/res/xml/languages_preferences.xml --- a/chrome/browser/language/android/java/res/xml/languages_preferences.xml +++ b/chrome/browser/language/android/java/res/xml/languages_preferences.xml -@@ -18,9 +18,4 @@ found in the LICENSE file. +@@ -18,8 +18,4 @@ found in the LICENSE file. android:layout="@layout/languages_preference" android:widgetLayout="@layout/accept_languages_list" /> - +- android:title="@string/languages_offer_translate_switch" /> - 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 -@@ -30,7 +30,6 @@ import org.chromium.chrome.browser.preferences.PrefServiceUtil; - import org.chromium.chrome.browser.settings.ChromeBaseSettingsFragment; +@@ -33,7 +33,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; -import org.chromium.chrome.browser.translate.TranslateBridge; import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; import org.chromium.components.browser_ui.settings.SettingsUtils; - import org.chromium.components.prefs.PrefChangeRegistrar; -@@ -54,12 +53,6 @@ public class LanguageSettings extends ChromeBaseSettingsFragment + import org.chromium.components.browser_ui.settings.search.SettingsIndexData; +@@ -58,12 +57,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"; @@ -101,7 +99,7 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse private static final String TAG = "LanguageSettings"; -@@ -107,35 +100,6 @@ public class LanguageSettings extends ChromeBaseSettingsFragment +@@ -111,35 +104,6 @@ public class LanguageSettings extends ChromeBaseSettingsFragment ContentLanguagesPreference mLanguageListPref = (ContentLanguagesPreference) findPreference(PREFERRED_LANGUAGES_KEY); mLanguageListPref.initialize(this, getProfile(), getPrefService()); @@ -137,7 +135,7 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse } /** -@@ -150,8 +114,6 @@ public class LanguageSettings extends ChromeBaseSettingsFragment +@@ -154,8 +118,6 @@ public class LanguageSettings extends ChromeBaseSettingsFragment ContentLanguagesPreference mLanguageListPref = (ContentLanguagesPreference) findPreference(CONTENT_LANGUAGES_KEY); mLanguageListPref.initialize(this, getProfile(), getPrefService()); @@ -146,25 +144,103 @@ 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. */ -@@ -182,7 +144,7 @@ public class LanguageSettings extends ChromeBaseSettingsFragment - * @param contentLanguagesPreference ContentLanguagesPreference reference to update about state - * changes. - */ -- private void setupTranslateSection(ContentLanguagesPreference contentLanguagesPreference) { -+/* private void setupTranslateSection(ContentLanguagesPreference contentLanguagesPreference) { - // Setup expandable advanced settings section. - PreferenceCategory translationAdvancedSection = - (PreferenceCategory) findPreference(TRANSLATION_ADVANCED_SECTION); -@@ -260,7 +222,7 @@ public class LanguageSettings extends ChromeBaseSettingsFragment - return getPrefService().isManagedPreference(Pref.OFFER_TRANSLATE_ENABLED); - } - }); -- } -+ } */ +@@ -179,95 +141,6 @@ public class LanguageSettings extends ChromeBaseSettingsFragment + mAppLanguageDelegate.setup(this, appLanguagePreference, getProfile()); + } +- /** +- * Setup the translate preferences section. A switch preferences controls if translate is +- * enabled/disabled and will hide all advanced settings when disabled. +- * +- * @param contentLanguagesPreference ContentLanguagesPreference reference to update about state +- * changes. +- */ +- private void setupTranslateSection(ContentLanguagesPreference contentLanguagesPreference) { +- // Setup expandable advanced settings section. +- PreferenceCategory translationAdvancedSection = +- (PreferenceCategory) findPreference(TRANSLATION_ADVANCED_SECTION); +- translationAdvancedSection.setOnExpandButtonClickListener( +- () -> { +- // Lambda for PreferenceGroup.OnExpandButtonClickListener. +- LanguagesManager.recordImpression( +- LanguagesManager.LanguageSettingsPageType.ADVANCED_LANGUAGE_SETTINGS); +- }); +- translationAdvancedSection.setVisible( +- getPrefService().getBoolean(Pref.OFFER_TRANSLATE_ENABLED)); +- +- // Setup target language preference. +- LanguageItemPickerPreference targetLanguagePreference = +- (LanguageItemPickerPreference) findPreference(TARGET_LANGUAGE_KEY); +- targetLanguagePreference.setLanguageItem( +- getProfile(), TranslateBridge.getTargetLanguageForChromium(getProfile())); +- setSelectLanguageLauncher( +- targetLanguagePreference, +- LanguagesManager.LanguageListType.TARGET_LANGUAGES, +- REQUEST_CODE_CHANGE_TARGET_LANGUAGE, +- LanguagesManager.LanguageSettingsPageType.CHANGE_TARGET_LANGUAGE); +- mPrefChangeRegistrar.addObserver( +- Pref.PREF_TRANSLATE_RECENT_TARGET, +- () -> { +- targetLanguagePreference.setLanguageItem( +- getProfile(), +- TranslateBridge.getTargetLanguageForChromium(getProfile())); +- }); +- +- // Setup always translate preference. +- LanguageItemListPreference alwaysTranslatePreference = +- (LanguageItemListPreference) findPreference(ALWAYS_LANGUAGES_KEY); +- alwaysTranslatePreference.setFragmentListDelegate( +- new AlwaysTranslateListFragment.ListDelegate(getProfile())); +- mPrefChangeRegistrar.addObserver( +- Pref.PREF_ALWAYS_TRANSLATE_LIST, alwaysTranslatePreference); +- setLanguageListPreferenceClickListener(alwaysTranslatePreference); +- +- // Setup never translate preference. +- LanguageItemListPreference neverTranslatePreference = +- (LanguageItemListPreference) findPreference(NEVER_LANGUAGES_KEY); +- neverTranslatePreference.setFragmentListDelegate( +- new NeverTranslateListFragment.ListDelegate(getProfile())); +- mPrefChangeRegistrar.addObserver(Pref.BLOCKED_LANGUAGES, neverTranslatePreference); +- setLanguageListPreferenceClickListener(neverTranslatePreference); +- +- // Setup translate switch to toggle advanced section on and off. +- ChromeSwitchPreference translateSwitch = +- (ChromeSwitchPreference) findPreference(TRANSLATE_SWITCH_KEY); +- boolean isTranslateEnabled = getPrefService().getBoolean(Pref.OFFER_TRANSLATE_ENABLED); +- translateSwitch.setChecked(isTranslateEnabled); +- +- translateSwitch.setOnPreferenceChangeListener( +- new Preference.OnPreferenceChangeListener() { +- @Override +- public boolean onPreferenceChange(Preference preference, Object newValue) { +- boolean enabled = (boolean) newValue; +- getPrefService().setBoolean(Pref.OFFER_TRANSLATE_ENABLED, enabled); +- updateTranslateAdvancedSectionIndex(enabled, /* refreshResult= */ true); +- contentLanguagesPreference.notifyPrefChanged(); +- translationAdvancedSection.setVisible(enabled); +- notifyPreferencesUpdated(); +- LanguagesManager.recordAction( +- enabled +- ? LanguagesManager.LanguageSettingsActionType +- .ENABLE_TRANSLATE_GLOBALLY +- : LanguagesManager.LanguageSettingsActionType +- .DISABLE_TRANSLATE_GLOBALLY); +- return true; +- } +- }); +- translateSwitch.setManagedPreferenceDelegate( +- new ChromeManagedPreferenceDelegate(getProfile()) { +- @Override +- public boolean isPreferenceControlledByPolicy(Preference preference) { +- return getPrefService().isManagedPreference(Pref.OFFER_TRANSLATE_ENABLED); +- } +- }); +- } +- @Override public void onStart() { -@@ -315,17 +277,9 @@ public class LanguageSettings extends ChromeBaseSettingsFragment + super.onStart(); +@@ -321,17 +194,9 @@ public class LanguageSettings extends ChromeBaseSettingsFragment // Get the actual default system language to set as target language. code = GlobalAppLocaleController.getInstance().getOriginalSystemLocale().getLanguage(); } @@ -182,10 +258,34 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse } /** +@@ -479,23 +344,5 @@ public class LanguageSettings extends ChromeBaseSettingsFragment + + private static void updateTranslateAdvancedSectionIndex( + boolean enabled, boolean refreshResult) { +- var indexData = SettingsIndexData.getInstance(); +- if (indexData == null) return; +- +- String prefFrag = LanguageSettings.class.getName(); +- if (enabled) { +- indexData.addEntryForKey( +- prefFrag, TARGET_LANGUAGE_KEY, R.string.languages_settings_target); +- indexData.addEntryForKey( +- prefFrag, ALWAYS_LANGUAGES_KEY, R.string.languages_settings_automatic); +- indexData.addEntryForKey( +- prefFrag, NEVER_LANGUAGES_KEY, R.string.languages_settings_dont_offer_langs); +- indexData.resolveIndex(); // Restores the header of the added entries. +- } else { +- indexData.removeEntryForKey(prefFrag, TARGET_LANGUAGE_KEY); +- indexData.removeEntryForKey(prefFrag, ALWAYS_LANGUAGES_KEY); +- indexData.removeEntryForKey(prefFrag, NEVER_LANGUAGES_KEY); +- } +- if (refreshResult) indexData.setRefreshResult(true); + } + } 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 -@@ -1974,9 +1974,6 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1972,9 +1972,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-untraceable-URLs.patch b/build/patches/ungoogled-chromium-Disable-untraceable-URLs.patch index 70a43208..cdef67e2 100644 --- a/build/patches/ungoogled-chromium-Disable-untraceable-URLs.patch +++ b/build/patches/ungoogled-chromium-Disable-untraceable-URLs.patch @@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/android/rlz/rlz_ping_handler.cc b/chrome/browser/android/rlz/rlz_ping_handler.cc --- a/chrome/browser/android/rlz/rlz_ping_handler.cc +++ b/chrome/browser/android/rlz/rlz_ping_handler.cc -@@ -78,7 +78,7 @@ void RlzPingHandler::Ping( +@@ -76,7 +76,7 @@ void RlzPingHandler::Ping(const base::android::JavaRef& j_brand, DCHECK_EQ(id.length(), 50u); GURL request_url(base::StringPrintf( @@ -27,7 +27,7 @@ diff --git a/chrome/browser/android/rlz/rlz_ping_handler.cc b/chrome/browser/and diff --git a/rlz/lib/financial_ping.cc b/rlz/lib/financial_ping.cc --- a/rlz/lib/financial_ping.cc +++ b/rlz/lib/financial_ping.cc -@@ -240,6 +240,7 @@ bool FinancialPing::SetURLLoaderFactory( +@@ -238,6 +238,7 @@ bool FinancialPing::SetURLLoaderFactory( void PingRlzServer(std::string url, scoped_refptr event) { @@ -35,7 +35,7 @@ diff --git a/rlz/lib/financial_ping.cc b/rlz/lib/financial_ping.cc // Copy the pointer to stack because g_URLLoaderFactory may be set to NULL // in different thread. The instance is guaranteed to exist while // the method is running. -@@ -302,13 +303,13 @@ void PingRlzServer(std::string url, +@@ -300,13 +301,13 @@ void PingRlzServer(std::string url, FinancialPing::PingResponse FinancialPing::PingServer(const char* request, std::string* response) { diff --git a/build/patches/ungoogled-chromium-Disable-webRTC-log-uploader.patch b/build/patches/ungoogled-chromium-Disable-webRTC-log-uploader.patch index f5950fb6..131ed0d3 100644 --- a/build/patches/ungoogled-chromium-Disable-webRTC-log-uploader.patch +++ b/build/patches/ungoogled-chromium-Disable-webRTC-log-uploader.patch @@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html 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 -@@ -150,7 +150,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -148,7 +148,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { registry->RegisterStringPref(prefs::kWebRTCUDPPortRange, std::string()); registry->RegisterBooleanPref(prefs::kWebRtcEventLogCollectionAllowed, false); registry->RegisterListPref(prefs::kWebRtcLocalIpsAllowedUrls); diff --git a/build/patches/ungoogled-chromium-no-special-hosts-domains.patch b/build/patches/ungoogled-chromium-no-special-hosts-domains.patch index bdc7765a..9ea8922a 100644 --- a/build/patches/ungoogled-chromium-no-special-hosts-domains.patch +++ b/build/patches/ungoogled-chromium-no-special-hosts-domains.patch @@ -77,7 +77,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/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 -@@ -116,7 +116,6 @@ import org.chromium.chrome.browser.ntp_customization.NtpCustomizationUtils; +@@ -121,7 +121,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; @@ -85,7 +85,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi import org.chromium.chrome.browser.paint_preview.DemoPaintPreview; import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer; import org.chromium.chrome.browser.password_manager.PasswordManagerLauncher; -@@ -1427,10 +1426,8 @@ public class RootUiCoordinator +@@ -1439,10 +1438,8 @@ public class RootUiCoordinator Profile profile = tab.getProfile(); TemplateUrlService service = TemplateUrlServiceFactory.getForProfile(profile); String url = service.getUrlForSearchQuery(query); @@ -99,7 +99,7 @@ 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 -@@ -867,10 +867,6 @@ static_library("browser") { +@@ -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", @@ -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", -@@ -879,10 +875,6 @@ static_library("browser") { +@@ -864,10 +860,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,7 +121,7 @@ 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", -@@ -1483,8 +1475,6 @@ static_library("browser") { +@@ -1454,8 +1446,6 @@ static_library("browser") { "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", @@ -130,7 +130,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "supervised_user/supervised_user_interstitial_tab_closer.cc", "supervised_user/supervised_user_interstitial_tab_closer.h", "supervised_user/supervised_user_metrics_service_factory.cc", -@@ -1608,10 +1598,7 @@ static_library("browser") { +@@ -1570,10 +1560,7 @@ static_library("browser") { "//chrome/browser/content_settings:impl", "//chrome/browser/devtools", "//chrome/browser/favicon", @@ -141,7 +141,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "//chrome/browser/media/webrtc", "//chrome/browser/navigation_predictor:impl", -@@ -1794,7 +1781,6 @@ static_library("browser") { +@@ -1753,7 +1740,6 @@ static_library("browser") { # New dependencies inside of //chrome/browser that generate header files # should be added to browser_generated_files. ":browser_public_dependencies", @@ -152,7 +152,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/android/metrics/uma_session_stats.cc b/chrome/browser/android/metrics/uma_session_stats.cc --- a/chrome/browser/android/metrics/uma_session_stats.cc +++ b/chrome/browser/android/metrics/uma_session_stats.cc -@@ -296,16 +296,6 @@ static void JNI_UmaSessionStats_ChangeMetricsReportingConsent( +@@ -320,16 +320,6 @@ static void JNI_UmaSessionStats_ChangeMetricsReportingConsent( jint 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 -@@ -1275,7 +1275,6 @@ BrowserProcessImpl::component_updater() { +@@ -1336,7 +1336,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 -@@ -498,11 +498,6 @@ void ProcessSingletonNotificationCallbackImpl( +@@ -500,11 +500,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 -@@ -1950,11 +1945,6 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { +@@ -1985,11 +1980,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 -@@ -2925,7 +2925,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( +@@ -2927,7 +2927,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, -@@ -5735,7 +5734,8 @@ GetClientDataHeader(content::FrameTreeNodeId frame_tree_node_id) { +@@ -5727,7 +5726,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 -@@ -5775,7 +5775,7 @@ std::unique_ptr CreateGoogleURLLoaderThrottle( +@@ -5767,7 +5767,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( -@@ -5832,15 +5832,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottles( +@@ -5824,15 +5824,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); -@@ -5885,20 +5876,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottlesForKeepAlive( +@@ -5877,20 +5868,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottlesForKeepAlive( Profile* profile = Profile::FromBrowserContext(browser_context); DCHECK(profile); @@ -277,7 +277,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 -@@ -362,7 +362,6 @@ void CreateAndAddChromeThrottlesForNavigation( +@@ -361,7 +361,6 @@ void CreateAndAddChromeThrottlesForNavigation( extensions::WebViewGuest::MaybeCreateAndAddNavigationThrottle(registry); #endif @@ -365,10 +365,10 @@ 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 -@@ -519,7 +519,6 @@ source_set("extensions") { - "//chrome/browser/extensions:external_loader", +@@ -517,7 +517,6 @@ source_set("extensions") { "//chrome/browser/extensions/api:api_registration", "//chrome/browser/favicon", + "//chrome/browser/gcm", - "//chrome/browser/google", "//chrome/browser/history", "//chrome/browser/infobars", @@ -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 -@@ -635,7 +635,7 @@ ChromeMetricsServiceClient::GetNetworkTimeTracker() { +@@ -636,7 +636,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 -@@ -99,9 +99,6 @@ void PostStoreMetricsClientInfo(const metrics::ClientInfo& client_info) { +@@ -97,9 +97,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) -@@ -333,7 +330,7 @@ ChromeMetricsServicesManagerClient::GetMetricsStateManager() { +@@ -331,7 +328,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 -@@ -933,7 +933,6 @@ void SystemNetworkContextManager::ConfigureDefaultNetworkContextParams( +@@ -954,7 +954,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 -@@ -196,14 +196,9 @@ void PageLoadMetricsEmbedder::RegisterObservers( +@@ -195,14 +195,9 @@ void PageLoadMetricsEmbedder::RegisterObservers( tracker->AddObserver(std::make_unique()); tracker->AddObserver(std::make_unique()); tracker->AddObserver(std::make_unique()); @@ -720,7 +720,7 @@ diff --git a/chrome/browser/profile_resetter/profile_resetter.cc b/chrome/browse 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 -@@ -27,7 +27,6 @@ static_library("safe_browsing") { +@@ -29,7 +29,6 @@ static_library("safe_browsing") { "//build:branding_buildflags", "//chrome/app:generated_resources", "//chrome/browser:browser_process", @@ -756,32 +756,32 @@ diff --git a/chrome/browser/search_engines/ui_thread_search_terms_data.cc b/chro diff --git a/chrome/browser/signin/android/signin_manager_android.cc b/chrome/browser/signin/android/signin_manager_android.cc --- a/chrome/browser/signin/android/signin_manager_android.cc +++ b/chrome/browser/signin/android/signin_manager_android.cc -@@ -65,6 +65,7 @@ class ProfileDataRemover : public content::BrowsingDataRemover::Observer { +@@ -69,6 +69,7 @@ class ProfileDataRemover : public content::BrowsingDataRemover::Observer { remover_(profile->GetBrowsingDataRemover()) { remover_->AddObserver(this); -+ all_data = true; - if (all_data) { - chrome_browsing_data_remover::DataType removed_types = - chrome_browsing_data_remover::ALL_DATA_TYPES; -@@ -84,10 +85,6 @@ class ProfileDataRemover : public content::BrowsingDataRemover::Observer { ++ cleared_types = ClearedTypes::kAllData; + switch (cleared_types) { + case ClearedTypes::kGoogleServiceWorkerCaches: { + std::unique_ptr google_tld_filter = +@@ -77,10 +78,6 @@ class ProfileDataRemover : public content::BrowsingDataRemover::Observer { - // TODO(msramek): BrowsingDataFilterBuilder was not designed for - // large filters. Optimize it. -- for (const std::string& domain : -- google_util::GetGoogleRegistrableDomains()) { -- google_tld_filter->AddRegisterableDomain(domain); -- } + // TODO(msramek): BrowsingDataFilterBuilder was not designed for + // large filters. Optimize it. +- for (const std::string& domain : +- google_util::GetGoogleRegistrableDomains()) { +- google_tld_filter->AddRegisterableDomain(domain); +- } - remover_->RemoveWithFilterAndReply( - base::Time(), base::Time::Max(), + remover_->RemoveWithFilterAndReply( + base::Time(), base::Time::Max(), 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 -@@ -294,7 +294,6 @@ static_library("ui") { - "//chrome/browser/favicon", +@@ -297,7 +297,6 @@ static_library("ui") { "//chrome/browser/feedback:feedback_impl", "//chrome/browser/file_system_access", + "//chrome/browser/gcm", - "//chrome/browser/google", "//chrome/browser/history", "//chrome/browser/image_decoder", @@ -796,8 +796,8 @@ diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/andr - "java/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeader.java", - "java/src/org/chromium/chrome/browser/omnibox/geo/GeolocationTracker.java", "java/src/org/chromium/chrome/browser/omnibox/status/PageInfoIphController.java", + "java/src/org/chromium/chrome/browser/omnibox/status/PermissionStatusHandler.java", "java/src/org/chromium/chrome/browser/omnibox/status/StatusCoordinator.java", - "java/src/org/chromium/chrome/browser/omnibox/status/StatusIconView.java", 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 @@ -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; -@@ -537,7 +536,6 @@ public class LocationBarCoordinator +@@ -540,7 +539,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 -@@ -68,7 +68,6 @@ import org.chromium.chrome.browser.omnibox.UrlBarCoordinator.SelectionState; +@@ -70,7 +70,6 @@ import org.chromium.chrome.browser.omnibox.UrlBarCoordinator.SelectionState; 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; -@@ -419,22 +418,6 @@ class LocationBarMediator +@@ -421,22 +420,6 @@ class LocationBarMediator if (!mUrlFocusedWithoutAnimations) handleUrlFocusAnimation(hasFocus); @@ -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(), -@@ -451,8 +434,6 @@ class LocationBarMediator +@@ -453,8 +436,6 @@ class LocationBarMediator Profile profile = mProfileSupplier.get(); assert profile != null; templateUrlService.addObserver(this); @@ -860,7 +860,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow })); mLocationBarLayout.onFinishNativeInitialization(); -@@ -720,9 +701,6 @@ class LocationBarMediator +@@ -722,9 +703,6 @@ class LocationBarMediator LoadUrlParams loadUrlParams = new LoadUrlParams(url); try (TimingMetric record = TimingMetric.shortUptime("Android.Omnibox.SetGeolocationHeadersTime")) { @@ -870,7 +870,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow } loadUrlParams.setTransitionType( omniboxLoadUrlParams.transitionType | PageTransition.FROM_ADDRESS_BAR); -@@ -2044,7 +2022,6 @@ class LocationBarMediator +@@ -2067,7 +2045,6 @@ class LocationBarMediator if (OmniboxFeatures.sUseFusedLocationProvider.isEnabled() && profile != null && templateUrlService != null) { @@ -878,7 +878,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow } } -@@ -2052,7 +2029,6 @@ class LocationBarMediator +@@ -2075,7 +2052,6 @@ class LocationBarMediator public void onPauseWithNative() { OmniboxFeatures.updateLastExitTimestamp(); if (OmniboxFeatures.sUseFusedLocationProvider.isEnabled()) { @@ -900,7 +900,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 -@@ -747,12 +747,6 @@ content::WebUIDataSource* CreateAndAddNewTabPageUiHtmlSource(Profile* profile) { +@@ -773,12 +773,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 +964,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 -@@ -134,8 +134,6 @@ static_library("common_lib") { +@@ -145,8 +145,6 @@ static_library("common_lib") { "content_restriction.h", "crash_keys.cc", "crash_keys.h", @@ -1010,10 +1010,10 @@ 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 -@@ -6960,7 +6960,6 @@ test("unit_tests") { - "//chrome/browser/file_system_access", - "//chrome/browser/file_system_access:unit_tests", +@@ -6995,7 +6995,6 @@ test("unit_tests") { "//chrome/browser/first_party_sets", + "//chrome/browser/gcm", + "//chrome/browser/gcm:unit_tests", - "//chrome/browser/google:unit_tests", "//chrome/browser/media:unittests", "//chrome/browser/media/prefs", @@ -1728,7 +1728,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 -@@ -623,11 +623,7 @@ std::u16string TemplateURLRef::SearchTermToString16( +@@ -624,11 +624,7 @@ std::u16string TemplateURLRef::SearchTermToString16( bool TemplateURLRef::HasGoogleBaseURLs( const SearchTermsData& search_terms_data) const { @@ -1756,7 +1756,7 @@ diff --git a/components/search_provider_logos/BUILD.gn b/components/search_provi diff --git a/components/search_provider_logos/logo_service_impl.cc b/components/search_provider_logos/logo_service_impl.cc --- a/components/search_provider_logos/logo_service_impl.cc +++ b/components/search_provider_logos/logo_service_impl.cc -@@ -251,8 +251,7 @@ void LogoServiceImpl::GetLogo(LogoCallbacks callbacks, bool for_webui_ntp) { +@@ -247,8 +247,7 @@ void LogoServiceImpl::GetLogo(LogoCallbacks callbacks, bool for_webui_ntp) { GURL base_url; GURL doodle_url; @@ -1766,7 +1766,7 @@ diff --git a/components/search_provider_logos/logo_service_impl.cc b/components/ if (is_google) { // Note: Ideally the Google doodle URL would be specified in // prepopulated_engines.json, but there is some custom logic in -@@ -279,23 +278,12 @@ void LogoServiceImpl::GetLogo(LogoCallbacks callbacks, bool for_webui_ntp) { +@@ -275,23 +274,12 @@ void LogoServiceImpl::GetLogo(LogoCallbacks callbacks, bool for_webui_ntp) { clock_ = base::DefaultClock::GetInstance(); } @@ -1883,7 +1883,7 @@ diff --git a/components/url_matcher/url_util.cc b/components/url_matcher/url_uti - if (net::GetValueForKeyInQuery(url, "u", &embedded)) { - // The embedded URL may or may not include a scheme. Fix it if - // necessary. -- return url_formatter::FixupURL(embedded, /*desired_tld=*/std::string()); +- return url_formatter::FixupURL(embedded); - } - } - @@ -1967,7 +1967,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 -@@ -3114,7 +3114,7 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( +@@ -3100,7 +3100,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 28b3e847..856e46ad 100644 --- a/build/patches/webRTC-do-not-expose-local-IP-addresses.patch +++ b/build/patches/webRTC-do-not-expose-local-IP-addresses.patch @@ -18,7 +18,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html 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 -@@ -144,7 +144,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -142,7 +142,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { false); #endif registry->RegisterStringPref(prefs::kWebRTCIPHandlingPolicy, @@ -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 -@@ -1064,7 +1064,7 @@ PeerConnectionDependencyFactory::CreatePortAllocator( +@@ -1069,7 +1069,7 @@ PeerConnectionDependencyFactory::CreatePortAllocator( break; } diff --git a/build/patches/webview-Hard-no-to-persistent-histograms.patch b/build/patches/webview-Hard-no-to-persistent-histograms.patch index 1592ce41..1d339759 100644 --- a/build/patches/webview-Hard-no-to-persistent-histograms.patch +++ b/build/patches/webview-Hard-no-to-persistent-histograms.patch @@ -18,7 +18,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/android_webview/browser/aw_field_trials.cc b/android_webview/browser/aw_field_trials.cc --- a/android_webview/browser/aw_field_trials.cc +++ b/android_webview/browser/aw_field_trials.cc -@@ -36,12 +36,6 @@ +@@ -37,12 +37,6 @@ #include "ui/gl/gl_switches.h" void AwFieldTrials::OnVariationsSetupComplete() { diff --git a/tools/images/cromite-build/pre-start.sh b/tools/images/cromite-build/pre-start.sh index d71bae38..f6087cff 100644 --- a/tools/images/cromite-build/pre-start.sh +++ b/tools/images/cromite-build/pre-start.sh @@ -32,8 +32,18 @@ rm -rf /tmp/vpython* cd $WORKSPACE/chromium/src vpython3 -vpython-spec .vpython3 -vpython-root $VPYTHON_VIRTUALENV_ROOT -vpython-log-level debug -vpython-tool install vpython3 -vpython-spec ../../depot_tools/.vpython3 -vpython-root $VPYTHON_VIRTUALENV_ROOT -vpython-log-level debug -vpython-tool install +vpython3 -vpython-spec third_party/angle/.vpython3 -vpython-root $VPYTHON_VIRTUALENV_ROOT -vpython-log-level debug -vpython-tool install +vpython3 -vpython-spec third_party/catapult/.vpython3 -vpython-root $VPYTHON_VIRTUALENV_ROOT -vpython-log-level debug -vpython-tool install +vpython3 -vpython-spec third_party/webrtc/.vpython3 -vpython-root $VPYTHON_VIRTUALENV_ROOT -vpython-log-level debug -vpython-tool install +vpython3 -vpython-spec v8/.vpython3 -vpython-root $VPYTHON_VIRTUALENV_ROOT -vpython-log-level debug -vpython-tool install +vpython3 -vpython-spec v8/tools/.vpython3 -vpython-root $VPYTHON_VIRTUALENV_ROOT -vpython-log-level debug -vpython-tool install + +echo -e ${RED} -------- rollup devtools-frontend third_party ${NC} +cd $WORKSPACE/chromium/src +cd third_party/devtools-frontend/src ; vpython3 scripts/deps/sync_rollup_libs.py echo -e ${RED} -------- download pgo profiles ${NC} +cd $WORKSPACE/chromium/src python3 tools/update_pgo_profiles.py --target=android-arm64 update --gs-url-base=chromium-optimization-profiles/pgo_profiles python3 tools/update_pgo_profiles.py --target=android-arm32 update --gs-url-base=chromium-optimization-profiles/pgo_profiles python3 tools/update_pgo_profiles.py --target=win64 update --gs-url-base=chromium-optimization-profiles/pgo_profiles