From bfd5fc63c26e712d99cc3d98c6acf9dda5d341d8 Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Fri, 27 Mar 2026 15:09:49 +0100 Subject: [PATCH 1/9] Patches for v147 --- build/cromite_patches_list.txt | 1 - .../Add-AllowUserCertificates-flag.patch | 10 +- ...dd-Alt-D-hotkey-to-focus-address-bar.patch | 2 +- ...tialLowEndModeOnMidRangeDevices-flag.patch | 2 +- .../Add-a-flag-to-disable-GamePad-API.patch | 8 +- .../Add-a-proxy-configuration-page.patch | 38 ++- .../Add-an-always-incognito-mode.patch | 137 +++++----- build/patches/Add-cromite-flags-support.patch | 177 +++++++------ build/patches/Add-cromite-test-support.patch | 22 +- ...dd-custom-tab-intents-privacy-option.patch | 48 ++-- build/patches/Add-exit-menu-item.patch | 16 +- ...g-for-omnibox-autocomplete-filtering.patch | 2 +- .../Add-flag-to-disable-IPv6-probes.patch | 4 +- ...-to-disable-external-intent-requests.patch | 10 +- .../Add-flag-to-disable-vibration.patch | 8 +- ...-switch-for-unsupported-clangd-flags.patch | 8 +- ...Add-lifetime-options-for-permissions.patch | 38 +-- .../Add-menu-item-to-bookmark-all-tabs.patch | 78 +++--- .../Add-menu-item-to-view-source.patch | 12 +- .../Add-option-to-force-tablet-UI.patch | 46 ++-- ...-to-not-persist-tabs-across-sessions.patch | 18 +- .../Add-option-to-use-home-page-as-NTP.patch | 12 +- ...tting-to-enable-Credman-for-passkeys.patch | 26 +- ...d-setting-to-invert-tap-and-long-tap.patch | 50 ++-- build/patches/Add-site-engagement-flag.patch | 4 +- ...-support-for-ISupportHelpAndFeedback.patch | 2 +- .../Add-support-for-writing-URIs.patch | 2 +- ...ow-building-without-enable_reporting.patch | 18 +- ...ow-building-without-supervised-users.patch | 14 +- .../Allow-playing-audio-in-background.patch | 6 +- ...ays-open-browser-controls-in-new-tab.patch | 6 +- ...e-new-tab-page-for-default-home-page.patch | 4 +- .../patches/Android-Pixel-Perfect-Mode.patch | 221 ++++++++-------- ...roid-fonts-fingerprinting-mitigation.patch | 91 +++---- ...Ask-for-restart-on-connection-change.patch | 30 +-- ...ioBuffer-AnalyserNode-fp-mitigations.patch | 42 ++-- ...Block-gateway-attacks-via-websockets.patch | 6 +- ...k-leakage-of-urls-in-sandbox-iframes.patch | 8 +- .../Bookmarks-select-all-menu-entry.patch | 2 +- build/patches/Bromite-auto-updater.patch | 66 ++--- .../Bromite-subresource-adblocker.patch | 24 +- .../Bubble-Locking-on-UI-DevTools.patch | 6 +- .../patches/Chrome-web-store-protection.patch | 38 +-- ...ORS-Preflight-Cache-on-clearing-data.patch | 8 +- build/patches/Client-hints-overrides.patch | 12 +- .../patches/Close-Sessions-On-Ip-Change.patch | 2 +- ...ress-libchrome-to-free-up-some-space.patch | 2 +- ...romite-Branding--improve-settings-ui.patch | 6 +- build/patches/Cromite-Branding.patch | 48 ++-- ...ble-Accessibility-service-by-default.patch | 2 +- .../Disable-Android-Tab-Declutter.patch | 2 +- .../Disable-CSSDynamicRangeLimit.patch | 2 +- build/patches/Disable-Compose-feature.patch | 14 +- ...ble-Compression-Dictionary-Transport.patch | 2 +- .../Disable-Device-Attributes-API.patch | 4 +- build/patches/Disable-FedCm.patch | 4 +- build/patches/Disable-GSA-by-default.patch | 18 +- .../Disable-GetInstalledRelatedApps-API.patch | 4 +- build/patches/Disable-PrivacyGuide.patch | 2 +- build/patches/Disable-Real-Box.patch | 14 +- ...vation-Across-Same-Origin-Navigation.patch | 2 +- build/patches/Disable-Viewport-Segments.patch | 2 +- build/patches/Disable-WebGPU.patch | 4 +- .../patches/Disable-all-predictors-code.patch | 175 ++++++------- build/patches/Disable-all-promo-dialogs.patch | 83 ++---- .../Disable-conversion-measurement-api.patch | 44 ++-- build/patches/Disable-crash-reporting.patch | 6 +- build/patches/Disable-csp-reports.patch | 6 +- .../Disable-css-preferred-text-scale.patch | 6 +- .../Disable-device-bound-session.patch | 4 +- ...Disable-fetching-of-all-field-trials.patch | 36 +-- ...media-router-and-remoting-by-default.patch | 4 +- .../Disable-omission-of-URL-elements.patch | 6 +- .../patches/Disable-plugins-enumeration.patch | 2 +- .../Disable-prefers-reduced-motion.patch | 2 +- ...ers-reduced-transparency-media-query.patch | 2 +- ...e-privacy-issues-in-password-manager.patch | 2 +- build/patches/Disable-privacy-sandbox.patch | 18 +- ...e-references-to-fonts.googleapis.com.patch | 2 +- ...ble-remote-altsvc-for-h3-connections.patch | 4 +- build/patches/Disable-safety-check.patch | 38 +-- .../Disable-smart-selection-by-default.patch | 6 +- ...isable-some-signed-exchange-features.patch | 4 +- ...isable-speechSynthesis-getVoices-API.patch | 2 +- .../Disable-text-fragments-by-default.patch | 8 +- .../Disable-third-party-origin-trials.patch | 14 +- build/patches/Disable-various-metrics.patch | 8 +- .../Disable-visited-pseudo-class.patch | 10 +- ...allow-Android-App-Scheme-as-referrer.patch | 2 +- .../Do-not-compile-QR-code-sharing.patch | 22 +- .../patches/Do-not-link-with-libatomic.patch | 2 +- build/patches/DoH-improvements.patch | 21 +- ...ndroid-Dynamic-Performance-Framework.patch | 6 +- build/patches/Enable-Cert-Management-UI.patch | 2 +- .../Enable-ClientHello-Segmentation.patch | 20 +- .../Enable-Do-Not-Track-by-default.patch | 2 +- ...le-Document-Open-Inheritance-Removal.patch | 4 +- .../Enable-Global-Privacy-Control.patch | 26 +- build/patches/Enable-HEVC-by-default.patch | 2 +- ...able-Socket-Pool-Limit-Randomization.patch | 51 ---- ...ctOriginIsolation-and-SitePerProcess.patch | 14 +- build/patches/Enable-component-updater.patch | 26 +- ...e-darken-websites-checkbox-in-themes.patch | 2 +- ...fwrapv-in-Clang-for-non-UBSan-builds.patch | 2 +- .../patches/Enable-gwp-asan-on-Android.patch | 8 +- .../Enable-menu-on-reload-button.patch | 4 +- .../Enable-native-Android-autofill.patch | 74 ++---- .../Enable-network-isolation-features.patch | 12 +- ...le-platform-aac-audio-and-h264-video.patch | 8 +- ...le-search-engine-settings-desktop-ui.patch | 99 ++++---- build/patches/Enable-share-intent.patch | 28 +-- ...ivation-of-the-js-debugger-statement.patch | 26 +- .../Experimental-user-scripts-support.patch | 56 ++--- build/patches/Eyeo-Adblock-for-Cromite.patch | 63 +++-- build/patches/Fix-chromium-build-bugs.patch | 10 +- .../Fonts-fingerprinting-mitigation.patch | 4 +- .../Guard-for-user-agent-reduction.patch | 2 +- ...ing-against-incognito-mode-detection.patch | 14 +- ...story-number-of-days-privacy-setting.patch | 39 +-- ...shared-workers-when-closing-the-page.patch | 4 +- ...number-of-autocomplete-matches-to-10.patch | 2 +- build/patches/Internal-firewall.patch | 24 +- build/patches/JIT-site-settings.patch | 6 +- .../Keep-ComputePressure-disabled.patch | 2 +- .../patches/Keep-Manta-Service-Disabled.patch | 2 +- .../Keep-disabled-CpuPerformance.patch | 14 +- .../patches/Keep-disabled-FetchLaterAPI.patch | 4 +- .../Keep-empty-tabs-between-sessions.patch | 4 +- ...-allow-screenshots-in-Incognito-mode.patch | 2 +- build/patches/Keyboard-protection-flag.patch | 17 +- .../Lock-Profile-Cookie-Database.patch | 6 +- ...ing-attributes-in-some-html-elements.patch | 22 +- build/patches/Logcat-crash-reports-UI.patch | 14 +- .../patches/Modify-default-preferences.patch | 25 +- ...nt-settings-back-to-privacy-settings.patch | 12 +- ...ulti-Screen-Window-Placement-API-fix.patch | 22 +- .../Multiple-fingerprinting-mitigations.patch | 30 +-- ...er-treat-Proguard-warnings-as-errors.patch | 2 +- .../patches/Override-Navigator-Language.patch | 2 +- .../Override-the-MV2-deprecation.patch | 2 +- .../Partition-Blink-memory-cache.patch | 25 +- .../patches/Partition-HSTS-cache-by-NAK.patch | 40 +-- .../Partition-MediaDeviceId-by-default.patch | 4 +- .../Partition-blobs-by-top-frame-URL.patch | 2 +- ...ning-all-cookies-by-top-frame-domain.patch | 30 +-- .../patches/Permit-PGO-for-debug-builds.patch | 2 +- ...vate-network-access-content-settings.patch | 4 +- ...redential-fingerprinting-mitigations.patch | 6 +- ...-modal-dialog-flag-to-close-all-tabs.patch | 4 +- ...e-introduce-override_build_timestamp.patch | 2 +- ...ders-in-DoH-requests-to-bare-minimum.patch | 26 +- .../Remove-ChromiumNetworkAdapter.patch | 2 +- ...referrals-in-cross-origin-navigation.patch | 32 +-- .../Remove-binary-blob-integrations.patch | 121 +++++---- .../Remove-detection-of-captive-portals.patch | 2 +- build/patches/Remove-help-menu-item.patch | 26 +- .../Remove-segmentation-platform.patch | 6 +- ...t-for-device-memory-and-cpu-recovery.patch | 2 +- ...Remove-voice-recognition-integration.patch | 237 ++++++++---------- ...ndow-name-on-cross-origin-navigation.patch | 4 +- .../Restore-LastTabStandingTracker.patch | 14 +- .../Restore-Search-Ready-Omnibox-flag.patch | 4 +- .../Restore-Simplified-NTP-launch.patch | 115 ++++----- ...-button-in-top-toolbar-customization.patch | 16 +- .../Restore-chrome-password-store.patch | 66 ++--- .../Restore-offline-indicator-v2-flag.patch | 18 +- ...emove-disable-pull-to-refresh-effect.patch | 2 +- ...script-content-setting-secondary-url.patch | 18 +- .../Set-caret-blink-interval-to-default.patch | 2 +- .../Set-the-screen-frame-rate-to-60-Hz.patch | 20 +- build/patches/Show-NTP-at-startup.patch | 24 +- build/patches/Site-setting-for-images.patch | 14 +- ...gling-Ptr-Detection-via-BackupRefPtr.patch | 4 +- ...-Add-a-log-to-track-strange-behavior.patch | 2 +- .../Temp-disable-UseContextSnapshot.patch | 2 +- ...e-experimental-web-platform-features.patch | 8 +- ...Temp-disable-predictive-back-gesture.patch | 4 +- build/patches/Timezone-customization.patch | 14 +- .../Use-browser-navigation-handler.patch | 6 +- .../Use-list-mode-for-tab-switcher.patch | 36 +-- build/patches/User-agent-customization.patch | 87 +++---- build/patches/Viewport-Protection-flag.patch | 56 ++--- ...Add-some-prefs-to-secure-preferences.patch | 2 +- build/patches/WIN-enable-pdf-plugin.patch | 2 +- ...message-for-unsupported-hardware-aes.patch | 44 ++-- build/patches/Welcome-screen.patch | 24 +- build/patches/add-browser-policy.patch | 60 ++--- build/patches/autofill-miscellaneous.patch | 20 +- .../disable-WebView-variations-support.patch | 2 +- .../disable-appending-variations-header.patch | 21 +- ...IPv6-connectivity-probes-to-RIPE-DNS.patch | 2 +- ...ot-block-build-incompatible-profiles.patch | 2 +- .../enable-ftrivial-auto-var-init-zero.patch | 2 +- .../eyeo-133.0.6943.49-android_api.patch | 18 +- .../eyeo-133.0.6943.49-android_settings.patch | 10 +- ...yeo-133.0.6943.49-chrome_integration.patch | 48 ++-- .../eyeo-133.0.6943.49-extension_api.patch | 6 +- .../kill-Location-fall-back-to-system.patch | 4 +- build/patches/kill-Vision.patch | 2 +- ...hromium-Disable-Network-Time-Tracker.patch | 2 +- ...gled-chromium-Disable-profile-avatar.patch | 16 +- ...romium-Disable-translate-integration.patch | 14 +- ...chromium-Disable-webRTC-log-uploader.patch | 2 +- ...ed-chromium-no-special-hosts-domains.patch | 145 ++++++----- ...RTC-do-not-expose-local-IP-addresses.patch | 2 +- 205 files changed, 2072 insertions(+), 2365 deletions(-) delete mode 100644 build/patches/Enable-Socket-Pool-Limit-Randomization.patch diff --git a/build/cromite_patches_list.txt b/build/cromite_patches_list.txt index ab137a3b..3628b525 100644 --- a/build/cromite_patches_list.txt +++ b/build/cromite_patches_list.txt @@ -316,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 -Enable-Socket-Pool-Limit-Randomization.patch Disable-integration-with-Gemini.patch # adblock patches diff --git a/build/patches/Add-AllowUserCertificates-flag.patch b/build/patches/Add-AllowUserCertificates-flag.patch index af3760b9..8afc38e4 100644 --- a/build/patches/Add-AllowUserCertificates-flag.patch +++ b/build/patches/Add-AllowUserCertificates-flag.patch @@ -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; -@@ -1125,6 +1126,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -1134,6 +1135,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity super.onStartWithNative(); ChromeActivitySessionTracker.getInstance().onStartWithNative(getProfileProviderSupplier()); @@ -40,7 +40,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -202,6 +202,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -204,6 +204,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &feed::kFeedNoViewCache, &feed::kFeedPerformanceStudy, &feed::kFeedRecyclerBinderUnmountOnDetach, @@ -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"; // Don't clean up this flag yet, BCIV is launched, so this needs to be enabled by -@@ -797,6 +798,8 @@ public abstract class ChromeFeatureList { +@@ -801,6 +802,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 = -@@ -1131,6 +1134,7 @@ public abstract class ChromeFeatureList { - // keep-sorted start +@@ -1154,6 +1157,7 @@ public abstract class ChromeFeatureList { sAccountForSuppressedKeyboardInsets, sAndroidAnimatedProgressBarInBrowser, + sAndroidApb144Patch1, + sAllowUserCertificates, sAndroidAppIntegrationModule, sAndroidAppIntegrationMultiDataSource, 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 11c6db76..8326f07a 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 -@@ -941,6 +941,12 @@ public class KeyboardShortcuts { +@@ -935,6 +935,12 @@ public class KeyboardShortcuts { KeyEvent.KEYCODE_ESCAPE, KeyEvent.META_CTRL_ON); } diff --git a/build/patches/Add-PartialLowEndModeOnMidRangeDevices-flag.patch b/build/patches/Add-PartialLowEndModeOnMidRangeDevices-flag.patch index a337c99f..5080026d 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 -@@ -197,6 +197,10 @@ bool IsReducePPMsEnabled() { +@@ -198,6 +198,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 58d988cc..7461dba4 100644 --- a/build/patches/Add-a-flag-to-disable-GamePad-API.patch +++ b/build/patches/Add-a-flag-to-disable-GamePad-API.patch @@ -16,7 +16,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc --- a/content/child/runtime_features.cc +++ b/content/child/runtime_features.cc -@@ -266,6 +266,8 @@ void SetRuntimeFeaturesFromChromiumFeatures() { +@@ -241,6 +241,8 @@ void SetRuntimeFeaturesFromChromiumFeatures() { {wf::EnablePaymentApp, raw_ref(features::kServiceWorkerPaymentApps)}, {wf::EnablePeriodicBackgroundSync, raw_ref(features::kPeriodicBackgroundSync)}, @@ -40,7 +40,7 @@ new file mode 100644 diff --git a/device/gamepad/public/cpp/gamepad_features.cc b/device/gamepad/public/cpp/gamepad_features.cc --- a/device/gamepad/public/cpp/gamepad_features.cc +++ b/device/gamepad/public/cpp/gamepad_features.cc -@@ -59,4 +59,12 @@ bool IsGamepadMultitouchEnabled() { +@@ -63,4 +63,12 @@ bool IsGamepadMultitouchEnabled() { return false; } @@ -64,7 +64,7 @@ diff --git a/device/gamepad/public/cpp/gamepad_features.h b/device/gamepad/publi #if BUILDFLAG(IS_WIN) GAMEPAD_FEATURES_EXPORT BASE_DECLARE_FEATURE(kIgnorePS5GamepadsInWgi); -@@ -32,6 +33,7 @@ GAMEPAD_FEATURES_EXPORT BASE_DECLARE_FEATURE( +@@ -34,6 +35,7 @@ GAMEPAD_FEATURES_EXPORT BASE_DECLARE_FEATURE( #endif // BUILDFLAG(IS_APPLE) GAMEPAD_FEATURES_EXPORT bool IsGamepadMultitouchEnabled(); @@ -93,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. -@@ -432,6 +436,8 @@ void NavigatorGamepad::MaybeDispatchGamepadEvents( +@@ -433,6 +437,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 dca49004..a196d790 100644 --- a/build/patches/Add-a-proxy-configuration-page.patch +++ b/build/patches/Add-a-proxy-configuration-page.patch @@ -33,7 +33,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/ui/webui/chrome_web_ui_configs.cc | 5 +- chrome/browser/ui/webui/proxy_config_ui.cc | 389 ++++++++++++++++++ chrome/browser/ui/webui/proxy_config_ui.h | 41 ++ - chrome/common/webui_url_constants.cc | 2 + + chrome/common/webui_url_constants.cc | 1 + chrome/common/webui_url_constants.h | 2 + .../pref_proxy_config_tracker_impl.cc | 5 +- .../proxy_config/proxy_config_dictionary.cc | 30 +- @@ -43,7 +43,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html net/proxy_resolution/pac_file_fetcher_impl.cc | 8 - net/proxy_resolution/proxy_config.cc | 53 ++- net/proxy_resolution/proxy_config.h | 3 + - 27 files changed, 987 insertions(+), 27 deletions(-) + 27 files changed, 986 insertions(+), 27 deletions(-) create mode 100644 chrome/browser/resources/proxy_config.css create mode 100644 chrome/browser/resources/proxy_config.html create mode 100644 chrome/browser/resources/proxy_config.js @@ -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 -@@ -106,6 +106,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -108,6 +108,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 -@@ -412,6 +412,7 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() { +@@ -424,6 +424,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 -@@ -241,6 +241,9 @@ +@@ -225,6 +225,9 @@ @@ -115,7 +115,7 @@ diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resou diff --git a/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc b/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc --- a/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc +++ b/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc -@@ -375,7 +375,7 @@ std::optional CreateProxyConfigDict( +@@ -383,7 +383,7 @@ std::optional CreateProxyConfigDict( return std::nullopt; } return ProxyConfigDictionary::CreateFixedServers(proxy_rules_string, @@ -199,7 +199,7 @@ diff --git a/chrome/browser/net/proxy_service_factory.h b/chrome/browser/net/pro diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc -@@ -209,6 +209,8 @@ +@@ -212,6 +212,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 -@@ -1396,6 +1398,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) { +@@ -1438,6 +1440,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) { component_updater::RegisterPrefs(registry); domain_reliability::RegisterPrefs(registry); embedder_support::OriginTrialPrefs::RegisterPrefs(registry); @@ -663,7 +663,7 @@ new file mode 100644 diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -159,6 +159,8 @@ static_library("ui") { +@@ -158,6 +158,8 @@ static_library("ui") { "webui/metrics_internals/metrics_internals_ui.h", "webui/net_export_ui.cc", "webui/net_export_ui.h", @@ -675,7 +675,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/ui/webui/chrome_web_ui_configs.cc --- a/chrome/browser/ui/webui/chrome_web_ui_configs.cc +++ b/chrome/browser/ui/webui/chrome_web_ui_configs.cc -@@ -60,6 +60,9 @@ +@@ -64,6 +64,9 @@ #include "extensions/buildflags/buildflags.h" #include "printing/buildflags/buildflags.h" @@ -686,9 +686,9 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/u #include "chrome/browser/ui/webui/certificate_viewer/certificate_viewer_ui.h" #endif @@ -449,7 +452,7 @@ void RegisterChromeWebUIConfigs() { - #if BUILDFLAG(ENABLE_GLIC) && !BUILDFLAG(IS_ANDROID) - map.AddWebUIConfig(std::make_unique()); - #endif + map.AddWebUIConfig(std::make_unique()); + map.AddWebUIConfig(std::make_unique()); + #endif // !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_ANDROID) - + map.AddWebUIConfig(std::make_unique()); #if BUILDFLAG(SAFE_BROWSING_AVAILABLE) @@ -1137,15 +1137,7 @@ new file mode 100644 diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_constants.cc --- a/chrome/common/webui_url_constants.cc +++ b/chrome/common/webui_url_constants.cc -@@ -53,6 +53,7 @@ bool IsSystemWebUIHost(std::string_view host) { - kChromeUILockScreenNetworkHost, - kChromeUILockScreenStartReauthHost, - kChromeUIMobileSetupHost, -+ kChromeUIProxyConfigHost, - kChromeUIMultiDeviceSetupHost, - kChromeUINetworkHost, - kChromeUINotificationTesterHost, -@@ -74,6 +75,7 @@ bool IsSystemWebUIHost(std::string_view host) { +@@ -120,6 +120,7 @@ bool IsSystemWebUIHost(std::string_view host) { // These hosts will also be suggested by BuiltinProvider. base::span ChromeURLHosts() { static constexpr auto kChromeURLHosts = std::to_array({ @@ -1156,7 +1148,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 -@@ -198,6 +198,8 @@ inline constexpr char kChromeUINetInternalsHost[] = "net-internals"; +@@ -206,6 +206,8 @@ inline constexpr char kChromeUINetInternalsHost[] = "net-internals"; inline constexpr char kChromeUINetInternalsURL[] = "chrome://net-internals/"; inline constexpr char kChromeUINewTabHost[] = "newtab"; inline constexpr char kChromeUINewTabFooterHost[] = "newtab-footer"; diff --git a/build/patches/Add-an-always-incognito-mode.patch b/build/patches/Add-an-always-incognito-mode.patch index d93da04e..411a10ff 100644 --- a/build/patches/Add-an-always-incognito-mode.patch +++ b/build/patches/Add-an-always-incognito-mode.patch @@ -68,7 +68,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/prefs/browser_prefs.cc | 5 + chrome/browser/profiles/profile_selections.cc | 10 + chrome/browser/profiles/profile_selections.h | 7 +- - .../signin/services/ProfileDataCache.java | 18 +- + .../signin/services/ProfileDataCache.java | 16 +- .../browser/ui/android/native_page/BUILD.gn | 2 + .../browser/ui/native_page/NativePage.java | 17 +- .../browser/omnibox/LocationBarMediator.java | 8 + @@ -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, 812 insertions(+), 119 deletions(-) + 70 files changed, 811 insertions(+), 118 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 -@@ -653,6 +653,7 @@ chrome_java_resources = [ +@@ -649,6 +649,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", -@@ -969,6 +970,7 @@ chrome_java_sources = [ +@@ -984,6 +985,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/PrivacySandbox3pcdRollbackMessageController.java", - "java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxSurveyController.java", + "java/src/org/chromium/chrome/browser/provider/BaseColumns.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 @@ -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 -@@ -84,6 +84,10 @@ import org.chromium.build.annotations.Nullable; +@@ -85,6 +85,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,7 +259,7 @@ 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; -@@ -850,13 +854,18 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt +@@ -860,13 +864,18 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt mMultiInstanceManager); // For saving non-incognito tab closures for Recent Tabs. @@ -283,7 +283,7 @@ 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( -@@ -3426,7 +3435,7 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt +@@ -3544,7 +3553,7 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt shouldPersistAcrossReboots() && persistentState != null && persistentState.getBoolean(IS_INCOGNITO_SELECTED, false); @@ -303,7 +303,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; -@@ -2222,6 +2223,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -2279,6 +2280,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity throw new IllegalStateException( "Attempting to access TabCreator before initialization"); } @@ -316,16 +316,16 @@ 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 -@@ -99,6 +99,8 @@ import java.util.Iterator; +@@ -98,6 +98,8 @@ import java.lang.annotation.RetentionPolicy; + import java.util.Iterator; import java.util.List; - import java.util.function.Supplier; +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; + /** * Base implementation of {@link AppMenuPropertiesDelegate} that handles hiding and showing menu * items based on activity state. -@@ -686,8 +688,9 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties +@@ -685,8 +687,9 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties && !isNativePage && !isFileScheme && !isContentScheme @@ -348,7 +348,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; -@@ -456,6 +457,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -466,6 +467,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { mShowEphemeralTabNewLabel = null; mCustomActionMap.clear(); @@ -358,7 +358,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr List groupedItems = new ArrayList<>(); if (mParams.isPage() && shouldShowEmptySpaceContextMenu()) { -@@ -527,7 +531,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -537,7 +541,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { } } if (FirstRunStatus.getFirstRunFlowComplete()) { @@ -411,7 +411,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/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 -@@ -21,6 +21,7 @@ import org.chromium.build.annotations.NullMarked; +@@ -22,6 +22,7 @@ import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; import org.chromium.chrome.R; import org.chromium.chrome.browser.ActivityTabProvider; @@ -419,7 +419,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; -@@ -238,6 +239,10 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat +@@ -239,6 +240,10 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat tryAddingReadAloud = false; } @@ -443,7 +443,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; -@@ -1373,6 +1376,13 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid +@@ -1372,6 +1375,13 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid return getInitialActivityWidth() > 0; } @@ -645,7 +645,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/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 -@@ -43,6 +43,16 @@ import org.chromium.ui.base.WindowAndroid; +@@ -44,6 +44,16 @@ import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.modaldialog.ModalDialogManager; import org.chromium.url.GURL; @@ -662,7 +662,7 @@ 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; -@@ -114,7 +124,8 @@ public class RecentTabsManager +@@ -115,7 +125,8 @@ public class RecentTabsManager SnackbarManager snackbarManager, Runnable showHistoryManager, RecentlyClosedEntriesManager recentlyClosedEntriesManager) { @@ -672,7 +672,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM mActiveTab = tab; mShowHistoryManager = showHistoryManager; mForeignSessionHelper = new ForeignSessionHelper(profile); -@@ -285,6 +296,22 @@ public class RecentTabsManager +@@ -286,6 +297,22 @@ public class RecentTabsManager */ public void openRecentlyClosedTab(RecentlyClosedTab tab, int windowDisposition) { if (mIsDestroyed) return; @@ -880,7 +880,7 @@ new file mode 100644 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 -@@ -50,6 +50,7 @@ import org.chromium.chrome.browser.sync.settings.AccountManagementFragment; +@@ -54,6 +54,7 @@ import org.chromium.chrome.browser.sync.settings.AccountManagementFragment; import org.chromium.chrome.browser.sync.settings.GoogleServicesSettings; import org.chromium.chrome.browser.sync.settings.ManageSyncSettings; import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; @@ -888,7 +888,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; -@@ -225,6 +226,9 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl +@@ -243,6 +244,9 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl SigninAndHistorySyncActivityLauncherImpl.get(), new SettingsCustomTabLauncherImpl())); } @@ -1008,7 +1008,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore 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 -@@ -29,6 +29,7 @@ import org.chromium.build.annotations.Contract; +@@ -30,6 +30,7 @@ import org.chromium.build.annotations.Contract; import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; import org.chromium.chrome.R; @@ -1016,7 +1016,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; -@@ -256,7 +257,8 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm +@@ -260,7 +261,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. @@ -1029,8 +1029,8 @@ 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 -@@ -236,6 +236,8 @@ import org.chromium.content_public.common.ContentSwitches; - import org.chromium.ui.UiUtils; +@@ -244,6 +244,8 @@ import org.chromium.ui.UiUtils; + import org.chromium.ui.base.ActivityResultTracker; import org.chromium.ui.base.ActivityWindowAndroid; import org.chromium.ui.base.DeviceFormFactor; +import org.chromium.base.ContextUtils; @@ -1038,7 +1038,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; -@@ -1401,7 +1403,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1405,7 +1407,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { () -> { mTabCreatorManagerSupplier .get() @@ -1078,9 +1078,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabMod import org.chromium.chrome.browser.app.tabwindow.TabWindowManagerSingleton; +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; import org.chromium.chrome.browser.flags.ActivityType; - import org.chromium.chrome.browser.flags.ChromeFeatureList; + import org.chromium.chrome.browser.flags.CustomTabProfileType; import org.chromium.chrome.browser.multiwindow.MultiInstanceManager; -@@ -142,6 +143,8 @@ public class TabModelSelectorImpl extends TabModelSelectorBase implements TabMod +@@ -143,6 +144,8 @@ public class TabModelSelectorImpl extends TabModelSelectorBase implements TabMod ProfileProvider profileProvider = mProfileProviderSupplier.get(); assert profileProvider != null; @@ -1100,7 +1100,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPer import org.chromium.chrome.browser.app.tabmodel.AsyncTabParamsManagerSingleton; import org.chromium.chrome.browser.crypto.CipherFactory; import org.chromium.chrome.browser.flags.ChromeFeatureList; -@@ -727,6 +728,12 @@ public class TabPersistentStoreImpl implements TabPersistentStore { +@@ -728,6 +729,12 @@ public class TabPersistentStoreImpl implements TabPersistentStore { } } } @@ -1240,7 +1240,7 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and 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 -@@ -463,6 +463,15 @@ ChromeAutocompleteProviderClient::GetAimEligibilityService() const { +@@ -475,6 +475,15 @@ ChromeAutocompleteProviderClient::GetAimEligibilityService() const { return AimEligibilityServiceFactory::GetForProfile(profile_); } @@ -1361,7 +1361,7 @@ diff --git a/chrome/browser/content_settings/host_content_settings_map_factory.c + if (always_incognito_enabled) + return settings_map; + - #if BUILDFLAG(ENABLE_EXTENSIONS) + #if BUILDFLAG(ENABLE_EXTENSIONS_CORE) // These must be registered before before the HostSettings are passed over to // the IOThread. Simplest to do this on construction. diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc b/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc @@ -1380,7 +1380,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api static_assert(BUILDFLAG(ENABLE_EXTENSIONS_CORE)); using safe_browsing::SafeBrowsingNavigationObserverManager; -@@ -235,6 +241,16 @@ const int kExtensionReferrerUserGestureLimit = 2; +@@ -232,6 +238,16 @@ const int kExtensionReferrerUserGestureLimit = 2; WebstorePrivateApi::Delegate* test_delegate = nullptr; @@ -1397,7 +1397,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 -@@ -456,7 +472,7 @@ WebstorePrivateBeginInstallWithManifest3Function::Run() { +@@ -453,7 +469,7 @@ WebstorePrivateBeginInstallWithManifest3Function::Run() { params_ = Params::Create(args()); EXTENSION_FUNCTION_VALIDATE(params_); @@ -1406,7 +1406,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, -@@ -987,7 +1003,7 @@ void WebstorePrivateBeginInstallWithManifest3Function:: +@@ -1097,7 +1113,7 @@ void WebstorePrivateBeginInstallWithManifest3Function:: DCHECK(extension); DCHECK(contents); @@ -1415,7 +1415,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api std::string message_from_admin = ExtensionManagementFactory::GetForBrowserContext(profile) -@@ -1023,7 +1039,7 @@ WebstorePrivateCompleteInstallFunction::Run() { +@@ -1133,7 +1149,7 @@ WebstorePrivateCompleteInstallFunction::Run() { std::optional params = CompleteInstall::Params::Create(args()); EXTENSION_FUNCTION_VALIDATE(params); @@ -1424,7 +1424,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api if (profile->IsGuestSession() || profile->IsOffTheRecord()) { return RespondNow(Error(kIncognitoError)); } -@@ -1332,7 +1348,7 @@ ExtensionFunction::ResponseValue +@@ -1442,7 +1458,7 @@ ExtensionFunction::ResponseValue WebstorePrivateGetExtensionStatusFunction::BuildResponseWithoutManifest( const ExtensionId& extension_id) { ExtensionInstallStatus status = GetWebstoreExtensionInstallStatus( @@ -1433,7 +1433,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)); -@@ -1346,7 +1362,7 @@ void WebstorePrivateGetExtensionStatusFunction::OnManifestParsed( +@@ -1456,7 +1472,7 @@ void WebstorePrivateGetExtensionStatusFunction::OnManifestParsed( return; } @@ -1445,7 +1445,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/history/history_tab_helper.cc --- a/chrome/browser/history/history_tab_helper.cc +++ b/chrome/browser/history/history_tab_helper.cc -@@ -48,6 +48,9 @@ +@@ -46,6 +46,9 @@ #include "components/feed/core/v2/public/feed_api.h" // nogncheck #include "components/feed/core/v2/public/feed_service.h" // nogncheck #include "content/public/browser/web_contents.h" @@ -1455,7 +1455,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" -@@ -636,6 +639,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) { +@@ -632,6 +635,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) { history::HistoryService* HistoryTabHelper::GetHistoryService() { Profile* profile = Profile::FromBrowserContext(web_contents()->GetBrowserContext()); @@ -1469,7 +1469,7 @@ diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/histo if (profile->IsOffTheRecord()) { return nullptr; } -@@ -644,6 +654,16 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() { +@@ -640,6 +650,16 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() { profile, ServiceAccessType::IMPLICIT_ACCESS); } @@ -1489,7 +1489,7 @@ diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/histo diff --git a/chrome/browser/history/history_tab_helper.h b/chrome/browser/history/history_tab_helper.h --- a/chrome/browser/history/history_tab_helper.h +++ b/chrome/browser/history/history_tab_helper.h -@@ -18,6 +18,8 @@ +@@ -20,6 +20,8 @@ #include "components/translate/core/browser/translate_driver.h" #include "content/public/browser/web_contents_observer.h" #include "content/public/browser/web_contents_user_data.h" @@ -1498,7 +1498,7 @@ diff --git a/chrome/browser/history/history_tab_helper.h b/chrome/browser/histor namespace history { struct HistoryAddPageArgs; -@@ -60,6 +62,11 @@ class HistoryTabHelper +@@ -71,6 +73,11 @@ class HistoryTabHelper std::optional GetAppId() { return app_id_; } #endif @@ -1510,7 +1510,7 @@ diff --git a/chrome/browser/history/history_tab_helper.h b/chrome/browser/histor private: explicit HistoryTabHelper(content::WebContents* web_contents); friend class content::WebContentsUserData; -@@ -101,9 +108,6 @@ class HistoryTabHelper +@@ -112,9 +119,6 @@ class HistoryTabHelper void OnLanguageDetermined( const translate::LanguageDetectionDetails& details) override; @@ -1818,7 +1818,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 -@@ -239,6 +239,7 @@ +@@ -244,6 +244,7 @@ #if BUILDFLAG(IS_ANDROID) #include "chrome/browser/accessibility/accessibility_prefs/android/accessibility_prefs_controller.h" @@ -1826,7 +1826,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" -@@ -1878,6 +1879,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -1918,6 +1919,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, usage_stats::UsageStatsBridge::RegisterProfilePrefs(registry); variations::VariationsService::RegisterProfilePrefs(registry); webapps::InstallPromptPrefs::RegisterProfilePrefs(registry); @@ -1891,7 +1891,7 @@ diff --git a/chrome/browser/profiles/profile_selections.h b/chrome/browser/profi diff --git a/chrome/browser/signin/services/android/java/src/org/chromium/chrome/browser/signin/services/ProfileDataCache.java b/chrome/browser/signin/services/android/java/src/org/chromium/chrome/browser/signin/services/ProfileDataCache.java --- a/chrome/browser/signin/services/android/java/src/org/chromium/chrome/browser/signin/services/ProfileDataCache.java +++ b/chrome/browser/signin/services/android/java/src/org/chromium/chrome/browser/signin/services/ProfileDataCache.java -@@ -134,7 +134,6 @@ public class ProfileDataCache implements IdentityManager.Observer, AccountsChang +@@ -75,7 +75,6 @@ public class ProfileDataCache implements IdentityManager.Observer, AccountsChang private final Context mContext; private final AccountManagerFacade mAccountManagerFacade; @@ -1899,7 +1899,7 @@ diff --git a/chrome/browser/signin/services/android/java/src/org/chromium/chrome private final int mImageSize; // The badge for a given account is selected as follows: // * If there is a config for that specific account, use that -@@ -150,13 +149,11 @@ public class ProfileDataCache implements IdentityManager.Observer, AccountsChang +@@ -91,13 +90,11 @@ public class ProfileDataCache implements IdentityManager.Observer, AccountsChang ProfileDataCache( Context context, AccountManagerFacade accountManagerFacade, @@ -1914,7 +1914,7 @@ diff --git a/chrome/browser/signin/services/android/java/src/org/chromium/chrome mImageSize = imageSize; mDefaultBadgeConfig = badgeConfig; mPlaceholderImage = getScaledPlaceholderImage(context, imageSize); -@@ -338,7 +335,6 @@ public class ProfileDataCache implements IdentityManager.Observer, AccountsChang +@@ -266,7 +263,6 @@ public class ProfileDataCache implements IdentityManager.Observer, AccountsChang ThreadUtils.assertOnUiThread(); if (mObservers.isEmpty()) { mAccountManagerFacade.addObserver(this); @@ -1922,7 +1922,7 @@ diff --git a/chrome/browser/signin/services/android/java/src/org/chromium/chrome } mObservers.addObserver(observer); } -@@ -351,7 +347,6 @@ public class ProfileDataCache implements IdentityManager.Observer, AccountsChang +@@ -279,7 +275,6 @@ public class ProfileDataCache implements IdentityManager.Observer, AccountsChang mObservers.removeObserver(observer); if (mObservers.isEmpty()) { mAccountManagerFacade.removeObserver(this); @@ -1930,7 +1930,7 @@ diff --git a/chrome/browser/signin/services/android/java/src/org/chromium/chrome } } -@@ -382,6 +377,7 @@ public class ProfileDataCache implements IdentityManager.Observer, AccountsChang +@@ -311,6 +306,7 @@ public class ProfileDataCache implements IdentityManager.Observer, AccountsChang } private void updateCache() { @@ -1938,30 +1938,21 @@ diff --git a/chrome/browser/signin/services/android/java/src/org/chromium/chrome var accounts = mAccountManagerFacade.getAccounts(); if (!accounts.isFulfilled()) { // When the list of accounts is ready - onCoreAccountInfosChanged will call -@@ -391,13 +387,7 @@ public class ProfileDataCache implements IdentityManager.Observer, AccountsChang +@@ -320,14 +316,6 @@ public class ProfileDataCache implements IdentityManager.Observer, AccountsChang - List displayableAccounts = new ArrayList<>(); + List displayableAccounts = new ArrayList<>(); for (CoreAccountInfo account : accounts.getResult()) { - var accountInfo = mIdentityManager.findExtendedAccountInfoByAccountId(account.getId()); - if (accountInfo != null - && (accountInfo.hasDisplayableInfo() -- || getBadgeConfigForAccount(accountInfo.getEmail()) != null)) { -- displayableAccounts.add(toDisplayableProfileData(accountInfo)); +- || getBadgeConfigForAccount(accountInfo.getId()) != null)) { +- displayableAccounts.add( +- new AccountsCache.AccountEntry( +- accountInfo.getId(), toDisplayableProfileData(accountInfo))); - } -- } -+ } + } mAccountsCache.setAccounts(displayableAccounts); - mAccountsCache -@@ -413,8 +403,6 @@ public class ProfileDataCache implements IdentityManager.Observer, AccountsChang - /** TODO(crbug.com/476990153): Replace with email parameter with {@link #CoreAccountId}. */ - @Deprecated - private void populateCacheForAccount(String accountEmail) { -- var accountInfo = mIdentityManager.findExtendedAccountInfoByEmailAddress(accountEmail); -- onExtendedAccountInfoUpdated(accountInfo); - } - - private DisplayableProfileData toDisplayableProfileData(AccountInfo accountInfo) { diff --git a/chrome/browser/ui/android/native_page/BUILD.gn b/chrome/browser/ui/android/native_page/BUILD.gn --- a/chrome/browser/ui/android/native_page/BUILD.gn +++ b/chrome/browser/ui/android/native_page/BUILD.gn @@ -2046,7 +2037,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 -@@ -112,6 +112,11 @@ import org.chromium.ui.interpolators.Interpolators; +@@ -113,6 +113,11 @@ import org.chromium.ui.interpolators.Interpolators; import org.chromium.ui.modaldialog.ModalDialogManager; import org.chromium.url.GURL; @@ -2058,7 +2049,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; -@@ -532,6 +537,9 @@ class LocationBarMediator +@@ -520,6 +525,9 @@ class LocationBarMediator if (!DeviceFormFactor.isNonMultiDisplayContextOnTablet(mContext)) return; Tab tab = mLocationBarDataProvider.getTab(); if (tab == null) return; @@ -2071,7 +2062,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 -@@ -7057,6 +7057,31 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -7184,6 +7184,31 @@ To change this setting, BEGIN_LINKdelete the Chrome d Cookies, cache, and other site data @@ -2173,7 +2164,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 -@@ -4125,6 +4125,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] = +@@ -3843,6 +3843,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] = "net.out_of_process_system_dns_resolution_enabled"; #endif // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) @@ -2266,7 +2257,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map. diff --git a/components/content_settings/core/browser/host_content_settings_map.h b/components/content_settings/core/browser/host_content_settings_map.h --- a/components/content_settings/core/browser/host_content_settings_map.h +++ b/components/content_settings/core/browser/host_content_settings_map.h -@@ -84,6 +84,7 @@ class HostContentSettingsMap : public content_settings::Observer, +@@ -83,6 +83,7 @@ class HostContentSettingsMap : public content_settings::Observer, // profile or a guest session. HostContentSettingsMap(PrefService* prefs, bool is_off_the_record, @@ -2274,7 +2265,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map. bool store_last_modified, bool restore_session, bool should_record_metrics); -@@ -556,6 +557,8 @@ class HostContentSettingsMap : public content_settings::Observer, +@@ -562,6 +563,8 @@ class HostContentSettingsMap : public content_settings::Observer, // Whether this settings map is for an incognito or guest session. bool is_off_the_record_; diff --git a/build/patches/Add-cromite-flags-support.patch b/build/patches/Add-cromite-flags-support.patch index 5b52a49d..724083c4 100644 --- a/build/patches/Add-cromite-flags-support.patch +++ b/build/patches/Add-cromite-flags-support.patch @@ -43,7 +43,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../placeholder.txt | 1 + chrome/browser/ui/ui_features.cc | 1 + chrome/browser/unexpire_flags.cc | 15 +- - chrome/common/chrome_features.cc | 2 +- + chrome/common/chrome_features.cc | 1 + .../browser_ui/accessibility/android/BUILD.gn | 1 + .../res/xml/accessibility_preferences.xml | 3 +- .../accessibility/AccessibilitySettings.java | 6 +- @@ -108,7 +108,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html third_party/blink/public/common/features.h | 1 + ui/base/ui_base_features.cc | 1 + ui/base/ui_base_features.h | 1 + - 95 files changed, 885 insertions(+), 32 deletions(-) + 95 files changed, 885 insertions(+), 31 deletions(-) create mode 100644 base/android/java/src/org/chromium/base/ImmutableFlagWithDefault.java create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/include_all_directory.java create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/java_template/CromiteCachedFlag.java.tmpl @@ -146,7 +146,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 -@@ -187,6 +187,8 @@ generate_allowlist_from_histograms_file("memory_dump_provider_name_variants") { +@@ -190,6 +190,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") { @@ -155,7 +155,7 @@ diff --git a/base/BUILD.gn b/base/BUILD.gn sources = [ "allocator/allocator_check.cc", "allocator/allocator_check.h", -@@ -1066,7 +1068,7 @@ component("base") { +@@ -1069,7 +1071,7 @@ component("base") { "//build/config/compiler:wglobal_constructors", ] @@ -164,7 +164,7 @@ diff --git a/base/BUILD.gn b/base/BUILD.gn ":check_version_internal", ":simdutf_shim", "//base/allocator:buildflags", -@@ -4941,6 +4943,7 @@ if (is_android) { +@@ -4959,6 +4961,7 @@ if (is_android) { "android/java/src/org/chromium/base/Flag.java", "android/java/src/org/chromium/base/MutableBooleanParamWithSafeDefault.java", "android/java/src/org/chromium/base/MutableFlagWithSafeDefault.java", @@ -178,7 +178,7 @@ diff --git a/base/android/feature_map.cc b/base/android/feature_map.cc @@ -46,6 +46,11 @@ const Feature* FeatureMap::FindFeatureExposedToJava( static bool JNI_FeatureMap_IsEnabled(int64_t jfeature_map, - std::string& feature_name) { + const std::string& feature_name) { + if (base::FeatureList::IsCromiteFlag(feature_name)) { + const base::Feature* cromite_feature = + base::FeatureList::GetCromiteFlag(feature_name); @@ -545,7 +545,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 -@@ -132,7 +132,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -134,7 +134,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment } @Override @@ -557,7 +557,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/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 -@@ -10,6 +10,7 @@ import android.os.Bundle; +@@ -13,6 +13,7 @@ import android.os.Bundle; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; @@ -565,27 +565,28 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme import org.chromium.base.supplier.MonotonicObservableSupplier; import org.chromium.base.supplier.OneshotSupplier; import org.chromium.build.annotations.NullMarked; -@@ -71,6 +72,7 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl - private final OneshotSupplier mBottomSheetControllerSupplier; +@@ -82,6 +83,7 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl + // TODO(crbug.com/469772349): Simplify to Supplier<@Nullable ModalDialogManagerSupplier> private final MonotonicObservableSupplier mModalDialogManagerSupplier; - private final @Nullable SettingsSearchCoordinator mSearchCoordinator; + private final Supplier<@Nullable SettingsSearchCoordinator> mSearchCoordinatorSupplier; + private final Supplier mRequireRestartDelegateSupplier; public FragmentDependencyProvider( - Context context, -@@ -78,19 +80,25 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl + Activity activity, +@@ -91,7 +93,8 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl OneshotSupplier snackbarManagerSupplier, OneshotSupplier bottomSheetControllerSupplier, MonotonicObservableSupplier modalDialogManagerSupplier, -- @Nullable SettingsSearchCoordinator searchCoordinator) { -+ @Nullable SettingsSearchCoordinator searchCoordinator, +- Supplier<@Nullable SettingsSearchCoordinator> searchCoordinatorSupplier) { ++ Supplier<@Nullable SettingsSearchCoordinator> searchCoordinatorSupplier, + Supplier requireRestartDelegateSupplier) { - mContext = context; + mActivity = activity; mProfile = profile; - mSnackbarManagerSupplier = snackbarManagerSupplier; + mWindowAndroidSupplier = windowAndroidSupplier; +@@ -100,12 +103,17 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl mBottomSheetControllerSupplier = bottomSheetControllerSupplier; mModalDialogManagerSupplier = modalDialogManagerSupplier; - mSearchCoordinator = searchCoordinator; + mSearchCoordinatorSupplier = searchCoordinatorSupplier; + mRequireRestartDelegateSupplier = requireRestartDelegateSupplier; } @@ -617,9 +618,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin import org.chromium.base.supplier.ObservableSuppliers; +import org.chromium.base.supplier.OneshotSupplier; import org.chromium.base.supplier.OneshotSupplierImpl; + import org.chromium.base.supplier.SettableMonotonicObservableSupplier; import org.chromium.build.annotations.NullMarked; - import org.chromium.build.annotations.Nullable; -@@ -58,6 +60,7 @@ import org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncherImpl; +@@ -59,12 +61,14 @@ import org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncherImpl; import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.init.ActivityLifecycleDispatcherImpl; import org.chromium.chrome.browser.init.ChromeBrowserInitializer; @@ -627,15 +628,14 @@ 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; -@@ -66,6 +69,7 @@ import org.chromium.chrome.browser.ui.desktop_windowing.AppHeaderCoordinator; + import org.chromium.chrome.browser.settings.search.SettingsSearchCoordinator; + import org.chromium.chrome.browser.ui.desktop_windowing.AppHeaderCoordinator; import org.chromium.chrome.browser.ui.device_lock.MissingDeviceLockLauncher; ++import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar; 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.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; -@@ -126,6 +130,40 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity + import org.chromium.chrome.browser.util.DefaultBrowserInfo; +@@ -131,6 +135,40 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity // Key used to store activity start time in the Bundle to have it survive activity re-creation. private static final String KEY_START_TIME = "start_time"; @@ -676,12 +676,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"; -@@ -229,7 +267,8 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -239,7 +277,8 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity mSnackbarManagerSupplier, mBottomSheetControllerSupplier, getModalDialogManagerSupplier(), -- mSearchCoordinator), -+ mSearchCoordinator, +- () -> mSearchCoordinator), ++ () -> mSearchCoordinator, + () -> new RequestRestartDelegate(mSnackbarManagerSupplier, this)), /* recursive= */ true); fragmentManager.registerFragmentLifecycleCallbacks( @@ -711,7 +711,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tracing/setting diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -399,6 +399,10 @@ using flags_ui::kOsLinux; +@@ -404,6 +404,10 @@ using flags_ui::kOsLinux; using flags_ui::kOsMac; using flags_ui::kOsWin; @@ -722,9 +722,9 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc namespace about_flags { namespace { -@@ -4645,6 +4649,10 @@ const FeatureEntry::FeatureVariation - {"Mute Both", kPermissionsGestureGatedPromptsMuteBoth, nullptr}, +@@ -4816,6 +4820,10 @@ const FeatureEntry::FeatureVariation kSigninPromoOnAvatarPillVariation[] = { }; + #endif // BUILDFLAG(ENABLE_DICE_SUPPORT) +#define FEATURE_PARAM_SECTION +#include "cromite_flags/chrome_browser_about_flags_cc.inc" @@ -733,7 +733,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. -@@ -4671,6 +4679,9 @@ const FeatureEntry::FeatureVariation +@@ -4842,6 +4850,9 @@ const FeatureEntry::FeatureVariation kSigninPromoOnAvatarPillVariation[] = { const FeatureEntry kFeatureEntries[] = { // Include generated flags for flag unexpiry; see //docs/flag_expiry.md and // //tools/flags/generate_unexpire_flags.py. @@ -742,7 +742,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc +#undef FLAG_SECTION #include "build/chromeos_buildflags.h" #include "chrome/browser/unexpire_flags_gen.inc" - {variations::switches::kEnableBenchmarking, + {switches::kEnableBenchmarking, flag_descriptions::kEnableBenchmarkingName, 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 @@ -805,7 +805,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 -@@ -820,6 +820,7 @@ BASE_FEATURE(kXplatSyncedSetup, base::FEATURE_DISABLED_BY_DEFAULT); +@@ -824,6 +824,7 @@ BASE_FEATURE(kYourSavedInfoSettingsPageAndroid, base::FEATURE_DISABLED_BY_DEFAUL // clang-format on @@ -816,7 +816,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h --- a/chrome/browser/flags/android/chrome_feature_list.h +++ b/chrome/browser/flags/android/chrome_feature_list.h -@@ -375,6 +375,7 @@ inline constexpr base::FeatureParam +@@ -380,6 +380,7 @@ inline constexpr base::FeatureParam "snippet_as_subtitle", /*default_value=*/false); @@ -827,7 +827,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 -@@ -21,6 +21,10 @@ import org.chromium.components.cached_flags.DoubleCachedFeatureParam; +@@ -20,6 +20,10 @@ import org.chromium.components.cached_flags.DoubleCachedFeatureParam; import org.chromium.components.cached_flags.IntCachedFeatureParam; import org.chromium.components.cached_flags.StringCachedFeatureParam; @@ -838,7 +838,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f import java.util.List; import java.util.Map; -@@ -1114,7 +1118,7 @@ public abstract class ChromeFeatureList { +@@ -1136,7 +1140,7 @@ public abstract class ChromeFeatureList { newCachedFlag(WEB_APK_MIN_SHELL_APK_VERSION, true); // keep-sorted end @@ -847,7 +847,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f List.of( // keep-sorted start sAccountForSuppressedKeyboardInsets, -@@ -1272,6 +1276,13 @@ public abstract class ChromeFeatureList { +@@ -1302,6 +1306,13 @@ public abstract class ChromeFeatureList { // keep-sorted end ); @@ -1027,7 +1027,7 @@ new file mode 100644 diff --git a/chrome/browser/ui/ui_features.cc b/chrome/browser/ui/ui_features.cc --- a/chrome/browser/ui/ui_features.cc +++ b/chrome/browser/ui/ui_features.cc -@@ -580,4 +580,5 @@ BASE_FEATURE_PARAM(bool, +@@ -541,4 +541,5 @@ BASE_FEATURE_PARAM(bool, BASE_FEATURE(kUpdaterUI, base::FEATURE_DISABLED_BY_DEFAULT); #endif @@ -1068,11 +1068,10 @@ diff --git a/chrome/browser/unexpire_flags.cc b/chrome/browser/unexpire_flags.cc diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc --- a/chrome/common/chrome_features.cc +++ b/chrome/common/chrome_features.cc -@@ -1985,5 +1985,5 @@ BASE_FEATURE(kDisableShortcutsEnableDiy, base::FEATURE_ENABLED_BY_DEFAULT); - // happen silently without prompting an updating dialog. - BASE_FEATURE(kSilentPolicyAndDefaultAppUpdating, - base::FEATURE_ENABLED_BY_DEFAULT); -- +@@ -2020,4 +2020,5 @@ BASE_FEATURE(kUnicornChromeActivityReporting, + BASE_FEATURE(kSmartRestartMetrics, base::FEATURE_ENABLED_BY_DEFAULT); + #endif // BUILDFLAG(IS_ANDROID) + +#include "cromite_flags/chrome_common_chrome_features_cc.inc" } // namespace features diff --git a/components/browser_ui/accessibility/android/BUILD.gn b/components/browser_ui/accessibility/android/BUILD.gn @@ -1141,7 +1140,7 @@ diff --git a/components/browser_ui/settings/android/java/res/values/attrs.xml b/ diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeSwitchPreference.java b/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeSwitchPreference.java --- a/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeSwitchPreference.java +++ b/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeSwitchPreference.java -@@ -15,6 +15,8 @@ import android.view.accessibility.AccessibilityEvent; +@@ -14,6 +14,8 @@ import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityNodeInfo; import android.widget.TextView; @@ -1150,7 +1149,7 @@ diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium import androidx.annotation.ColorInt; import androidx.annotation.VisibleForTesting; import androidx.preference.PreferenceViewHolder; -@@ -42,6 +44,11 @@ public class ChromeSwitchPreference extends SwitchPreferenceCompat implements Co +@@ -38,6 +40,11 @@ public class ChromeSwitchPreference extends SwitchPreferenceCompat implements Co /** Indicates if the preference uses a custom layout. */ private final boolean mHasCustomLayout; @@ -1162,7 +1161,7 @@ diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium // TOOD(crbug.com/1451550): This is an interim solution. In the long-term, we should migrate // away from a switch with dynamically changing summaries onto a radio group. /** -@@ -66,6 +73,18 @@ public class ChromeSwitchPreference extends SwitchPreferenceCompat implements Co +@@ -62,6 +69,18 @@ public class ChromeSwitchPreference extends SwitchPreferenceCompat implements Co mHasCustomLayout = ManagedPreferencesUtils.isCustomLayoutApplied(context, attrs); mUseSummaryAsTitle = true; @@ -1256,7 +1255,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 -@@ -177,4 +177,5 @@ BASE_FEATURE(kWebAuthnUsePasskeyFromAnotherDeviceInContextMenu, +@@ -200,4 +200,5 @@ BASE_FEATURE(kWebAuthnUsePasskeyFromAnotherDeviceInContextMenu, #endif // !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_IOS) @@ -1265,7 +1264,7 @@ diff --git a/components/password_manager/core/browser/features/password_features diff --git a/components/permissions/features.cc b/components/permissions/features.cc --- a/components/permissions/features.cc +++ b/components/permissions/features.cc -@@ -125,6 +125,7 @@ BASE_FEATURE(kPermissionPredictionsGeolocationAccuracy, +@@ -117,6 +117,7 @@ BASE_FEATURE(kPermissionPredictionsGeolocationAccuracy, BASE_FEATURE(kPermissionsGestureGatedPrompts, base::FEATURE_DISABLED_BY_DEFAULT); @@ -1527,7 +1526,19 @@ diff --git a/components/webui/flags/resources/app.ts b/components/webui/flags/re private announceStatusDelayMs: number = 100; private featuresResolver: PromiseResolver = new PromiseResolver(); private flagSearch: FlagSearch|null = null; -@@ -186,10 +190,25 @@ export class FlagsAppElement extends CrLitElement { +@@ -180,6 +184,11 @@ export class FlagsAppElement extends CrLitElement { + override connectedCallback() { + super.connectedCallback(); + ++ if (location.pathname == '/cromite') { ++ this.onlyCromiteFlags = true; ++ this.getRequiredElement("#appcontainer").classList.add('cromite'); ++ document.title = "Cromite Flags List"; ++ } + // + const pathname = new URL(window.location.href).pathname; + this.isFlagsDeprecatedUrl_ = +@@ -252,10 +261,25 @@ export class FlagsAppElement extends CrLitElement { if (changedPrivateProperties.has('data')) { const defaultFeatures: Feature[] = []; const nonDefaultFeatures: Feature[] = []; @@ -1553,18 +1564,6 @@ diff --git a/components/webui/flags/resources/app.ts b/components/webui/flags/re this.defaultFeatures = defaultFeatures; this.nonDefaultFeatures = nonDefaultFeatures; -@@ -233,6 +252,11 @@ export class FlagsAppElement extends CrLitElement { - override connectedCallback() { - super.connectedCallback(); - -+ if (location.pathname == '/cromite') { -+ this.onlyCromiteFlags = true; -+ this.getRequiredElement("#appcontainer").classList.add('cromite'); -+ document.title = "Cromite Flags List"; -+ } - // - const pathname = new URL(window.location.href).pathname; - this.isFlagsDeprecatedUrl_ = diff --git a/components/webui/flags/resources/experiment.css b/components/webui/flags/resources/experiment.css --- a/components/webui/flags/resources/experiment.css +++ b/components/webui/flags/resources/experiment.css @@ -1705,7 +1704,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 -@@ -758,4 +758,5 @@ bool IsEnforceSameDocumentOriginInvariantsEnabled() { +@@ -763,4 +763,5 @@ bool IsEnforceSameDocumentOriginInvariantsEnabled() { blink::features::kTreatMhtmlInitialDocumentLoadsAsCrossDocument); } @@ -1714,22 +1713,20 @@ 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 -@@ -1460,4 +1460,5 @@ bool IsPushSubscriptionChangeEventEnabled() { - features::kPushSubscriptionChangeEventOnResubscribe); +@@ -1487,4 +1487,5 @@ bool IsFluidResizeEnabled() { } + #endif +#include "cromite_flags/content_public_common_content_features_cc.inc" } // namespace features 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 -@@ -422,6 +422,7 @@ CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForOutOfProcess(); - CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForBrowserProcess(); - CONTENT_EXPORT bool IsPushSubscriptionChangeEventEnabled(); +@@ -440,4 +440,5 @@ CONTENT_EXPORT bool IsFluidResizeEnabled(); -+#include "cromite_flags/content_public_common_content_features_h.inc" } // namespace features ++#include "cromite_flags/content_public_common_content_features_h.inc" #endif // CONTENT_PUBLIC_COMMON_CONTENT_FEATURES_H_ diff --git a/cromite_flags/BUILD.gn b/cromite_flags/BUILD.gn new file mode 100755 @@ -2069,7 +2066,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 -@@ -1831,5 +1831,5 @@ uint32_t GetPassthroughAudioFormats() { +@@ -1845,5 +1845,5 @@ uint32_t GetPassthroughAudioFormats() { return 0; #endif // BUILDFLAG(ENABLE_PASSTHROUGH_AUDIO_CODECS) } @@ -2079,7 +2076,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 -@@ -586,5 +586,5 @@ MEDIA_EXPORT bool IsOutOfProcessVideoDecodingEnabled(); +@@ -590,5 +590,5 @@ MEDIA_EXPORT bool IsOutOfProcessVideoDecodingEnabled(); MEDIA_EXPORT uint32_t GetPassthroughAudioFormats(); } // namespace media @@ -2089,18 +2086,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 -@@ -728,4 +728,5 @@ BASE_FEATURE(kUseLockFreeX509Verification, base::FEATURE_DISABLED_BY_DEFAULT); - BASE_FEATURE(kUseNSURLDataForGURLConversion, base::FEATURE_ENABLED_BY_DEFAULT); - #endif // BUILDFLAG(IS_APPLE) +@@ -777,4 +777,5 @@ BASE_FEATURE(kDrainSpdySessionSynchronouslyOnRemoteEndpointDisconnect, + + BASE_FEATURE(kLogicalClearHttpCache, 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 -@@ -764,6 +764,7 @@ NET_EXPORT BASE_DECLARE_FEATURE(kUseLockFreeX509Verification); - NET_EXPORT BASE_DECLARE_FEATURE(kUseNSURLDataForGURLConversion); - #endif // BUILDFLAG(IS_APPLE) +@@ -807,6 +807,7 @@ NET_EXPORT BASE_DECLARE_FEATURE(kLogicalClearHttpCache); + NET_EXPORT BASE_DECLARE_FEATURE( + kDrainSpdySessionSynchronouslyOnRemoteEndpointDisconnect); +#include "cromite_flags/net_base_features_h.inc" } // namespace net::features @@ -2109,18 +2106,18 @@ 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 -@@ -646,4 +646,5 @@ BASE_FEATURE_PARAM(bool, - /*name=*/"report_inconsistent_header", - /*default_value=*/false); +@@ -662,4 +662,5 @@ BASE_FEATURE_PARAM(int, + /*name=*/"max_global_buffer_size", + /*default_value=*/0); +#include "cromite_flags/services_network_public_cpp_features_cc.inc" } // namespace network::features diff --git a/services/network/public/cpp/features.h b/services/network/public/cpp/features.h --- a/services/network/public/cpp/features.h +++ b/services/network/public/cpp/features.h -@@ -395,6 +395,7 @@ BASE_DECLARE_FEATURE_PARAM( +@@ -434,6 +434,7 @@ BASE_DECLARE_FEATURE_PARAM(int, kDurableMessagesGlobalBufferSize); COMPONENT_EXPORT(NETWORK_CPP_FLAGS_AND_SWITCHES) - BASE_DECLARE_FEATURE(kUseUnexportableKeyServiceInBrowserProcess); + BASE_DECLARE_FEATURE(kBypassRequestForbiddenHeadersCheck); +#include "cromite_flags/services_network_public_cpp_features_h.inc" } // namespace network::features @@ -2129,7 +2126,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 -@@ -2703,4 +2703,5 @@ bool IsXrDevice() { +@@ -2771,4 +2771,5 @@ bool IsXrDevice() { // // DO NOT ADD NEW FEATURES HERE. @@ -2138,7 +2135,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 -@@ -1984,6 +1984,7 @@ BLINK_COMMON_EXPORT bool IsXrDevice(); +@@ -2015,6 +2015,7 @@ BLINK_COMMON_EXPORT bool IsXrDevice(); // // DO NOT ADD NEW FEATURES HERE. @@ -2149,18 +2146,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 -@@ -436,4 +436,5 @@ BASE_FEATURE(kStringWidthCache, base::FEATURE_ENABLED_BY_DEFAULT); - BASE_FEATURE(kUseClipboardStrictVirtualFileCheck, - base::FEATURE_ENABLED_BY_DEFAULT); +@@ -462,4 +462,5 @@ BASE_FEATURE_PARAM(int, + "acceptable_latency_ms", + 50); +#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(kStringWidthCache); +@@ -303,6 +303,7 @@ BASE_DECLARE_FEATURE_PARAM(int, kCompensationExpectedLatencyMs); COMPONENT_EXPORT(UI_BASE_FEATURES) - BASE_DECLARE_FEATURE(kUseClipboardStrictVirtualFileCheck); + BASE_DECLARE_FEATURE_PARAM(int, kCompensationAcceptableLatencyMs); +#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 7c632914..09dbde6a 100644 --- a/build/patches/Add-cromite-test-support.patch +++ b/build/patches/Add-cromite-test-support.patch @@ -73,7 +73,7 @@ diff --git a/chrome/android/java/res/xml/developer_preferences.xml b/chrome/andr diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java --- a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java -@@ -142,6 +142,7 @@ import org.chromium.ui.base.SelectFileDialog; +@@ -146,6 +146,7 @@ import org.chromium.ui.base.SelectFileDialog; import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.edge_to_edge.EdgeToEdgeStateProvider; import org.chromium.url.GURL; @@ -81,7 +81,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessIni import java.io.File; import java.nio.charset.StandardCharsets; -@@ -686,7 +687,10 @@ public class ProcessInitializationHandler { +@@ -699,7 +700,10 @@ public class ProcessInitializationHandler { tasks.add( () -> { @@ -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 -@@ -192,6 +192,11 @@ source_set("shell_integration") { +@@ -193,6 +193,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" -@@ -497,6 +498,15 @@ void ChromeContentBrowserClient:: +@@ -488,6 +489,15 @@ void ChromeContentBrowserClient:: render_frame_host); }, &render_frame_host)); @@ -412,7 +412,7 @@ new file mode 100644 diff --git a/chrome/browser/notifications/android/java/src/org/chromium/chrome/browser/notifications/permissions/NotificationPermissionController.java b/chrome/browser/notifications/android/java/src/org/chromium/chrome/browser/notifications/permissions/NotificationPermissionController.java --- a/chrome/browser/notifications/android/java/src/org/chromium/chrome/browser/notifications/permissions/NotificationPermissionController.java +++ b/chrome/browser/notifications/android/java/src/org/chromium/chrome/browser/notifications/permissions/NotificationPermissionController.java -@@ -181,6 +181,7 @@ public class NotificationPermissionController { +@@ -175,6 +175,7 @@ public class NotificationPermissionController { * @return True if any UI was shown (either rationale dialog or OS prompt), false otherwise. */ public boolean requestPermissionIfNeeded(boolean contextual) { @@ -423,7 +423,7 @@ diff --git a/chrome/browser/notifications/android/java/src/org/chromium/chrome/b diff --git a/chrome/browser/ui/startup/bad_flags_prompt.cc b/chrome/browser/ui/startup/bad_flags_prompt.cc --- a/chrome/browser/ui/startup/bad_flags_prompt.cc +++ b/chrome/browser/ui/startup/bad_flags_prompt.cc -@@ -220,6 +220,7 @@ static const std::variant +@@ -221,6 +221,7 @@ static const std::variant #if BUILDFLAG(IS_ANDROID) &chrome::android::kCommandLineOnNonRooted, @@ -434,7 +434,7 @@ diff --git a/chrome/browser/ui/startup/bad_flags_prompt.cc b/chrome/browser/ui/s diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn --- a/chrome/common/BUILD.gn +++ b/chrome/common/BUILD.gn -@@ -667,6 +667,7 @@ mojom("mojo_bindings") { +@@ -666,6 +666,7 @@ mojom("mojo_bindings") { "actor.mojom", "chrome_render_frame.mojom", "google_accounts_private_api_extension.mojom", @@ -477,7 +477,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer #include "chrome/renderer/google_accounts_private_api_extension.h" #include "chrome/renderer/loadtimes_extension_bindings.h" #include "chrome/renderer/media/flash_embed_rewrite.h" -@@ -656,6 +657,7 @@ void ChromeContentRendererClient::RenderFrameCreated( +@@ -662,6 +663,7 @@ void ChromeContentRendererClient::RenderFrameCreated( TrustedVaultEncryptionKeysExtension::Create(render_frame); GoogleAccountsPrivateApiExtension::Create(render_frame); @@ -851,7 +851,7 @@ diff --git a/content/browser/log_console_message.h b/content/browser/log_console diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc -@@ -323,6 +323,8 @@ +@@ -327,6 +327,8 @@ #include "url/origin.h" #include "url/url_constants.h" @@ -860,7 +860,7 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/b #if BUILDFLAG(IS_ANDROID) #include "base/android/scoped_service_binding_batch.h" #include "content/browser/accessibility/browser_accessibility_manager_android.h" -@@ -4959,7 +4961,8 @@ void RenderFrameHostImpl::DidAddMessageToConsole( +@@ -4985,7 +4987,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 -@@ -4976,8 +4979,14 @@ void RenderFrameHostImpl::DidAddMessageToConsole( +@@ -5002,8 +5005,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 0c5e0b37..825b1870 100644 --- a/build/patches/Add-custom-tab-intents-privacy-option.patch +++ b/build/patches/Add-custom-tab-intents-privacy-option.patch @@ -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/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 -@@ -22,6 +22,7 @@ import androidx.core.os.BuildCompat; - +@@ -23,6 +23,7 @@ import androidx.core.os.BuildCompat; + import org.chromium.base.ApiCompatibilityUtils; 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; +@@ -53,6 +54,9 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.Set; @@ -75,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. -@@ -137,6 +141,9 @@ public class LaunchIntentDispatcher { +@@ -139,6 +143,9 @@ public class LaunchIntentDispatcher { */ public static boolean isCustomTabIntent(Intent intent) { if (intent == null) return false; @@ -85,7 +85,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis Log.w( TAG, "CustomTabsIntent#shouldAlwaysUseBrowserUI() = " -@@ -163,6 +170,10 @@ public class LaunchIntentDispatcher { +@@ -165,6 +172,10 @@ public class LaunchIntentDispatcher { // Make sure the result of the CustomTabActivity is forwarded to the client. newIntent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT); @@ -96,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()); -@@ -333,6 +344,17 @@ public class LaunchIntentDispatcher { +@@ -342,6 +353,17 @@ public class LaunchIntentDispatcher { if (Intent.ACTION_VIEW.equals(newIntent.getAction()) && !IntentHandler.wasIntentSenderChrome(newIntent)) { @@ -140,7 +140,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust /** * Extra that, if set, makes the Custom Tab Activity's height to be x pixels, the Custom Tab -@@ -697,7 +697,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid +@@ -696,7 +696,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid TrustedWebActivityIntentBuilder.EXTRA_SCREEN_ORIENTATION, ScreenOrientation.DEFAULT)); @@ -149,7 +149,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust mBreakPointDp = getActivityBreakPointFromIntent(intent); mInitialActivityHeight = getInitialActivityHeightFromIntent(intent); -@@ -710,8 +710,8 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid +@@ -709,8 +709,8 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid intent, EXTRA_ACTIVITY_HEIGHT_RESIZE_BEHAVIOR, ACTIVITY_HEIGHT_DEFAULT); mIsPartialCustomTabFixedHeight = activityHeightResizeBehavior == ACTIVITY_HEIGHT_FIXED; @@ -160,7 +160,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust @BackgroundInteractBehavior int backgroundInteractBehavior = IntentUtils.safeGetIntExtra( -@@ -1380,7 +1380,9 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid +@@ -1379,7 +1379,9 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid public @CustomTabProfileType int getCustomTabMode() { return AlwaysIncognitoLinkInterceptor.isAlwaysIncognito() ? CustomTabProfileType.INCOGNITO @@ -194,7 +194,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/customtabs/IncognitoCustomTabIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/IncognitoCustomTabIntentDataProvider.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/IncognitoCustomTabIntentDataProvider.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/IncognitoCustomTabIntentDataProvider.java -@@ -44,6 +44,9 @@ import org.chromium.components.browser_ui.widget.TintedDrawable; +@@ -45,6 +45,9 @@ import org.chromium.components.browser_ui.widget.TintedDrawable; import java.util.ArrayList; import java.util.List; @@ -204,7 +204,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Inco /** * A model class that parses the incoming intent for incognito Custom Tabs specific customization * data. -@@ -133,6 +136,9 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD +@@ -134,6 +137,9 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD } private static boolean isIntentFromThirdPartyAllowed() { @@ -214,7 +214,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Inco return ChromeFeatureList.sCctIncognitoAvailableToThirdParty.isEnabled(); } -@@ -230,6 +236,10 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD +@@ -231,6 +237,10 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD } public static boolean isValidIncognitoIntent(Intent intent, boolean recordMetrics) { @@ -225,7 +225,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Inco if (!isIncognitoRequested(intent)) return false; var session = SessionHolder.getSessionHolderFromIntent(intent); if (isIntentFromThirdPartyAllowed() -@@ -340,6 +350,10 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD +@@ -341,6 +351,10 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD @Override public @CustomTabProfileType int getCustomTabMode() { @@ -239,7 +239,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Inco 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 -@@ -11,6 +11,7 @@ import android.content.Context; +@@ -12,6 +12,7 @@ import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.graphics.drawable.Drawable; @@ -247,7 +247,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import android.os.Bundle; import android.text.SpannableString; import android.text.style.ClickableSpan; -@@ -84,6 +85,15 @@ import org.chromium.ui.text.SpanApplier; +@@ -86,6 +87,15 @@ import org.chromium.ui.text.SpanApplier; import java.util.concurrent.TimeUnit; import java.util.function.Consumer; @@ -263,7 +263,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import androidx.preference.PreferenceCategory; import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager; import org.chromium.base.shared_preferences.SharedPreferencesManager; -@@ -153,6 +163,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -155,6 +165,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment startTag, endTag, new ChromeClickableSpan(context, onClickCallback)); } @@ -273,7 +273,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting @Override public void onCreatePreferencesCromite(@Nullable Bundle savedInstanceState, @Nullable String rootKey) { mPageTitle.set(getString(R.string.prefs_privacy_security)); -@@ -403,6 +416,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -405,6 +418,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment new SpanApplier.SpanInfo("", "", servicesLink)); } @@ -283,7 +283,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting @Override public boolean onPreferenceChange(Preference preference, Object newValue) { String key = preference.getKey(); -@@ -423,6 +439,31 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -425,6 +441,31 @@ public class PrivacySettings extends ChromeBaseSettingsFragment } else if (PREF_SEARCH_SUGGESTIONS.equals(key)) { UserPrefs.get(getProfile()) .setBoolean(Pref.SEARCH_SUGGEST_ENABLED, (boolean) newValue); @@ -315,7 +315,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting } return true; } -@@ -455,6 +496,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -457,6 +498,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment UserPrefs.get(getProfile()).getBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED)); } @@ -335,7 +335,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -705,7 +705,9 @@ BASE_FEATURE(kMagicStackAndroid, base::FEATURE_ENABLED_BY_DEFAULT); +@@ -711,7 +711,9 @@ BASE_FEATURE(kMagicStackAndroid, base::FEATURE_ENABLED_BY_DEFAULT); // Enables an experimental feature which forces mayLaunchUrl to use a different // storage partition. This may reduce performance. This should not be enabled by // default. @@ -349,7 +349,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -977,6 +977,8 @@ public abstract class ChromeFeatureList { +@@ -995,6 +995,8 @@ public abstract class ChromeFeatureList { MOST_VISITED_TILES_CUSTOMIZATION, /* defaultValue= */ true, /* defaultValueInTests= */ true); @@ -358,18 +358,18 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final CachedFlag sMostVisitedTilesReselect = newCachedFlag(MOST_VISITED_TILES_RESELECT, false); public static final CachedFlag sMoveToFrontInLaunchIntentDispatcher = -@@ -1227,6 +1229,7 @@ public abstract class ChromeFeatureList { +@@ -1255,6 +1257,7 @@ public abstract class ChromeFeatureList { sMaliciousApkDownloadCheck, sMostVisitedTilesCustomization, sMostVisitedTilesReselect, + sMayLaunchurlUsesSeparateStoragePartition, sMoveToFrontInLaunchIntentDispatcher, + sMultiInstanceSharedPrefsMigration, sMvcUpdateViewWhenModelChanged, - sNavBarColorAnimation, diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java --- a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java +++ b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java -@@ -88,7 +88,11 @@ public final class TabAssociatedApp extends TabWebContentsUserData implements Im +@@ -90,7 +90,11 @@ public final class TabAssociatedApp extends TabWebContentsUserData implements Im public static boolean isOpenedFromExternalApp(Tab tab) { TabAssociatedApp app = get(tab); if (app == null) return false; diff --git a/build/patches/Add-exit-menu-item.patch b/build/patches/Add-exit-menu-item.patch index 7b83d9f6..267bf75d 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 -@@ -386,6 +386,8 @@ import java.util.Set; +@@ -395,6 +395,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. -@@ -4002,6 +4004,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt +@@ -4132,6 +4134,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 -@@ -70,6 +70,7 @@ import org.chromium.base.supplier.SettableNullableObservableSupplier; +@@ -69,6 +69,7 @@ import org.chromium.base.supplier.SettableNullableObservableSupplier; import org.chromium.chrome.R; import org.chromium.chrome.browser.ActivityTabProvider; import org.chromium.chrome.browser.ActivityUtils; @@ -57,7 +57,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv import org.chromium.chrome.browser.ChromeActivitySessionTracker; import org.chromium.chrome.browser.ChromeApplicationImpl; import org.chromium.chrome.browser.ChromeKeyboardVisibilityDelegate; -@@ -2665,6 +2666,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -2724,6 +2725,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 -@@ -444,6 +444,13 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm +@@ -478,6 +478,13 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm modelList.add(buildContentFilterHelpCenterMenuItem(currentTab)); } @@ -108,9 +108,9 @@ 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 -@@ -4490,6 +4490,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d - - Dark theme +@@ -4563,6 +4563,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d + + More tools + + Exit diff --git a/build/patches/Add-flag-for-omnibox-autocomplete-filtering.patch b/build/patches/Add-flag-for-omnibox-autocomplete-filtering.patch index 877962ab..b2bc102e 100644 --- a/build/patches/Add-flag-for-omnibox-autocomplete-filtering.patch +++ b/build/patches/Add-flag-for-omnibox-autocomplete-filtering.patch @@ -26,7 +26,7 @@ diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/ #include "base/feature_list.h" #include "base/format_macros.h" #include "base/functional/bind.h" -@@ -553,6 +554,15 @@ AutocompleteController::AutocompleteController( +@@ -547,6 +548,15 @@ AutocompleteController::AutocompleteController( steady_state_omnibox_position_( metrics::OmniboxEventProto::UNKNOWN_POSITION), config_(config) { diff --git a/build/patches/Add-flag-to-disable-IPv6-probes.patch b/build/patches/Add-flag-to-disable-IPv6-probes.patch index d56c78c7..dbc74adb 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 -@@ -1204,6 +1204,7 @@ component("net") { +@@ -1215,6 +1215,7 @@ component("net") { ":net_deps", "//components/network_time/time_tracker", "//components/unexportable_keys", @@ -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" -@@ -1499,6 +1500,13 @@ int HostResolverManager::StartIPv6ReachabilityCheck( +@@ -1506,6 +1507,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 c8920c6e..e4fb56c8 100644 --- a/build/patches/Add-flag-to-disable-external-intent-requests.patch +++ b/build/patches/Add-flag-to-disable-external-intent-requests.patch @@ -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; -@@ -168,6 +169,7 @@ public class CustomTabDelegateFactory implements TabDelegateFactory { +@@ -167,6 +168,7 @@ public class CustomTabDelegateFactory implements TabDelegateFactory { @Override public boolean shouldDisableAllExternalIntents() { @@ -76,7 +76,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/Ext import org.chromium.chrome.browser.IntentHandler; import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.document.ChromeLauncherActivity; -@@ -137,7 +138,8 @@ public class ExternalNavigationDelegateImpl implements ExternalNavigationDelegat +@@ -139,7 +140,8 @@ public class ExternalNavigationDelegateImpl implements ExternalNavigationDelegat @Override public boolean shouldDisableExternalIntentRequestsForUrl( ExternalNavigationParams params, Intent intent) { @@ -86,7 +86,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/Ext } @Override -@@ -318,7 +320,7 @@ public class ExternalNavigationDelegateImpl implements ExternalNavigationDelegat +@@ -320,7 +322,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. @@ -195,7 +195,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 -@@ -1745,6 +1745,12 @@ public class ExternalNavigationHandler { +@@ -1796,6 +1796,12 @@ public class ExternalNavigationHandler implements ExternalNavigationHelper { return false; } @@ -208,7 +208,7 @@ diff --git a/components/external_intents/android/java/src/org/chromium/component private OverrideUrlLoadingResult shouldOverrideUrlLoadingInternal( ExternalNavigationParams params, Intent targetIntent, -@@ -1832,6 +1838,21 @@ public class ExternalNavigationHandler { +@@ -1883,6 +1889,21 @@ public class ExternalNavigationHandler implements ExternalNavigationHelper { return OverrideUrlLoadingResult.forNoOverride(); } diff --git a/build/patches/Add-flag-to-disable-vibration.patch b/build/patches/Add-flag-to-disable-vibration.patch index 7b71844f..383d8a01 100644 --- a/build/patches/Add-flag-to-disable-vibration.patch +++ b/build/patches/Add-flag-to-disable-vibration.patch @@ -20,7 +20,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.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 -@@ -106,6 +106,7 @@ void SetRuntimeFeatureDefaultsForPlatform( +@@ -81,6 +81,7 @@ void SetRuntimeFeatureDefaultsForPlatform( if (command_line.HasSwitch(switches::kDisableMediaSessionAPI)) { WebRuntimeFeatures::EnableMediaSession(false); } @@ -59,10 +59,10 @@ new file mode 100644 diff --git a/third_party/blink/public/platform/web_runtime_features.h b/third_party/blink/public/platform/web_runtime_features.h --- a/third_party/blink/public/platform/web_runtime_features.h +++ b/third_party/blink/public/platform/web_runtime_features.h -@@ -69,6 +69,7 @@ class BLINK_PLATFORM_EXPORT WebRuntimeFeatures : public WebRuntimeFeaturesBase { - static void EnableFingerprintingCanvasMeasureTextNoise(bool); +@@ -70,6 +70,7 @@ class BLINK_PLATFORM_EXPORT WebRuntimeFeatures : public WebRuntimeFeaturesBase { static void EnableFingerprintingCanvasImageDataNoise(bool); static void EnableFluentScrollbars(bool); + static void EnableDesktopAndroidScrollbars(bool); + static void EnableVibration(bool); static void EnableLocalNetworkAccessWebRTC(bool); @@ -104,7 +104,7 @@ diff --git a/third_party/blink/renderer/platform/exported/web_runtime_features.c diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -1176,6 +1176,10 @@ +@@ -1224,6 +1224,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 3c787105..44285d5b 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 -@@ -737,7 +737,7 @@ config("compiler") { +@@ -661,7 +661,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" ] } } -@@ -1836,7 +1836,7 @@ config("clang_revision") { +@@ -1861,7 +1861,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 ] -@@ -2211,7 +2211,9 @@ config("default_warnings") { +@@ -2236,7 +2236,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", -@@ -2265,6 +2267,15 @@ config("default_warnings") { +@@ -2290,6 +2292,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 4b3d2d84..866bfec8 100644 --- a/build/patches/Add-lifetime-options-for-permissions.patch +++ b/build/patches/Add-lifetime-options-for-permissions.patch @@ -233,7 +233,7 @@ diff --git a/chrome/browser/permissions/one_time_permissions_tracker_factory.cc diff --git a/chrome/browser/ui/views/permissions/chip/chip_controller.cc b/chrome/browser/ui/views/permissions/chip/chip_controller.cc --- a/chrome/browser/ui/views/permissions/chip/chip_controller.cc +++ b/chrome/browser/ui/views/permissions/chip/chip_controller.cc -@@ -236,7 +236,7 @@ void ChipController::OnWidgetDestroyed(views::Widget* widget) { +@@ -235,7 +235,7 @@ void ChipController::OnWidgetDestroyed(views::Widget* widget) { break; case permissions::PermissionAction::GRANTED_ONCE: active_chip_permission_request_manager_.value()->AcceptThisTime( @@ -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 -@@ -302,7 +302,7 @@ void PermissionPromptBubbleBaseView::RunButtonCallback(int button_id) { +@@ -321,7 +321,7 @@ void PermissionPromptBubbleBaseView::RunButtonCallback(int button_id) { delegate_->Accept(/*prompt_options=*/std::monostate()); return; case PermissionDialogButton::kAcceptOnce: @@ -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 -@@ -240,7 +240,7 @@ void GetOrigins(JNIEnv* env, +@@ -230,7 +230,7 @@ void GetOrigins(JNIEnv* env, seen_origins.push_back(origin); insertionFunc(env, static_cast(content_type), list, ConvertOriginToJavaString(env, origin), jembedder, @@ -373,10 +373,10 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.cc - ContentSettingsType::GEOLOCATION_WITH_OPTIONS, - ContentSettingsType::MEDIASTREAM_MIC, - ContentSettingsType::MEDIASTREAM_CAMERA, + ContentSettingsType::SENSORS, ContentSettingsType::HAND_TRACKING, ContentSettingsType::SMART_CARD_DATA, - ContentSettingsType::AR, -@@ -301,10 +333,6 @@ const std::vector& GetTypesWithTemporaryGrantsInHcsm() { +@@ -302,10 +334,6 @@ const std::vector& GetTypesWithTemporaryGrantsInHcsm() { ContentSettingsType::CAPTURED_SURFACE_CONTROL, #endif ContentSettingsType::KEYBOARD_LOCK, @@ -384,9 +384,9 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.cc - ContentSettingsType::GEOLOCATION_WITH_OPTIONS, - ContentSettingsType::MEDIASTREAM_MIC, - ContentSettingsType::MEDIASTREAM_CAMERA, + ContentSettingsType::SENSORS, ContentSettingsType::HAND_TRACKING, ContentSettingsType::AR, - ContentSettingsType::VR, diff --git a/components/content_settings/core/browser/content_settings_utils.h b/components/content_settings/core/browser/content_settings_utils.h --- a/components/content_settings/core/browser/content_settings_utils.h +++ b/components/content_settings/core/browser/content_settings_utils.h @@ -483,7 +483,7 @@ 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 -@@ -218,6 +218,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( +@@ -219,6 +219,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( // being requested. This is needed for the Clapper experiment // (crbug.com/458351800) and (crbug.com/463333225). bool requested_notifications = false; @@ -492,7 +492,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp for (const auto& permission : permission_info_list) { if (std::ranges::contains(permissions_to_display, permission.type)) { -@@ -230,6 +232,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( +@@ -231,6 +233,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 -@@ -256,7 +260,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( +@@ -257,7 +261,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 } } -@@ -269,7 +274,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( +@@ -270,7 +275,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 -@@ -1305,6 +1305,8 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, +@@ -1314,6 +1314,8 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, permission_info.is_one_time = (info.metadata.session_model() == content_settings::mojom::SessionModel::ONE_TIME); @@ -1153,11 +1153,11 @@ diff --git a/components/permissions/permission_prompt.h b/components/permissions + virtual void DenyThisTime(const PromptOptions& prompt_options, content_settings::mojom::LifetimeMode lifetime_option) = 0; virtual void Dismiss(const PromptOptions& prompt_options) = 0; virtual void Ignore(const PromptOptions& prompt_options) = 0; - + virtual void SwitchToLoudPrompt() = 0; diff --git a/components/permissions/permission_request.cc b/components/permissions/permission_request.cc --- a/components/permissions/permission_request.cc +++ b/components/permissions/permission_request.cc -@@ -37,6 +37,16 @@ PermissionRequest::PermissionRequest( +@@ -47,6 +47,16 @@ PermissionRequest::PermissionRequest( request_finished_callback_(std::move(request_finished_callback)), uses_automatic_embargo_(uses_automatic_embargo) {} @@ -1174,7 +1174,7 @@ diff --git a/components/permissions/permission_request.cc b/components/permissio PermissionRequest::~PermissionRequest() { std::move(request_finished_callback_).Run(); } -@@ -448,7 +458,19 @@ bool PermissionRequest::ShouldUseTwoOriginPrompt() const { +@@ -485,7 +495,19 @@ bool PermissionRequest::ShouldUseTwoOriginPrompt() const { } void PermissionRequest::PermissionGranted(const PromptOptions& prompt_options, @@ -1195,7 +1195,7 @@ diff --git a/components/permissions/permission_request.cc b/components/permissio std::move(permission_decided_callback_) .Run(PermissionPromptDecision{.overall_decision = is_one_time -@@ -459,7 +481,16 @@ void PermissionRequest::PermissionGranted(const PromptOptions& prompt_options, +@@ -496,7 +518,16 @@ void PermissionRequest::PermissionGranted(const PromptOptions& prompt_options, /*request_data=*/*data_); } @@ -1213,7 +1213,7 @@ diff --git a/components/permissions/permission_request.cc b/components/permissio std::move(permission_decided_callback_) .Run(PermissionPromptDecision{.overall_decision = PermissionDecision::kDeny, -@@ -469,6 +500,14 @@ void PermissionRequest::PermissionDenied() { +@@ -506,6 +537,14 @@ void PermissionRequest::PermissionDenied() { } void PermissionRequest::Cancelled(bool is_final_decision) { @@ -1406,7 +1406,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p request); } -@@ -1779,7 +1791,7 @@ void PermissionRequestManager::DoAutoResponseForTesting() { +@@ -1787,7 +1799,7 @@ void PermissionRequestManager::DoAutoResponseForTesting() { } switch (auto_response_for_test_) { case ACCEPT_ONCE: @@ -1418,7 +1418,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p diff --git a/components/permissions/permission_request_manager.h b/components/permissions/permission_request_manager.h --- a/components/permissions/permission_request_manager.h +++ b/components/permissions/permission_request_manager.h -@@ -185,8 +185,10 @@ class PermissionRequestManager +@@ -187,8 +187,10 @@ class PermissionRequestManager GURL GetRequestingOrigin() const override; GURL GetEmbeddingOrigin() const override; void Accept(const PromptOptions& prompt_options) override; @@ -1430,7 +1430,7 @@ diff --git a/components/permissions/permission_request_manager.h b/components/pe void Dismiss(const PromptOptions& prompt_options) override; void Ignore(const PromptOptions& prompt_options) override; void FinalizeCurrentRequests() override; -@@ -447,9 +449,11 @@ class PermissionRequestManager +@@ -449,9 +451,11 @@ class PermissionRequestManager // Calls PermissionGranted on a request and all its duplicates. void PermissionGrantedIncludingDuplicates(PermissionRequest* request, const PromptOptions& prompt_options, 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 71fa39f0..003efffd 100644 --- a/build/patches/Add-menu-item-to-bookmark-all-tabs.patch +++ b/build/patches/Add-menu-item-to-bookmark-all-tabs.patch @@ -36,7 +36,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/res/values/ids.xml b/chrome/android/java/res/values/ids.xml --- a/chrome/android/java/res/values/ids.xml +++ b/chrome/android/java/res/values/ids.xml -@@ -200,6 +200,7 @@ found in the LICENSE file. +@@ -203,6 +203,7 @@ found in the LICENSE file. @@ -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 -@@ -113,6 +113,7 @@ import org.chromium.chrome.browser.bookmarks.BookmarkPane; +@@ -114,6 +114,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; -@@ -321,6 +322,9 @@ import org.chromium.chrome.browser.ui.default_browser_promo.DefaultBrowserPromoU +@@ -327,6 +328,9 @@ import org.chromium.chrome.browser.ui.default_browser_promo.DefaultBrowserPromoU import org.chromium.chrome.browser.ui.desktop_windowing.AppHeaderUtils; import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeUtils; import org.chromium.chrome.browser.ui.edge_to_edge.TransitiveTopInsetProvider; @@ -65,8 +65,8 @@ 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; -@@ -336,6 +340,8 @@ import org.chromium.chrome.browser.usage_stats.UsageStatsService; - import org.chromium.chrome.browser.util.ChromeAccessibilityUtil; +@@ -344,6 +348,8 @@ import org.chromium.chrome.browser.util.ChromeAccessibilityUtil; + import org.chromium.chrome.browser.util.DefaultBrowserInfo; import org.chromium.chrome.browser.xr.scenecore.XrModule; import org.chromium.components.browser_ui.accessibility.AccessibilityFeatureMap; +import org.chromium.components.bookmarks.BookmarkId; @@ -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; -@@ -4030,6 +4036,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt +@@ -4160,6 +4166,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); -@@ -4164,6 +4172,41 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt +@@ -4295,6 +4303,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 -@@ -303,6 +303,14 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm +@@ -314,6 +314,14 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm // Bookmarks modelList.add(buildBookmarksItem()); @@ -141,9 +141,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab + shouldShowIconBeforeItem() ? R.drawable.ic_folder_blue_24dp : 0))); + // Recent Tabs - if (shouldShowRecentTabsItem()) modelList.add(buildRecentTabsItem()); - -@@ -503,6 +511,13 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm + if (!ChromeFeatureList.isEnabled(ChromeFeatureList.SUBMENUS_IN_APP_MENU) + && shouldShowRecentTabsItem()) { +@@ -537,6 +545,13 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm modelList.add(buildNewTabGroupItem()); modelList.add(buildCloseAllTabsItem()); if (shouldShowTinkerTank()) modelList.add(buildTinkerTankItem()); @@ -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 -@@ -4615,6 +4615,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4694,6 +4694,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d Select tabs @@ -473,7 +473,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/browser/ui/bookmarks/bookmark_ui_operations_helper.cc b/chrome/browser/ui/bookmarks/bookmark_ui_operations_helper.cc --- a/chrome/browser/ui/bookmarks/bookmark_ui_operations_helper.cc +++ b/chrome/browser/ui/bookmarks/bookmark_ui_operations_helper.cc -@@ -105,6 +105,8 @@ ui::mojom::DragOperation BookmarkUIOperationsHelper::DropBookmarks( +@@ -113,6 +113,8 @@ ui::mojom::DragOperation BookmarkUIOperationsHelper::DropBookmarks( if (is_reorder) { base::UmaHistogramEnumeration("Bookmarks.ReorderDropTarget", target); switch (target_parent()->GetType()) { @@ -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 -@@ -907,7 +907,7 @@ bool BookmarkModel::HasUserCreatedBookmarksOrFolders() const { +@@ -957,7 +957,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 { -@@ -1239,6 +1239,7 @@ void BookmarkModel::DoneLoading(std::unique_ptr details) { +@@ -1289,6 +1289,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(); @@ -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_; -@@ -627,6 +633,7 @@ class BookmarkModel : public BookmarkUndoProvider, +@@ -638,6 +644,7 @@ class BookmarkModel : public BookmarkUndoProvider, raw_ptr account_bookmark_bar_node_ = nullptr; raw_ptr account_other_node_ = nullptr; raw_ptr account_mobile_node_ = nullptr; @@ -808,7 +808,7 @@ diff --git a/components/bookmarks/browser/bookmark_node.h b/components/bookmarks diff --git a/components/bookmarks/browser/bookmark_storage.cc b/components/bookmarks/browser/bookmark_storage.cc --- a/components/bookmarks/browser/bookmark_storage.cc +++ b/components/bookmarks/browser/bookmark_storage.cc -@@ -45,6 +45,7 @@ base::DictValue EncodeModelToDict( +@@ -57,6 +57,7 @@ base::DictValue EncodeModelToDict( case BookmarkStorage::kSelectLocalOrSyncableNodes: return codec.Encode( model->bookmark_bar_node(), model->other_node(), model->mobile_node(), @@ -816,7 +816,7 @@ diff --git a/components/bookmarks/browser/bookmark_storage.cc b/components/bookm model->client()->EncodeLocalOrSyncableBookmarkSyncMetadata()); case BookmarkStorage::kSelectAccountNodes: // Either all permanent folders or none should exist. -@@ -61,6 +62,7 @@ base::DictValue EncodeModelToDict( +@@ -73,6 +74,7 @@ base::DictValue EncodeModelToDict( return codec.Encode(model->account_bookmark_bar_node(), model->account_other_node(), model->account_mobile_node(), @@ -851,34 +851,34 @@ diff --git a/components/bookmarks/browser/bookmark_uuids.h b/components/bookmark diff --git a/components/bookmarks/browser/model_loader.cc b/components/bookmarks/browser/model_loader.cc --- a/components/bookmarks/browser/model_loader.cc +++ b/components/bookmarks/browser/model_loader.cc -@@ -73,6 +73,9 @@ std::unique_ptr LoadBookmarks( +@@ -172,6 +172,9 @@ std::unique_ptr LoadBookmarks( std::unique_ptr account_mobile_folder_node = - BookmarkPermanentNode::CreateMobileBookmarks( - 0, /*is_account_node=*/true); + BookmarkPermanentNode::CreateMobileBookmarks(0, + /*is_account_node=*/true); + std::unique_ptr tabs_collection_folder_node = + BookmarkPermanentNode::CreateTabsCollectionBookmarks( + 0, /*is_account_node=*/true); - std::optional root_dict = - LoadFileToDict(account_file_path); -@@ -80,7 +83,8 @@ std::unique_ptr LoadBookmarks( - if (root_dict.has_value() && - codec.Decode(*root_dict, /*already_assigned_ids=*/{}, - account_bb_node.get(), account_other_folder_node.get(), -- account_mobile_folder_node.get(), &max_node_id, -+ account_mobile_folder_node.get(), -+ tabs_collection_folder_node.get(), &max_node_id, - &sync_metadata_str)) { + const base::expected + json_string = ReadFile(/*encryptor=*/nullptr, account_file_path, +@@ -186,7 +189,8 @@ std::unique_ptr LoadBookmarks( + } else if (codec.Decode(*root_dict, /*already_assigned_ids=*/{}, + account_bb_node.get(), + account_other_folder_node.get(), +- account_mobile_folder_node.get(), &max_node_id, ++ account_mobile_folder_node.get(), ++ tabs_collection_folder_node.get(), &max_node_id, + &sync_metadata_str)) { ids_assigned_to_account_nodes = codec.release_assigned_ids(); -@@ -122,7 +126,8 @@ std::unique_ptr LoadBookmarks( - if (root_dict.has_value() && - codec.Decode(*root_dict, std::move(ids_assigned_to_account_nodes), - details->bb_node(), details->other_folder_node(), -- details->mobile_folder_node(), &max_node_id, -+ details->mobile_folder_node(), -+ details->tabs_collection_folder_node(), &max_node_id, - &sync_metadata_str)) { +@@ -248,7 +252,8 @@ std::unique_ptr LoadBookmarks( + } else if (codec.Decode(*root_dict, + std::move(ids_assigned_to_account_nodes), + details->bb_node(), details->other_folder_node(), +- details->mobile_folder_node(), &max_node_id, ++ details->mobile_folder_node(), ++ details->tabs_collection_folder_node(), &max_node_id, + &sync_metadata_str)) { details->set_local_or_syncable_sync_metadata_str( std::move(sync_metadata_str)); diff --git a/components/sync_bookmarks/bookmark_specifics_conversions.cc b/components/sync_bookmarks/bookmark_specifics_conversions.cc diff --git a/build/patches/Add-menu-item-to-view-source.patch b/build/patches/Add-menu-item-to-view-source.patch index 44922fc0..33724dc3 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 -@@ -4066,6 +4066,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt +@@ -4196,6 +4196,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_DOWNLOADS_MANAGER); } RecordUserAction.record("MobileMenuDownloadManager"); @@ -39,7 +39,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 -@@ -2829,6 +2829,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -2888,6 +2888,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity return AppInstallMenuHandler.doOpenWebApk(this, 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 -@@ -1053,6 +1053,30 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties +@@ -1057,6 +1057,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 +@@ -407,6 +407,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat modelList.add(buildOpenInAppItem()); } @@ -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 -@@ -391,6 +391,9 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm +@@ -424,6 +424,9 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm modelList.add(buildOpenInAppItem()); } @@ -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 -@@ -342,6 +342,10 @@ CHAR_LIMIT guidelines: +@@ -346,6 +346,10 @@ CHAR_LIMIT guidelines: Chrome Tips diff --git a/build/patches/Add-option-to-force-tablet-UI.patch b/build/patches/Add-option-to-force-tablet-UI.patch index 99dcdbae..13bb4962 100644 --- a/build/patches/Add-option-to-force-tablet-UI.patch +++ b/build/patches/Add-option-to-force-tablet-UI.patch @@ -12,7 +12,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../chrome/browser/WarmupManager.java | 7 +++++-- .../ChromeAccessibilitySettingsDelegate.java | 19 +++++++++++++++++++ .../chrome/browser/app/ChromeActivity.java | 5 ++++- - .../overlays/strip/StripLayoutHelper.java | 10 ++++++++-- + .../overlays/strip/StripLayoutHelper.java | 1 + .../strip/StripLayoutHelperManager.java | 6 +++++- .../scene_layer/TabStripSceneLayer.java | 8 ++++++++ .../init/ChromeBrowserInitializer.java | 2 ++ @@ -37,7 +37,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../accessibility/AccessibilitySettings.java | 13 +++++++++++++ .../AccessibilitySettingsDelegate.java | 2 ++ .../chromium/ui/base/DeviceFormFactor.java | 14 ++++++++++++++ - 33 files changed, 172 insertions(+), 24 deletions(-) + 33 files changed, 165 insertions(+), 22 deletions(-) diff --git a/chrome/android/java/res/layout/custom_tabs_control_container.xml b/chrome/android/java/res/layout/custom_tabs_control_container.xml --- a/chrome/android/java/res/layout/custom_tabs_control_container.xml @@ -117,7 +117,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCo diff --git a/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java b/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java -@@ -63,6 +63,7 @@ import org.chromium.chrome.browser.toolbar.ControlContainer; +@@ -64,6 +64,7 @@ import org.chromium.chrome.browser.toolbar.ControlContainer; import org.chromium.components.embedder_support.util.UrlConstants; import org.chromium.content_public.browser.WebContents; import org.chromium.ui.LayoutInflaterUtils; @@ -125,7 +125,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.j import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.display.DisplayUtil; import org.chromium.url.GURL; -@@ -472,8 +473,10 @@ public class WarmupManager { +@@ -475,8 +476,10 @@ public class WarmupManager { ControlContainer controlContainer = mainView.findViewById(R.id.control_container); if (toolbarId != ActivityUtils.NO_RESOURCE_ID && controlContainer != null) { @@ -170,7 +170,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 -@@ -841,7 +841,10 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -845,7 +845,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) { @@ -185,7 +185,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 -@@ -144,6 +144,7 @@ import org.chromium.components.tab_group_sync.TabGroupSyncService; +@@ -147,6 +147,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; @@ -193,26 +193,10 @@ 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; -@@ -5335,8 +5336,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(); -- int verticalOffset = -- -(tabHeight - (int) mContext.getResources().getDimension(R.dimen.tab_strip_height)); -+ int tab_strip_height = -+ (int) mContext.getResources().getDimension(R.dimen.tab_strip_height_cromite); -+ if (DeviceFormFactor.isForceTabletUI()) { -+ tab_strip_height = -+ (int) mContext.getResources().getDimension(R.dimen.tab_strip_height_tabletui); -+ } -+ int verticalOffset = -(tabHeight - tab_strip_height); - mCloseButtonMenu.setVerticalOffset(verticalOffset); - - // 4. Set the horizontal offset to align the close button menu with the right side of the 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 -@@ -109,6 +109,7 @@ import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateMa +@@ -116,6 +116,7 @@ import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateMa import org.chromium.components.browser_ui.styles.SemanticColorUtils; import org.chromium.components.browser_ui.widget.gesture.BackPressHandler; import org.chromium.content_public.browser.LoadUrlParams; @@ -220,7 +204,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.PageTransition; import org.chromium.ui.base.WindowAndroid; -@@ -548,7 +549,10 @@ public class StripLayoutHelperManager +@@ -576,7 +577,10 @@ public class StripLayoutHelperManager mIsHeaderCustomizationSupported = ToolbarFeatures.isAppHeaderCustomizationSupported( /* isTablet= */ true, DisplayUtil.isContextInDefaultDisplay(mContext)); @@ -272,7 +256,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 -@@ -872,7 +872,9 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -893,7 +893,9 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { @Override public int getControlContainerHeightResource() { @@ -295,7 +279,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; -@@ -2046,7 +2048,9 @@ public class RootUiCoordinator +@@ -2063,7 +2065,9 @@ public class RootUiCoordinator protected int getFindToolbarStub() { int stubId = R.id.find_toolbar_stub; @@ -320,7 +304,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 -@@ -402,6 +402,7 @@ public final class ChromePreferenceKeys { +@@ -417,6 +417,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"; @@ -390,7 +374,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 -@@ -1024,7 +1024,7 @@ public class LocationBarCoordinator +@@ -1036,7 +1036,7 @@ public class LocationBarCoordinator } private boolean isTabletWindow() { @@ -402,7 +386,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 -@@ -1519,6 +1519,13 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1592,6 +1592,13 @@ Your Google account may have other forms of browsing history like searches and a Privacy guide explanation closed @@ -533,7 +517,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/ToolbarLayout.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java -@@ -65,6 +65,7 @@ import org.chromium.chrome.browser.util.BrowserUiUtils.ModuleTypeOnStartAndNtp; +@@ -66,6 +66,7 @@ import org.chromium.chrome.browser.util.BrowserUiUtils.ModuleTypeOnStartAndNtp; import org.chromium.components.feature_engagement.Tracker; import org.chromium.ui.base.ViewUtils; import org.chromium.ui.util.MotionEventUtils; @@ -541,7 +525,7 @@ 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; -@@ -600,7 +601,9 @@ public abstract class ToolbarLayout extends FrameLayout +@@ -591,7 +592,9 @@ public abstract class ToolbarLayout extends FrameLayout * @see Toolbar#getTabStripHeight() */ public int getTabStripHeightFromResource() { 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 45d26db7..691b7213 100644 --- a/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch +++ b/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch @@ -29,7 +29,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -57,6 +57,7 @@ import org.chromium.base.ApplicationStatus; +@@ -58,6 +58,7 @@ import org.chromium.base.ApplicationStatus; import org.chromium.base.Callback; import org.chromium.base.CallbackController; import org.chromium.base.CallbackUtils; @@ -37,7 +37,7 @@ 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; -@@ -2272,8 +2273,10 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt +@@ -2291,8 +2292,10 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt ActivityRestoreState.NUM_ENTRIES); } @@ -52,7 +52,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct 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 -@@ -9,6 +9,7 @@ import static org.chromium.components.content_settings.PrefNames.COOKIE_CONTROLS +@@ -10,6 +10,7 @@ import static org.chromium.ui.R.drawable.gshield_colorful; import android.content.Context; import android.content.Intent; @@ -60,15 +60,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import android.graphics.drawable.Drawable; import android.os.Bundle; import android.text.SpannableString; -@@ -22,6 +23,7 @@ import androidx.annotation.VisibleForTesting; - import androidx.preference.Preference; +@@ -24,6 +25,7 @@ import androidx.preference.Preference; + import org.chromium.base.ApiCompatibilityUtils; import org.chromium.base.Callback; +import org.chromium.base.ContextUtils; import org.chromium.base.IntentUtils; import org.chromium.base.metrics.RecordHistogram; import org.chromium.base.metrics.RecordUserAction; -@@ -117,6 +119,8 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -119,6 +121,8 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private final SharedPreferencesManager mSharedPreferencesManager = ChromeSharedPreferences.getInstance(); @@ -77,7 +77,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting private ManagedPreferenceDelegate mManagedPreferenceDelegate; @VisibleForTesting static final String PREF_THIRD_PARTY_COOKIES = "third_party_cookies"; private static final String PREF_ADVANCED_PROTECTION_INFO = "advanced_protection_info"; -@@ -401,7 +405,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -403,7 +407,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)) { -@@ -461,6 +469,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -463,6 +471,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 -@@ -2905,6 +2905,12 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -2978,6 +2978,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 621edd8d..5b8bdefa 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 @@ -70,7 +70,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser import org.chromium.chrome.browser.layouts.LayoutStateProvider.LayoutStateObserver; import org.chromium.chrome.browser.layouts.LayoutType; import org.chromium.chrome.browser.profiles.Profile; -@@ -426,10 +427,15 @@ public class TabGroupUiMediator implements BackPressHandler { +@@ -428,10 +429,15 @@ public class TabGroupUiMediator implements BackPressHandler { UrlConstantResolverFactory.getForProfile(currentTabProfile); Tab parentTabToAttach = relatedTabs.get(relatedTabs.size() - 1); @@ -232,7 +232,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java -@@ -415,6 +415,7 @@ public final class ChromePreferenceKeys { +@@ -430,6 +430,7 @@ public final class ChromePreferenceKeys { public static final String HOMEPAGE_USE_CHROME_NTP = "Chrome.Homepage.UseNTP"; public static final String HOMEPAGE_USE_DEFAULT_URI = "homepage_partner_enabled"; @@ -254,7 +254,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -1360,6 +1360,9 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1422,6 +1422,9 @@ Your Google account may have other forms of browsing history like searches and a Last hour @@ -267,19 +267,19 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro 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 -@@ -123,6 +123,8 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -126,6 +126,8 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { pref_registration_flags); registry->RegisterBooleanPref(prefs::kPinSplitTabButton, false, pref_registration_flags); + registry->RegisterBooleanPref(prefs::kNewTabPageIsHomePage, false, + PrefRegistry::NO_REGISTRATION_FLAGS); - registry->RegisterInt64Pref(prefs::kDefaultBrowserLastDeclined, 0); + registry->RegisterInt64Pref(prefs::kDefaultBrowserInfobarLastDeclined, 0); registry->RegisterBooleanPref(prefs::kWebAppCreateOnDesktop, true); 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 -@@ -1344,6 +1344,10 @@ inline constexpr char kSplitViewDragAndDropNudgeUsedCount[] = +@@ -1265,6 +1265,10 @@ inline constexpr char kSplitViewDragAndDropNudgeUsedCount[] = // by enterprise policy. inline constexpr char kGeminiSettings[] = "browser.gemini_settings"; 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 98712cc8..4cf2b02e 100644 --- a/build/patches/Add-setting-to-enable-Credman-for-passkeys.patch +++ b/build/patches/Add-setting-to-enable-Credman-for-passkeys.patch @@ -129,8 +129,8 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut +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; -@@ -166,8 +168,7 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon + import org.chromium.content_public.browser.Visibility; +@@ -167,8 +169,7 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon mIsPaymentRequest = options.isPaymentCredentialCreation; mRequestCallback = requestCallback; mRequestCallback.setCompletionCallback(this::cleanupRequest); @@ -140,7 +140,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut mRequestCallback.onComplete( WebauthnRequestResponse.forFailedMakeCredential( AuthenticatorStatus.NOT_IMPLEMENTED, -@@ -246,8 +247,7 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -254,8 +255,7 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon && DeviceFeatureMap.isEnabled( DeviceFeatureList .WEBAUTHN_AUTHENTICATOR_PASSWORDS_ONLY_IMMEDIATE_REQUESTS); @@ -150,7 +150,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut || (options.publicKey == null && !isPasswordOnlyFlux)) { RequestMetrics metrics = new RequestMetrics.Builder() -@@ -287,12 +287,11 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -300,12 +300,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 -@@ -366,22 +365,19 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -379,22 +378,19 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon capabilities.add( createWebAuthnClientCapability( AuthenticatorConstants.CAPABILITY_CONDITIONAL_GET, @@ -189,9 +189,9 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut - .WEBAUTHN_IMMEDIATE_GET) - && isUvpaa)); + false)); - boolean signalSupported = - isUvpaa - && DeviceFeatureMap.isEnabled( + capabilities.add( + createWebAuthnClientCapability( + AuthenticatorConstants 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 @@ -317,15 +317,15 @@ diff --git a/components/webauthn/features.h b/components/webauthn/features.h 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 -@@ -136,6 +136,7 @@ BASE_FEATURE(kWebAuthnAndroidSignal, - "WebAuthenticationAndroidSignal", - base::FEATURE_ENABLED_BY_DEFAULT); +@@ -124,6 +124,7 @@ BASE_FEATURE(kWebAuthnPublishPrelinkingInfo, + "WebAuthenticationPublishPrelinkingInfo", + base::FEATURE_DISABLED_BY_DEFAULT); #endif // BUILDFLAG(IS_ANDROID) +SET_CROMITE_FEATURE_DISABLED(kWebAuthnImmediateGet); // Disabled by default. - BASE_FEATURE(kDigitalCredentialsHybridLinking, -@@ -184,6 +185,7 @@ BASE_FEATURE_PARAM(int, + BASE_FEATURE(kWebAuthnHelloSignal, +@@ -177,6 +178,7 @@ BASE_FEATURE_PARAM(int, BASE_FEATURE(kWebAuthnImmediateGetAutoselect, "WebAuthenticationImmediateGetAutoselect", base::FEATURE_ENABLED_BY_DEFAULT); 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 0266955d..2b19e983 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 -@@ -478,6 +478,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -488,6 +488,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { } if (mParams.isAnchor()) { ModelList linkGroup = new ModelList(); @@ -138,19 +138,19 @@ 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 { - getProfile(), - false); - }); +@@ -1132,6 +1135,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { + title = mParams.getLinkText(); + } + tabItemDelegate.onReadLater(mParams.getUrl(), title); + } else if (itemId == R.id.contextmenu_open_in_tab) { + mItemDelegate.onOpenUrl(mParams.getUrl(), mParams.getReferrer()); } else if (itemId == R.id.contextmenu_open_in_chrome) { recordContextMenuSelection(ContextMenuUma.Action.OPEN_IN_CHROME); - mItemDelegate.onOpenInChrome(mParams.getUrl(), mParams.getPageUrl()); + tabItemDelegate.onOpenInChrome(mParams.getUrl(), mParams.getPageUrl()); diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java -@@ -414,6 +414,14 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { +@@ -417,6 +417,14 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { mTab.loadUrl(loadUrlParams); } @@ -168,8 +168,8 @@ 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 -@@ -443,6 +443,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { - &kTabFreezingUsesDiscard, +@@ -446,6 +446,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { + &kTabClosureMethodRefactor, &kTabModelInitFixes, &kTabStorageSqlitePrototype, + &blink::features::kShowAlwaysContextMenuOnLinks, @@ -179,16 +179,16 @@ 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 -@@ -514,6 +514,8 @@ public abstract class ChromeFeatureList { +@@ -526,6 +526,8 @@ public abstract class ChromeFeatureList { "DisableToolbarSwipeUp"; public static final String MOVE_TOP_TOOLBAR_TO_BOTTOM = "MoveTopToolbarToBottom"; + public static final String SHOW_ALWAYS_CONTEXT_MENU_ON_LINKS = + "ShowAlwaysContextMenuOnLinks"; - public static final String NEW_TAB_PAGE_CUSTOMIZATION_TOOLBAR_BUTTON = - "NewTabPageCustomizationToolbarButton"; + public static final String NEW_TAB_PAGE_CUSTOMIZATION_THEME_SYNC = + "NewTabPageCustomizationThemeSync"; public static final String NEW_TAB_PAGE_CUSTOMIZATION_V2 = "NewTabPageCustomizationV2"; -@@ -1024,6 +1026,8 @@ public abstract class ChromeFeatureList { +@@ -1049,6 +1051,8 @@ public abstract class ChromeFeatureList { newCachedFlag(DISABLE_TOOLBAR_SWIPE_UP, false); public static final CachedFlag sMoveTopToolbarToBottom = newCachedFlag(MOVE_TOP_TOOLBAR_TO_BOTTOM, false); @@ -197,7 +197,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final CachedFlag sPaintPreviewDemo = newCachedFlag(PAINT_PREVIEW_DEMO, false); public static final CachedFlag sPersistAcrossReboots = newCachedFlag(PERSIST_ACROSS_REBOOTS, false); -@@ -1293,6 +1297,7 @@ public abstract class ChromeFeatureList { +@@ -1323,6 +1327,7 @@ public abstract class ChromeFeatureList { sTopControlsRefactorV2, sTouchToSearchCallout, sUnparcelIntentFileDescriptors, @@ -208,7 +208,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -1584,6 +1584,12 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1657,6 +1657,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 -@@ -3247,6 +3253,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -3320,6 +3326,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d Open in new Chrome tab @@ -297,7 +297,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c diff --git a/components/embedder_support/android/java/src/org/chromium/components/embedder_support/contextmenu/ContextMenuItemDelegate.java b/components/embedder_support/android/java/src/org/chromium/components/embedder_support/contextmenu/ContextMenuItemDelegate.java --- a/components/embedder_support/android/java/src/org/chromium/components/embedder_support/contextmenu/ContextMenuItemDelegate.java +++ b/components/embedder_support/android/java/src/org/chromium/components/embedder_support/contextmenu/ContextMenuItemDelegate.java -@@ -10,6 +10,7 @@ import androidx.annotation.IntDef; +@@ -11,6 +11,7 @@ import androidx.annotation.IntDef; import org.chromium.build.annotations.NullMarked; import org.chromium.content_public.browser.WebContents; @@ -305,7 +305,7 @@ diff --git a/components/embedder_support/android/java/src/org/chromium/component import org.chromium.url.GURL; import java.lang.annotation.Retention; -@@ -150,6 +151,8 @@ public interface ContextMenuItemDelegate { +@@ -175,6 +176,8 @@ public interface ContextMenuItemDelegate { */ GURL getPageUrl(); @@ -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" -@@ -422,6 +423,17 @@ void HTMLAnchorElementBase::NavigateToHyperlink( +@@ -429,6 +430,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; -@@ -502,6 +514,15 @@ void HTMLAnchorElementBase::NavigateToHyperlink( +@@ -509,6 +521,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; -@@ -538,7 +559,7 @@ bool HTMLAnchorElementBase::IsValidInterestInvoker(Element& target) const { +@@ -545,7 +566,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(); -@@ -596,13 +617,12 @@ void HTMLAnchorElementBase::HandleClick(MouseEvent& event) { +@@ -603,13 +624,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( -@@ -612,7 +632,9 @@ void HTMLAnchorElementBase::HandleClick(MouseEvent& event) { +@@ -619,7 +639,9 @@ void HTMLAnchorElementBase::HandleClick(MouseEvent& event) { frame->GetEventHandler().SetDelayedNavigationTaskHandle( std::move(task_handle)); } else { @@ -488,7 +488,7 @@ diff --git a/third_party/blink/renderer/core/html/html_image_element.cc b/third_ + bool HTMLImageElement::draggable() const { // Image elements are draggable by default. - return !EqualIgnoringASCIICase(FastGetAttribute(html_names::kDraggableAttr), + return !EqualIgnoringAsciiCase(FastGetAttribute(html_names::kDraggableAttr), diff --git a/third_party/blink/renderer/core/html/html_image_element.h b/third_party/blink/renderer/core/html/html_image_element.h --- a/third_party/blink/renderer/core/html/html_image_element.h +++ b/third_party/blink/renderer/core/html/html_image_element.h @@ -552,7 +552,7 @@ diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/t // Clear any previously set cached results if we are resetting the hit test // result. image_selection_cached_result_ = nullptr; -@@ -844,7 +857,7 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame, +@@ -843,7 +856,7 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame, SetAutofillData(result.InnerNode(), data); diff --git a/build/patches/Add-site-engagement-flag.patch b/build/patches/Add-site-engagement-flag.patch index b42cd226..5a476696 100644 --- a/build/patches/Add-site-engagement-flag.patch +++ b/build/patches/Add-site-engagement-flag.patch @@ -26,10 +26,10 @@ 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 -@@ -165,6 +165,7 @@ +@@ -166,6 +166,7 @@ #include "components/sensitive_content/features.h" #include "components/services/heap_profiling/public/cpp/switches.h" - #include "components/services/storage/public/cpp/buckets/bucket_info.h" + #include "components/services/storage/dom_storage/features.h" +#include "components/site_engagement/core/features.h" #include "components/shared_highlighting/core/common/shared_highlighting_features.h" #include "components/sharing_message/features.h" diff --git a/build/patches/Add-support-for-ISupportHelpAndFeedback.patch b/build/patches/Add-support-for-ISupportHelpAndFeedback.patch index f2b10d59..0a695084 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 -@@ -1018,8 +1018,12 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -1056,8 +1056,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 92339b4b..247695b0 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 -@@ -139,6 +139,16 @@ static void JNI_ContentUriUtils_AddFileInfoToVector(JNIEnv* env, +@@ -140,6 +140,16 @@ static void JNI_ContentUriUtils_AddFileInfoToVector( Time::FromMillisecondsSinceUnixEpoch(last_modified)); } diff --git a/build/patches/Allow-building-without-enable_reporting.patch b/build/patches/Allow-building-without-enable_reporting.patch index 63e8174b..85781d2c 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 -@@ -1608,6 +1608,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) { +@@ -1628,6 +1628,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( -@@ -1621,6 +1622,7 @@ std::vector ComputeReportingURLs(RenderFrameHostImpl* frame_host) { +@@ -1641,6 +1642,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 -@@ -16557,12 +16557,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport( +@@ -16685,12 +16685,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport( } } } @@ -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 -@@ -1890,7 +1890,6 @@ mojom("mojom") { +@@ -1894,7 +1894,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 -@@ -1229,6 +1229,7 @@ interface NetworkContext { +@@ -1247,6 +1247,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, -@@ -1236,6 +1237,7 @@ interface NetworkContext { +@@ -1254,6 +1255,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, -@@ -1246,6 +1248,7 @@ interface NetworkContext { +@@ -1264,6 +1266,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`. @@ -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" -@@ -2889,9 +2890,11 @@ DocumentResourceCoordinator* LocalFrame::GetDocumentResourceCoordinator() { +@@ -2890,9 +2891,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" -@@ -671,7 +672,9 @@ class CORE_EXPORT LocalFrame final +@@ -677,7 +678,9 @@ class CORE_EXPORT LocalFrame final return client_hints_preferences_; } diff --git a/build/patches/Allow-building-without-supervised-users.patch b/build/patches/Allow-building-without-supervised-users.patch index adce842b..04c0efd3 100644 --- a/build/patches/Allow-building-without-supervised-users.patch +++ b/build/patches/Allow-building-without-supervised-users.patch @@ -25,7 +25,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 -@@ -823,7 +823,6 @@ if (_is_default_toolchain) { +@@ -833,7 +833,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", @@ -36,7 +36,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn diff --git a/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java b/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java --- a/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java -@@ -95,7 +95,6 @@ public class ChromeFeedbackCollector extends FeedbackCollector profile, -@@ -2062,9 +2058,6 @@ void ProfileManager::AddProfileToStorage(Profile* profile) { +@@ -2077,9 +2073,6 @@ void ProfileManager::AddProfileToStorage(Profile* profile) { init_params.icon_index = profile->GetPrefs()->GetInteger(prefs::kProfileAvatarIndex); @@ -165,7 +165,7 @@ diff --git a/chrome/browser/ui/webui/managed_ui_handler.cc b/chrome/browser/ui/w diff --git a/chrome/browser/ui/webui/management/management_ui_handler.cc b/chrome/browser/ui/webui/management/management_ui_handler.cc --- a/chrome/browser/ui/webui/management/management_ui_handler.cc +++ b/chrome/browser/ui/webui/management/management_ui_handler.cc -@@ -620,10 +620,6 @@ bool ManagementUIHandler::managed() const { +@@ -621,10 +621,6 @@ bool ManagementUIHandler::managed() const { void ManagementUIHandler::RegisterPrefChange( PrefChangeRegistrar& pref_registrar) { diff --git a/build/patches/Allow-playing-audio-in-background.patch b/build/patches/Allow-playing-audio-in-background.patch index ff931da1..aac8fbde 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 -@@ -1296,6 +1296,12 @@ bool WebMediaPlayerImpl::HasAudio() const { +@@ -1342,6 +1342,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()); -@@ -3658,7 +3664,10 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const { +@@ -3740,7 +3746,10 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const { const bool preserve_audio = HasUnmutedAudio() || audio_source_provider_->IsAudioBeingCaptured(); // Audio only stream is allowed to play when in background. @@ -51,7 +51,7 @@ diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.h b/third_party/blink/renderer/platform/media/web_media_player_impl.h --- a/third_party/blink/renderer/platform/media/web_media_player_impl.h +++ b/third_party/blink/renderer/platform/media/web_media_player_impl.h -@@ -211,6 +211,9 @@ class PLATFORM_EXPORT WebMediaPlayerImpl +@@ -213,6 +213,9 @@ class PLATFORM_EXPORT WebMediaPlayerImpl bool HasVideo() const override; bool HasAudio() const override; diff --git a/build/patches/Always-open-browser-controls-in-new-tab.patch b/build/patches/Always-open-browser-controls-in-new-tab.patch index a0094c90..5469deb9 100644 --- a/build/patches/Always-open-browser-controls-in-new-tab.patch +++ b/build/patches/Always-open-browser-controls-in-new-tab.patch @@ -18,7 +18,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM import org.chromium.chrome.browser.DefaultBrowserInfo; import org.chromium.chrome.browser.IntentHandler; import org.chromium.chrome.browser.bookmarks.BookmarkManagerOpenerImpl; -@@ -45,6 +46,7 @@ import org.chromium.chrome.browser.preferences.Pref; +@@ -46,6 +47,7 @@ import org.chromium.chrome.browser.preferences.Pref; import org.chromium.chrome.browser.price_tracking.PriceDropNotificationManagerFactory; import org.chromium.chrome.browser.printing.TabPrinter; import org.chromium.chrome.browser.profiles.Profile; @@ -26,7 +26,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM import org.chromium.chrome.browser.tabmodel.TabModelSelector; import org.chromium.chrome.browser.tabmodel.document.ChromeAsyncTabLauncher; import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; -@@ -348,6 +350,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { +@@ -351,6 +353,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { @Nullable Referrer referrer, boolean navigateToTab, @Nullable AdditionalNavigationParams additionalNavigationParams) { @@ -34,7 +34,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM RecordUserAction.record("MobileNewTabOpened"); RecordUserAction.record("LinkOpenedInNewTab"); LoadUrlParams loadUrlParams = new LoadUrlParams(url.getSpec()); -@@ -368,6 +371,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { +@@ -371,6 +374,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { * @param url The URL to open. */ public void onOpenInNewTabInGroup(GURL url, @Nullable Referrer referrer) { 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 e96a98f3..89246e79 100644 --- a/build/patches/Always-use-new-tab-page-for-default-home-page.patch +++ b/build/patches/Always-use-new-tab-page-for-default-home-page.patch @@ -68,7 +68,7 @@ diff --git a/chrome/browser/partnercustomizations/java/src/org/chromium/chrome/b diff --git a/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrl.java b/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrl.java --- a/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrl.java +++ b/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrl.java -@@ -96,6 +96,7 @@ public class TemplateUrl { +@@ -109,6 +109,7 @@ public class TemplateUrl { * prepopulated_engines.json. */ public String getNewTabURL() { @@ -79,7 +79,7 @@ diff --git a/components/search_engines/android/java/src/org/chromium/components/ diff --git a/components/search_engines/android/template_url_service_android.cc b/components/search_engines/android/template_url_service_android.cc --- a/components/search_engines/android/template_url_service_android.cc +++ b/components/search_engines/android/template_url_service_android.cc -@@ -412,6 +412,7 @@ bool TemplateUrlServiceAndroid::SetPlayAPISearchEngine( +@@ -414,6 +414,7 @@ bool TemplateUrlServiceAndroid::SetPlayAPISearchEngine( jimage_translate_source_language_param_key, const base::android::JavaRef& jimage_translate_target_language_param_key) { diff --git a/build/patches/Android-Pixel-Perfect-Mode.patch b/build/patches/Android-Pixel-Perfect-Mode.patch index a346f805..b61b95a9 100644 --- a/build/patches/Android-Pixel-Perfect-Mode.patch +++ b/build/patches/Android-Pixel-Perfect-Mode.patch @@ -42,7 +42,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../render_widget_host_input_event_router.cc | 5 +- .../input/render_widget_host_view_input.cc | 3 ++ components/input/render_widget_targeter.cc | 4 +- - .../thin_webview/internal/thin_webview.cc | 2 +- + .../thin_webview/internal/thin_webview.cc | 3 +- components/viz/service/input/input_manager.cc | 2 +- .../render_input_router_support_android.cc | 2 +- ...render_input_router_support_child_frame.cc | 2 +- @@ -107,7 +107,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html ui/display/mojom/screen_info_mojom_traits.h | 4 ++ ui/display/screen_info.h | 1 + ui/events/blink/blink_event_util.cc | 2 +- - 97 files changed, 530 insertions(+), 138 deletions(-) + 97 files changed, 531 insertions(+), 138 deletions(-) create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sPixelPerfect.java create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Pixel-perfect-mode.grdp create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Pixel-perfect-mode.inc @@ -117,7 +117,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/android_webview/browser/aw_contents.cc b/android_webview/browser/aw_contents.cc --- a/android_webview/browser/aw_contents.cc +++ b/android_webview/browser/aw_contents.cc -@@ -1004,7 +1004,7 @@ void AwContents::OnSizeChanged(JNIEnv* env, int w, int h, int ow, int oh) { +@@ -1008,7 +1008,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 -@@ -737,7 +737,7 @@ InputHandlerPointerResult InputHandler::MouseMoveAt( +@@ -747,7 +747,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 -@@ -1355,7 +1355,7 @@ void VizLayerContext::SetVisible(bool visible) { +@@ -1356,7 +1356,7 @@ void VizLayerContext::SetVisible(bool visible) { service_->SetVisible(visible); } @@ -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 -@@ -1416,7 +1416,7 @@ void LayerTreeHost::SetEventListenerProperties( +@@ -1429,7 +1429,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) { -@@ -1527,9 +1527,11 @@ void LayerTreeHost::SetOverscrollBehavior(const OverscrollBehavior& behavior) { +@@ -1540,9 +1540,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); -@@ -1545,6 +1547,7 @@ void LayerTreeHost::SetPageScaleFactorAndLimits(float page_scale_factor, +@@ -1558,6 +1560,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; @@ -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 -@@ -2877,7 +2877,7 @@ viz::RegionCaptureBounds LayerTreeHostImpl::CollectRegionCaptureBounds() { +@@ -2695,7 +2695,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, -@@ -3038,7 +3038,7 @@ viz::CompositorFrameMetadata LayerTreeHostImpl::MakeCompositorFrameMetadata() { +@@ -2856,7 +2856,7 @@ viz::CompositorFrameMetadata LayerTreeHostImpl::MakeCompositorFrameMetadata() { return metadata; } @@ -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 -@@ -1765,7 +1765,7 @@ void ScrollTree::clear() { +@@ -1773,7 +1773,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); -@@ -2318,7 +2318,7 @@ gfx::Vector2dF ScrollTree::ScrollBy(const ScrollNode& scroll_node, +@@ -2326,7 +2326,7 @@ gfx::Vector2dF ScrollTree::ScrollBy(const ScrollNode& scroll_node, return old_offset + scroll - new_offset; } @@ -487,7 +487,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/WarmupManager.java b/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java -@@ -302,7 +302,7 @@ public class WarmupManager { +@@ -303,7 +303,7 @@ public class WarmupManager { int height = bounds.bottom - bounds.top; webContents = tab.getWebContents(); assumeNonNull(webContents); @@ -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; +@@ -43,6 +43,9 @@ import androidx.annotation.CallSuper; 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; -@@ -553,7 +556,25 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -556,7 +559,25 @@ public abstract class ChromeActivity extends AsyncInitializationActivity // Ensure that mConfig is initialized before tablet mode changes. mConfig = getResources().getConfiguration(); @@ -539,21 +539,21 @@ 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 -@@ -1005,7 +1005,7 @@ public class CompositorViewHolder extends FrameLayout - int viewportInsets = controlsInsets + keyboardInset; +@@ -1049,7 +1049,7 @@ public class CompositorViewHolder extends FrameLayout + int verticalViewportInsets = controlsInsets + keyboardInset; if (isAttachedToWindow(view)) { -- webContents.setSize(width, height - viewportInsets); -+ webContents.setSize(width, height - viewportInsets, viewportInsets); +- webContents.setSize(width - horizontalViewportInsets, height - verticalViewportInsets); ++ webContents.setSize(width - horizontalViewportInsets, height - viewportInsets, verticalViewportInsets); // Dispatch the geometrychange JavaScript event to the page. // TODO(bokan): This doesn't belong in updateWebContentsSize. Ideally the content/ layer -@@ -1025,7 +1025,7 @@ public class CompositorViewHolder extends FrameLayout - MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY), - MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY)); +@@ -1071,7 +1071,7 @@ public class CompositorViewHolder extends FrameLayout view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight()); -- webContents.setSize(view.getWidth(), view.getHeight() - viewportInsets); -+ webContents.setSize(view.getWidth(), view.getHeight() - viewportInsets, viewportInsets); + webContents.setSize( + view.getWidth() - horizontalViewportInsets, +- view.getHeight() - verticalViewportInsets); ++ view.getHeight() - viewportInsets, verticalViewportInsets); requestRender(); } } @@ -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 -@@ -2490,7 +2490,7 @@ class TabImpl implements Tab { +@@ -2429,7 +2429,7 @@ class TabImpl implements Tab { View compositorView = assumeNonNull(getActivity()).getCompositorViewHolderSupplier().get(); assumeNonNull(compositorView); @@ -629,7 +629,7 @@ diff --git a/chrome/browser/android/bottombar/overlay_panel_content.cc b/chrome/ diff --git a/chrome/browser/android/compositor/tab_content_manager.cc b/chrome/browser/android/compositor/tab_content_manager.cc --- a/chrome/browser/android/compositor/tab_content_manager.cc +++ b/chrome/browser/android/compositor/tab_content_manager.cc -@@ -26,6 +26,7 @@ +@@ -28,6 +28,7 @@ #include "chrome/browser/android/tab_android.h" #include "chrome/browser/thumbnail/cc/thumbnail.h" #include "components/viz/common/frame_sinks/copy_output_result.h" @@ -637,8 +637,8 @@ 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" -@@ -74,7 +75,10 @@ class TabContentManager::TabReadbackRequest { - std::move(result_callback).Run(viz::CopyOutputBitmapWithMetadata()); +@@ -129,7 +130,10 @@ class TabContentManager::TabReadbackRequest : public RetryableTask { + std::move(result_callback).Run(content::CopyFromSurfaceResult()); return; } - gfx::Rect source_rect = gfx::Rect(view_size_in_pixels); @@ -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, base::TimeDelta(), + rwhv->CopyFromSurface(source_rect, thumbnail_size, kTabReadbackTimeout, 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,15 +836,16 @@ 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 -@@ -104,7 +104,7 @@ void ThinWebView::ResizeWebContents(const gfx::Size& size) { - return; +@@ -131,7 +131,8 @@ void ThinWebView::ResizeWebContents(const gfx::Size& size) { - web_contents_->GetNativeView()->OnPhysicalBackingSizeChanged(size); -- web_contents_->GetNativeView()->OnSizeChanged(size.width(), size.height()); -+ web_contents_->GetNativeView()->OnSizeChanged(size.width(), size.height(), size.width(), size.height()); - } + web_contents_->GetNativeView()->OnPhysicalBackingSizeChanged(viewport_size); + web_contents_->GetNativeView()->OnSizeChanged(viewport_size.width(), +- viewport_size.height()); ++ viewport_size.height(), ++ viewport_size.width(), viewport_size.height()); - } // namespace android + // Position the WebContents layer to account for top/left insets. + // Content is drawn at (0,0) in its own layer space, so we move the layer. diff --git a/components/viz/service/input/input_manager.cc b/components/viz/service/input/input_manager.cc --- a/components/viz/service/input/input_manager.cc +++ b/components/viz/service/input/input_manager.cc @@ -884,7 +885,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 -@@ -1955,7 +1955,7 @@ base::expected LayerContextImpl::DoUpdateDisplayTree( +@@ -1957,7 +1957,7 @@ base::expected LayerContextImpl::DoUpdateDisplayTree( return base::unexpected("Invalid page scale factors"); } layers.SetPageScaleFactorAndLimitsForDisplayTree( @@ -896,7 +897,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 -@@ -189,7 +189,7 @@ void SelectionPopupController::MoveRangeSelectionExtent( +@@ -191,7 +191,7 @@ void SelectionPopupController::MoveRangeSelectionExtent( web_contents_impl->MoveRangeSelectionExtent(gfx::ToRoundedPoint(extent)); } @@ -905,7 +906,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()); -@@ -321,7 +321,8 @@ bool SelectionPopupController::ShowSelectionMenu( +@@ -327,7 +327,8 @@ bool SelectionPopupController::ShowSelectionMenu( can_select_all, can_edit_richly, should_suggest, static_cast(params.source_type), render_frame_host->GetJavaRenderFrameHost(), @@ -985,7 +986,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 -@@ -9439,7 +9439,7 @@ void RenderFrameHostImpl::ShowPopupMenu( +@@ -9547,7 +9547,7 @@ void RenderFrameHostImpl::ShowPopupMenu( #endif } @@ -1191,7 +1192,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 -@@ -821,8 +821,11 @@ WebContentsAndroid::GetFullscreenVideoSize(JNIEnv* env) { +@@ -826,8 +826,11 @@ WebContentsAndroid::GetFullscreenVideoSize(JNIEnv* env) { return Java_WebContentsImpl_createSize(env, size.width(), size.height()); } @@ -1208,7 +1209,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 -@@ -187,7 +187,7 @@ class CONTENT_EXPORT WebContentsAndroid { +@@ -188,7 +188,7 @@ class CONTENT_EXPORT WebContentsAndroid { base::android::ScopedJavaLocalRef GetFullscreenVideoSize( JNIEnv* env); @@ -1220,7 +1221,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 -@@ -535,7 +535,11 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs( +@@ -507,7 +507,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 +1237,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 -@@ -531,7 +531,8 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper +@@ -532,7 +532,8 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper boolean shouldSuggest, int sourceType, RenderFrameHost renderFrameHost, @@ -1246,7 +1247,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select mMenuModelBridge = menuModelBridge; RecordHistogram.recordEnumeratedHistogram( "Android.ShowSelectionMenuSourceType", sourceType, MenuSourceType.MAX_VALUE); -@@ -541,6 +542,8 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper +@@ -542,6 +543,8 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper mXDip = xDip; mYDip = yDip; mSelectionRect.set(left, top, right, offsetBottom); @@ -1258,7 +1259,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select diff --git a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java --- a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java +++ b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java -@@ -988,9 +988,9 @@ public class WebContentsImpl +@@ -1015,9 +1015,9 @@ public class WebContentsImpl } @Override @@ -1270,7 +1271,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/webcon } @Override -@@ -1477,7 +1477,7 @@ public class WebContentsImpl +@@ -1508,7 +1508,7 @@ public class WebContentsImpl Rect getFullscreenVideoSize(long nativeWebContentsAndroid); @@ -1294,7 +1295,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 -@@ -18,6 +18,10 @@ +@@ -22,6 +22,10 @@ namespace features { @@ -1344,7 +1345,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 -@@ -82,6 +82,7 @@ struct LayerTreeUpdate { +@@ -83,6 +83,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 +1471,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 -@@ -1267,8 +1267,19 @@ void WebViewImpl::UpdateICBAndResizeViewport( +@@ -1256,8 +1256,19 @@ void WebViewImpl::UpdateICBAndResizeViewport( if (GetBrowserControls().PermittedState() == cc::BrowserControlsState::kBoth && !GetBrowserControls().ShrinkViewport()) { @@ -1492,7 +1493,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p } GetPageScaleConstraintsSet().DidChangeInitialContainingBlockSize(icb_size); -@@ -1348,7 +1359,8 @@ void WebViewImpl::DidUpdateBrowserControls() { +@@ -1337,7 +1348,8 @@ void WebViewImpl::DidUpdateBrowserControls() { ResizeViewportAnchor::ResizeScope resize_scope(*resize_viewport_anchor_); visual_viewport.SetBrowserControlsAdjustment( @@ -1502,7 +1503,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p } } -@@ -1412,7 +1424,7 @@ void WebViewImpl::ResizeWithBrowserControls( +@@ -1401,7 +1413,7 @@ void WebViewImpl::ResizeWithBrowserControls( float bottom_controls_height, bool browser_controls_shrink_layout) { ResizeWithBrowserControls( @@ -1511,7 +1512,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(), -@@ -1422,6 +1434,8 @@ void WebViewImpl::ResizeWithBrowserControls( +@@ -1411,6 +1423,8 @@ void WebViewImpl::ResizeWithBrowserControls( void WebViewImpl::ResizeWithBrowserControls( const gfx::Size& main_frame_widget_size, const gfx::Size& visible_viewport_size, @@ -1520,7 +1521,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 -@@ -1430,6 +1444,11 @@ void WebViewImpl::ResizeWithBrowserControls( +@@ -1419,6 +1433,11 @@ void WebViewImpl::ResizeWithBrowserControls( return; } @@ -1532,7 +1533,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) -@@ -2114,7 +2133,7 @@ void WebViewImpl::DidAttachLocalMainFrame() { +@@ -2107,7 +2126,7 @@ void WebViewImpl::DidAttachLocalMainFrame() { web_preferences_.prefers_reduced_motion); MainFrameImpl()->FrameWidgetImpl()->SetPageScaleStateAndLimits( viewport.Scale(), viewport.IsPinchGestureActive(), @@ -1541,7 +1542,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_ = -@@ -2961,7 +2980,7 @@ void WebViewImpl::RefreshPageScaleFactor() { +@@ -2954,7 +2973,7 @@ void WebViewImpl::RefreshPageScaleFactor() { auto& viewport = GetPage()->GetVisualViewport(); MainFrameImpl()->FrameWidgetImpl()->SetPageScaleStateAndLimits( viewport.Scale(), viewport.IsPinchGestureActive(), @@ -1550,7 +1551,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p } } -@@ -3040,7 +3059,7 @@ void WebViewImpl::UpdatePageDefinedViewportConstraints( +@@ -3034,7 +3053,7 @@ void WebViewImpl::UpdatePageDefinedViewportConstraints( TextAutosizer::UpdatePageInfoInAllFrames(GetPage()->MainFrame()); } @@ -1559,7 +1560,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p if (should_auto_resize_ || !MainFrameImpl()) return; -@@ -3368,6 +3387,10 @@ float WebViewImpl::MinimumPageScaleFactor() const { +@@ -3395,6 +3414,10 @@ float WebViewImpl::MinimumPageScaleFactor() const { return GetPageScaleConstraintsSet().FinalConstraints().minimum_scale; } @@ -1570,7 +1571,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; } -@@ -3418,7 +3441,7 @@ void WebViewImpl::SendResizeEventForMainFrame() { +@@ -3445,7 +3468,7 @@ void WebViewImpl::SendResizeEventForMainFrame() { auto& viewport = GetPage()->GetVisualViewport(); MainFrameImpl()->FrameWidgetImpl()->SetPageScaleStateAndLimits( viewport.Scale(), viewport.IsPinchGestureActive(), @@ -1579,7 +1580,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p } } -@@ -3963,7 +3986,7 @@ void WebViewImpl::PageScaleFactorChanged() { +@@ -3996,7 +4019,7 @@ void WebViewImpl::PageScaleFactorChanged() { DCHECK(viewport.IsActiveViewport()); MainFrameImpl()->FrameWidgetImpl()->SetPageScaleStateAndLimits( viewport.Scale(), viewport.IsPinchGestureActive(), @@ -1591,7 +1592,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/exported/web_view_impl.h b/third_party/blink/renderer/core/exported/web_view_impl.h --- a/third_party/blink/renderer/core/exported/web_view_impl.h +++ b/third_party/blink/renderer/core/exported/web_view_impl.h -@@ -168,6 +168,7 @@ class CORE_EXPORT WebViewImpl final : public WebView, +@@ -169,6 +169,7 @@ class CORE_EXPORT WebViewImpl final : public WebView, void AdvanceFocus(bool reverse) override; float PageScaleFactor() const override; float MinimumPageScaleFactor() const override; @@ -1599,7 +1600,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.h b/third_pa float MaximumPageScaleFactor() const override; void SetDefaultPageScaleLimits(float min_scale, float max_scale) override; void SetInitialPageScaleOverride(float) override; -@@ -281,6 +282,8 @@ class CORE_EXPORT WebViewImpl final : public WebView, +@@ -282,6 +283,8 @@ class CORE_EXPORT WebViewImpl final : public WebView, // includes all browser controls params such as the min heights. void ResizeWithBrowserControls(const gfx::Size& main_frame_widget_size, const gfx::Size& visible_viewport_size, @@ -1608,7 +1609,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. -@@ -841,6 +844,8 @@ class CORE_EXPORT WebViewImpl final : public WebView, +@@ -844,6 +847,8 @@ class CORE_EXPORT WebViewImpl final : public WebView, // The upper bound on the size when auto-resizing. gfx::Size max_auto_size_; @@ -1620,7 +1621,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 -@@ -1805,8 +1805,11 @@ void LocalFrameView::PerformPostLayoutTasks(bool visual_viewport_size_changed) { +@@ -1871,8 +1871,11 @@ void LocalFrameView::PerformPostLayoutTasks(bool visual_viewport_size_changed) { } float LocalFrameView::InputEventsScaleFactor() const { @@ -1698,7 +1699,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); -@@ -869,10 +901,13 @@ gfx::Point VisualViewport::ClampDocumentOffsetAtScale(const gfx::Point& offset, +@@ -901,10 +933,13 @@ gfx::Point VisualViewport::ClampDocumentOffsetAtScale(const gfx::Point& offset, return clamped; } @@ -1761,7 +1762,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 -@@ -1886,6 +1886,9 @@ void WebFrameWidgetImpl::UpdateVisualProperties( +@@ -1885,6 +1885,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 +1772,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 -@@ -1893,7 +1896,7 @@ void WebFrameWidgetImpl::UpdateVisualProperties( +@@ -1892,7 +1895,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 +1781,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); -@@ -1906,7 +1909,7 @@ void WebFrameWidgetImpl::UpdateVisualProperties( +@@ -1905,7 +1908,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 +1790,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th /*is_pinch_gesture_active=*/false); } -@@ -1950,6 +1953,18 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( +@@ -1949,6 +1952,18 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( new_compositor_viewport_pixel_rect, device_scale_factor_for_testing_ / non_testing_device_scale_factor_); } @@ -1808,7 +1809,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th if (ForMainFrame()) { if (size_ != new_size) { -@@ -1967,6 +1982,8 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( +@@ -1966,6 +1981,8 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( size_.value(), widget_base_->DIPsToCeiledBlinkSpace( widget_base_->VisibleViewportSize()), @@ -1817,7 +1818,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th visual_properties.browser_controls_params); return; } -@@ -2000,6 +2017,8 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( +@@ -1999,6 +2016,8 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( View()->ResizeWithBrowserControls( size_.value(), widget_base_->VisibleViewportSize(), @@ -1826,7 +1827,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th visual_properties.browser_controls_params); } -@@ -2384,6 +2403,8 @@ void WebFrameWidgetImpl::SetZoomInternal(double zoom_level, +@@ -2383,6 +2402,8 @@ void WebFrameWidgetImpl::SetZoomInternal(double zoom_level, View()->ZoomFactorForViewportLayout() * static_cast(View()->ZoomLevelToZoomFactor(zoom_level)) * static_cast(css_zoom_factor); @@ -1835,7 +1836,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()) { -@@ -3439,6 +3460,7 @@ void WebFrameWidgetImpl::SetRootLayer(scoped_refptr layer) { +@@ -3438,6 +3459,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 +1844,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th View()->MaximumPageScaleFactor()); } -@@ -4824,9 +4846,10 @@ void WebFrameWidgetImpl::SetPageScaleStateAndLimits( +@@ -4870,9 +4892,10 @@ void WebFrameWidgetImpl::SetPageScaleStateAndLimits( float page_scale_factor, bool is_pinch_gesture_active, float minimum, @@ -1855,7 +1856,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()) { -@@ -4950,7 +4973,10 @@ void WebFrameWidgetImpl::OrientationChanged() { +@@ -4996,7 +5019,10 @@ void WebFrameWidgetImpl::OrientationChanged() { void WebFrameWidgetImpl::DidUpdateSurfaceAndScreen( const display::ScreenInfos& previous_original_screen_infos) { display::ScreenInfo screen_info = widget_base_->GetScreenInfo(); @@ -1867,7 +1868,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 -@@ -5160,7 +5186,7 @@ void WebFrameWidgetImpl::SetDeviceScaleFactorForTesting(float factor) { +@@ -5206,7 +5232,7 @@ void WebFrameWidgetImpl::SetDeviceScaleFactorForTesting(float factor) { if (!device_scale_factor_for_testing_) { non_testing_device_scale_factor_ = @@ -1879,7 +1880,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 -@@ -661,6 +661,7 @@ class CORE_EXPORT WebFrameWidgetImpl +@@ -662,6 +662,7 @@ class CORE_EXPORT WebFrameWidgetImpl void SetPageScaleStateAndLimits(float page_scale_factor, bool is_pinch_gesture_active, float minimum, @@ -1890,7 +1891,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.h b/thi diff --git a/third_party/blink/renderer/core/frame/web_local_frame_impl.cc b/third_party/blink/renderer/core/frame/web_local_frame_impl.cc --- a/third_party/blink/renderer/core/frame/web_local_frame_impl.cc +++ b/third_party/blink/renderer/core/frame/web_local_frame_impl.cc -@@ -2564,7 +2564,7 @@ void WebLocalFrameImpl::PaintDevToolsOverlays(GraphicsContext& context) { +@@ -2577,7 +2577,7 @@ void WebLocalFrameImpl::PaintDevToolsOverlays(GraphicsContext& context) { dev_tools_agent_->PaintOverlays(context); } @@ -1899,7 +1900,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_local_frame_impl.cc b/thi TRACE_EVENT0("blink", "WebLocalFrameImpl::createFrameView"); DCHECK(GetFrame()); // If frame() doesn't exist, we probably didn't init -@@ -3046,7 +3046,7 @@ void WebLocalFrameImpl::ShowContextMenuFromExternal( +@@ -3068,7 +3068,7 @@ void WebLocalFrameImpl::ShowContextMenuFromExternal( std::move(context_menu_client), params); } @@ -1911,7 +1912,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_local_frame_impl.cc b/thi diff --git a/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc b/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc --- a/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc +++ b/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc -@@ -1523,6 +1523,7 @@ bool HTMLCanvasElement::PushFrame(scoped_refptr&& image, +@@ -1517,6 +1517,7 @@ bool HTMLCanvasElement::PushFrame(scoped_refptr&& image, } bool HTMLCanvasElement::ShouldAccelerate() const { @@ -1922,7 +1923,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 -@@ -2138,7 +2138,7 @@ GestureEventWithHitTestResults EventHandler::HitTestResultForGestureEvent( +@@ -2149,7 +2149,7 @@ GestureEventWithHitTestResults EventHandler::HitTestResultForGestureEvent( hit_test_result); } @@ -1934,7 +1935,7 @@ diff --git a/third_party/blink/renderer/core/input/event_handler.cc b/third_part diff --git a/third_party/blink/renderer/core/inspector/inspector_emulation_agent.cc b/third_party/blink/renderer/core/inspector/inspector_emulation_agent.cc --- a/third_party/blink/renderer/core/inspector/inspector_emulation_agent.cc +++ b/third_party/blink/renderer/core/inspector/inspector_emulation_agent.cc -@@ -1075,7 +1075,8 @@ InspectorEmulationAgent::setSmallViewportHeightDifferenceOverride( +@@ -1090,7 +1090,8 @@ InspectorEmulationAgent::setSmallViewportHeightDifferenceOverride( // Ensure the override is applied immediately without having to wait for // `WebFrameWidgetImpl::UpdateVisualProperties()` to be called. GetWebViewImpl()->ResizeWithBrowserControls( @@ -1947,7 +1948,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 -@@ -1290,6 +1290,10 @@ void Page::CalculateEmulatedScreenSetting(LocalFrame* frame, bool force) { +@@ -1301,6 +1301,10 @@ void Page::CalculateEmulatedScreenSetting(LocalFrame* frame, bool force) { || disable_screen_emulated_) { isEnabled = false; } @@ -1961,14 +1962,14 @@ 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/viewport_description.cc b/third_party/blink/renderer/core/page/viewport_description.cc --- a/third_party/blink/renderer/core/page/viewport_description.cc +++ b/third_party/blink/renderer/core/page/viewport_description.cc -@@ -87,7 +87,7 @@ float ViewportDescription::ResolveViewportLength( +@@ -80,7 +80,7 @@ float ViewportDescription::ResolveViewportLength( NOTREACHED(); } -PageScaleConstraints ViewportDescription::Resolve( +PageScaleConstraints ViewportDescription::Resolve( // POI const gfx::SizeF& initial_viewport_size, - const Length& legacy_fallback_width) const { + const ViewportLength& legacy_fallback_width) const { float result_width = kValueAuto; 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 @@ -1996,7 +1997,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 -@@ -6443,5 +6443,9 @@ +@@ -6675,5 +6675,9 @@ // crbug.com/435623334. name: "XSLTSpecialTrial", }, @@ -2077,8 +2078,8 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox } @@ -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 + // TODO(crbug.com/40106459): Pass in the modifier instead of a bool + // once the refactor is done. For details, see // crbug.com/1016955. - HandlePointerDown(event_with_callback, mouse_event.PositionInWidget()); + HandlePointerDown(event_with_callback, ScalePoint(mouse_event.PositionInWidget())); @@ -2126,7 +2127,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox const cc::ElementId targeted_element = input_handler_->FindFrameElementIdAtPoint(point); -@@ -1121,7 +1139,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleMouseWheel( +@@ -1124,7 +1142,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleMouseWheel( } } @@ -2135,7 +2136,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; -@@ -1318,7 +1336,7 @@ InputHandlerProxy::HandleGestureScrollUpdate( +@@ -1319,7 +1337,7 @@ InputHandlerProxy::HandleGestureScrollUpdate( scroll_data->set_unused_delta_y(scroll_result.unused_scroll_delta.y()); }); @@ -2144,7 +2145,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox gesture_event.SourceDevice()); if (elastic_overscroll_controller_) { -@@ -1411,8 +1429,8 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HitTestTouchEvent( +@@ -1412,8 +1430,8 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HitTestTouchEvent( } cc::TouchAction touch_action = cc::TouchAction::kAuto; @@ -2155,7 +2156,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. -@@ -1527,7 +1545,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleTouchStart( +@@ -1528,7 +1546,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleTouchStart( touch_event.touches_length == 1) { DCHECK(touch_event.touches[0].state == WebTouchPoint::State::kStatePressed); cc::InputHandlerPointerResult pointer_result = HandlePointerDown( @@ -2164,7 +2165,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; -@@ -1590,7 +1608,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleTouchMove( +@@ -1591,7 +1609,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleTouchMove( touch_event.touch_start_or_first_touch_move); if (touch_event.touches_length == 1) { cc::InputHandlerPointerResult pointer_result = HandlePointerMove( @@ -2173,7 +2174,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; -@@ -1633,7 +1651,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleTouchEnd( +@@ -1634,7 +1652,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleTouchEnd( touch_event.touches_length); if (touch_event.touches_length == 1) { cc::InputHandlerPointerResult pointer_result = HandlePointerUp( @@ -2185,7 +2186,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 -@@ -1683,7 +1683,9 @@ void WidgetBase::RequestAnimationAfterDelayTimerFired(TimerBase*) { +@@ -1687,7 +1687,9 @@ void WidgetBase::RequestAnimationAfterDelayTimerFired(TimerBase*) { client_->ScheduleAnimation(/*urgent=*/urgent_for_input); } @@ -2196,7 +2197,7 @@ diff --git a/third_party/blink/renderer/platform/widget/widget_base.cc b/third_p return client_->GetOriginalScreenInfos().current().device_scale_factor; } -@@ -1717,7 +1719,7 @@ void WidgetBase::UpdateSurfaceAndScreenInfo( +@@ -1721,7 +1723,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, @@ -2205,7 +2206,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. -@@ -1847,56 +1849,56 @@ void WidgetBase::CountDroppedPointerDownForEventTiming(unsigned count) { +@@ -1851,56 +1853,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? @@ -2275,7 +2276,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 -@@ -406,7 +406,7 @@ class PLATFORM_EXPORT WidgetBase : public mojom::blink::Widget, +@@ -407,7 +407,7 @@ class PLATFORM_EXPORT WidgetBase : public mojom::blink::Widget, void OnDevToolsSessionConnectionChanged(bool attached); // Helper to get the non-emulated device scale factor. @@ -2299,7 +2300,7 @@ diff --git a/ui/android/delegated_frame_host_android.cc b/ui/android/delegated_f 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 @@ bool EventForwarder::OnTouchEvent(JNIEnv* env, +@@ -144,7 +144,7 @@ bool EventForwarder::OnTouchEvent(JNIEnv* env, JNI_MotionEvent::Java_MotionEvent_getDownTime(env, motion_event)); auto event = ui::MotionEventAndroidFactory::CreateFromJava( env, /*event=*/motion_event, @@ -2308,7 +2309,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, -@@ -191,7 +191,7 @@ void EventForwarder::OnMouseEvent( +@@ -198,7 +198,7 @@ void EventForwarder::OnMouseEvent( /*tool_type=*/android_tool_type); auto event = ui::MotionEventAndroidFactory::CreateFromJava( env, /*event=*/motion_event, @@ -2317,7 +2318,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, -@@ -225,7 +225,7 @@ void EventForwarder::OnDragEvent(JNIEnv* env, +@@ -232,7 +232,7 @@ void EventForwarder::OnDragEvent(JNIEnv* env, const JavaRef& j_text, const JavaRef& j_html, const JavaRef& j_url) { @@ -2326,7 +2327,7 @@ diff --git a/ui/android/event_forwarder.cc b/ui/android/event_forwarder.cc 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 @@ bool EventForwarder::OnGestureEvent(JNIEnv* env, +@@ -247,7 +247,7 @@ bool EventForwarder::OnGestureEvent(JNIEnv* env, int32_t type, int64_t time_ms, float scale) { @@ -2335,7 +2336,7 @@ diff --git a/ui/android/event_forwarder.cc b/ui/android/event_forwarder.cc auto size = view_->GetSizeDIPs(); float x = size.width() / 2; float y = size.height() / 2; -@@ -270,7 +270,7 @@ bool EventForwarder::OnGenericMotionEvent(JNIEnv* env, +@@ -277,7 +277,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, @@ -2344,7 +2345,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, -@@ -353,7 +353,7 @@ void EventForwarder::DoubleTap(JNIEnv* env, +@@ -360,7 +360,7 @@ void EventForwarder::DoubleTap(JNIEnv* env, int64_t time_ms, int32_t x, int32_t y) { @@ -2353,7 +2354,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, -@@ -372,7 +372,7 @@ void EventForwarder::StartFling(JNIEnv* env, +@@ -379,7 +379,7 @@ void EventForwarder::StartFling(JNIEnv* env, if (velocity_x == 0 && velocity_y == 0) return; @@ -2419,7 +2420,7 @@ diff --git a/ui/android/view_android.cc b/ui/android/view_android.cc ScopedJavaLocalRef ViewAndroid::GetEventForwarder() { if (!event_forwarder_) { DCHECK(!RootPathHasEventForwarder(parent_)) -@@ -152,7 +156,7 @@ void ViewAndroid::AddChild(ViewAndroid* child) { +@@ -153,7 +157,7 @@ void ViewAndroid::AddChild(ViewAndroid* child) { // spurious events with empty size from being sent down. if (child->match_parent() && !bounds_device_px_.IsEmpty() && child->GetSizeDevicePx() != bounds_device_px_.size()) { @@ -2428,7 +2429,7 @@ diff --git a/ui/android/view_android.cc b/ui/android/view_android.cc child->DispatchOnSizeChanged(); } -@@ -501,7 +505,7 @@ void ViewAndroid::OnVerticalScrollDirectionChanged(bool direction_up, +@@ -502,7 +506,7 @@ void ViewAndroid::OnVerticalScrollDirectionChanged(bool direction_up, env, delegate, direction_up, current_scroll_ratio); } @@ -2437,7 +2438,7 @@ diff --git a/ui/android/view_android.cc b/ui/android/view_android.cc // Match-parent view must not receive size events. DCHECK(!match_parent()); -@@ -511,13 +515,15 @@ void ViewAndroid::OnSizeChanged(int width, int height) { +@@ -512,13 +516,15 @@ void ViewAndroid::OnSizeChanged(int width, int height) { return; } @@ -2455,7 +2456,7 @@ diff --git a/ui/android/view_android.cc b/ui/android/view_android.cc if (bounds_device_px_.size() == size_device_px) { return; } -@@ -525,12 +531,15 @@ void ViewAndroid::OnSizeChangedInternal(const gfx::Size& size_device_px) { +@@ -526,12 +532,15 @@ void ViewAndroid::OnSizeChangedInternal(const gfx::Size& size_device_px) { bounds_device_px_.set_size(size_device_px); float scale = GetDipScale(); @@ -2474,7 +2475,7 @@ diff --git a/ui/android/view_android.cc b/ui/android/view_android.cc } } -@@ -591,6 +600,10 @@ gfx::Size ViewAndroid::GetSizeDevicePx() const { +@@ -592,6 +601,10 @@ gfx::Size ViewAndroid::GetSizeDevicePx() const { return bounds_device_px_.size(); } diff --git a/build/patches/Android-fonts-fingerprinting-mitigation.patch b/build/patches/Android-fonts-fingerprinting-mitigation.patch index f31bb3e6..b470a3ba 100644 --- a/build/patches/Android-fonts-fingerprinting-mitigation.patch +++ b/build/patches/Android-fonts-fingerprinting-mitigation.patch @@ -43,12 +43,12 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../skia/src/ports/SkFontConfigInterface.cpp | 5 + .../ports/SkFontConfigInterface_direct.cpp | 5 + .../src/ports/SkFontConfigInterface_direct.h | 1 + - .../skia/src/ports/SkFontMgr_android.cpp | 282 ++- + .../skia/src/ports/SkFontMgr_android.cpp | 284 ++- .../skia/src/ports/SkFontMgr_android_data.cpp | 1641 +++++++++++++++++ .../skia/src/ports/SkFontMgr_android_ndk.cpp | 2 +- .../src/ports/SkFontMgr_android_parser.cpp | 66 +- .../skia/src/ports/SkFontMgr_android_parser.h | 5 +- - 42 files changed, 2447 insertions(+), 86 deletions(-) + 42 files changed, 2448 insertions(+), 87 deletions(-) create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Android-fonts-fingerprinting-mitigation.grdp create mode 100644 components/component_updater/installer_policies/fonts_pack_component_installer.cc create mode 100644 components/component_updater/installer_policies/fonts_pack_component_installer.h @@ -60,7 +60,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java b/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java --- a/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java +++ b/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java -@@ -970,6 +970,9 @@ public final class ProductionSupportedFlagList { +@@ -996,6 +996,9 @@ public final class ProductionSupportedFlagList { "Hides user preference on the system keyboard by setting the standard " + "eng layout and removing the layout information from the " + "javascript keyboard events."), @@ -122,7 +122,7 @@ diff --git a/chrome/android/java/res/xml/developer_preferences.xml b/chrome/andr diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -8000,6 +8000,13 @@ static_library("browser") { +@@ -7871,6 +7871,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 -@@ -101,6 +101,11 @@ +@@ -100,6 +100,11 @@ #include "chrome/browser/component_updater/file_type_policies_component_installer.h" #endif @@ -151,7 +151,7 @@ diff --git a/chrome/browser/component_updater/registration.cc b/chrome/browser/c namespace component_updater { namespace { -@@ -134,6 +139,11 @@ void DeleteOldComponents(const base::FilePath& user_data_dir) { +@@ -133,6 +138,11 @@ void DeleteOldComponents(const base::FilePath& user_data_dir) { void RegisterComponentsForUpdate() { auto* const cus = g_browser_process->component_updater(); @@ -190,7 +190,7 @@ diff --git a/chrome/browser/ui/prefs/prefs_tab_helper.cc b/chrome/browser/ui/pre // If a font name in prefs default values starts with a comma, consider it's a // comma-separated font list and resolve it to the first available font. #define PREFS_FONT_LIST 1 -@@ -442,9 +441,9 @@ void PrefsTabHelper::RegisterProfilePrefs( +@@ -447,9 +446,9 @@ void PrefsTabHelper::RegisterProfilePrefs( value = gfx::FontList::FirstAvailableOrFirst(value); } #else // !PREFS_FONT_LIST @@ -670,7 +670,7 @@ diff --git a/components/services/font/public/mojom/font_service.mojom b/componen diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn --- a/content/browser/BUILD.gn +++ b/content/browser/BUILD.gn -@@ -2611,6 +2611,17 @@ source_set("browser") { +@@ -2637,6 +2637,17 @@ source_set("browser") { ] } @@ -688,7 +688,7 @@ diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn if (is_linux || is_chromeos) { sources -= [ "file_system_access/file_path_watcher/file_path_watcher_stub.cc" ] -@@ -2657,6 +2668,13 @@ source_set("browser") { +@@ -2683,6 +2694,13 @@ source_set("browser") { deps += [ "//components/services/font_data:lib" ] } @@ -705,9 +705,9 @@ diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn diff --git a/content/browser/renderer_host/render_process_host_impl_receiver_bindings.cc b/content/browser/renderer_host/render_process_host_impl_receiver_bindings.cc --- a/content/browser/renderer_host/render_process_host_impl_receiver_bindings.cc +++ b/content/browser/renderer_host/render_process_host_impl_receiver_bindings.cc -@@ -52,6 +52,11 @@ - #include "third_party/blink/public/mojom/android_font_lookup/android_font_lookup.mojom.h" - #endif +@@ -56,6 +56,11 @@ + #include "content/browser/renderer_host/p2p/socket_dispatcher_host.h" + #endif // BUILDFLAG(IS_P2P_ENABLED) +#if BUILDFLAG(IS_ANDROID) +#include "components/services/font/public/mojom/font_service.mojom.h" // nogncheck @@ -717,7 +717,7 @@ diff --git a/content/browser/renderer_host/render_process_host_impl_receiver_bin #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) #include "components/services/font/public/mojom/font_service.mojom.h" // nogncheck #include "content/browser/font_service.h" // nogncheck -@@ -352,6 +357,13 @@ void RenderProcessHostImpl::IOThreadHostImpl::BindHostReceiver( +@@ -356,6 +361,13 @@ void RenderProcessHostImpl::IOThreadHostImpl::BindHostReceiver( } #endif @@ -734,7 +734,7 @@ diff --git a/content/browser/renderer_host/render_process_host_impl_receiver_bin diff --git a/content/child/BUILD.gn b/content/child/BUILD.gn --- a/content/child/BUILD.gn +++ b/content/child/BUILD.gn -@@ -139,6 +139,13 @@ target(link_target_type, "child") { +@@ -137,6 +137,13 @@ target(link_target_type, "child") { ] } @@ -850,11 +850,11 @@ diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer +#endif #endif - #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) diff --git a/content/renderer/renderer_main.cc b/content/renderer/renderer_main.cc --- a/content/renderer/renderer_main.cc +++ b/content/renderer/renderer_main.cc -@@ -200,8 +200,6 @@ int RendererMain(MainFunctionParams parameters) { +@@ -184,8 +184,6 @@ int RendererMain(MainFunctionParams parameters) { // On Linux, Windows, and ChromeOS, the font manager is overridden or // specially handled in RendererBlinkPlatformImpl(). On other platforms, // initialise the default one on a thread pool, to avoid blocking on it later. @@ -905,7 +905,7 @@ new file mode 100644 diff --git a/skia/BUILD.gn b/skia/BUILD.gn --- a/skia/BUILD.gn +++ b/skia/BUILD.gn -@@ -446,6 +446,18 @@ component("skia") { +@@ -444,6 +444,18 @@ component("skia") { sources += skia_ports_fci_sources } @@ -1374,28 +1374,26 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia } this->buildNameToFamilyMap(families, custom ? custom->fIsolated : false); this->findDefaultStyleSet(); -@@ -309,12 +452,12 @@ protected: +@@ -309,33 +452,53 @@ protected: } - enum class NameType { Self, Fallback }; + using Matcher = bool (*)(const SkString& familyName, const NameToFamily&); - static sk_sp find_family_style_character( + sk_sp find_family_style_character( const SkString& familyName, const TArray& nameToFamilyMap, - NameType nameType, const SkFontStyle& style, bool elegant, -- const SkString& langTag, SkUnichar character) -+ const SkString& langTag, SkUnichar character) const + const SkString& langTag, SkUnichar character, +- Matcher matcher) ++ Matcher matcher) const { for (auto&& nameToFamily : nameToFamilyMap) { - SkFontStyleSet_Android* family = nameToFamily.styleSet; -@@ -325,22 +468,42 @@ protected: - continue; - } + if (!matcher(familyName, nameToFamily)) { + continue; } -- sk_sp face(family->matchAStyle(style)); +- sk_sp face(nameToFamily.styleSet->matchAStyle(style)); + if (custom_) { -+ sk_sp face(family->matchCromiteStyle(style)); ++ sk_sp face(nameToFamily.styleSet->matchCromiteStyle(style)); + + if (!langTag.isEmpty() && + std::none_of(face->fLang.begin(), face->fLang.end(), [&](const SkLanguage& lang){ @@ -1432,29 +1430,32 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia + { + continue; + } - -- if (face->unicharToGlyph(character) != 0) { -- return face; ++ + if (SkToBool(face->fVariantStyle & kElegant_FontVariant) != elegant) { + continue; + } -+ + +- if (face->unicharToGlyph(character) != 0) { +- return face; + if (face->unicharToGlyph(character) != 0) { + return face; + } } } return nullptr; -@@ -355,7 +518,7 @@ protected: - // The variant 'default' means 'compact and elegant'. - // As a result, it is not possible to know the variant context from the font alone. - // TODO: add 'is_elegant' and 'is_compact' bits to 'style' request. -- sk_sp matchingTypeface; -+ sk_sp matchingTypeface; - SkString familyNameString(familyName); - for (const SkString& currentFamilyName : { familyNameString, SkString() }) { - // The first time match anything elegant, second time anything not elegant. -@@ -435,6 +598,7 @@ protected: +@@ -360,9 +523,9 @@ protected: + + auto find = [this, &style, &character](const SkString& familyName, + const SkString& lang, +- bool elegant) -> sk_sp ++ bool elegant) -> sk_sp + { +- sk_sp matchingTypeface; ++ sk_sp matchingTypeface; + if (!familyName.isEmpty()) { + matchingTypeface = find_family_style_character( + familyName, fNameToFamilyMap, style, elegant, lang, character, +@@ -475,6 +638,7 @@ protected: private: std::unique_ptr fScanner; @@ -1462,7 +1463,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia TArray> fStyleSets; sk_sp fDefaultStyleSet; -@@ -456,7 +620,7 @@ private: +@@ -496,7 +660,7 @@ private: } sk_sp newSet = @@ -1471,7 +1472,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia if (0 == newSet->count()) { return; } -@@ -502,7 +666,11 @@ static char const * const gSystemFontUseStrings[] = { +@@ -542,7 +706,11 @@ static char const * const gSystemFontUseStrings[] = { } // namespace @@ -1484,7 +1485,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia std::unique_ptr scanner) { if (custom) { SkASSERT(0 <= custom->fSystemFontUse); -@@ -515,5 +683,5 @@ sk_sp SkFontMgr_New_Android(const SkFontMgr_Android_CustomFonts* cust +@@ -555,5 +723,5 @@ sk_sp SkFontMgr_New_Android(const SkFontMgr_Android_CustomFonts* cust custom->fFallbackFontsXml); } } diff --git a/build/patches/Ask-for-restart-on-connection-change.patch b/build/patches/Ask-for-restart-on-connection-change.patch index c78555c2..f7e5602d 100644 --- a/build/patches/Ask-for-restart-on-connection-change.patch +++ b/build/patches/Ask-for-restart-on-connection-change.patch @@ -282,7 +282,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 -@@ -1618,7 +1618,10 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1629,7 +1629,10 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { mActivity, mStatusIndicatorCoordinator, isUrlBarFocusedSupplier, @@ -405,7 +405,7 @@ diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browse diff --git a/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java b/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java --- a/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java +++ b/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java -@@ -144,6 +144,8 @@ public interface TabWindowManager { +@@ -148,6 +148,8 @@ public interface TabWindowManager { /** Returns the total number of incognito tabs across all tab model selectors. */ int getIncognitoTabCount(); @@ -417,7 +417,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 -@@ -556,6 +556,16 @@ public class TabWindowManagerImpl implements TabWindowManager { +@@ -534,6 +534,16 @@ public class TabWindowManagerImpl implements TabWindowManager { return tabGroupModelFilter.getTabsInGroup(tabGroupId); } @@ -433,7 +433,7 @@ diff --git a/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chr + @Override public @Nullable TabModelSelector getTabModelSelectorById(@WindowId int windowId) { - WindowDeps windowDeps = mWindowIdToDeps.get(windowId); + return mWindowIdToSelectors.get(windowId); diff --git a/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Ask-for-restart-on-connection-change.grdp b/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Ask-for-restart-on-connection-change.grdp new file mode 100644 --- /dev/null @@ -483,7 +483,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro + private String mDismissActionText; + private Object mDismissActionData; private int mBackgroundColor; - private int mTextApperanceResId; + private int mTextAppearanceResId; private boolean mDefaultLines = true; @@ -251,6 +253,20 @@ public class Snackbar { return this; @@ -509,7 +509,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 -@@ -403,6 +403,12 @@ public class SnackbarManager +@@ -434,6 +434,12 @@ public class SnackbarManager new SnackbarView( mActivity, this, @@ -566,7 +566,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 -@@ -898,6 +898,22 @@ void WebContentsAndroid::SetFocus(JNIEnv* env, bool focused) { +@@ -903,6 +903,22 @@ void WebContentsAndroid::SetFocus(JNIEnv* env, bool focused) { view->SetFocus(focused); } @@ -592,7 +592,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 -@@ -198,6 +198,7 @@ class CONTENT_EXPORT WebContentsAndroid { +@@ -199,6 +199,7 @@ class CONTENT_EXPORT WebContentsAndroid { void OnScaleFactorChanged(JNIEnv* env); void SetFocus(JNIEnv* env, bool focused); @@ -603,7 +603,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 -@@ -4092,8 +4092,10 @@ void WebContentsImpl::Stop() { +@@ -4104,8 +4104,10 @@ void WebContentsImpl::Stop() { void WebContentsImpl::SetPageFrozen(bool frozen) { TRACE_EVENT1("content", "WebContentsImpl::SetPageFrozen", "frozen", frozen); @@ -617,7 +617,7 @@ diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser diff --git a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java --- a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java +++ b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java -@@ -1144,6 +1144,12 @@ public class WebContentsImpl +@@ -1171,6 +1171,12 @@ public class WebContentsImpl WebContentsImplJni.get().setFocus(mNativeWebContentsAndroid, hasFocus); } @@ -630,7 +630,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/webcon @Override public void setDisplayCutoutSafeArea(Rect insets) { if (mNativeWebContentsAndroid == 0) return; -@@ -1488,6 +1494,8 @@ public class WebContentsImpl +@@ -1519,6 +1525,8 @@ public class WebContentsImpl void setFocus(long nativeWebContentsAndroid, boolean focused); @@ -699,7 +699,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 -@@ -4628,6 +4628,7 @@ void Document::DispatchUnloadEvents(UnloadEventTimingInfo* unload_timing_info) { +@@ -4620,6 +4620,7 @@ void Document::DispatchUnloadEvents(UnloadEventTimingInfo* unload_timing_info) { } void Document::DispatchFreezeEvent() { @@ -710,7 +710,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 -@@ -3339,6 +3339,7 @@ void LocalFrame::DidFreeze() { +@@ -3340,6 +3340,7 @@ void LocalFrame::DidFreeze() { LoaderFreezeMode freeze_mode = GetLoaderFreezeMode(); GetDocument()->Fetcher()->SetDefersLoading(freeze_mode); Loader().SetDefersLoading(freeze_mode); @@ -718,7 +718,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ } void LocalFrame::DidResume() { -@@ -3353,6 +3354,7 @@ void LocalFrame::DidResume() { +@@ -3354,6 +3355,7 @@ void LocalFrame::DidResume() { GetDocument()->Fetcher()->SetDefersLoading(LoaderFreezeMode::kNone); Loader().SetDefersLoading(LoaderFreezeMode::kNone); @@ -729,7 +729,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc b/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc --- a/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc +++ b/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc -@@ -1029,7 +1029,9 @@ SchedulingLifecycleState FrameSchedulerImpl::CalculateLifecycleState( +@@ -1022,7 +1022,9 @@ SchedulingLifecycleState FrameSchedulerImpl::CalculateLifecycleState( if (!parent_page_scheduler_) return SchedulingLifecycleState::kNotThrottled; if (parent_page_scheduler_->IsFrozen()) { diff --git a/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch b/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch index 51d2ea4e..4f161c57 100644 --- a/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch +++ b/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch @@ -52,7 +52,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer.cc b/third_party/blink/renderer/modules/webaudio/audio_buffer.cc --- a/third_party/blink/renderer/modules/webaudio/audio_buffer.cc +++ b/third_party/blink/renderer/modules/webaudio/audio_buffer.cc -@@ -200,6 +200,20 @@ AudioBuffer::AudioBuffer(AudioBus* bus) +@@ -197,6 +197,20 @@ AudioBuffer::AudioBuffer(AudioBus* bus) } } @@ -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" -@@ -1125,7 +1126,9 @@ double AudioContext::baseLatency() const { +@@ -1133,7 +1134,9 @@ double AudioContext::baseLatency() const { DCHECK_CALLED_ON_VALID_SEQUENCE(main_thread_sequence_checker_); DCHECK(destination()); @@ -139,7 +139,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/base_audio_context.cc b diff --git a/third_party/blink/renderer/modules/webaudio/base_audio_context.h b/third_party/blink/renderer/modules/webaudio/base_audio_context.h --- a/third_party/blink/renderer/modules/webaudio/base_audio_context.h +++ b/third_party/blink/renderer/modules/webaudio/base_audio_context.h -@@ -328,6 +328,8 @@ class MODULES_EXPORT BaseAudioContext +@@ -331,6 +331,8 @@ class MODULES_EXPORT BaseAudioContext // if the execution context does not exist. bool CheckExecutionContextAndThrowIfNecessary(ExceptionState&); @@ -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 -@@ -410,6 +410,7 @@ void OfflineAudioContext::FireCompletionEvent() { +@@ -418,6 +418,7 @@ void OfflineAudioContext::FireCompletionEvent() { if (!rendered_buffer) { return; } @@ -170,17 +170,17 @@ diff --git a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc b/ #include "third_party/blink/renderer/platform/audio/audio_bus.h" #include "third_party/blink/renderer/platform/audio/audio_utilities.h" #include "third_party/blink/renderer/platform/audio/vector_math.h" -@@ -118,7 +119,8 @@ void RealtimeAnalyser::GetFloatFrequencyData(DOMFloat32Array* destination_array, +@@ -117,7 +118,8 @@ void RealtimeAnalyser::GetFloatFrequencyData(DOMFloat32Array* destination_array, for (unsigned i = 0; i < len; ++i) { - const float linear_value = UNSAFE_TODO(source[i]); + const float linear_value = magnitude_buffer_[i]; const double db_mag = audio_utilities::LinearToDecibels(linear_value); -- UNSAFE_TODO(destination[i]) = static_cast(db_mag); +- destination[i] = static_cast(db_mag); + auto v = static_cast(db_mag); -+ UNSAFE_TODO(destination[i]) = BaseAudioContext::ShuffleAudioData(v, i); ++ destination[i] = BaseAudioContext::ShuffleAudioData(v, i); } } } -@@ -156,9 +158,11 @@ void RealtimeAnalyser::GetByteFrequencyData(DOMUint8Array* destination_array, +@@ -153,9 +155,11 @@ void RealtimeAnalyser::GetByteFrequencyData(DOMUint8Array* destination_array, // The range m_minDecibels to m_maxDecibels will be scaled to byte values // from 0 to UCHAR_MAX. @@ -191,24 +191,24 @@ diff --git a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc b/ + scaled_value = BaseAudioContext::ShuffleAudioData(scaled_value, i); + // Clip to valid range. - UNSAFE_TODO(destination[i]) = + destination[i] = static_cast(ClampTo(scaled_value, 0, UCHAR_MAX)); -@@ -189,6 +193,7 @@ void RealtimeAnalyser::GetFloatTimeDomainData( - input_buffer[(i + write_index - fft_size + kInputBufferSize) % - kInputBufferSize]); +@@ -184,6 +188,7 @@ void RealtimeAnalyser::GetFloatTimeDomainData( + input_buffer_[(i + write_index - fft_size + kInputBufferSize) % + kInputBufferSize]; + value = BaseAudioContext::ShuffleAudioData(value, i); - UNSAFE_TODO(destination[i]) = value; + destination[i] = value; } } -@@ -212,10 +217,12 @@ void RealtimeAnalyser::GetByteTimeDomainData(DOMUint8Array* destination_array) { - +@@ -205,10 +210,12 @@ void RealtimeAnalyser::GetByteTimeDomainData(DOMUint8Array* destination_array) { + base::span destination = destination_array->AsSpan(); for (unsigned i = 0; i < len; ++i) { // Buffer access is protected due to modulo operation. -- const float value = UNSAFE_TODO( -+ float value = UNSAFE_TODO( - input_buffer[(i + write_index - fft_size + kInputBufferSize) % - kInputBufferSize]); +- const float value = ++ float value = + input_buffer_[(i + write_index - fft_size + kInputBufferSize) % + kInputBufferSize]; + value = BaseAudioContext::ShuffleAudioData(value, i); + @@ -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 -@@ -669,9 +669,8 @@ +@@ -688,9 +688,8 @@ { // AudioContext.playoutStats interface. // https://chromestatus.com/feature/5172818344148992 diff --git a/build/patches/Block-gateway-attacks-via-websockets.patch b/build/patches/Block-gateway-attacks-via-websockets.patch index ca2d93d3..c57ff109 100644 --- a/build/patches/Block-gateway-attacks-via-websockets.patch +++ b/build/patches/Block-gateway-attacks-via-websockets.patch @@ -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 -@@ -1139,6 +1139,26 @@ bool FrameFetchContext::ShouldBlockRequestByInspector(const KURL& url) const { +@@ -1138,6 +1138,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 -@@ -196,6 +196,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext, +@@ -197,6 +197,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext, bool ShouldBlockWebSocketByMixedContentCheck(const KURL&) const override; std::unique_ptr CreateWebSocketHandshakeThrottle() override; @@ -148,7 +148,7 @@ diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetc --- a/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.cc +++ b/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.cc @@ -104,6 +104,30 @@ bool ShouldBlockDanglingMarkup(const KURL& request_url) { - request_url.ProtocolIsInHTTPFamily(); + request_url.ProtocolIsInHttpFamily(); } +bool ShouldBlockGateWayAttacks(ExecutionContext* execution_context, 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 ff79a0d4..05775335 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 -@@ -5328,7 +5328,17 @@ void RenderFrameHostImpl::SetLastCommittedOrigin( +@@ -5362,7 +5362,17 @@ void RenderFrameHostImpl::SetLastCommittedOrigin( } void RenderFrameHostImpl::SetInheritedBaseUrl(const GURL& inherited_base_url) { @@ -106,7 +106,7 @@ diff --git a/third_party/blink/renderer/core/frame/location.cc b/third_party/bli diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc --- a/third_party/blink/renderer/core/loader/document_loader.cc +++ b/third_party/blink/renderer/core/loader/document_loader.cc -@@ -833,6 +833,11 @@ WebString DocumentLoader::HttpMethod() const { +@@ -850,6 +850,11 @@ WebString DocumentLoader::HttpMethod() const { } const AtomicString& DocumentLoader::GetReferrer() const { @@ -118,7 +118,7 @@ diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_p return referrer_; } -@@ -2909,6 +2914,13 @@ void DocumentLoader::CommitNavigation() { +@@ -2965,6 +2970,13 @@ void DocumentLoader::CommitNavigation() { response_.HttpHeaderField(http_names::kDocumentPolicyReportOnly)); } @@ -135,7 +135,7 @@ diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_p diff --git a/third_party/blink/renderer/core/loader/document_loader.h b/third_party/blink/renderer/core/loader/document_loader.h --- a/third_party/blink/renderer/core/loader/document_loader.h +++ b/third_party/blink/renderer/core/loader/document_loader.h -@@ -770,7 +770,7 @@ class CORE_EXPORT DocumentLoader : public GarbageCollected, +@@ -789,7 +789,7 @@ class CORE_EXPORT DocumentLoader : public GarbageCollected, // |archive_|, but won't have |loading_main_document_from_mhtml_archive_| set. bool loading_main_document_from_mhtml_archive_ = false; const bool loading_srcdoc_ = false; diff --git a/build/patches/Bookmarks-select-all-menu-entry.patch b/build/patches/Bookmarks-select-all-menu-entry.patch index aece8524..01cff0bf 100644 --- a/build/patches/Bookmarks-select-all-menu-entry.patch +++ b/build/patches/Bookmarks-select-all-menu-entry.patch @@ -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 -@@ -267,6 +267,9 @@ CHAR_LIMIT guidelines: +@@ -271,6 +271,9 @@ CHAR_LIMIT guidelines: Sites diff --git a/build/patches/Bromite-auto-updater.patch b/build/patches/Bromite-auto-updater.patch index 06cbca90..107eb7ce 100644 --- a/build/patches/Bromite-auto-updater.patch +++ b/build/patches/Bromite-auto-updater.patch @@ -39,8 +39,6 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../strings/android_chrome_strings.grd | 23 +- .../ui/lens/lens_overlay_query_controller.cc | 2 +- components/commerce/core/account_checker.cc | 2 +- - .../core/compare/cluster_server_proxy.cc | 2 +- - .../product_specifications_server_proxy.cc | 2 +- .../subscriptions_server_proxy.cc | 2 +- .../internal/composebox_query_controller.cc | 2 +- .../data_sharing_network_loader_impl.cc | 2 +- @@ -50,7 +48,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, 1156 insertions(+), 106 deletions(-) + 40 files changed, 1154 insertions(+), 104 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 +77,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 -@@ -1963,6 +1963,9 @@ if (!is_robolectric && enable_java_templates) { +@@ -1979,6 +1979,9 @@ if (!is_robolectric && enable_java_templates) { sources = [ "//build/android/java/templates/BuildConfig.template" ] defines = [] @@ -92,7 +90,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 -@@ -890,6 +890,8 @@ chrome_java_sources = [ +@@ -906,6 +906,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", @@ -690,7 +688,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 -@@ -2595,6 +2595,12 @@ static_library("browser") { +@@ -2505,6 +2505,12 @@ static_library("browser") { } if (is_android) { @@ -1010,18 +1008,18 @@ 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 -@@ -393,6 +393,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -401,6 +401,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kProtectedTabsAndroid, &kPwaRestoreUi, &kPwaRestoreUiAtStartup, + &kInlineUpdateFlow, - &kReadAloud, &kReadAloudAudioOverviews, - &kReadAloudAudioOverviewsFeedback, + &kReadAloudIPHMenuButtonHighlightCCT, + &kReadAloudPlayback, 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 -@@ -473,6 +473,7 @@ public abstract class ChromeFeatureList { +@@ -484,6 +484,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"; @@ -1353,9 +1351,9 @@ diff --git a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/o - mMetrics.startUpdate(); - Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(mStatus.updateUrl)); - if (newTask) intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(intent); -@@ -201,9 +238,15 @@ public class UpdateStatusProvider { + // Ensure that the app vs browser disambiguation dialog is not shown. + intent.addFlags(Intent.FLAG_ACTIVITY_REQUIRE_NON_BROWSER); +@@ -203,9 +240,15 @@ public class UpdateStatusProvider { return true; } @@ -1373,7 +1371,7 @@ diff --git a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/o } @RequiresNonNull("mStatus") -@@ -212,35 +255,52 @@ public class UpdateStatusProvider { +@@ -214,35 +257,52 @@ public class UpdateStatusProvider { } private void resolveStatus() { @@ -1435,7 +1433,7 @@ diff --git a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/o mCallback = resultReceiver; } -@@ -252,7 +312,7 @@ public class UpdateStatusProvider { +@@ -254,7 +314,7 @@ public class UpdateStatusProvider { protected UpdateStatus doInBackground() { UpdateStatus testStatus = getTestStatus(); if (testStatus != null) return testStatus; @@ -1444,7 +1442,7 @@ diff --git a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/o } @Override -@@ -270,6 +330,8 @@ public class UpdateStatusProvider { +@@ -272,6 +332,8 @@ public class UpdateStatusProvider { status.mIsSimulated = true; status.updateState = forcedUpdateState; @@ -1453,7 +1451,7 @@ diff --git a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/o // Push custom configurations for certain update states. switch (forcedUpdateState) { case UpdateState.UPDATE_AVAILABLE: -@@ -287,31 +349,33 @@ public class UpdateStatusProvider { +@@ -289,31 +351,33 @@ public class UpdateStatusProvider { return status; } @@ -1623,7 +1621,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 -@@ -2328,6 +2328,12 @@ Your Google account may have other forms of browsing history like searches and a +@@ -2401,6 +2401,12 @@ Your Google account may have other forms of browsing history like searches and a Chrome updates are no longer supported for this version of Android @@ -1636,7 +1634,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro -@@ -4419,7 +4425,10 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4486,7 +4492,10 @@ To change this setting, BEGIN_LINKdelete the Chrome d @@ -1648,7 +1646,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro Newer version is available -@@ -4430,6 +4439,18 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4497,6 +4506,18 @@ To change this setting, BEGIN_LINKdelete the Chrome d Android version is unsupported @@ -1670,7 +1668,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 -@@ -769,7 +769,7 @@ LensOverlayQueryController::CreateEndpointFetcher( +@@ -771,7 +771,7 @@ LensOverlayQueryController::CreateEndpointFetcher( .SetTimeout(timeout) .SetUrl(fetch_url) .SetUploadProgressCallback(std::move(upload_progress_callback)) @@ -1691,30 +1689,6 @@ diff --git a/components/commerce/core/account_checker.cc b/components/commerce/c } } // namespace commerce -diff --git a/components/commerce/core/compare/cluster_server_proxy.cc b/components/commerce/core/compare/cluster_server_proxy.cc ---- a/components/commerce/core/compare/cluster_server_proxy.cc -+++ b/components/commerce/core/compare/cluster_server_proxy.cc -@@ -156,7 +156,7 @@ std::unique_ptr ClusterServerProxy::CreateEndpointFetcher( - .SetPostData(post_data); - commerce::MaybeUseAlternateShoppingServer(request_params); - return std::make_unique( -- url_loader_factory_, identity_manager_, request_params.Build()); -+ url_loader_factory_, identity_manager_, request_params.Build(), kGetComparableProductsTrafficAnnotation); - } - - void ClusterServerProxy::HandleCompareResponse( -diff --git a/components/commerce/core/compare/product_specifications_server_proxy.cc b/components/commerce/core/compare/product_specifications_server_proxy.cc ---- a/components/commerce/core/compare/product_specifications_server_proxy.cc -+++ b/components/commerce/core/compare/product_specifications_server_proxy.cc -@@ -296,7 +296,7 @@ ProductSpecificationsServerProxy::CreateEndpointFetcher( - .SetPostData(post_data); - MaybeUseAlternateShoppingServer(request_params); - return std::make_unique( -- url_loader_factory_, identity_manager_, request_params.Build()); -+ url_loader_factory_, identity_manager_, request_params.Build(), kShoppingListTrafficAnnotation); - } - - std::optional diff --git a/components/commerce/core/subscriptions/subscriptions_server_proxy.cc b/components/commerce/core/subscriptions/subscriptions_server_proxy.cc --- a/components/commerce/core/subscriptions/subscriptions_server_proxy.cc +++ b/components/commerce/core/subscriptions/subscriptions_server_proxy.cc @@ -1730,7 +1704,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 -@@ -916,7 +916,7 @@ ComposeboxQueryController::CreateEndpointFetcher( +@@ -1074,7 +1074,7 @@ ComposeboxQueryController::CreateEndpointFetcher( .SetTimeout(timeout) .SetUploadProgressCallback(std::move(upload_progress_callback)) .SetUrl(fetch_url) diff --git a/build/patches/Bromite-subresource-adblocker.patch b/build/patches/Bromite-subresource-adblocker.patch index 67621a60..37db23fb 100644 --- a/build/patches/Bromite-subresource-adblocker.patch +++ b/build/patches/Bromite-subresource-adblocker.patch @@ -65,7 +65,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -313,6 +313,7 @@ if (_is_default_toolchain) { +@@ -318,6 +318,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 -@@ -436,6 +436,7 @@ chrome_java_resources = [ +@@ -432,6 +432,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", -@@ -642,6 +643,7 @@ chrome_java_resources = [ +@@ -638,6 +639,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 -@@ -962,6 +962,8 @@ chrome_java_sources = [ +@@ -977,6 +977,8 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/permissions/PermissionBlockedDialog.java", "java/src/org/chromium/chrome/browser/permissions/PermissionUpdateRequester.java", "java/src/org/chromium/chrome/browser/photo_picker/DecoderServiceImpl.java", @@ -251,7 +251,7 @@ new file mode 100644 diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml --- a/chrome/android/java/res/xml/main_preferences.xml +++ b/chrome/android/java/res/xml/main_preferences.xml -@@ -115,6 +115,11 @@ found in the LICENSE file. +@@ -113,6 +113,11 @@ found in the LICENSE file. android:key="toolbar_shortcut" android:order="21" android:title="@string/toolbar_shortcut"/> @@ -443,7 +443,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 -@@ -101,6 +101,8 @@ import java.util.HashMap; +@@ -106,6 +106,8 @@ import java.util.HashMap; import java.util.Locale; import java.util.Map; @@ -452,7 +452,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin /** * The Chrome settings activity. * -@@ -1277,6 +1279,7 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -1325,6 +1327,7 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity && !MAIN_FRAGMENT_TAG.equals(fragment.getTag())) { return; } @@ -463,7 +463,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 -@@ -17579,6 +17579,16 @@ Please help our engineers fix this problem. Tell us what happened right before y +@@ -17715,6 +17715,16 @@ Please help our engineers fix this problem. Tell us what happened right before y Never show this again. @@ -534,7 +534,7 @@ diff --git a/chrome/browser/browser_process.h b/chrome/browser/browser_process.h diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc --- a/chrome/browser/browser_process_impl.cc +++ b/chrome/browser/browser_process_impl.cc -@@ -1368,6 +1368,34 @@ BrowserProcessImpl::component_updater() { +@@ -1375,6 +1375,34 @@ BrowserProcessImpl::component_updater() { return component_updater_.get(); } @@ -591,7 +591,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 -@@ -432,6 +432,9 @@ StartupProfileInfo CreateInitialProfile( +@@ -439,6 +439,9 @@ StartupProfileInfo CreateInitialProfile( // missing code in the above test. CHECK(profile_info.profile) << "Cannot get default profile."; @@ -742,7 +742,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 -@@ -2986,6 +2986,11 @@ inline constexpr char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled"; +@@ -2778,6 +2778,11 @@ inline constexpr char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled"; inline constexpr char kAudioCaptureAllowedUrls[] = "hardware.audio_capture_allowed_urls"; @@ -757,7 +757,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 -@@ -427,6 +427,9 @@ +@@ -421,6 +421,9 @@ This site shows intrusive or misleading ads diff --git a/build/patches/Bubble-Locking-on-UI-DevTools.patch b/build/patches/Bubble-Locking-on-UI-DevTools.patch index 63eefa3f..b3eb0be2 100644 --- a/build/patches/Bubble-Locking-on-UI-DevTools.patch +++ b/build/patches/Bubble-Locking-on-UI-DevTools.patch @@ -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 -@@ -1475,6 +1475,19 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, +@@ -1481,6 +1481,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. -@@ -1515,13 +1528,6 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, +@@ -1521,13 +1534,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; -@@ -1532,11 +1538,6 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, +@@ -1538,11 +1544,6 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, friend class ui_devtools::BubbleLocking; friend void DisableActivationChangeHandlingForTests(); diff --git a/build/patches/Chrome-web-store-protection.patch b/build/patches/Chrome-web-store-protection.patch index 0c8dbd49..b9779bbf 100644 --- a/build/patches/Chrome-web-store-protection.patch +++ b/build/patches/Chrome-web-store-protection.patch @@ -84,7 +84,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_a namespace extensions { namespace developer = api::developer_private; -@@ -69,6 +75,28 @@ DeveloperPrivateAPI::GetFactoryInstance() { +@@ -70,6 +76,28 @@ DeveloperPrivateAPI::GetFactoryInstance() { return g_developer_private_api_factory.Pointer(); } @@ -181,7 +181,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/profile_info_genera diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc b/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc --- a/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc +++ b/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc -@@ -257,6 +257,8 @@ Profile* GetProfileInIncognito(Profile* profile) { +@@ -254,6 +254,8 @@ Profile* GetProfileInIncognito(Profile* profile) { // there was previously stored data, or an empty string otherwise. The Set will // overwrite any previous login. std::string GetWebstoreLogin(Profile* profile) { @@ -190,7 +190,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api if (profile->GetPrefs()->HasPrefPath(kWebstoreLogin)) { return profile->GetPrefs()->GetString(kWebstoreLogin); } -@@ -264,11 +266,15 @@ std::string GetWebstoreLogin(Profile* profile) { +@@ -261,11 +263,15 @@ std::string GetWebstoreLogin(Profile* profile) { } void SetWebstoreLogin(Profile* profile, const std::string& login) { @@ -206,7 +206,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api switch (status) { case kCanRequest: return api::webstore_private::ExtensionInstallStatus::kCanRequest; -@@ -1207,7 +1213,8 @@ ExtensionFunction::ResponseAction +@@ -1317,7 +1323,8 @@ ExtensionFunction::ResponseAction WebstorePrivateIsInIncognitoModeFunction::Run() { Profile* profile = Profile::FromBrowserContext(browser_context()); return RespondNow(ArgumentList(IsInIncognitoMode::Results::Create( @@ -216,7 +216,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api } WebstorePrivateIsPendingCustodianApprovalFunction:: -@@ -1304,11 +1311,14 @@ WebstorePrivateGetReferrerChainFunction::Run() { +@@ -1414,11 +1421,14 @@ WebstorePrivateGetReferrerChainFunction::Run() { request.mutable_referrer_chain_options()->set_recent_navigations_to_collect( recent_navigations_to_collect); @@ -259,7 +259,7 @@ diff --git a/chrome/browser/extensions/cws_info_service_factory.cc b/chrome/brow diff --git a/chrome/browser/extensions/extension_management.cc b/chrome/browser/extensions/extension_management.cc --- a/chrome/browser/extensions/extension_management.cc +++ b/chrome/browser/extensions/extension_management.cc -@@ -441,6 +441,7 @@ bool ExtensionManagement::IsExemptFromMV2DeprecationByPolicy( +@@ -435,6 +435,7 @@ bool ExtensionManagement::IsExemptFromMV2DeprecationByPolicy( bool ExtensionManagement::IsAllowedByUnpublishedAvailabilityPolicy( const Extension* extension) { @@ -283,7 +283,7 @@ diff --git a/chrome/browser/extensions/extension_safety_check_utils.cc b/chrome/ diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc --- a/chrome/browser/extensions/extension_service.cc +++ b/chrome/browser/extensions/extension_service.cc -@@ -248,8 +248,6 @@ ExtensionService::ExtensionService( +@@ -249,8 +249,6 @@ ExtensionService::ExtensionService( UpgradeDetector::GetInstance()->AddObserver(this); #endif @@ -292,7 +292,7 @@ diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/ext ExtensionManagementFactory::GetForBrowserContext(profile_)->AddObserver(this); if (auto* extension_install_policy_service = -@@ -772,7 +770,7 @@ void ExtensionService::OnExtensionManagementSettingsChanged() { +@@ -773,7 +771,7 @@ void ExtensionService::OnExtensionManagementSettingsChanged() { // unpublished extensions should not be enabled. This update allows // unpublished extensions to be disabled sooner rather than waiting till the // next regularly scheduled fetch. @@ -496,10 +496,10 @@ diff --git a/chrome/browser/extensions/webstore_install_helper.cc b/chrome/brows diff --git a/chrome/browser/extensions/webstore_installer.cc b/chrome/browser/extensions/webstore_installer.cc --- a/chrome/browser/extensions/webstore_installer.cc +++ b/chrome/browser/extensions/webstore_installer.cc -@@ -595,7 +595,7 @@ void WebstoreInstaller::StartDownload( - traffic_annotation)); +@@ -589,7 +589,7 @@ void WebstoreInstaller::StartDownload( + render_frame_host->CreateDownloadUrlParameters(download_url_, + traffic_annotation); params->set_file_path(file); - params->set_initiator(render_frame_host->GetLastCommittedOrigin()); - if (controller.GetVisibleEntry()) { + if ((false) && controller.GetVisibleEntry()) { content::Referrer referrer = content::Referrer::SanitizeForRequest( @@ -537,7 +537,7 @@ diff --git a/chrome/browser/resources/extensions/manager.ts b/chrome/browser/res accessor showActivityLog: boolean = loadTimeData.getBoolean('showActivityLog'); accessor enableEnhancedSiteControls: boolean = -@@ -228,6 +232,7 @@ export class ExtensionsManagerElement extends ExtensionsManagerElementBase { +@@ -247,6 +251,7 @@ export class ExtensionsManagerElement extends ExtensionsManagerElementBase { this.canLoadUnpacked = profileInfo.canLoadUnpacked; this.isMv2DeprecationNoticeDismissed = profileInfo.isMv2DeprecationNoticeDismissed; @@ -681,7 +681,7 @@ diff --git a/chrome/browser/ui/webui/extensions/extensions_ui.cc b/chrome/browse #include "chrome/browser/extensions/manifest_v2_experiment_manager.h" #include "chrome/browser/extensions/mv2_experiment_stage.h" #include "chrome/browser/extensions/permissions_url_constants.h" -@@ -385,6 +386,8 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile, +@@ -387,6 +388,8 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile, {"itemSuspiciousInstallLearnMore", IDS_EXTENSIONS_ADDED_WITHOUT_KNOWLEDGE_LEARN_MORE}, {"toolbarDevMode", IDS_EXTENSIONS_DEVELOPER_MODE}, @@ -690,7 +690,7 @@ diff --git a/chrome/browser/ui/webui/extensions/extensions_ui.cc b/chrome/browse {"toolbarLoadUnpacked", IDS_EXTENSIONS_TOOLBAR_LOAD_UNPACKED}, {"toolbarLoadUnpackedDone", IDS_EXTENSIONS_TOOLBAR_LOAD_UNPACKED_DONE}, {"toolbarPack", IDS_EXTENSIONS_TOOLBAR_PACK}, -@@ -470,6 +473,10 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile, +@@ -472,6 +475,10 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile, "hostPermissionsLearnMoreLink", extension_permissions_constants::kRuntimeHostPermissionsHelpURL); source->AddBoolean(kInDevModeKey, in_dev_mode); @@ -1194,8 +1194,8 @@ diff --git a/extensions/browser/updater/safe_manifest_parser.cc b/extensions/bro diff --git a/extensions/common/extension_features.cc b/extensions/common/extension_features.cc --- a/extensions/common/extension_features.cc +++ b/extensions/common/extension_features.cc -@@ -218,4 +218,11 @@ BASE_FEATURE(kWebRequestPersistFilteredEvents, - BASE_FEATURE(kWebRequestAlternativeAddListener, +@@ -218,4 +218,11 @@ BASE_FEATURE(kSearchEngineUnconditionalDialog, + BASE_FEATURE(kWebRequestPersistFilteredEventsViaEventRouter, base::FEATURE_ENABLED_BY_DEFAULT); +CROMITE_FEATURE(kEnableExtensionAutoupdate, @@ -1209,9 +1209,9 @@ diff --git a/extensions/common/extension_features.cc b/extensions/common/extensi diff --git a/extensions/common/extension_features.h b/extensions/common/extension_features.h --- a/extensions/common/extension_features.h +++ b/extensions/common/extension_features.h -@@ -333,6 +333,16 @@ BASE_DECLARE_FEATURE(kWebRequestPersistFilteredEvents); - // WebRequestInternal's custom API. - BASE_DECLARE_FEATURE(kWebRequestAlternativeAddListener); +@@ -323,6 +323,16 @@ BASE_DECLARE_FEATURE(kWebRequestSecurityInfo); + // in WebRequestEventRouter. + BASE_DECLARE_FEATURE(kWebRequestPersistFilteredEventsViaEventRouter); +// Activates the auto update of extensions. +// the only data provided by default is the list of extensions. diff --git a/build/patches/Clear-CORS-Preflight-Cache-on-clearing-data.patch b/build/patches/Clear-CORS-Preflight-Cache-on-clearing-data.patch index a8552c82..6ed81bb5 100644 --- a/build/patches/Clear-CORS-Preflight-Cache-on-clearing-data.patch +++ b/build/patches/Clear-CORS-Preflight-Cache-on-clearing-data.patch @@ -79,12 +79,12 @@ diff --git a/services/network/cors/preflight_result.cc b/services/network/cors/p diff --git a/services/network/network_context.cc b/services/network/network_context.cc --- a/services/network/network_context.cc +++ b/services/network/network_context.cc -@@ -1372,6 +1372,7 @@ void NetworkContext::ClearHttpCache(base::Time start_time, +@@ -1379,6 +1379,7 @@ void NetworkContext::ClearHttpCache(base::Time start_time, base::Time end_time, mojom::ClearDataFilterPtr filter, ClearHttpCacheCallback callback) { + cors_preflight_controller_.ClearCache(); - // It's safe to use Unretained below as the HttpCacheDataRemover is owned by - // |this| and guarantees it won't call its callback if deleted. - http_cache_data_removers_.push_back(HttpCacheDataRemover::CreateAndStart( + if (base::FeatureList::IsEnabled(net::features::kLogicalClearHttpCache)) { + net::HttpCache* cache = + url_request_context_->http_transaction_factory()->GetCache(); -- diff --git a/build/patches/Client-hints-overrides.patch b/build/patches/Client-hints-overrides.patch index 30db3b9f..8d4f3fa6 100644 --- a/build/patches/Client-hints-overrides.patch +++ b/build/patches/Client-hints-overrides.patch @@ -31,7 +31,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/android_webview/support_library/java/src/org/chromium/support_lib_glue/SupportLibWebViewChromiumFactory.java b/android_webview/support_library/java/src/org/chromium/support_lib_glue/SupportLibWebViewChromiumFactory.java --- a/android_webview/support_library/java/src/org/chromium/support_lib_glue/SupportLibWebViewChromiumFactory.java +++ b/android_webview/support_library/java/src/org/chromium/support_lib_glue/SupportLibWebViewChromiumFactory.java -@@ -95,7 +95,7 @@ public class SupportLibWebViewChromiumFactory implements WebViewProviderFactoryB +@@ -99,7 +99,7 @@ public class SupportLibWebViewChromiumFactory implements WebViewProviderFactoryB Features.GET_COOKIE_INFO, Features.WEB_MESSAGE_ARRAY_BUFFER, Features.IMAGE_DRAG_DROP, @@ -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 -@@ -114,6 +114,7 @@ const size_t kMaxRestarts = 32; +@@ -119,6 +119,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 -@@ -232,6 +232,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( -@@ -732,7 +734,7 @@ void FrameFetchContext::AddClientHintsIfNecessary( +@@ -731,7 +733,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 -@@ -628,6 +628,11 @@ +@@ -647,6 +647,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", -@@ -1045,8 +1050,7 @@ +@@ -1093,8 +1098,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 59aad17e..b94e6a0f 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 -@@ -289,7 +289,7 @@ BASE_FEATURE(kRelatedWebsitePartitionAPI, base::FEATURE_DISABLED_BY_DEFAULT); +@@ -294,7 +294,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 51b630a9..a074f8de 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 -@@ -579,6 +579,7 @@ template("chrome_common_apk_or_module_tmpl") { +@@ -600,6 +600,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/Cromite-Branding--improve-settings-ui.patch b/build/patches/Cromite-Branding--improve-settings-ui.patch index fa926ddc..e504fba5 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 -@@ -667,7 +667,7 @@ chrome_java_resources = [ +@@ -663,7 +663,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", @@ -247,7 +247,7 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -194,7 +194,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -196,7 +196,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment public void onCreatePreferencesCromite(@Nullable Bundle savedInstanceState, @Nullable String rootKey) { mPageTitle.set(getString(R.string.prefs_privacy_security)); @@ -256,7 +256,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting Preference sandboxPreference = findPreference(PREF_PRIVACY_SANDBOX); // Overwrite the click listener to pass a correct referrer to the fragment. -@@ -281,7 +281,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -283,7 +283,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment ChromeSwitchPreference passwordLeakTogglePref = (ChromeSwitchPreference) findPreference(PREF_PASSWORD_LEAK_DETECTION); diff --git a/build/patches/Cromite-Branding.patch b/build/patches/Cromite-Branding.patch index 624f863a..1b34bfe6 100644 --- a/build/patches/Cromite-Branding.patch +++ b/build/patches/Cromite-Branding.patch @@ -107,7 +107,7 @@ diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml --- a/chrome/android/java/AndroidManifest.xml +++ b/chrome/android/java/AndroidManifest.xml -@@ -203,7 +203,7 @@ by a child template that "extends" this file. +@@ -206,7 +206,7 @@ by a child template that "extends" this file. CreateProfilePrefStoreManager( +@@ -293,10 +294,7 @@ std::unique_ptr CreateProfilePrefStoreManager( const base::FilePath& profile_path) { std::string seed; CHECK(ui::ResourceBundle::HasSharedInstance()); @@ -13446,7 +13446,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.build.annotations.NullMarked; import org.chromium.chrome.browser.omnibox.OmniboxMetrics; import org.chromium.chrome.browser.omnibox.R; -@@ -110,8 +111,11 @@ public class OmniboxSuggestionsContainer extends FrameLayout { +@@ -109,8 +110,11 @@ public class OmniboxSuggestionsContainer extends FrameLayout { // Omnibox. // Making the container `clickable=true` achieves similar goal, but this consumes all // activators, including keyboard key. @@ -13463,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 -@@ -2393,7 +2393,7 @@ Your Google account may have other forms of browsing history like searches and a +@@ -2466,7 +2466,7 @@ Your Google account may have other forms of browsing history like searches and a About Chrome @@ -13472,7 +13472,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro Application version -@@ -5912,7 +5912,7 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -6042,7 +6042,7 @@ To change this setting, BEGIN_LINKdelete the Chrome d @@ -13495,7 +13495,7 @@ diff --git a/chrome/browser/ui/toolbar/chrome_labs/chrome_labs_utils.cc b/chrome diff --git a/chrome/common/url_constants.h b/chrome/common/url_constants.h --- a/chrome/common/url_constants.h +++ b/chrome/common/url_constants.h -@@ -135,7 +135,7 @@ inline constexpr char kChromeHelpViaMenuURL[] = +@@ -117,7 +117,7 @@ inline constexpr char kChromeHelpViaMenuURL[] = #endif // BUILDFLAG(IS_CHROMEOS) inline constexpr char kChromeHelpViaWebUIURL[] = @@ -13504,15 +13504,15 @@ diff --git a/chrome/common/url_constants.h b/chrome/common/url_constants.h #if BUILDFLAG(IS_CHROMEOS) inline constexpr char kChromeOsHelpViaWebUIURL[] = #if BUILDFLAG(GOOGLE_CHROME_BRANDING) -@@ -193,7 +193,7 @@ inline constexpr char kChromeUIUntrustedNewTabPageUrl[] = +@@ -175,7 +175,7 @@ inline constexpr char kChromeUIUntrustedNewTabPageUrl[] = "chrome-untrusted://new-tab-page/"; // The URL for the Chromium project used in the About dialog. -inline constexpr char16_t kChromiumProjectURL[] = u"https://www.chromium.org/"; +inline constexpr char16_t kChromiumProjectURL[] = u"https://www.cromite.org/"; - - #if BUILDFLAG(GOOGLE_CHROME_BRANDING) - // The URL for the "Clear browsing data in Chrome" help center article. + #if BUILDFLAG(IS_CHROMEOS) + static_assert(std::u16string_view(kChromiumProjectURL) == + ash::chrome_external_urls::kChromiumProjectURL); diff --git a/chrome/install_static/chromium_install_modes.h b/chrome/install_static/chromium_install_modes.h --- a/chrome/install_static/chromium_install_modes.h +++ b/chrome/install_static/chromium_install_modes.h @@ -18436,7 +18436,7 @@ i?Ib$(ofrX17!1R|`h|N%TnD<%35@j2bgPM^i2nno*_EOI diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/omnibox/browser/autocomplete_controller.cc --- a/components/omnibox/browser/autocomplete_controller.cc +++ b/components/omnibox/browser/autocomplete_controller.cc -@@ -1123,6 +1123,7 @@ bool AutocompleteController::ShouldRunProvider( +@@ -1117,6 +1117,7 @@ bool AutocompleteController::ShouldRunProvider( #if BUILDFLAG(IS_ANDROID) if (omnibox::IsAndroidHub(input_.current_page_classification())) { @@ -19198,7 +19198,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 -@@ -575,19 +575,22 @@ void ResolveInvalidConfigurations() { +@@ -549,19 +549,22 @@ void ResolveInvalidConfigurations() { base::FeatureList::IsEnabled( features::kPrivacySandboxAdsAPIsM1Override)) && !base::FeatureList::IsEnabled(blink::features::kFencedFrames)) { @@ -19225,7 +19225,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 << "=" -@@ -595,12 +598,14 @@ void ResolveInvalidConfigurations() { +@@ -569,12 +572,14 @@ void ResolveInvalidConfigurations() { WebRuntimeFeatures::EnableFeatureFromString( "FencedFramesLocalUnpartitionedDataAccess", false); } @@ -19241,7 +19241,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."; -@@ -608,30 +613,23 @@ void ResolveInvalidConfigurations() { +@@ -582,30 +587,23 @@ void ResolveInvalidConfigurations() { WebRuntimeFeatures::EnableTopicsDocumentAPI(false); WebRuntimeFeatures::EnableTopicsImgAPI(false); } else { @@ -19278,7 +19278,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. << "AttributionReporting cannot be enabled in this " "configuration. Use --" << switches::kEnableFeatures << "=" -@@ -639,23 +637,25 @@ void ResolveInvalidConfigurations() { +@@ -613,23 +611,25 @@ void ResolveInvalidConfigurations() { << " in addition."; WebRuntimeFeatures::EnableAttributionReporting(false); } @@ -19299,15 +19299,15 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. + CHECK(false) << "kInterestGroupStorage is enabled!"; } - // PermissionElement cannot be enabled without the support of the + // UserMediaElement cannot be enabled without the support of the // browser process. - if (!base::FeatureList::IsEnabled(blink::features::kPermissionElement)) { + if (!base::FeatureList::IsEnabled(blink::features::kUserMediaElement)) { - LOG_IF(WARNING, -- WebRuntimeFeatures::IsPermissionElementEnabledByRuntimeFlag()) -+ CHECK(!WebRuntimeFeatures::IsPermissionElementEnabledByRuntimeFlag()) - << "PermissionElement cannot be enabled in this configuration. Use --" +- WebRuntimeFeatures::IsUserMediaElementEnabledByRuntimeFlag()) ++ CHECK(!WebRuntimeFeatures::IsUserMediaElementEnabledByRuntimeFlag()) + << "UserMediaElement cannot be enabled in this configuration. Use --" << switches::kEnableFeatures << "=" - << blink::features::kPermissionElement.name << " instead."; + << blink::features::kUserMediaElement.name << " instead."; diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Cromite-Branding.inc b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Cromite-Branding.inc new file mode 100644 --- /dev/null diff --git a/build/patches/Disable-Accessibility-service-by-default.patch b/build/patches/Disable-Accessibility-service-by-default.patch index 6bd326c7..9bddba31 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 -@@ -1226,6 +1226,11 @@ public class WebContentsAccessibilityImpl extends AccessibilityNodeProviderCompa +@@ -1325,6 +1325,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 afb0ab93..2cac7e7c 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 -@@ -100,7 +100,8 @@ found in the LICENSE file. +@@ -98,7 +98,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 e77f79de..c2b50be8 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 -@@ -1460,7 +1460,7 @@ +@@ -1515,7 +1515,7 @@ }, { name: "CSSDynamicRangeLimit", diff --git a/build/patches/Disable-Compose-feature.patch b/build/patches/Disable-Compose-feature.patch index 9c58c02b..4354337d 100644 --- a/build/patches/Disable-Compose-feature.patch +++ b/build/patches/Disable-Compose-feature.patch @@ -4,26 +4,24 @@ Subject: Disable Compose feature License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- - chrome/browser/ui/webui/settings/settings_ui.cc | 6 ++++-- + chrome/browser/ui/webui/settings/settings_ui.cc | 4 ++-- components/compose/core/browser/compose_features.cc | 2 ++ components/compose/features.gni | 2 +- - 3 files changed, 7 insertions(+), 3 deletions(-) + 3 files changed, 5 insertions(+), 3 deletions(-) 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 -@@ -21,7 +21,9 @@ +@@ -21,7 +21,7 @@ #include "chrome/browser/browser_features.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/commerce/shopping_service_factory.h" -#include "chrome/browser/compose/compose_enabling.h" -+// #if BUILDFLAG(ENABLE_COMPOSE) +// #include "chrome/browser/compose/compose_enabling.h" -+// #endif + #include "chrome/browser/glic/public/glic_enabling.h" + #include "chrome/browser/glic/public/glic_keyed_service.h" #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" -@@ -366,7 +368,7 @@ SettingsUI::SettingsUI(content::WebUI* web_ui) +@@ -369,7 +369,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 867c67f1..0a26f3c5 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 -@@ -1477,8 +1477,7 @@ void ChromeContentBrowserClient::RegisterProfilePrefs( +@@ -1527,8 +1527,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 3604dfe2..2ac69cd5 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 -@@ -146,6 +146,7 @@ bool IsAffiliatedUser() { +@@ -147,6 +147,7 @@ bool IsAffiliatedUser() { bool IsTrustedContext(content::RenderFrameHost& host, const url::Origin& origin) { @@ -18,7 +18,7 @@ diff --git a/chrome/browser/device_api/device_service_impl.cc b/chrome/browser/d // Do not create the service for the incognito mode. if (GetProfile(host)->IsIncognitoProfile()) { return false; -@@ -322,6 +323,10 @@ void DeviceServiceImpl::GetAnnotatedLocation( +@@ -323,6 +324,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 ed480f7b..05636179 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 -@@ -639,7 +639,7 @@ void ContentSettingsRegistry::Init() { +@@ -640,7 +640,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 -@@ -2379,7 +2379,7 @@ +@@ -2470,7 +2470,7 @@ { name: "FedCm", public: true, diff --git a/build/patches/Disable-GSA-by-default.patch b/build/patches/Disable-GSA-by-default.patch index ec18c5f2..0e5a6be5 100644 --- a/build/patches/Disable-GSA-by-default.patch +++ b/build/patches/Disable-GSA-by-default.patch @@ -5,13 +5,13 @@ Subject: Disable GSA by default License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- .../src/org/chromium/base/PackageUtils.java | 1 + - .../chrome/browser/IntentHandler.java | 7 ---- + .../chrome/browser/IntentHandler.java | 6 ---- .../chrome/browser/share/LensUtils.java | 14 ++------ .../chromium/chrome/browser/gsa/GSAUtils.java | 34 +++---------------- .../GoogleBottomBarActionsHandler.java | 19 ++--------- .../chrome/browser/pdf/PdfCoordinator.java | 2 +- .../Disable-GSA-by-default.inc | 1 + - 7 files changed, 12 insertions(+), 66 deletions(-) + 7 files changed, 12 insertions(+), 65 deletions(-) create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-GSA-by-default.inc diff --git a/base/android/java/src/org/chromium/base/PackageUtils.java b/base/android/java/src/org/chromium/base/PackageUtils.java @@ -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; -@@ -306,9 +305,6 @@ public class IntentHandler { +@@ -310,9 +309,6 @@ public class IntentHandler { public static final String EXTRA_TIPS_NOTIFICATION_FEATURE_TYPE = "org.chromium.chrome.browser.tips_notification_feature_type"; @@ -46,15 +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"; -@@ -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"; -- - public static final String EXTRA_ITEM_PICKER_ERROR = - "org.chromium.chrome.browser.chrome_item_picker.EXTRA_ITEM_PICKER_ERROR"; - -@@ -572,8 +567,6 @@ public class IntentHandler { +@@ -573,8 +569,6 @@ public class IntentHandler { return ExternalAppId.LINE; } else if (PACKAGE_WHATSAPP.equals(packageName)) { return ExternalAppId.WHATSAPP; @@ -240,7 +232,7 @@ diff --git a/chrome/browser/ui/android/google_bottom_bar/java/src/org/chromium/c diff --git a/chrome/browser/ui/android/pdf/java/src/org/chromium/chrome/browser/pdf/PdfCoordinator.java b/chrome/browser/ui/android/pdf/java/src/org/chromium/chrome/browser/pdf/PdfCoordinator.java --- a/chrome/browser/ui/android/pdf/java/src/org/chromium/chrome/browser/pdf/PdfCoordinator.java +++ b/chrome/browser/ui/android/pdf/java/src/org/chromium/chrome/browser/pdf/PdfCoordinator.java -@@ -276,7 +276,7 @@ public class PdfCoordinator { +@@ -351,7 +351,7 @@ public class PdfCoordinator implements PdfActionsDelegate { } @Nullable String requestAssistContent(String filename, boolean isWorkProfile) { diff --git a/build/patches/Disable-GetInstalledRelatedApps-API.patch b/build/patches/Disable-GetInstalledRelatedApps-API.patch index 88394cb4..e3d209f8 100644 --- a/build/patches/Disable-GetInstalledRelatedApps-API.patch +++ b/build/patches/Disable-GetInstalledRelatedApps-API.patch @@ -16,7 +16,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/components/installedapp/android/java/src/org/chromium/components/installedapp/InstalledAppProviderImpl.java b/components/installedapp/android/java/src/org/chromium/components/installedapp/InstalledAppProviderImpl.java --- a/components/installedapp/android/java/src/org/chromium/components/installedapp/InstalledAppProviderImpl.java +++ b/components/installedapp/android/java/src/org/chromium/components/installedapp/InstalledAppProviderImpl.java -@@ -162,6 +162,7 @@ public class InstalledAppProviderImpl implements InstalledAppProvider { +@@ -137,6 +137,7 @@ public class InstalledAppProviderImpl implements InstalledAppProvider { final Url manifestUrl, final boolean addSavedRelatedApplications, final FilterInstalledApps_Response callback) { @@ -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 -@@ -3167,9 +3167,8 @@ +@@ -3274,9 +3274,8 @@ status: "stable", }, { diff --git a/build/patches/Disable-PrivacyGuide.patch b/build/patches/Disable-PrivacyGuide.patch index e2eca9ce..5b317e5c 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 -@@ -343,8 +343,7 @@ SettingsUI::SettingsUI(content::WebUI* web_ui) +@@ -342,8 +342,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 7d65bd76..14cbc73e 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 -@@ -2091,7 +2091,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -2130,7 +2130,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, registry->RegisterBooleanPref( prefs::kLensRegionSearchEnabled, true, user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); @@ -27,12 +27,12 @@ diff --git a/chrome/browser/resources/new_tab_page/app.html b/chrome/browser/res +++ b/chrome/browser/resources/new_tab_page/app.html @@ -43,24 +43,6 @@ import {nothing} from '//resources/lit/v3_0/lit.rollup.js';
+ @focusin="${this.onSearchboxContainerFocusin_}" + @focusout="${this.onSearchboxContainerFocusout_}"> - & optimization_types) { @@ -258,7 +249,7 @@ diff --git a/chrome/browser/password_manager/password_change_delegate_impl.cc b/ diff --git a/chrome/browser/permissions/BUILD.gn b/chrome/browser/permissions/BUILD.gn --- a/chrome/browser/permissions/BUILD.gn +++ b/chrome/browser/permissions/BUILD.gn -@@ -42,8 +42,6 @@ source_set("permissions") { +@@ -43,8 +43,6 @@ source_set("permissions") { "prediction_service/language_detection_observer.h", "prediction_service/passage_embedder_delegate.cc", "prediction_service/passage_embedder_delegate.h", @@ -270,7 +261,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 -@@ -477,8 +477,6 @@ ChromePermissionsClient::CreatePermissionUiSelectors( +@@ -474,8 +474,6 @@ ChromePermissionsClient::CreatePermissionUiSelectors( #endif selectors.emplace_back(std::make_unique( Profile::FromBrowserContext(browser_context))); @@ -282,15 +273,15 @@ diff --git a/chrome/browser/permissions/chrome_permissions_client.cc b/chrome/br diff --git a/chrome/browser/permissions/prediction_service/passage_embedder_delegate.cc b/chrome/browser/permissions/prediction_service/passage_embedder_delegate.cc --- a/chrome/browser/permissions/prediction_service/passage_embedder_delegate.cc +++ b/chrome/browser/permissions/prediction_service/passage_embedder_delegate.cc -@@ -17,6 +17,7 @@ PassageEmbedderDelegate::PassageEmbedderDelegate(Profile* profile) +@@ -25,6 +25,7 @@ PassageEmbedderDelegate::PassageEmbedderDelegate(Profile* profile) : profile_(profile) {} - Embedder* PassageEmbedderDelegate::get_passage_embedder() { + Embedder* PassageEmbedderDelegate::GetPassageEmbedder() { +#if BUILDFLAG(BUILD_WITH_TFLITE_LIB) if (auto* prediction_model_handler_provider = PredictionModelHandlerProviderFactory::GetForBrowserContext( profile_)) { -@@ -30,6 +31,7 @@ Embedder* PassageEmbedderDelegate::get_passage_embedder() { +@@ -38,6 +39,7 @@ Embedder* PassageEmbedderDelegate::GetPassageEmbedder() { return prediction_model_handler_provider->GetPassageEmbedder(); } PermissionUmaUtil::RecordPassageEmbedderMetadataValid(false); @@ -301,7 +292,7 @@ diff --git a/chrome/browser/permissions/prediction_service/passage_embedder_dele diff --git a/chrome/browser/permissions/prediction_service/permissions_ai_ui_selector.cc b/chrome/browser/permissions/prediction_service/permissions_ai_ui_selector.cc --- a/chrome/browser/permissions/prediction_service/permissions_ai_ui_selector.cc +++ b/chrome/browser/permissions/prediction_service/permissions_ai_ui_selector.cc -@@ -434,6 +434,7 @@ void PermissionsAiUiSelector::SelectUiToUse( +@@ -414,6 +414,7 @@ void PermissionsAiUiSelector::SelectUiToUse( } } @@ -309,7 +300,7 @@ diff --git a/chrome/browser/permissions/prediction_service/permissions_ai_ui_sel void PermissionsAiUiSelector::OnGetInnerTextForOnDeviceModel( ModelExecutionData model_data, ModelExecutionCallback model_execution_callback, -@@ -481,6 +482,7 @@ void PermissionsAiUiSelector::OnGetInnerTextForOnDeviceModel( +@@ -468,6 +469,7 @@ void PermissionsAiUiSelector::OnGetInnerTextForOnDeviceModel( InquireServerModel(model_data.features, std::move(model_data.request_metadata)); } @@ -317,7 +308,7 @@ diff --git a/chrome/browser/permissions/prediction_service/permissions_ai_ui_sel void PermissionsAiUiSelector::OnTimeout() { VLOG(1) << "[CPSS] Overall timeout for prediction reached."; -@@ -697,6 +699,7 @@ bool PermissionsAiUiSelector::ShouldHoldBack( +@@ -677,6 +679,7 @@ bool PermissionsAiUiSelector::ShouldHoldBack( PredictionSource PermissionsAiUiSelector::GetPredictionTypeToUse( permissions::RequestType request_type) { @@ -325,7 +316,7 @@ diff --git a/chrome/browser/permissions/prediction_service/permissions_ai_ui_sel const bool is_msbb_enabled = profile_->GetPrefs()->GetBoolean( unified_consent::prefs::kUrlKeyedAnonymizedDataCollectionEnabled); -@@ -773,6 +776,7 @@ PredictionSource PermissionsAiUiSelector::GetPredictionTypeToUse( +@@ -749,6 +752,7 @@ PredictionSource PermissionsAiUiSelector::GetPredictionTypeToUse( return PredictionSource::kNoCpssModel; } @@ -333,7 +324,7 @@ diff --git a/chrome/browser/permissions/prediction_service/permissions_ai_ui_sel void PermissionsAiUiSelector::set_language_detection_observer_for_testing( std::unique_ptr language_detection_observer) { -@@ -785,6 +789,7 @@ void PermissionsAiUiSelector::set_inner_text_for_testing( +@@ -761,6 +765,7 @@ void PermissionsAiUiSelector::set_inner_text_for_testing( CHECK_IS_TEST(); inner_text_for_testing_ = std::move(inner_text_); } @@ -376,16 +367,16 @@ diff --git a/chrome/browser/permissions/prediction_service/permissions_ai_ui_sel diff --git a/chrome/browser/permissions/prediction_service/prediction_model_handler_provider.cc b/chrome/browser/permissions/prediction_service/prediction_model_handler_provider.cc --- a/chrome/browser/permissions/prediction_service/prediction_model_handler_provider.cc +++ b/chrome/browser/permissions/prediction_service/prediction_model_handler_provider.cc -@@ -13,15 +13,16 @@ +@@ -13,14 +13,16 @@ #include "chrome/browser/optimization_guide/optimization_guide_keyed_service.h" #include "components/optimization_guide/core/delivery/optimization_guide_model_provider.h" #include "components/permissions/features.h" -+#include "components/permissions/request_type.h" + +#if BUILDFLAG(BUILD_WITH_TFLITE_LIB) - #include "components/permissions/prediction_service/permissions_aiv3_handler.h" ++#include "components/permissions/prediction_service/permissions_aiv3_handler.h" #include "components/permissions/prediction_service/permissions_aiv4_handler.h" -#include "components/permissions/request_type.h" ++#endif #if BUILDFLAG(IS_ANDROID) #include "components/download/public/background_service/download_params.h" @@ -395,7 +386,7 @@ diff --git a/chrome/browser/permissions/prediction_service/prediction_model_hand #include "components/permissions/prediction_service/prediction_model_handler.h" #endif // BUILDFLAG(BUILD_WITH_TFLITE_LIB) -@@ -31,6 +32,7 @@ using optimization_guide::proto::OptimizationTarget; +@@ -30,6 +32,7 @@ using optimization_guide::proto::OptimizationTarget; namespace { @@ -403,7 +394,7 @@ diff --git a/chrome/browser/permissions/prediction_service/prediction_model_hand inline OptimizationTarget getGeolocationAiv4OptTarget() { #if BUILDFLAG(IS_ANDROID) return OptimizationTarget:: -@@ -49,6 +51,7 @@ inline OptimizationTarget getNotificationsAiv4OptTarget() { +@@ -48,6 +51,7 @@ inline OptimizationTarget getNotificationsAiv4OptTarget() { OPTIMIZATION_TARGET_PERMISSIONS_AIV4_NOTIFICATIONS_DESKTOP; #endif } @@ -411,7 +402,7 @@ diff --git a/chrome/browser/permissions/prediction_service/prediction_model_hand } // namespace -@@ -56,7 +59,10 @@ PredictionModelHandlerProvider::PredictionModelHandlerProvider( +@@ -55,7 +59,10 @@ PredictionModelHandlerProvider::PredictionModelHandlerProvider( OptimizationGuideKeyedService* optimization_guide, passage_embeddings::EmbedderMetadataProvider* embedder_metadata_provider, passage_embeddings::Embedder* passage_embedder) @@ -426,7 +417,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 -@@ -61,9 +61,11 @@ class PredictionModelHandlerProvider +@@ -56,9 +56,11 @@ class PredictionModelHandlerProvider #endif // BUILDFLAG(BUILD_WITH_TFLITE_LIB) private: @@ -441,7 +432,7 @@ diff --git a/chrome/browser/permissions/prediction_service/prediction_model_hand 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 -@@ -25,9 +25,9 @@ void QuietNotificationPermissionUiState::RegisterProfilePrefs( +@@ -24,9 +24,9 @@ void QuietNotificationPermissionUiState::RegisterProfilePrefs( registry->RegisterTimePref(prefs::kQuietNotificationPermissionUiDisabledTime, base::Time()); registry->RegisterBooleanPref(prefs::kEnableNotificationCPSS, @@ -495,10 +486,10 @@ diff --git a/chrome/browser/predictors/predictors_features.cc b/chrome/browser/p diff --git a/chrome/browser/preloading/prefetch/search_prefetch/field_trial_settings.cc b/chrome/browser/preloading/prefetch/search_prefetch/field_trial_settings.cc --- a/chrome/browser/preloading/prefetch/search_prefetch/field_trial_settings.cc +++ b/chrome/browser/preloading/prefetch/search_prefetch/field_trial_settings.cc -@@ -202,3 +202,7 @@ const base::FeatureParam - kSuppressesSearchPrefetchOnSlowNetworkThreshold{ - &kSuppressesSearchPrefetchOnSlowNetwork, - "slow_network_threshold_for_search_prefetch", base::Milliseconds(208)}; +@@ -255,3 +255,7 @@ bool ShouldSuppressPrefetchForUnsupportedMode(const AutocompleteMatch& match) { + } + return ShouldSuppressPrefetchForUnsupportedMode(match.destination_url); + } + +SET_CROMITE_FEATURE_DISABLED(kSearchPrefetchServicePrefetching); +SET_CROMITE_FEATURE_DISABLED(kSearchPrefetchWithNoVarySearchDiskCache); @@ -517,7 +508,7 @@ diff --git a/chrome/browser/preloading/prefetch/search_prefetch/search_prefetch_ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc -@@ -1221,7 +1221,6 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -1240,7 +1240,6 @@ void ChromeBrowserMainExtraPartsProfiles:: #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) policy::UserPolicyOidcSigninServiceFactory::GetInstance(); #endif @@ -528,7 +519,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 -@@ -57,7 +57,6 @@ static_library("safe_browsing") { +@@ -60,7 +60,6 @@ static_library("safe_browsing") { "//components/resources:components_resources_grit", "//components/safe_browsing:buildflags", "//components/safe_browsing/content/browser", @@ -587,7 +578,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 -@@ -572,7 +572,7 @@ void ChromeAutofillClient::GetAiPageContent(GetAiPageContentCallback callback) { +@@ -585,7 +585,7 @@ void ChromeAutofillClient::GetAiPageContent(GetAiPageContentCallback callback) { } AutofillAiManager* ChromeAutofillClient::GetAutofillAiManager() { @@ -596,7 +587,7 @@ diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.cc b/chrome/brows } AutofillAiModelCache* ChromeAutofillClient::GetAutofillAiModelCache() { -@@ -1404,18 +1404,7 @@ void ChromeAutofillClient::TriggerPlusAddressUserPerceptionSurvey( +@@ -1417,18 +1417,7 @@ void ChromeAutofillClient::TriggerPlusAddressUserPerceptionSurvey( optimization_guide::ModelQualityLogsUploaderService* ChromeAutofillClient::GetMqlsUploadService() { @@ -618,7 +609,7 @@ diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.cc b/chrome/brows diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc --- a/chrome/browser/ui/tab_helpers.cc +++ b/chrome/browser/ui/tab_helpers.cc -@@ -459,7 +459,6 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -477,7 +477,6 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { } MixedContentSettingsTabHelper::CreateForWebContents(web_contents); NavigationMetricsRecorder::CreateForWebContents(web_contents); @@ -812,8 +803,8 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_aloud_app_model.h diff --git a/chrome/renderer/accessibility/read_anything/read_anything_app_controller.cc b/chrome/renderer/accessibility/read_anything/read_anything_app_controller.cc --- a/chrome/renderer/accessibility/read_anything/read_anything_app_controller.cc +++ b/chrome/renderer/accessibility/read_anything/read_anything_app_controller.cc -@@ -27,7 +27,9 @@ - #include "build/build_config.h" +@@ -28,7 +28,9 @@ + #include "chrome/common/read_anything/read_anything.mojom-shared.h" #include "chrome/common/read_anything/read_anything_util.h" #include "chrome/renderer/accessibility/ax_tree_distiller.h" +#if BUILDFLAG(BUILD_WITH_TFLITE_LIB) @@ -822,7 +813,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" -@@ -2129,6 +2131,7 @@ void ReadAnythingAppController::OnConnected() { +@@ -2135,6 +2137,7 @@ void ReadAnythingAppController::OnConnected() { render_frame()->GetBrowserInterfaceBroker().GetInterface( std::move(page_handler_factory_receiver)); @@ -830,7 +821,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; -@@ -2137,6 +2140,7 @@ void ReadAnythingAppController::OnConnected() { +@@ -2143,6 +2146,7 @@ void ReadAnythingAppController::OnConnected() { page_handler_->GetDependencyParserModel( base::BindOnce(&ReadAnythingAppController::UpdateDependencyParserModel, weak_ptr_factory_.GetWeakPtr())); @@ -838,7 +829,7 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_anything_app_contr SetDistillationState( read_anything::mojom::ReadAnythingDistillationState::kNotAttempted); } -@@ -2398,8 +2402,10 @@ std::u16string ReadAnythingAppController::GetCurrentTextContent() { +@@ -2415,8 +2419,10 @@ std::u16string ReadAnythingAppController::GetCurrentTextContent() { } void ReadAnythingAppController::PreprocessTextForSpeech() { @@ -849,7 +840,7 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_anything_app_contr } void ReadAnythingAppController::MovePositionToNextGranularity() { -@@ -2755,14 +2761,18 @@ bool ReadAnythingAppController::IsDocsLoadMoreButtonVisible() const { +@@ -2768,14 +2774,18 @@ bool ReadAnythingAppController::IsDocsLoadMoreButtonVisible() const { void ReadAnythingAppController::UpdateDependencyParserModel( base::File model_file) { @@ -881,7 +872,7 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_anything_app_contr class ReadAnythingAppControllerTest; class ReadAnythingAppControllerScreen2xDataCollectionModeTest; class ReadAnythingAppControllerReadabilityTest; -@@ -383,7 +385,9 @@ class ReadAnythingAppController +@@ -381,7 +383,9 @@ class ReadAnythingAppController // available. void UpdateDependencyParserModel(base::File model_file); @@ -894,7 +885,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 -@@ -5902,8 +5902,6 @@ if (!is_android) { +@@ -6004,8 +6004,6 @@ if (!is_android) { "//chrome/browser/ui/exclusive_access:test_support", "//chrome/browser/ui/hats", "//components/safe_browsing/content/browser:safe_browsing_blocking_page", @@ -943,7 +934,7 @@ diff --git a/chrome/utility/services.cc b/chrome/utility/services.cc diff --git a/components/BUILD.gn b/components/BUILD.gn --- a/components/BUILD.gn +++ b/components/BUILD.gn -@@ -627,7 +627,7 @@ test("components_unittests") { +@@ -629,7 +629,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", @@ -966,7 +957,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; -@@ -1027,12 +1029,14 @@ void AutofillManager::UpdateFormCache( +@@ -1034,12 +1036,14 @@ void AutofillManager::UpdateFormCache( auto apply_predictions = [](FormStructure& form_structure, const AsyncContext& context, size_t i) { @@ -981,7 +972,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()); } -@@ -1148,6 +1152,7 @@ void AutofillManager::LogCurrentFieldTypes( +@@ -1155,6 +1159,7 @@ void AutofillManager::LogCurrentFieldTypes( } } @@ -989,7 +980,7 @@ diff --git a/components/autofill/core/browser/foundations/autofill_manager.cc b/ void AutofillManager::SubscribeToMlModelChanges( FieldClassificationModelHandler& handler) { switch (handler.optimization_target()) { -@@ -1171,5 +1176,6 @@ void AutofillManager::SubscribeToMlModelChanges( +@@ -1178,5 +1183,6 @@ void AutofillManager::SubscribeToMlModelChanges( NOTREACHED(); } } @@ -999,7 +990,7 @@ diff --git a/components/autofill/core/browser/foundations/autofill_manager.cc b/ diff --git a/components/autofill/core/browser/foundations/autofill_manager.h b/components/autofill/core/browser/foundations/autofill_manager.h --- a/components/autofill/core/browser/foundations/autofill_manager.h +++ b/components/autofill/core/browser/foundations/autofill_manager.h -@@ -39,6 +39,7 @@ +@@ -40,6 +40,7 @@ #include "components/autofill/core/common/mojom/autofill_types.mojom.h" #include "components/autofill/core/common/signatures.h" #include "components/autofill/core/common/unique_ids.h" @@ -1007,7 +998,7 @@ diff --git a/components/autofill/core/browser/foundations/autofill_manager.h b/c #include "components/translate/core/browser/translate_driver.h" namespace autofill { -@@ -375,10 +376,12 @@ class AutofillManager +@@ -392,10 +393,12 @@ class AutofillManager // Reparses all known forms. void ReparseKnownForms(); @@ -1223,7 +1214,7 @@ diff --git a/components/omnibox/browser/base_search_provider.cc b/components/omn diff --git a/components/optimization_guide/core/delivery/prediction_model_download_manager.cc b/components/optimization_guide/core/delivery/prediction_model_download_manager.cc --- a/components/optimization_guide/core/delivery/prediction_model_download_manager.cc +++ b/components/optimization_guide/core/delivery/prediction_model_download_manager.cc -@@ -53,7 +53,7 @@ const char kDisableModelDownloadsForBenchmarking[] = +@@ -55,7 +55,7 @@ const char kDisableModelDownloadsForBenchmarking[] = // we require models to come from. constexpr std::array kPublisherKeyHash = { 0x66, 0xa1, 0xd9, 0x3e, 0x4e, 0x5a, 0x66, 0x8a, 0x0f, 0xd3, 0xfa, @@ -1232,7 +1223,7 @@ diff --git a/components/optimization_guide/core/delivery/prediction_model_downlo 0x5c, 0x7f, 0xd0, 0x0c, 0xa1, 0x6e, 0xef, 0xdd, 0x63, 0x7a}; const net::NetworkTrafficAnnotationTag kOptimizationGuidePredictionModelsTrafficAnnotation = -@@ -123,7 +123,7 @@ PredictionModelDownloadManager::PredictionModelDownloadManager( +@@ -125,7 +125,7 @@ PredictionModelDownloadManager::PredictionModelDownloadManager( unzip::UnzipperFactory unzipper_factory, scoped_refptr background_task_runner) : download_service_tracker_(download_service_tracker), @@ -1241,7 +1232,7 @@ diff --git a/components/optimization_guide/core/delivery/prediction_model_downlo api_key_(features::GetOptimizationGuideServiceAPIKey()), get_base_model_dir_for_download_callback_( get_base_model_dir_for_download_callback), -@@ -137,6 +137,7 @@ void PredictionModelDownloadManager::StartDownload( +@@ -139,6 +139,7 @@ void PredictionModelDownloadManager::StartDownload( const GURL& download_url, proto::OptimizationTarget optimization_target, const std::optional& scheduling_params) { @@ -1249,7 +1240,7 @@ diff --git a/components/optimization_guide/core/delivery/prediction_model_downlo download::DownloadParams download_params; download_params.client = download::DownloadClient::OPTIMIZATION_GUIDE_PREDICTION_MODELS; -@@ -299,6 +300,7 @@ bool PredictionModelDownloadManager::VerifyDownload( +@@ -303,6 +304,7 @@ bool PredictionModelDownloadManager::VerifyDownload( const base::FilePath& download_file_path, const base::FilePath& base_model_dir, bool delete_file_on_error) { @@ -1311,7 +1302,7 @@ diff --git a/components/optimization_guide/core/optimization_guide_features.cc b } // namespace -@@ -279,8 +275,7 @@ size_t MaxHostKeyedHintCacheSize() { +@@ -275,8 +271,7 @@ size_t MaxHostKeyedHintCacheSize() { } bool ShouldPersistHintsToDisk() { @@ -1321,7 +1312,7 @@ diff --git a/components/optimization_guide/core/optimization_guide_features.cc b } RequestContextSet GetAllowedContextsForPersonalizedMetadata() { -@@ -641,5 +636,9 @@ std::optional GetMainFrameGetAIPageContentTimeout() { +@@ -637,5 +632,9 @@ std::optional GetMainFrameGetAIPageContentTimeout() { return kGetAIPageContentMainFrameTimeoutParam.Get(); } @@ -1347,7 +1338,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 -@@ -56,6 +56,7 @@ const base::FeatureParam kPageContentExtractionTriggeringMode{ +@@ -63,6 +63,7 @@ const base::FeatureParam kPageContentExtractionTriggeringMode{ bool IsSupportedLocale(const std::string& locale, const std::string& supported_locales) { @@ -1355,7 +1346,7 @@ diff --git a/components/page_content_annotations/core/page_content_annotations_f if (supported_locales == "*") { return true; } -@@ -75,6 +76,7 @@ bool IsSupportedLocale(const std::string& locale, +@@ -82,6 +83,7 @@ bool IsSupportedLocale(const std::string& locale, bool IsSupportedCountry(const std::string& country_code, const std::string& supported_countries) { @@ -1363,7 +1354,7 @@ diff --git a/components/page_content_annotations/core/page_content_annotations_f if (supported_countries == "*") { return true; } -@@ -274,6 +276,7 @@ bool IsSupportedLocaleForFeature( +@@ -281,6 +283,7 @@ bool IsSupportedLocaleForFeature( const std::string& locale, const base::Feature& feature, const std::string& default_value = "de,en,es,fr,it,nl,pt,tr") { @@ -1371,7 +1362,7 @@ diff --git a/components/page_content_annotations/core/page_content_annotations_f if (!base::FeatureList::IsEnabled(feature)) { return false; } -@@ -291,6 +294,7 @@ bool IsSupportedLocaleForFeature( +@@ -298,6 +301,7 @@ bool IsSupportedLocaleForFeature( bool IsSupportedCountryForFeature(const std::string& country_code, const base::Feature& feature, const std::string& default_value) { @@ -1379,7 +1370,7 @@ diff --git a/components/page_content_annotations/core/page_content_annotations_f if (!base::FeatureList::IsEnabled(feature)) { return false; } -@@ -305,4 +309,7 @@ bool IsSupportedCountryForFeature(const std::string& country_code, +@@ -312,4 +316,7 @@ bool IsSupportedCountryForFeature(const std::string& country_code, return IsSupportedCountry(country_code, value); } @@ -1452,8 +1443,8 @@ diff --git a/components/viz/service/BUILD.gn b/components/viz/service/BUILD.gn diff --git a/components/viz/service/gl/gpu_service_impl.cc b/components/viz/service/gl/gpu_service_impl.cc --- a/components/viz/service/gl/gpu_service_impl.cc +++ b/components/viz/service/gl/gpu_service_impl.cc -@@ -652,24 +652,6 @@ void GpuServiceImpl::BindWebNNContextProvider( - std::move(pending_receiver), client_id, is_incognito)); +@@ -641,25 +641,6 @@ void GpuServiceImpl::BindWebNNContextProvider( + client_id, client_tracing_id, is_incognito)); return; } - @@ -1467,20 +1458,21 @@ diff --git a/components/viz/service/gl/gpu_service_impl.cc b/components/viz/serv - // `client_id` in order to support memory metrics. - webnn_context_provider_ = webnn::WebNNContextProviderImpl::Create( - std::move(shared_context_state), gpu_feature_info_, gpu_info_, -- shared_image_manager(), +- shared_image_manager(), gpu_channel_manager_->peak_memory_monitor(), - base::BindOnce(&GpuServiceImpl::LoseAllContexts, weak_ptr_), - main_runner(), GetGpuScheduler(), gpu_host_); - } - -- webnn_context_provider_->BindWebNNContextProvider(std::move(pending_receiver), -- {is_incognito, client_id}); +- webnn_context_provider_->BindWebNNContextProvider( +- std::move(pending_receiver), +- {is_incognito, client_id, client_tracing_id}); } void GpuServiceImpl::GetVideoMemoryUsageStats( diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn --- a/content/browser/BUILD.gn +++ b/content/browser/BUILD.gn -@@ -272,9 +272,9 @@ source_set("browser") { +@@ -290,9 +290,9 @@ source_set("browser") { "//services/viz/public/cpp/gpu", "//services/viz/public/mojom", "//services/webnn:buildflags", @@ -1496,7 +1488,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 -@@ -1338,9 +1338,9 @@ bool GpuProcessHost::LaunchGpuProcess() { +@@ -1341,9 +1341,9 @@ bool GpuProcessHost::LaunchGpuProcess() { cmd_line->CopySwitchesFrom(browser_command_line, kSwitchNames); cmd_line->CopySwitchesFrom(browser_command_line, switches::kGLSwitchesCopiedFromGpuProcessHost); @@ -1512,7 +1504,7 @@ 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 -@@ -537,6 +537,7 @@ bool ServiceWorkerMainResourceLoader::StartRaceNetworkRequest( +@@ -543,6 +543,7 @@ bool ServiceWorkerMainResourceLoader::StartRaceNetworkRequest( scoped_refptr context, scoped_refptr version, base::OnceCallback clone_completed_for_fetch_handler_callback) { @@ -1577,17 +1569,17 @@ new file mode 100644 diff --git a/media/webrtc/BUILD.gn b/media/webrtc/BUILD.gn --- a/media/webrtc/BUILD.gn +++ b/media/webrtc/BUILD.gn -@@ -4,6 +4,7 @@ - +@@ -5,6 +5,7 @@ + import("//components/optimization_guide/features.gni") import("//media/media_options.gni") import("//third_party/webrtc/webrtc.gni") +import("//components/optimization_guide/features.gni") component("webrtc") { output_name = "media_webrtc" -@@ -31,6 +32,10 @@ component("webrtc") { - "//third_party/webrtc_overrides:webrtc_component", - ] +@@ -36,6 +37,10 @@ component("webrtc") { + deps += [ "//components/optimization_guide/core/inference:op_resolver" ] + } + if (!build_with_tflite_lib) { + deps -= [ "//components/optimization_guide/core/inference:op_resolver" ] @@ -1602,20 +1594,11 @@ diff --git a/media/webrtc/helpers.cc b/media/webrtc/helpers.cc @@ -14,6 +14,7 @@ #include "build/build_config.h" #include "build/chromecast_buildflags.h" - #include "components/optimization_guide/core/tflite_op_resolver.h" + #include "components/optimization_guide/machine_learning_tflite_buildflags.h" +#include "components/optimization_guide/machine_learning_tflite_buildflags.h" #include "media/base/media_switches.h" #include "media/webrtc/webrtc_features.h" #include "third_party/webrtc/api/audio/audio_processing.h" -@@ -161,7 +162,7 @@ CreateWebRtcAudioProcessingModule( - // Fuchsia does not use the optimization guide. - // Avoid linking the op resolver to keep Fuchsia binary size down. - // TODO(crbug.com/450466837): Investigate if this build guard can be avoided. --#if !BUILDFLAG(IS_FUCHSIA) -+#if !BUILDFLAG(IS_FUCHSIA) && BUILDFLAG(BUILD_WITH_TFLITE_LIB) - if (residual_echo_estimator_model) { - optimization_guide::TFLiteOpResolver op_resolver; - echo_estimator = webrtc::CreateNeuralResidualEchoEstimator( 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 @@ -1676,7 +1659,7 @@ 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 -@@ -258,35 +258,7 @@ void WebNNContextProviderImpl::CreateWebNNContext( +@@ -263,35 +263,7 @@ void WebNNContextProviderImpl::CreateWebNNContext( } #if BUILDFLAG(IS_WIN) @@ -1694,7 +1677,7 @@ diff --git a/services/webnn/webnn_context_provider_impl.cc b/services/webnn/webn - std::move(read_tensor_producer), std::move(read_tensor_consumer), - command_buffer_id, std::move(gpu_sequence), - std::move(owning_task_runner), std::move(receiver), std::move(remote), -- std::move(callback), params.is_incognito, +- std::move(callback), params.is_incognito, std::move(memory_tracker), - /*ep_package_info=*/{}); - return; - } @@ -1706,7 +1689,7 @@ diff --git a/services/webnn/webnn_context_provider_impl.cc b/services/webnn/webn - std::move(read_tensor_producer), std::move(read_tensor_consumer), - command_buffer_id, std::move(gpu_sequence), - std::move(owning_task_runner), std::move(receiver), std::move(remote), -- std::move(callback), params.is_incognito)); +- std::move(callback), params.is_incognito, std::move(memory_tracker))); - return; - } else if (dml::ShouldCreateDmlContext(*options)) { + if (dml::ShouldCreateDmlContext(*options)) { @@ -1716,7 +1699,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 -@@ -1797,6 +1797,7 @@ ALWAYS_INLINE bool HTMLDocumentParser::ShouldCheckTimeBudget( +@@ -1782,6 +1782,7 @@ ALWAYS_INLINE bool HTMLDocumentParser::ShouldCheckTimeBudget( } bool HTMLDocumentParser::ShouldSkipPreloadScan() { @@ -1738,7 +1721,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 -@@ -4213,7 +4213,7 @@ +@@ -4329,7 +4329,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 9b7051cc..1ea25053 100644 --- a/build/patches/Disable-all-promo-dialogs.patch +++ b/build/patches/Disable-all-promo-dialogs.patch @@ -4,21 +4,18 @@ Subject: Disable all promo dialogs License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- - .../chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java | 1 + - chrome/browser/ui/browser_ui_prefs.cc | 2 +- - .../views/profiles/profile_picker_feature_promo_controller.cc | 1 + - .../user_education/impl/browser_feature_promo_controller_20.cc | 1 + - .../chrome/browser/user_education/UserEducationHelper.java | 1 + - .../browser/user_education/user_education_service_factory.cc | 1 + - .../common/feature_promo/feature_promo_registry.cc | 2 ++ - .../common/feature_promo/impl/feature_promo_controller_20.cc | 1 + - .../common/feature_promo/impl/feature_promo_controller_25.cc | 3 ++- - 9 files changed, 11 insertions(+), 2 deletions(-) + .../chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java | 1 + + chrome/browser/ui/browser_ui_prefs.cc | 2 +- + .../chrome/browser/user_education/UserEducationHelper.java | 1 + + chrome/browser/user_education/user_education_service_factory.cc | 1 + + .../common/feature_promo/feature_promo_registry.cc | 2 ++ + .../common/feature_promo/impl/feature_promo_queue.cc | 1 + + 6 files changed, 7 insertions(+), 1 deletion(-) 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 -@@ -1976,6 +1976,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -2066,6 +2066,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { } private boolean maybeShowPromo(Profile profile) { @@ -29,7 +26,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 -@@ -188,7 +188,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -191,7 +191,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref(prefs::kEnterpriseHardwarePlatformAPIEnabled, false); @@ -38,28 +35,6 @@ diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_u registry->RegisterBooleanPref( prefs::kExternalProtocolDialogShowAlwaysOpenCheckbox, true); registry->RegisterBooleanPref(prefs::kScreenCaptureAllowed, true); -diff --git a/chrome/browser/ui/views/profiles/profile_picker_feature_promo_controller.cc b/chrome/browser/ui/views/profiles/profile_picker_feature_promo_controller.cc ---- a/chrome/browser/ui/views/profiles/profile_picker_feature_promo_controller.cc -+++ b/chrome/browser/ui/views/profiles/profile_picker_feature_promo_controller.cc -@@ -36,6 +36,7 @@ user_education::FeaturePromoResult - ProfilePickerFeaturePromoController::CanShowPromoForElement( - ui::TrackedElement* anchor_element, - const user_education::UserEducationContextPtr&) const { -+ if ((true)) return user_education::FeaturePromoResult::kBlockedByUi; - return ProfilePicker::IsOpen() - ? user_education::FeaturePromoResult::Success() - : user_education::FeaturePromoResult::kBlockedByUi; -diff --git a/chrome/browser/ui/views/user_education/impl/browser_feature_promo_controller_20.cc b/chrome/browser/ui/views/user_education/impl/browser_feature_promo_controller_20.cc ---- a/chrome/browser/ui/views/user_education/impl/browser_feature_promo_controller_20.cc -+++ b/chrome/browser/ui/views/user_education/impl/browser_feature_promo_controller_20.cc -@@ -47,6 +47,7 @@ user_education::FeaturePromoResult - BrowserFeaturePromoController20::CanShowPromoForElement( - ui::TrackedElement* anchor_element, - const user_education::UserEducationContextPtr& context) const { -+ if ((true)) return user_education::FeaturePromoResult::kBlockedByUi; - auto* const browser_context = context->AsA(); - CHECK(browser_context && browser_context->IsValid()); - auto* const browser_view = &browser_context->GetBrowserView(); diff --git a/chrome/browser/user_education/java/src/org/chromium/chrome/browser/user_education/UserEducationHelper.java b/chrome/browser/user_education/java/src/org/chromium/chrome/browser/user_education/UserEducationHelper.java --- a/chrome/browser/user_education/java/src/org/chromium/chrome/browser/user_education/UserEducationHelper.java +++ b/chrome/browser/user_education/java/src/org/chromium/chrome/browser/user_education/UserEducationHelper.java @@ -101,35 +76,15 @@ diff --git a/components/user_education/common/feature_promo/feature_promo_regist const base::Feature* const iph_feature = spec.feature; CHECK(iph_feature); FeatureRegistry::RegisterFeature(*iph_feature, -diff --git a/components/user_education/common/feature_promo/impl/feature_promo_controller_20.cc b/components/user_education/common/feature_promo/impl/feature_promo_controller_20.cc ---- a/components/user_education/common/feature_promo/impl/feature_promo_controller_20.cc -+++ b/components/user_education/common/feature_promo/impl/feature_promo_controller_20.cc -@@ -109,6 +109,7 @@ FeaturePromoResult FeaturePromoController20::CanShowPromoCommon( - const UserEducationContextPtr& context, - ShowSource source, - CanShowPromoOutputs* outputs) const { -+ if ((true)) return FeaturePromoResult::kBlockedByContext; - const bool for_demo = source == ShowSource::kDemo; - - // Ensure that this promo isn't already queued for startup. -diff --git a/components/user_education/common/feature_promo/impl/feature_promo_controller_25.cc b/components/user_education/common/feature_promo/impl/feature_promo_controller_25.cc ---- a/components/user_education/common/feature_promo/impl/feature_promo_controller_25.cc -+++ b/components/user_education/common/feature_promo/impl/feature_promo_controller_25.cc -@@ -189,6 +189,7 @@ FeaturePromoController25::~FeaturePromoController25() { - FeaturePromoResult FeaturePromoController25::CanShowPromo( - const FeaturePromoParams& params, +diff --git a/components/user_education/common/feature_promo/impl/feature_promo_queue.cc b/components/user_education/common/feature_promo/impl/feature_promo_queue.cc +--- a/components/user_education/common/feature_promo/impl/feature_promo_queue.cc ++++ b/components/user_education/common/feature_promo/impl/feature_promo_queue.cc +@@ -76,6 +76,7 @@ FeaturePromoResult FeaturePromoQueue::CanShow( + const FeaturePromoSpecification& spec, + const FeaturePromoParams& promo_params, const UserEducationContextPtr& context) const { -+ if ((true)) return FeaturePromoResult::kBlockedByContext; - auto* const spec = registry()->GetParamsForFeature(*params.feature); - if (!spec) { - return FeaturePromoResult::kError; -@@ -211,7 +212,7 @@ void FeaturePromoController25::MaybeShowStartupPromo( - void FeaturePromoController25::MaybeShowPromo(FeaturePromoParams params, - UserEducationContextPtr context) { - auto* const spec = registry()->GetParamsForFeature(*params.feature); -- if (!spec) { -+ if (((true)) || !spec) { - PostShowPromoResult(*params.feature, - std::move(params.show_promo_result_callback), - FeaturePromoResult::kError); ++ if ((true)) return user_education::FeaturePromoResult::kBlockedByUi; + auto required = required_preconditions_provider_->GetPreconditions( + spec, promo_params, context); + UnownedTypedDataCollection data; -- diff --git a/build/patches/Disable-conversion-measurement-api.patch b/build/patches/Disable-conversion-measurement-api.patch index 68b251e5..6a3fbfbb 100644 --- a/build/patches/Disable-conversion-measurement-api.patch +++ b/build/patches/Disable-conversion-measurement-api.patch @@ -53,7 +53,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 -@@ -1350,6 +1350,7 @@ network::mojom::AttributionSupport +@@ -1371,6 +1371,7 @@ network::mojom::AttributionSupport AwContentBrowserClient::GetAttributionSupport( AttributionReportingOsApiState state, bool client_os_disabled) { @@ -61,7 +61,7 @@ diff --git a/android_webview/browser/aw_content_browser_client.cc b/android_webv // WebView only supports OS-level attribution and not web-attribution. switch (state) { case AttributionReportingOsApiState::kDisabled: -@@ -1368,6 +1369,8 @@ bool AwContentBrowserClient::IsAttributionReportingOperationAllowed( +@@ -1389,6 +1390,8 @@ bool AwContentBrowserClient::IsAttributionReportingOperationAllowed( const url::Origin* destination_origin, const url::Origin* reporting_origin, bool* can_bypass) { @@ -82,7 +82,7 @@ diff --git a/android_webview/java/src/org/chromium/android_webview/AwSettings.ja @SpeculativeLoadingAllowedFlags private int mSpeculativeLoadingAllowedFlags = -@@ -1813,7 +1813,7 @@ public class AwSettings { +@@ -1820,7 +1820,7 @@ public class AwSettings { public void setAttributionBehavior(@AttributionBehavior int behavior) { synchronized (mAwSettingsLock) { if (mAttributionBehavior != behavior) { @@ -94,7 +94,7 @@ diff --git a/android_webview/java/src/org/chromium/android_webview/AwSettings.ja diff --git a/android_webview/tools/system_webview_shell/apk/AndroidManifest.xml b/android_webview/tools/system_webview_shell/apk/AndroidManifest.xml --- a/android_webview/tools/system_webview_shell/apk/AndroidManifest.xml +++ b/android_webview/tools/system_webview_shell/apk/AndroidManifest.xml -@@ -190,9 +190,6 @@ +@@ -191,9 +191,6 @@ android:exported="true"> @@ -115,7 +115,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro GetSwitchValueASCII(switches::kProcessType); const bool is_browser_process = process_type.empty(); diff --git a/build/patches/Enable-menu-on-reload-button.patch b/build/patches/Enable-menu-on-reload-button.patch index b4fd10a6..4389ffc4 100644 --- a/build/patches/Enable-menu-on-reload-button.patch +++ b/build/patches/Enable-menu-on-reload-button.patch @@ -14,7 +14,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd -@@ -4859,10 +4859,10 @@ are declared in tools/grit/grit_args.gni. +@@ -4899,10 +4899,10 @@ are declared in tools/grit/grit_args.gni. Normal Reload @@ -30,7 +30,7 @@ diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources diff --git a/chrome/browser/ui/views/toolbar/toolbar_view.cc b/chrome/browser/ui/views/toolbar/toolbar_view.cc --- a/chrome/browser/ui/views/toolbar/toolbar_view.cc +++ b/chrome/browser/ui/views/toolbar/toolbar_view.cc -@@ -691,7 +691,7 @@ void ToolbarView::Update(WebContents* tab) { +@@ -1140,7 +1140,7 @@ void ToolbarView::Update(WebContents* tab) { if (ReloadControl* reload_control = GetReloadButton(); reload_control) { reload_control->SetDevToolsStatus( diff --git a/build/patches/Enable-native-Android-autofill.patch b/build/patches/Enable-native-Android-autofill.patch index 314f9717..bf7a2e9b 100644 --- a/build/patches/Enable-native-Android-autofill.patch +++ b/build/patches/Enable-native-Android-autofill.patch @@ -16,13 +16,12 @@ Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later. License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- .../settings/PasswordSettings.java | 84 ++++++++++++++++- - .../chrome/browser/settings/MainSettings.java | 17 +--- + .../chrome/browser/settings/MainSettings.java | 18 +--- .../chromium/chrome/browser/tab/TabImpl.java | 41 ++++++-- chrome/browser/android/tab_android.cc | 4 +- chrome/browser/autofill/android/BUILD.gn | 2 +- .../autofill/AutofillClientProviderUtils.java | 2 +- ...AutofillThirdPartyModeContentProvider.java | 1 + - .../glic/actor_form_filling_service_impl.cc | 16 ++-- .../strings/android_chrome_strings.grd | 6 ++ .../ui/autofill/autofill_client_provider.cc | 94 +------------------ .../ui/autofill/autofill_client_provider.h | 6 -- @@ -45,7 +44,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../foundations/browser_autofill_manager.h | 2 + .../autofill/core/common/autofill_prefs.cc | 4 +- .../autofill/core/common/autofill_prefs.h | 5 + - 30 files changed, 247 insertions(+), 143 deletions(-) + 29 files changed, 239 insertions(+), 136 deletions(-) create mode 100644 components/android_autofill/browser/java/src/org/chromium/components/autofill/BrowserSelectionActionMenuDelegate.java 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 @@ -187,13 +186,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage 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 -@@ -626,21 +626,8 @@ public class MainSettings extends ChromeBaseSettingsFragment +@@ -627,22 +627,8 @@ public class MainSettings extends ChromeBaseSettingsFragment } private void updateAutofillPreferences() { - addPreferenceIfAbsent(PREF_AUTOFILL_SECTION); - addPreferenceIfAbsent(PREF_AUTOFILL_OPTIONS); - Preference autofillOptionsPreference = findPreference(PREF_AUTOFILL_OPTIONS); +- autofillOptionsPreference.setTitle(AutofillOptionsMediator.getFragmentTitle(getContext())); - autofillOptionsPreference.setFragment(null); - autofillOptionsPreference.setOnPreferenceClickListener( - preference -> { @@ -214,8 +214,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe 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 -@@ -122,6 +122,13 @@ import java.lang.ref.WeakReference; - import java.nio.ByteBuffer; +@@ -122,6 +122,13 @@ import java.util.HashMap; + import java.util.Map; import java.util.Objects; +import org.chromium.components.autofill.AutofillSelectionMenuItemHelper; @@ -228,7 +228,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. -@@ -1330,6 +1337,11 @@ class TabImpl implements Tab { +@@ -1248,6 +1255,11 @@ class TabImpl implements Tab { } mObservers.clear(); @@ -240,7 +240,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav if (!abortNavigationsFromTabClosures) mUserDataHost.destroy(); mTabViewManager.destroy(); hideNativePage(false, null); -@@ -1715,6 +1727,7 @@ class TabImpl implements Tab { +@@ -1637,6 +1649,7 @@ class TabImpl implements Tab { * @return iff the AutofillProvider should provide a ViewStructure when prompted. */ boolean providesAutofillStructure() { @@ -248,7 +248,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav if (!mProfile.isNativeInitialized()) { return false; } -@@ -2497,16 +2510,21 @@ class TabImpl implements Tab { +@@ -2436,16 +2449,21 @@ class TabImpl implements Tab { * @return true if the the provider is available for the given WebContents. */ private boolean prepareAutofillProvider(WebContents newWebContents) { @@ -276,7 +276,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav // TODO: crbug.com/432447902 — Provide only an activity context and push changes. mAutofillProvider = new AutofillProvider( -@@ -2516,7 +2534,16 @@ class TabImpl implements Tab { +@@ -2455,7 +2473,16 @@ class TabImpl implements Tab { getContext().getString(R.string.app_name)); TabImplJni.get().initializeAutofillIfNecessary(mNativeTabAndroid); } @@ -297,15 +297,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav diff --git a/chrome/browser/android/tab_android.cc b/chrome/browser/android/tab_android.cc --- a/chrome/browser/android/tab_android.cc +++ b/chrome/browser/android/tab_android.cc -@@ -39,6 +39,7 @@ - #include "chrome/browser/resource_coordinator/tab_load_tracker.h" +@@ -40,6 +40,7 @@ #include "chrome/browser/sync/glue/synced_tab_delegate_android.h" + #include "chrome/browser/tab/web_contents_state.h" #include "chrome/browser/tab_contents/tab_util.h" +#include "chrome/browser/ui/autofill/chrome_autofill_client.h" #include "chrome/browser/ui/android/context_menu_helper.h" #include "chrome/browser/ui/android/tab_model/tab_model.h" #include "chrome/browser/ui/android/tab_model/tab_model_list.h" -@@ -418,8 +419,7 @@ void TabAndroid::InitializeAutofillIfNecessary() { +@@ -417,8 +418,7 @@ void TabAndroid::InitializeAutofillIfNecessary() { ->MaybeInitKeyboardSuppressor(); return; } @@ -318,7 +318,7 @@ diff --git a/chrome/browser/android/tab_android.cc b/chrome/browser/android/tab_ diff --git a/chrome/browser/autofill/android/BUILD.gn b/chrome/browser/autofill/android/BUILD.gn --- a/chrome/browser/autofill/android/BUILD.gn +++ b/chrome/browser/autofill/android/BUILD.gn -@@ -181,7 +181,7 @@ android_library("bottom_sheet_utils_java") { +@@ -187,7 +187,7 @@ android_library("bottom_sheet_utils_java") { generate_jni("jni_headers") { sources = [ "java/src/org/chromium/chrome/browser/autofill/AddressNormalizerFactory.java", @@ -352,36 +352,10 @@ diff --git a/chrome/browser/autofill/android/java/src/org/chromium/chrome/browse if (createContentUri().equals(uri)) { final String[] columns = {AUTOFILL_THIRD_PARTY_MODE_COLUMN}; MatrixCursor cursor = new MatrixCursor(columns, 1); -diff --git a/chrome/browser/autofill/glic/actor_form_filling_service_impl.cc b/chrome/browser/autofill/glic/actor_form_filling_service_impl.cc ---- a/chrome/browser/autofill/glic/actor_form_filling_service_impl.cc -+++ b/chrome/browser/autofill/glic/actor_form_filling_service_impl.cc -@@ -412,14 +412,14 @@ GetAutofillManager(const tabs::TabInterface& tab) { - if (!profile) { - return base::unexpected(kAutofillNotAvailable); - } -- if (AutofillClientProviderFactory::GetForProfile(profile) -- .uses_platform_autofill()) { -- // This is currently only possible on Android platforms, but this check -- // guards against this becoming applicable for Desktop platforms as well. -- // It is a requirement for the cast to `BrowserAutofillManager` to be -- // safe. -- return base::unexpected(kAutofillNotAvailable); -- } -+ // if (AutofillClientProviderFactory::GetForProfile(profile) -+ // .uses_platform_autofill()) { -+ // // This is currently only possible on Android platforms, but this check -+ // // guards against this becoming applicable for Desktop platforms as well. -+ // // It is a requirement for the cast to `BrowserAutofillManager` to be -+ // // safe. -+ // return base::unexpected(kAutofillNotAvailable); -+ // } - - ContentAutofillClient* const client = - ContentAutofillClient::FromWebContents(tab.GetContents()); 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 -@@ -332,6 +332,12 @@ CHAR_LIMIT guidelines: +@@ -336,6 +336,12 @@ CHAR_LIMIT guidelines: You and Google @@ -532,7 +506,7 @@ diff --git a/chrome/browser/ui/autofill/autofill_client_provider.h b/chrome/brow 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 -@@ -377,9 +377,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -380,9 +380,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { web_contents); ChainedBackNavigationTracker::CreateForWebContents(web_contents); chrome_browser_net::NetErrorTabHelper::CreateForWebContents(web_contents); @@ -609,7 +583,7 @@ diff --git a/components/android_autofill/browser/java/src/org/chromium/component @@ -366,5 +368,6 @@ public class AutofillManagerWrapper { // NOTE: See the comment on TAG above for why this is still AwAutofillManager. // Check the system setting directly. - sIsLoggable = android.util.Log.isLoggable(TAG, Log.DEBUG); + sIsLoggable = Log.isLoggable(TAG, Log.DEBUG); + // sIsLoggable = true; // to force enable the log } } @@ -686,7 +660,7 @@ new file mode 100644 diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/components/autofill/content/browser/content_autofill_driver.cc --- a/components/autofill/content/browser/content_autofill_driver.cc +++ b/components/autofill/content/browser/content_autofill_driver.cc -@@ -279,6 +279,13 @@ void RouteToManager(ContentAutofillDriver& source, +@@ -280,6 +280,13 @@ void RouteToManager(ContentAutofillDriver& source, AutofillManager& manager = target.GetAutofillManager(); (manager.* manager_fun)(WithNewVersion(std::forward(args))...); @@ -700,7 +674,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co }, source, Lift(source, std::forward(args))...); } -@@ -694,6 +701,10 @@ ContentAutofillDriver::GetAutofillAgent() { +@@ -700,6 +707,10 @@ ContentAutofillDriver::GetAutofillAgent() { return autofill_agent_; } @@ -727,7 +701,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.h b/com content::RenderFrameHost* render_frame_host() { return &*render_frame_host_; } const content::RenderFrameHost* render_frame_host() const { return &*render_frame_host_; -@@ -315,6 +321,10 @@ class ContentAutofillDriver : public AutofillDriver, +@@ -316,6 +322,10 @@ class ContentAutofillDriver : public AutofillDriver, // The factory that created this driver. Outlives `this`. const raw_ref owner_; @@ -770,7 +744,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver_factory diff --git a/components/autofill/content/renderer/autofill_agent.cc b/components/autofill/content/renderer/autofill_agent.cc --- a/components/autofill/content/renderer/autofill_agent.cc +++ b/components/autofill/content/renderer/autofill_agent.cc -@@ -1516,17 +1516,19 @@ void AutofillAgent::ShowSuggestions( +@@ -1615,17 +1615,19 @@ void AutofillAgent::ShowSuggestions( password_generation_agent_->ShowPasswordGenerationSuggestions( input_element, form_cache)) { is_popup_possibly_visible_ = true; @@ -838,7 +812,7 @@ diff --git a/components/autofill/core/browser/foundations/autofill_driver_factor diff --git a/components/autofill/core/browser/foundations/autofill_manager.h b/components/autofill/core/browser/foundations/autofill_manager.h --- a/components/autofill/core/browser/foundations/autofill_manager.h +++ b/components/autofill/core/browser/foundations/autofill_manager.h -@@ -241,6 +241,8 @@ class AutofillManager +@@ -247,6 +247,8 @@ class AutofillManager LifecycleState new_state, base::PassKey pass_key); @@ -850,7 +824,7 @@ diff --git a/components/autofill/core/browser/foundations/autofill_manager.h b/c diff --git a/components/autofill/core/browser/foundations/browser_autofill_manager.cc b/components/autofill/core/browser/foundations/browser_autofill_manager.cc --- a/components/autofill/core/browser/foundations/browser_autofill_manager.cc +++ b/components/autofill/core/browser/foundations/browser_autofill_manager.cc -@@ -877,6 +877,8 @@ base::WeakPtr BrowserAutofillManager::GetWeakPtr() { +@@ -912,6 +912,8 @@ base::WeakPtr BrowserAutofillManager::GetWeakPtr() { return weak_ptr_factory_.GetWeakPtr(); } @@ -862,7 +836,7 @@ diff --git a/components/autofill/core/browser/foundations/browser_autofill_manag diff --git a/components/autofill/core/browser/foundations/browser_autofill_manager.h b/components/autofill/core/browser/foundations/browser_autofill_manager.h --- a/components/autofill/core/browser/foundations/browser_autofill_manager.h +++ b/components/autofill/core/browser/foundations/browser_autofill_manager.h -@@ -440,6 +440,8 @@ class BrowserAutofillManager : public AutofillManager { +@@ -457,6 +457,8 @@ class BrowserAutofillManager : public AutofillManager { // latter check is needed because IPC messages can arrive out of order. void UpdateInitialInteractionTimestamp(base::TimeTicks interaction_timestamp); diff --git a/build/patches/Enable-network-isolation-features.patch b/build/patches/Enable-network-isolation-features.patch index 4288b993..b5257dd0 100644 --- a/build/patches/Enable-network-isolation-features.patch +++ b/build/patches/Enable-network-isolation-features.patch @@ -21,7 +21,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/net/profile_network_context_service.cc b/chrome/browser/net/profile_network_context_service.cc --- a/chrome/browser/net/profile_network_context_service.cc +++ b/chrome/browser/net/profile_network_context_service.cc -@@ -440,8 +440,8 @@ bool GetHttpCacheBackendResetParam(PrefService* local_state) { +@@ -459,8 +459,8 @@ bool GetHttpCacheBackendResetParam(PrefService* local_state) { experiment_parts.push_back(kDiskCacheExperimentNameNone); // SplitCacheByIncludeCredentials experiment: experiment_parts.push_back(credentials_field_trial @@ -53,7 +53,7 @@ new file mode 100644 diff --git a/net/http/http_cache.cc b/net/http/http_cache.cc --- a/net/http/http_cache.cc +++ b/net/http/http_cache.cc -@@ -724,7 +724,7 @@ bool HttpCache::CanGenerateCacheKeyForRequest(const HttpRequestInfo& request) { +@@ -795,7 +795,7 @@ bool HttpCache::CanGenerateCacheKeyForRequest(const HttpRequestInfo& request) { // static // Generate a key that can be used inside the cache. @@ -62,7 +62,7 @@ diff --git a/net/http/http_cache.cc b/net/http/http_cache.cc const GURL& url, int load_flags, const NetworkIsolationKey& network_isolation_key, -@@ -761,8 +761,9 @@ std::string HttpCache::GenerateCacheKey( +@@ -832,8 +832,9 @@ std::string HttpCache::GenerateCacheKey( const bool is_initiator_cross_site = !net::SchemefulSite::IsSameSite(*initiator, url::Origin::Create(url)); if (is_initiator_cross_site) { @@ -74,7 +74,7 @@ diff --git a/net/http/http_cache.cc b/net/http/http_cache.cc } } isolation_key = base::StrCat( -@@ -781,10 +782,12 @@ std::string HttpCache::GenerateCacheKey( +@@ -852,10 +853,12 @@ std::string HttpCache::GenerateCacheKey( // Strip out the reference, username, and password sections of the URL and // concatenate with the credential_key, the post_key, and the network // isolation key if we are splitting the cache. @@ -88,7 +88,7 @@ diff --git a/net/http/http_cache.cc b/net/http/http_cache.cc } // static -@@ -804,11 +807,13 @@ std::optional HttpCache::GenerateCacheKeyInternal( +@@ -875,11 +878,13 @@ std::optional HttpCache::GenerateCacheKeyInternal( const int64_t upload_data_identifier = request.upload_data_stream ? request.upload_data_stream->identifier() : int64_t{0}; @@ -106,7 +106,7 @@ diff --git a/net/http/http_cache.cc b/net/http/http_cache.cc diff --git a/net/http/http_cache.h b/net/http/http_cache.h --- a/net/http/http_cache.h +++ b/net/http/http_cache.h -@@ -551,7 +551,7 @@ class NET_EXPORT HttpCache : public HttpTransactionFactory { +@@ -591,7 +591,7 @@ class NET_EXPORT HttpCache : public HttpTransactionFactory { // Generates a cache key given the various pieces used to construct the key. // Must not be called if a corresponding `CanGenerateCacheKeyForRequest` // returns false. diff --git a/build/patches/Enable-platform-aac-audio-and-h264-video.patch b/build/patches/Enable-platform-aac-audio-and-h264-video.patch index 4da350a9..447fbb9a 100644 --- a/build/patches/Enable-platform-aac-audio-and-h264-video.patch +++ b/build/patches/Enable-platform-aac-audio-and-h264-video.patch @@ -50,7 +50,7 @@ diff --git a/media/BUILD.gn b/media/BUILD.gn diff --git a/media/base/android/java/src/org/chromium/media/AudioManagerAndroid.java b/media/base/android/java/src/org/chromium/media/AudioManagerAndroid.java --- a/media/base/android/java/src/org/chromium/media/AudioManagerAndroid.java +++ b/media/base/android/java/src/org/chromium/media/AudioManagerAndroid.java -@@ -669,6 +669,8 @@ class AudioManagerAndroid { +@@ -678,6 +678,8 @@ class AudioManagerAndroid { break; } } @@ -118,7 +118,7 @@ diff --git a/media/filters/ffmpeg_audio_decoder.cc b/media/filters/ffmpeg_audio_ diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc --- a/media/filters/ffmpeg_demuxer.cc +++ b/media/filters/ffmpeg_demuxer.cc -@@ -726,6 +726,7 @@ void FFmpegDemuxerStream::InitBitstreamConverter() { +@@ -727,6 +727,7 @@ void FFmpegDemuxerStream::InitBitstreamConverter() { // FFmpeg doesn't understand xHE-AAC profiles yet, which can't be put in // ADTS anyways, so skip bitstream conversion when the profile is // unknown. @@ -190,7 +190,7 @@ diff --git a/media/filters/win/media_foundation_audio_decoder.cc b/media/filters diff --git a/media/gpu/windows/supported_profile_helpers.cc b/media/gpu/windows/supported_profile_helpers.cc --- a/media/gpu/windows/supported_profile_helpers.cc +++ b/media/gpu/windows/supported_profile_helpers.cc -@@ -344,7 +344,11 @@ SupportedResolutionRangeMap GetSupportedD3DVideoDecoderResolutions( +@@ -364,7 +364,11 @@ SupportedResolutionRangeMap GetSupportedD3DVideoDecoderResolutions( // // On Windows 7 the maximum resolution supported by media foundation is // 1920 x 1088. We use 1088 to account for 16x16 macro-blocks. @@ -202,7 +202,7 @@ diff --git a/media/gpu/windows/supported_profile_helpers.cc b/media/gpu/windows/ SupportedResolutionRange h264_profile; h264_profile.min_resolution = kMinResolution; h264_profile.max_landscape_resolution = kDefaultMaxH264Resolution; -@@ -352,7 +356,14 @@ SupportedResolutionRangeMap GetSupportedD3DVideoDecoderResolutions( +@@ -372,7 +376,14 @@ SupportedResolutionRangeMap GetSupportedD3DVideoDecoderResolutions( // We don't have a way to map DXVA support to specific H.264 profiles, so just // mark all the common ones with the same level of support. constexpr VideoCodecProfile kSupportedH264Profiles[] = { diff --git a/build/patches/Enable-search-engine-settings-desktop-ui.patch b/build/patches/Enable-search-engine-settings-desktop-ui.patch index 11565b91..778efc84 100644 --- a/build/patches/Enable-search-engine-settings-desktop-ui.patch +++ b/build/patches/Enable-search-engine-settings-desktop-ui.patch @@ -121,7 +121,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 -@@ -328,6 +328,11 @@ are declared in tools/grit/grit_args.gni. +@@ -326,6 +326,11 @@ are declared in tools/grit/grit_args.gni. @@ -133,7 +133,7 @@ diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources -@@ -534,7 +539,7 @@ are declared in tools/grit/grit_args.gni. +@@ -532,7 +537,7 @@ are declared in tools/grit/grit_args.gni. Disable @@ -156,7 +156,7 @@ diff --git a/chrome/app/generated_resources.grd.gritdeps b/chrome/app/generated_ 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 -@@ -2397,6 +2397,9 @@ +@@ -2473,6 +2473,9 @@ URL with %s in place of query @@ -434,7 +434,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 -@@ -3686,6 +3686,9 @@ static_library("browser") { +@@ -3600,6 +3600,9 @@ static_library("browser") { "//components/user_scripts/android", ] } @@ -447,7 +447,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 -@@ -378,6 +378,9 @@ void PopulateChromeWebUIFrameBindersPartsDesktop( +@@ -388,6 +388,9 @@ void PopulateChromeWebUIFrameBindersPartsDesktop( #endif // !BUILDFLAG(IS_CHROMEOS) >(map); @@ -472,7 +472,7 @@ diff --git a/chrome/browser/extensions/extension_util.h b/chrome/browser/extensi 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 -@@ -28,6 +28,13 @@ group("resources") { +@@ -32,6 +32,13 @@ group("resources") { public_deps += [ ":component_extension_resources" ] } @@ -501,7 +501,7 @@ diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resourc diff --git a/chrome/browser/resources/settings/lazy_load.ts b/chrome/browser/resources/settings/lazy_load.ts --- a/chrome/browser/resources/settings/lazy_load.ts +++ b/chrome/browser/resources/settings/lazy_load.ts -@@ -142,7 +142,7 @@ export {CrTextareaElement} from 'chrome://resources/cr_elements/cr_textarea/cr_t +@@ -141,7 +141,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'; @@ -845,9 +845,9 @@ diff --git a/chrome/browser/search/background/BUILD.gn b/chrome/browser/search/b diff --git a/chrome/browser/search_engines/android/BUILD.gn b/chrome/browser/search_engines/android/BUILD.gn --- a/chrome/browser/search_engines/android/BUILD.gn +++ b/chrome/browser/search_engines/android/BUILD.gn -@@ -86,6 +86,7 @@ android_resources("java_resources") { - "java/res/layout/custom_search_engine_list_preference.xml", - "java/res/layout/default_search_engine_dialog_view.xml", +@@ -111,6 +111,7 @@ android_resources("java_resources") { + "java/res/layout/keyboard_shortcut_radio_group.xml", + "java/res/layout/preference_list_recycler_view.xml", "java/res/layout/search_engine_choice_header.xml", + "java/res/layout/search_engine_layout.xml", "java/res/layout/search_engine_recent_title.xml", @@ -930,7 +930,7 @@ 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 -@@ -679,7 +679,11 @@ static_library("ui") { +@@ -705,7 +705,11 @@ static_library("ui") { if (is_desktop_android) { deps += [ "//chrome/browser/ui/android/extensions/windowing/internal" ] } @@ -943,7 +943,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) { -@@ -1018,6 +1022,25 @@ static_library("ui") { +@@ -1049,6 +1053,25 @@ static_library("ui") { "//extensions/browser:extension_action_enums", ] } @@ -972,7 +972,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn diff --git a/chrome/browser/ui/search_engines/edit_search_engine_controller.cc b/chrome/browser/ui/search_engines/edit_search_engine_controller.cc --- a/chrome/browser/ui/search_engines/edit_search_engine_controller.cc +++ b/chrome/browser/ui/search_engines/edit_search_engine_controller.cc -@@ -93,9 +93,11 @@ bool EditSearchEngineController::IsKeywordValid( +@@ -50,12 +50,14 @@ bool EditSearchEngineController::IsKeywordValid( void EditSearchEngineController::AcceptAddOrEdit( const std::u16string& title_input, const std::u16string& keyword_input, @@ -980,12 +980,15 @@ diff --git a/chrome/browser/ui/search_engines/edit_search_engine_controller.cc b + const std::string& url_input, + const std::string& url_suggestion_input) { DCHECK(!keyword_input.empty()); - std::string url_string = GetFixedUpURL(url_input); + TemplateURLService* template_url_service = + TemplateURLServiceFactory::GetForProfile(profile_); + std::string url_string = GetFixedUpSearchEngineUrl( + url_input, template_url_service->search_terms_data()); + std::string url_suggestion = GetFixedUpURL(url_suggestion_input); DCHECK(!url_string.empty()); - TemplateURLService* template_url_service = -@@ -119,12 +121,12 @@ void EditSearchEngineController::AcceptAddOrEdit( + const TemplateURL* existing = +@@ -77,12 +79,12 @@ void EditSearchEngineController::AcceptAddOrEdit( DCHECK(template_url_); template_url_service->AddWithOverrides( base::WrapUnique(template_url_.get()), title_input, keyword_input, @@ -1093,7 +1096,7 @@ diff --git a/chrome/browser/ui/search_engines/keyword_editor_controller.h b/chro diff --git a/chrome/browser/ui/search_engines/template_url_table_model.cc b/chrome/browser/ui/search_engines/template_url_table_model.cc --- a/chrome/browser/ui/search_engines/template_url_table_model.cc +++ b/chrome/browser/ui/search_engines/template_url_table_model.cc -@@ -210,7 +210,8 @@ void TemplateURLTableModel::Remove(size_t index) { +@@ -139,7 +139,8 @@ void TemplateURLTableModel::Remove(size_t index) { void TemplateURLTableModel::Add(size_t index, const std::u16string& short_name, const std::u16string& keyword, @@ -1103,7 +1106,7 @@ diff --git a/chrome/browser/ui/search_engines/template_url_table_model.cc b/chro DCHECK(index <= RowCount()); DCHECK(!url.empty()); TemplateURLData data; -@@ -218,13 +219,15 @@ void TemplateURLTableModel::Add(size_t index, +@@ -147,13 +148,15 @@ void TemplateURLTableModel::Add(size_t index, data.SetKeyword(keyword); data.SetURL(url); data.is_active = TemplateURLData::ActiveStatus::kTrue; @@ -1120,7 +1123,7 @@ diff --git a/chrome/browser/ui/search_engines/template_url_table_model.cc b/chro DCHECK(index <= RowCount()); DCHECK(!url.empty()); TemplateURL* template_url = GetTemplateURL(index); -@@ -233,7 +236,7 @@ void TemplateURLTableModel::ModifyTemplateURL(size_t index, +@@ -162,7 +165,7 @@ void TemplateURLTableModel::ModifyTemplateURL(size_t index, DCHECK(template_url_service_->GetDefaultSearchProvider() != template_url || template_url->SupportsReplacement( template_url_service_->search_terms_data())); @@ -1132,7 +1135,7 @@ diff --git a/chrome/browser/ui/search_engines/template_url_table_model.cc b/chro diff --git a/chrome/browser/ui/search_engines/template_url_table_model.h b/chrome/browser/ui/search_engines/template_url_table_model.h --- a/chrome/browser/ui/search_engines/template_url_table_model.h +++ b/chrome/browser/ui/search_engines/template_url_table_model.h -@@ -85,13 +85,15 @@ class TemplateURLTableModel : public ui::TableModel, +@@ -59,13 +59,15 @@ class TemplateURLTableModel : public ui::TableModel, void Add(size_t index, const std::u16string& short_name, const std::u16string& keyword, @@ -1153,7 +1156,7 @@ diff --git a/chrome/browser/ui/search_engines/template_url_table_model.h b/chrom diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/ui/webui/chrome_web_ui_configs.cc --- a/chrome/browser/ui/webui/chrome_web_ui_configs.cc +++ b/chrome/browser/ui/webui/chrome_web_ui_configs.cc -@@ -66,6 +66,11 @@ +@@ -70,6 +70,11 @@ #include "components/user_scripts/browser/ui/user_scripts_ui.h" #endif @@ -1252,7 +1255,7 @@ diff --git a/chrome/browser/ui/webui/favicon_source.h b/chrome/browser/ui/webui/ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome/browser/ui/webui/settings/search_engines_handler.cc --- a/chrome/browser/ui/webui/settings/search_engines_handler.cc +++ b/chrome/browser/ui/webui/settings/search_engines_handler.cc -@@ -37,10 +37,12 @@ +@@ -38,10 +38,12 @@ #include "components/search_engines/template_url_service.h" #include "components/search_engines/template_url_starter_pack_data.h" #include "content/public/browser/web_ui.h" @@ -1265,7 +1268,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome #if BUILDFLAG(IS_CHROMEOS) #include "ash/public/cpp/new_window_delegate.h" -@@ -52,6 +54,7 @@ namespace { +@@ -53,6 +55,7 @@ namespace { const char kSearchEngineField[] = "searchEngine"; const char kKeywordField[] = "keyword"; const char kQueryUrlField[] = "queryUrl"; @@ -1273,7 +1276,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome // Dummy number used for indicating that a new search engine is added. const int kNewSearchEngineIndex = -1; -@@ -255,9 +258,10 @@ base::DictValue SearchEnginesHandler::CreateDictionaryForEngine( +@@ -256,9 +259,10 @@ base::DictValue SearchEnginesHandler::CreateDictionaryForEngine( IDS_SEARCH_ENGINES_EDITOR_DESCRIPTION_COLUMN)); dict.Set("keyword", table_model->GetText( index, IDS_SEARCH_ENGINES_EDITOR_KEYWORD_COLUMN)); @@ -1285,7 +1288,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome dict.Set("urlLocked", ((template_url->prepopulate_id() > 0) || (template_url->starter_pack_id() != -@@ -276,6 +280,8 @@ base::DictValue SearchEnginesHandler::CreateDictionaryForEngine( +@@ -277,6 +281,8 @@ base::DictValue SearchEnginesHandler::CreateDictionaryForEngine( #endif } @@ -1294,7 +1297,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome // The icons that are used for search engines in the EEA region are bundled // with Chrome. We use the favicon service for countries outside the EEA // region to guarantee having icons for all search engines. -@@ -292,6 +298,7 @@ base::DictValue SearchEnginesHandler::CreateDictionaryForEngine( +@@ -293,6 +299,7 @@ base::DictValue SearchEnginesHandler::CreateDictionaryForEngine( base::StrCat({"chrome://theme/", template_url->GetBuiltinImageResourceId(), "@2x"})); } @@ -1302,7 +1305,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome dict.Set("modelIndex", base::checked_cast(index)); -@@ -310,6 +317,7 @@ base::DictValue SearchEnginesHandler::CreateDictionaryForEngine( +@@ -311,6 +318,7 @@ base::DictValue SearchEnginesHandler::CreateDictionaryForEngine( dict.Set("isStarterPack", template_url->starter_pack_id() != template_url_starter_pack_data::StarterPackId::kNone); @@ -1310,7 +1313,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome if (type == TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION || type == TemplateURL::OMNIBOX_API_EXTENSION) { const extensions::Extension* extension = -@@ -325,6 +333,7 @@ base::DictValue SearchEnginesHandler::CreateDictionaryForEngine( +@@ -326,6 +334,7 @@ base::DictValue SearchEnginesHandler::CreateDictionaryForEngine( dict.Set("extension", std::move(ext_info)); } } @@ -1318,7 +1321,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome return dict; } -@@ -427,12 +436,13 @@ void SearchEnginesHandler::HandleSearchEngineEditStarted( +@@ -428,12 +437,13 @@ void SearchEnginesHandler::HandleSearchEngineEditStarted( void SearchEnginesHandler::OnEditedKeyword(TemplateURL* template_url, const std::u16string& title, const std::u16string& keyword, @@ -1335,7 +1338,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome } edit_controller_.reset(); -@@ -462,6 +472,8 @@ bool SearchEnginesHandler::CheckFieldValidity(const std::string& field_name, +@@ -463,6 +473,8 @@ bool SearchEnginesHandler::CheckFieldValidity(const std::string& field_name, is_valid = edit_controller_->IsKeywordValid(base::UTF8ToUTF16(field_value)); } else if (field_name.compare(kQueryUrlField) == 0) { is_valid = edit_controller_->IsURLValid(field_value); @@ -1344,7 +1347,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome } else { NOTREACHED(); } -@@ -484,18 +496,20 @@ void SearchEnginesHandler::HandleSearchEngineEditCompleted( +@@ -485,18 +497,20 @@ void SearchEnginesHandler::HandleSearchEngineEditCompleted( return; } @@ -1384,7 +1387,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 -@@ -2901,6 +2901,8 @@ void AddSearchEnginesStrings(content::WebUIDataSource* html_source) { +@@ -2931,6 +2931,8 @@ void AddSearchEnginesStrings(content::WebUIDataSource* html_source) { {"searchEnginesQueryURL", IDS_SETTINGS_SEARCH_ENGINES_QUERY_URL}, {"searchEnginesQueryURLExplanation", IDS_SETTINGS_SEARCH_ENGINES_QUERY_URL_EXPLANATION}, @@ -1393,7 +1396,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}, -@@ -4229,7 +4231,11 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, +@@ -4262,7 +4264,11 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, AddSiteSettingsStrings(html_source, profile); AddSiteDataPageStrings(html_source, profile); AddStorageAccessStrings(html_source); @@ -1886,7 +1889,7 @@ new file mode 100644 diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni --- a/chrome/chrome_paks.gni +++ b/chrome/chrome_paks.gni -@@ -192,6 +192,17 @@ template("chrome_extra_paks") { +@@ -200,6 +200,17 @@ template("chrome_extra_paks") { deps += [ "//chrome/browser/resources:component_extension_resources" ] } @@ -1930,7 +1933,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 -@@ -431,7 +431,7 @@ bool TemplateUrlServiceAndroid::SetPlayAPISearchEngine( +@@ -433,7 +433,7 @@ bool TemplateUrlServiceAndroid::SetPlayAPISearchEngine( if (regulatory_api_turl->safe_for_autoreplace()) { template_url_service_->ResetTemplateURL( regulatory_api_turl, regulatory_api_turl->short_name(), @@ -1978,7 +1981,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 -@@ -802,13 +802,15 @@ TemplateURL* TemplateURLService::AddWithOverrides( +@@ -799,13 +799,15 @@ TemplateURL* TemplateURLService::AddWithOverrides( std::unique_ptr template_url, const std::u16string& short_name, const std::u16string& keyword, @@ -1995,7 +1998,7 @@ diff --git a/components/search_engines/template_url_service.cc b/components/sear return Add(std::move(template_url)); } -@@ -1031,7 +1033,8 @@ void TemplateURLService::IncrementUsageCount(TemplateURL* url) { +@@ -1028,7 +1030,8 @@ void TemplateURLService::IncrementUsageCount(TemplateURL* url) { void TemplateURLService::ResetTemplateURL(TemplateURL* url, const std::u16string& title, const std::u16string& keyword, @@ -2005,7 +2008,7 @@ diff --git a/components/search_engines/template_url_service.cc b/components/sear DCHECK(!IsCreatedByExtension(*url)); DCHECK(!keyword.empty()); DCHECK(!search_url.empty()); -@@ -1051,6 +1054,7 @@ void TemplateURLService::ResetTemplateURL(TemplateURL* url, +@@ -1048,6 +1051,7 @@ void TemplateURLService::ResetTemplateURL(TemplateURL* url, // The urls have changed, reset the favicon url. data.favicon_url = GURL(); } @@ -2129,7 +2132,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", -@@ -230,6 +240,12 @@ ts_library("library") { +@@ -224,6 +234,12 @@ ts_library("library") { [ "components-chromium/iron-fit-behavior/iron-fit-behavior.d.ts" ] } @@ -2324,16 +2327,16 @@ 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 -@@ -49,7 +49,7 @@ build_webui("build") { - "cr_tabs/cr_tabs.css", - ] +@@ -87,7 +87,7 @@ build_webui("build") { + ] + } - if ((!is_android && !is_ios) || is_desktop_android) { + if ((!is_ios) || is_desktop_android) { - web_component_files += [ "cr_a11y_announcer/cr_a11y_announcer.ts" ] - + static_files = [ "cr_a11y_announcer/cr_a11y_announcer.css" ] ts_files += [ -@@ -142,7 +142,7 @@ build_webui("build") { + "cr_radio_button/cr_radio_button_mixin_lit.ts", +@@ -163,7 +163,7 @@ build_webui("build") { ] } @@ -2342,7 +2345,7 @@ diff --git a/ui/webui/resources/cr_elements/BUILD.gn b/ui/webui/resources/cr_ele ts_files += [ "cr_radio_button/cr_radio_button_mixin.ts", "cr_ripple/cr_ripple_mixin_polymer.ts", -@@ -237,7 +237,7 @@ build_webui("build") { +@@ -246,7 +246,7 @@ build_webui("build") { "../js:build_ts", "//third_party/lit/v3_0:build_ts", ] @@ -2387,8 +2390,8 @@ diff --git a/ui/webui/resources/cr_elements/cr_shared_vars.css b/ui/webui/resour } @media (prefers-color-scheme: dark) { -@@ -365,3 +367,9 @@ html { - --cr-fallback-color-disabled-foreground: GrayText; +@@ -371,3 +373,9 @@ html { + --cr-animations-disabled: 1; } } + diff --git a/build/patches/Enable-share-intent.patch b/build/patches/Enable-share-intent.patch index b341e1d3..0db19c97 100644 --- a/build/patches/Enable-share-intent.patch +++ b/build/patches/Enable-share-intent.patch @@ -35,7 +35,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni --- a/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni -@@ -598,6 +598,7 @@ chrome_java_resources = [ +@@ -596,6 +596,7 @@ chrome_java_resources = [ "java/res/layout/shopping_accessory_view_layout.xml", "java/res/layout/status_indicator_container.xml", "java/res/layout/suggestions_tile_view_condensed.xml", @@ -46,7 +46,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -1057,6 +1057,7 @@ chrome_java_sources = [ +@@ -1072,6 +1072,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/signin/SigninCheckerProvider.java", "java/src/org/chromium/chrome/browser/signin/SigninFirstRunFragment.java", "java/src/org/chromium/chrome/browser/signin/SigninManagerImpl.java", @@ -57,7 +57,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml --- a/chrome/android/java/AndroidManifest.xml +++ b/chrome/android/java/AndroidManifest.xml -@@ -277,12 +277,6 @@ by a child template that "extends" this file. +@@ -279,12 +279,6 @@ by a child template that "extends" this file. @@ -70,7 +70,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -@@ -361,6 +355,10 @@ by a child template that "extends" this file. +@@ -363,6 +357,10 @@ by a child template that "extends" this file. @@ -81,7 +81,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -@@ -397,6 +395,24 @@ by a child template that "extends" this file. +@@ -399,6 +397,24 @@ by a child template that "extends" this file. @@ -202,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 -@@ -200,6 +200,9 @@ public class IntentHandler { +@@ -204,6 +204,9 @@ public class IntentHandler { private static final String EXTRA_TAB_LAUNCH_TYPE = "org.chromium.chrome.browser.tab_launch_type"; @@ -212,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"; -@@ -1539,6 +1542,17 @@ public class IntentHandler { +@@ -1540,6 +1543,17 @@ public class IntentHandler { return IntentUtils.safeGetIntExtra(intent, EXTRA_DEST_TAB_ID, Tab.INVALID_TAB_ID); } @@ -230,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. -@@ -1749,7 +1763,7 @@ public class IntentHandler { +@@ -1750,7 +1764,7 @@ public class IntentHandler { String headers = getExtraHeadersFromIntent(intent); headers = maybeAddAdditionalContentHeaders(intent, url, headers); @@ -242,7 +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 -@@ -352,8 +352,8 @@ public class LaunchIntentDispatcher { +@@ -361,8 +361,8 @@ public class LaunchIntentDispatcher { /*incognito*/true); newIntent.setData(mIntent.getData()); newIntent.setPackage(applicationContext.getPackageName()); @@ -290,7 +290,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/document/Chrome 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 -@@ -107,6 +107,7 @@ import org.chromium.chrome.browser.tabmodel.TabPersistentStoreImpl; +@@ -110,6 +110,7 @@ import org.chromium.chrome.browser.tabmodel.TabPersistentStoreImpl; import org.chromium.chrome.browser.ui.cars.DrivingRestrictionsManager; import org.chromium.chrome.browser.ui.hats.SurveyClientFactory; import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityPreferencesManager; @@ -298,7 +298,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessIni import org.chromium.chrome.browser.usb.UsbNotificationManager; import org.chromium.chrome.browser.util.AfterStartupTaskUtils; import org.chromium.chrome.browser.webapps.ChromeWebApkHost; -@@ -692,6 +693,7 @@ public class ProcessInitializationHandler { +@@ -705,6 +706,7 @@ public class ProcessInitializationHandler { tasks.add(WebApkUninstallTracker::runDeferredTasks); @@ -473,7 +473,7 @@ new file mode 100644 diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -412,6 +412,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -417,6 +417,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kRelatedSearchesAllLanguage, &kRelatedSearchesSwitch, &kReloadTabUiResourcesIfChanged, @@ -484,7 +484,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -578,6 +578,7 @@ public abstract class ChromeFeatureList { +@@ -583,6 +583,7 @@ public abstract class ChromeFeatureList { public static final String RECENTLY_CLOSED_TABS_AND_WINDOWS = "RecentlyClosedTabsAndWindows"; public static final String RECORD_INCOGNITO_NTP_TIME_TO_FIRST_NAVIGATION_METRIC = "RecordIncognitoNtpTimeToFirstNavigationMetric"; @@ -495,7 +495,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -6477,6 +6477,19 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -6613,6 +6613,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/Enables-deactivation-of-the-js-debugger-statement.patch b/build/patches/Enables-deactivation-of-the-js-debugger-statement.patch index 5697d305..88dca234 100644 --- a/build/patches/Enables-deactivation-of-the-js-debugger-statement.patch +++ b/build/patches/Enables-deactivation-of-the-js-debugger-statement.patch @@ -72,7 +72,7 @@ diff --git a/third_party/devtools-frontend/src/front_end/core/sdk/sdk-meta.ts b/ /** * @description Title of a setting under the Debugger category that can be invoked through the Command Menu */ -@@ -414,6 +418,25 @@ Common.Settings.registerSettingExtension({ +@@ -426,6 +430,25 @@ Common.Settings.registerSettingExtension({ ], }); @@ -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 -@@ -1535,6 +1535,10 @@ inspectorBackend.registerCommand("Debugger.resume", [{"name": "terminateOnResume +@@ -1548,6 +1548,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 -@@ -5475,6 +5475,10 @@ export namespace ProtocolMapping { +@@ -5511,6 +5511,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 -@@ -4925,6 +4925,8 @@ declare namespace ProtocolProxyApi { +@@ -4957,6 +4957,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 -@@ -20821,6 +20821,10 @@ export namespace Debugger { +@@ -21087,6 +21087,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 -@@ -31640,8 +31640,17 @@ +@@ -31997,8 +31997,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, -@@ -34831,4 +34840,4 @@ +@@ -35188,4 +35197,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 -@@ -777,6 +777,7 @@ namespace internal { +@@ -778,6 +778,7 @@ namespace internal { /* AggregateError */ \ T(AllPromisesRejected, "All promises were rejected") \ T(CannotDeepFreezeObject, "Cannot DeepFreeze object of type %") \ @@ -210,7 +210,7 @@ diff --git a/v8/src/common/message-template.h b/v8/src/common/message-template.h diff --git a/v8/src/debug/debug-interface.cc b/v8/src/debug/debug-interface.cc --- a/v8/src/debug/debug-interface.cc +++ b/v8/src/debug/debug-interface.cc -@@ -1085,6 +1085,11 @@ void SetAsyncEventDelegate(Isolate* v8_isolate, AsyncEventDelegate* delegate) { +@@ -1090,6 +1090,11 @@ void SetAsyncEventDelegate(Isolate* v8_isolate, AsyncEventDelegate* delegate) { reinterpret_cast(v8_isolate)->set_async_event_delegate(delegate); } @@ -260,7 +260,7 @@ diff --git a/v8/src/debug/debug.h b/v8/src/debug/debug.h diff --git a/v8/src/execution/messages.cc b/v8/src/execution/messages.cc --- a/v8/src/execution/messages.cc +++ b/v8/src/execution/messages.cc -@@ -487,6 +487,7 @@ MaybeHandle MessageFormatter::TryFormat( +@@ -488,6 +488,7 @@ MaybeHandle MessageFormatter::TryFormat( MessageTemplate::kUndefinedOrNullToObject, MessageTemplate::kUnexpectedStrictReserved, MessageTemplate::kUnexpectedTokenIdentifier, @@ -271,7 +271,7 @@ diff --git a/v8/src/execution/messages.cc b/v8/src/execution/messages.cc diff --git a/v8/src/inspector/v8-debugger-agent-impl.cc b/v8/src/inspector/v8-debugger-agent-impl.cc --- a/v8/src/inspector/v8-debugger-agent-impl.cc +++ b/v8/src/inspector/v8-debugger-agent-impl.cc -@@ -1691,6 +1691,14 @@ Response V8DebuggerAgentImpl::setAsyncCallStackDepth(int depth) { +@@ -1697,6 +1697,14 @@ Response V8DebuggerAgentImpl::setAsyncCallStackDepth(int depth) { return Response::Success(); } @@ -300,7 +300,7 @@ diff --git a/v8/src/inspector/v8-debugger-agent-impl.h b/v8/src/inspector/v8-deb diff --git a/v8/src/runtime/runtime-debug.cc b/v8/src/runtime/runtime-debug.cc --- a/v8/src/runtime/runtime-debug.cc +++ b/v8/src/runtime/runtime-debug.cc -@@ -176,9 +176,10 @@ RUNTIME_FUNCTION(Runtime_DebugBreakAtEntry) { +@@ -175,9 +175,10 @@ RUNTIME_FUNCTION(Runtime_DebugBreakAtEntry) { } RUNTIME_FUNCTION(Runtime_HandleDebuggerStatement) { @@ -313,7 +313,7 @@ diff --git a/v8/src/runtime/runtime-debug.cc b/v8/src/runtime/runtime-debug.cc isolate->debug()->HandleDebugBreak( kIgnoreIfTopFrameBlackboxed, v8::debug::BreakReasons({v8::debug::BreakReason::kDebuggerStatement})); -@@ -186,6 +187,18 @@ RUNTIME_FUNCTION(Runtime_HandleDebuggerStatement) { +@@ -185,6 +186,18 @@ RUNTIME_FUNCTION(Runtime_HandleDebuggerStatement) { return isolate->TerminateExecution(); } } diff --git a/build/patches/Experimental-user-scripts-support.patch b/build/patches/Experimental-user-scripts-support.patch index d9c3b8d3..49c95180 100644 --- a/build/patches/Experimental-user-scripts-support.patch +++ b/build/patches/Experimental-user-scripts-support.patch @@ -229,9 +229,9 @@ 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 -@@ -169,7 +169,11 @@ if (_is_default_toolchain) { - sources = chrome_java_resources - sources += [ "//chrome/android/java/res_app/layout/main.xml" ] +@@ -173,7 +173,11 @@ if (_is_default_toolchain) { + "//chrome/android/java/res_app/layout/main_forked_with_secondary_ui_container.xml", + ] - deps = [ + # this need to be into android_resources("chrome_app_java_resources") section because @@ -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", -@@ -714,6 +718,7 @@ if (_is_default_toolchain) { +@@ -724,6 +728,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", -@@ -1737,6 +1742,7 @@ if (_is_default_toolchain) { +@@ -1755,6 +1760,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 -@@ -149,6 +149,11 @@ found in the LICENSE file. +@@ -147,6 +147,11 @@ found in the LICENSE file. android:key="useragent_settings" android:order="20" android:title="@string/prefs_useragent_settings"/> @@ -300,7 +300,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java --- a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java -@@ -151,6 +151,8 @@ import java.util.Date; +@@ -155,6 +155,8 @@ import java.util.Date; import java.util.List; import java.util.Locale; @@ -309,7 +309,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessIni /** * Handles the initialization dependences of the browser process. This is meant to handle the * initialization that is not tied to any particular Activity, and the logic that should only be -@@ -629,6 +631,8 @@ public class ProcessInitializationHandler { +@@ -642,6 +644,8 @@ public class ProcessInitializationHandler { DefaultBrowserInfo.initBrowserFetcher(); @@ -338,7 +338,7 @@ diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -3671,6 +3671,13 @@ static_library("browser") { +@@ -3583,6 +3583,13 @@ static_library("browser") { ] deps += [ "//chrome/android/modules/dev_ui/provider:native" ] } @@ -355,7 +355,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -191,6 +191,7 @@ +@@ -192,6 +192,7 @@ #include "components/ui_devtools/switches.h" #include "components/variations/variations_switches.h" #include "components/version_info/channel.h" @@ -366,15 +366,15 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc -@@ -261,6 +261,7 @@ +@@ -267,6 +267,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/gcm/gcm_product_util.h" -@@ -1820,6 +1821,9 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, + #include "chrome/browser/desktop_to_mobile_promos/promos_utils.h" // nogncheck crbug.com/1125897 +@@ -1857,6 +1858,9 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, omnibox::RegisterProfilePrefs(registry); ZeroSuggestProvider::RegisterProfilePrefs(registry); NtpCustomBackgroundService::RegisterProfilePrefs(registry); @@ -387,7 +387,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse diff --git a/chrome/browser/profiles/BUILD.gn b/chrome/browser/profiles/BUILD.gn --- a/chrome/browser/profiles/BUILD.gn +++ b/chrome/browser/profiles/BUILD.gn -@@ -88,6 +88,9 @@ source_set("profile") { +@@ -96,6 +96,9 @@ source_set("profile") { "//content/public/browser", "//extensions/buildflags", ] @@ -400,7 +400,7 @@ diff --git a/chrome/browser/profiles/BUILD.gn b/chrome/browser/profiles/BUILD.gn diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc -@@ -594,6 +594,11 @@ +@@ -602,6 +602,11 @@ #include "chrome/browser/net/nss_service_factory.h" #endif @@ -412,7 +412,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc void AddProfilesExtraParts(ChromeBrowserMainParts* main_parts) { main_parts->AddParts(std::make_unique()); } -@@ -1454,6 +1459,10 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -1474,6 +1479,10 @@ void ChromeBrowserMainExtraPartsProfiles:: #endif WebDataServiceFactory::GetInstance(); webrtc_event_logging::WebRtcEventLogManagerKeyedServiceFactory::GetInstance(); @@ -515,7 +515,7 @@ diff --git a/chrome/browser/profiles/renderer_updater.h b/chrome/browser/profile diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/ui/webui/chrome_web_ui_configs.cc --- a/chrome/browser/ui/webui/chrome_web_ui_configs.cc +++ b/chrome/browser/ui/webui/chrome_web_ui_configs.cc -@@ -62,6 +62,9 @@ +@@ -66,6 +66,9 @@ #include "chrome/browser/ui/webui/proxy_config_ui.h" @@ -539,7 +539,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/u diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni --- a/chrome/chrome_paks.gni +++ b/chrome/chrome_paks.gni -@@ -153,6 +153,7 @@ template("chrome_extra_paks") { +@@ -157,6 +157,7 @@ template("chrome_extra_paks") { "$root_gen_dir/third_party/blink/public/resources/inspector_overlay_resources.pak", "$root_gen_dir/third_party/blink/public/strings/permission_element_generated_strings.pak", "$root_gen_dir/ui/resources/ui_lottie_resources.pak", @@ -547,7 +547,7 @@ diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni "$root_gen_dir/ui/webui/resources/webui_resources.pak", ] -@@ -177,6 +178,7 @@ template("chrome_extra_paks") { +@@ -185,6 +186,7 @@ template("chrome_extra_paks") { "//third_party/blink/public/strings:permission_element_generated_strings", "//ui/resources:ui_lottie_resources_grd", "//ui/webui/resources", @@ -585,7 +585,7 @@ diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc --- a/chrome/renderer/chrome_content_renderer_client.cc +++ b/chrome/renderer/chrome_content_renderer_client.cc -@@ -266,6 +266,11 @@ +@@ -268,6 +268,11 @@ #include "chrome/renderer/media/chrome_key_systems.h" #endif @@ -597,7 +597,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer using autofill::AutofillAgent; using autofill::PasswordAutofillAgent; using autofill::PasswordGenerationAgent; -@@ -435,6 +440,14 @@ void ChromeContentRendererClient::RenderThreadStarted() { +@@ -437,6 +442,14 @@ void ChromeContentRendererClient::RenderThreadStarted() { WebString::FromASCII(extensions::kExtensionScheme)); #endif // BUILDFLAG(ENABLE_EXTENSIONS_CORE) @@ -612,7 +612,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer #if BUILDFLAG(ENABLE_SPELLCHECK) if (!spellcheck_) InitSpellCheck(); -@@ -629,6 +642,15 @@ void ChromeContentRendererClient::RenderFrameCreated( +@@ -635,6 +648,15 @@ void ChromeContentRendererClient::RenderFrameCreated( render_frame, std::make_unique()); #endif @@ -628,7 +628,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer #if BUILDFLAG(ENABLE_PAINT_PREVIEW) new paint_preview::PaintPreviewRecorderImpl(render_frame); #endif -@@ -1420,6 +1442,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentStart( +@@ -1396,6 +1418,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentStart( render_frame); // |render_frame| might be dead by now. #endif @@ -646,7 +646,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer } void ChromeContentRendererClient::RunScriptsAtDocumentEnd( -@@ -1429,6 +1462,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentEnd( +@@ -1405,6 +1438,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentEnd( render_frame); // |render_frame| might be dead by now. #endif @@ -664,7 +664,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer } void ChromeContentRendererClient::RunScriptsAtDocumentIdle( -@@ -1438,6 +1482,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentIdle( +@@ -1414,6 +1458,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentIdle( render_frame); // |render_frame| might be dead by now. #endif @@ -696,7 +696,7 @@ diff --git a/chrome/renderer/chrome_render_thread_observer.cc b/chrome/renderer/ #if BUILDFLAG(IS_CHROMEOS) #include "chrome/renderer/ash_merge_session_loader_throttle.h" #endif -@@ -228,6 +232,9 @@ void ChromeRenderThreadObserver::SetConfiguration( +@@ -214,6 +218,9 @@ void ChromeRenderThreadObserver::SetConfiguration( chrome::mojom::DynamicParamsPtr params) { base::AutoLock lock(dynamic_params_lock_); dynamic_params_ = std::move(params); @@ -709,7 +709,7 @@ diff --git a/chrome/renderer/chrome_render_thread_observer.cc b/chrome/renderer/ diff --git a/components/components_strings.grd b/components/components_strings.grd --- a/components/components_strings.grd +++ b/components/components_strings.grd -@@ -343,6 +343,7 @@ +@@ -344,6 +344,7 @@ @@ -11493,7 +11493,7 @@ new file mode 100644 diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ids.spec --- a/tools/gritsettings/resource_ids.spec +++ b/tools/gritsettings/resource_ids.spec -@@ -1265,6 +1265,12 @@ +@@ -1277,6 +1277,12 @@ "META": {"sizes": {"includes": [10]}}, "includes": [7495], }, diff --git a/build/patches/Eyeo-Adblock-for-Cromite.patch b/build/patches/Eyeo-Adblock-for-Cromite.patch index 28b88ed2..4a877e44 100644 --- a/build/patches/Eyeo-Adblock-for-Cromite.patch +++ b/build/patches/Eyeo-Adblock-for-Cromite.patch @@ -160,10 +160,10 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j -@@ -94,11 +85,6 @@ Use of this source code is governed by the GPLv3 that can be found in the compon +@@ -92,11 +83,6 @@ Use of this source code is governed by the GPLv3 that can be found in the compon + + android:order="16" /> - @@ -884,7 +884,7 @@ diff --git a/chrome/browser/adblock/android/java/src/org/chromium/chrome/browser diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -6514,7 +6514,9 @@ ChromeContentBrowserClient:: +@@ -6598,7 +6598,9 @@ ChromeContentBrowserClient:: } bool ChromeContentBrowserClient::WillInterceptWebSocket( @@ -895,7 +895,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch #if BUILDFLAG(ENABLE_EXTENSIONS_CORE) if (!frame) { return false; -@@ -6537,9 +6539,11 @@ bool ChromeContentBrowserClient::WillInterceptWebSocket( +@@ -6621,9 +6623,11 @@ bool ChromeContentBrowserClient::WillInterceptWebSocket( } void ChromeContentBrowserClient::CreateWebSocket( @@ -910,8 +910,8 @@ 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 -@@ -729,11 +729,15 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient { - CreateURLLoaderHandlerForServiceWorkerNavigationPreload( +@@ -731,11 +731,15 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient { + CreateURLLoaderHandlerForServiceWorkerInitiatedNavigationRequest( content::FrameTreeNodeId frame_tree_node_id, const network::ResourceRequest& resource_request) override; - bool WillInterceptWebSocket(content::RenderFrameHost* frame) override; @@ -1169,15 +1169,15 @@ diff --git a/chrome/browser/extensions/api/eyeo_filtering_private/eyeo_filtering 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 -@@ -36,6 +36,7 @@ - #include "chrome/common/chrome_features.h" +@@ -35,6 +35,7 @@ + #include "chrome/browser/ui/toolbar/toolbar_pref_names.h" #include "chrome/common/extensions/api/settings_private.h" #include "chrome/common/pref_names.h" +#include "components/adblock/core/common/adblock_prefs.h" #include "components/autofill/core/common/autofill_prefs.h" #include "components/bookmarks/common/bookmark_pref_names.h" #include "components/browsing_data/core/pref_names.h" -@@ -200,6 +201,19 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { +@@ -205,6 +206,19 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { } s_allowlist = new PrefsUtil::TypedPrefMap(); @@ -1200,7 +1200,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 -@@ -256,7 +256,6 @@ +@@ -269,7 +269,6 @@ #include "chrome/common/buildflags.h" #include "chrome/common/chrome_features.h" #include "components/adblock/content/browser/factories/adblock_request_throttle_factory.h" @@ -1208,7 +1208,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" -@@ -972,7 +971,6 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -987,7 +986,6 @@ void ChromeBrowserMainExtraPartsProfiles:: FederatedIdentityApiPermissionContextFactory::GetInstance(); FederatedIdentityAutoReauthnPermissionContextFactory::GetInstance(); FederatedIdentityPermissionContextFactory::GetInstance(); @@ -1227,7 +1227,7 @@ diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resourc "appearance_page/appearance_fonts_page.ts", "appearance_page/appearance_page.ts", "appearance_page/appearance_page_index.ts", -@@ -443,6 +444,7 @@ build_webui("build") { +@@ -433,6 +434,7 @@ build_webui("build") { ts_definitions = [ "//tools/typescript/definitions/autofill_private.d.ts", "//tools/typescript/definitions/chrome_event.d.ts", @@ -1796,7 +1796,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 -@@ -277,6 +277,10 @@ function createRoutes(): SettingsRoutes { +@@ -272,6 +272,10 @@ function createRoutes(): SettingsRoutes { '/onStartup', 'onStartup', loadTimeData.getString('onStartup')); } @@ -1875,7 +1875,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 -@@ -353,7 +353,8 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -356,7 +356,8 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { auto* original_profile = profile->GetOriginalProfile(); adblock::EnsureBackgroundServicesStarted(original_profile); adblock::RegisterAdblockWebContentObserver< @@ -1902,7 +1902,7 @@ diff --git a/chrome/common/extensions/api/_permission_features.json b/chrome/com "autofillPrivate": { "channel": "trunk", "extension_types": ["extension", "platform_app"], -@@ -422,13 +415,6 @@ +@@ -421,13 +414,6 @@ // "desktop_android" is not supported. "platforms": ["chromeos", "linux", "mac", "win"] }, @@ -13012,7 +13012,7 @@ diff --git a/components/security_interstitials/core/browser/resources/interstiti diff --git a/content/browser/websockets/websocket_connector_impl.cc b/content/browser/websockets/websocket_connector_impl.cc --- a/content/browser/websockets/websocket_connector_impl.cc +++ b/content/browser/websockets/websocket_connector_impl.cc -@@ -92,15 +92,15 @@ void WebSocketConnectorImpl::Connect( +@@ -91,14 +91,14 @@ void WebSocketConnectorImpl::Connect( const uint32_t options = GetContentClient()->browser()->GetWebSocketOptions(frame); @@ -13022,19 +13022,18 @@ diff --git a/content/browser/websockets/websocket_connector_impl.cc b/content/br - frame, + process, frame, base::BindOnce(ConnectCalledByContentBrowserClient, requested_protocols, - site_for_cookies, storage_access_api_status, - isolation_info_, frame_id_, origin_, - client_security_state_->Clone(), options, + storage_access_api_status, isolation_info_, frame_id_, + origin_, client_security_state_->Clone(), options, std::move(throttling_profile_id)), -- url, site_for_cookies, user_agent, std::move(handshake_client)); -+ url, origin_, site_for_cookies, user_agent, std::move(handshake_client)); +- url, isolation_info_.site_for_cookies(), user_agent, ++ url, origin_, isolation_info_.site_for_cookies(), user_agent, + std::move(handshake_client)); return; } - std::vector headers; 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 -@@ -1148,7 +1148,7 @@ void ContentBrowserClient::WillCreateURLLoaderFactory( +@@ -1157,7 +1157,7 @@ void ContentBrowserClient::WillCreateURLLoaderFactory( DCHECK(browser_context); } @@ -13043,7 +13042,7 @@ diff --git a/content/public/browser/content_browser_client.cc b/content/public/b return false; } -@@ -1157,9 +1157,11 @@ uint32_t ContentBrowserClient::GetWebSocketOptions(RenderFrameHost* frame) { +@@ -1166,9 +1166,11 @@ uint32_t ContentBrowserClient::GetWebSocketOptions(RenderFrameHost* frame) { } void ContentBrowserClient::CreateWebSocket( @@ -13058,7 +13057,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 -@@ -2145,7 +2145,7 @@ class CONTENT_EXPORT ContentBrowserClient { +@@ -2163,7 +2163,7 @@ class CONTENT_EXPORT ContentBrowserClient { scoped_refptr navigation_response_task_runner); // Returns true when the embedder wants to intercept a websocket connection. @@ -13067,7 +13066,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); -@@ -2167,9 +2167,11 @@ class CONTENT_EXPORT ContentBrowserClient { +@@ -2185,9 +2185,11 @@ class CONTENT_EXPORT ContentBrowserClient { // Always called on the UI thread and only when the Network Service is // enabled. virtual void CreateWebSocket( @@ -13142,7 +13141,7 @@ diff --git a/third_party/blink/renderer/core/css/style_engine.h b/third_party/bl diff --git a/third_party/blink/renderer/core/dom/events/event_target.cc b/third_party/blink/renderer/core/dom/events/event_target.cc --- a/third_party/blink/renderer/core/dom/events/event_target.cc +++ b/third_party/blink/renderer/core/dom/events/event_target.cc -@@ -855,10 +855,7 @@ bool EventTarget::dispatchEventForBindings(Event* event, +@@ -856,10 +856,7 @@ bool EventTarget::dispatchEventForBindings(Event* event, if (!GetExecutionContext()) return false; @@ -13157,7 +13156,7 @@ diff --git a/third_party/blink/renderer/core/dom/events/event_target.cc b/third_ diff --git a/third_party/blink/renderer/core/exported/web_document.cc b/third_party/blink/renderer/core/exported/web_document.cc --- a/third_party/blink/renderer/core/exported/web_document.cc +++ b/third_party/blink/renderer/core/exported/web_document.cc -@@ -301,6 +301,16 @@ WebStyleSheetKey WebDocument::InsertAbpElemhideStylesheet( +@@ -326,6 +326,16 @@ WebStyleSheetKey WebDocument::InsertAbpElemhideStylesheet( Document* document = Unwrap(); DCHECK(document); @@ -13174,7 +13173,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_document.cc b/third_pa auto* parsed_sheet = MakeGarbageCollected( MakeGarbageCollected(*document)); parsed_sheet->ParseString(source_code); -@@ -322,9 +332,6 @@ WebStyleSheetKey WebDocument::InsertAbpElemhideStylesheet( +@@ -347,9 +357,6 @@ WebStyleSheetKey WebDocument::InsertAbpElemhideStylesheet( {SchedulingPolicy::DisableBackForwardCache()}); } @@ -13187,7 +13186,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 -@@ -2942,13 +2942,7 @@ void HTMLElement::setSpellcheck(bool enable) { +@@ -3010,13 +3010,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 6ad7adf0..11cc2346 100644 --- a/build/patches/Fix-chromium-build-bugs.patch +++ b/build/patches/Fix-chromium-build-bugs.patch @@ -31,7 +31,7 @@ diff --git a/BUILD.gn b/BUILD.gn diff --git a/chrome/browser/navigation_predictor/navigation_predictor_metrics_document_data.h b/chrome/browser/navigation_predictor/navigation_predictor_metrics_document_data.h --- a/chrome/browser/navigation_predictor/navigation_predictor_metrics_document_data.h +++ b/chrome/browser/navigation_predictor/navigation_predictor_metrics_document_data.h -@@ -69,6 +69,8 @@ class NavigationPredictorMetricsDocumentData +@@ -75,6 +75,8 @@ class NavigationPredictorMetricsDocumentData UserInteractionsData(const UserInteractionsData&); UserInteractionsData& operator=(const UserInteractionsData&); @@ -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 -@@ -317,6 +317,7 @@ static_library("safe_browsing") { +@@ -325,6 +325,7 @@ static_library("safe_browsing") { "//components/version_info", "//content/public/browser", "//services/preferences/public/mojom", @@ -65,7 +65,7 @@ diff --git a/components/component_updater/installer_policies/BUILD.gn b/componen diff --git a/components/contextual_tasks/internal/BUILD.gn b/components/contextual_tasks/internal/BUILD.gn --- a/components/contextual_tasks/internal/BUILD.gn +++ b/components/contextual_tasks/internal/BUILD.gn -@@ -45,6 +45,7 @@ source_set("internal") { +@@ -52,6 +52,7 @@ source_set("internal") { "//net", "//ui/gfx", "//url", @@ -133,7 +133,7 @@ diff --git a/components/safe_browsing/content/renderer/phishing_classifier/phish diff --git a/content/browser/browser_interface_binders.cc b/content/browser/browser_interface_binders.cc --- a/content/browser/browser_interface_binders.cc +++ b/content/browser/browser_interface_binders.cc -@@ -365,6 +365,7 @@ void BindDateTimeChooserForFrame( +@@ -371,6 +371,7 @@ void BindDateTimeChooserForFrame( void BindTextSuggestionHostForFrame( RenderFrameHost* host, mojo::PendingReceiver receiver) { @@ -144,7 +144,7 @@ diff --git a/content/browser/browser_interface_binders.cc b/content/browser/brow diff --git a/services/webnn/dml/graph_impl_dml.cc b/services/webnn/dml/graph_impl_dml.cc --- a/services/webnn/dml/graph_impl_dml.cc +++ b/services/webnn/dml/graph_impl_dml.cc -@@ -246,6 +246,7 @@ base::expected CreateUnexpectedError( +@@ -242,6 +242,7 @@ base::expected CreateUnexpectedError( // Calculate the total byte length of buffers and the D3D12_RANGE for each // buffer, all with the required alignment. diff --git a/build/patches/Fonts-fingerprinting-mitigation.patch b/build/patches/Fonts-fingerprinting-mitigation.patch index 062c121c..fc0ecd13 100644 --- a/build/patches/Fonts-fingerprinting-mitigation.patch +++ b/build/patches/Fonts-fingerprinting-mitigation.patch @@ -70,7 +70,7 @@ new file mode 100644 diff --git a/skia/ext/skia_utils_win.cc b/skia/ext/skia_utils_win.cc --- a/skia/ext/skia_utils_win.cc +++ b/skia/ext/skia_utils_win.cc -@@ -371,6 +371,26 @@ void CreateBitmapHeaderForXRGB888(int width, +@@ -369,6 +369,26 @@ void CreateBitmapHeaderForXRGB888(int width, CreateBitmapHeaderWithColorDepth(width, height, 32, hdr); } @@ -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 -@@ -441,6 +441,9 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE( +@@ -449,6 +449,9 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE( BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kFencedFrames); diff --git a/build/patches/Guard-for-user-agent-reduction.patch b/build/patches/Guard-for-user-agent-reduction.patch index 91270aea..b7dc26e7 100644 --- a/build/patches/Guard-for-user-agent-reduction.patch +++ b/build/patches/Guard-for-user-agent-reduction.patch @@ -33,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 -@@ -4385,15 +4385,15 @@ +@@ -4523,15 +4523,15 @@ // If enabled, the platform version in User-Agent Data will be removed. // This feature is limited to Linux only. { diff --git a/build/patches/Hardening-against-incognito-mode-detection.patch b/build/patches/Hardening-against-incognito-mode-detection.patch index b8c93cf8..a6c91d54 100644 --- a/build/patches/Hardening-against-incognito-mode-detection.patch +++ b/build/patches/Hardening-against-incognito-mode-detection.patch @@ -4,14 +4,14 @@ Subject: Hardening against incognito mode detection License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - storage/browser/quota/quota_manager_impl.cc | 4 ++-- + storage/browser/quota/quota_manager_impl.cc | 6 +++--- storage/browser/quota/quota_settings.cc | 2 +- - 2 files changed, 3 insertions(+), 3 deletions(-) + 2 files changed, 4 insertions(+), 4 deletions(-) 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 -@@ -1786,7 +1786,7 @@ int64_t QuotaManagerImpl::GetQuotaForStorageKey( +@@ -1755,7 +1755,7 @@ int64_t QuotaManagerImpl::GetQuotaForStorageKey( return kNoLimit; } @@ -20,12 +20,14 @@ 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; } -@@ -2455,7 +2455,7 @@ void QuotaManagerImpl::SimulateStoragePressure(const url::Origin& origin_url) { +@@ -2416,8 +2416,8 @@ 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. -- DCHECK_EQ(is_incognito_, storage_pressure_callback_.is_null()); -+ // DCHECK_EQ(is_incognito_, storage_pressure_callback_.is_null()); +- CHECK_EQ(is_incognito_, storage_pressure_callback_.is_null(), +- base::NotFatalUntil::M148); ++ // CHECK_EQ(is_incognito_, storage_pressure_callback_.is_null(), ++ // base::NotFatalUntil::M148); std::move(callback).Run(!storage_pressure_callback_.is_null()); } diff --git a/build/patches/History-number-of-days-privacy-setting.patch b/build/patches/History-number-of-days-privacy-setting.patch index 90366c02..337b80fb 100644 --- a/build/patches/History-number-of-days-privacy-setting.patch +++ b/build/patches/History-number-of-days-privacy-setting.patch @@ -33,9 +33,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../history/core/browser/history_service.h | 8 +++ components/history/core/common/pref_names.cc | 4 ++ components/history/core/common/pref_names.h | 1 + - components/history_embeddings/sql_database.cc | 2 +- .../omnibox/browser/shortcuts_backend.cc | 4 +- - 25 files changed, 264 insertions(+), 16 deletions(-) + 24 files changed, 263 insertions(+), 15 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 @@ -57,7 +56,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 -@@ -67,6 +67,7 @@ import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; +@@ -69,6 +69,7 @@ import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; import org.chromium.components.browser_ui.settings.SettingsFragment; import org.chromium.components.browser_ui.settings.SettingsNavigation; import org.chromium.components.browser_ui.settings.SettingsUtils; @@ -65,7 +64,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import org.chromium.components.browser_ui.settings.search.SettingsIndexData; import org.chromium.components.browser_ui.site_settings.ContentSettingsResources; import org.chromium.components.browser_ui.site_settings.SingleCategorySettings; -@@ -101,6 +102,9 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; +@@ -103,6 +104,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 +74,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 -@@ -166,6 +170,8 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -168,6 +172,8 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private ChromeSwitchPreference allowCustomTabIntentsPref; private ChromeSwitchPreference openExternalLinksPref; @@ -84,7 +83,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)); -@@ -303,6 +309,40 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -305,6 +311,40 @@ public class PrivacySettings extends ChromeBaseSettingsFragment Preference syncAndServicesLink = findPreference(PREF_SYNC_AND_SERVICES_LINK); syncAndServicesLink.setSummary(buildFooterString()); @@ -125,7 +124,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting Preference thirdPartyCookies = findPreference(PREF_THIRD_PARTY_COOKIES); if (thirdPartyCookies != null) { thirdPartyCookies -@@ -658,6 +698,29 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -660,6 +700,29 @@ public class PrivacySettings extends ChromeBaseSettingsFragment || ((System.currentTimeMillis() - updateTimeMs) < TimeUnit.DAYS.toMillis(90)); } @@ -158,7 +157,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting 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 -@@ -45,6 +45,7 @@ +@@ -44,6 +44,7 @@ #include "components/content_settings/core/common/pref_names.h" #include "components/dom_distiller/core/pref_names.h" #include "components/drive/drive_pref_names.h" @@ -166,7 +165,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" -@@ -257,6 +258,9 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { +@@ -268,6 +269,9 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { (*s_allowlist)[::prefs::kSplitViewDragAndDropEnabled] = settings_api::PrefType::kBoolean; @@ -202,7 +201,7 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.html b/chrome/browser/resources/settings/privacy_page/privacy_page.html --- a/chrome/browser/resources/settings/privacy_page/privacy_page.html +++ b/chrome/browser/resources/settings/privacy_page/privacy_page.html -@@ -65,6 +65,15 @@ +@@ -58,6 +58,15 @@ sub-label="$i18n{siteSettingsSublabel}" on-click="onSiteSettingsLinkRowClick_" role-description="$i18n{subpageArrowRoleDescription}"> @@ -253,18 +252,18 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.ts b/ch showClearBrowsingDataDialog_: Boolean, showPrivacyGuideDialog_: Boolean, -@@ -95,6 +113,7 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase { +@@ -90,6 +108,7 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase { }; } + declare private historyExpireDaysThresholdOptions_: object[]; declare private showClearBrowsingDataDialog_: boolean; declare private showPrivacyGuideDialog_: boolean; - declare private enableDeleteBrowsingDataRevamp_: boolean; + declare private isPrivacySandboxRestricted_: boolean; 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 -@@ -1282,6 +1282,18 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1344,6 +1344,18 @@ Your Google account may have other forms of browsing history like searches and a Browsing history @@ -286,7 +285,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 -@@ -2325,6 +2325,11 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, +@@ -2337,6 +2337,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}, @@ -663,18 +662,6 @@ diff --git a/components/history/core/common/pref_names.h b/components/history/co extern const char kAllowDeletingBrowserHistory[]; } // namespace prefs -diff --git a/components/history_embeddings/sql_database.cc b/components/history_embeddings/sql_database.cc ---- a/components/history_embeddings/sql_database.cc -+++ b/components/history_embeddings/sql_database.cc -@@ -183,7 +183,7 @@ sql::InitStatus SqlDatabase::InitInternal(const base::FilePath& storage_dir, - // Chrome is running, but it's possible to miss events or start Chrome after - // some down time, so this prevents long term accidental retention edge cases. - DeleteExpiredData(/*expiration_time=*/base::Time::Now() - -- base::Days(history::HistoryBackend::kExpireDaysThreshold)); -+ base::Days(90)); - - // It's possible to get here without `embedder_metadata_` if forcing for - // data deletion. In that case, don't check or change meta table. diff --git a/components/omnibox/browser/shortcuts_backend.cc b/components/omnibox/browser/shortcuts_backend.cc --- a/components/omnibox/browser/shortcuts_backend.cc +++ b/components/omnibox/browser/shortcuts_backend.cc 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 9b2e8912..cbe3a2be 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. -@@ -1089,16 +1089,6 @@ void SharedWorkerHost::OnClientStateChanged() { +@@ -1095,16 +1095,6 @@ void SharedWorkerHost::OnClientStateChanged() { worker_->Resume(); is_frozen_ = false; } else if (!is_frozen_ && !has_active_client) { @@ -41,7 +41,7 @@ diff --git a/content/browser/worker_host/shared_worker_host.cc b/content/browser worker_->Freeze(); is_frozen_ = true; } -@@ -1153,17 +1143,6 @@ void SharedWorkerHost::OnClientConnectionLost() { +@@ -1159,17 +1149,6 @@ void SharedWorkerHost::OnClientConnectionLost() { // the freeze state to freeze the worker if no active clients remain. OnClientStateChanged(); } 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 48bc9af9..6967dbd6 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 -@@ -101,10 +101,11 @@ constexpr size_t kMaxPedalMatchIndex = +@@ -103,10 +103,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 44296e88..6ca54cdb 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 -@@ -2496,6 +2496,7 @@ static_library("browser") { +@@ -2419,6 +2419,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 -@@ -237,6 +237,7 @@ +@@ -239,6 +239,7 @@ #include "sandbox/policy/features.h" #include "sandbox/policy/switches.h" #include "services/device/public/cpp/device_features.h" @@ -118,8 +118,8 @@ diff --git a/chrome/browser/download/android/download_controller.cc b/chrome/bro + } // namespace - static void JNI_DownloadController_CancelDownload(JNIEnv* env, -@@ -227,7 +257,7 @@ static void JNI_DownloadController_DownloadUrl( + static void JNI_DownloadController_CancelDownload( +@@ -228,7 +258,7 @@ static void JNI_DownloadController_DownloadUrl( std::unique_ptr dl_params = content::DownloadRequestUtils::CreateDownloadForWebContentsMainFrame( web_contents, GURL(url), @@ -301,7 +301,7 @@ new file mode 100644 diff --git a/net/BUILD.gn b/net/BUILD.gn --- a/net/BUILD.gn +++ b/net/BUILD.gn -@@ -1206,6 +1206,7 @@ component("net") { +@@ -1217,6 +1217,7 @@ component("net") { "//components/unexportable_keys", "//components/network_session_configurator/common", "//net/http:transport_security_state_generated_files", @@ -1669,7 +1669,7 @@ new file mode 100644 diff --git a/services/network/network_context.cc b/services/network/network_context.cc --- a/services/network/network_context.cc +++ b/services/network/network_context.cc -@@ -106,6 +106,7 @@ +@@ -107,6 +107,7 @@ #include "net/url_request/url_request.h" #include "net/url_request/url_request_context.h" #include "net/url_request/url_request_context_builder.h" @@ -1677,7 +1677,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont #include "services/network/brokered_client_socket_factory.h" #include "services/network/connection_change_observer.h" #include "services/network/cookie_manager.h" -@@ -1825,6 +1826,9 @@ void NetworkContext::OnNewSCTAuditingReportSent() { +@@ -1869,6 +1870,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)); } -@@ -1838,6 +1842,17 @@ void NetworkContext::CreateRestrictedUDPSocket( +@@ -1882,6 +1886,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, -@@ -1850,6 +1865,17 @@ void NetworkContext::CreateTCPServerSocket( +@@ -1894,6 +1909,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), -@@ -1864,6 +1890,21 @@ void NetworkContext::CreateTCPConnectedSocket( +@@ -1908,6 +1934,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), -@@ -1875,6 +1916,20 @@ void NetworkContext::CreateTCPBoundSocket( +@@ -1919,6 +1960,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), -@@ -1942,6 +1997,24 @@ void NetworkContext::CreateWebSocket( +@@ -1985,6 +2040,24 @@ void NetworkContext::CreateWebSocket( mojo::PendingRemote auth_handler, mojo::PendingRemote header_client, const std::optional& throttling_profile_id) { diff --git a/build/patches/JIT-site-settings.patch b/build/patches/JIT-site-settings.patch index b4c46bf4..9bd16b4d 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 -@@ -578,7 +578,7 @@ void ContentSettingsRegistry::Init() { +@@ -579,7 +579,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 -@@ -4326,12 +4326,17 @@ UrlInfo NavigationRequest::GetUrlInfo() { +@@ -4344,12 +4344,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 -@@ -3597,6 +3597,9 @@ void RenderProcessHostImpl::AppendRendererCommandLine( +@@ -3626,6 +3626,9 @@ void RenderProcessHostImpl::AppendRendererCommandLine( if (IsJitDisabled()) { AppendToCommaSeparatedSwitch( command_line, blink::switches::kJavaScriptFlags, "--jitless"); diff --git a/build/patches/Keep-ComputePressure-disabled.patch b/build/patches/Keep-ComputePressure-disabled.patch index 744c3de0..8a25ceba 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 -@@ -1221,11 +1221,9 @@ +@@ -1269,11 +1269,9 @@ status: "stable", }, { diff --git a/build/patches/Keep-Manta-Service-Disabled.patch b/build/patches/Keep-Manta-Service-Disabled.patch index 92894995..3b85f162 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:: +@@ -1058,7 +1058,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 ebf7ba09..5949d19a 100644 --- a/build/patches/Keep-disabled-CpuPerformance.patch +++ b/build/patches/Keep-disabled-CpuPerformance.patch @@ -7,19 +7,23 @@ see https://github.com/explainers-by-googlers/cpu-performance?tab=readme-ov-file License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- - .../blink/renderer/platform/runtime_enabled_features.json5 | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) + .../blink/renderer/platform/runtime_enabled_features.json5 | 7 +------ + 1 file changed, 1 insertion(+), 6 deletions(-) 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 -@@ -1307,8 +1307,7 @@ +@@ -1356,12 +1356,7 @@ // CPU Performance API, work in progress. // https://chromestatus.com/feature/5189864286978048 // https://github.com/explainers-by-googlers/cpu-performance - name: "CpuPerformance", -- status: "experimental" -+ status: "experimental", name: "CpuPerformance", +- status: "experimental", +- origin_trial_feature_name: "CpuPerformance", +- origin_trial_allows_third_party: true, +- base_feature_status: "enabled", +- copied_from_base_feature_if: "overridden", ++ status: "experimental",name: "CpuPerformance", }, { name: "CrashReportingStorageAPI", diff --git a/build/patches/Keep-disabled-FetchLaterAPI.patch b/build/patches/Keep-disabled-FetchLaterAPI.patch index 1b08d55f..046880a7 100644 --- a/build/patches/Keep-disabled-FetchLaterAPI.patch +++ b/build/patches/Keep-disabled-FetchLaterAPI.patch @@ -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 -@@ -3112,7 +3112,7 @@ void ResourceFetcher::PrepareForLeakDetection() { +@@ -3121,7 +3121,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 -@@ -2482,8 +2482,8 @@ +@@ -2573,8 +2573,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 dd98f44c..d622a616 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 -@@ -1128,7 +1128,7 @@ public class MultiWindowUtils implements ActivityStateListener { +@@ -1304,7 +1304,7 @@ public class MultiWindowUtils implements ActivityStateListener { int totalCount = 0; for (TabModel model : models) { for (Tab tab : model) { @@ -25,7 +25,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/multiwindow/Mul diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreImpl.java -@@ -1966,13 +1966,6 @@ public class TabPersistentStoreImpl implements TabPersistentStore { +@@ -1932,13 +1932,6 @@ public class TabPersistentStoreImpl implements TabPersistentStore { continue; } 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 535aebd7..36d1b2b6 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 -@@ -5699,10 +5699,10 @@ +@@ -5851,10 +5851,10 @@ "expiry_milestone": -1 }, { diff --git a/build/patches/Keyboard-protection-flag.patch b/build/patches/Keyboard-protection-flag.patch index 3d215fd3..60ff004d 100644 --- a/build/patches/Keyboard-protection-flag.patch +++ b/build/patches/Keyboard-protection-flag.patch @@ -11,19 +11,19 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../common/ProductionSupportedFlagList.java | 5 + .../Keyboard-protection-flag.inc | 10 ++ .../renderer/core/events/keyboard_event.cc | 136 ++++++++++++++++++ - .../renderer/core/events/keyboard_event.h | 3 + + .../renderer/core/events/keyboard_event.h | 2 + ui/base/ui_base_features.cc | 8 ++ ui/base/ui_base_features.h | 2 + .../dom/dom_keyboard_layout_map_win.cc | 13 ++ .../keycodes/keyboard_code_conversion.cc | 10 +- ui/events/keycodes/keyboard_code_conversion.h | 2 +- - 9 files changed, 186 insertions(+), 3 deletions(-) + 9 files changed, 185 insertions(+), 3 deletions(-) create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Keyboard-protection-flag.inc 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 -@@ -965,6 +965,11 @@ public final class ProductionSupportedFlagList { +@@ -991,6 +991,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."), @@ -213,16 +213,15 @@ 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 -@@ -101,6 +101,8 @@ class CORE_EXPORT KeyboardEvent final : public UIEventWithKeyState { - - CSSPseudoElement* pseudoTarget() const { return Event::pseudoTarget(); } +@@ -99,6 +99,7 @@ class CORE_EXPORT KeyboardEvent final : public UIEventWithKeyState { + unsigned which() const override; + bool isComposing() const { return is_composing_; } + DispatchEventResult DispatchEvent(EventDispatcher&) override; -+ + void Trace(Visitor*) const override; - private: -@@ -113,6 +115,7 @@ class CORE_EXPORT KeyboardEvent final : public UIEventWithKeyState { +@@ -112,6 +113,7 @@ class CORE_EXPORT KeyboardEvent final : public UIEventWithKeyState { bool is_composing_ = false; unsigned char_code_ = 0; unsigned key_code_ = 0; diff --git a/build/patches/Lock-Profile-Cookie-Database.patch b/build/patches/Lock-Profile-Cookie-Database.patch index df8b8239..74260cdd 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 -@@ -1371,6 +1371,14 @@ void ProfileNetworkContextService::ConfigureNetworkContextParamsInternal( +@@ -1390,6 +1390,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 -@@ -3226,7 +3226,7 @@ NetworkContext::MakeSessionCleanupCookieStore() const { +@@ -3269,7 +3269,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 -@@ -358,6 +358,14 @@ struct NetworkContextParams { +@@ -369,6 +369,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 09667ff3..819dfeea 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 -@@ -5082,6 +5082,14 @@ void Document::ProcessBaseElement() { +@@ -5074,6 +5074,14 @@ void Document::ProcessBaseElement() { KURL base_element_url; if (href) { StringView 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); } -@@ -5099,6 +5107,14 @@ void Document::ProcessBaseElement() { +@@ -5091,6 +5099,14 @@ void Document::ProcessBaseElement() { !GetExecutionContext()->GetSecurityOrigin()->CanRequest( base_element_url)) { UseCounter::Count(*this, WebFeature::kBaseWithCrossOriginHref); @@ -72,9 +72,9 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink } } -@@ -5129,6 +5145,8 @@ void Document::ProcessBaseElement() { - if (target->Contains('<')) +@@ -5123,6 +5139,8 @@ void Document::ProcessBaseElement() { UseCounter::Count(*this, WebFeature::kBaseWithOpenBracketInTarget); + } base_target_ = *target; + if (target->Contains('\n') || target->Contains('\r') || target->Contains('<')) + base_target_ = g_null_atom; @@ -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 -@@ -4111,8 +4111,26 @@ void Element::StripScriptingAttributes( +@@ -4084,8 +4084,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 -@@ -819,7 +819,8 @@ class CORE_EXPORT Element : public ContainerNode { +@@ -812,7 +812,8 @@ class CORE_EXPORT Element : public ContainerNode { virtual bool HasLegalLinkAttribute(const QualifiedName&) const; // Only called by the parser immediately after element construction. @@ -157,7 +157,7 @@ diff --git a/third_party/blink/renderer/core/editing/serializers/markup_formatte diff --git a/third_party/blink/renderer/core/html/forms/html_form_element.cc b/third_party/blink/renderer/core/html/forms/html_form_element.cc --- a/third_party/blink/renderer/core/html/forms/html_form_element.cc +++ b/third_party/blink/renderer/core/html/forms/html_form_element.cc -@@ -537,7 +537,7 @@ void HTMLFormElement::PrepareForSubmission( +@@ -547,7 +547,7 @@ void HTMLFormElement::PrepareForSubmission( if (form_control_element && form_control_element->BlocksFormSubmission()) { UseCounter::Count(GetDocument(), WebFeature::kFormSubmittedWithUnclosedFormControl); @@ -212,7 +212,7 @@ diff --git a/third_party/blink/renderer/core/html/html_frame_element_base.cc b/t + //frame_name_ = g_empty_atom; + } } else if (name == html_names::kMarginwidthAttr) { - SetMarginWidth(StringToInt(value).value_or(0)); + SetMarginWidth(StringToIntLoose(value).value_or(0)); } else if (name == html_names::kMarginheightAttr) { diff --git a/third_party/blink/renderer/core/html/html_iframe_element.cc b/third_party/blink/renderer/core/html/html_iframe_element.cc --- a/third_party/blink/renderer/core/html/html_iframe_element.cc @@ -251,7 +251,7 @@ diff --git a/third_party/blink/renderer/core/html/html_iframe_element.h b/third_ --- a/third_party/blink/renderer/core/html/html_iframe_element.h +++ b/third_party/blink/renderer/core/html/html_iframe_element.h @@ -68,6 +68,8 @@ class CORE_EXPORT HTMLIFrameElement : public HTMLFrameElementBase, - const V8UnionStringOrTrustedHTML* srcdoc() const; + String srcdoc() const; void setSrcdoc(const V8UnionStringOrTrustedHTML*, ExceptionState&); + void ParserSetAttributes(Vector&) override; @@ -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 -@@ -3427,6 +3427,12 @@ +@@ -3548,6 +3548,12 @@ name: "MacDisableCtrlHomeEnd", status: "stable", }, @@ -346,5 +346,5 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 + }, { name: "MachineLearningNeuralNetwork", - // Enabled by webnn::mojom::features::kWebMachineLearningNeuralNetwork. + origin_trial_feature_name: "WebMachineLearningNeuralNetwork", -- diff --git a/build/patches/Logcat-crash-reports-UI.patch b/build/patches/Logcat-crash-reports-UI.patch index b4381618..19996004 100644 --- a/build/patches/Logcat-crash-reports-UI.patch +++ b/build/patches/Logcat-crash-reports-UI.patch @@ -27,7 +27,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/crash/MinidumpUploadServiceImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/crash/MinidumpUploadServiceImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/crash/MinidumpUploadServiceImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/crash/MinidumpUploadServiceImpl.java -@@ -51,6 +51,11 @@ import java.lang.annotation.Retention; +@@ -41,6 +41,11 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.concurrent.atomic.AtomicBoolean; @@ -39,7 +39,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/crash/MinidumpU /** Service that is responsible for uploading crash minidumps to the Google crash server. */ @NullMarked public class MinidumpUploadServiceImpl extends SplitCompatIntentService.Impl { -@@ -95,6 +100,23 @@ public class MinidumpUploadServiceImpl extends SplitCompatIntentService.Impl { +@@ -85,6 +90,23 @@ public class MinidumpUploadServiceImpl extends SplitCompatIntentService.Impl { assumeNonNull(getService()).setIntentRedelivery(true); } @@ -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 -@@ -641,6 +641,7 @@ static_library("ui") { +@@ -667,6 +667,7 @@ static_library("ui") { "//third_party/re2", "//third_party/webrtc_overrides:webrtc_component", "//third_party/zlib", @@ -778,7 +778,7 @@ diff --git a/components/crash_strings.grdp b/components/crash_strings.grdp diff --git a/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/CrashFileManager.java b/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/CrashFileManager.java --- a/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/CrashFileManager.java +++ b/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/CrashFileManager.java -@@ -107,6 +107,8 @@ public class CrashFileManager { +@@ -117,6 +117,8 @@ public class CrashFileManager { private static final Pattern TMP_PATTERN = Pattern.compile("\\.tmp\\z"); @@ -787,7 +787,7 @@ diff --git a/components/minidump_uploader/android/java/src/org/chromium/componen // The maximum number of non-uploaded crashes that may be kept in the crash reports directory. // Chosen to attempt to balance between keeping a generous number of crashes, and not using up // too much filesystem storage space for obsolete crash reports. -@@ -115,7 +117,7 @@ public class CrashFileManager { +@@ -125,7 +127,7 @@ public class CrashFileManager { // The maximum age, in days, considered acceptable for a crash report. Reports older than this // age will be removed. The constant is chosen to be quite conservative, while still allowing // users to eventually reclaim filesystem storage space from obsolete crash reports. @@ -796,7 +796,7 @@ diff --git a/components/minidump_uploader/android/java/src/org/chromium/componen // The maximum number of non-uploaded crashes to copy to the crash reports directory. The // difference between this value and MAX_CRASH_REPORTS_TO_KEEP is that TO_KEEP is only checked -@@ -599,6 +601,9 @@ public class CrashFileManager { +@@ -626,6 +628,9 @@ public class CrashFileManager { && !f.getName().contains(UPLOAD_FORCED_MINIDUMP_SUFFIX)) { continue; } @@ -809,7 +809,7 @@ diff --git a/components/minidump_uploader/android/java/src/org/chromium/componen diff --git a/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/MinidumpUploadCallable.java b/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/MinidumpUploadCallable.java --- a/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/MinidumpUploadCallable.java +++ b/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/MinidumpUploadCallable.java -@@ -73,30 +73,8 @@ public class MinidumpUploadCallable implements Callable { +@@ -71,30 +71,8 @@ public class MinidumpUploadCallable implements Callable { if (mPermManager.isUploadEnabledForTests()) { Log.i(TAG, "Minidump upload enabled for tests, skipping other checks."); } else if (!CrashFileManager.isForcedUpload(mFileToUpload)) { diff --git a/build/patches/Modify-default-preferences.patch b/build/patches/Modify-default-preferences.patch index bfd17562..900cedb3 100644 --- a/build/patches/Modify-default-preferences.patch +++ b/build/patches/Modify-default-preferences.patch @@ -33,7 +33,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -84,6 +84,7 @@ +@@ -85,6 +85,7 @@ #include "components/autofill/core/common/autofill_payments_features.h" #include "components/autofill/core/common/autofill_switches.h" #include "components/autofill/core/common/autofill_util.h" @@ -56,7 +56,7 @@ diff --git a/chrome/browser/background/extensions/background_mode_manager.cc b/c diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -1449,7 +1449,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs( +@@ -1499,7 +1499,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs( void ChromeContentBrowserClient::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref(prefs::kDisable3DAPIs, false); @@ -68,7 +68,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc -@@ -1341,7 +1341,7 @@ void RegisterProfilePrefsForMigration( +@@ -1364,7 +1364,7 @@ void RegisterProfilePrefsForMigration( registry->RegisterTimePref(kMerchantTrustPageInfoLastOpenTime, base::Time()); // Deprecated 12/2025. @@ -116,7 +116,7 @@ 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,7 +129,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -132,7 +132,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref(prefs::kWebAppCreateInAppsMenu, true); registry->RegisterBooleanPref(prefs::kWebAppCreateInQuickLaunchBar, true); registry->RegisterBooleanPref( @@ -125,7 +125,7 @@ diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_u user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); registry->RegisterDictionaryPref(prefs::kBrowserWindowPlacement); registry->RegisterDictionaryPref(prefs::kBrowserWindowPlacementPopup); -@@ -210,7 +210,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -213,7 +213,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { #endif registry->RegisterBooleanPref( @@ -262,8 +262,8 @@ diff --git a/components/content_settings/core/browser/content_settings_registry. - Register(ContentSettingsType::SENSORS, "sensors", CONTENT_SETTING_ALLOW, + Register(ContentSettingsType::SENSORS, "sensors", CONTENT_SETTING_BLOCK, WebsiteSettingsInfo::UNSYNCABLE, /*allowlisted_primary_schemes=*/{}, - /*valid_settings=*/{CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK}, - WebsiteSettingsInfo::TOP_ORIGIN_ONLY_SCOPE, + /*valid_settings=*/ + {CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, CONTENT_SETTING_ASK}, 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 @@ -310,25 +310,26 @@ diff --git a/components/safe_browsing/core/common/safe_browsing_prefs.cc b/compo diff --git a/components/security_interstitials/core/features.cc b/components/security_interstitials/core/features.cc --- a/components/security_interstitials/core/features.cc +++ b/components/security_interstitials/core/features.cc -@@ -18,5 +18,6 @@ BASE_FEATURE(kHttpsFirstDialogUi, base::FEATURE_DISABLED_BY_DEFAULT); +@@ -18,6 +18,7 @@ BASE_FEATURE(kHttpsFirstDialogUi, base::FEATURE_DISABLED_BY_DEFAULT); #else BASE_FEATURE(kHttpsFirstDialogUi, base::FEATURE_ENABLED_BY_DEFAULT); #endif +SET_CROMITE_FEATURE_DISABLED(kHttpsFirstDialogUi); - } // namespace security_interstitials::features + BASE_FEATURE(kInsecureFormNavigationThrottleForPrerender, + base::FEATURE_ENABLED_BY_DEFAULT); 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 -@@ -322,7 +322,7 @@ void PrimaryAccountManager::RegisterProfilePrefs(PrefRegistrySimple* registry) { +@@ -388,7 +388,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); - registry->RegisterBooleanPref(kExplicitBrowserSigninWithoutFeatureEnabled, - false); + registry->RegisterBooleanPref(prefs::kExplicitBrowserSignin, false); + registry->RegisterBooleanPref( diff --git a/cromite_flags/chrome/browser/about_flags_cc/Modify-default-preferences.inc b/cromite_flags/chrome/browser/about_flags_cc/Modify-default-preferences.inc new file mode 100755 --- /dev/null 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 5c805837..aaf0b5b7 100644 --- a/build/patches/Move-some-account-settings-back-to-privacy-settings.patch +++ b/build/patches/Move-some-account-settings-back-to-privacy-settings.patch @@ -37,7 +37,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -82,6 +82,13 @@ import org.chromium.ui.text.SpanApplier; +@@ -84,6 +84,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 -@@ -101,6 +108,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -103,6 +110,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private static final String PREF_INCOGNITO_LOCK = "incognito_lock"; private static final String PREF_JAVASCRIPT_OPTIMIZER = "javascript_optimizer"; @VisibleForTesting static final String PREF_DO_NOT_TRACK = "do_not_track"; @@ -68,7 +68,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting @VisibleForTesting static final String PREF_THIRD_PARTY_COOKIES = "third_party_cookies"; private static final String PREF_ADVANCED_PROTECTION_INFO = "advanced_protection_info"; -@@ -209,6 +226,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -211,6 +228,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); -@@ -384,6 +411,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -386,6 +413,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; } -@@ -396,6 +426,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -398,6 +428,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 65aa5a1e..3c11e1ee 100644 --- a/build/patches/Multi-Screen-Window-Placement-API-fix.patch +++ b/build/patches/Multi-Screen-Window-Placement-API-fix.patch @@ -9,16 +9,16 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- .../permissions/permission_service_impl.cc | 1 - .../renderer_host/render_frame_host_impl.cc | 3 +- - .../core/frame/cached_permission_status.cc | 8 ++--- + .../core/frame/cached_permission_status.cc | 6 ++-- .../core/frame/cached_permission_status.h | 1 + .../blink/renderer/core/frame/screen.cc | 35 +++++++++++++++++-- .../blink/renderer/core/frame/screen.h | 17 ++++++++- - 6 files changed, 56 insertions(+), 9 deletions(-) + 6 files changed, 55 insertions(+), 8 deletions(-) diff --git a/content/browser/permissions/permission_service_impl.cc b/content/browser/permissions/permission_service_impl.cc --- a/content/browser/permissions/permission_service_impl.cc +++ b/content/browser/permissions/permission_service_impl.cc -@@ -438,7 +438,6 @@ void PermissionServiceImpl::AddPermissionObserver( +@@ -442,7 +442,6 @@ void PermissionServiceImpl::AddPermissionObserver( ReceivedBadMessage(); return; } @@ -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 -@@ -19486,7 +19486,8 @@ RenderFrameHostImpl::GetCachedPermissionStatuses() { +@@ -19575,7 +19575,8 @@ RenderFrameHostImpl::GetCachedPermissionStatuses() { {PermissionName::WEB_APP_INSTALLATION, PermissionType::WEB_APP_INSTALLATION}, #endif @@ -42,18 +42,16 @@ 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 -@@ -37,10 +37,10 @@ CachedPermissionStatus::CachedPermissionStatus(ExecutionContext* context) +@@ -37,9 +37,9 @@ CachedPermissionStatus::CachedPermissionStatus(ExecutionContext* context) permission_service_(context), permission_observer_receivers_(this, context) { CHECK(context); -- CHECK(RuntimeEnabledFeatures::PermissionElementEnabled(context) || -- RuntimeEnabledFeatures::GeolocationElementEnabled(context) || +- CHECK(RuntimeEnabledFeatures::GeolocationElementEnabled(context) || - RuntimeEnabledFeatures::UserMediaElementEnabled(context) || - RuntimeEnabledFeatures::InstallElementEnabled(context)); -+ // CHECK(RuntimeEnabledFeatures::PermissionElementEnabled(context) || -+ // RuntimeEnabledFeatures::GeolocationElementEnabled(context) || -+ // RuntimeEnabledFeatures::UserMediaElementEnabled(context) || -+ // RuntimeEnabledFeatures::InstallElementEnabled(context)); see https://source.chromium.org/chromium/chromium/src/+/81a9e9b66a03e12cb438eef0834f5e5f7a0506ee ++ // CHECK(RuntimeEnabledFeatures::GeolocationElementEnabled(context) || ++ // RuntimeEnabledFeatures::UserMediaElementEnabled(context) || ++ // RuntimeEnabledFeatures::InstallElementEnabled(context)); see https://source.chromium.org/chromium/chromium/src/+/81a9e9b66a03e12cb438eef0834f5e5f7a0506ee } void CachedPermissionStatus::Trace(Visitor* visitor) const { @@ -63,7 +61,7 @@ diff --git a/third_party/blink/renderer/core/frame/cached_permission_status.h b/ @@ -72,6 +72,7 @@ class CORE_EXPORT CachedPermissionStatus final private: - friend class HTMLPermissionElement; + friend class HTMLCapabilityElementBase; + friend class Screen; friend class DocumentLoader; friend class CachedPermissionStatusTest; diff --git a/build/patches/Multiple-fingerprinting-mitigations.patch b/build/patches/Multiple-fingerprinting-mitigations.patch index fd3d36c9..902608cd 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 -@@ -2477,6 +2477,7 @@ static_library("browser") { +@@ -2398,6 +2398,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 -@@ -263,6 +263,8 @@ +@@ -266,6 +266,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 -@@ -298,6 +298,7 @@ source_set("browser") { +@@ -316,6 +316,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" -@@ -3669,6 +3670,8 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( +@@ -3697,6 +3698,8 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( switches::kDisableBestEffortTasks, switches::kDisableBreakpad, switches::kDisableFileSystem, @@ -109,7 +109,7 @@ diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content diff --git a/content/child/BUILD.gn b/content/child/BUILD.gn --- a/content/child/BUILD.gn +++ b/content/child/BUILD.gn -@@ -113,6 +113,7 @@ target(link_target_type, "child") { +@@ -111,6 +111,7 @@ target(link_target_type, "child") { "//third_party/blink/public/common:buildflags", "//third_party/blink/public/strings", "//third_party/ced", @@ -129,7 +129,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. #if BUILDFLAG(IS_ANDROID) #include "base/android/android_info.h" #endif -@@ -522,6 +524,10 @@ void SetRuntimeFeaturesFromCommandLine(const base::CommandLine& command_line) { +@@ -494,6 +496,10 @@ void SetRuntimeFeaturesFromCommandLine(const base::CommandLine& command_line) { // as a last resort. void SetCustomizedRuntimeFeaturesFromCombinedArgs( const base::CommandLine& command_line) { @@ -167,8 +167,8 @@ diff --git a/third_party/blink/public/platform/web_runtime_features.h b/third_pa + static void EnableFingerprintingCanvasMeasureTextNoise(bool); + static void EnableFingerprintingCanvasImageDataNoise(bool); static void EnableFluentScrollbars(bool); + static void EnableDesktopAndroidScrollbars(bool); - static void EnableLocalNetworkAccessWebRTC(bool); diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc --- a/third_party/blink/renderer/core/dom/document.cc +++ b/third_party/blink/renderer/core/dom/document.cc @@ -180,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" -@@ -1043,6 +1044,16 @@ Document::Document(const DocumentInit& initializer, +@@ -1042,6 +1043,16 @@ Document::Document(const DocumentInit& initializer, data_(MakeGarbageCollected(GetExecutionContext())) { TRACE_EVENT("blink", "Document::Document", perfetto::Flow::FromPointer(this)); 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(); -@@ -2747,6 +2758,14 @@ void Document::UpdateStyleAndLayoutTreeForThisDocument() { +@@ -2749,6 +2760,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 -@@ -571,6 +571,10 @@ class CORE_EXPORT Document : public ContainerNode, +@@ -572,6 +572,10 @@ class CORE_EXPORT Document : public ContainerNode, has_xml_declaration_ = has_xml_declaration ? 1 : 0; } @@ -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 -@@ -1754,7 +1754,9 @@ component("platform") { +@@ -1756,7 +1756,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", -@@ -1838,6 +1840,7 @@ component("platform") { +@@ -1840,6 +1842,7 @@ component("platform") { "//third_party/blink/public/strings", "//third_party/blink/renderer/platform/wtf", "//third_party/ced", @@ -449,8 +449,8 @@ diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/re diff --git a/third_party/blink/renderer/platform/exported/web_runtime_features.cc b/third_party/blink/renderer/platform/exported/web_runtime_features.cc --- a/third_party/blink/renderer/platform/exported/web_runtime_features.cc +++ b/third_party/blink/renderer/platform/exported/web_runtime_features.cc -@@ -64,6 +64,14 @@ void WebRuntimeFeatures::EnableFluentScrollbars(bool enable) { - ScrollbarThemeSettings::SetFluentScrollbarsEnabled(enable); +@@ -68,6 +68,14 @@ void WebRuntimeFeatures::EnableDesktopAndroidScrollbars(bool enable) { + ScrollbarThemeSettings::SetDesktopAndroidScrollbarsEnabled(enable); } +void WebRuntimeFeatures::EnableFingerprintingCanvasMeasureTextNoise(bool 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 -@@ -3754,6 +3754,12 @@ +@@ -3873,6 +3873,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 fbe2f215..117d1f85 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 -@@ -1300,9 +1300,9 @@ if (enable_java_templates) { +@@ -1278,9 +1278,9 @@ if (enable_java_templates) { _source_file_template, "--proguard-configs=@FileArg($_rebased_build_config:proguard_all_configs)", ] diff --git a/build/patches/Override-Navigator-Language.patch b/build/patches/Override-Navigator-Language.patch index bcfbd0a1..6e19be6a 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" -@@ -3579,8 +3580,11 @@ void RenderProcessHostImpl::AppendRendererCommandLine( +@@ -3608,8 +3609,11 @@ void RenderProcessHostImpl::AppendRendererCommandLine( PropagateBrowserCommandLineToRenderer(browser_command_line, command_line); // Pass on the browser locale. diff --git a/build/patches/Override-the-MV2-deprecation.patch b/build/patches/Override-the-MV2-deprecation.patch index 9caa4acb..ec8cf34e 100644 --- a/build/patches/Override-the-MV2-deprecation.patch +++ b/build/patches/Override-the-MV2-deprecation.patch @@ -25,7 +25,7 @@ diff --git a/chrome/browser/extensions/manifest_v2_experiment_manager.cc b/chrom diff --git a/extensions/common/extension.cc b/extensions/common/extension.cc --- a/extensions/common/extension.cc +++ b/extensions/common/extension.cc -@@ -62,7 +62,7 @@ constexpr int kPEMOutputColumns = 64; +@@ -63,7 +63,7 @@ constexpr int kPEMOutputColumns = 64; static_assert(kMaximumSupportedManifestVersion >= kMinimumSupportedManifestVersion, "The modern manifest version must be supported."); diff --git a/build/patches/Partition-Blink-memory-cache.patch b/build/patches/Partition-Blink-memory-cache.patch index 17bb70d5..85d2e4e0 100644 --- a/build/patches/Partition-Blink-memory-cache.patch +++ b/build/patches/Partition-Blink-memory-cache.patch @@ -22,8 +22,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../platform/loader/fetch/memory_cache.h | 5 +- .../platform/loader/fetch/resource_fetcher.cc | 62 +++++++++++++++---- .../platform/loader/fetch/resource_fetcher.h | 10 ++- - .../platform/runtime_enabled_features.json5 | 4 +- - 9 files changed, 71 insertions(+), 28 deletions(-) + .../platform/runtime_enabled_features.json5 | 3 +- + 9 files changed, 70 insertions(+), 28 deletions(-) diff --git a/third_party/blink/renderer/core/html/parser/html_srcset_parser.cc b/third_party/blink/renderer/core/html/parser/html_srcset_parser.cc --- a/third_party/blink/renderer/core/html/parser/html_srcset_parser.cc @@ -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 -@@ -2808,7 +2808,7 @@ bool InspectorNetworkAgent::FetchResourceContent(Document* document, +@@ -2806,7 +2806,7 @@ bool InspectorNetworkAgent::FetchResourceContent(Document* document, if (!cached_resource) { cached_resource = MemoryCache::Get()->ResourceForURL( url, document->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 -@@ -344,7 +344,7 @@ void MemoryCache::RemoveInternal(ResourceMap* resource_map, +@@ -354,7 +354,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 = -@@ -360,13 +360,9 @@ bool MemoryCache::Contains(const Resource* resource) const { +@@ -370,13 +370,9 @@ bool MemoryCache::Contains(const Resource* resource) const { return resource == resources_it->value->GetResource(); } @@ -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)); -@@ -2927,11 +2930,47 @@ void ResourceFetcher::UpdateImagePrioritiesAndSpeculativeDecodes() { +@@ -2936,11 +2939,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 -@@ -2946,12 +2985,13 @@ String ResourceFetcher::GetCacheIdentifier(const KURL& url, +@@ -2955,12 +2994,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. -@@ -2964,7 +3004,7 @@ String ResourceFetcher::GetCacheIdentifier(ResourceType type, +@@ -2973,7 +3013,7 @@ String ResourceFetcher::GetCacheIdentifier(ResourceType type, } // Fallback to the standard cache identifier logic. @@ -261,15 +261,14 @@ 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 -@@ -5274,8 +5274,8 @@ +@@ -5477,8 +5477,7 @@ status: "stable", }, { - name: "SvgPartitionSVGDocumentResourcesInMemoryCache", -- status: "experimental", -+ name: "SvgPartitionSVGDocumentResourcesInMemoryCache", status: "experimental", -+ +- status: "stable", ++ status: "experimental", name: "SvgPartitionSVGDocumentResourcesInMemoryCache", }, { - name: "SvgScriptElementAsyncAttribute", + name: "SvgPathLengthCssProperty", -- diff --git a/build/patches/Partition-HSTS-cache-by-NAK.patch b/build/patches/Partition-HSTS-cache-by-NAK.patch index 775cf985..294d3bce 100644 --- a/build/patches/Partition-HSTS-cache-by-NAK.patch +++ b/build/patches/Partition-HSTS-cache-by-NAK.patch @@ -716,7 +716,7 @@ diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc } void SpdySession::EnqueueStreamWrite( -@@ -3096,7 +3098,8 @@ void SpdySession::OnAltSvc( +@@ -3105,7 +3107,8 @@ void SpdySession::OnAltSvc( return; } if (!CanPool(transport_security_state_, ssl_info, *ssl_config_service_, @@ -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 -@@ -2077,6 +2077,7 @@ void NetworkContext::CreateHostResolver( +@@ -2120,6 +2120,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, -@@ -2088,6 +2089,7 @@ void NetworkContext::VerifyCertInternal( +@@ -2131,6 +2132,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(); -@@ -2118,20 +2120,22 @@ void NetworkContext::VerifyCertInternal( +@@ -2161,20 +2163,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)); } -@@ -2172,17 +2176,19 @@ void NetworkContext::SetCorsOriginAccessListsForOrigin( +@@ -2215,17 +2219,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 = -@@ -2194,10 +2200,10 @@ void NetworkContext::IsHSTSActiveForHost(const std::string& host, +@@ -2237,10 +2243,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::DictValue result; -@@ -2235,10 +2241,10 @@ void NetworkContext::GetHSTSState(const std::string& domain, +@@ -2278,10 +2284,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)); -@@ -2276,6 +2282,7 @@ void NetworkContext::GetHSTSState(const std::string& domain, +@@ -2319,6 +2325,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 = -@@ -2286,7 +2293,7 @@ void NetworkContext::DeleteDynamicDataForHost( +@@ -2329,7 +2336,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( -@@ -2345,7 +2352,7 @@ void NetworkContext::PreconnectSockets( +@@ -2388,7 +2395,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. -@@ -3196,7 +3203,9 @@ void NetworkContext::OnConnectionError() { +@@ -3239,7 +3246,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. -@@ -3222,6 +3231,7 @@ GURL NetworkContext::GetHSTSRedirectForPreconnect(const GURL& original_url) { +@@ -3265,6 +3274,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); -@@ -3283,7 +3293,8 @@ void NetworkContext::OnVerifyCertComplete(uint64_t cert_verify_id, int result) { +@@ -3326,7 +3336,8 @@ void NetworkContext::OnVerifyCertComplete(uint64_t cert_verify_id, int result) { url_request_context_->transport_security_state()->CheckPublicKeyPins( pending_cert_verify->host_port.host(), pending_cert_verify->result->is_issued_by_known_root, @@ -980,7 +980,7 @@ diff --git a/services/network/network_context.h b/services/network/network_conte const std::string& host, DeleteDynamicDataForHostCallback callback) override; void SetCorsOriginAccessListsForOrigin( -@@ -797,7 +801,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -801,7 +805,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); -@@ -809,6 +814,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -813,6 +818,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, -@@ -984,6 +990,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -992,6 +998,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 -@@ -1561,6 +1561,7 @@ interface NetworkContext { +@@ -1575,6 +1575,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); -@@ -1569,6 +1570,7 @@ interface NetworkContext { +@@ -1583,6 +1584,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); -@@ -1582,18 +1584,18 @@ interface NetworkContext { +@@ -1596,18 +1598,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 -@@ -1612,7 +1614,7 @@ interface NetworkContext { +@@ -1626,7 +1628,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 178836e1..aa234033 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 -@@ -1112,6 +1112,11 @@ void MediaDevicesManager::OnDevicesEnumerated( +@@ -1207,6 +1207,11 @@ void MediaDevicesManager::OnDevicesEnumerated( } } } @@ -62,6 +62,6 @@ diff --git a/content/browser/renderer_host/media/media_devices_manager.cc b/cont + translation[video_input_index].clear(); +#endif - GetAudioInputCapabilities(video_input_capabilities_requested, + GetAudioInputCapabilities(request_id, video_input_capabilities_requested, audio_input_capabilities_requested, -- diff --git a/build/patches/Partition-blobs-by-top-frame-URL.patch b/build/patches/Partition-blobs-by-top-frame-URL.patch index eb441b0b..9d9098c0 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 -@@ -13157,6 +13157,8 @@ void RenderFrameHostImpl::ReportBlockingCrossPartitionBlobURL( +@@ -13316,6 +13316,8 @@ void RenderFrameHostImpl::ReportBlockingCrossPartitionBlobURL( } bool RenderFrameHostImpl::IsFullCookieAccessAllowed() { 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 cd2387b6..f8160e46 100644 --- a/build/patches/Partitioning-all-cookies-by-top-frame-domain.patch +++ b/build/patches/Partitioning-all-cookies-by-top-frame-domain.patch @@ -50,7 +50,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -3674,7 +3674,7 @@ bool ChromeContentBrowserClient::IsFullCookieAccessAllowed( +@@ -3746,7 +3746,7 @@ bool ChromeContentBrowserClient::IsFullCookieAccessAllowed( scoped_refptr cookie_settings = CookieSettingsFactory::GetForProfile(profile); if (!cookie_settings) { @@ -62,7 +62,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch diff --git a/chrome/browser/extensions/api/cookies/cookies_helpers.cc b/chrome/browser/extensions/api/cookies/cookies_helpers.cc --- a/chrome/browser/extensions/api/cookies/cookies_helpers.cc +++ b/chrome/browser/extensions/api/cookies/cookies_helpers.cc -@@ -363,6 +363,10 @@ ToNetCookiePartitionKey( +@@ -366,6 +366,10 @@ ToNetCookiePartitionKey( bool CookieMatchesPartitionKeyCollection( const net::CookiePartitionKeyCollection& cookie_partition_key_collection, const net::CanonicalCookie& cookie) { @@ -76,7 +76,7 @@ diff --git a/chrome/browser/extensions/api/cookies/cookies_helpers.cc b/chrome/b diff --git a/chrome/browser/net/profile_network_context_service.cc b/chrome/browser/net/profile_network_context_service.cc --- a/chrome/browser/net/profile_network_context_service.cc +++ b/chrome/browser/net/profile_network_context_service.cc -@@ -1086,16 +1086,16 @@ ProfileNetworkContextService::CreateCookieManagerParams( +@@ -1105,16 +1105,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. @@ -152,7 +152,7 @@ diff --git a/components/browser_ui/strings/android/site_settings.grdp b/componen Third-party cookies are blocked -@@ -691,7 +691,7 @@ +@@ -685,7 +685,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. @@ -345,7 +345,7 @@ diff --git a/net/cookies/cookie_util.cc b/net/cookies/cookie_util.cc diff --git a/net/cookies/cookie_util.h b/net/cookies/cookie_util.h --- a/net/cookies/cookie_util.h +++ b/net/cookies/cookie_util.h -@@ -133,7 +133,7 @@ enum class SecFetchStorageAccessOutcome { +@@ -112,7 +112,7 @@ enum class StorageAccessStatusOutcome { enum class ActivateStorageAccessLoadOutcome { // Applies when the `Activate-Storage-Access` header behavior is not enabled // under the existing feature flags or content settings. @@ -354,7 +354,7 @@ diff --git a/net/cookies/cookie_util.h b/net/cookies/cookie_util.h // Applies when a response includes the `Activate-Storage-Access: load` // header, but its corresponding request either has an omitted storage access // status, or has a storage access status of `none`. -@@ -154,7 +154,7 @@ enum class ActivateStorageAccessLoadOutcome { +@@ -133,7 +133,7 @@ enum class ActivateStorageAccessLoadOutcome { enum class ActivateStorageAccessRetryOutcome { // Applies when the `Activate-Storage-Access` header behavior is not enabled // under the existing feature flags or content settings. @@ -389,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 -@@ -851,6 +851,14 @@ bool SQLitePersistentCookieStore::Backend::DoInitializeDatabase() { +@@ -796,6 +796,14 @@ bool SQLitePersistentCookieStore::Backend::DoInitializeDatabase() { if (!restore_old_session_cookies_) DeleteSessionCookiesOnStartup(); @@ -407,7 +407,7 @@ diff --git a/net/extras/sqlite/sqlite_persistent_cookie_store.cc b/net/extras/sq diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc --- a/net/url_request/url_request.cc +++ b/net/url_request/url_request.cc -@@ -1406,8 +1406,7 @@ StorageAccessStatusCache URLRequest::CalculateStorageAccessStatus() const { +@@ -1408,8 +1408,7 @@ StorageAccessStatusCache URLRequest::CalculateStorageAccessStatus() const { // `deferred_redirect_info_` that has to be used when calculating new storage // access status. std::optional storage_access_status = @@ -420,7 +420,7 @@ diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc --- a/net/url_request/url_request_http_job.cc +++ b/net/url_request/url_request_http_job.cc -@@ -1645,6 +1645,7 @@ bool URLRequestHttpJob::NeedsRetryWithStorageAccess() { +@@ -1653,6 +1653,7 @@ bool URLRequestHttpJob::NeedsRetryWithStorageAccess() { auto determine_storage_access_retry_outcome = [&]() -> cookie_util::ActivateStorageAccessRetryOutcome { using enum cookie_util::ActivateStorageAccessRetryOutcome; @@ -454,7 +454,7 @@ diff --git a/services/network/cookie_settings.cc b/services/network/cookie_setti diff --git a/services/network/cors/cors_url_loader.cc b/services/network/cors/cors_url_loader.cc --- a/services/network/cors/cors_url_loader.cc +++ b/services/network/cors/cors_url_loader.cc -@@ -851,6 +851,7 @@ void CorsURLLoader::StartRequest() { +@@ -882,6 +882,7 @@ void CorsURLLoader::StartRequest() { } if (request_.credentials_mode == mojom::CredentialsMode::kInclude && @@ -465,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 -@@ -992,6 +992,12 @@ void RestrictedCookieManager::SetCookieFromString( +@@ -988,6 +988,12 @@ void RestrictedCookieManager::SetCookieFromString( shared_memory_region = GetAndPrepareSharedMemoryRegion(url); } @@ -481,7 +481,7 @@ diff --git a/services/network/restricted_cookie_manager.cc b/services/network/re diff --git a/services/network/url_loader.cc b/services/network/url_loader.cc --- a/services/network/url_loader.cc +++ b/services/network/url_loader.cc -@@ -2617,6 +2617,7 @@ bool URLLoader::ShouldSetLoadWithStorageAccess() const { +@@ -2640,6 +2640,7 @@ bool URLLoader::ShouldSetLoadWithStorageAccess() const { auto determine_storage_access_load_outcome = [&]() -> net::cookie_util::ActivateStorageAccessLoadOutcome { @@ -503,7 +503,7 @@ diff --git a/third_party/blink/renderer/modules/cookie_store/cookie_init.idl b/t diff --git a/third_party/blink/renderer/modules/cookie_store/cookie_store.cc b/third_party/blink/renderer/modules/cookie_store/cookie_store.cc --- a/third_party/blink/renderer/modules/cookie_store/cookie_store.cc +++ b/third_party/blink/renderer/modules/cookie_store/cookie_store.cc -@@ -411,6 +411,7 @@ ScriptPromise CookieStore::set(ScriptState* script_state, +@@ -395,6 +395,7 @@ ScriptPromise CookieStore::set(ScriptState* script_state, CookieInit* set_options = CookieInit::Create(); set_options->setName(name); set_options->setValue(value); @@ -511,7 +511,7 @@ diff --git a/third_party/blink/renderer/modules/cookie_store/cookie_store.cc b/t return set(script_state, set_options, exception_state); } -@@ -434,6 +435,7 @@ ScriptPromise CookieStore::Delete( +@@ -418,6 +419,7 @@ ScriptPromise CookieStore::Delete( set_options->setName(name); set_options->setValue(name.empty() ? "deleted" : ""); set_options->setExpires(0); @@ -519,7 +519,7 @@ diff --git a/third_party/blink/renderer/modules/cookie_store/cookie_store.cc b/t return DoWrite(script_state, set_options, exception_state); } -@@ -449,6 +451,7 @@ ScriptPromise CookieStore::Delete( +@@ -433,6 +435,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/Permit-PGO-for-debug-builds.patch b/build/patches/Permit-PGO-for-debug-builds.patch index 855455b9..c8b66c63 100644 --- a/build/patches/Permit-PGO-for-debug-builds.patch +++ b/build/patches/Permit-PGO-for-debug-builds.patch @@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/build/config/compiler/pgo/pgo.gni b/build/config/compiler/pgo/pgo.gni --- a/build/config/compiler/pgo/pgo.gni +++ b/build/config/compiler/pgo/pgo.gni -@@ -49,5 +49,5 @@ declare_args() { +@@ -55,5 +55,5 @@ declare_args() { # TODO(crbug.com/409738601): Remove assert once clang no # longer crashes with PGO enabled for a debug build. diff --git a/build/patches/Private-network-access-content-settings.patch b/build/patches/Private-network-access-content-settings.patch index ad80f4a6..2df01292 100644 --- a/build/patches/Private-network-access-content-settings.patch +++ b/build/patches/Private-network-access-content-settings.patch @@ -25,7 +25,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -4150,6 +4150,31 @@ bool ShouldPromptOnMultipleMatchingCertificates(const Profile* profile) { +@@ -4222,6 +4222,31 @@ bool ShouldPromptOnMultipleMatchingCertificates(const Profile* profile) { return false; } @@ -57,7 +57,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch } // namespace base::OnceClosure ChromeContentBrowserClient::SelectClientCertificate( -@@ -7744,12 +7769,17 @@ content::ContentBrowserClient::LocalNetworkAccessRequestPolicyOverride +@@ -7850,12 +7875,17 @@ content::ContentBrowserClient::LocalNetworkAccessRequestPolicyOverride ChromeContentBrowserClient::ShouldOverrideLocalNetworkAccessRequestPolicy( content::BrowserContext* browser_context, const url::Origin& origin) { diff --git a/build/patches/PublicKeyCredential-fingerprinting-mitigations.patch b/build/patches/PublicKeyCredential-fingerprinting-mitigations.patch index 4f6660b2..8f10d59a 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 -@@ -2020,6 +2020,7 @@ void AuthenticatorCommonImpl::GetClientCapabilities( +@@ -2016,6 +2016,7 @@ void AuthenticatorCommonImpl::GetClientCapabilities( MakeCapability(client_capabilities::kConditionalCreate, true)); 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)); -@@ -2047,11 +2048,25 @@ void AuthenticatorCommonImpl::GetClientCapabilities( +@@ -2043,11 +2044,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) { -@@ -2097,6 +2112,13 @@ void AuthenticatorCommonImpl::ContinueIsUvpaaAfterOverrideCheck( +@@ -2093,6 +2108,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 d2287712..f7675de4 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 @@ -56,14 +56,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 -@@ -367,6 +367,7 @@ public abstract class ChromeFeatureList { +@@ -368,6 +368,7 @@ public abstract class ChromeFeatureList { public static final String CLANK_STARTUP_LATENCY_INJECTION = "ClankStartupLatencyInjection"; public static final String CLANK_WHATS_NEW = "ClankWhatsNew"; public static final String CLEAR_INTENT_WHEN_RECREATED = "ClearIntentWhenRecreated"; + public static final String CLOSE_ALL_TABS_MODAL_DIALOG = "CloseAllTabsModalDialog"; public static final String COMMAND_LINE_ON_NON_ROOTED = "CommandLineOnNonRooted"; public static final String COMMERCE_MERCHANT_VIEWER = "CommerceMerchantViewer"; - public static final String CONTENT_CAPTURE_SEND_METADATA_FOR_DATA_SHARE = + public static final String COMPOSITOR_VIEW_HOLDER_OBSCURING = "CompositorViewHolderObscuring"; diff --git a/cromite_flags/chrome/browser/about_flags_cc/Re-introduce-modal-dialog-flag-to-close-all-tabs.inc b/cromite_flags/chrome/browser/about_flags_cc/Re-introduce-modal-dialog-flag-to-close-all-tabs.inc new file mode 100644 --- /dev/null diff --git a/build/patches/Re-introduce-override_build_timestamp.patch b/build/patches/Re-introduce-override_build_timestamp.patch index b201aa4e..42a8ed16 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 -@@ -4504,8 +4504,12 @@ if (current_toolchain == default_toolchain) { +@@ -4509,8 +4509,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 29dafbcc..4dde112a 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 @@ -5,7 +5,7 @@ Subject: Reduce HTTP headers in DoH requests to bare minimum License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- net/base/load_flags_list.h | 4 ++++ - net/dns/dns_transaction.cc | 2 +- + net/dns/dns_http_attempt.cc | 2 +- net/url_request/url_request_http_job.cc | 10 +++++++--- 3 files changed, 12 insertions(+), 4 deletions(-) @@ -21,18 +21,18 @@ diff --git a/net/base/load_flags_list.h b/net/base/load_flags_list.h +LOAD_FLAG(MINIMAL_HEADERS, 1 << 20) + // See note at top of file about why adding LoadFlags is often a bad idea. -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 -@@ -508,7 +508,7 @@ class DnsHTTPAttempt : public DnsAttempt, public URLRequest::Delegate { - // avoid deadlock and enable the use of preconfigured IP addresses. - request_->SetSecureDnsPolicy(SecureDnsPolicy::kBootstrap); - request_->SetLoadFlags(request_->load_flags() | LOAD_DISABLE_CACHE | -- LOAD_BYPASS_PROXY); -+ LOAD_MINIMAL_HEADERS | LOAD_BYPASS_PROXY); - request_->set_disallow_credentials(); - request_->set_isolation_info(isolation_info); - } +diff --git a/net/dns/dns_http_attempt.cc b/net/dns/dns_http_attempt.cc +--- a/net/dns/dns_http_attempt.cc ++++ b/net/dns/dns_http_attempt.cc +@@ -160,7 +160,7 @@ DnsHTTPAttempt::DnsHTTPAttempt(base::WeakPtr resolve_context, + // avoid deadlock and enable the use of preconfigured IP addresses. + request_->SetSecureDnsPolicy(SecureDnsPolicy::kBootstrap); + request_->SetLoadFlags(request_->load_flags() | LOAD_DISABLE_CACHE | +- LOAD_BYPASS_PROXY); ++ LOAD_MINIMAL_HEADERS | LOAD_BYPASS_PROXY); + request_->set_disallow_credentials(); + request_->set_isolation_info(isolation_info); + } 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 diff --git a/build/patches/Remove-ChromiumNetworkAdapter.patch b/build/patches/Remove-ChromiumNetworkAdapter.patch index 5144291b..ef396e3b 100644 --- a/build/patches/Remove-ChromiumNetworkAdapter.patch +++ b/build/patches/Remove-ChromiumNetworkAdapter.patch @@ -20,7 +20,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html 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,63 +239,6 @@ public class WebViewBrowserFragment extends Fragment { +@@ -238,63 +238,6 @@ public class WebViewBrowserFragment extends Fragment { /** Downloading file in background thread */ @Override protected String doInBackground() { 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 00afb46e..c72136a3 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 -@@ -667,6 +667,8 @@ chrome_java_resources = [ +@@ -663,6 +663,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,10 +56,10 @@ 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 -@@ -982,6 +982,8 @@ chrome_java_sources = [ +@@ -996,6 +996,8 @@ chrome_java_sources = [ + "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/PrivacySandbox3pcdRollbackMessageController.java", - "java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxSurveyController.java", + "java/src/org/chromium/chrome/browser/privacy/settings/RefererSettingsFragment.java", + "java/src/org/chromium/chrome/browser/privacy/settings/RadioButtonGroupRefererSettings.java", "java/src/org/chromium/chrome/browser/provider/BaseColumns.java", @@ -170,7 +170,7 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -41,6 +41,7 @@ import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; +@@ -43,6 +43,7 @@ import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; import org.chromium.chrome.browser.preferences.Pref; import org.chromium.chrome.browser.prefetch.settings.PreloadPagesSettingsFragment; @@ -178,7 +178,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import org.chromium.chrome.browser.privacy.secure_dns.SecureDnsSettings; import org.chromium.chrome.browser.privacy_guide.PrivacyGuideFragment; import org.chromium.chrome.browser.privacy_guide.PrivacyGuideInteractions; -@@ -119,6 +120,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -121,6 +122,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"; -@@ -554,6 +556,10 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -556,6 +558,10 @@ public class PrivacySettings extends ChromeBaseSettingsFragment : R.string.text_off); } @@ -397,7 +397,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 -@@ -261,6 +261,11 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { +@@ -272,6 +272,11 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { (*s_allowlist)[::prefs::kExpireDaysThreshold] = settings_api::PrefType::kNumber; @@ -444,7 +444,7 @@ diff --git a/chrome/browser/renderer_preferences_util.cc b/chrome/browser/render diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.html b/chrome/browser/resources/settings/privacy_page/privacy_page.html --- a/chrome/browser/resources/settings/privacy_page/privacy_page.html +++ b/chrome/browser/resources/settings/privacy_page/privacy_page.html -@@ -74,6 +74,16 @@ +@@ -67,6 +67,16 @@ menu-options="[[historyExpireDaysThresholdOptions_]]">
@@ -464,7 +464,7 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.html b/ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.ts b/chrome/browser/resources/settings/privacy_page/privacy_page.ts --- a/chrome/browser/resources/settings/privacy_page/privacy_page.ts +++ b/chrome/browser/resources/settings/privacy_page/privacy_page.ts -@@ -93,6 +93,17 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase { +@@ -88,6 +88,17 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase { value: () => loadTimeData.getBoolean('isPrivacySandboxRestricted'), }, @@ -482,15 +482,15 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.ts b/ch isPrivacySandboxRestrictedNoticeEnabled_: { type: Boolean, value: () => -@@ -117,6 +128,7 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase { +@@ -111,6 +122,7 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase { + declare private historyExpireDaysThresholdOptions_: object[]; declare private showClearBrowsingDataDialog_: boolean; declare private showPrivacyGuideDialog_: boolean; - declare private enableDeleteBrowsingDataRevamp_: boolean; + declare private referersPolicyOptions_: object[]; declare private isPrivacySandboxRestricted_: boolean; declare private isPrivacySandboxRestrictedNoticeEnabled_: boolean; declare private dbdDeletionConfirmationToastLabel_: string; -@@ -147,6 +159,12 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase { +@@ -141,6 +153,12 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase { Router.getInstance().navigateTo(routes.COOKIES); } @@ -506,7 +506,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 -@@ -1110,6 +1110,30 @@ For more settings that use data to improve your Chrome experience, go to @@ -552,7 +552,7 @@ diff --git a/chrome/browser/ui/prefs/pref_watcher.cc b/chrome/browser/ui/prefs/p diff --git a/chrome/browser/ui/prefs/prefs_tab_helper.cc b/chrome/browser/ui/prefs/prefs_tab_helper.cc --- a/chrome/browser/ui/prefs/prefs_tab_helper.cc +++ b/chrome/browser/ui/prefs/prefs_tab_helper.cc -@@ -378,6 +378,8 @@ void PrefsTabHelper::RegisterProfilePrefs( +@@ -384,6 +384,8 @@ void PrefsTabHelper::RegisterProfilePrefs( registry->RegisterBooleanPref( prefs::kEnableReferrers, !base::FeatureList::IsEnabled(features::kNoReferrers)); @@ -564,7 +564,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 -@@ -2330,6 +2330,10 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, +@@ -2342,6 +2342,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}, @@ -578,7 +578,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 -@@ -1564,6 +1564,9 @@ inline constexpr char kEnableDoNotTrack[] = "enable_do_not_track"; +@@ -1495,6 +1495,9 @@ inline constexpr char kEnableDoNotTrack[] = "enable_do_not_track"; inline constexpr char kEnableEncryptedMedia[] = "webkit.webprefs.encrypted_media_enabled"; diff --git a/build/patches/Remove-binary-blob-integrations.patch b/build/patches/Remove-binary-blob-integrations.patch index 86b2f110..de7c83e6 100644 --- a/build/patches/Remove-binary-blob-integrations.patch +++ b/build/patches/Remove-binary-blob-integrations.patch @@ -52,7 +52,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../CableAuthenticatorModuleProvider.java | 35 +- chrome/browser/webid/BUILD.gn | 3 - .../DigitalCredentialsCreationDelegate.java | 121 +-- - ...igitalCredentialsPresentationDelegate.java | 89 +- + ...igitalCredentialsPresentationDelegate.java | 87 +- chrome/test/android/BUILD.gn | 2 - .../ExternalNavigationHandler.java | 8 - components/externalauth/android/BUILD.gn | 3 - @@ -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, 134 insertions(+), 2780 deletions(-) + 87 files changed, 133 insertions(+), 2779 deletions(-) create mode 100644 components/webauthn/android/java/src/org/chromium/components/webauthn/ConditionalUiState.java diff --git a/android_webview/expectations/system_webview_bundle.AndroidManifest.expected b/android_webview/expectations/system_webview_bundle.AndroidManifest.expected @@ -153,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 -@@ -298,14 +298,6 @@ if (_is_default_toolchain) { +@@ -303,14 +303,6 @@ if (_is_default_toolchain) { ":system_ai_service_proto_java", ":usage_stats_proto_java", ":xr_java", @@ -168,7 +168,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//base:content_uri_utils_java", "//base:flagged_apis_java", "//base:process_launcher_java", -@@ -757,12 +749,9 @@ if (_is_default_toolchain) { +@@ -767,12 +759,9 @@ if (_is_default_toolchain) { "//services/shape_detection/public/mojom:mojom_java", "//skia/public/mojom:mojom_java", "//third_party/android_deps:chromium_play_services_availability_java", @@ -181,7 +181,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//third_party/android_deps:protobuf_lite_runtime_java", "//third_party/android_media:android_media_java", "//third_party/android_swipe_refresh:android_swipe_refresh_java", -@@ -1948,7 +1937,6 @@ if (_is_default_toolchain) { +@@ -1966,7 +1955,6 @@ if (_is_default_toolchain) { ] deps = [ ":chrome_java", @@ -189,7 +189,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//base:base_java", "//base:base_java_test_support", "//build/android:build_java", -@@ -2054,7 +2042,6 @@ if (_is_default_toolchain) { +@@ -2073,7 +2061,6 @@ if (_is_default_toolchain) { "java/src/org/chromium/chrome/browser/base/SplitCompatBackupAgent.java", "java/src/org/chromium/chrome/browser/base/SplitCompatContentProvider.java", "java/src/org/chromium/chrome/browser/base/SplitCompatCustomTabsService.java", @@ -197,7 +197,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "java/src/org/chromium/chrome/browser/base/SplitCompatIntentService.java", "java/src/org/chromium/chrome/browser/base/SplitCompatJobService.java", "java/src/org/chromium/chrome/browser/base/SplitCompatMinidumpUploadJobService.java", -@@ -2082,14 +2069,10 @@ if (_is_default_toolchain) { +@@ -2101,14 +2088,10 @@ if (_is_default_toolchain) { "java/src/org/chromium/chrome/browser/photo_picker/DecoderService.java", "java/src/org/chromium/chrome/browser/provider/ChromeBrowserProvider.java", "java/src/org/chromium/chrome/browser/provider/PageContentProvider.java", @@ -212,7 +212,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//base:base_java", "//chrome/browser/autofill/android:third_party_provider_java", "//chrome/browser/download/android:file_provider_java", -@@ -2108,7 +2091,6 @@ if (_is_default_toolchain) { +@@ -2127,7 +2110,6 @@ if (_is_default_toolchain) { "//components/module_installer/android:module_installer_java", "//components/policy/android:policy_java", "//components/variations/android:variations_java", @@ -223,7 +223,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -1008,10 +1008,6 @@ chrome_java_sources = [ +@@ -1023,10 +1023,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", @@ -237,7 +237,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 -@@ -151,19 +151,14 @@ by a child template that "extends" this file. +@@ -154,19 +154,14 @@ by a child template that "extends" this file. @@ -257,7 +257,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -@@ -831,16 +826,6 @@ by a child template that "extends" this file. +@@ -843,16 +838,6 @@ by a child template that "extends" this file. @@ -274,7 +274,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro @@ -293,7 +293,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -@@ -1373,12 +1346,6 @@ by a child template that "extends" this file. +@@ -1393,12 +1366,6 @@ by a child template that "extends" this file. {% endif %} @@ -381,7 +381,7 @@ diff --git a/chrome/android/javatests/BUILD.gn b/chrome/android/javatests/BUILD. diff --git a/chrome/android/junit/BUILD.gn b/chrome/android/junit/BUILD.gn --- a/chrome/android/junit/BUILD.gn +++ b/chrome/android/junit/BUILD.gn -@@ -43,12 +43,6 @@ if (is_android) { +@@ -47,12 +47,6 @@ if (is_android) { ] public_deps = [ @@ -515,7 +515,7 @@ diff --git a/chrome/browser/password_manager/android/BUILD.gn b/chrome/browser/p "//base:base_java", "//base:resetters_java", "//base:tasks_java", -@@ -322,8 +319,6 @@ robolectric_binary("password_manager_junit_tests") { +@@ -324,8 +321,6 @@ robolectric_binary("password_manager_junit_tests") { ":test_support_java", ":unified_password_manager_proto_java", ":utils_java", @@ -648,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; -@@ -490,13 +488,6 @@ public class PasswordManagerHelper { +@@ -489,13 +487,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). @@ -694,7 +694,7 @@ diff --git a/chrome/browser/push_messaging/push_messaging_service_factory.cc b/c PushMessagingServiceImpl* PushMessagingServiceFactory::GetForProfile( content::BrowserContext* context) { - // The Push API is not currently supported in incognito mode. -- // See https://crbug.com/401439. +- // See https://crbug.com/41124656. - if (context->IsOffTheRecord()) - return nullptr; - @@ -707,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 -@@ -133,6 +133,7 @@ NotificationTelemetryService::NotificationTelemetryService( +@@ -127,6 +127,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). @@ -718,7 +718,7 @@ diff --git a/chrome/browser/safe_browsing/notification_telemetry/notification_te diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -129,8 +129,6 @@ static_library("ui") { +@@ -128,8 +128,6 @@ static_library("ui") { "webui/flags/flags_ui.h", "webui/flags/flags_ui_handler.cc", "webui/flags/flags_ui_handler.h", @@ -727,7 +727,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn "webui/history_clusters/history_clusters_internals_ui_config.cc", "webui/history_clusters/history_clusters_internals_ui_config.h", "webui/interstitials/interstitial_ui.cc", -@@ -472,7 +470,6 @@ static_library("ui") { +@@ -498,7 +496,6 @@ static_library("ui") { "//components/feedback/content", "//components/feedback/redaction_tool", "//components/find_in_page", @@ -738,7 +738,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/android/omnibox/BUILD.gn --- a/chrome/browser/ui/android/omnibox/BUILD.gn +++ b/chrome/browser/ui/android/omnibox/BUILD.gn -@@ -176,8 +176,6 @@ android_library("java") { +@@ -186,8 +186,6 @@ android_library("java") { deps = [ ":java_resources", @@ -747,7 +747,7 @@ diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/andr "//base:base_java", "//base/version_info/android:version_constants_java", "//build/android:build_java", -@@ -521,8 +519,6 @@ robolectric_library("junit") { +@@ -538,8 +536,6 @@ robolectric_library("junit") { deps = [ ":java", ":java_resources", @@ -775,10 +775,10 @@ 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 -@@ -257,7 +257,6 @@ void RegisterChromeWebUIConfigs() { - map.AddWebUIConfig(std::make_unique()); +@@ -260,7 +260,6 @@ void RegisterChromeWebUIConfigs() { map.AddWebUIConfig(std::make_unique()); map.AddWebUIConfig(std::make_unique()); + map.AddWebUIConfig(std::make_unique()); - map.AddWebUIConfig(std::make_unique()); map.AddWebUIConfig( std::make_unique< @@ -1014,7 +1014,7 @@ diff --git a/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/w 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 -@@ -18,13 +18,6 @@ import androidx.credentials.Credential; +@@ -18,12 +18,6 @@ import androidx.credentials.Credential; import androidx.credentials.GetDigitalCredentialOption; import androidx.credentials.provider.PendingIntentHandler; @@ -1023,12 +1023,11 @@ diff --git a/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/w -import com.google.android.gms.identitycredentials.GetCredentialRequest; -import com.google.android.gms.identitycredentials.IdentityCredentialClient; -import com.google.android.gms.identitycredentials.IdentityCredentialManager; --import com.google.android.gms.identitycredentials.IntentHelper; - import org.json.JSONException; import org.json.JSONObject; -@@ -57,79 +50,7 @@ public class DigitalCredentialsPresentationDelegate { +@@ -54,85 +48,7 @@ public class DigitalCredentialsPresentationDelegate { Activity window = windowAndroid.getActivity().get(); if (window == null) return Promise.rejected(); @@ -1051,7 +1050,13 @@ diff --git a/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/w - protected void onReceiveResult(int code, Bundle data) { - Log.d(TAG, "Received a response"); - try { -- result.fulfill(extractDigitalCredentialFromResponseBundle(code, data)); +- var credential = extractDigitalCredentialFromResponseBundle(code, data); +- if (credential == null) { +- result.reject( +- new Exception("Response does not contain a credential")); +- } else { +- result.fulfill(credential); +- } - } catch (Exception e) { - Log.e(TAG, e.toString()); - @@ -1109,28 +1114,14 @@ diff --git a/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/w } /** -@@ -149,7 +70,7 @@ public class DigitalCredentialsPresentationDelegate { +@@ -146,6 +62,7 @@ public class DigitalCredentialsPresentationDelegate { @VisibleForTesting - public static DigitalCredential extractDigitalCredentialFromResponseBundle( - int code, Bundle bundle) -- throws JSONException, NullPointerException, GetCredentialException { -+ throws JSONException, NullPointerException { - // Try to read the new format. - var digitalCredential = extractDigitalCredentialFromModernResponse(bundle); - if (digitalCredential != null) { -@@ -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. - -- // Fallback to the legacy format. -- var response = IntentHelper.extractGetCredentialResponse(code, bundle); -- var token = response.getCredential().getData().getByteArray(BUNDLE_KEY_IDENTITY_TOKEN); -- -- return new DigitalCredential(null, Objects.requireNonNull(token)); -+ throw new NullPointerException(); - } - - /** + public static @Nullable DigitalCredential extractDigitalCredentialFromResponseBundle( + int code, Bundle bundle) throws JSONException { ++ if ((true)) throw new JSONException(); + Intent intent = IntentUtils.safeGetParcelable(bundle, BUNDLE_KEY_PROVIDER_DATA); + if (intent == null) { + return null; 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 @@ -1146,7 +1137,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 -@@ -2912,14 +2912,6 @@ public class ExternalNavigationHandler { +@@ -2945,14 +2945,6 @@ public class ExternalNavigationHandler implements ExternalNavigationHelper { * @return Whether the given intent is going to open an Instant App. */ private static boolean isIntentToInstantApp(Intent intent) { @@ -1493,7 +1484,7 @@ diff --git a/components/gcm_driver/instance_id/android/java/src/org/chromium/com diff --git a/components/installedapp/android/java/src/org/chromium/components/installedapp/InstalledAppProviderImpl.java b/components/installedapp/android/java/src/org/chromium/components/installedapp/InstalledAppProviderImpl.java --- a/components/installedapp/android/java/src/org/chromium/components/installedapp/InstalledAppProviderImpl.java +++ b/components/installedapp/android/java/src/org/chromium/components/installedapp/InstalledAppProviderImpl.java -@@ -88,7 +88,7 @@ public class InstalledAppProviderImpl implements InstalledAppProvider { +@@ -65,7 +65,7 @@ public class InstalledAppProviderImpl implements InstalledAppProvider { // The maximum number of related apps declared in the Web Manifest taken into account when // determining whether the related app is installed and mutually related. @@ -1533,7 +1524,7 @@ diff --git a/components/media_router/browser/android/BUILD.gn b/components/media "//base:base_java", "//base:base_java_test_support", "//components/browser_ui/media/android:java", -@@ -149,10 +142,6 @@ robolectric_library("junit") { +@@ -148,10 +141,6 @@ robolectric_library("junit") { deps = [ ":java", ":test_support_java", @@ -2439,10 +2430,10 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo -import com.google.android.gms.cast.CastMediaControlIntent; - + import org.chromium.base.ResettersForTesting; import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; - import org.chromium.components.media_router.MediaSource; -@@ -97,13 +95,7 @@ public class CastMediaSource implements MediaSource { +@@ -110,13 +108,7 @@ public class CastMediaSource implements MediaSource { */ @Override public @Nullable MediaRouteSelector buildRouteSelector() { @@ -2944,7 +2935,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo import org.chromium.base.ContextUtils; import org.chromium.base.Log; import org.chromium.build.annotations.NullMarked; -@@ -84,9 +82,7 @@ public class RemotingMediaSource implements MediaSource { +@@ -83,9 +81,7 @@ public class RemotingMediaSource implements MediaSource { */ @Override public MediaRouteSelector buildRouteSelector() { @@ -2955,7 +2946,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo } /** -@@ -116,7 +112,7 @@ public class RemotingMediaSource implements MediaSource { +@@ -115,7 +111,7 @@ public class RemotingMediaSource implements MediaSource { sApplicationId = (customAppId != null && !customAppId.isEmpty()) ? customAppId @@ -3079,7 +3070,7 @@ diff --git a/components/omnibox/common/android/java/src/org/chromium/components/ import org.chromium.base.BaseSwitches; import org.chromium.base.CommandLine; import org.chromium.base.ContextUtils; -@@ -198,12 +196,6 @@ public class OmniboxFeatures { +@@ -203,12 +201,6 @@ public class OmniboxFeatures { "geolocation_request_min_update_interval_millis", (int) (9 * DateUtils.MINUTE_IN_MILLIS)); @@ -3925,7 +3916,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 -@@ -165,10 +165,6 @@ android_library("content_full_java") { +@@ -160,10 +160,6 @@ android_library("content_full_java") { ":content_java_resources", ":content_main_dex_java", ":content_util_java", @@ -3939,7 +3930,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 -@@ -3824,10 +3824,6 @@ if (is_android) { +@@ -3839,10 +3839,6 @@ if (is_android) { testonly = true sources = content_java_sources_needing_jni deps = [ @@ -3953,7 +3944,7 @@ diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn diff --git a/device/BUILD.gn b/device/BUILD.gn --- a/device/BUILD.gn +++ b/device/BUILD.gn -@@ -528,9 +528,6 @@ if (is_android) { +@@ -525,9 +525,6 @@ if (is_android) { "vr/public/junit/src/org/chromium/device/vr/XrFeatureStatusTest.java", ] deps = [ @@ -3966,7 +3957,7 @@ diff --git a/device/BUILD.gn b/device/BUILD.gn diff --git a/services/BUILD.gn b/services/BUILD.gn --- a/services/BUILD.gn +++ b/services/BUILD.gn -@@ -165,12 +165,6 @@ if (is_android) { +@@ -166,12 +166,6 @@ if (is_android) { "shape_detection/android/junit/src/org/chromium/shape_detection/BitmapUtilsTest.java", ] deps = [ @@ -3979,7 +3970,7 @@ diff --git a/services/BUILD.gn b/services/BUILD.gn "//base:base_java", "//base:base_java_test_support", "//base:base_junit_test_support", -@@ -204,10 +198,6 @@ if (is_android) { +@@ -210,10 +204,6 @@ if (is_android) { "shape_detection/android/javatests/src/org/chromium/shape_detection/TextDetectionImplTest.java", ] deps = [ @@ -4933,7 +4924,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" -@@ -2013,28 +1166,6 @@ template("define_autorolled_targets") { +@@ -2015,28 +1168,6 @@ template("define_autorolled_targets") { deps = [ "//third_party/android_deps:org_jetbrains_kotlinx_kotlinx_coroutines_core_jvm_java" ] } @@ -5015,7 +5006,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") { +@@ -166,7 +166,7 @@ template("androidx_java_prebuilt") { } } @@ -5024,7 +5015,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") { +@@ -183,6 +183,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 e4ed780e..2264501e 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 -@@ -594,7 +594,7 @@ void ProfileNetworkContextService::ConfigureNetworkContextParams( +@@ -613,7 +613,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 851dc70a..212b1aec 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 -@@ -1236,9 +1236,6 @@ public class KeyboardShortcuts { +@@ -1230,9 +1230,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 -@@ -2680,15 +2680,6 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -2739,15 +2739,6 @@ public abstract class ChromeActivity extends AsyncInitializationActivity final Tab currentTab = getActivityTab(); @@ -58,7 +58,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java --- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java -@@ -144,6 +144,7 @@ public class AutofillPaymentMethodsFragment extends ChromeBaseSettingsFragment +@@ -148,6 +148,7 @@ public class AutofillPaymentMethodsFragment extends ChromeBaseSettingsFragment MenuItem help = menu.add(Menu.NONE, R.id.menu_id_targeted_help, Menu.NONE, R.string.menu_help); help.setIcon(R.drawable.ic_help_24dp); @@ -69,7 +69,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settin diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillProfilesFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillProfilesFragment.java --- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillProfilesFragment.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillProfilesFragment.java -@@ -175,6 +175,7 @@ public class AutofillProfilesFragment extends ChromeBaseSettingsFragment +@@ -222,6 +222,7 @@ public class AutofillProfilesFragment extends ChromeBaseSettingsFragment MenuItem help = menu.add(Menu.NONE, R.id.menu_id_targeted_help, Menu.NONE, R.string.menu_help); help.setIcon(R.drawable.ic_help_24dp); @@ -80,7 +80,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settin diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java --- a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java -@@ -905,6 +905,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -907,6 +907,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment TraceEventVectorDrawableCompat.create( getResources(), R.drawable.ic_help_24dp, getActivity().getTheme())); help.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); @@ -91,7 +91,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java -@@ -1266,7 +1266,6 @@ public abstract class BaseCustomTabActivity extends ChromeActivity { +@@ -1267,7 +1267,6 @@ public abstract class BaseCustomTabActivity extends ChromeActivity { // Disable creating new tabs, bookmark, print, help, focus_url, etc. if (id == R.id.focus_url_bar || id == R.id.all_bookmarks_menu_id @@ -102,7 +102,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Base diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -601,6 +601,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -603,6 +603,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment help.setIcon( TraceEventVectorDrawableCompat.create( getResources(), R.drawable.ic_help_24dp, getActivity().getTheme())); @@ -113,7 +113,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java -@@ -977,6 +977,7 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -1015,6 +1015,7 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity help.setIcon( TraceEventVectorDrawableCompat.create( getResources(), R.drawable.ic_help_24dp, getTheme())); @@ -124,7 +124,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/GoogleServicesSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/GoogleServicesSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/GoogleServicesSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/GoogleServicesSettings.java -@@ -176,6 +176,7 @@ public class GoogleServicesSettings extends ChromeBaseSettingsFragment +@@ -177,6 +177,7 @@ public class GoogleServicesSettings extends ChromeBaseSettingsFragment MenuItem help = menu.add(Menu.NONE, R.id.menu_id_targeted_help, Menu.NONE, R.string.menu_help); help.setIcon(R.drawable.ic_help_24dp); @@ -135,7 +135,7 @@ 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 -@@ -290,6 +290,7 @@ public class ManageSyncSettings extends ChromeBaseSettingsFragment +@@ -291,6 +291,7 @@ public class ManageSyncSettings extends ChromeBaseSettingsFragment MenuItem help = menu.add(Menu.NONE, R.id.menu_id_targeted_help, Menu.NONE, R.string.menu_help); help.setIcon(R.drawable.ic_help_24dp); @@ -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 -@@ -432,7 +432,7 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm +@@ -466,7 +466,7 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm } // Help @@ -169,7 +169,7 @@ diff --git a/chrome/browser/autofill/android/java/res/menu/prefeditor_editor_men diff --git a/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/options/AutofillOptionsFragment.java b/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/options/AutofillOptionsFragment.java --- a/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/options/AutofillOptionsFragment.java +++ b/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/options/AutofillOptionsFragment.java -@@ -134,6 +134,7 @@ public class AutofillOptionsFragment extends ChromeBaseSettingsFragment { +@@ -154,6 +154,7 @@ public class AutofillOptionsFragment extends ChromeBaseSettingsFragment { MenuItem help = menu.add(Menu.NONE, R.id.menu_id_targeted_help, Menu.NONE, R.string.menu_help); help.setIcon(R.drawable.ic_help_24dp); @@ -213,7 +213,7 @@ diff --git a/chrome/browser/safe_browsing/android/java/src/org/chromium/chrome/b diff --git a/chrome/browser/ui/chrome_pages.cc b/chrome/browser/ui/chrome_pages.cc --- a/chrome/browser/ui/chrome_pages.cc +++ b/chrome/browser/ui/chrome_pages.cc -@@ -146,6 +146,15 @@ void LaunchReleaseNotesImpl(Profile* profile, apps::LaunchSource source) { +@@ -145,6 +145,15 @@ void LaunchReleaseNotesImpl(Profile* profile, apps::LaunchSource source) { // shown in the last active browser. If there is no such browser, a new browser // is created. void ShowHelpImpl(Browser* browser, Profile* profile, HelpSource source) { diff --git a/build/patches/Remove-segmentation-platform.patch b/build/patches/Remove-segmentation-platform.patch index 4e7c45b6..da9bde11 100644 --- a/build/patches/Remove-segmentation-platform.patch +++ b/build/patches/Remove-segmentation-platform.patch @@ -47,9 +47,9 @@ 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 -@@ -243,4 +243,7 @@ constexpr base::FeatureParam kWindowTimeMinutes{&kAndroidTipsNotifications, - - BASE_FEATURE(kAndroidTipsNotificationsV2, base::FEATURE_DISABLED_BY_DEFAULT); +@@ -282,4 +282,7 @@ constexpr base::FeatureParam kEnableRecentTabsTip{ + &kAndroidTipsNotificationsV2, "enable_recent_tabs_tip", + /*default_value=*/true}; +SET_CROMITE_FEATURE_DISABLED(kSegmentationPlatformFeature); +SET_CROMITE_FEATURE_DISABLED(kSegmentationPlatformFeedSegmentFeature); diff --git a/build/patches/Remove-support-for-device-memory-and-cpu-recovery.patch b/build/patches/Remove-support-for-device-memory-and-cpu-recovery.patch index 733cdba5..608d0dfd 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 @@ -245,7 +245,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 -@@ -326,7 +326,7 @@ MemoryInfo* WindowPerformance::memory(ScriptState* script_state) const { +@@ -314,7 +314,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 04ee356a..f3e8ccfa 100644 --- a/build/patches/Remove-voice-recognition-integration.patch +++ b/build/patches/Remove-voice-recognition-integration.patch @@ -5,32 +5,32 @@ Subject: Remove voice recognition integration License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- .../BaseCustomTabRootUiCoordinator.java | 2 +- - .../chrome/browser/ntp/NewTabPage.java | 29 +------- + .../chrome/browser/ntp/NewTabPage.java | 30 +---------- .../browser/ntp/search/SearchBoxMediator.java | 1 + .../browser/searchwidget/SearchActivity.java | 3 +- .../SearchActivityLocationBarLayout.java | 8 --- .../tabbed_mode/TabbedRootUiCoordinator.java | 2 +- .../browser/toolbar/ToolbarManager.java | 5 -- - .../ui/AdaptiveToolbarUiCoordinator.java | 48 ------------- - .../chrome/browser/ui/RootUiCoordinator.java | 18 ----- + .../ui/AdaptiveToolbarUiCoordinator.java | 50 ------------------- + .../chrome/browser/ui/RootUiCoordinator.java | 18 ------- chrome/browser/ui/android/omnibox/BUILD.gn | 1 - - .../chrome/browser/omnibox/LocationBar.java | 6 -- - .../omnibox/LocationBarCoordinator.java | 14 +--- - .../browser/omnibox/LocationBarLayout.java | 6 -- - .../browser/omnibox/LocationBarMediator.java | 71 ++----------------- + .../chrome/browser/omnibox/LocationBar.java | 6 --- + .../omnibox/LocationBarCoordinator.java | 14 +----- + .../browser/omnibox/LocationBarLayout.java | 6 --- + .../browser/omnibox/LocationBarMediator.java | 48 +----------------- .../chrome/browser/omnibox/OmniboxStub.java | 8 --- - .../suggestions/AutocompleteController.java | 25 ------- + .../suggestions/AutocompleteController.java | 25 ---------- .../suggestions/AutocompleteCoordinator.java | 8 --- - .../suggestions/AutocompleteMediator.java | 10 --- + .../suggestions/AutocompleteMediator.java | 9 ---- .../omnibox/voice/VoiceRecognitionUtil.java | 1 + chrome/browser/ui/android/toolbar/BUILD.gn | 1 - .../toolbar/VoiceToolbarButtonController.java | 1 + - 21 files changed, 13 insertions(+), 255 deletions(-) + 21 files changed, 11 insertions(+), 236 deletions(-) diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabRootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabRootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabRootUiCoordinator.java -@@ -519,7 +519,7 @@ public class BaseCustomTabRootUiCoordinator extends RootUiCoordinator { +@@ -521,7 +521,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 -@@ -80,7 +80,6 @@ import org.chromium.chrome.browser.ntp_customization.NtpCustomizationUtils.NtpBa +@@ -75,7 +75,6 @@ import org.chromium.chrome.browser.ntp_customization.NtpCustomizationUtils.NtpBa import org.chromium.chrome.browser.ntp_customization.theme.chrome_colors.NtpThemeColorInfo; import org.chromium.chrome.browser.ntp_customization.theme.upload_image.BackgroundImageInfo; import org.chromium.chrome.browser.omnibox.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; -@@ -148,7 +147,6 @@ public class NewTabPage +@@ -145,7 +144,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"; -@@ -183,7 +181,6 @@ public class NewTabPage +@@ -180,7 +178,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; -@@ -401,8 +398,7 @@ public class NewTabPage +@@ -297,8 +294,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 -@@ -413,14 +409,7 @@ public class NewTabPage +@@ -309,15 +305,7 @@ public class NewTabPage if (mIsDestroyed) return; FeedReliabilityLogger feedReliabilityLogger = mFeedSurfaceProvider.getReliabilityLogger(); @@ -85,14 +85,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. - feedReliabilityLogger.onVoiceSearch(); - } - mVoiceRecognitionHandler.startVoiceRecognition( -- VoiceRecognitionHandler.VoiceInteractionSource.NTP); +- VoiceRecognitionHandler.VoiceInteractionSource.NTP, +- CallbackUtils.emptyRunnable()); - mTracker.notifyEvent(EventConstants.NTP_VOICE_SEARCH_BUTTON_CLICKED); - } else if (mOmniboxStub != null) { + if (mOmniboxStub != null) { if (feedReliabilityLogger != null) { feedReliabilityLogger.onOmniboxFocused(); } -@@ -1093,12 +1082,6 @@ public class NewTabPage +@@ -1012,12 +1000,6 @@ public class NewTabPage mOmniboxStub.addUrlFocusChangeListener(feedReliabilityLogger); } } @@ -105,7 +106,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. } /** -@@ -1117,11 +1100,6 @@ public class NewTabPage +@@ -1036,11 +1018,6 @@ public class NewTabPage } } @@ -117,7 +118,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); -@@ -1206,9 +1184,6 @@ public class NewTabPage +@@ -1131,9 +1108,6 @@ public class NewTabPage mOmniboxStub.removeUrlFocusChangeListener(feedReliabilityLogger); } mFeedSurfaceProvider.destroy(); @@ -130,7 +131,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/search/SearchBoxMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/search/SearchBoxMediator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/search/SearchBoxMediator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/search/SearchBoxMediator.java -@@ -91,6 +91,7 @@ class SearchBoxMediator implements DestroyObserver { +@@ -103,6 +103,7 @@ class SearchBoxMediator implements DestroyObserver { /** Called to add a click listener for the voice search button. */ void addVoiceSearchButtonClickListener(OnClickListener listener) { @@ -149,7 +150,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se import org.chromium.chrome.browser.ui.edge_to_edge.NoOpTopInsetProvider; import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarManageable; -@@ -337,7 +336,7 @@ public class SearchActivity extends AsyncInitializationActivity +@@ -338,7 +337,7 @@ public class SearchActivity extends AsyncInitializationActivity this::bringTabGroupToFront, /*omniboxUma*/ (url, transition, isNtp) -> {}, /* bookmarkState= */ (url) -> false, @@ -161,7 +162,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivityLocationBarLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivityLocationBarLayout.java --- a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivityLocationBarLayout.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivityLocationBarLayout.java -@@ -26,7 +26,6 @@ import org.chromium.chrome.browser.omnibox.UrlBarData; +@@ -24,7 +24,6 @@ import org.chromium.chrome.browser.omnibox.UrlBarCoordinator; import org.chromium.chrome.browser.omnibox.status.StatusCoordinator; import org.chromium.chrome.browser.omnibox.styles.OmniboxResourceProvider; import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteCoordinator; @@ -169,7 +170,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se import org.chromium.chrome.browser.toolbar.top.ToolbarPhone; import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityExtras.IntentOrigin; import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityExtras.SearchType; -@@ -214,13 +213,6 @@ public class SearchActivityLocationBarLayout extends LocationBarLayout { +@@ -202,13 +201,6 @@ public class SearchActivityLocationBarLayout extends LocationBarLayout { return false; } @@ -186,7 +187,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 -@@ -1107,7 +1107,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1139,7 +1139,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { mTabBookmarkerSupplier, mBookmarkModelSupplier, mActivityTabProvider, @@ -198,15 +199,15 @@ 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 -@@ -121,7 +121,6 @@ import org.chromium.chrome.browser.omnibox.OmniboxStub; - import org.chromium.chrome.browser.omnibox.OverrideUrlLoadingDelegateImpl; +@@ -122,7 +122,6 @@ import org.chromium.chrome.browser.omnibox.OverrideUrlLoadingDelegateImpl; import org.chromium.chrome.browser.omnibox.UrlFocusChangeListener; import org.chromium.chrome.browser.omnibox.suggestions.OmniboxSuggestionsDropdownScrollListener; + import org.chromium.chrome.browser.omnibox.suggestions.action.OmniboxActionDelegateImpl; -import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; import org.chromium.chrome.browser.page_info.ChromePageInfo; import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations; import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; -@@ -3302,10 +3301,6 @@ public class ToolbarManager +@@ -3283,10 +3282,6 @@ public class ToolbarManager return mLocationBar.getOmniboxStub(); } @@ -220,7 +221,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveToolbarUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveToolbarUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveToolbarUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveToolbarUiCoordinator.java -@@ -29,8 +29,6 @@ import org.chromium.chrome.browser.dom_distiller.ReaderModeIphController; +@@ -32,8 +32,6 @@ import org.chromium.chrome.browser.dom_distiller.ReaderModeIphController; import org.chromium.chrome.browser.dom_distiller.ReaderModeToolbarButtonController; import org.chromium.chrome.browser.identity_disc.IdentityDiscController; import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher; @@ -229,7 +230,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveTool import org.chromium.chrome.browser.price_history.PriceHistoryBottomSheetContentCoordinator; import org.chromium.chrome.browser.price_insights.PriceInsightsButtonController; import org.chromium.chrome.browser.price_tracking.CurrentTabPriceTrackingStateSupplier; -@@ -43,7 +41,6 @@ import org.chromium.chrome.browser.segmentation_platform.ContextualPageActionCon +@@ -46,7 +44,6 @@ import org.chromium.chrome.browser.segmentation_platform.ContextualPageActionCon import org.chromium.chrome.browser.share.ShareButtonController; import org.chromium.chrome.browser.share.ShareDelegate; import org.chromium.chrome.browser.tabmodel.TabModelSelector; @@ -237,7 +238,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveTool import org.chromium.chrome.browser.toolbar.adaptive.AdaptiveButtonActionMenuCoordinator; import org.chromium.chrome.browser.toolbar.adaptive.AdaptiveToolbarBehavior; import org.chromium.chrome.browser.toolbar.adaptive.AdaptiveToolbarButtonController; -@@ -76,7 +73,6 @@ public class AdaptiveToolbarUiCoordinator { +@@ -84,7 +81,6 @@ public class AdaptiveToolbarUiCoordinator { private CurrentTabPriceTrackingStateSupplier mCurrentTabPriceTrackingStateSupplier; private ContextualPageActionController mContextualPageActionController; private AdaptiveToolbarButtonController mAdaptiveToolbarButtonController; @@ -245,7 +246,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveTool private BottomSheetController mBottomSheetController; private MonotonicObservableSupplier mProfileSupplier; private Supplier mScrimSupplier; -@@ -249,45 +245,6 @@ public class AdaptiveToolbarUiCoordinator { +@@ -268,47 +264,6 @@ public class AdaptiveToolbarUiCoordinator { } } @@ -256,7 +257,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveTool - * @param trackerSupplier Supplies {@link Tracker} object. - */ - public void addVoiceSearchAdaptiveButton( -- Supplier voiceRecognitionHandler, +- Supplier<@Nullable VoiceRecognitionHandler> voiceRecognitionHandler, - Supplier<@Nullable Tracker> trackerSupplier) { - var voiceSearchDelegate = - new VoiceToolbarButtonController.VoiceSearchDelegate() { @@ -271,7 +272,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveTool - if (voiceRecognitionHandler.get() == null) return; - voiceRecognitionHandler - .get() -- .startVoiceRecognition(VoiceInteractionSource.TOOLBAR); +- .startVoiceRecognition( +- VoiceInteractionSource.TOOLBAR, +- CallbackUtils.emptyRunnable()); - } - }; - mVoiceToolbarButtonController = @@ -291,7 +294,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveTool /** * Returns the list of {@link ButtonDataProvider}. The order in which the providers determines * which one will be shown first. -@@ -301,11 +258,6 @@ public class AdaptiveToolbarUiCoordinator { +@@ -322,11 +277,6 @@ public class AdaptiveToolbarUiCoordinator { return mContextualPageActionController; } @@ -306,23 +309,23 @@ 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 -@@ -125,7 +125,6 @@ import org.chromium.chrome.browser.ntp_customization.edge_to_edge.TopInsetCoordi - import org.chromium.chrome.browser.omnibox.OmniboxActionDelegateImpl; +@@ -126,7 +126,6 @@ import org.chromium.chrome.browser.ntp_customization.edge_to_edge.TopInsetCoordi import org.chromium.chrome.browser.omnibox.OmniboxChipManager; import org.chromium.chrome.browser.omnibox.geo.GeolocationHeader; + import org.chromium.chrome.browser.omnibox.suggestions.action.OmniboxActionDelegateImpl; -import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; import org.chromium.chrome.browser.open_in_app.OpenInAppEntryPoint; import org.chromium.chrome.browser.open_in_app.OpenInAppMenuItemProvider; - import org.chromium.chrome.browser.open_in_app.OpenInAppUtils; -@@ -354,7 +353,6 @@ public class RootUiCoordinator - private LayoutManagerImpl mLayoutManager; + import org.chromium.chrome.browser.paint_preview.DemoPaintPreview; +@@ -360,7 +359,6 @@ public class RootUiCoordinator + private @Nullable LayoutManagerImpl mLayoutManager; protected OneshotSupplier mIntentMetadataOneshotSupplier; protected OneshotSupplierImpl mPromoShownOneshotSupplier = new OneshotSupplierImpl<>(); -- @Nullable private VoiceRecognitionHandler.Observer mMicStateObserver; - private MediaCaptureOverlayController mCaptureController; +- private VoiceRecognitionHandler.@Nullable Observer mMicStateObserver; + private @Nullable MediaCaptureOverlayController mCaptureController; private @Nullable ScrollCaptureManager mScrollCaptureManager; protected final ActivityLifecycleDispatcher mActivityLifecycleDispatcher; -@@ -836,9 +834,6 @@ public class RootUiCoordinator +@@ -845,9 +843,6 @@ public class RootUiCoordinator } if (mToolbarManager != null) { @@ -332,7 +335,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi mToolbarManager.destroy(); mToolbarManager = null; } -@@ -1900,23 +1895,10 @@ public class RootUiCoordinator +@@ -1933,23 +1928,10 @@ public class RootUiCoordinator if (!mSupportsAppMenuSupplier.getAsBoolean()) { mToolbarManager.getToolbar().disableMenuButton(); } @@ -348,7 +351,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi } } -- protected void addVoiceSearchAdaptiveButton(Supplier trackerSupplier) { +- protected void addVoiceSearchAdaptiveButton(Supplier<@Nullable Tracker> trackerSupplier) { - mAdaptiveToolbarUiCoordinator.addVoiceSearchAdaptiveButton( - () -> mToolbarManager.getVoiceRecognitionHandler(), trackerSupplier); - } @@ -359,7 +362,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 -@@ -166,7 +166,6 @@ android_library("java") { +@@ -176,7 +176,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", @@ -378,7 +381,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.tab.Tab; import org.chromium.components.browser_ui.accessibility.PageZoomUtils; -@@ -77,11 +76,6 @@ public interface LocationBar { +@@ -74,11 +73,6 @@ public interface LocationBar { */ View getSecurityIconView(); @@ -393,15 +396,15 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java -@@ -62,7 +62,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.OmniboxLoadUrlParams; - import org.chromium.chrome.browser.omnibox.suggestions.OmniboxSuggestionsDropdownScrollListener; +@@ -65,7 +65,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.OmniboxSuggestionsDropdow import org.chromium.chrome.browser.omnibox.suggestions.OmniboxSuggestionsVisualState; + import org.chromium.chrome.browser.omnibox.suggestions.action.OmniboxActionDelegateImpl; import org.chromium.chrome.browser.omnibox.suggestions.basic.BasicSuggestionProcessor.BookmarkState; -import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; import org.chromium.chrome.browser.share.ShareDelegate; -@@ -642,12 +641,6 @@ public class LocationBarCoordinator +@@ -628,12 +627,6 @@ public class LocationBarCoordinator return mLocationBarLayout.getSecurityIconView(); } @@ -414,7 +417,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow @Override public @Nullable OmniboxStub getOmniboxStub() { return mLocationBarMediator; -@@ -804,7 +797,7 @@ public class LocationBarCoordinator +@@ -786,7 +779,7 @@ public class LocationBarCoordinator public void startAutocompletePrefetch() { if (!mNativeInitialized) return; mAutocompleteCoordinator.prefetchZeroSuggestResults( @@ -423,7 +426,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow } /** -@@ -1016,11 +1009,6 @@ public class LocationBarCoordinator +@@ -1028,11 +1021,6 @@ public class LocationBarCoordinator // End tablet-specific methods. @@ -446,7 +449,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; -@@ -511,11 +510,6 @@ public class LocationBarLayout extends ConstraintLayout { +@@ -492,11 +491,6 @@ public class LocationBarLayout extends ConstraintLayout { mSearchEngineUtils = searchEngineUtils; } @@ -461,7 +464,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 -@@ -75,7 +75,6 @@ import org.chromium.chrome.browser.omnibox.status.StatusCoordinator; +@@ -76,7 +76,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,16 +472,15 @@ 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; -@@ -128,8 +127,6 @@ import java.util.function.Supplier; +@@ -129,7 +128,6 @@ import java.util.function.Supplier; class LocationBarMediator implements LocationBarDataProvider.Observer, OmniboxStub, -- VoiceRecognitionHandler.Delegate, - VoiceRecognitionHandler.Observer, UrlBarDelegate, OnKeyListener, FuseboxAttachmentChangeListener, -@@ -189,7 +186,6 @@ class LocationBarMediator +@@ -189,7 +187,6 @@ class LocationBarMediator }; private final LocationBarLayout mLocationBarLayout; @@ -486,16 +488,26 @@ 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; -@@ -291,8 +287,6 @@ class LocationBarMediator - mEmbedderUiOverrides = embedderUiOverrides; - mOverrideUrlLoadingDelegate = overrideUrlLoadingDelegate; - mLocaleManager = localeManager; -- mVoiceRecognitionHandler = new VoiceRecognitionHandler(this, profileSupplier); -- mVoiceRecognitionHandler.addObserver(this); - mProfileSupplier = profileSupplier; - mProfileSupplier.addObserver(mCallbackController.makeCancelable(this::setProfile)); - mTemplateUrlServiceSupplier = templateUrlServiceSupplier; -@@ -393,9 +387,6 @@ class LocationBarMediator +@@ -372,18 +369,6 @@ class LocationBarMediator + mAutocompleteCoordinator = autocompleteCoordinator; + mStatusCoordinator = statusCoordinator; + +- // Set up VoiceRecognitionHandler once mAutocompleteCoordinator is set. +- if (mVoiceRecognitionHandler == null) { +- mVoiceRecognitionHandler = +- new VoiceRecognitionHandler( +- this, +- mLocationBarDataProvider, +- mAutocompleteCoordinator, +- mWindowAndroid, +- mProfileSupplier); +- mVoiceRecognitionHandler.addObserver(this); +- } +- + updateShouldAnimateIconChanges(); + updateButtonVisibility(); + updateSearchEngineStatusIconShownState(); +@@ -402,9 +387,6 @@ class LocationBarMediator mStatusCoordinator = null; mAutocompleteCoordinator = null; mUrlCoordinator = null; @@ -503,9 +515,9 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow - mVoiceRecognitionHandler.destroy(); - mVoiceRecognitionHandler = null; mLocationBarDataProvider.removeObserver(this); - mDeferredNativeRunnables.clear(); mUrlFocusChangeListeners.clear(); -@@ -535,11 +526,6 @@ class LocationBarMediator + if (mPageZoomIndicatorCoordinator != null) { +@@ -532,11 +514,6 @@ class LocationBarMediator mLocationBarLayout.setUnfocusedWidth(unfocusedWidth); } @@ -517,18 +529,18 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow /* package */ void setLensControllerForTesting(LensController lensController) { mLensController = lensController; } -@@ -894,10 +880,6 @@ class LocationBarMediator +@@ -895,10 +872,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); - - RecordUserAction.record("MobileOmniboxVoiceSearch"); - mVoiceRecognitionHandler.startVoiceRecognition( -- mLocationBarLayout.getVoiceRecognitionSource()); +- mLocationBarLayout.getVoiceRecognitionSource(), CallbackUtils.emptyRunnable()); } /** package */ -@@ -1669,10 +1651,7 @@ class LocationBarMediator +@@ -1699,10 +1672,7 @@ class LocationBarMediator if (mCurrentInput != null && !mCurrentInput.isConventionalRequestType()) return false; if (isUrlBarFocusedWithUserInput()) return false; @@ -540,7 +552,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow return false; } boolean isToolbarMicEnabled = mIsToolbarMicEnabledSupplier.getAsBoolean(); -@@ -1690,6 +1669,7 @@ class LocationBarMediator +@@ -1720,6 +1690,7 @@ class LocationBarMediator @VisibleForTesting boolean shouldShowLensButton() { @@ -548,8 +560,8 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow if (mCurrentInput != null && !mCurrentInput.isConventionalRequestType()) return false; if (isUrlBarFocusedWithUserInput()) return false; -@@ -1966,11 +1946,6 @@ class LocationBarMediator - refreshAutocompleteForCurrentInput(); +@@ -1983,11 +1954,6 @@ class LocationBarMediator + mUrlCoordinator.clearFocus(); } - @Override @@ -560,63 +572,19 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow @Override public void addUrlFocusChangeListener(UrlFocusChangeListener listener) { mUrlFocusChangeListeners.addObserver(listener); -@@ -1987,33 +1962,13 @@ class LocationBarMediator +@@ -2012,16 +1978,6 @@ class LocationBarMediator + .build()); } - /** {@see VoiceRecognitionHandler.Delegate#clearOmniboxFocus()} */ -- @Override -+ // @Override - public void clearOmniboxFocus() { - setUrlBarFocus(null); - } - -- /** {@see VoiceRecognitionHandler.Delegate#notifyVoiceRecognitionCanceled()} */ -- @Override -- public void notifyVoiceRecognitionCanceled() {} -- -- // VoiceRecognitionHandler.Delegate implementation. -- -- /** {@see VoiceRecognitionHandler.Delegate#loadUrlFromVoice(String)} */ -- @Override -- public void loadUrlFromVoice(String url) { -- loadUrl( -- new OmniboxLoadUrlParams.Builder(url, PageTransition.TYPED) -- .setOpenInNewTab(false) -- .build()); -- } -- - @Override - public void onVoiceAvailabilityImpacted() { - updateButtonVisibility(); - } - - /** {@see VoiceRecognitionHandler.Delegate#setSearchQuery(String)} */ -- @Override -+ // @Override - public void setSearchQuery(String query) { - // TODO(crbug.com/477922724): Remove VoiceRecognitionHandler.Delegate and make VRH use the - // OmniboxStub directly. -@@ -2032,24 +1987,6 @@ class LocationBarMediator - mUrlCoordinator.setKeyboardVisibility(true, false); - } - -- /** {@see VoiceRecognitionHandler.Delegate#getLocationBarDataProvider()} */ -- @Override +- /** Getter for LocationBarDataProvider. */ - public LocationBarDataProvider getLocationBarDataProvider() { - return mLocationBarDataProvider; - } -- -- /** {@see VoiceRecognitionHandler.Delegate#getAutocompleteCoordinator()} */ -- @Override -- public AutocompleteCoordinator getAutocompleteCoordinator() { -- return mAutocompleteCoordinator; -- } -- -- /** {@see VoiceRecognitionHandler.Delegate#getWindowAndroid()} */ -- @Override -- public WindowAndroid getWindowAndroid() { -- return mWindowAndroid; -- } - // UrlBarDelegate implementation. @@ -630,9 +598,9 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.lens.LensEntryPoint; -import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; import org.chromium.components.omnibox.AutocompleteInput; + import org.chromium.url.GURL; - /** -@@ -33,13 +32,6 @@ public interface OmniboxStub { +@@ -35,13 +34,6 @@ public interface OmniboxStub { */ boolean isUrlBarFocused(); @@ -649,7 +617,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteController.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteController.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteController.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteController.java -@@ -15,7 +15,6 @@ import org.chromium.build.annotations.NullMarked; +@@ -16,7 +16,6 @@ import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; import org.chromium.chrome.browser.omnibox.OmniboxMetrics; import org.chromium.chrome.browser.omnibox.fusebox.ComposeboxQueryControllerBridge; @@ -657,7 +625,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.preloading.PreloadingFeatureMap; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.components.omnibox.AutocompleteInput; -@@ -355,25 +354,6 @@ public class AutocompleteController { +@@ -360,25 +359,6 @@ public class AutocompleteController { mNativeController, bridge == null ? 0L : bridge.getNativeInstance()); } @@ -683,7 +651,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. -@@ -483,11 +463,6 @@ public class AutocompleteController { +@@ -498,11 +478,6 @@ public class AutocompleteController { long nativeAutocompleteControllerAndroid, long nativeComposeboxQueryControllerBridge); @@ -698,15 +666,15 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java -@@ -34,7 +34,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteController.On - import org.chromium.chrome.browser.omnibox.suggestions.SuggestionListViewBinder.SuggestionListViewHolder; +@@ -36,7 +36,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.SuggestionListViewBinder. + import org.chromium.chrome.browser.omnibox.suggestions.action.OmniboxActionDelegateImpl; import org.chromium.chrome.browser.omnibox.suggestions.base.BaseSuggestionViewBinder; import org.chromium.chrome.browser.omnibox.suggestions.basic.BasicSuggestionProcessor.BookmarkState; -import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.share.ShareDelegate; import org.chromium.chrome.browser.tab.Tab; -@@ -325,13 +324,6 @@ public class AutocompleteCoordinator implements OmniboxSuggestionsVisualState { +@@ -323,13 +322,6 @@ public class AutocompleteCoordinator implements OmniboxSuggestionsVisualState { } } @@ -723,7 +691,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java -@@ -47,7 +47,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteDelegate.Auto +@@ -50,7 +50,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.action.OmniboxActionDeleg import org.chromium.chrome.browser.omnibox.suggestions.action.OmniboxActionFactoryImpl; import org.chromium.chrome.browser.omnibox.suggestions.action.OmniboxActionInSuggest; import org.chromium.chrome.browser.omnibox.suggestions.basic.BasicSuggestionProcessor.BookmarkState; @@ -731,7 +699,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.preloading.PreloadingFeatureMap; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.share.ShareDelegate; -@@ -579,15 +578,6 @@ class AutocompleteMediator +@@ -656,14 +655,6 @@ class AutocompleteMediator mShouldPreventOmniboxAutocomplete = prevent; } @@ -739,9 +707,8 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow - * @see AutocompleteController#onVoiceResults(List) - */ - void onVoiceResults(@Nullable List results) { -- if (mAutocomplete != null) { -- mAutocomplete.onVoiceResults(results); -- } +- if (!isInInputSession()) return; +- mAutocomplete.onVoiceResults(results); - } - /** 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 e39c0d2c..588b5f00 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 -@@ -2982,7 +2982,8 @@ void DocumentLoader::CommitNavigation() { +@@ -3038,7 +3038,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(); } -@@ -2993,6 +2994,7 @@ void DocumentLoader::CommitNavigation() { +@@ -3049,6 +3050,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-LastTabStandingTracker.patch b/build/patches/Restore-LastTabStandingTracker.patch index 35c24de2..4702b22f 100644 --- a/build/patches/Restore-LastTabStandingTracker.patch +++ b/build/patches/Restore-LastTabStandingTracker.patch @@ -27,8 +27,8 @@ 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 -@@ -1507,6 +1507,16 @@ static_library("browser") { - "webdata_services/web_data_service_factory.cc", +@@ -1329,6 +1329,16 @@ static_library("browser") { + "webauthn/webauthn_switches.cc", ] + sources += [ @@ -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 -@@ -141,6 +141,7 @@ +@@ -152,6 +152,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" -@@ -1129,6 +1130,7 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -1148,6 +1149,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 -@@ -53,6 +53,7 @@ +@@ -56,6 +56,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,8 +410,8 @@ 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" -@@ -445,6 +446,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { - HistoryEmbeddingsTabHelper::CreateForWebContents(web_contents); +@@ -463,6 +464,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { + } HttpsOnlyModeTabHelper::CreateForWebContents(web_contents); webapps::InstallableManager::CreateForWebContents(web_contents); + LastTabStandingTrackerTabHelper::CreateForWebContents(web_contents); diff --git a/build/patches/Restore-Search-Ready-Omnibox-flag.patch b/build/patches/Restore-Search-Ready-Omnibox-flag.patch index 15d87456..f45e50b9 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 -@@ -403,6 +403,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -408,6 +408,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kRecordIncognitoNtpTimeToFirstNavigationMetric, &kRecordSuppressionMetrics, &kReengagementNotification, @@ -34,7 +34,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -498,6 +498,7 @@ public abstract class ChromeFeatureList { +@@ -509,6 +509,7 @@ public abstract class ChromeFeatureList { "MayLaunchUrlUsesSeparateStoragePartition"; public static final String MEDIA_INDICATORS_ANDROID = "MediaIndicatorsAndroid"; public static final String MOST_VISITED_TILES_CUSTOMIZATION = "MostVisitedTilesCustomization"; diff --git a/build/patches/Restore-Simplified-NTP-launch.patch b/build/patches/Restore-Simplified-NTP-launch.patch index d73a486f..5fca5c1f 100644 --- a/build/patches/Restore-Simplified-NTP-launch.patch +++ b/build/patches/Restore-Simplified-NTP-launch.patch @@ -28,7 +28,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../native_page/NativePageFactory.java | 20 +- .../NativePageNavigationDelegateImpl.java | 2 +- .../chrome/browser/ntp/NewTabPage.java | 8 +- - .../chrome/browser/ntp/NewTabPageLayout.java | 33 +- + .../chrome/browser/ntp/NewTabPageLayout.java | 29 +- .../ntp/search/SearchBoxViewBinder.java | 1 + .../suggestions/SuggestionsConfig.java | 2 +- .../SuggestionsNavigationDelegate.java | 27 +- @@ -51,7 +51,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../Restore-Simplified-NTP-launch.inc | 12 + .../Restore-Simplified-NTP-launch.inc | 10 + .../Restore-Simplified-NTP-launch.inc | 1 + - 45 files changed, 650 insertions(+), 65 deletions(-) + 45 files changed, 648 insertions(+), 63 deletions(-) create mode 100644 chrome/android/java/res/drawable-hdpi/ic_most_visited_placeholder.png create mode 100644 chrome/android/java/res/drawable-mdpi/ic_most_visited_placeholder.png create mode 100644 chrome/android/java/res/drawable-xhdpi/ic_most_visited_placeholder.png @@ -81,7 +81,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", -@@ -545,6 +550,7 @@ chrome_java_resources = [ +@@ -544,6 +549,7 @@ chrome_java_resources = [ "java/res/layout/manage_space_activity.xml", "java/res/layout/material_tooltip.xml", "java/res/layout/multiline_spinner_item.xml", @@ -89,12 +89,12 @@ 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", -@@ -554,8 +560,10 @@ chrome_java_resources = [ +@@ -552,8 +558,10 @@ chrome_java_resources = [ + "java/res/layout/new_background_tab_animation_tab_switcher_icon.xml", "java/res/layout/new_custom_tab_toolbar.xml", "java/res/layout/new_tab_page_incognito.xml", - "java/res/layout/new_tab_page_layout.xml", + "java/res/layout/new_tab_page_tile_grid_placeholder.xml", - "java/res/layout/one_line_list_item.xml", + "java/res/layout/new_tab_page_layout.xml", "java/res/layout/open_full_chrome_history_header.xml", + "java/res/layout/ntp_shortcuts.xml", "java/res/layout/optional_toolbar_button.xml", @@ -103,7 +103,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 -@@ -639,6 +639,7 @@ chrome_java_sources = [ +@@ -649,6 +649,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", @@ -111,7 +111,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", -@@ -1081,6 +1082,7 @@ chrome_java_sources = [ +@@ -1096,6 +1097,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", @@ -416,10 +416,10 @@ diff --git a/chrome/android/java/res/layout/mv_tiles_layout.xml b/chrome/android diff --git a/chrome/android/java/res/layout/new_tab_page_layout.xml b/chrome/android/java/res/layout/new_tab_page_layout.xml --- a/chrome/android/java/res/layout/new_tab_page_layout.xml +++ b/chrome/android/java/res/layout/new_tab_page_layout.xml -@@ -57,6 +57,13 @@ found in the LICENSE file. - android:layout_marginTop="16dp" - android:visibility="gone"/> +@@ -50,6 +50,13 @@ found in the LICENSE file. + /> + + edgeToEdgeControllerSupplier, TopInsetProvider topInsetProvider, StartupMetricsTracker startupMetricsTracker, @@ -843,7 +843,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. mConstructedTimeNs = System.nanoTime(); TraceEvent.begin(TAG); -@@ -578,7 +582,7 @@ public class NewTabPage +@@ -474,7 +478,7 @@ public class NewTabPage nativePageHost, tabModelSelector, mTab, @@ -863,7 +863,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; -@@ -41,6 +42,7 @@ import org.chromium.chrome.browser.feed.FeedSurfaceScrollDelegate; +@@ -39,6 +40,7 @@ import org.chromium.chrome.browser.feed.FeedSurfaceScrollDelegate; import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.incognito.IncognitoUtils; import org.chromium.chrome.browser.lens.LensEntryPoint; @@ -871,24 +871,24 @@ 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; -@@ -61,6 +63,7 @@ import org.chromium.chrome.browser.suggestions.tile.MostVisitedTilesCoordinator; - import org.chromium.chrome.browser.suggestions.tile.MostVisitedTilesLayout; +@@ -59,6 +61,7 @@ import org.chromium.chrome.browser.signin.SigninAndHistorySyncActivityLauncherIm + import org.chromium.chrome.browser.suggestions.tile.MostVisitedTilesCoordinator; 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; -@@ -120,6 +123,8 @@ public class NewTabPageLayout extends LinearLayout - private @Nullable DisplayStyleObserver mDisplayStyleObserver; - private CallbackController mCallbackController = new CallbackController(); +@@ -116,6 +119,8 @@ public class NewTabPageLayout extends LinearLayout { + private SearchEngineUtils.@Nullable SearchEngineIconObserver mSearchEngineIconObserver; + private SearchEngineUtils.@Nullable SearchBoxHintTextObserver mSearchBoxHintTextObserver; + private ViewGroup mShortcutsView; + /** - * 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. -@@ -132,14 +137,14 @@ public class NewTabPageLayout extends LinearLayout + * 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. +@@ -128,14 +133,14 @@ public class NewTabPageLayout extends LinearLayout { */ private boolean mHasShownView; @@ -905,26 +905,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL private boolean mIsViewMoving; /** Flag used to request some layout changes after the next layout pass is completed. */ -@@ -310,6 +315,7 @@ public class NewTabPageLayout extends LinearLayout - initializeMostVisitedTilesCoordinator( - mProfile, lifecycleDispatcher, tileGroupDelegate, touchEnabledDelegate); - initializeDseIconView(); +@@ -302,6 +307,7 @@ public class NewTabPageLayout extends LinearLayout { + mSearchEngineUtils.addIconObserver(mSearchEngineIconObserver); + setSearchBoxTextAppearance(); + + initializeShortcuts(); initializeSearchBoxTextView(); initializeVoiceSearchButton(); initializeLensButton(); -@@ -776,8 +782,8 @@ public class NewTabPageLayout extends LinearLayout - private void calculateTabletMvtWidth(int totalWidth) { - if (mMvTilesContainerLayout.getVisibility() == GONE) return; - -- MostVisitedTilesLayout mvTilesLayout = findViewById(R.id.mv_tiles_layout); -- mMvtContentFits = mvTilesLayout.contentFitsOnTablet(totalWidth); -+ MostVisitedTilesGridLayout mvTilesLayout = findViewById(R.id.mv_tiles_layout); -+ mMvtContentFits = false; - updateMvtOnTablet(); - } - -@@ -828,7 +834,7 @@ public class NewTabPageLayout extends LinearLayout +@@ -762,7 +768,7 @@ public class NewTabPageLayout extends LinearLayout { return; } boolean isSearchProviderIsGoogleChanged = mSearchProviderIsGoogle != isGoogle; @@ -933,7 +922,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL mSearchProviderIsGoogle = isGoogle; if (!mSearchProviderIsGoogle) { -@@ -893,6 +899,7 @@ public class NewTabPageLayout extends LinearLayout +@@ -829,6 +835,7 @@ public class NewTabPageLayout extends LinearLayout { * @param disable Whether to disable the animations. */ void setUrlFocusAnimationsDisabled(boolean disable) { @@ -941,8 +930,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL if (disable == mDisableUrlFocusChangeAnimations) return; mDisableUrlFocusChangeAnimations = disable; if (!disable) onUrlFocusAnimationChanged(); -@@ -1284,6 +1291,22 @@ public class NewTabPageLayout extends LinearLayout - return mMostVisitedTilesCoordinator; +@@ -1141,6 +1148,22 @@ public class NewTabPageLayout extends LinearLayout { + mComposeplateUrlSupplier = null; } + private void initializeShortcuts() { @@ -962,12 +951,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL + } + /** Makes the Search Box and Logo as wide as Most Visited. */ - private void unifyElementWidths() { - View searchBoxView = getSearchBoxView(); + private void unifyElementWidths(int width) { + int searchBoxWidth = width - mSearchBoxTwoSideMargin; diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/search/SearchBoxViewBinder.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/search/SearchBoxViewBinder.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/search/SearchBoxViewBinder.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/search/SearchBoxViewBinder.java -@@ -34,6 +34,7 @@ class SearchBoxViewBinder +@@ -31,6 +31,7 @@ class SearchBoxViewBinder View searchBoxContainer = searchBoxlayout.findViewById(R.id.search_box_container); final TextView searchBoxTextView = searchBoxlayout.findViewById(R.id.search_box_text); @@ -1038,9 +1027,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/Sug diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesCoordinator.java -@@ -65,15 +65,11 @@ public class MostVisitedTilesCoordinator implements ConfigurationChangedObserver - mActivity = activity; +@@ -70,15 +70,11 @@ public class MostVisitedTilesCoordinator implements ConfigurationChangedObserver mActivityLifecycleDispatcher = activityLifecycleDispatcher; + mMvTilesContainerLayout = mvTilesContainerLayout; - MostVisitedTilesLayout tilesLayout = + MostVisitedTilesGridLayout tilesLayout = @@ -1350,25 +1339,25 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesMediator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesMediator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesMediator.java -@@ -46,7 +46,7 @@ public class MostVisitedTilesMediator implements TileGroup.Observer { - private final Context mContext; +@@ -52,7 +52,7 @@ public class MostVisitedTilesMediator implements TileGroup.Observer { private final Resources mResources; private final UiConfig mUiConfig; + private final View mMvTilesContainerLayout; - private final MostVisitedTilesLayout mMvTilesLayout; + private final MostVisitedTilesGridLayout mMvTilesLayout; private final PropertyModel mModel; private final boolean mIsTablet; private final int mTileViewLandscapePadding; -@@ -69,7 +69,7 @@ public class MostVisitedTilesMediator implements TileGroup.Observer { +@@ -76,7 +76,7 @@ public class MostVisitedTilesMediator implements TileGroup.Observer { public MostVisitedTilesMediator( Context context, UiConfig uiConfig, -- MostVisitedTilesLayout mvTilesLayout, -+ MostVisitedTilesGridLayout mvTilesLayout, +- View mvTilesContainerLayout, ++ MostVisitedTilesGridLayout mvTilesContainerLayout, TileRenderer renderer, PropertyModel propertyModel, boolean isTablet, -@@ -215,12 +215,10 @@ public class MostVisitedTilesMediator implements TileGroup.Observer { +@@ -223,12 +223,10 @@ public class MostVisitedTilesMediator implements TileGroup.Observer { @Override public void onCustomTileCreation(Tile tile) { @@ -1381,7 +1370,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til } public void onConfigurationChanged() { -@@ -330,7 +328,5 @@ public class MostVisitedTilesMediator implements TileGroup.Observer { +@@ -383,7 +381,5 @@ public class MostVisitedTilesMediator implements TileGroup.Observer { double firstTileScore = mTileGroup.getSuggestionScore(firstTile.getUrl()); if (firstTileScore < MVT_CUSTOMIZATION_IPH_TILE_SCORE_THRESHOULD) return; @@ -1537,7 +1526,7 @@ diff --git a/chrome/browser/engagement/important_sites_util.cc b/chrome/browser/ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -357,6 +357,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -363,6 +363,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kKeyboardEscBackNavigation, &kLaunchCauseScreenOffFix, &kLensOnQuickActionSearchWidget, @@ -1548,7 +1537,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 -@@ -499,6 +499,7 @@ public abstract class ChromeFeatureList { +@@ -510,6 +510,7 @@ public abstract class ChromeFeatureList { "MayLaunchUrlUsesSeparateStoragePartition"; public static final String MEDIA_INDICATORS_ANDROID = "MediaIndicatorsAndroid"; public static final String MOST_VISITED_TILES_CUSTOMIZATION = "MostVisitedTilesCustomization"; @@ -1556,7 +1545,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final String SEARCH_READY_OMNIBOX = "SearchReadyOmnibox"; public static final String MOST_VISITED_TILES_RESELECT = "MostVisitedTilesReselect"; public static final String MOVE_TO_FRONT_IN_LAUNCH_INTENT_DISPATCHER = -@@ -969,7 +970,7 @@ public abstract class ChromeFeatureList { +@@ -987,7 +988,7 @@ public abstract class ChromeFeatureList { LOCK_TOP_CONTROLS_ON_LARGE_TABLETS_V2, /* defaultValue= */ false, /* defaultValueInTests= */ true); @@ -1592,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 -@@ -4048,6 +4048,12 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4127,6 +4127,12 @@ To change this setting, BEGIN_LINKdelete the Chrome d Recent tabs @@ -1640,14 +1629,14 @@ 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. -@@ -277,6 +278,7 @@ BASE_FEATURE(kOmniboxMobileParityUpdate, ENABLED); +@@ -275,6 +276,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); - // The features below allow tuning number of suggestions offered to users in - // specific contexts. These features are default enabled and are used to control + // If enabled, the X-Geo header will include permission granularity. + BASE_FEATURE(kOmniboxXGeoPermissionGranularity, ENABLED); 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 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 3f2a3a95..29bdec42 100644 --- a/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch +++ b/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch @@ -42,7 +42,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/R 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 -@@ -293,6 +293,10 @@ public class ContextualPageActionController { +@@ -313,6 +313,10 @@ public class ContextualPageActionController { && mTabSupplier.get().getId() == tab.getId(); if (!isSameTab) return; @@ -56,7 +56,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/segmentation_pl 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 -@@ -75,6 +75,7 @@ constexpr int kAdaptiveToolbarDefaultSelectionTTLDays = 56; +@@ -74,6 +74,7 @@ constexpr int kAdaptiveToolbarDefaultSelectionTTLDays = 56; #if BUILDFLAG(IS_ANDROID) std::unique_ptr GetConfigForAdaptiveToolbar() { @@ -67,7 +67,7 @@ diff --git a/chrome/browser/segmentation_platform/segmentation_platform_config.c diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -5152,6 +5152,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -5246,6 +5246,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d View @@ -111,10 +111,10 @@ 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/adaptive/AdaptiveToolbarFeatures.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarFeatures.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarFeatures.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarFeatures.java -@@ -74,9 +74,9 @@ public class AdaptiveToolbarFeatures { - case AdaptiveToolbarButtonVariant.SHARE: +@@ -75,9 +75,9 @@ public class AdaptiveToolbarFeatures { case AdaptiveToolbarButtonVariant.VOICE: case AdaptiveToolbarButtonVariant.AUTO: + case AdaptiveToolbarButtonVariant.GLIC: + case AdaptiveToolbarButtonVariant.READER_MODE: return false; case AdaptiveToolbarButtonVariant.PRICE_TRACKING: @@ -137,10 +137,10 @@ 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/adaptive/AdaptiveToolbarStatePredictor.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStatePredictor.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStatePredictor.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStatePredictor.java -@@ -200,12 +200,12 @@ public class AdaptiveToolbarStatePredictor { - case AdaptiveToolbarButtonVariant.READ_ALOUD: +@@ -201,12 +201,12 @@ public class AdaptiveToolbarStatePredictor { case AdaptiveToolbarButtonVariant.PAGE_SUMMARY: case AdaptiveToolbarButtonVariant.OPEN_IN_BROWSER: + case AdaptiveToolbarButtonVariant.GLIC: + case AdaptiveToolbarButtonVariant.READER_MODE: return true; case AdaptiveToolbarButtonVariant.UNKNOWN: @@ -151,7 +151,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow case AdaptiveToolbarButtonVariant.PRICE_INSIGHTS: case AdaptiveToolbarButtonVariant.TAB_GROUPING: return false; -@@ -234,6 +234,10 @@ public class AdaptiveToolbarStatePredictor { +@@ -235,6 +235,10 @@ public class AdaptiveToolbarStatePredictor { * @param callback A callback for results. */ public void readFromSegmentationPlatform(Callback> callback) { diff --git a/build/patches/Restore-chrome-password-store.patch b/build/patches/Restore-chrome-password-store.patch index 667d9af2..c20272ca 100644 --- a/build/patches/Restore-chrome-password-store.patch +++ b/build/patches/Restore-chrome-password-store.patch @@ -21,7 +21,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../settings/AutofillProfilesFragment.java | 1 + .../settings/PasswordSettings.java | 711 ++++++++++++++++++ .../settings/FragmentDependencyProvider.java | 5 + - .../chrome/browser/settings/MainSettings.java | 15 - + .../chrome/browser/settings/MainSettings.java | 17 - .../settings/SettingsNavigationImpl.java | 4 + chrome/browser/BUILD.gn | 7 + .../autofill/AutofillClientProviderUtils.java | 1 + @@ -88,7 +88,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 + - 80 files changed, 5590 insertions(+), 79 deletions(-) + 80 files changed, 5590 insertions(+), 81 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 @@ -134,7 +134,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 -@@ -812,6 +812,10 @@ if (_is_default_toolchain) { +@@ -822,6 +822,10 @@ if (_is_default_toolchain) { "//url/mojom:url_mojom_origin_java", ] @@ -145,7 +145,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn deps += feed_deps srcjar_deps = [ -@@ -960,6 +964,10 @@ if (_is_default_toolchain) { +@@ -972,6 +976,10 @@ if (_is_default_toolchain) { "//components/visited_url_ranking/internal:internal_java", ] @@ -159,7 +159,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 -@@ -658,3 +658,8 @@ chrome_java_resources = [ +@@ -654,3 +654,8 @@ chrome_java_resources = [ "java/res/xml/tracing_preferences.xml", "java/res/xml/unified_account_settings_preferences.xml", ] @@ -171,7 +171,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 -@@ -917,6 +917,7 @@ chrome_java_sources = [ +@@ -932,6 +932,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", @@ -197,7 +197,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 -@@ -483,10 +483,9 @@ by a child template that "extends" this file. +@@ -485,10 +485,9 @@ by a child template that "extends" this file. @@ -323,7 +323,7 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java --- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java -@@ -829,6 +829,7 @@ public class AutofillPaymentMethodsFragment extends ChromeBaseSettingsFragment +@@ -833,6 +833,7 @@ public class AutofillPaymentMethodsFragment extends ChromeBaseSettingsFragment } private static boolean disabledSettingsInThirdPartyMode(Profile profile) { @@ -334,7 +334,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settin diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillProfilesFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillProfilesFragment.java --- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillProfilesFragment.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillProfilesFragment.java -@@ -465,6 +465,7 @@ public class AutofillProfilesFragment extends ChromeBaseSettingsFragment +@@ -635,6 +635,7 @@ public class AutofillProfilesFragment extends ChromeBaseSettingsFragment } private static boolean disabledSettingsInThirdPartyMode(Profile profile) { @@ -1061,7 +1061,7 @@ new file mode 100644 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 -@@ -26,6 +26,8 @@ import org.chromium.chrome.browser.language.settings.LanguageSettings; +@@ -30,6 +30,8 @@ import org.chromium.chrome.browser.language.settings.LanguageSettings; import org.chromium.chrome.browser.lifetime.ApplicationLifetime; import org.chromium.chrome.browser.locale.LocaleManager; import org.chromium.chrome.browser.page_info.SiteSettingsHelper; @@ -1070,7 +1070,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; -@@ -145,6 +147,9 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl +@@ -160,6 +162,9 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl PasswordManagerHelper.getForProfile(mProfile), new SettingsCustomTabLauncherImpl()); } @@ -1083,7 +1083,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 -@@ -655,15 +655,6 @@ public class MainSettings extends ChromeBaseSettingsFragment +@@ -657,17 +657,6 @@ public class MainSettings extends ChromeBaseSettingsFragment return SettingsNavigationHelper.showAutofillProfileSettings( getActivity()); }); @@ -1093,21 +1093,23 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe - preference -> { - onPreferenceSelected(preference); - showPasswordSettings( -- getActivity(), getProfile(), mModalDialogManagerSupplier.asNonNull()); +- getActivity(), +- getProfile(), +- mModalDialogManagerSupplier.asNonNull().get()); - 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 -@@ -718,12 +709,6 @@ public class MainSettings extends ChromeBaseSettingsFragment - Context context, - Profile profile, - MonotonicObservableSupplier modalDialogManagerSupplier) { +@@ -720,12 +709,6 @@ public class MainSettings extends ChromeBaseSettingsFragment + + private static void showPasswordSettings( + Context context, Profile profile, ModalDialogManager modalDialogManager) { - PasswordManagerLauncher.showPasswordSettings( - context, - profile, - ManagePasswordsReferrer.CHROME_SETTINGS, -- modalDialogManagerSupplier.asNonNull(), +- modalDialogManager, - /* managePasskeys= */ false); } @@ -1143,7 +1145,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 -@@ -3312,6 +3312,13 @@ static_library("browser") { +@@ -3206,6 +3206,13 @@ static_library("browser") { "touch_to_fill/password_manager/touch_to_fill_controller_webauthn_delegate.h", ] @@ -3083,9 +3085,9 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom import org.chromium.components.sync.SyncService; import org.chromium.ui.modaldialog.ModalDialogManager; @@ -134,7 +135,7 @@ public class PasswordManagerHelper { - context, modalDialogManagerSupplier.get(), settingsCustomTabLauncher)) { + context, modalDialogManager, settingsCustomTabLauncher)) { LoadingModalDialogCoordinator loadingDialogCoordinator = - LoadingModalDialogCoordinator.create(modalDialogManagerSupplier, context); + LoadingModalDialogCoordinator.create(modalDialogManager, context); - launchTheCredentialManager(referrer, syncService, loadingDialogCoordinator, account); + launchTheCredentialManager(context, referrer, syncService, loadingDialogCoordinator, account); } @@ -3116,7 +3118,7 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom return false; } -@@ -396,10 +388,16 @@ public class PasswordManagerHelper { +@@ -395,10 +387,16 @@ public class PasswordManagerHelper { @VisibleForTesting void launchTheCredentialManager( @@ -6129,7 +6131,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 -@@ -2593,13 +2593,6 @@ void MigrateObsoleteProfilePrefs(PrefService* profile_prefs, +@@ -2642,13 +2642,6 @@ void MigrateObsoleteProfilePrefs(PrefService* profile_prefs, profile_prefs->ClearPref(kObsoletePasswordsUseUPMLocalAndSeparateStores); profile_prefs->ClearPref(kObsoleteEmptyProfileStoreLoginDatabase); profile_prefs->ClearPref(kObsoleteUpmAutoExportCsvNeedsDeletion); @@ -6146,7 +6148,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 -@@ -715,7 +715,7 @@ For more settings that use data to improve your Chrome experience, go to @@ -6155,7 +6157,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro Password saving is turned on by your administrator -@@ -815,6 +815,127 @@ For more settings that use data to improve your Chrome experience, go to @@ -6300,14 +6302,14 @@ 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 -@@ -385,6 +385,7 @@ BASE_FEATURE(kAutofillCreditCardUserPerceptionSurvey, +@@ -391,6 +391,7 @@ BASE_FEATURE(kAutofillCreditCardUserPerceptionSurvey, // If enabled, other apps can open the Autofill Options in Chrome. BASE_FEATURE(kAutofillDeepLinkAutofillOptions, base::FEATURE_ENABLED_BY_DEFAULT); +SET_CROMITE_FEATURE_DISABLED(kAutofillDeepLinkAutofillOptions); #endif // BUILDFLAG(IS_ANDROID) - // Kill switch for Autofill address import. + // If enabled, `FormParsingTracker` will wait up to 1 second diff --git a/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsNavigation.java b/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsNavigation.java --- a/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsNavigation.java +++ b/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsNavigation.java @@ -6411,7 +6413,7 @@ diff --git a/components/password_manager/core/browser/password_manager_constants diff --git a/components/password_manager/core/browser/password_store/BUILD.gn b/components/password_manager/core/browser/password_store/BUILD.gn --- a/components/password_manager/core/browser/password_store/BUILD.gn +++ b/components/password_manager/core/browser/password_store/BUILD.gn -@@ -73,6 +73,19 @@ source_set("password_store_impl") { +@@ -74,6 +74,19 @@ source_set("password_store_impl") { "android_backend_error.h", "password_data_type_controller_delegate_android.cc", "password_data_type_controller_delegate_android.h", @@ -6455,7 +6457,7 @@ diff --git a/components/password_manager/core/browser/password_store/login_datab diff --git a/components/password_manager/core/browser/password_store/password_store_built_in_backend.cc b/components/password_manager/core/browser/password_store/password_store_built_in_backend.cc --- a/components/password_manager/core/browser/password_store/password_store_built_in_backend.cc +++ b/components/password_manager/core/browser/password_store/password_store_built_in_backend.cc -@@ -152,6 +152,7 @@ void PasswordStoreBuiltInBackend::InitBackend( +@@ -153,6 +153,7 @@ void PasswordStoreBuiltInBackend::InitBackend( DCHECK(helper_); affiliated_match_helper_ = affiliated_match_helper; @@ -6463,7 +6465,7 @@ diff --git a/components/password_manager/core/browser/password_store/password_st // To ensure that groups of the kClearUndecryptablePasswords will stay // balanced, after the cleanup is done an additional flag check is needed. // Users won't reach the flag the normal way since the LoginDB is working -@@ -160,6 +161,7 @@ void PasswordStoreBuiltInBackend::InitBackend( +@@ -161,6 +162,7 @@ void PasswordStoreBuiltInBackend::InitBackend( if (pref_service_->GetBoolean(prefs::kClearingUndecryptablePasswords)) { base::FeatureList::IsEnabled(features::kClearUndecryptablePasswords); } @@ -6471,7 +6473,7 @@ diff --git a/components/password_manager/core/browser/password_store/password_st background_task_runner_->PostTask( FROM_HERE, base::BindOnce(&LoginDatabaseAsyncHelper::CreateSyncBackend, -@@ -436,11 +438,15 @@ void PasswordStoreBuiltInBackend::OnEncryptorReceived( +@@ -437,11 +439,15 @@ void PasswordStoreBuiltInBackend::OnEncryptorReceived( weak_ptr_factory_.GetWeakPtr())) .Then(std::move(remote_form_changes_received)); @@ -6574,7 +6576,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 -@@ -709,7 +709,7 @@ bool SyncPrefs::IsTypeSupportedInTransportMode(UserSelectableType type) { +@@ -740,7 +740,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 5b4bd683..d2338d97 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 -@@ -1549,7 +1549,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1554,7 +1554,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; } -@@ -1583,6 +1584,11 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1594,6 +1595,11 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { hubManager.setStatusIndicatorHeight(mStatusIndicatorHeight); }); @@ -117,21 +117,21 @@ 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 -@@ -382,6 +382,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { - &kNotificationPermissionVariant, - &kNotificationTrampoline, +@@ -389,6 +389,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kNotificationTrampolineNoNewTask, + &kNtpMvcRefactor, + &kNtpSimplification, + &kOfflineIndicatorV2, &kOmahaMinSdkVersionAndroid, + &kOnDemandBackgroundTabContextCapture, &kPCCTMinimumHeight, - &kPageAnnotationsService, 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 -@@ -519,6 +519,7 @@ public abstract class ChromeFeatureList { - public static final String NOTIFICATION_TRAMPOLINE = "NotificationTrampoline"; - public static final String NOTIFICATION_TRAMPOLINE_NO_NEW_TASK = +@@ -531,6 +531,7 @@ public abstract class ChromeFeatureList { "NotificationTrampolineNoNewTask"; + public static final String NTP_MVC_REFACTOR = "NtpMvcRefactor"; + public static final String NTP_SIMPLIFICATION = "NtpSimplification"; + public static final String OFFLINE_INDICATOR_V2 = "OfflineIndicatorV2"; public static final String OMAHA_MIN_SDK_VERSION_ANDROID = "OmahaMinSdkVersionAndroid"; public static final String OMNIBOX_AUTOFOCUS_ON_INCOGNITO_NTP = diff --git a/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch b/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch index cdbd79e3..b2132bac 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 -@@ -2368,6 +2368,10 @@ +@@ -2407,6 +2407,10 @@ "yangsharon@google.com", "alexmos@google.com", "creis@google.com" ], "expiry_milestone": 150 }, 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 b5ea23d7..07638d4c 100644 --- a/build/patches/Revert-remove-allowscript-content-setting-secondary-url.patch +++ b/build/patches/Revert-remove-allowscript-content-setting-secondary-url.patch @@ -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" -@@ -500,7 +501,10 @@ bool LocalDOMWindow::CanExecuteScripts( +@@ -487,7 +488,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 -@@ -4175,19 +4175,6 @@ bool LocalFrame::IsSameOrigin() { +@@ -4176,19 +4176,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 -@@ -933,12 +933,6 @@ class CORE_EXPORT LocalFrame final +@@ -939,12 +939,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 -@@ -797,7 +797,9 @@ void HTMLMetaElement::ProcessMetaCH(Document& document, +@@ -811,7 +811,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 -@@ -274,7 +274,7 @@ BaseFetchContext::CanRequestInternal( +@@ -290,7 +290,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 -@@ -107,7 +107,7 @@ class CORE_EXPORT BaseFetchContext : public FetchContext { +@@ -108,7 +108,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 -@@ -642,7 +642,8 @@ void FrameFetchContext::AddClientHintsIfNecessary( +@@ -641,7 +641,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; } -@@ -1105,15 +1106,26 @@ void FrameFetchContext::SetFirstPartyCookie(ResourceRequest& request) { +@@ -1104,15 +1105,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, -@@ -182,7 +193,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext, +@@ -183,7 +194,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext, // BaseFetchContext overrides: net::SiteForCookies GetSiteForCookies() const override; SubresourceFilter* GetSubresourceFilter() const override; diff --git a/build/patches/Set-caret-blink-interval-to-default.patch b/build/patches/Set-caret-blink-interval-to-default.patch index 93910c14..564e3526 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 -@@ -3731,9 +3731,7 @@ void WebViewImpl::UpdateRendererPreferences( +@@ -3758,9 +3758,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 d28a98f3..9184bc27 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 @@ -32,7 +32,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/cc/base/features.cc b/cc/base/features.cc --- a/cc/base/features.cc +++ b/cc/base/features.cc -@@ -136,13 +136,7 @@ BASE_FEATURE(kPreventDuplicateImageDecodes, base::FEATURE_DISABLED_BY_DEFAULT); +@@ -131,13 +131,7 @@ BASE_FEATURE(kPreventDuplicateImageDecodes, base::FEATURE_DISABLED_BY_DEFAULT); BASE_FEATURE(kInitImageDecodeLastUseTime, base::FEATURE_ENABLED_BY_DEFAULT); // Enabled on Android, after a field trial showed improvements. @@ -47,7 +47,7 @@ diff --git a/cc/base/features.cc b/cc/base/features.cc #if BUILDFLAG(IS_ANDROID) BASE_FEATURE(kThrottleMainFrameTo60HzWebView, -@@ -175,6 +169,7 @@ BASE_FEATURE(kViewTransitionFloorTransform, base::FEATURE_ENABLED_BY_DEFAULT); +@@ -170,6 +164,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}; @@ -67,7 +67,7 @@ diff --git a/cc/scheduler/scheduler_state_machine.cc b/cc/scheduler/scheduler_st #else return true; #endif -@@ -1586,6 +1586,15 @@ void SchedulerStateMachine::FrameIntervalUpdated( +@@ -1560,6 +1560,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. @@ -83,7 +83,7 @@ diff --git a/cc/scheduler/scheduler_state_machine.cc b/cc/scheduler/scheduler_st constexpr float kSlackFactor = .9; bool fast_vsync_interval = frame_interval < base::Hertz(120) * (1 / kSlackFactor); -@@ -1917,6 +1926,14 @@ void SchedulerStateMachine::SetRequestHighFramerate(bool flag) { +@@ -1891,6 +1900,14 @@ void SchedulerStateMachine::SetRequestHighFramerate(bool flag) { } base::TimeDelta SchedulerStateMachine::MainFrameThrottledInterval() const { @@ -117,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 -@@ -11021,9 +11021,9 @@ const FeatureEntry kFeatureEntries[] = { +@@ -11139,9 +11139,9 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(::features::kBlockRootWindowAccessibleNameChangeEvent)}, #endif // BUILDFLAG(IS_MAC) @@ -133,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 -@@ -53,6 +53,7 @@ +@@ -52,6 +52,7 @@ #include "build/branding_buildflags.h" #include "build/build_config.h" #include "build/config/chromebox_for_meetings/buildflags.h" // PLATFORM_CFM @@ -141,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" -@@ -310,6 +311,7 @@ +@@ -311,6 +312,7 @@ #include "components/variations/variations_associated_data.h" #include "components/variations/variations_switches.h" #include "components/version_info/version_info.h" @@ -149,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" -@@ -2748,6 +2750,15 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( +@@ -2818,6 +2820,15 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( command_line->AppendSwitchASCII(ash::switches::kHomedir, homedir.value()); #endif @@ -251,7 +251,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" -@@ -295,8 +296,21 @@ void Display::PresentationGroupTiming::OnSwap(gfx::SwapTimings timings, +@@ -283,8 +284,21 @@ void Display::PresentationGroupTiming::OnSwap(gfx::SwapTimings timings, "latency_ms", frame_latency.InMillisecondsF()); } if (frame_latency < base::Seconds(0)) { @@ -401,7 +401,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 -@@ -998,8 +998,10 @@ CSSStyleSheet* ViewTransition::UAStyleSheet() const { +@@ -999,8 +999,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 d2e1cce6..23ac8a3f 100644 --- a/build/patches/Show-NTP-at-startup.patch +++ b/build/patches/Show-NTP-at-startup.patch @@ -100,7 +100,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 -@@ -3208,6 +3208,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt +@@ -3246,6 +3246,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt mInactivityTrackerSupplier.set( new ChromeInactivityTracker( ChromePreferenceKeys.TABBED_ACTIVITY_LAST_BACKGROUNDED_TIME_MS_PREF)); @@ -112,7 +112,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeUtil.java b/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeUtil.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeUtil.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeUtil.java -@@ -22,9 +22,11 @@ import org.chromium.base.metrics.RecordHistogram; +@@ -23,9 +23,11 @@ import org.chromium.base.metrics.RecordHistogram; import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; import org.chromium.chrome.R; @@ -124,7 +124,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; -@@ -134,6 +136,18 @@ public final class ReturnToChromeUtil { +@@ -140,6 +142,18 @@ public final class ReturnToChromeUtil { return false; } @@ -143,7 +143,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(); -@@ -252,7 +266,7 @@ public final class ReturnToChromeUtil { +@@ -258,7 +272,7 @@ public final class ReturnToChromeUtil { TabModel currentTabModel, TabCreator tabCreator, HomeSurfaceTracker homeSurfaceTracker) { @@ -155,7 +155,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 -@@ -997,7 +997,7 @@ +@@ -1001,7 +1001,7 @@ Open a specific page or set of pages @@ -167,7 +167,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 -@@ -427,6 +427,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -432,6 +432,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kSearchInCCTIfEnabledByEmbedder, &kSearchResumptionModuleAndroid, &kSettingsMultiColumn, @@ -235,7 +235,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 -@@ -1024,6 +1024,8 @@ public final class ChromePreferenceKeys { +@@ -1041,6 +1041,8 @@ public final class ChromePreferenceKeys { public static final String TABBED_ACTIVITY_LAST_BACKGROUNDED_TIME_MS_PREF = "ChromeTabbedActivity.BackgroundTimeMs"; @@ -247,7 +247,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java -@@ -115,6 +115,7 @@ public class LegacyChromePreferenceKeys { +@@ -114,6 +114,7 @@ public class LegacyChromePreferenceKeys { ChromePreferenceKeys.SNAPSHOT_DATABASE_REMOVED, ChromePreferenceKeys.SYNC_ERROR_MESSAGE_SHOWN_AT_TIME, ChromePreferenceKeys.TABBED_ACTIVITY_LAST_BACKGROUNDED_TIME_MS_PREF, @@ -269,7 +269,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 -@@ -937,7 +937,13 @@ class SessionRestoreImpl : public BrowserCollectionObserver { +@@ -938,7 +938,13 @@ class SessionRestoreImpl : public BrowserCollectionObserver { // be selected as ShowBrowser() will load the selected tab. bool is_selected_tab = (initial_tab_count == 0) && (i == selected_tab_index); @@ -284,7 +284,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; -@@ -1257,6 +1263,7 @@ class SessionRestoreImpl : public BrowserCollectionObserver { +@@ -1258,6 +1264,7 @@ class SessionRestoreImpl : public BrowserCollectionObserver { } if (last_normal_browser && !normal_startup_tabs.empty()) { AppendURLsToBrowser(last_normal_browser, normal_startup_tabs); @@ -412,7 +412,7 @@ new file mode 100644 diff --git a/chrome/browser/ui/browser_tabrestore.cc b/chrome/browser/ui/browser_tabrestore.cc --- a/chrome/browser/ui/browser_tabrestore.cc +++ b/chrome/browser/ui/browser_tabrestore.cc -@@ -248,7 +248,7 @@ WebContents* AddRestoredTabImpl(std::unique_ptr web_contents, +@@ -243,7 +243,7 @@ WebContents* AddRestoredTabImpl(std::unique_ptr web_contents, // Immediate load if the browser activeness is true or unknown. That is, do // not do immediate load for browsers that are known to be inactive. @@ -437,7 +437,7 @@ diff --git a/chrome/browser/ui/startup/startup_browser_creator_impl.cc b/chrome/ + } + // Potentially add a tab appropriate to display the Privacy Sandbox - // confirmaton dialog on top of. Ideally such a tab will already exist + // confirmation dialog on top of. Ideally such a tab will already exist // in |tabs|, and no additional tab will be required. diff --git a/cromite_flags/chrome/browser/about_flags_cc/show-ntp-at-startup.inc b/cromite_flags/chrome/browser/about_flags_cc/show-ntp-at-startup.inc new file mode 100644 diff --git a/build/patches/Site-setting-for-images.patch b/build/patches/Site-setting-for-images.patch index 00645b98..e9b010a2 100644 --- a/build/patches/Site-setting-for-images.patch +++ b/build/patches/Site-setting-for-images.patch @@ -324,7 +324,7 @@ diff --git a/third_party/blink/public/platform/web_content_settings_client.h b/t diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc -@@ -4162,19 +4162,6 @@ bool LocalFrame::IsSameOrigin() { +@@ -4163,19 +4163,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 -@@ -932,12 +932,6 @@ class CORE_EXPORT LocalFrame final +@@ -938,12 +938,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 -@@ -320,6 +320,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( -@@ -517,16 +518,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 -@@ -1040,9 +1040,8 @@ void Page::SettingsChanged(ChangeType change_type) { +@@ -1048,9 +1048,8 @@ void Page::SettingsChanged(ChangeType change_type) { for (Frame* frame = MainFrame(); frame; frame = frame->Tree().TraverseNext()) { if (auto* local_frame = DynamicTo(frame)) { @@ -442,7 +442,7 @@ diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/re diff --git a/third_party/blink/renderer/platform/loader/fetch/fetch_context.h b/third_party/blink/renderer/platform/loader/fetch/fetch_context.h --- a/third_party/blink/renderer/platform/loader/fetch/fetch_context.h +++ b/third_party/blink/renderer/platform/loader/fetch/fetch_context.h -@@ -115,7 +115,7 @@ class PLATFORM_EXPORT FetchContext : public GarbageCollected { +@@ -116,7 +116,7 @@ class PLATFORM_EXPORT FetchContext : public GarbageCollected { virtual void AddResourceTiming(mojom::blink::ResourceTimingInfoPtr, const AtomicString& initiator_type); @@ -471,7 +471,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c } ResourceFetcher::RevalidationPolicy -@@ -2243,8 +2244,20 @@ void ResourceFetcher::SetAutoLoadImages(bool enable) { +@@ -2252,8 +2253,20 @@ void ResourceFetcher::SetAutoLoadImages(bool enable) { ReloadImagesIfNotDeferred(); } diff --git a/build/patches/Supporting-Dangling-Ptr-Detection-via-BackupRefPtr.patch b/build/patches/Supporting-Dangling-Ptr-Detection-via-BackupRefPtr.patch index 68829d4c..32603e06 100644 --- a/build/patches/Supporting-Dangling-Ptr-Detection-via-BackupRefPtr.patch +++ b/build/patches/Supporting-Dangling-Ptr-Detection-via-BackupRefPtr.patch @@ -130,7 +130,7 @@ diff --git a/base/allocator/partition_allocator/partition_alloc.gni b/base/alloc + use_full_mte = true } - stack_scan_supported = current_cpu == "x64" || current_cpu == "x86" || + # We want to provide assertions that guard against inconsistent build diff --git a/build_overrides/partition_alloc.gni b/build_overrides/partition_alloc.gni --- a/build_overrides/partition_alloc.gni +++ b/build_overrides/partition_alloc.gni @@ -170,7 +170,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/platform/wtf/allocator/partitions.cc b/third_party/blink/renderer/platform/wtf/allocator/partitions.cc --- a/third_party/blink/renderer/platform/wtf/allocator/partitions.cc +++ b/third_party/blink/renderer/platform/wtf/allocator/partitions.cc -@@ -78,16 +78,8 @@ partition_alloc::PartitionOptions PartitionOptionsFromFeatures() { +@@ -86,16 +86,8 @@ partition_alloc::PartitionOptions PartitionOptionsFromFeatures() { using partition_alloc::PartitionOptions; #if PA_BUILDFLAG(ENABLE_BACKUP_REF_PTR_SUPPORT) diff --git a/build/patches/TEMP-Add-a-log-to-track-strange-behavior.patch b/build/patches/TEMP-Add-a-log-to-track-strange-behavior.patch index d6a85a09..8cf440b9 100644 --- a/build/patches/TEMP-Add-a-log-to-track-strange-behavior.patch +++ b/build/patches/TEMP-Add-a-log-to-track-strange-behavior.patch @@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc --- a/net/spdy/spdy_session.cc +++ b/net/spdy/spdy_session.cc -@@ -3065,6 +3065,7 @@ void SpdySession::OnHeaders(spdy::SpdyStreamId stream_id, +@@ -3074,6 +3074,7 @@ void SpdySession::OnHeaders(spdy::SpdyStreamId stream_id, if (it == active_streams_.end()) { // NOTE: it may just be that the stream was cancelled. LOG(WARNING) << "Received HEADERS for invalid stream " << stream_id; diff --git a/build/patches/Temp-disable-UseContextSnapshot.patch b/build/patches/Temp-disable-UseContextSnapshot.patch index c248d456..37fc5b0a 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 -@@ -1071,6 +1071,7 @@ BASE_FEATURE(kUnrestrictedSharedArrayBuffer, base::FEATURE_DISABLED_BY_DEFAULT); +@@ -1085,6 +1085,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 a7b06ad3..ca381b51 100644 --- a/build/patches/Temp-disable-experimental-web-platform-features.patch +++ b/build/patches/Temp-disable-experimental-web-platform-features.patch @@ -9,10 +9,10 @@ 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 -@@ -4931,10 +4931,10 @@ const FeatureEntry kFeatureEntries[] = { - {"enable-gpu-rasterization", flag_descriptions::kGpuRasterizationName, - flag_descriptions::kGpuRasterizationDescription, kOsAll, - MULTI_VALUE_TYPE(kEnableGpuRasterizationChoices)}, +@@ -5102,10 +5102,10 @@ const FeatureEntry kFeatureEntries[] = { + flag_descriptions::kFallbackToSWIfGLES3NotSupportedName, + flag_descriptions::kFallbackToSWIfGLES3NotSupportedDescription, kOsAll, + FEATURE_VALUE_TYPE(features::kFallbackToSWIfGLES3NotSupported)}, - {"enable-experimental-web-platform-features", - flag_descriptions::kExperimentalWebPlatformFeaturesName, - flag_descriptions::kExperimentalWebPlatformFeaturesDescription, kOsAll, diff --git a/build/patches/Temp-disable-predictive-back-gesture.patch b/build/patches/Temp-disable-predictive-back-gesture.patch index 776890d2..4ba35b82 100644 --- a/build/patches/Temp-disable-predictive-back-gesture.patch +++ b/build/patches/Temp-disable-predictive-back-gesture.patch @@ -10,9 +10,9 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml --- a/chrome/android/java/AndroidManifest.xml +++ b/chrome/android/java/AndroidManifest.xml -@@ -221,7 +221,7 @@ by a child template that "extends" this file. +@@ -223,7 +223,7 @@ by a child template that "extends" this file. + {% endif %} android:networkSecurityConfig="@xml/network_security_config" - android:allowAudioPlaybackCapture="false" android:appComponentFactory="org.chromium.chrome.browser.base.SplitCompatAppComponentFactory" - android:enableOnBackInvokedCallback="true" + android:enableOnBackInvokedCallback="false" diff --git a/build/patches/Timezone-customization.patch b/build/patches/Timezone-customization.patch index 5f2cf3de..cf7bef80 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" -@@ -287,6 +288,8 @@ android_resources("java_resources") { +@@ -290,6 +291,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", @@ -387,8 +387,8 @@ new file mode 100755 diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java -@@ -521,6 +521,14 @@ public class WebsitePreferenceBridge { - .recordHeuristicActionForTesting(browserContextHandle, origin, type, action); +@@ -570,6 +570,14 @@ public class WebsitePreferenceBridge { + WebsitePreferenceBridgeJni.get().resetNotificationsSettingsForTest(browserContextHandle); } + public static String getCustomTimezone(BrowserContextHandle browserContextHandle) { @@ -402,7 +402,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c @NativeMethods public interface Natives { boolean isNotificationEmbargoedForOrigin( -@@ -689,5 +697,7 @@ public class WebsitePreferenceBridge { +@@ -738,5 +746,7 @@ public class WebsitePreferenceBridge { String toDomainWildcardPattern(String pattern); String toHostOnlyPattern(String pattern); @@ -566,7 +566,7 @@ new file mode 100644 diff --git a/components/browser_ui/site_settings/android/website_preference_bridge.cc b/components/browser_ui/site_settings/android/website_preference_bridge.cc --- a/components/browser_ui/site_settings/android/website_preference_bridge.cc +++ b/components/browser_ui/site_settings/android/website_preference_bridge.cc -@@ -1322,5 +1322,21 @@ JNI_WebsitePreferenceBridge_ToHostOnlyPattern(JNIEnv* env, +@@ -1312,5 +1312,21 @@ JNI_WebsitePreferenceBridge_ToHostOnlyPattern(JNIEnv* env, return ConvertUTF8ToJavaString(env, host_only_pattern.ToString()); } @@ -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 -@@ -748,6 +748,14 @@ void HostContentSettingsMap::SetClockForTesting(const base::Clock* clock) { +@@ -762,6 +762,14 @@ void HostContentSettingsMap::SetClockForTesting(const base::Clock* clock) { } } @@ -756,7 +756,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map. diff --git a/components/content_settings/core/browser/host_content_settings_map.h b/components/content_settings/core/browser/host_content_settings_map.h --- a/components/content_settings/core/browser/host_content_settings_map.h +++ b/components/content_settings/core/browser/host_content_settings_map.h -@@ -416,6 +416,9 @@ class HostContentSettingsMap : public content_settings::Observer, +@@ -422,6 +422,9 @@ class HostContentSettingsMap : public content_settings::Observer, // Returns the current time of the `clock_`. base::Time Now() const { return clock_->Now(); } diff --git a/build/patches/Use-browser-navigation-handler.patch b/build/patches/Use-browser-navigation-handler.patch index 5521ee6a..ee01323b 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 -@@ -106,6 +106,7 @@ import org.chromium.ui.util.MotionEventUtils; +@@ -111,6 +111,7 @@ import org.chromium.ui.util.MotionEventUtils; import org.chromium.url.GURL; import java.util.ArrayList; @@ -227,7 +227,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/Side diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java -@@ -98,6 +98,7 @@ import org.chromium.chrome.browser.firstrun.FirstRunStatus; +@@ -100,6 +100,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; -@@ -930,7 +931,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -951,7 +952,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 59ec6ebe..5426dfd2 100644 --- a/build/patches/Use-list-mode-for-tab-switcher.patch +++ b/build/patches/Use-list-mode-for-tab-switcher.patch @@ -65,7 +65,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", -@@ -114,6 +116,8 @@ android_resources("java_resources") { +@@ -112,6 +114,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", @@ -163,7 +163,7 @@ diff --git a/chrome/android/features/tab_ui/java/res/values/dimens.xml b/chrome/ 52dp -@@ -115,6 +119,7 @@ found in the LICENSE file. +@@ -117,6 +121,7 @@ found in the LICENSE file. 3dp 8dp 24dp @@ -174,7 +174,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 -@@ -242,7 +242,9 @@ public class TabGridDialogCoordinator implements TabGridDialogMediator.DialogCon +@@ -244,7 +244,9 @@ public class TabGridDialogCoordinator implements TabGridDialogMediator.DialogCon // take in a mode parameter instead. mTabListCoordinator = new TabListCoordinator( @@ -185,7 +185,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser activity, mBrowserControlsStateProvider, mModalDialogManager, -@@ -359,6 +361,11 @@ public class TabGridDialogCoordinator implements TabGridDialogMediator.DialogCon +@@ -361,6 +363,11 @@ public class TabGridDialogCoordinator implements TabGridDialogMediator.DialogCon : "SnackbarManager should have been created or the activity was already" + " finishing."; @@ -197,7 +197,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( -@@ -369,7 +376,7 @@ public class TabGridDialogCoordinator implements TabGridDialogMediator.DialogCon +@@ -371,7 +378,7 @@ public class TabGridDialogCoordinator implements TabGridDialogMediator.DialogCon mCurrentTabGroupModelFilterSupplier, mTabContentManager, mTabListCoordinator::setRecyclerViewPosition, @@ -443,7 +443,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 -@@ -411,7 +411,7 @@ public class TabListEditorCoordinator { +@@ -421,7 +421,7 @@ public class TabListEditorCoordinator { mSnackbarManager = snackbarManager; mTabActionState = initialTabActionState; mTabContentManager = tabContentManager; @@ -467,7 +467,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 -@@ -2586,8 +2586,26 @@ class TabListMediator implements TabListNotificationHandler { +@@ -2630,8 +2630,26 @@ class TabListMediator implements TabListNotificationHandler { private void updateFaviconForTab( PropertyModel model, Tab tab, @Nullable Bitmap icon, @Nullable GURL iconUrl) { if (mActionsOnAllRelatedTabs && isTabInTabGroup(tab)) { @@ -1045,7 +1045,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 -@@ -184,6 +184,8 @@ internal_tab_management_java_sources = [ +@@ -180,6 +180,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", @@ -1081,7 +1081,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; -@@ -691,8 +692,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -695,8 +696,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity new TabContentManager( this, mBrowserControlsManagerSupplier.get(), @@ -1399,7 +1399,7 @@ diff --git a/chrome/browser/android/favicon_helper.h b/chrome/browser/android/fa 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 -@@ -22,6 +22,7 @@ import org.chromium.components.cached_flags.IntCachedFeatureParam; +@@ -21,6 +21,7 @@ import org.chromium.components.cached_flags.IntCachedFeatureParam; import org.chromium.components.cached_flags.StringCachedFeatureParam; import org.chromium.chrome.browser.flags.cromite.CromiteCachedFlagImplBase; @@ -1407,8 +1407,8 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f import java.util.Arrays; import java.util.stream.Collectors; -@@ -1340,8 +1341,9 @@ public abstract class ChromeFeatureList { - newMutableFlagWithSafeDefault(ANDROID_BOOKMARK_BAR_FAST_FOLLOW, false); +@@ -1370,8 +1371,9 @@ public abstract class ChromeFeatureList { + newMutableFlagWithSafeDefault(ANDROID_BOOKMARK_BAR_FAST_FOLLOW, true); public static final MutableFlagWithSafeDefault sAndroidContextMenuDuplicateTabs = newMutableFlagWithSafeDefault(ANDROID_CONTEXT_MENU_DUPLICATE_TABS, false); - public static final MutableFlagWithSafeDefault sAndroidPinnedTabs = @@ -1418,7 +1418,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f + : newMutableFlagWithSafeDefault(ANDROID_PINNED_TABS, true); public static final MutableFlagWithSafeDefault sAndroidPinnedTabsTabletTabStrip = newMutableFlagWithSafeDefault(ANDROID_PINNED_TABS_TABLET_TAB_STRIP, true); - public static final MutableFlagWithSafeDefault sAndroidTabHighlighting = + public static final MutableFlagWithSafeDefault sAndroidTipsNotifications = diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sTabSwitcherListMode.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sTabSwitcherListMode.java new file mode 100644 --- /dev/null @@ -1714,7 +1714,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 -@@ -67,6 +67,7 @@ import org.chromium.build.annotations.Nullable; +@@ -69,6 +69,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; @@ -1722,7 +1722,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; -@@ -2119,7 +2120,7 @@ public class ToolbarPhone extends ToolbarLayout +@@ -2106,7 +2107,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. @@ -1731,20 +1731,20 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow mLocationBar.setUrlBarFocusable(false); } -@@ -2348,7 +2349,8 @@ public class ToolbarPhone extends ToolbarLayout +@@ -2334,7 +2335,8 @@ public class ToolbarPhone extends ToolbarLayout ToggleTabStackButtonCoordinator tabSwitcherButtonCoordinator = getTabSwitcherButtonCoordinator(); assumeNonNull(tabSwitcherButtonCoordinator); - tabSwitcherButtonCoordinator.getContainerView().setClickable(!hasFocus); + if (!sTabSwitcherListMode.getInstance().isEnabled()) + tabSwitcherButtonCoordinator.getContainerView().setClickable(!hasFocus); - mHomeButtonDisplay.setClickable(!hasFocus); + mHomeButton.setClickable(!hasFocus); triggerUrlFocusAnimation(hasFocus); } 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 -@@ -237,6 +237,7 @@ android_resources("java_resources") { +@@ -247,6 +247,7 @@ android_resources("java_resources") { "java/res/drawable/ic_visibility_off_black.xml", "java/res/drawable/ic_volume_off_fill_24dp.xml", "java/res/drawable/ic_volume_up_fill_24dp.xml", diff --git a/build/patches/User-agent-customization.patch b/build/patches/User-agent-customization.patch index 19c7a244..fd1396b8 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 --- - base/base_switches.cc | 2 + base/base_switches.h | 2 + chrome/android/chrome_java_resources.gni | 2 + chrome/android/chrome_java_sources.gni | 1 + @@ -45,41 +44,29 @@ 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 - - 35 files changed, 807 insertions(+), 24 deletions(-) + 34 files changed, 805 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/base/base_switches.cc b/base/base_switches.cc ---- a/base/base_switches.cc -+++ b/base/base_switches.cc -@@ -185,6 +185,8 @@ const char kPackageName[] = "package-name"; - const char kPackageVersionName[] = "package-version-name"; +diff --git a/base/base_switches.h b/base/base_switches.h +--- a/base/base_switches.h ++++ b/base/base_switches.h +@@ -193,6 +193,8 @@ inline constexpr char kPackageName[] = "package-name"; + inline constexpr char kPackageVersionName[] = "package-version-name"; #endif -+const char kDesktopModeViewportMetaEnabled[] = "dm-viewport-meta-enabled"; ++inline constexpr char kDesktopModeViewportMetaEnabled[] = "dm-viewport-meta-enabled"; + #if BUILDFLAG(IS_CHROMEOS) // Override the default scheduling boosting value for urgent tasks. // This can be adjusted if a specific chromeos device shows better perf/power -diff --git a/base/base_switches.h b/base/base_switches.h ---- a/base/base_switches.h -+++ b/base/base_switches.h -@@ -65,6 +65,8 @@ extern const char kPackageVersionName[]; - extern const char kSchedulerBoostUrgent[]; - #endif - -+extern const char kDesktopModeViewportMetaEnabled[]; -+ - } // namespace switches - - #endif // 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 -@@ -668,6 +668,8 @@ chrome_java_resources = [ +@@ -664,6 +664,8 @@ chrome_java_resources = [ "java/res/xml/search_widget_info.xml", "java/res/xml/tracing_preferences.xml", "java/res/xml/unified_account_settings_preferences.xml", @@ -91,7 +78,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 -@@ -952,6 +952,7 @@ chrome_java_sources = [ +@@ -967,6 +967,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/payments/ui/DimmingDialog.java", "java/src/org/chromium/chrome/browser/payments/ui/LineItem.java", "java/src/org/chromium/chrome/browser/payments/ui/PaymentAppComparator.java", @@ -213,7 +200,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 -@@ -144,6 +144,11 @@ found in the LICENSE file. +@@ -142,6 +142,11 @@ found in the LICENSE file. android:key="content_settings" android:order="26" android:title="@string/prefs_site_settings"/> @@ -258,7 +245,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 -@@ -2846,7 +2846,10 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -2905,7 +2905,10 @@ public abstract class ChromeActivity extends AsyncInitializationActivity profile, currentTab.getUrl(), usingDesktopUserAgent); // Use TabUtils.switchUserAgent() instead of Tab.reload(). Because we need to reload // with LoadOriginalRequestURL. See http://crbug/1418587 for details. @@ -298,7 +285,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrow diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl.java -@@ -241,6 +241,41 @@ public class PrivacyPreferencesManagerImpl implements PrivacyPreferencesManager +@@ -230,6 +230,41 @@ public class PrivacyPreferencesManagerImpl implements PrivacyPreferencesManager return getCrashUploadPermittedSupplier(); } @@ -340,7 +327,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting @NativeMethods public interface Natives { boolean isMetricsReportingEnabled(); -@@ -248,5 +283,12 @@ public class PrivacyPreferencesManagerImpl implements PrivacyPreferencesManager +@@ -237,5 +272,12 @@ public class PrivacyPreferencesManagerImpl implements PrivacyPreferencesManager void setMetricsReportingEnabled(boolean enabled); boolean isMetricsReportingDisabledByPolicy(); @@ -570,7 +557,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. -@@ -2438,9 +2444,6 @@ class TabImpl implements Tab { +@@ -2377,9 +2383,6 @@ class TabImpl implements Tab { } if (mWebContents != null) { @@ -580,7 +567,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav mWebContents.getNavigationController().loadIfNecessary(); } mIsBeingRestored = true; -@@ -2840,6 +2843,11 @@ class TabImpl implements Tab { +@@ -2779,6 +2782,11 @@ class TabImpl implements Tab { url = webContents.getVisibleUrl(); } @@ -592,7 +579,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav boolean shouldRequestDesktopSite = DesktopSiteUtils.shouldOverrideDesktopSite(mProfile, url, getContext()); -@@ -2871,7 +2879,7 @@ class TabImpl implements Tab { +@@ -2810,7 +2818,7 @@ class TabImpl implements Tab { } boolean usingDesktopUserAgent = getWebContents().getNavigationController().getUseDesktopUserAgent(); @@ -601,8 +588,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. */ -@@ -3060,6 +3068,54 @@ class TabImpl implements Tab { - ResettersForTesting.register(this::clearNativePtr); +@@ -3005,6 +3013,54 @@ class TabImpl implements Tab { + return mImportance; } + int overrideUserAgentWhenUnFrozen = (int)UserAgentOverrideOption.INHERIT; @@ -659,7 +646,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.java -@@ -113,12 +113,8 @@ public class TabUtils { +@@ -112,12 +112,8 @@ public class TabUtils { * @param switchToDesktop Whether switching the user agent to desktop. * @param caller The caller of this method. */ @@ -894,7 +881,7 @@ diff --git a/chrome/browser/android/preferences/privacy_preferences_manager_impl diff --git a/chrome/browser/content_settings/request_desktop_site_web_contents_observer_android.cc b/chrome/browser/content_settings/request_desktop_site_web_contents_observer_android.cc --- a/chrome/browser/content_settings/request_desktop_site_web_contents_observer_android.cc +++ b/chrome/browser/content_settings/request_desktop_site_web_contents_observer_android.cc -@@ -17,6 +17,7 @@ +@@ -18,6 +18,7 @@ #include "chrome/browser/flags/android/chrome_feature_list.h" #include "chrome/browser/preferences/android/chrome_shared_preferences.h" #include "chrome/browser/profiles/profile.h" @@ -902,7 +889,7 @@ diff --git a/chrome/browser/content_settings/request_desktop_site_web_contents_o #include "chrome/common/chrome_switches.h" #include "components/content_settings/core/common/content_settings_utils.h" #include "components/content_settings/core/common/pref_names.h" -@@ -46,6 +47,7 @@ RequestDesktopSiteWebContentsObserverAndroid:: +@@ -47,6 +48,7 @@ RequestDesktopSiteWebContentsObserverAndroid:: host_content_settings_map_ = HostContentSettingsMapFactory::GetForProfile(profile); pref_service_ = profile->GetPrefs(); @@ -910,7 +897,7 @@ diff --git a/chrome/browser/content_settings/request_desktop_site_web_contents_o } RequestDesktopSiteWebContentsObserverAndroid:: -@@ -60,6 +62,15 @@ void RequestDesktopSiteWebContentsObserverAndroid::DidStartNavigation( +@@ -61,6 +63,15 @@ void RequestDesktopSiteWebContentsObserverAndroid::DidStartNavigation( return; } @@ -948,7 +935,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 -@@ -1361,8 +1361,6 @@ public final class ChromePreferenceKeys { +@@ -1383,8 +1383,6 @@ public final class ChromePreferenceKeys { SIGNIN_PROMO_NTP_LAST_SHOWN_TIME, SYNC_PROMO_TOTAL_SHOW_COUNT, SEARCH_RESUMPTION_MODULE_COLLAPSE_ON_NTP, @@ -978,7 +965,7 @@ diff --git a/chrome/browser/privacy/settings/java/src/org/chromium/chrome/browse diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.java b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.java --- a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.java +++ b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.java -@@ -380,6 +380,8 @@ public interface Tab extends TabLifecycle { +@@ -347,6 +347,8 @@ public interface Tab extends TabLifecycle { /** Goes to the navigation entry after the current one. */ void goForward(); @@ -990,7 +977,7 @@ diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.jav diff --git a/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java b/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java --- a/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java +++ b/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java -@@ -183,6 +183,8 @@ public interface TabWindowManager { +@@ -187,6 +187,8 @@ public interface TabWindowManager { @Nullable List getGroupedTabsByWindow( @WindowId int windowId, Token tabGroupId, boolean isIncognito); @@ -1002,7 +989,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 -@@ -492,6 +492,24 @@ public class TabWindowManagerImpl implements TabWindowManager { +@@ -469,6 +469,24 @@ public class TabWindowManagerImpl implements TabWindowManager { return null; } @@ -1077,7 +1064,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 -@@ -1917,6 +1917,14 @@ inline constexpr char kNaviOnboardGroup[] = "browser.navi_onboard_group"; +@@ -1770,6 +1770,14 @@ inline constexpr char kNaviOnboardGroup[] = "browser.navi_onboard_group"; inline constexpr char kHadThreeConsecutiveNotificationPermissionDenies[] = "profile.content_settings.had_three_consecutive_denies.notifications"; @@ -1220,7 +1207,7 @@ 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 -@@ -222,6 +222,7 @@ base::android::ScopedJavaLocalRef NavigationControllerAndroid::LoadUrl( +@@ -229,6 +229,7 @@ base::android::ScopedJavaLocalRef NavigationControllerAndroid::LoadUrl( bool can_load_local_resources, bool is_renderer_initiated, bool should_replace_current_entry, @@ -1228,7 +1215,7 @@ diff --git a/content/browser/renderer_host/navigation_controller_android.cc b/co const JavaRef& j_initiator_origin, bool has_user_gesture, bool should_clear_history_list, -@@ -320,6 +321,9 @@ base::android::ScopedJavaLocalRef NavigationControllerAndroid::LoadUrl( +@@ -327,6 +328,9 @@ base::android::ScopedJavaLocalRef NavigationControllerAndroid::LoadUrl( params.navigation_ui_data = std::move(navigation_ui_data); @@ -1241,7 +1228,7 @@ diff --git a/content/browser/renderer_host/navigation_controller_android.cc b/co diff --git a/content/browser/renderer_host/navigation_controller_android.h b/content/browser/renderer_host/navigation_controller_android.h --- a/content/browser/renderer_host/navigation_controller_android.h +++ b/content/browser/renderer_host/navigation_controller_android.h -@@ -68,6 +68,7 @@ class CONTENT_EXPORT NavigationControllerAndroid { +@@ -69,6 +69,7 @@ class CONTENT_EXPORT NavigationControllerAndroid { bool can_load_local_resources, bool is_renderer_initiated, bool should_replace_current_entry, @@ -1252,7 +1239,7 @@ diff --git a/content/browser/renderer_host/navigation_controller_android.h b/con diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc -@@ -3827,6 +3827,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( +@@ -3857,6 +3857,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( #if BUILDFLAG(IS_CHROMEOS) switches::kSchedulerBoostUrgent, #endif @@ -1271,7 +1258,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/flat_set.h" -@@ -2402,8 +2403,6 @@ void WebContentsImpl::SetUserAgentOverride( +@@ -2414,8 +2415,6 @@ void WebContentsImpl::SetUserAgentOverride( OPTIONAL_TRACE_EVENT2("content", "WebContentsImpl::SetUserAgentOverride", "ua_override", ua_override.ua_string_override, "override_in_new_tabs", override_in_new_tabs); @@ -1280,7 +1267,7 @@ diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser if (GetUserAgentOverride() == ua_override) { return; -@@ -3755,6 +3754,9 @@ const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences( +@@ -3767,6 +3766,9 @@ const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences( #else prefs.viewport_meta_enabled = false; #endif @@ -1293,7 +1280,7 @@ diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser diff --git a/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java b/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java --- a/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java +++ b/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java -@@ -217,6 +217,7 @@ import org.chromium.url.Origin; +@@ -231,6 +231,7 @@ import java.util.Map; params.getCanLoadLocalResources(), params.getIsRendererInitiated(), params.getShouldReplaceCurrentEntry(), @@ -1301,7 +1288,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/frameh params.getInitiatorOrigin(), params.getHasUserGesture(), params.getShouldClearHistoryList(), -@@ -284,13 +285,13 @@ import org.chromium.url.Origin; +@@ -298,13 +299,13 @@ import java.util.Map; public void setUseDesktopUserAgent( boolean override, boolean reloadOnChange, boolean skipOnInitialNavigation) { if (mNativeNavigationControllerAndroid != 0) { @@ -1322,7 +1309,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/frameh NavigationControllerImplJni.get() .setUseDesktopUserAgent( -@@ -465,7 +466,7 @@ import org.chromium.url.Origin; +@@ -479,7 +480,7 @@ import java.util.Map; @Nullable String dataUrlAsString, boolean canLoadLocalResources, boolean isRendererInitiated, @@ -1334,7 +1321,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 -@@ -790,7 +790,6 @@ void RenderThreadImpl::InitializeRenderer( +@@ -799,7 +799,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 32bcba0b..d779bf80 100644 --- a/build/patches/Viewport-Protection-flag.patch +++ b/build/patches/Viewport-Protection-flag.patch @@ -211,7 +211,7 @@ new file mode 100644 diff --git a/components/guest_view/browser/guest_view_base.cc b/components/guest_view/browser/guest_view_base.cc --- a/components/guest_view/browser/guest_view_base.cc +++ b/components/guest_view/browser/guest_view_base.cc -@@ -688,6 +688,14 @@ void GuestViewBase::AttachToOuterWebContentsFrame( +@@ -689,6 +689,14 @@ void GuestViewBase::AttachToOuterWebContentsFrame( std::move(attachment_callback).Run(); } @@ -269,12 +269,12 @@ diff --git a/third_party/blink/public/common/widget/device_emulation_params.h b/ // Emulated screen size. Typically full / physical size of the device screen // in DIP. Empty size means using default value: original one for kDesktop // screen position, equal to |view_size| for kMobile. -@@ -78,7 +81,8 @@ inline bool operator==(const DeviceEmulationParams& a, - a.viewport_offset == b.viewport_offset && +@@ -82,7 +85,8 @@ inline bool operator==(const DeviceEmulationParams& a, a.viewport_scale == b.viewport_scale && a.viewport_segments == b.viewport_segments && -- a.device_posture == b.device_posture; -+ a.device_posture == b.device_posture && + a.device_posture == b.device_posture && +- a.force_android_overlay_scrollbar == b.force_android_overlay_scrollbar; ++ a.force_android_overlay_scrollbar == b.force_android_overlay_scrollbar && + a.force_mobile_calc == b.force_mobile_calc; } @@ -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 -@@ -4523,6 +4523,7 @@ +@@ -4572,6 +4572,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, -@@ -4530,7 +4531,6 @@ +@@ -4579,7 +4580,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 -@@ -2356,7 +2356,12 @@ ComputedStyleBuilder StyleResolver::InitialStyleBuilderForElement() const { +@@ -2355,7 +2355,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 { -@@ -148,8 +149,22 @@ class CORE_EXPORT MouseEvent : public UIEventWithKeyState { +@@ -147,8 +148,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 -@@ -1122,7 +1122,7 @@ WebPagePopupImpl* WebViewImpl::OpenPagePopup(PagePopupClient* client) { +@@ -1111,7 +1111,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 -@@ -1601,7 +1601,12 @@ int LocalDOMWindow::outerHeight() const { +@@ -1581,7 +1581,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; -@@ -1626,7 +1631,12 @@ int LocalDOMWindow::outerWidth() const { +@@ -1606,7 +1611,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; -@@ -1822,7 +1832,8 @@ double LocalDOMWindow::devicePixelRatio() const { +@@ -1802,7 +1812,8 @@ double LocalDOMWindow::devicePixelRatio() const { if (!GetFrame()) return 0.0; @@ -448,8 +448,8 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p + return GetFrame()->DevicePixelRatio(/*with_zoom_factor*/false); } - ScriptPromise LocalDOMWindow::scrollBy(ScriptState* script_state, -@@ -2432,6 +2443,23 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate, + ScriptPromise LocalDOMWindow::scrollBy(ScriptState* script_state, +@@ -2438,6 +2449,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 -@@ -2483,6 +2511,15 @@ DOMWindow* LocalDOMWindow::openPictureInPictureWindow( +@@ -2489,6 +2517,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 -@@ -1691,6 +1691,10 @@ void LocalFrame::RestoreScrollOffsets() { +@@ -1692,6 +1692,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_); } -@@ -1880,12 +1884,16 @@ mojom::blink::DevicePostureType LocalFrame::GetDevicePosture() { +@@ -1881,12 +1885,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; } -@@ -3484,6 +3492,11 @@ void LocalFrame::SetScaleFactor(float scale_factor) { +@@ -3485,6 +3493,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 -@@ -432,7 +432,8 @@ class CORE_EXPORT LocalFrame final +@@ -438,7 +438,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); -@@ -441,7 +442,7 @@ class CORE_EXPORT LocalFrame final +@@ -447,7 +448,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. -@@ -1101,6 +1102,7 @@ class CORE_EXPORT LocalFrame final +@@ -1107,6 +1108,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 -@@ -1959,6 +1959,15 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( +@@ -1958,6 +1958,15 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( if (DeviceEmulator() && widget_base_ && !widget_base_->WillBeDestroyed()) { DeviceEmulator()->UpdateVisualProperties(visual_properties); @@ -681,7 +681,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_remote_frame_impl.cc b/third_party/blink/renderer/core/frame/web_remote_frame_impl.cc --- a/third_party/blink/renderer/core/frame/web_remote_frame_impl.cc +++ b/third_party/blink/renderer/core/frame/web_remote_frame_impl.cc -@@ -361,7 +361,8 @@ void WebRemoteFrameImpl::InitializeFrameVisualProperties( +@@ -360,7 +360,8 @@ void WebRemoteFrameImpl::InitializeFrameVisualProperties( visual_properties.page_scale_factor = ancestor_widget->PageScaleInMainFrame(); visual_properties.is_pinch_gesture_active = ancestor_widget->PinchGestureActiveInMainFrame(); @@ -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 -@@ -107,6 +107,13 @@ +@@ -108,6 +108,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 { -@@ -1269,7 +1276,96 @@ void Page::UpdateAcceleratedCompositingSettings() { +@@ -1280,7 +1287,96 @@ void Page::UpdateAcceleratedCompositingSettings() { } } @@ -849,7 +849,7 @@ 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 -@@ -538,6 +538,10 @@ class CORE_EXPORT Page final : public GarbageCollected, +@@ -536,6 +536,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); @@ -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 -@@ -2110,6 +2110,12 @@ class ComputedStyle final : public ComputedStyleBase { +@@ -2117,6 +2117,12 @@ class ComputedStyle final : public ComputedStyleBase { IsRunningBackdropFilterAnimationOnCompositor(); } diff --git a/build/patches/WIN-Add-some-prefs-to-secure-preferences.patch b/build/patches/WIN-Add-some-prefs-to-secure-preferences.patch index bd7c277e..f05d3120 100644 --- a/build/patches/WIN-Add-some-prefs-to-secure-preferences.patch +++ b/build/patches/WIN-Add-some-prefs-to-secure-preferences.patch @@ -9,7 +9,7 @@ Subject: WIN Add some prefs to secure preferences diff --git a/chrome/browser/prefs/chrome_pref_service_factory.cc b/chrome/browser/prefs/chrome_pref_service_factory.cc --- a/chrome/browser/prefs/chrome_pref_service_factory.cc +++ b/chrome/browser/prefs/chrome_pref_service_factory.cc -@@ -119,6 +119,14 @@ bool g_disable_domain_check_for_testing = false; +@@ -118,6 +118,14 @@ bool g_disable_domain_check_for_testing = false; // See CleanupDeprecatedTrackedPreferences() in pref_hash_filter.cc to remove a // deprecated tracked preference. const auto kTrackedPrefs = std::to_array({ diff --git a/build/patches/WIN-enable-pdf-plugin.patch b/build/patches/WIN-enable-pdf-plugin.patch index 4a88a069..fb3973c3 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 -@@ -2408,7 +2408,9 @@ WebAutofillClient* LocalFrame::GetAutofillClient() { +@@ -2409,7 +2409,9 @@ WebAutofillClient* LocalFrame::GetAutofillClient() { } PluginData* LocalFrame::GetPluginData() const { diff --git a/build/patches/Warning-message-for-unsupported-hardware-aes.patch b/build/patches/Warning-message-for-unsupported-hardware-aes.patch index ed6a23a6..18a954cf 100644 --- a/build/patches/Warning-message-for-unsupported-hardware-aes.patch +++ b/build/patches/Warning-message-for-unsupported-hardware-aes.patch @@ -10,8 +10,7 @@ attacks, so it is better to warn the user of the presence of an unsupported device. you can remove the message by going to chrome://flags/#no-hw-aes-warning --- - base/base_switches.cc | 2 ++ - base/base_switches.h | 1 + + base/base_switches.h | 2 ++ chrome/BUILD.gn | 3 +++ chrome/app/chrome_main_delegate.cc | 9 +++++++++ chrome/app/generated_resources.grd | 4 ++++ @@ -20,38 +19,27 @@ you can remove the message by going to chrome://flags/#no-hw-aes-warning .../Warning-message-for-unsupported-hardware-aes.inc | 10 ++++++++++ .../Warning-message-for-unsupported-hardware-aes.inc | 4 ++++ .../Warning-message-for-unsupported-hardware-aes.inc | 1 + - 10 files changed, 44 insertions(+) + 9 files changed, 43 insertions(+) create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Warning-message-for-unsupported-hardware-aes.inc create mode 100644 cromite_flags/content/public/common/content_features_cc/Warning-message-for-unsupported-hardware-aes.inc create mode 100644 cromite_flags/content/public/common/content_features_h/Warning-message-for-unsupported-hardware-aes.inc -diff --git a/base/base_switches.cc b/base/base_switches.cc ---- a/base/base_switches.cc -+++ b/base/base_switches.cc -@@ -187,6 +187,8 @@ const char kPackageVersionName[] = "package-version-name"; - - const char kDesktopModeViewportMetaEnabled[] = "dm-viewport-meta-enabled"; - -+const char kNoAESHardware[] = "no-aes-hardware"; -+ - #if BUILDFLAG(IS_CHROMEOS) - // Override the default scheduling boosting value for urgent tasks. - // This can be adjusted if a specific chromeos device shows better perf/power diff --git a/base/base_switches.h b/base/base_switches.h --- a/base/base_switches.h +++ b/base/base_switches.h -@@ -34,6 +34,7 @@ extern const char kTraceToFileName[]; - extern const char kV[]; - extern const char kVModule[]; - extern const char kWaitForDebugger[]; -+extern const char kNoAESHardware[]; +@@ -130,6 +130,8 @@ inline constexpr char kWaitForDebugger[] = "wait-for-debugger"; + // See flag_descriptions.cc for more details. + inline constexpr char kEnableBenchmarking[] = "enable-benchmarking"; ++inline constexpr char kNoAESHardware[] = "no-aes-hardware"; ++ #if BUILDFLAG(IS_WIN) - extern const char kDisableHighResTimer[]; + // Disable high-resolution timer on Windows. + inline constexpr char kDisableHighResTimer[] = "disable-highres-timer"; diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn --- a/chrome/BUILD.gn +++ b/chrome/BUILD.gn -@@ -431,6 +431,7 @@ if (is_win) { +@@ -437,6 +437,7 @@ if (is_win) { "//components/webapps/isolated_web_apps:scheme", "//content/public/app", "//crypto", @@ -59,7 +47,7 @@ diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn "//net:net_resources", "//sandbox/win:sandbox", "//third_party/cld_3/src/src:cld_3", -@@ -1636,6 +1637,8 @@ if (is_android) { +@@ -1646,6 +1647,8 @@ if (is_android) { "//chrome/common/profiler", "//chrome/gpu", "//chrome/renderer", @@ -71,7 +59,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 -@@ -100,6 +100,9 @@ +@@ -101,6 +101,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 +69,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) -@@ -1102,6 +1105,12 @@ std::optional ChromeMainDelegate::BasicStartupComplete() { +@@ -1104,6 +1107,12 @@ std::optional ChromeMainDelegate::BasicStartupComplete() { } #endif @@ -97,7 +85,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 -@@ -7373,6 +7373,10 @@ Keep your key file in a safe place. You will need it to create new versions of y +@@ -7383,6 +7383,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. @@ -111,7 +99,7 @@ diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources diff --git a/chrome/browser/ui/startup/bad_flags_prompt.cc b/chrome/browser/ui/startup/bad_flags_prompt.cc --- a/chrome/browser/ui/startup/bad_flags_prompt.cc +++ b/chrome/browser/ui/startup/bad_flags_prompt.cc -@@ -287,6 +287,15 @@ void ShowBadFlagsPrompt(content::WebContents* web_contents) { +@@ -288,6 +288,15 @@ void ShowBadFlagsPrompt(content::WebContents* web_contents) { return; } } @@ -130,7 +118,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 -@@ -3832,6 +3832,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( +@@ -3862,6 +3862,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( switches::kSchedulerBoostUrgent, #endif switches::kDesktopModeViewportMetaEnabled, diff --git a/build/patches/Welcome-screen.patch b/build/patches/Welcome-screen.patch index 9604b3e5..d5372c55 100644 --- a/build/patches/Welcome-screen.patch +++ b/build/patches/Welcome-screen.patch @@ -32,7 +32,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni --- a/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni -@@ -525,6 +525,7 @@ chrome_java_resources = [ +@@ -524,6 +524,7 @@ chrome_java_resources = [ "java/res/layout/find_in_page.xml", "java/res/layout/find_toolbar.xml", "java/res/layout/fre_tos_privacy_disclaimer.xml", @@ -43,7 +43,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -661,6 +661,8 @@ chrome_java_sources = [ +@@ -673,6 +673,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", @@ -309,10 +309,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR -import org.chromium.chrome.browser.signin.SigninCheckerProvider; -import org.chromium.chrome.browser.signin.SigninFirstRunFragment; +import org.chromium.chrome.browser.firstrun.ToSAndUMAFirstRunFragment; + import org.chromium.chrome.browser.ui.default_browser_promo.DefaultBrowserPromoUtils; 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; -@@ -236,7 +236,7 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa +@@ -237,7 +237,7 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa /** Creates first page and sets up adapter. Should result UI being shown on the screen. */ private void createFirstPage() { BooleanSupplier showWelcomePage = () -> !FirstRunStatus.shouldSkipWelcomePage(); @@ -321,7 +321,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR mFreProgressStates.add(MobileFreProgress.WELCOME_SHOWN); mPagerAdapter = new FirstRunPagerAdapter(FirstRunActivity.this, mPages); mPager.setAdapter(mPagerAdapter); -@@ -261,9 +261,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa +@@ -262,9 +262,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa // // TODO(b/245912657): explicitly sign in supervised users in {@link // FullscreenSigninMediator#handleContinueWithNative} rather than relying on SigninChecker. @@ -331,7 +331,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR assumeNonNull(mFreProperties); mFirstRunFlowSequencer.updateFirstRunProperties(mFreProperties); -@@ -279,16 +276,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa +@@ -280,16 +277,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa mFreProgressStates.add(MobileFreProgress.DEFAULT_SEARCH_ENGINE_SHOWN); } @@ -345,10 +345,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR - mPages.add(new FirstRunPage<>(HistorySyncFirstRunFragment.class, showHistorySync)); - mFreProgressStates.add(MobileFreProgress.HISTORY_SYNC_OPT_IN_SHOWN); - - if (mPagerAdapter != null) { - mPagerAdapter.notifyDataSetChanged(); - } -@@ -515,6 +502,21 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa + if (ChromeFeatureList.sDefaultBrowserPromoFre.isEnabled()) { + BooleanSupplier showDefaultBrowserPromo = + () -> { +@@ -536,6 +523,21 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa return true; } @@ -370,7 +370,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR // Activity: @Override public void onRestoreInstanceState(@Nullable Bundle state) { -@@ -662,11 +664,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa +@@ -683,11 +685,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa public void acceptTermsOfService(boolean allowMetricsAndCrashUploading) { assert mNativeInitializationPromise.isFulfilled(); @@ -518,7 +518,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR 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 -@@ -41,6 +41,7 @@ public class FirstRunUtils { +@@ -43,6 +43,7 @@ public class FirstRunUtils { * collect stats. */ static void acceptTermsOfService(boolean allowMetricsAndCrashUploading) { diff --git a/build/patches/add-browser-policy.patch b/build/patches/add-browser-policy.patch index 62a9c054..3685df77 100644 --- a/build/patches/add-browser-policy.patch +++ b/build/patches/add-browser-policy.patch @@ -43,11 +43,11 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/base/win/win_util.cc b/base/win/win_util.cc --- a/base/win/win_util.cc +++ b/base/win/win_util.cc -@@ -152,80 +152,18 @@ bool EnablePerMonitorV2() { +@@ -155,80 +155,18 @@ bool EnablePerMonitorV2() { } bool* GetDomainEnrollmentStateStorage() { -- static bool state = IsOS(OS_DOMAINMEMBER); +- static bool state = ::IsOS(OS_DOMAINMEMBER); + static bool state = false; return &state; } @@ -130,7 +130,7 @@ diff --git a/base/win/win_util.cc b/base/win/win_util.cc 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 -@@ -84,9 +84,7 @@ by a child template that "extends" this file. +@@ -81,9 +81,7 @@ by a child template that "extends" this file. @@ -140,7 +140,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -@@ -112,7 +110,6 @@ by a child template that "extends" this file. +@@ -109,7 +107,6 @@ by a child template that "extends" this file. resizeTo, moveBy}|). --> @@ -148,7 +148,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -@@ -159,7 +156,6 @@ by a child template that "extends" this file. +@@ -162,7 +159,6 @@ by a child template that "extends" this file. @@ -229,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 -@@ -2530,9 +2530,9 @@ bool AreFuturePoliciesEnabledByDefault() { +@@ -2518,9 +2518,9 @@ bool AreFuturePoliciesEnabledByDefault() { if (base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kTestType)) { return true; } @@ -242,7 +242,7 @@ diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc } } // namespace -@@ -3378,7 +3378,10 @@ std::unique_ptr BuildHandlerList( +@@ -3382,7 +3382,10 @@ std::unique_ptr BuildHandlerList( key::kExtensionInstallCloudPolicyChecksEnabled, extensions::pref_names::kExtensionInstallCloudPolicyChecksEnabled, base::Value::Type::BOOLEAN)); @@ -257,16 +257,7 @@ diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc diff --git a/chrome/browser/signin/account_consistency_mode_manager.cc b/chrome/browser/signin/account_consistency_mode_manager.cc --- a/chrome/browser/signin/account_consistency_mode_manager.cc +++ b/chrome/browser/signin/account_consistency_mode_manager.cc -@@ -170,7 +170,7 @@ void AccountConsistencyModeManager::SetIgnoreMissingOAuthClientForTesting() { - // static - bool AccountConsistencyModeManager::ShouldBuildServiceForProfile( - Profile* profile) { -- return profile->IsRegularProfile(); -+ return false; - } - - AccountConsistencyMethod -@@ -201,7 +201,8 @@ AccountConsistencyModeManager::ComputeAccountConsistencyMethod( +@@ -93,7 +93,8 @@ signin::AccountConsistencyMethod ComputeAccountConsistencyMethod( #endif #if BUILDFLAG(ENABLE_MIRROR) @@ -276,7 +267,7 @@ diff --git a/chrome/browser/signin/account_consistency_mode_manager.cc b/chrome/ #elif BUILDFLAG(ENABLE_DICE_SUPPORT) if (!profile->GetPrefs()->GetBoolean(prefs::kSigninAllowed)) { VLOG(1) << "Desktop Identity Consistency disabled as sign-in to Chrome " -@@ -209,7 +210,7 @@ AccountConsistencyModeManager::ComputeAccountConsistencyMethod( +@@ -101,7 +102,7 @@ signin::AccountConsistencyMethod ComputeAccountConsistencyMethod( return AccountConsistencyMethod::kDisabled; } @@ -285,6 +276,15 @@ diff --git a/chrome/browser/signin/account_consistency_mode_manager.cc b/chrome/ #else NOTREACHED(); #endif +@@ -195,7 +196,7 @@ void AccountConsistencyModeManager::SetIgnoreMissingOAuthClientForTesting() { + // static + bool AccountConsistencyModeManager::ShouldBuildServiceForProfile( + Profile* profile) { +- return profile->IsRegularProfile(); ++ return false; + } + + AccountConsistencyMethod diff --git a/chrome/browser/signin/account_consistency_mode_manager_factory.cc b/chrome/browser/signin/account_consistency_mode_manager_factory.cc --- a/chrome/browser/signin/account_consistency_mode_manager_factory.cc +++ b/chrome/browser/signin/account_consistency_mode_manager_factory.cc @@ -339,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 -@@ -293,7 +293,9 @@ void ChromeSigninClient::DoFinalInit() { +@@ -289,7 +289,9 @@ void ChromeSigninClient::DoFinalInit() { bool ChromeSigninClient::ProfileAllowsSigninCookies(Profile* profile) { scoped_refptr cookie_settings = CookieSettingsFactory::GetForProfile(profile); @@ -350,7 +350,7 @@ diff --git a/chrome/browser/signin/chrome_signin_client.cc b/chrome/browser/sign } PrefService* ChromeSigninClient::GetPrefs() { -@@ -411,6 +413,9 @@ bool ChromeSigninClient::AreNetworkCallsDelayed() { +@@ -407,6 +409,9 @@ bool ChromeSigninClient::AreNetworkCallsDelayed() { } void ChromeSigninClient::DelayNetworkCall(base::OnceClosure callback) { @@ -370,8 +370,8 @@ diff --git a/chrome/browser/signin/dice_response_handler.cc b/chrome/browser/sig -const char kDiceTokenBindingOutcomeHistogram[] = +[[maybe_unused]] const char kDiceTokenBindingOutcomeHistogram[] = "Signin.DiceTokenBindingOutcome"; - - // Used for UMA. Do not reorder, append new values at the end. + const char kDiceEnableSyncHeaderAccountInfoIsPresent[] = + "Signin.DiceEnableSyncHeaderAccountInfoIsPresent"; diff --git a/chrome/browser/ui/webui/policy/policy_ui_handler.cc b/chrome/browser/ui/webui/policy/policy_ui_handler.cc --- a/chrome/browser/ui/webui/policy/policy_ui_handler.cc +++ b/chrome/browser/ui/webui/policy/policy_ui_handler.cc @@ -510,7 +510,7 @@ diff --git a/chrome/browser/ui/webui/policy/policy_ui_handler.cc b/chrome/browse diff --git a/chrome/browser/ui/webui/policy/policy_ui_handler.h b/chrome/browser/ui/webui/policy/policy_ui_handler.h --- a/chrome/browser/ui/webui/policy/policy_ui_handler.h +++ b/chrome/browser/ui/webui/policy/policy_ui_handler.h -@@ -81,6 +81,8 @@ class PolicyUIHandler : public content::WebUIMessageHandler, +@@ -80,6 +80,8 @@ class PolicyUIHandler : public content::WebUIMessageHandler, private: void HandleExportPoliciesJson(const base::ListValue& args); @@ -534,7 +534,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 -@@ -68,56 +68,6 @@ const CountryLocaleMap& GetAllowedCountryToLocaleMap() { +@@ -67,56 +67,6 @@ const CountryLocaleMap& GetAllowedCountryToLocaleMap() { return *allowed_map; } @@ -591,7 +591,7 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm } // namespace BASE_FEATURE(kCommerceAllowLocalImages, base::FEATURE_DISABLED_BY_DEFAULT); -@@ -279,16 +229,15 @@ const base::FeatureParam kRevertIconOnFailure{ +@@ -252,16 +202,15 @@ const base::FeatureParam kRevertIconOnFailure{ &kShoppingList, kRevertIconOnFailureParam, false}; bool IsPartnerMerchant(const GURL& url) { @@ -611,7 +611,7 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm } bool IsCartDiscountFeatureEnabled() { -@@ -340,6 +289,7 @@ bool IsEnabledForCountryAndLocale(const base::Feature& feature, +@@ -313,6 +262,7 @@ bool IsEnabledForCountryAndLocale(const base::Feature& feature, bool IsRegionLockedFeatureEnabled(const base::Feature& feature, const std::string& country_code, const std::string& locale) { @@ -619,7 +619,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 -@@ -372,6 +322,7 @@ base::TimeDelta GetDiscountFetchDelay() { +@@ -345,6 +295,7 @@ base::TimeDelta GetDiscountFetchDelay() { } bool IsNoDiscountMerchant(const GURL& url) { @@ -627,7 +627,7 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm auto* pattern_from_component = commerce_heuristics::CommerceHeuristicsData::GetInstance() .GetNoDiscountMerchantPattern(); -@@ -383,4 +334,6 @@ bool IsNoDiscountMerchant(const GURL& url) { +@@ -356,4 +307,6 @@ bool IsNoDiscountMerchant(const GURL& url) { return RE2::PartialMatch(url.host(), *pattern_from_component); } #endif @@ -995,7 +995,7 @@ diff --git a/components/signin/features.gni b/components/signin/features.gni diff --git a/components/signin/internal/identity_manager/gaia_cookie_manager_service.cc b/components/signin/internal/identity_manager/gaia_cookie_manager_service.cc --- a/components/signin/internal/identity_manager/gaia_cookie_manager_service.cc +++ b/components/signin/internal/identity_manager/gaia_cookie_manager_service.cc -@@ -462,6 +462,8 @@ void GaiaCookieManagerService::RegisterPrefs(PrefRegistrySimple* registry) { +@@ -461,6 +461,8 @@ void GaiaCookieManagerService::RegisterPrefs(PrefRegistrySimple* registry) { } void GaiaCookieManagerService::InitCookieListener() { @@ -1004,7 +1004,7 @@ diff --git a/components/signin/internal/identity_manager/gaia_cookie_manager_ser DCHECK(!cookie_listener_receiver_.is_bound()); network::mojom::CookieManager* cookie_manager = -@@ -856,6 +858,8 @@ void GaiaCookieManagerService::OnSetAccountsFinished( +@@ -855,6 +857,8 @@ void GaiaCookieManagerService::OnSetAccountsFinished( } void GaiaCookieManagerService::HandleNextRequest() { diff --git a/build/patches/autofill-miscellaneous.patch b/build/patches/autofill-miscellaneous.patch index 816fc997..00f658f5 100644 --- a/build/patches/autofill-miscellaneous.patch +++ b/build/patches/autofill-miscellaneous.patch @@ -41,7 +41,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/AutofillOptions diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b/chrome/browser/password_manager/chrome_password_manager_client.cc --- a/chrome/browser/password_manager/chrome_password_manager_client.cc +++ b/chrome/browser/password_manager/chrome_password_manager_client.cc -@@ -1131,10 +1131,6 @@ ChromePasswordManagerClient::GetHttpAuthManager() { +@@ -1130,10 +1130,6 @@ ChromePasswordManagerClient::GetHttpAuthManager() { autofill::AutofillCrowdsourcingManager* ChromePasswordManagerClient::GetAutofillCrowdsourcingManager() { @@ -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 -@@ -458,15 +458,6 @@ ChromeAutofillClient::GetURLLoaderFactory() { +@@ -463,15 +463,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 -@@ -118,7 +118,6 @@ class ChromeAutofillClient : public ContentAutofillClient { +@@ -122,7 +122,6 @@ class ChromeAutofillClient : public ContentAutofillClient { version_info::Channel GetChannel() const final; bool IsOffTheRecord() const final; scoped_refptr GetURLLoaderFactory() final; @@ -219,7 +219,7 @@ diff --git a/components/autofill/core/browser/crowdsourcing/autofill_crowdsourci diff --git a/components/autofill/core/browser/crowdsourcing/votes_uploader.cc b/components/autofill/core/browser/crowdsourcing/votes_uploader.cc --- a/components/autofill/core/browser/crowdsourcing/votes_uploader.cc +++ b/components/autofill/core/browser/crowdsourcing/votes_uploader.cc -@@ -426,9 +426,6 @@ void VotesUploader::UploadVote( +@@ -517,9 +517,6 @@ void VotesUploader::UploadVote( client_->GetUkmRecorder(), ukm_source_id, *submitted_form, submission_timestamp); } @@ -232,7 +232,7 @@ diff --git a/components/autofill/core/browser/crowdsourcing/votes_uploader.cc b/ diff --git a/components/autofill/core/browser/foundations/autofill_client.h b/components/autofill/core/browser/foundations/autofill_client.h --- a/components/autofill/core/browser/foundations/autofill_client.h +++ b/components/autofill/core/browser/foundations/autofill_client.h -@@ -303,10 +303,6 @@ class AutofillClient { +@@ -309,10 +309,6 @@ class AutofillClient { // Returns the VotesUploader. virtual VotesUploader& GetVotesUploader() = 0; @@ -246,7 +246,7 @@ diff --git a/components/autofill/core/browser/foundations/autofill_client.h b/co diff --git a/components/autofill/core/browser/foundations/autofill_manager.cc b/components/autofill/core/browser/foundations/autofill_manager.cc --- a/components/autofill/core/browser/foundations/autofill_manager.cc +++ b/components/autofill/core/browser/foundations/autofill_manager.cc -@@ -317,12 +317,6 @@ void AutofillManager::QueryServerPredictions( +@@ -315,12 +315,6 @@ void AutofillManager::QueryServerPredictions( // StartQueryRequest() expects to include the queried forms. This would allow // StartQueryRequest() to provide the queried forms to the callback // automatically, instead of passing them in separately here. @@ -259,7 +259,7 @@ diff --git a/components/autofill/core/browser/foundations/autofill_manager.cc b/ } void AutofillManager::OnFormsParsed(const std::vector& forms, -@@ -359,19 +353,6 @@ void AutofillManager::OnFormsParsed(const std::vector& forms, +@@ -357,19 +351,6 @@ void AutofillManager::OnFormsParsed(const std::vector& forms, features::kAutofillServerQueryPredictionsEarly)) { return; } @@ -282,14 +282,14 @@ 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 -@@ -825,6 +825,7 @@ BASE_FEATURE(kAutofillPopupDontAcceptNonVisibleEnoughSuggestion, +@@ -886,6 +886,7 @@ BASE_FEATURE(kAutofillPopupDontAcceptNonVisibleEnoughSuggestion, // affect their functionality. BASE_FEATURE(kAutofillPopupZOrderSecuritySurface, base::FEATURE_ENABLED_BY_DEFAULT); +SET_CROMITE_FEATURE_ENABLED(kAutofillPopupZOrderSecuritySurface); - // Replaces cached web elements in AutofillAgent and FormTracker by their - // renderer ids. + // When enabled, we prefer a `PHONE_HOME_COUNTRY_CODE` heuristic type over a + // `HtmlFieldType::kCountryCode`. diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/autofill/core/common/autofill_prefs.cc --- a/components/autofill/core/common/autofill_prefs.cc +++ b/components/autofill/core/common/autofill_prefs.cc diff --git a/build/patches/disable-WebView-variations-support.patch b/build/patches/disable-WebView-variations-support.patch index 8f757bdf..bbf0c315 100644 --- a/build/patches/disable-WebView-variations-support.patch +++ b/build/patches/disable-WebView-variations-support.patch @@ -29,7 +29,7 @@ diff --git a/android_webview/glue/java/src/com/android/webview/chromium/WebViewC diff --git a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java --- a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java +++ b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java -@@ -677,10 +677,6 @@ public class WebViewChromiumFactoryProvider implements WebViewFactoryProvider { +@@ -691,10 +691,6 @@ public class WebViewChromiumFactoryProvider implements WebViewFactoryProvider { // This must happen after pref value has been read and SafeMode setup has completed. setupStartupTaskExperiments(androidXConfig); diff --git a/build/patches/disable-appending-variations-header.patch b/build/patches/disable-appending-variations-header.patch index 0395130c..f0df06e3 100644 --- a/build/patches/disable-appending-variations-header.patch +++ b/build/patches/disable-appending-variations-header.patch @@ -4,22 +4,19 @@ Subject: disable appending variations header License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - components/variations/net/variations_http_headers.cc | 5 +---- - 1 file changed, 1 insertion(+), 4 deletions(-) + components/variations/net/variations_http_headers.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/variations/net/variations_http_headers.cc b/components/variations/net/variations_http_headers.cc --- a/components/variations/net/variations_http_headers.cc +++ b/components/variations/net/variations_http_headers.cc -@@ -120,10 +120,7 @@ URLValidationResult GetUrlValidationResult(const GURL& url) { - // Also, logs the result of validating |url| in histograms, one of which ends in - // |suffix|. - bool ShouldAppendVariationsHeader(const GURL& url, const std::string& suffix) { -- URLValidationResult result = GetUrlValidationResult(url); -- base::UmaHistogramEnumeration( -- "Variations.Headers.URLValidationResult." + suffix, result); -- return result == URLValidationResult::kShouldAppend; -+ return false; +@@ -131,7 +131,7 @@ bool ShouldAppendVariationsHeader(const GURL& url, InIncognito incognito) { + // exactly www.googleadservices.com or + // international TLD domains *.google. or *.youtube.. + // 2. Only transmit for non-Incognito profiles. +- return incognito == InIncognito::kNo && ++ return ((false)) && incognito == InIncognito::kNo && + GetUrlValidationResult(url) == URLValidationResult::kShouldAppend; } - // Returns true if the request is sent from a Google web property, i.e. from a -- 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..d02202be 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; +@@ -148,12 +148,12 @@ const size_t kMaxHostLength = 4096; // Time between IPv6 probes, i.e. for how long results of each IPv6 probe are // cached. diff --git a/build/patches/do-not-block-build-incompatible-profiles.patch b/build/patches/do-not-block-build-incompatible-profiles.patch index 89d025f7..6764ac85 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 -@@ -2766,7 +2766,7 @@ template("run_mksnapshot") { +@@ -2820,7 +2820,7 @@ template("run_mksnapshot") { # Replace this with --warn-about-builtin-profile-data to see the full # list of builtins with incompatible profiles. diff --git a/build/patches/enable-ftrivial-auto-var-init-zero.patch b/build/patches/enable-ftrivial-auto-var-init-zero.patch index e1cd09c5..775ab997 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 -@@ -481,6 +481,10 @@ config("compiler") { +@@ -1058,6 +1058,10 @@ config("linker") { 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 c8b579f3..1d3ef083 100644 --- a/build/patches/eyeo-133.0.6943.49-android_api.patch +++ b/build/patches/eyeo-133.0.6943.49-android_api.patch @@ -53,7 +53,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") -@@ -561,6 +564,7 @@ if (_is_default_toolchain) { +@@ -570,6 +573,7 @@ if (_is_default_toolchain) { "//chrome/browser/xsurface:java", "//chrome/browser/xsurface_provider:dependency_provider_impl_java", "//chrome/browser/xsurface_provider:java", @@ -61,7 +61,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//components/android_autofill/browser:java", "//components/autofill/android:autofill_features_java", "//components/autofill/android:autofill_java", -@@ -1497,6 +1501,7 @@ if (_is_default_toolchain) { +@@ -1514,6 +1518,7 @@ if (_is_default_toolchain) { "//chrome/test/data/translate/", "//chrome/test/data/webauthn/", "//chrome/test/media_router/resources/", @@ -69,7 +69,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/", -@@ -3098,6 +3103,12 @@ if (_is_default_toolchain) { +@@ -3125,6 +3130,12 @@ if (_is_default_toolchain) { sources += [ "java/src/org/chromium/chrome/browser/media/MediaCapturePickerManagerBridge.java" ] } @@ -82,7 +82,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" ] -@@ -3189,6 +3200,7 @@ if (_is_default_toolchain) { +@@ -3216,6 +3227,7 @@ if (_is_default_toolchain) { "//chrome/browser/ui/plus_addresses/android:jni_headers", "//chrome/browser/util:jni_headers", "//chrome/browser/webauthn/android:jni_headers", @@ -103,10 +103,10 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java import("//content/public/common/features.gni") -@@ -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", +@@ -66,6 +69,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java", + "java/src/org/chromium/chrome/browser/actor/ActorForegroundServiceControllerImpl.java", + "java/src/org/chromium/chrome/browser/actor/ActorForegroundServiceImpl.java", + "java/src/org/chromium/chrome/browser/adblock/TabIdTranslator.java", "java/src/org/chromium/chrome/browser/ai/AiAssistantService.java", "java/src/org/chromium/chrome/browser/ai/PageSummaryButtonController.java", @@ -155,7 +155,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 -@@ -3339,6 +3339,10 @@ static_library("browser") { +@@ -3235,6 +3235,10 @@ static_library("browser") { ] deps += [ "//chrome/browser/password_entry_edit/android" ] @@ -217,7 +217,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 -@@ -1045,6 +1045,12 @@ static_library("ui") { +@@ -1076,6 +1076,12 @@ static_library("ui") { deps += [ "//components/themes:ntp_background_proto", ] 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 b9857581..7021d286 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 -@@ -276,6 +276,10 @@ if (_is_default_toolchain) { +@@ -281,6 +281,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" ] } -@@ -811,6 +815,10 @@ if (_is_default_toolchain) { +@@ -820,6 +824,10 @@ if (_is_default_toolchain) { "//chrome/browser/password_entry_edit:public_java", ] @@ -272,10 +272,10 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j --> + android:order="16" /> + ({ +@@ -198,6 +203,12 @@ const auto kTrackedPrefs = std::to_array({ EnforcementLevel::ENFORCE_ON_LOAD, PrefTrackingStrategy::ATOMIC, ValueType::IMPERSONAL}, #endif @@ -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" -@@ -251,6 +255,15 @@ +@@ -264,6 +268,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" -@@ -959,6 +972,15 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -974,6 +987,15 @@ void ChromeBrowserMainExtraPartsProfiles:: FederatedIdentityApiPermissionContextFactory::GetInstance(); FederatedIdentityAutoReauthnPermissionContextFactory::GetInstance(); FederatedIdentityPermissionContextFactory::GetInstance(); @@ -347,15 +347,15 @@ diff --git a/chrome/browser/resources/BUILD.gn b/chrome/browser/resources/BUILD. import("//chrome/browser/buildflags.gni") import("//chrome/common/features.gni") -@@ -313,6 +316,7 @@ group("dev_ui_resources") { - "predictors:resources", +@@ -311,6 +314,7 @@ group("dev_ui_resources") { "privacy_sandbox/internals:resources", "usb_internals:resources", + "webnn_internals:resources", + "//components/adblock/content/resources/adblock_internals:resources", "//components/commerce/core/internals/resources", "//components/data_sharing/data_sharing_internals/resources", "//components/download/resources/download_internals:resources", -@@ -387,6 +391,7 @@ repack("dev_ui_paks") { +@@ -386,6 +390,7 @@ repack("dev_ui_paks") { "$root_gen_dir/chrome/predictors_resources.pak", "$root_gen_dir/chrome/privacy_sandbox_internals_resources.pak", "$root_gen_dir/chrome/usb_internals_resources.pak", @@ -376,7 +376,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn import("//build/config/buildflags_paint_preview.gni") import("//build/config/compiler/compiler.gni") -@@ -410,6 +413,7 @@ static_library("ui") { +@@ -435,6 +438,7 @@ static_library("ui") { "//chrome/installer/util:with_no_strings", "//components/access_code_cast/common:metrics", "//components/account_id", @@ -435,7 +435,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc #include "chrome/browser/ui/tab_helpers.h" -@@ -103,6 +107,8 @@ +@@ -106,6 +110,8 @@ #include "chrome/common/chrome_features.h" #include "chrome/common/chrome_isolated_world_ids.h" #include "chrome/common/chrome_switches.h" @@ -444,7 +444,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc #include "components/blocked_content/popup_blocker_tab_helper.h" #include "components/blocked_content/popup_opener_tab_helper.h" #include "components/breadcrumbs/core/breadcrumbs_status.h" -@@ -343,6 +349,12 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -346,6 +352,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); -@@ -371,6 +383,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -374,6 +386,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { // completions. HttpAuthCacheStatus::HttpAuthCacheStatus::CreateForWebContents(web_contents); #endif // BUILDFLAG(IS_ANDROID) @@ -478,16 +478,16 @@ diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni import("//ash/ambient/resources/resources.gni") import("//build/config/chrome_build.gni") -@@ -124,6 +127,7 @@ template("chrome_extra_paks") { - "$root_gen_dir/chrome/common_resources.pak", +@@ -128,6 +131,7 @@ template("chrome_extra_paks") { + "$root_gen_dir/chrome/glic_shared_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", -@@ -164,6 +168,7 @@ template("chrome_extra_paks") { - "//chrome/browser/resources", +@@ -172,6 +176,7 @@ template("chrome_extra_paks") { + "//chrome/browser/resources/glic/shared:resources", "//chrome/browser/resources/saved_tab_groups_unsupported:resources", "//chrome/common:resources", + "//components/adblock/core/resources:adblock_resources", 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 72b58516..08d33972 100644 --- a/build/patches/eyeo-133.0.6943.49-extension_api.patch +++ b/build/patches/eyeo-133.0.6943.49-extension_api.patch @@ -37,7 +37,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 -@@ -838,6 +838,17 @@ source_set("extensions") { +@@ -841,6 +841,17 @@ source_set("extensions") { ] } @@ -2470,7 +2470,7 @@ diff --git a/chrome/common/extensions/api/_permission_features.json b/chrome/com "autofillPrivate": { "channel": "trunk", "extension_types": ["extension", "platform_app"], -@@ -411,6 +422,13 @@ +@@ -410,6 +421,13 @@ // "desktop_android" is not supported. "platforms": ["chromeos", "linux", "mac", "win"] }, @@ -2682,7 +2682,7 @@ diff --git a/chrome/common/extensions/api/api_sources.gni b/chrome/common/extens import("//chrome/common/features.gni") import("//components/guest_view/buildflags/buildflags.gni") -@@ -41,6 +44,8 @@ schema_sources_ = [ +@@ -42,6 +45,8 @@ schema_sources_ = [ "tabs.json", "web_authentication_proxy.webidl", "web_navigation.json", diff --git a/build/patches/kill-Location-fall-back-to-system.patch b/build/patches/kill-Location-fall-back-to-system.patch index bfc20c8c..ec9f0e65 100644 --- a/build/patches/kill-Location-fall-back-to-system.patch +++ b/build/patches/kill-Location-fall-back-to-system.patch @@ -57,7 +57,7 @@ diff --git a/services/device/geolocation/android/java/src/org/chromium/device/ge diff --git a/services/device/public/cpp/device_features.cc b/services/device/public/cpp/device_features.cc --- a/services/device/public/cpp/device_features.cc +++ b/services/device/public/cpp/device_features.cc -@@ -58,6 +58,7 @@ BASE_FEATURE(kLocationProviderManager, base::FEATURE_ENABLED_BY_DEFAULT); +@@ -63,6 +63,7 @@ BASE_FEATURE(kLocationProviderManager, base::FEATURE_ENABLED_BY_DEFAULT); #else BASE_FEATURE(kLocationProviderManager, base::FEATURE_DISABLED_BY_DEFAULT); #endif // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) @@ -65,7 +65,7 @@ diff --git a/services/device/public/cpp/device_features.cc b/services/device/pub #if BUILDFLAG(IS_ANDROID) // Enables registering & unregistering of the Battery Status Manager broadcast -@@ -102,7 +103,7 @@ const base::FeatureParam +@@ -107,7 +108,7 @@ const base::FeatureParam const base::FeatureParam kLocationProviderManagerParam{ &kLocationProviderManager, "LocationProviderManagerMode", diff --git a/build/patches/kill-Vision.patch b/build/patches/kill-Vision.patch index e8b22de0..26eab947 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 -@@ -306,8 +306,6 @@ if (_is_default_toolchain) { +@@ -311,8 +311,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/ungoogled-chromium-Disable-Network-Time-Tracker.patch b/build/patches/ungoogled-chromium-Disable-Network-Time-Tracker.patch index 9029d38a..7a1a0fbd 100644 --- a/build/patches/ungoogled-chromium-Disable-Network-Time-Tracker.patch +++ b/build/patches/ungoogled-chromium-Disable-Network-Time-Tracker.patch @@ -23,7 +23,7 @@ diff --git a/components/network_time/network_time_tracker.cc b/components/networ namespace { -@@ -324,8 +325,7 @@ void NetworkTimeTracker::UpdateNetworkTime(base::Time network_time, +@@ -325,8 +326,7 @@ void NetworkTimeTracker::UpdateNetworkTime(base::Time network_time, } bool NetworkTimeTracker::AreTimeFetchesEnabled() const { diff --git a/build/patches/ungoogled-chromium-Disable-profile-avatar.patch b/build/patches/ungoogled-chromium-Disable-profile-avatar.patch index 059f91c7..7c497ad8 100644 --- a/build/patches/ungoogled-chromium-Disable-profile-avatar.patch +++ b/build/patches/ungoogled-chromium-Disable-profile-avatar.patch @@ -7,14 +7,14 @@ Added some Bromite-specific further improvements License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- chrome/browser/BUILD.gn | 2 -- - chrome/browser/profiles/profile_attributes_entry.cc | 6 ------ + chrome/browser/profiles/profile_attributes_entry.cc | 8 -------- chrome/browser/profiles/profile_attributes_storage.cc | 2 +- - 3 files changed, 1 insertion(+), 9 deletions(-) + 3 files changed, 1 insertion(+), 11 deletions(-) diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -1206,8 +1206,6 @@ static_library("browser") { +@@ -1037,8 +1037,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", @@ -26,14 +26,16 @@ 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 -@@ -380,12 +380,6 @@ gfx::Image ProfileAttributesEntry::GetAvatarIcon( +@@ -370,14 +370,6 @@ ProfileAttributesEntry::GetAvatarIconWithType( int size_for_placeholder_avatar, bool use_high_res_file, const PlaceholderAvatarIconParams& icon_params) const { - if (IsUsingGAIAPicture()) { -- const gfx::Image* image = GetGAIAPicture(); -- if (image) -- return *image; +- // The picture may be null if it has not finished downloading yet; in that +- // case fall through to return the avatar-index-based icon below. +- if (const gfx::Image* image = GetGAIAPicture()) { +- return {*image, AvatarIconType::kNonPlaceholder}; +- } - } - #if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS) diff --git a/build/patches/ungoogled-chromium-Disable-translate-integration.patch b/build/patches/ungoogled-chromium-Disable-translate-integration.patch index 1a2cd49b..5a4db6b1 100644 --- a/build/patches/ungoogled-chromium-Disable-translate-integration.patch +++ b/build/patches/ungoogled-chromium-Disable-translate-integration.patch @@ -100,9 +100,9 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse private static final String TAG = "LanguageSettings"; @@ -113,35 +106,6 @@ public class LanguageSettings extends ChromeBaseSettingsFragment - ContentLanguagesPreference mLanguageListPref = + ContentLanguagesPreference languageListPref = (ContentLanguagesPreference) findPreference(PREFERRED_LANGUAGES_KEY); - mLanguageListPref.initialize(this, getProfile(), getPrefService()); + languageListPref.initialize(this, getProfile(), getPrefService()); - - ChromeSwitchPreference translateSwitch = - (ChromeSwitchPreference) findPreference(TRANSLATE_SWITCH_KEY); @@ -115,7 +115,7 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse - public boolean onPreferenceChange(Preference preference, Object newValue) { - boolean enabled = (boolean) newValue; - getPrefService().setBoolean(Pref.OFFER_TRANSLATE_ENABLED, enabled); -- mLanguageListPref.notifyPrefChanged(); +- languageListPref.notifyPrefChanged(); - LanguagesManager.recordAction( - enabled - ? LanguagesManager.LanguageSettingsActionType @@ -136,11 +136,11 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse /** @@ -156,8 +120,6 @@ public class LanguageSettings extends ChromeBaseSettingsFragment - ContentLanguagesPreference mLanguageListPref = + ContentLanguagesPreference languageListPref = (ContentLanguagesPreference) findPreference(CONTENT_LANGUAGES_KEY); - mLanguageListPref.initialize(this, getProfile(), getPrefService()); + languageListPref.initialize(this, getProfile(), getPrefService()); - -- setupTranslateSection(mLanguageListPref); +- setupTranslateSection(languageListPref); } /** Setup the App Language section with a title and preference to choose the app language. */ @@ -285,7 +285,7 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -1987,9 +1987,6 @@ Your Google account may have other forms of browsing history like searches and a +@@ -2060,9 +2060,6 @@ Your Google account may have other forms of browsing history like searches and a Let websites know the languages you speak. They’ll show content in those languages, when possible. diff --git a/build/patches/ungoogled-chromium-Disable-webRTC-log-uploader.patch b/build/patches/ungoogled-chromium-Disable-webRTC-log-uploader.patch index e8a11a88..5b5fc24d 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 -@@ -148,7 +148,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -151,7 +151,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 b1217767..b8def715 100644 --- a/build/patches/ungoogled-chromium-no-special-hosts-domains.patch +++ b/build/patches/ungoogled-chromium-no-special-hosts-domains.patch @@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/chrome_browser_main.cc | 10 - .../browser/chrome_content_browser_client.cc | 29 +- ...ent_browser_client_navigation_throttles.cc | 1 - - .../domain_reliability/service_factory.cc | 33 +- + .../domain_reliability/service_factory.cc | 30 +- .../key_management/browser/commands/BUILD.gn | 1 - .../commands/win_key_rotation_command.cc | 9 +- chrome/browser/extensions/BUILD.gn | 1 - @@ -71,21 +71,21 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html ...gled-chromium-no-special-hosts-domains.inc | 1 + net/base/url_util.cc | 25 +- services/network/network_context.cc | 2 +- - 64 files changed, 57 insertions(+), 892 deletions(-) + 64 files changed, 56 insertions(+), 890 deletions(-) create mode 100644 cromite_flags/content/public/common/content_features_cc/ungoogled-chromium-no-special-hosts-domains.inc diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java -@@ -124,7 +124,6 @@ import org.chromium.chrome.browser.ntp_customization.NtpCustomizationUtils; +@@ -124,7 +124,6 @@ import org.chromium.chrome.browser.multiwindow.MultiWindowUtils; + 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.OmniboxChipManager; -import org.chromium.chrome.browser.omnibox.geo.GeolocationHeader; + import org.chromium.chrome.browser.omnibox.suggestions.action.OmniboxActionDelegateImpl; import org.chromium.chrome.browser.open_in_app.OpenInAppEntryPoint; import org.chromium.chrome.browser.open_in_app.OpenInAppMenuItemProvider; - import org.chromium.chrome.browser.open_in_app.OpenInAppUtils; -@@ -1499,10 +1498,8 @@ public class RootUiCoordinator +@@ -1553,10 +1552,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 -@@ -830,10 +830,6 @@ static_library("browser") { +@@ -726,10 +726,6 @@ static_library("browser") { "page_load_metrics/observers/captcha_metrics_observer.h", "page_load_metrics/observers/captcha_provider_manager.cc", "page_load_metrics/observers/captcha_provider_manager.h", @@ -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", -@@ -842,10 +838,6 @@ static_library("browser") { +@@ -738,10 +734,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", -@@ -1434,8 +1426,6 @@ static_library("browser") { +@@ -1261,8 +1253,6 @@ static_library("browser") { "supervised_user/metrics_service_accessor_delegate.h", "supervised_user/supervised_user_browser_utils.cc", "supervised_user/supervised_user_browser_utils.h", @@ -130,25 +130,25 @@ 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", -@@ -1546,10 +1536,7 @@ static_library("browser") { - "//chrome/browser/content_settings:impl", +@@ -1379,10 +1369,7 @@ static_library("browser") { + "//chrome/browser/enterprise/browser_management:management_identity_impl", "//chrome/browser/devtools", - "//chrome/browser/favicon", + "//chrome/browser/favicon:impl", - "//chrome/browser/feedback", - "//chrome/browser/feedback:feedback_impl", "//chrome/browser/file_system_access:impl", - "//chrome/browser/google", - "//chrome/browser/media/webrtc", - "//chrome/browser/navigation_predictor:impl", -@@ -1730,7 +1717,6 @@ static_library("browser") { + # TODO(crbug.com/486309771): Remove this circular dependency when + # chrome_metrics_service_accessor.h gets extracted into its own target. +@@ -1592,7 +1579,6 @@ static_library("browser") { # should be added to browser_generated_files. ":browser_public_dependencies", ":chrome_content_browser_client_parts", - "//chrome/browser/google", "//chrome/browser/headless", - "//chrome/browser/profiles", - "//chrome/browser/ui/tabs:tab_enums", + "//chrome/browser/history_embeddings", + "//chrome/browser/interstitials", 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 @@ -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 -@@ -1359,7 +1359,6 @@ BrowserProcessImpl::component_updater() { +@@ -1366,7 +1366,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 -@@ -501,11 +501,6 @@ void ProcessSingletonNotificationCallbackImpl( +@@ -508,11 +508,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 -@@ -2014,11 +2009,6 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { +@@ -2035,11 +2030,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 -@@ -2971,7 +2971,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( +@@ -3041,7 +3041,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, -@@ -5777,7 +5776,8 @@ GetClientDataHeader(content::FrameTreeNodeId frame_tree_node_id) { +@@ -5859,7 +5858,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 -@@ -5817,7 +5817,7 @@ std::unique_ptr CreateGoogleURLLoaderThrottle( +@@ -5899,7 +5899,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( -@@ -5874,15 +5874,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottles( +@@ -5956,15 +5956,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); -@@ -5927,20 +5918,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottlesForKeepAlive( +@@ -6009,20 +6000,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottlesForKeepAlive( Profile* profile = Profile::FromBrowserContext(browser_context); DCHECK(profile); @@ -288,10 +288,12 @@ diff --git a/chrome/browser/chrome_content_browser_client_navigation_throttles.c diff --git a/chrome/browser/domain_reliability/service_factory.cc b/chrome/browser/domain_reliability/service_factory.cc --- a/chrome/browser/domain_reliability/service_factory.cc +++ b/chrome/browser/domain_reliability/service_factory.cc -@@ -14,40 +14,11 @@ - - namespace domain_reliability { +@@ -8,38 +8,10 @@ + #include "base/metrics/field_trial.h" + #include "chrome/common/chrome_switches.h" +-namespace domain_reliability { +- -namespace { - -// If Domain Reliability is enabled in the absence of a flag or field trial. @@ -301,27 +303,22 @@ diff --git a/chrome/browser/domain_reliability/service_factory.cc b/chrome/brows -const char kFieldTrialName[] = "DomRel-Enable"; -const char kFieldTrialValueEnable[] = "enable"; - --bool IsDomainReliabilityAllowed() { -- return g_browser_process->local_state()->GetBoolean( -- prefs::kDomainReliabilityAllowedByPolicy); --} -- -} // namespace - -+// Identifies Chrome as the source of Domain Reliability uploads it sends. const char kUploadReporterString[] = "chrome"; - bool ShouldCreateService() { + bool ShouldCreateService(const DomainReliabilityServiceDelegate* delegate) { - base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); - if (command_line->HasSwitch(switches::kDisableDomainReliability)) - return false; - if (command_line->HasSwitch(switches::kEnableDomainReliability)) - return true; -- if (!IsDomainReliabilityAllowed()) { +- if (!delegate->IsDomainReliabilityAllowed()) { - return false; - } -- if (!ChromeMetricsServiceAccessor::IsMetricsAndCrashReportingEnabled()) +- if (!delegate->IsMetricsAndCrashReportingEnabled()) { - return false; +- } - if (base::FieldTrialList::TrialExists(kFieldTrialName)) { - std::string value = base::FieldTrialList::FindFullName(kFieldTrialName); - return (value == kFieldTrialValueEnable); @@ -365,7 +362,7 @@ diff --git a/chrome/browser/enterprise/connectors/device_trust/key_management/br diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUILD.gn --- a/chrome/browser/extensions/BUILD.gn +++ b/chrome/browser/extensions/BUILD.gn -@@ -515,7 +515,6 @@ source_set("extensions") { +@@ -516,7 +516,6 @@ source_set("extensions") { "//chrome/browser/extensions/api:api_registration", "//chrome/browser/favicon", "//chrome/browser/gcm", @@ -376,14 +373,14 @@ diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUIL diff --git a/chrome/browser/feedback/BUILD.gn b/chrome/browser/feedback/BUILD.gn --- a/chrome/browser/feedback/BUILD.gn +++ b/chrome/browser/feedback/BUILD.gn -@@ -112,7 +112,6 @@ source_set("feedback_impl") { +@@ -118,7 +118,6 @@ source_set("feedback_impl") { "//chrome/browser/devtools", "//chrome/browser/extensions", "//chrome/browser/first_party_sets", - "//chrome/browser/google", + "//chrome/browser/metrics", "//chrome/browser/performance_manager/public/user_tuning", "//chrome/browser/signin", - "//chrome/browser/sync", diff --git a/chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc b/chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc --- a/chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc +++ b/chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc @@ -448,7 +445,7 @@ diff --git a/chrome/browser/google/BUILD.gn b/chrome/browser/google/BUILD.gn diff --git a/chrome/browser/long_screenshots/long_screenshots_tab_service.cc b/chrome/browser/long_screenshots/long_screenshots_tab_service.cc --- a/chrome/browser/long_screenshots/long_screenshots_tab_service.cc +++ b/chrome/browser/long_screenshots/long_screenshots_tab_service.cc -@@ -37,13 +37,11 @@ constexpr size_t kMaxPerCaptureSizeBytes = 50 * 1000L * 1000L; // 50 MB. +@@ -36,13 +36,11 @@ constexpr size_t kMaxPerCaptureSizeBytes = 50 * 1000L * 1000L; // 50 MB. // Host/regex pattern for Google AMP Cache URLs. // See https://developers.google.com/amp/cache/overview#amp-cache-url-format // for a definition of the format of AMP Cache URLs. @@ -462,7 +459,7 @@ diff --git a/chrome/browser/long_screenshots/long_screenshots_tab_service.cc b/c const char kGoogleNewsPathPattern[] = "/articles/(.*)"; } // namespace -@@ -242,26 +240,6 @@ bool LongScreenshotsTabService::IsAmpUrl(const GURL& url) { +@@ -240,26 +238,6 @@ bool LongScreenshotsTabService::IsAmpUrl(const GURL& url) { return false; } @@ -492,7 +489,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() { +@@ -638,7 +638,7 @@ ChromeMetricsServiceClient::GetNetworkTimeTracker() { } bool ChromeMetricsServiceClient::GetBrand(std::string* brand_code) { @@ -678,7 +675,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 -@@ -203,14 +203,9 @@ void PageLoadMetricsEmbedder::RegisterObservers( +@@ -212,14 +212,9 @@ void PageLoadMetricsEmbedder::RegisterObservers( tracker->AddObserver(std::make_unique()); tracker->AddObserver(std::make_unique()); tracker->AddObserver(std::make_unique()); @@ -707,7 +704,7 @@ diff --git a/chrome/browser/profile_resetter/BUILD.gn b/chrome/browser/profile_r diff --git a/chrome/browser/profile_resetter/profile_resetter.cc b/chrome/browser/profile_resetter/profile_resetter.cc --- a/chrome/browser/profile_resetter/profile_resetter.cc +++ b/chrome/browser/profile_resetter/profile_resetter.cc -@@ -102,8 +102,7 @@ ProfileResetter::ProfileResetter(Profile* profile) +@@ -103,8 +103,7 @@ ProfileResetter::ProfileResetter(Profile* profile) DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK(profile_); @@ -720,7 +717,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 -@@ -29,7 +29,6 @@ static_library("safe_browsing") { +@@ -30,7 +30,6 @@ static_library("safe_browsing") { "//build:branding_buildflags", "//chrome/app:generated_resources", "//chrome/browser:browser_process", @@ -778,18 +775,18 @@ diff --git a/chrome/browser/signin/android/signin_manager_android.cc b/chrome/br diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -293,7 +293,6 @@ static_library("ui") { - "//chrome/browser/feedback:feedback_impl", - "//chrome/browser/file_system_access", - "//chrome/browser/gcm", +@@ -308,7 +308,6 @@ static_library("ui") { + "//chrome/browser/glic/actor", + "//chrome/browser/glic/fre", + "//chrome/browser/glic/public:features", - "//chrome/browser/google", + "//chrome/browser/gpu", + "//chrome/browser/hang_monitor", "//chrome/browser/history", - "//chrome/browser/image_decoder", - "//chrome/browser/image_fetcher", 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 -@@ -69,8 +69,6 @@ android_library("java") { +@@ -77,8 +77,6 @@ android_library("java") { "java/src/org/chromium/chrome/browser/omnibox/fusebox/FuseboxTabUtils.java", "java/src/org/chromium/chrome/browser/omnibox/fusebox/FuseboxViewBinder.java", "java/src/org/chromium/chrome/browser/omnibox/fusebox/FuseboxViewHolder.java", @@ -801,7 +798,7 @@ diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/andr diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java -@@ -51,7 +51,6 @@ import org.chromium.chrome.browser.multiwindow.MultiInstanceManager; +@@ -53,7 +53,6 @@ import org.chromium.chrome.browser.multiwindow.MultiInstanceManager; import org.chromium.chrome.browser.omnibox.LocationBarMediator.OmniboxUma; import org.chromium.chrome.browser.omnibox.fusebox.FuseboxCoordinator; import org.chromium.chrome.browser.omnibox.fusebox.FuseboxCoordinator.FuseboxState; @@ -809,7 +806,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; -@@ -549,7 +548,6 @@ public class LocationBarCoordinator +@@ -540,7 +539,6 @@ public class LocationBarCoordinator mLocationBarMediator.destroy(); mLocationBarMediator = null; @@ -820,7 +817,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java -@@ -70,7 +70,6 @@ import org.chromium.chrome.browser.omnibox.UrlBar.UrlBarDelegate; +@@ -71,7 +71,6 @@ import org.chromium.chrome.browser.omnibox.fusebox.FuseboxAttachmentModelList; 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 +825,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; -@@ -423,22 +422,6 @@ class LocationBarMediator +@@ -417,22 +416,6 @@ class LocationBarMediator if (!mUrlFocusedWithoutAnimations) handleUrlFocusAnimation(hasFocus); @@ -851,7 +848,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow if (!hasFocus && mLocationBarDataProvider.hasTab()) { setUrl( mLocationBarDataProvider.getCurrentGurl(), -@@ -455,8 +438,6 @@ class LocationBarMediator +@@ -449,8 +432,6 @@ class LocationBarMediator Profile profile = mProfileSupplier.get(); assert profile != null; templateUrlService.addObserver(this); @@ -860,7 +857,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow })); mLocationBarLayout.onFinishNativeInitialization(); -@@ -737,14 +718,6 @@ class LocationBarMediator +@@ -732,14 +713,6 @@ class LocationBarMediator // ContentView. if (currentTab != null && !url.isEmpty()) { LoadUrlParams loadUrlParams = new LoadUrlParams(url); @@ -875,7 +872,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow loadUrlParams.setTransitionType( omniboxLoadUrlParams.transitionType | PageTransition.FROM_ADDRESS_BAR); if (omniboxLoadUrlParams.inputStartTimestamp != 0) { -@@ -2114,7 +2087,6 @@ class LocationBarMediator +@@ -2094,7 +2067,6 @@ class LocationBarMediator if (OmniboxFeatures.sUseFusedLocationProvider.isEnabled() && profile != null && templateUrlService != null) { @@ -883,7 +880,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow } } -@@ -2122,7 +2094,6 @@ class LocationBarMediator +@@ -2102,7 +2074,6 @@ class LocationBarMediator public void onPauseWithNative() { OmniboxFeatures.updateLastExitTimestamp(); if (OmniboxFeatures.sUseFusedLocationProvider.isEnabled()) { @@ -905,7 +902,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 -@@ -777,12 +777,6 @@ content::WebUIDataSource* CreateAndAddNewTabPageUiHtmlSource(Profile* profile) { +@@ -785,12 +785,6 @@ content::WebUIDataSource* CreateAndAddNewTabPageUiHtmlSource( // 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. @@ -921,7 +918,7 @@ diff --git a/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc b/chrome/br diff --git a/chrome/browser/ui/webui/ntp/new_tab_ui.cc b/chrome/browser/ui/webui/ntp/new_tab_ui.cc --- a/chrome/browser/ui/webui/ntp/new_tab_ui.cc +++ b/chrome/browser/ui/webui/ntp/new_tab_ui.cc -@@ -203,8 +203,7 @@ std::string NewTabUI::NewTabHTMLSource::GetContentSecurityPolicy( +@@ -202,8 +202,7 @@ std::string NewTabUI::NewTabHTMLSource::GetContentSecurityPolicy( network::mojom::CSPDirectiveName directive) { if (directive == network::mojom::CSPDirectiveName::ScriptSrc) { // 'unsafe-inline' and google resources are added to script-src. @@ -939,10 +936,10 @@ diff --git a/chrome/browser/upgrade_detector/BUILD.gn b/chrome/browser/upgrade_d "//base:build_time", "//chrome/browser:buildflags", - "//chrome/browser/google", + "//chrome/browser/obsolete_system", "//content/public/browser", ] - } else { -@@ -201,7 +200,6 @@ source_set("unit_tests") { +@@ -202,7 +201,6 @@ source_set("unit_tests") { deps += [ "//base:i18n", @@ -969,7 +966,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 -@@ -144,8 +144,6 @@ static_library("common_lib") { +@@ -143,8 +143,6 @@ static_library("common_lib") { "content_restriction.h", "crash_keys.cc", "crash_keys.h", @@ -1015,14 +1012,14 @@ diff --git a/chrome/renderer/url_loader_throttle_provider_impl.cc b/chrome/rende diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn -@@ -7064,7 +7064,6 @@ test("unit_tests") { - "//chrome/browser/first_party_sets", - "//chrome/browser/gcm", - "//chrome/browser/gcm:unit_tests", +@@ -7154,7 +7154,6 @@ test("unit_tests") { + "//chrome/browser/glic", + "//chrome/browser/glic:unit_tests", + "//chrome/browser/glic/test_support", - "//chrome/browser/google:unit_tests", "//chrome/browser/history", - "//chrome/browser/media:unittests", - "//chrome/browser/media/prefs", + "//chrome/browser/history_clusters", + "//chrome/browser/history_clusters:unit_tests", diff --git a/components/domain_reliability/BUILD.gn b/components/domain_reliability/BUILD.gn --- a/components/domain_reliability/BUILD.gn +++ b/components/domain_reliability/BUILD.gn @@ -1701,7 +1698,7 @@ diff --git a/components/page_load_metrics/google/browser/google_url_util.cc b/co diff --git a/components/search_engines/search_engine_utils.cc b/components/search_engines/search_engine_utils.cc --- a/components/search_engines/search_engine_utils.cc +++ b/components/search_engines/search_engine_utils.cc -@@ -26,6 +26,7 @@ bool SameDomain(const GURL& given_url, const GURL& prepopulated_url) { +@@ -43,6 +43,7 @@ bool HasSameDomainUrl(const GURL& given_url, SearchEngineType GetEngineType(const GURL& url) { DCHECK(url.is_valid()); @@ -1972,7 +1969,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 -@@ -3110,7 +3110,7 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( +@@ -3153,7 +3153,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 8cd4c4a2..0bd03516 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 -@@ -142,7 +142,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -145,7 +145,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { false); #endif registry->RegisterStringPref(prefs::kWebRTCIPHandlingPolicy, From d1379887a649ab74d3ea4f310881b72e2219e434 Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Fri, 27 Mar 2026 15:10:40 +0100 Subject: [PATCH 2/9] Patches for v147 (to be checked) --- .../Add-bookmark-import-export-actions.patch | 87 +-- .../Add-option-to-disable-snapshots.patch | 28 +- build/patches/Add-search-engine.patch | 14 +- .../Add-setting-to-clear-data-on-exit.patch | 133 +--- .../Content-settings-infrastructure.patch | 213 ++---- build/patches/Customize-selection-popup.patch | 61 +- ...ctionary-suggestions-for-the-Omnibox.patch | 57 +- build/patches/Disable-TLS-resumption.patch | 10 +- .../Disable-integration-with-Gemini.patch | 222 +++--- .../Enable-extension-in-incognito.patch | 603 ++++++--------- ...al-support-for-extensions-on-Android.patch | 698 +++++++----------- .../Move-navigation-bar-to-bottom.patch | 308 ++++---- ...l-of-execution-context-address-space.patch | 244 +++--- build/patches/eyeo-133.0.6943.49-base.patch | 58 +- 14 files changed, 1089 insertions(+), 1647 deletions(-) diff --git a/build/patches/Add-bookmark-import-export-actions.patch b/build/patches/Add-bookmark-import-export-actions.patch index 394457e8..bb998c1c 100644 --- a/build/patches/Add-bookmark-import-export-actions.patch +++ b/build/patches/Add-bookmark-import-export-actions.patch @@ -14,9 +14,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/android/java/AndroidManifest.xml | 1 - .../menu/bookmark_toolbar_menu_improved.xml | 14 + .../browser/TabbedModeTabDelegateFactory.java | 5 +- - .../app/bookmarks/BookmarkActivity.java | 21 ++ + .../app/bookmarks/BookmarkActivity.java | 20 ++ .../native_page/NativePageFactory.java | 7 +- - chrome/browser/BUILD.gn | 11 +- + chrome/browser/BUILD.gn | 9 + .../bookmarks/android/bookmark_bridge.cc | 193 ++++++++++++ .../bookmarks/android/bookmark_bridge.h | 30 +- .../browser/bookmarks/BookmarkBridge.java | 39 +++ @@ -51,7 +51,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html ui/shell_dialogs/select_file_dialog_linux.cc | 4 + ui/shell_dialogs/select_file_dialog_linux.h | 2 + ui/shell_dialogs/select_file_dialog_win.cc | 5 + - 40 files changed, 793 insertions(+), 23 deletions(-) + 40 files changed, 792 insertions(+), 21 deletions(-) create mode 100644 cromite_flags/chrome/browser/about_flags_cc/add-bookmark-import-export-actions.inc create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/add-bookmark-import-export-actions.inc create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/add-bookmark-import-export-actions.inc @@ -110,7 +110,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDe + private final ChromeActivity mActivity; private final BrowserControlsVisibilityDelegate mAppBrowserControlsVisibilityDelegate; private final Supplier<@Nullable ShareDelegate> mShareDelegateSupplier; - private final Supplier mEphemeralTabCoordinatorSupplier; + private final Supplier<@Nullable EphemeralTabCoordinator> mEphemeralTabCoordinatorSupplier; @@ -97,7 +98,7 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory { private final RecentlyClosedEntriesManager mRecentlyClosedEntriesManager; @@ -119,7 +119,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDe + ChromeActivity activity, BrowserControlsVisibilityDelegate appBrowserControlsVisibilityDelegate, Supplier<@Nullable ShareDelegate> shareDelegateSupplier, - Supplier ephemeralTabCoordinatorSupplier, + Supplier<@Nullable EphemeralTabCoordinator> ephemeralTabCoordinatorSupplier, diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/BookmarkActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/BookmarkActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/BookmarkActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/BookmarkActivity.java @@ -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; -@@ -131,6 +133,9 @@ public class BookmarkActivity extends SnackbarActivity { +@@ -133,6 +135,9 @@ public class BookmarkActivity extends SnackbarActivity { mOnKeyDownHandler = BackPressHelper.create( this, getOnBackPressedDispatcher(), mBookmarkManagerCoordinator); @@ -142,15 +142,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B } @Override -@@ -163,6 +168,7 @@ public class BookmarkActivity extends SnackbarActivity { - @Override - protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { - super.onActivityResult(requestCode, resultCode, data); -+ mWindowAndroid.getIntentRequestTracker().onActivityResult(requestCode, resultCode, data); - if (requestCode == EDIT_BOOKMARK_REQUEST_CODE && resultCode == RESULT_OK) { - assumeNonNull(data); - BookmarkId bookmarkId = -@@ -172,6 +178,21 @@ public class BookmarkActivity extends SnackbarActivity { +@@ -179,6 +184,21 @@ public class BookmarkActivity extends SnackbarActivity { } } @@ -213,17 +205,17 @@ 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 -@@ -209,6 +209,8 @@ static_library("browser") { +@@ -210,6 +210,8 @@ static_library("browser") { "bad_message.h", - "bookmarks/bookmark_model_factory.cc", - "bookmarks/bookmark_model_factory.h", + "browser_about_handler.cc", + "browser_about_handler.h", + "bookmarks/bookmark_html_writer.cc", + "bookmarks/bookmark_html_writer.h", - "bookmarks/chrome_bookmark_client.cc", - "bookmarks/chrome_bookmark_client.h", - "bookmarks/managed_bookmark_service_factory.cc", -@@ -1507,6 +1509,13 @@ static_library("browser") { - "webdata_services/web_data_service_factory.cc", + "browser_features.cc", + "browser_features.h", + "browser_process_impl.cc", +@@ -1327,6 +1329,13 @@ static_library("browser") { + "webauthn/webauthn_switches.cc", ] + if (is_android) { @@ -236,15 +228,6 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn configs += [ "//build/config/compiler:wexit_time_destructors", "//build/config:precompiled_headers", -@@ -3684,8 +3693,6 @@ static_library("browser") { - "bookmarks/bookmark_expanded_state_tracker.h", - "bookmarks/bookmark_expanded_state_tracker_factory.cc", - "bookmarks/bookmark_expanded_state_tracker_factory.h", -- "bookmarks/bookmark_html_writer.cc", -- "bookmarks/bookmark_html_writer.h", - "bookmarks/bookmark_merged_surface_ordering_storage.cc", - "bookmarks/bookmark_merged_surface_ordering_storage.h", - "bookmarks/bookmark_merged_surface_service.cc", 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 @@ -670,7 +653,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/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 -@@ -67,6 +67,8 @@ import org.chromium.components.commerce.core.ShoppingService; +@@ -68,6 +68,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; @@ -679,7 +662,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.Clipboard; import org.chromium.ui.base.DeviceFormFactor; -@@ -89,6 +91,47 @@ import java.util.function.BooleanSupplier; +@@ -91,6 +93,47 @@ import java.util.function.BooleanSupplier; import java.util.function.Consumer; import java.util.function.Predicate; @@ -727,7 +710,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 -@@ -99,6 +142,9 @@ class BookmarkManagerMediator +@@ -101,6 +144,9 @@ class BookmarkManagerMediator private static boolean sPreventLoadingForTesting; @@ -737,7 +720,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; -@@ -641,6 +687,14 @@ class BookmarkManagerMediator +@@ -643,6 +689,14 @@ class BookmarkManagerMediator mNativePage = nativePage; } @@ -752,7 +735,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. -@@ -809,6 +863,235 @@ class BookmarkManagerMediator +@@ -811,6 +865,235 @@ class BookmarkManagerMediator } } @@ -1212,10 +1195,10 @@ 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[] = { - &kAvoidDoubleMultiwindowChanges, +@@ -265,6 +265,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kBlockIntentsWhileLocked, &kBookmarkPaneAndroid, + &kBottomSheetAsBrowserControls, + &kBookmarksExportUseSaf, &kBrowserControlsDebugging, &kBrowserControlsEarlyResize, @@ -1223,7 +1206,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 -@@ -700,6 +700,7 @@ public abstract class ChromeFeatureList { +@@ -707,6 +707,7 @@ public abstract class ChromeFeatureList { "UseLibunwindstackNativeUnwinderAndroid"; public static final String VERIFY_QWACS = "VerifyQWACs"; public static final String VISITED_URL_RANKING_SERVICE = "VisitedURLRankingService"; @@ -1286,7 +1269,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"; -@@ -1191,6 +1193,7 @@ public final class ChromePreferenceKeys { +@@ -1208,6 +1210,7 @@ public final class ChromePreferenceKeys { AUXILIARY_SEARCH_SCHEMA_VERSION, APP_LAUNCH_LAST_KNOWN_ACTIVE_TAB_STATE, APP_LAUNCH_SEARCH_ENGINE_HAD_LOGO, @@ -1297,7 +1280,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 -@@ -267,6 +267,24 @@ CHAR_LIMIT guidelines: +@@ -271,6 +271,24 @@ CHAR_LIMIT guidelines: Sites @@ -1427,7 +1410,7 @@ new file mode 100644 diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java --- a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java +++ b/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java -@@ -51,6 +51,7 @@ import org.chromium.build.annotations.Initializer; +@@ -52,6 +52,7 @@ import org.chromium.build.annotations.Initializer; import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; import org.chromium.ui.R; @@ -1435,7 +1418,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui import org.chromium.ui.UiUtils; import java.io.File; -@@ -74,6 +75,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -75,6 +76,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick private static final String TAG = "SelectFileDialog"; private static final String IMAGE_TYPE = "image"; private static final String VIDEO_TYPE = "video"; @@ -1443,7 +1426,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui private static final String AUDIO_TYPE = "audio"; private static final String ALL_TYPES = "*/*"; private static final String GENERIC_TYPE = "application/octet-stream"; -@@ -323,6 +325,17 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -324,6 +326,17 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick mMimeTypes = convertToSupportedMimeTypes(mFileTypes); } @@ -1461,7 +1444,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui /** * Creates and starts an intent based on the passed fileTypes and capture value. * -@@ -407,7 +420,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -408,7 +421,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick List missingPermissions = new ArrayList<>(); String storagePermission = Manifest.permission.READ_EXTERNAL_STORAGE; boolean shouldUsePhotoPicker = shouldUsePhotoPicker(); @@ -1470,7 +1453,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui // The permission scenario for accessing media has evolved a bit over the years: // Early on, READ_EXTERNAL_STORAGE was required to access media, but that permission was // later deprecated. In its place (starting with Android T) READ_MEDIA_IMAGES and -@@ -460,7 +473,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -461,7 +474,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick // TODO(finnur): Remove once we figure out the cause of // crbug.com/950024. @@ -1479,7 +1462,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui if (permissions.length != requestPermissions.length) { throw new RuntimeException( String.format( -@@ -477,7 +490,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -478,7 +491,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick } } @@ -1488,7 +1471,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui if (permissions[i].equals(storagePermission) || permissions[i].equals( Manifest.permission.READ_MEDIA_IMAGES) -@@ -783,6 +796,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -789,6 +802,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick mimeTypes.add(mimeType); } } @@ -1496,7 +1479,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui return mimeTypes; } -@@ -1168,6 +1182,10 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -1174,6 +1188,10 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick return countAcceptTypesFor(superType) == mMimeTypes.size(); } @@ -1535,8 +1518,8 @@ diff --git a/ui/shell_dialogs/select_file_dialog.h b/ui/shell_dialogs/select_fil diff --git a/ui/shell_dialogs/select_file_dialog_android.cc b/ui/shell_dialogs/select_file_dialog_android.cc --- a/ui/shell_dialogs/select_file_dialog_android.cc +++ b/ui/shell_dialogs/select_file_dialog_android.cc -@@ -196,6 +196,12 @@ void SelectFileDialogImpl::SelectFileImpl(Type type, - suggested_name.value(), owning_window->GetJavaObject()); +@@ -171,6 +171,12 @@ void SelectFileDialogImpl::SelectFileImpl(Type type, + owning_window->GetJavaObject()); } +void SelectFileDialogImpl::ShowToast(const std::string& message) { diff --git a/build/patches/Add-option-to-disable-snapshots.patch b/build/patches/Add-option-to-disable-snapshots.patch index 31b34e6c..960f39ff 100644 --- a/build/patches/Add-option-to-disable-snapshots.patch +++ b/build/patches/Add-option-to-disable-snapshots.patch @@ -15,10 +15,10 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java -@@ -512,7 +512,12 @@ class TabGridViewBinder { - if (result != null) { +@@ -536,7 +536,12 @@ class TabGridViewBinder { TabUtils.setDrawableAndUpdateImageMatrix(thumbnail, result, thumbnailSize); } else { + thumbnail.setThumbnailViewState(ThumbnailViewState.PLACEHOLDER_LOADED); - thumbnail.setImageDrawable(null); + TabFavicon tabFavicon = model.get(TabProperties.FAVICON); + if (tabFavicon != null) { @@ -29,7 +29,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser } }; if (sThumbnailFetcherForTesting != null) { -@@ -550,6 +555,7 @@ class TabGridViewBinder { +@@ -574,6 +579,7 @@ class TabGridViewBinder { */ private static void setFavicon( ImageView faviconView, PropertyModel model, @Nullable TabFavicon favicon) { @@ -40,7 +40,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/TabProperties.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java -@@ -130,6 +130,9 @@ public class TabProperties { +@@ -131,6 +131,9 @@ public class TabProperties { public static final WritableBooleanPropertyKey FAVICON_FETCHED = new WritableBooleanPropertyKey(); @@ -50,7 +50,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser /** Property for lazily fetching favicons when required by an item in a UI. */ public static final WritableObjectPropertyKey FAVICON_FETCHER = new WritableObjectPropertyKey<>(); -@@ -224,6 +227,7 @@ public class TabProperties { +@@ -233,6 +236,7 @@ public class TabProperties { CARD_TYPE, CONTENT_DESCRIPTION_TEXT_RESOLVER, ACTION_BUTTON_DESCRIPTION_TEXT_RESOLVER, @@ -58,7 +58,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser QUICK_DELETE_ANIMATION_STATUS, TAB_GROUP_COLOR_VIEW_PROVIDER, TAB_GROUP_CARD_COLOR, -@@ -264,6 +268,7 @@ public class TabProperties { +@@ -274,6 +278,7 @@ public class TabProperties { TAB_ACTION_BUTTON_DATA, FAVICON_FETCHED, FAVICON_FETCHER, @@ -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; -@@ -690,7 +691,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -694,7 +695,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity new TabContentManager( this, mBrowserControlsManagerSupplier.get(), @@ -105,7 +105,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/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 -@@ -28,6 +28,7 @@ import org.chromium.base.ContextUtils; +@@ -30,6 +30,7 @@ import org.chromium.base.ContextUtils; import org.chromium.base.IntentUtils; import org.chromium.base.metrics.RecordHistogram; import org.chromium.base.metrics.RecordUserAction; @@ -113,7 +113,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import org.chromium.base.supplier.MonotonicObservableSupplier; import org.chromium.base.supplier.ObservableSuppliers; import org.chromium.base.supplier.SettableMonotonicObservableSupplier; -@@ -103,13 +104,27 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; +@@ -105,13 +106,27 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate; @@ -142,7 +142,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting private static final String PREF_CAN_MAKE_PAYMENT = "can_make_payment"; private static final String PREF_PRELOAD_PAGES = "preload_pages"; private static final String PREF_HTTPS_FIRST_MODE = "https_first_mode"; -@@ -196,6 +211,21 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -198,6 +213,21 @@ public class PrivacySettings extends ChromeBaseSettingsFragment if (shouldHideSandboxPref(privacySandboxBridge)) { getPreferenceScreen().removePreference(sandboxPreference); } @@ -164,7 +164,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting Preference privacyGuidePreference = findPreference(PREF_PRIVACY_GUIDE); // Record the launch of PG from the S&P link-row entry point privacyGuidePreference.setOnPreferenceClickListener( -@@ -460,6 +490,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -462,6 +492,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) { -@@ -506,6 +537,13 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -508,6 +539,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; } -@@ -556,6 +594,10 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -558,6 +596,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 -@@ -6573,6 +6573,14 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -6709,6 +6709,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-search-engine.patch b/build/patches/Add-search-engine.patch index 03281fba..a67ee62d 100644 --- a/build/patches/Add-search-engine.patch +++ b/build/patches/Add-search-engine.patch @@ -55,7 +55,7 @@ HcmV?d00001 diff --git a/components/search_engines/BUILD.gn b/components/search_engines/BUILD.gn --- a/components/search_engines/BUILD.gn +++ b/components/search_engines/BUILD.gn -@@ -72,6 +72,7 @@ static_library("search_engines") { +@@ -74,6 +74,7 @@ static_library("search_engines") { "//third_party/metrics_proto", "//third_party/omnibox_proto", "//third_party/search_engines_data:prepopulated_engines", @@ -63,18 +63,18 @@ diff --git a/components/search_engines/BUILD.gn b/components/search_engines/BUIL ] deps = [ -@@ -161,6 +162,7 @@ source_set("search_engine_utils") { - ":search_engine_type", - "//components/google/core/common", +@@ -165,6 +166,7 @@ source_set("search_engine_utils") { + "//components/regional_capabilities", + "//components/regional_capabilities:switches", "//third_party/search_engines_data:prepopulated_engines", + "cromite:cromite_prepopulated_engines", ] deps = [ "//url" ] -@@ -256,6 +258,7 @@ source_set("unit_tests") { - "//testing/gmock", +@@ -263,6 +265,7 @@ source_set("unit_tests") { "//testing/gtest", "//third_party/search_engines_data:prepopulated_engines", + "//third_party/search_engines_data:regional_settings", + "cromite:cromite_prepopulated_engines", "//ui/base", "//url", @@ -402,7 +402,7 @@ diff --git a/tools/json_to_struct/struct_generator.py b/tools/json_to_struct/str diff --git a/tools/variations/fieldtrial_to_struct.py b/tools/variations/fieldtrial_to_struct.py --- a/tools/variations/fieldtrial_to_struct.py +++ b/tools/variations/fieldtrial_to_struct.py -@@ -212,14 +212,14 @@ def main(arguments): +@@ -210,14 +210,14 @@ def main(arguments): json_to_struct.GenerateStruct( basepath, output_root, opts.namespace, schema, description, os.path.split(description_filename)[1], os.path.split(opts.schema)[1], diff --git a/build/patches/Add-setting-to-clear-data-on-exit.patch b/build/patches/Add-setting-to-clear-data-on-exit.patch index 3476afc5..340a21d7 100644 --- a/build/patches/Add-setting-to-clear-data-on-exit.patch +++ b/build/patches/Add-setting-to-clear-data-on-exit.patch @@ -20,8 +20,6 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../profiles/android/profile_manager_utils.cc | 5 ++ chrome/browser/profiles/profile_manager.cc | 17 +++- chrome/browser/profiles/profile_manager.h | 2 + - .../clear_browsing_data_dialog.html | 44 +++++++++++ - .../clear_browsing_data_dialog.ts | 2 + .../strings/android_chrome_strings.grd | 3 + .../Add-setting-to-clear-data-on-exit.grdp | 9 +++ .../settings_localized_strings_provider.cc | 1 + @@ -41,7 +39,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, 415 insertions(+), 35 deletions(-) + 35 files changed, 369 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 +47,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 -@@ -274,6 +274,7 @@ chrome_java_sources = [ +@@ -285,6 +285,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 +73,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 -@@ -225,6 +225,7 @@ import org.chromium.chrome.browser.profiles.ProfileProvider; +@@ -228,6 +228,7 @@ import org.chromium.chrome.browser.profiles.ProfileProvider; import org.chromium.chrome.browser.quick_delete.QuickDeleteController; import org.chromium.chrome.browser.quick_delete.QuickDeleteDelegateImpl; import org.chromium.chrome.browser.quick_delete.QuickDeleteMetricsDelegate; @@ -83,7 +81,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.chrome.browser.read_later.ReadingListBackPressHandler; import org.chromium.chrome.browser.recent_tabs.CrossDevicePaneFactory; import org.chromium.chrome.browser.reengagement.ReengagementNotificationController; -@@ -2256,7 +2257,11 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt +@@ -2275,7 +2276,11 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt } if (!hadCipherData) { hadCipherData = @@ -137,7 +135,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 -@@ -168,6 +168,12 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -169,6 +169,12 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment assert mCheckbox == preference; mParent.updateButtonState(); @@ -150,7 +148,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C return true; } -@@ -249,7 +255,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -250,7 +256,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment private @TimePeriod int mLastSelectedTimePeriod; private boolean mShouldShowPostDeleteFeedback; @@ -159,7 +157,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C ObservableSuppliers.createMonotonic(); /** -@@ -356,7 +362,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -357,7 +363,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment } /** Called when browsing data is about to be cleared. */ @@ -168,7 +166,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C RecordUserAction.record("ClearBrowsingData_AdvancedTab"); } -@@ -442,6 +448,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -443,6 +449,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment BrowsingDataBridge.getForProfile(getProfile()) .setBrowsingDataDeletionPreference( ClearBrowsingDataFragment.getDataType(item.getOption()), @@ -176,7 +174,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C item.isSelected()); } -@@ -449,8 +456,16 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -450,8 +457,16 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment .setBrowsingDataDeletionTimePeriod(mLastSelectedTimePeriod); } @@ -194,7 +192,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C String referrer = fragmentArgs.getString( ClearBrowsingDataFragment.CLEAR_BROWSING_DATA_REFERRER, null); -@@ -476,6 +491,10 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -477,6 +492,10 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment DialogOption.CLEAR_SITE_SETTINGS); } @@ -205,7 +203,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. * -@@ -484,7 +503,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -485,7 +504,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment */ private boolean isOptionSelectedByDefault(@DialogOption int option) { return BrowsingDataBridge.getForProfile(getProfile()) @@ -214,7 +212,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C } /** -@@ -552,6 +571,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -553,6 +572,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment * options. */ private void onClearButtonClicked() { @@ -222,7 +220,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C if (shouldShowImportantSitesDialog()) { showImportantDialogThenClear(); return; -@@ -581,6 +601,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -582,6 +602,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment Button clearButton = (Button) assumeNonNull(getView()).findViewById(R.id.clear_button); boolean isEnabled = !getSelectedOptions().isEmpty(); clearButton.setEnabled(isEnabled); @@ -230,7 +228,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C } private int getSpinnerIndex( -@@ -658,7 +679,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -659,7 +680,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment .getBoolean(Pref.ALLOW_DELETING_BROWSER_HISTORY)) { enabled = false; browsingDataBridge.setBrowsingDataDeletionPreference( @@ -239,7 +237,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. -@@ -688,8 +709,12 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -689,8 +710,12 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment mSigninManager.addSignInStateObserver(this); setHasOptionsMenu(true); @@ -252,7 +250,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C @Override public MonotonicObservableSupplier getPageTitle() { return mPageTitle; -@@ -990,7 +1015,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -992,7 +1017,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment public void updateDynamicPreferences( Context context, SettingsIndexData indexData, Profile profile) { Bundle args = createFragmentArgs(context.getClass().getName()); @@ -348,7 +346,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 -@@ -2197,6 +2197,16 @@ +@@ -2222,6 +2222,16 @@ Delete browsing data @@ -368,7 +366,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 -@@ -107,6 +107,7 @@ +@@ -108,6 +108,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" @@ -491,7 +489,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate. if (ClipboardRecentContent::GetInstance()) ClipboardRecentContent::GetInstance()->SuppressClipboardContent(); -@@ -532,6 +536,11 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -531,6 +535,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()) { @@ -503,7 +501,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate. profile_->GetSSLHostStateDelegate()->Clear( filter_builder->MatchesAllOriginsAndDomains() ? base::RepeatingCallback() -@@ -560,9 +569,13 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -559,9 +568,13 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( } device_event_log::Clear(delete_begin_, delete_end_); @@ -517,7 +515,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate. content::BackgroundTracingManager::GetInstance().DeleteTracesInDateRange( delete_begin_, delete_end_); -@@ -1287,6 +1300,8 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -1285,6 +1298,8 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( if (should_clear_zero_suggest_and_session_token && template_url_service) template_url_service->ClearSessionToken(); @@ -529,7 +527,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 -@@ -577,6 +577,23 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { +@@ -588,6 +588,23 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { (*s_allowlist)[browsing_data::prefs::kLastClearBrowsingDataTab] = settings_api::PrefType::kNumber; @@ -556,7 +554,7 @@ diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chro diff --git a/chrome/browser/profiles/android/java/src/org/chromium/chrome/browser/profiles/ProfileManagerUtils.java b/chrome/browser/profiles/android/java/src/org/chromium/chrome/browser/profiles/ProfileManagerUtils.java --- a/chrome/browser/profiles/android/java/src/org/chromium/chrome/browser/profiles/ProfileManagerUtils.java +++ b/chrome/browser/profiles/android/java/src/org/chromium/chrome/browser/profiles/ProfileManagerUtils.java -@@ -56,11 +56,16 @@ public class ProfileManagerUtils { +@@ -69,11 +69,16 @@ public class ProfileManagerUtils { } } @@ -609,7 +607,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_ || -@@ -2215,9 +2228,9 @@ void ProfileManager::OnBrowserClosed(Browser* browser) { +@@ -2229,9 +2242,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( @@ -633,83 +631,10 @@ diff --git a/chrome/browser/profiles/profile_manager.h b/chrome/browser/profiles // If a profile with the given path is currently managed by this object and // fully initialized, return a pointer to the corresponding Profile object; // otherwise return null. -diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.html b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.html ---- a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.html -+++ b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.html -@@ -297,6 +297,50 @@ - disabled="[[clearingInProgress_]]" no-set-pref> - - -+
-+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+
- - -
-diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.ts b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.ts ---- a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.ts -+++ b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.ts -@@ -216,6 +216,7 @@ export class SettingsClearBrowsingDataDialogElement extends - value: () => - [loadTimeData.getString('basicPageTitle'), - loadTimeData.getString('advancedPageTitle'), -+ loadTimeData.getString('atStartPageTitle'), - ], - }, - -@@ -344,6 +345,7 @@ export class SettingsClearBrowsingDataDialogElement extends - } - this.clearButtonDisabled_ = - this.getSelectedDataTypes_(page as HTMLElement).length === 0; -+ if ((page as HTMLElement).id == "atstart-tab") this.clearButtonDisabled_ = 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 -@@ -1455,6 +1455,9 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1517,6 +1517,9 @@ Your Google account may have other forms of browsing history like searches and a Some of your history might not show up here. To see all your Chrome history, open full Chrome history. Also, your Google Account may have other forms of browsing history at <link>myactivity.google.com</link>. @@ -736,7 +661,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 -@@ -2291,6 +2291,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, +@@ -2303,6 +2303,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, {"clearedData", IDS_SETTINGS_CLEARED_DATA}, {"clearBrowsingData", IDS_SETTINGS_CLEAR_BROWSING_DATA}, {"clearBrowsingDataDescription", IDS_SETTINGS_CLEAR_DATA_DESCRIPTION}, @@ -967,7 +892,7 @@ diff --git a/components/favicon/core/favicon_database.cc b/components/favicon/co // Description of database tables: // // icon_mapping -@@ -505,6 +509,11 @@ bool FaviconDatabase::SetFaviconBitmapLastUpdateTime(FaviconBitmapID bitmap_id, +@@ -501,6 +505,11 @@ bool FaviconDatabase::SetFaviconBitmapLastUpdateTime(FaviconBitmapID bitmap_id, bool FaviconDatabase::SetFaviconsOutOfDateBetween(base::Time begin, base::Time end) { @@ -1002,7 +927,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 -@@ -923,6 +923,7 @@ void TemplateURLService::RemoveAutoGeneratedForUrlsBetween( +@@ -920,6 +920,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 && @@ -1033,7 +958,7 @@ diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage #include "base/functional/bind.h" #include "base/functional/callback_helpers.h" #include "base/functional/concurrent_closures.h" -@@ -1557,6 +1558,7 @@ void StoragePartitionImpl::Initialize( +@@ -1505,6 +1506,7 @@ void StoragePartitionImpl::Initialize( .AppendASCII("Code Cache"); } DCHECK_GE(settings.size_in_bytes(), 0); diff --git a/build/patches/Content-settings-infrastructure.patch b/build/patches/Content-settings-infrastructure.patch index 45f07f69..742b2b1b 100644 --- a/build/patches/Content-settings-infrastructure.patch +++ b/build/patches/Content-settings-infrastructure.patch @@ -17,7 +17,6 @@ Require: bromite-build-utils.patch .../privacy_page/privacy_page_index.ts | 83 +++- chrome/browser/resources/settings/route.ts | 2 + ...settings_category_default_radio_group.html | 12 + - .../settings_category_default_radio_group.ts | 23 +- .../settings/site_settings/site_details.html | 1 + .../settings/site_settings/site_details.ts | 33 +- .../site_details_permission.html | 8 +- @@ -84,7 +83,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, 1964 insertions(+), 106 deletions(-) + 72 files changed, 1942 insertions(+), 105 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 +108,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 { -@@ -251,7 +255,7 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { +@@ -246,7 +250,7 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { @Override public boolean isHelpAndFeedbackEnabled() { @@ -118,7 +117,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/C } @Override -@@ -378,6 +382,17 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { +@@ -373,6 +377,17 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { return mPrivacySandboxBridge.getRelatedWebsiteSetOwner(memberOrigin); } @@ -287,8 +286,8 @@ diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resourc diff --git a/chrome/browser/resources/settings/site_settings/settings_category_default_radio_group.html b/chrome/browser/resources/settings/site_settings/settings_category_default_radio_group.html --- a/chrome/browser/resources/settings/site_settings/settings_category_default_radio_group.html +++ b/chrome/browser/resources/settings/site_settings/settings_category_default_radio_group.html -@@ -54,5 +54,17 @@ - icon="[[blockOptionIcon]]" +@@ -68,5 +68,17 @@ + hidden="[[!blockOptionLabel]]" no-collapse> +
-diff --git a/chrome/browser/resources/settings/site_settings/settings_category_default_radio_group.ts b/chrome/browser/resources/settings/site_settings/settings_category_default_radio_group.ts ---- a/chrome/browser/resources/settings/site_settings/settings_category_default_radio_group.ts -+++ b/chrome/browser/resources/settings/site_settings/settings_category_default_radio_group.ts -@@ -32,6 +32,7 @@ import {isSettingEnabled} from './site_settings_util.js'; - export enum SiteContentRadioSetting { - DISABLED = 0, - ENABLED = 1, -+ ASK = 2, - } - - export interface SettingsCategoryDefaultRadioGroupElement { -@@ -80,6 +81,10 @@ export class SettingsCategoryDefaultRadioGroupElement extends - blockOptionSubLabel: String, - blockOptionIcon: String, - -+ askOptionLabel: String, -+ askOptionSubLabel: String, -+ askOptionIcon: String, -+ - siteContentRadioSettingEnum_: { - type: Object, - value: SiteContentRadioSetting, -@@ -115,6 +120,9 @@ export class SettingsCategoryDefaultRadioGroupElement extends - declare blockOptionLabel: string; - declare blockOptionSubLabel: string; - declare blockOptionIcon: string; -+ declare askOptionLabel: string; -+ declare askOptionSubLabel: string; -+ declare askOptionIcon: string; - declare private pref_: chrome.settingsPrivate.PrefObject; - selected: boolean; - -@@ -126,6 +134,13 @@ export class SettingsCategoryDefaultRadioGroupElement extends - (category: ContentSettingsTypes) => this.onCategoryChanged_(category)); - } - -+ private showAskSetting_( -+ category: ContentSettingsTypes): boolean { -+ let obj = this.getSettingData(category); -+ if (obj) return obj["allowed_ask"] === "1"; -+ return false; -+ } -+ - private getAllowOptionForCategory_(): ContentSetting { - // Keep elements in alphabetical order within their groups. - switch (this.category) { -@@ -178,6 +193,8 @@ export class SettingsCategoryDefaultRadioGroupElement extends - // "Ask" vs "Blocked". - return ContentSetting.ASK; - default: -+ let obj = this.getSettingData(this.category); -+ if (obj) return ContentSetting.ALLOW; - assertNotReached('Invalid category: ' + this.category); - } - } -@@ -202,6 +219,7 @@ export class SettingsCategoryDefaultRadioGroupElement extends - /** @type {!ContentSetting} */ (this.getAllowOptionForCategory_()); - this.browserProxy.setDefaultValueForContentType( - this.category, -+ this.pref_.value === SiteContentRadioSetting.ASK ? "ask" : - this.categoryEnabled_ ? allowOption : ContentSetting.BLOCK); - if (this.selected !== this.categoryEnabled_) { - this.selected = this.categoryEnabled_; -@@ -240,7 +258,10 @@ export class SettingsCategoryDefaultRadioGroupElement extends - } - - const enabled = isSettingEnabled(update.setting); -- const prefValue = enabled ? SiteContentRadioSetting.ENABLED : -+ const ask = this.computeIsSettingAsk(update.setting) -+ && this.showAskSetting_(this.category); -+ const prefValue = ask ? SiteContentRadioSetting.ASK : -+ enabled ? SiteContentRadioSetting.ENABLED : - SiteContentRadioSetting.DISABLED; - this.selected = enabled; - this.set('pref_.value', prefValue); 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 -@@ -344,5 +344,6 @@ +@@ -345,5 +345,6 @@ label="$i18n{siteSettingsLoopbackNetwork}"> @@ -727,7 +651,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 -@@ -1624,6 +1624,7 @@ static_library("ui") { +@@ -1681,6 +1681,7 @@ static_library("ui") { "//components/commerce/core/webui", "//components/contextual_search:public", "//components/endpoint_fetcher", @@ -735,7 +659,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", -@@ -4824,6 +4825,7 @@ static_library("ui") { +@@ -4880,6 +4881,7 @@ static_library("ui") { "//components/payments/core:currency_formatter", "//components/power_bookmarks/core", "//components/prefs", @@ -775,15 +699,15 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_bubble_view.cc b/chrome diff --git a/chrome/browser/ui/views/page_info/page_info_main_view.cc b/chrome/browser/ui/views/page_info/page_info_main_view.cc --- 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 @@ +@@ -57,6 +57,7 @@ #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" + #include "ui/views/widget/widget.h" - #if BUILDFLAG(FULL_SAFE_BROWSING) -@@ -259,8 +260,20 @@ void PageInfoMainView::SetPermissionInfo( +@@ -265,8 +266,20 @@ void PageInfoMainView::SetPermissionInfo( scroll_view->SetDrawOverflowIndicator(false); auto* content_view = scroll_view->SetContents(std::make_unique()); @@ -806,7 +730,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_main_view.cc b/chrome/b content_view->SetID(PageInfoViewFactory::VIEW_ID_PAGE_INFO_PERMISSION_VIEW); content_view->SetProperty(views::kElementIdentifierKey, kPermissionsElementId); -@@ -275,11 +288,16 @@ void PageInfoMainView::SetPermissionInfo( +@@ -306,11 +319,16 @@ void PageInfoMainView::SetPermissionInfo( } } @@ -823,7 +747,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_main_view.cc b/chrome/b toggle_row->SetProperty(views::kCrossAxisAlignmentKey, views::LayoutAlignment::kStretch); syncable_permission_rows_.emplace(permission.type, toggle_row); -@@ -287,6 +305,8 @@ void PageInfoMainView::SetPermissionInfo( +@@ -318,6 +336,8 @@ void PageInfoMainView::SetPermissionInfo( } for (auto& object : chosen_object_info_list) { @@ -832,7 +756,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_main_view.cc b/chrome/b // The view takes ownership of the object info. auto object_view = std::make_unique( std::move(object), -@@ -297,6 +317,10 @@ void PageInfoMainView::SetPermissionInfo( +@@ -328,6 +348,10 @@ void PageInfoMainView::SetPermissionInfo( content_view->AddChildView(std::move(object_view))); } @@ -840,9 +764,9 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_main_view.cc b/chrome/b + if (++count % 2 == 0) + content_view->AddChildView(std::make_unique()); + - const int controls_spacing = ChromeLayoutProvider::Get()->GetDistanceMetric( - views::DISTANCE_RELATED_CONTROL_VERTICAL); reset_button_ = content_view->AddChildView( + std::make_unique(base::BindRepeating( + [=](PageInfoMainView* view) { diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.cc b/chrome/browser/ui/views/page_info/page_info_view_factory.cc --- a/chrome/browser/ui/views/page_info/page_info_view_factory.cc +++ b/chrome/browser/ui/views/page_info/page_info_view_factory.cc @@ -1214,7 +1138,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide #include "build/branding_buildflags.h" #include "build/build_config.h" #include "build/buildflag.h" -@@ -74,6 +75,9 @@ +@@ -82,6 +83,9 @@ #include "components/dom_distiller/core/dom_distiller_features.h" #include "components/google/core/common/google_util.h" #include "components/history/core/common/pref_names.h" @@ -1224,7 +1148,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" -@@ -4235,6 +4239,56 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, +@@ -4268,6 +4272,56 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, policy_indicator::AddLocalizedStrings(html_source); AddSecurityKeysStrings(html_source); @@ -1379,14 +1303,14 @@ 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 -@@ -97,6 +97,7 @@ android_resources("java_resources") { +@@ -100,6 +100,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", + "java/res/layout/preference_spinner_single_widget.xml", "java/res/layout/preference_spinner_single_line.xml", "java/res/layout/preference_spinner_single_line_item.xml", - "java/res/layout/settings_action_bar_shadow.xml", + "java/res/layout/preference_widget_open_in_new.xml", diff --git a/components/browser_ui/settings/android/java/res/layout/preference_spinner_single_widget.xml b/components/browser_ui/settings/android/java/res/layout/preference_spinner_single_widget.xml new file mode 100644 --- /dev/null @@ -1543,7 +1467,7 @@ diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/browser_ui/site_settings/android/BUILD.gn --- a/components/browser_ui/site_settings/android/BUILD.gn +++ b/components/browser_ui/site_settings/android/BUILD.gn -@@ -156,6 +156,23 @@ android_library("java") { +@@ -157,6 +157,23 @@ android_library("java") { ":site_settings_jni_headers", "//components/content_settings/android:java_pref_names_srcjar", ] @@ -1567,7 +1491,7 @@ diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/b } android_library("javatests") { -@@ -211,6 +228,7 @@ robolectric_library("junit") { +@@ -214,6 +231,7 @@ robolectric_library("junit") { } android_resources("java_resources") { @@ -2225,7 +2149,7 @@ new file mode 100644 diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/ContentSettingsResources.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/ContentSettingsResources.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/ContentSettingsResources.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/ContentSettingsResources.java -@@ -40,7 +40,7 @@ import org.chromium.device.DeviceFeatureMap; +@@ -39,7 +39,7 @@ import org.chromium.device.DeviceFeatureMap; @NullMarked public class ContentSettingsResources { /** An inner class contains all the resources for a ContentSettingsType */ @@ -2234,7 +2158,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c private final int mIcon; private final int mIconBlocked; private final int mTitle; -@@ -53,7 +53,28 @@ public class ContentSettingsResources { +@@ -52,7 +52,28 @@ public class ContentSettingsResources { private final int mDisabledPrimaryText; private int mDisabledDescriptionText; @@ -2264,7 +2188,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c int icon, int title, @ContentSetting @Nullable Integer defaultEnabledValue, -@@ -689,6 +710,8 @@ public class ContentSettingsResources { +@@ -687,6 +708,8 @@ public class ContentSettingsResources { R.string.website_settings_window_management_ask, R.string.website_settings_window_management_block); } @@ -2273,7 +2197,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c assert false; // NOTREACHED return assumeNonNull(null); } -@@ -869,6 +892,9 @@ public class ContentSettingsResources { +@@ -867,6 +890,9 @@ public class ContentSettingsResources { @ContentSetting int value, boolean isOneTime, boolean isApproximateGeolocation) { @@ -2283,15 +2207,15 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c return getCategorySummary( type, value, -@@ -1069,6 +1095,8 @@ public class ContentSettingsResources { +@@ -1066,6 +1092,8 @@ public class ContentSettingsResources { + * that order. */ - public static int @Nullable [] getTriStateSettingDescriptionIDs( - int contentType, boolean isPermissionSiteSettingsRadioButtonFeatureEnabled) { + public static int @Nullable [] getTriStateSettingDescriptionIDs(int contentType) { + int[] value = BromiteCustomContentSettingImpl.getTriStateSettingDescriptionIDs(contentType); + if (value != null) return value; if (contentType == ContentSettingsType.PROTECTED_MEDIA_IDENTIFIER) { - if (isPermissionSiteSettingsRadioButtonFeatureEnabled) { - int[] descriptionIDs = { + return new int[] { + R.string.website_settings_protected_content_allow, 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 @@ -2306,7 +2230,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c if (contentSetting != null) { return ContentSetting.BLOCK == contentSetting; } -@@ -563,6 +567,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -523,6 +527,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment ? new HashSet<>(getArguments().getStringArrayList(EXTRA_SELECTED_DOMAINS)) : null; @@ -2314,7 +2238,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"); -@@ -610,7 +615,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -570,7 +575,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment } }); @@ -2324,7 +2248,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c MenuItem help = menu.add( Menu.NONE, -@@ -620,12 +626,20 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -580,12 +586,20 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment help.setIcon( TraceEventVectorDrawableCompat.create( getResources(), R.drawable.ic_help_24dp, getContext().getTheme())); @@ -2345,7 +2269,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()); -@@ -703,6 +717,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -660,6 +674,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment public boolean onPreferenceChange(Preference preference, Object newValue) { BrowserContextHandle browserContextHandle = getBrowserContextHandle(); PrefService prefService = UserPrefs.get(browserContextHandle); @@ -2357,7 +2281,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(); -@@ -877,7 +896,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -834,7 +853,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment ? R.string.website_settings_add_site_description_javascript_optimizer_block : R.string.website_settings_add_site_description_javascript_optimizer_allow; } @@ -2366,7 +2290,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } // OnPreferenceClickListener: -@@ -995,17 +1014,15 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -952,17 +971,15 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment break; } @@ -2387,7 +2311,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c String exceptionDialogMessage = exceptionDialogMessageResourceId != 0 ? getString(exceptionDialogMessageResourceId) -@@ -1016,7 +1033,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -973,7 +990,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment getStyledContext(), ADD_EXCEPTION_KEY, exceptionDialogMessage, @@ -2396,7 +2320,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c mCategory, this)); -@@ -1200,8 +1217,16 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1149,8 +1166,16 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment private boolean isBlocked() { switch (mGlobalToggleLayout) { case GlobalToggleLayout.TRI_STATE_TOGGLE: @@ -2413,7 +2337,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c return (triStateToggle.getCheckedSetting() == ContentSetting.BLOCK); case GlobalToggleLayout.COOKIE_TOGGLE: CookieSettingsPreference cookieToggle = -@@ -1357,7 +1382,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1310,7 +1335,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment } else if (res_id != -1) { infoText.setSummary(res_id); } else { @@ -2426,7 +2350,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } // Hide the anti-abuse text preferences, as needed. -@@ -1396,6 +1425,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1346,6 +1375,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment } else { screen.removePreference(mLocationTriStatePref); } @@ -2434,15 +2358,15 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c maybeShowReasonToggleDisabled(screen); -@@ -1602,6 +1632,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment - iconIds = ContentSettingsResources.getTriStateSettingIconIDs(contentType); - } +@@ -1512,6 +1542,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment + ContentSettingsResources.getTriStateSettingDescriptionIDs(contentType); + int[] iconIds = ContentSettingsResources.getTriStateSettingIconIDs(contentType); triStateToggle.initialize( + contentType, setting, descriptionIds, iconIds, -@@ -1913,6 +1944,14 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1822,6 +1853,14 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment setLocationAccessEnabled.accept(allowButton.isChecked()); } @@ -2706,7 +2630,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 -@@ -188,6 +188,8 @@ public interface SiteSettingsDelegate { +@@ -183,6 +183,8 @@ public interface SiteSettingsDelegate { */ String getRelatedWebsiteSetOwner(String memberOrigin); @@ -2726,15 +2650,15 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c /** A 3-state Allowed/Ask/Blocked radio group Preference used for SiteSettings. */ @NullMarked -@@ -30,6 +31,7 @@ public class TriStateSiteSettingsPreference extends Preference +@@ -29,6 +30,7 @@ public class TriStateSiteSettingsPreference extends Preference + private RadioButtonWithDescription mBlocked; private RadioGroup mRadioGroup; - private boolean mIsPermissionSiteSettingsRadioButtonFeatureEnabled; private int mIconMarginEnd; + private @ContentSettingsType.EnumType int mContentType; public TriStateSiteSettingsPreference(Context context, AttributeSet attrs) { super(context, attrs); -@@ -50,11 +52,13 @@ public class TriStateSiteSettingsPreference extends Preference +@@ -49,10 +51,12 @@ public class TriStateSiteSettingsPreference extends Preference * Blocked states, in that order. */ public void initialize( @@ -2742,13 +2666,12 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c @ContentSetting int setting, int @Nullable [] descriptionIds, int @Nullable [] iconIds, - boolean isPermissionSiteSettingsRadioButtonFeatureEnabled, int iconMarginEnd) { + mContentType = contentType; mSetting = setting; mDescriptionIds = descriptionIds; mIconIds = iconIds; -@@ -94,6 +98,13 @@ public class TriStateSiteSettingsPreference extends Preference +@@ -90,6 +94,13 @@ public class TriStateSiteSettingsPreference extends Preference mRadioGroup = (RadioGroup) holder.findViewById(R.id.radio_button_layout); mRadioGroup.setOnCheckedChangeListener(this); @@ -2760,8 +2683,8 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c + mBlocked.setPrimaryText(getContext().getText(mDescriptionIds[2])); + } else if (mDescriptionIds != null) { - if (mIsPermissionSiteSettingsRadioButtonFeatureEnabled) { - mAllowed.setPrimaryText(getContext().getText(mDescriptionIds[0])); + mAllowed.setPrimaryText(getContext().getText(mDescriptionIds[0])); + mAsk.setPrimaryText(getContext().getText(mDescriptionIds[1])); diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java @@ -2793,16 +2716,16 @@ 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/WebsitePreferenceBridge.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java -@@ -318,7 +318,7 @@ public class WebsitePreferenceBridge { - case ContentSettingsType.PROTECTED_MEDIA_IDENTIFIER: - return true; +@@ -327,7 +327,7 @@ public class WebsitePreferenceBridge { + return DeviceFeatureMap.isEnabled( + DeviceFeatureList.SENSORS_ALLOW_ASK_BLOCK_PERMISSION_MODEL); default: - return false; + return BromiteCustomContentSettingImpl.requiresTriStateContentSetting(contentSettingsType); } } -@@ -334,7 +334,6 @@ public class WebsitePreferenceBridge { +@@ -343,7 +343,6 @@ public class WebsitePreferenceBridge { public static boolean isCategoryEnabled( BrowserContextHandle browserContextHandle, @ContentSettingsType.EnumType int contentSettingsType) { @@ -2889,7 +2812,7 @@ 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,8 @@ static_library("browser") { +@@ -85,6 +85,8 @@ static_library("browser") { configs += [ "//build/config/compiler:wexit_time_destructors" ] @@ -2898,7 +2821,7 @@ diff --git a/components/content_settings/core/browser/BUILD.gn b/components/cont # 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") { +@@ -93,6 +95,11 @@ static_library("browser") { public_deps += [ "//components/privacy_sandbox:privacy_sandbox_prefs" ] } @@ -2927,7 +2850,7 @@ diff --git a/components/content_settings/core/browser/content_settings_registry. namespace content_settings { -@@ -841,6 +842,7 @@ void ContentSettingsRegistry::Init() { +@@ -842,6 +843,7 @@ void ContentSettingsRegistry::Init() { WebsiteSettingsRegistry::PLATFORM_CHROMEOS, ContentSettingsInfo::INHERIT_IN_INCOGNITO, PermissionSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY); @@ -3422,9 +3345,9 @@ 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/content_settings_utils.h" -@@ -210,6 +211,15 @@ void PageInfoControllerAndroid::SetPermissionInfo( - } +@@ -211,6 +212,15 @@ void PageInfoControllerAndroid::SetPermissionInfo( } + permissions_to_display.push_back(ContentSettingsType::SENSORS); + content_settings::WebsiteSettingsRegistry* website_settings = + content_settings::WebsiteSettingsRegistry::GetInstance(); @@ -3438,7 +3361,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp std::map user_specified_settings_to_display; -@@ -288,6 +298,14 @@ std::optional PageInfoControllerAndroid::GetSettingToDisplay( +@@ -289,6 +299,14 @@ std::optional PageInfoControllerAndroid::GetSettingToDisplay( return permission.setting; } @@ -3464,7 +3387,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" -@@ -1404,6 +1405,14 @@ bool PageInfo::ShouldShowPermission( +@@ -1411,6 +1412,14 @@ bool PageInfo::ShouldShowPermission( } #endif // BUILDFLAG(IS_ANDROID) @@ -3479,7 +3402,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) { -@@ -1527,7 +1536,19 @@ void PageInfo::PresentSitePermissions() { +@@ -1559,7 +1568,19 @@ void PageInfo::PresentSitePermissions() { HostContentSettingsMap* content_settings = GetContentSettings(); DCHECK(web_contents_); @@ -3511,7 +3434,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" -@@ -256,6 +257,13 @@ void CreateOppositeToDefaultSiteException( +@@ -258,6 +259,13 @@ void CreateOppositeToDefaultSiteException( std::u16string GetPermissionAskStateString(ContentSettingsType type) { int message_id = kInvalidResourceID; @@ -3525,7 +3448,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; -@@ -560,6 +568,12 @@ PageInfoUI::~PageInfoUI() = default; +@@ -568,6 +576,12 @@ PageInfoUI::~PageInfoUI() = default; // static std::u16string PageInfoUI::PermissionTypeToUIString(ContentSettingsType type) { @@ -3538,7 +3461,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); -@@ -570,6 +584,12 @@ std::u16string PageInfoUI::PermissionTypeToUIString(ContentSettingsType type) { +@@ -578,6 +592,12 @@ std::u16string PageInfoUI::PermissionTypeToUIString(ContentSettingsType type) { // static std::u16string PageInfoUI::PermissionTypeToUIStringMidSentence( ContentSettingsType type) { @@ -3551,7 +3474,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); -@@ -963,6 +983,11 @@ bool PageInfoUI::ContentSettingsTypeInPageInfo(ContentSettingsType type) { +@@ -971,6 +991,11 @@ bool PageInfoUI::ContentSettingsTypeInPageInfo(ContentSettingsType type) { if (info.type == type) return true; } diff --git a/build/patches/Customize-selection-popup.patch b/build/patches/Customize-selection-popup.patch index 4e7b2a48..dec82036 100644 --- a/build/patches/Customize-selection-popup.patch +++ b/build/patches/Customize-selection-popup.patch @@ -11,7 +11,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../browser/ChromeActionModeHandler.java | 4 +- .../chrome/browser/ChromeTabbedActivity.java | 15 +++- ...ActivityTabWebContentsDelegateAndroid.java | 10 ++- - .../compositor/layouts/LayoutManagerImpl.java | 8 ++ + .../compositor/layouts/LayoutManagerImpl.java | 9 ++- .../tab/TabContextMenuItemDelegate.java | 7 +- .../chrome/browser/ui/RootUiCoordinator.java | 8 +- .../Customize-selection-popup.grdp | 34 +++++++++ @@ -23,7 +23,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../browser/PendingSelectionMenu.java | 8 +- .../browser/SelectionMenuItem.java | 73 ++++++++++++------- .../SelectionActionMenuDelegate.java | 32 +++++--- - 16 files changed, 194 insertions(+), 66 deletions(-) + 16 files changed, 194 insertions(+), 67 deletions(-) create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Customize-selection-popup.grdp diff --git a/android_webview/java/src/org/chromium/android_webview/selection/SamsungSelectionActionMenuDelegate.java b/android_webview/java/src/org/chromium/android_webview/selection/SamsungSelectionActionMenuDelegate.java @@ -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 -@@ -926,10 +926,17 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt +@@ -936,10 +936,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 +@@ -253,6 +253,14 @@ public class ActivityTabWebContentsDelegateAndroid extends TabWebContentsDelegat // Skip opening a new Tab if it doesn't make sense. if (mTab.isClosing()) return false; @@ -121,7 +121,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/tab_activit if (ChromeFeatureList.isEnabled(ChromeFeatureList.DOCUMENT_PICTURE_IN_PICTURE_API) && disposition == WindowOpenDisposition.NEW_PICTURE_IN_PICTURE) { assertNonNull(pictureInPictureWindowOptions); -@@ -263,7 +271,7 @@ public class ActivityTabWebContentsDelegateAndroid extends TabWebContentsDelegat +@@ -270,7 +278,7 @@ public class ActivityTabWebContentsDelegateAndroid extends TabWebContentsDelegat mTab, /* shouldPin= */ false, webContents, @@ -133,7 +133,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/tab_activit diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java -@@ -19,6 +19,7 @@ import android.view.ViewGroup; +@@ -20,6 +20,7 @@ import androidx.annotation.Px; import androidx.annotation.VisibleForTesting; import org.chromium.base.Callback; @@ -141,24 +141,29 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo import org.chromium.base.ObserverList; import org.chromium.base.TraceEvent; import org.chromium.base.supplier.MonotonicObservableSupplier; -@@ -250,6 +251,13 @@ public class LayoutManagerImpl - != TabLaunchType - .FROM_COLLABORATION_BACKGROUND_IN_GROUP) - || (!getTabModelSelector().isIncognitoSelected() && incognito); -+ boolean selectionPopupTabsForeground = -+ ContextUtils.getAppSharedPreferences().getBoolean( -+ "selection_popup_tabs_foreground", false); -+ if (selectionPopupTabsForeground) { -+ willBeSelected = launchType != TabLaunchType.FROM_RESTORE_TABS_UI -+ || (!getTabModelSelector().isIncognitoSelected() && incognito); -+ } - float lastTapX = LocalizationUtils.isLayoutRtl() ? mHost.getWidth() * mPxToDp : 0.f; - float lastTapY = 0.f; - if (launchType != TabLaunchType.FROM_CHROME_UI) { +@@ -243,11 +244,17 @@ public class LayoutManagerImpl + boolean willBeSelected = willAddedTabBeSelected(launchType, incognito); + float lastTapX = LocalizationUtils.isLayoutRtl() ? mHost.getWidth() * mPxToDp : 0.f; + float lastTapY = 0.f; ++ boolean selectionPopupTabsForeground = ++ ContextUtils.getAppSharedPreferences().getBoolean( ++ "selection_popup_tabs_foreground", false); ++ if (selectionPopupTabsForeground) { ++ willBeSelected = launchType != TabLaunchType.FROM_RESTORE_TABS_UI ++ || (!getTabModelSelector().isIncognitoSelected() && incognito); ++ } + if (launchType != TabLaunchType.FROM_CHROME_UI) { + lastTapX = mPxToDp * mLastTapX; + lastTapY = mPxToDp * mLastTapY; + } +- + tabCreated( + tabId, + getTabModelSelector().getCurrentTabId(), diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java -@@ -430,8 +430,13 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { +@@ -433,8 +433,13 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { public void onOpenImageInNewTab(GURL url, @Nullable Referrer referrer) { LoadUrlParams loadUrlParams = new LoadUrlParams(url.getSpec()); loadUrlParams.setReferrer(referrer); @@ -176,15 +181,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java -@@ -35,6 +35,7 @@ import androidx.core.view.WindowInsetsCompat; +@@ -34,6 +34,7 @@ import androidx.core.view.WindowInsetsCompat; import org.chromium.base.Callback; import org.chromium.base.CallbackController; +import org.chromium.base.ContextUtils; import org.chromium.base.DeviceInfo; - import org.chromium.base.Log; import org.chromium.base.TraceEvent; -@@ -1050,11 +1051,16 @@ public class RootUiCoordinator + import org.chromium.base.lifetime.Destroyable; +@@ -1065,11 +1066,16 @@ public class RootUiCoordinator TrackerFactory.getTrackerForProfile(tab.getProfile()) .notifyEvent(EventConstants.WEB_SEARCH_PERFORMED); @@ -390,7 +395,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 -@@ -1127,7 +1127,7 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper +@@ -1133,7 +1133,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. @@ -402,15 +407,15 @@ 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/SmartSelectionClient.java b/content/public/android/java/src/org/chromium/content/browser/selection/SmartSelectionClient.java --- a/content/public/android/java/src/org/chromium/content/browser/selection/SmartSelectionClient.java +++ b/content/public/android/java/src/org/chromium/content/browser/selection/SmartSelectionClient.java -@@ -18,6 +18,7 @@ import org.jni_zero.CalledByNative; - import org.jni_zero.JNINamespace; +@@ -19,6 +19,7 @@ import org.jni_zero.JNINamespace; + import org.jni_zero.JniType; import org.jni_zero.NativeMethods; +import org.chromium.base.ContextUtils; import org.chromium.base.ObserverList; import org.chromium.base.UserData; import org.chromium.build.annotations.Initializer; -@@ -84,6 +85,9 @@ public class SmartSelectionClient implements SelectionClient, UserData { +@@ -81,6 +82,9 @@ public class SmartSelectionClient implements SelectionClient, UserData { return null; } diff --git a/build/patches/Dictionary-suggestions-for-the-Omnibox.patch b/build/patches/Dictionary-suggestions-for-the-Omnibox.patch index 22ed4565..8b25a6cc 100644 --- a/build/patches/Dictionary-suggestions-for-the-Omnibox.patch +++ b/build/patches/Dictionary-suggestions-for-the-Omnibox.patch @@ -10,10 +10,10 @@ Original License: BSD-3-Clause - https://spdx.org/licenses/BSD-3-Clause.html License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- chrome/android/java/res/layout/url_bar.xml | 1 + - .../browser/omnibox/LocationBarMediator.java | 11 ++++++++- + .../browser/omnibox/LocationBarMediator.java | 10 ++++++++ .../chrome/browser/omnibox/UrlBar.java | 24 +++++++++++++++++++ .../browser/omnibox/UrlBarViewBinder.java | 2 ++ - 4 files changed, 37 insertions(+), 1 deletion(-) + 4 files changed, 37 insertions(+) diff --git a/chrome/android/java/res/layout/url_bar.xml b/chrome/android/java/res/layout/url_bar.xml --- a/chrome/android/java/res/layout/url_bar.xml @@ -29,24 +29,23 @@ 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 -@@ -415,7 +415,16 @@ class LocationBarMediator - if (!mUrlFocusedWithPastedText - && !shouldRetainOmniboxOnFocus - && mLocationBarLayout.shouldClearTextOnFocus()) { -- setUrlBarText(UrlBarData.EMPTY, UrlBar.ScrollType.NO_SCROLL, UrlBarData.SELECT_END); -+ UrlBarData data = mLocationBarDataProvider.getUrlBarData(); -+ GURL url = mLocationBarDataProvider.getUrlBarData().url; -+ if (url != null && mTemplateUrlServiceSupplier.get() != null) { -+ String searchParams = -+ mTemplateUrlServiceSupplier.get().getSearchQueryForUrl(url); -+ if (searchParams != null && !searchParams.isEmpty()) { -+ data = UrlBarData.forUrlAndText(data.url, data.displayText, searchParams); -+ } +@@ -413,6 +413,16 @@ class LocationBarMediator + + if (hasFocus) { + if (mNativeInitialized) RecordUserAction.record("FocusLocation"); ++ UrlBarData data = mLocationBarDataProvider.getUrlBarData(); ++ GURL url = mLocationBarDataProvider.getUrlBarData().url; ++ if (url != null && mTemplateUrlServiceSupplier.get() != null) { ++ String searchParams = ++ mTemplateUrlServiceSupplier.get().getSearchQueryForUrl(url); ++ if (searchParams != null && !searchParams.isEmpty()) { ++ data = UrlBarData.forUrlAndText(data.url, data.displayText, searchParams); + } -+ setUrlBarText(data, UrlBar.ScrollType.NO_SCROLL, UrlBarData.SELECT_ALL); - } else if (shouldRetainOmniboxOnFocus) { - mUrlCoordinator.setSelectAllOnFocus(true); - } ++ } ++ setUrlBarText(data, UrlBar.ScrollType.NO_SCROLL, UrlBarData.SELECT_ALL); + } else { + mUrlFocusedWithoutAnimations = false; + } diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java @@ -58,18 +57,18 @@ 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; -@@ -112,6 +113,7 @@ public class UrlBar extends AutocompleteEditText { +@@ -110,6 +111,7 @@ public class UrlBar extends AutocompleteEditText { + private boolean mFocusEventEmitted; private boolean mAllowFocus = true; - private boolean mShouldSendTypingStartedEvent; + private boolean mPendingSelectAll; private boolean mPendingScroll; private boolean mIsInCct; -@@ -369,6 +371,28 @@ public class UrlBar extends AutocompleteEditText { +@@ -340,6 +342,28 @@ public class UrlBar extends AutocompleteEditText { + mPendingScroll = false; + } fixupTextDirection(); - - mShouldSendTypingStartedEvent = focused; + + if (mPendingSelectAll) { + UrlBar sender = this; @@ -98,13 +97,13 @@ 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/UrlBarViewBinder.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBarViewBinder.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBarViewBinder.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBarViewBinder.java -@@ -84,6 +84,8 @@ class UrlBarViewBinder { +@@ -100,6 +100,8 @@ class UrlBarViewBinder { + selectionRange = Range.create(textLength, textLength); } - view.setSelection(selectionRange.getLower(), selectionRange.getUpper()); + if (state.selection == UrlBarData.SELECT_ALL) + view.selectAll(); - // Move the accessibility focus to the Omnibox. - // This ensures the updated field is announced to the user, especially when the user - // recently interacted with Refine button. + view.requestAccessibilityFocus(); + } + } else if (UrlBarProperties.TEXT_COLOR.equals(propertyKey)) { -- diff --git a/build/patches/Disable-TLS-resumption.patch b/build/patches/Disable-TLS-resumption.patch index a0475038..a87c4450 100644 --- a/build/patches/Disable-TLS-resumption.patch +++ b/build/patches/Disable-TLS-resumption.patch @@ -129,15 +129,15 @@ diff --git a/net/quic/quic_session_pool.cc b/net/quic/quic_session_pool.cc QuicSessionRequest::QuicSessionRequest(QuicSessionPool* pool) : pool_(pool) {} QuicSessionRequest::~QuicSessionRequest() { -@@ -2422,7 +2454,7 @@ QuicSessionPool::CreateCryptoConfigHandle(QuicCryptoClientConfigKey key) { +@@ -2429,7 +2461,7 @@ QuicSessionPool::CreateCryptoConfigHandle(QuicCryptoClientConfigKey key) { cert_verifier_, transport_security_state_, sct_auditing_delegate_, std::move(hostnames_to_allow_unknown_roots), key.network_anonymization_key), -- std::make_unique(), this); -+ std::make_unique(), this); +- std::make_unique( ++ std::make_unique( + kDefaultQuicSessionCacheSize), + kDefaultQuicSessionCacheSize, this); - quic::QuicCryptoClientConfig* crypto_config = crypto_config_owner->config(); - crypto_config->AddCanonicalSuffix(".c.youtube.com"); 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 diff --git a/build/patches/Disable-integration-with-Gemini.patch b/build/patches/Disable-integration-with-Gemini.patch index 22580273..d34e8645 100644 --- a/build/patches/Disable-integration-with-Gemini.patch +++ b/build/patches/Disable-integration-with-Gemini.patch @@ -7,43 +7,44 @@ This patch fixes build errors. License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- - chrome/android/BUILD.gn | 1 - - .../android/java/res/xml/main_preferences.xml | 5 ----- - .../AppMenuPropertiesDelegateImpl.java | 11 ---------- + chrome/android/BUILD.gn | 2 -- + .../android/java/res/xml/main_preferences.xml | 5 ---- + .../AppMenuPropertiesDelegateImpl.java | 11 -------- .../search/SearchIndexProviderRegistry.java | 1 - - .../TabbedAppMenuPropertiesDelegate.java | 13 ++--------- - .../chrome/browser/ui/RootUiCoordinator.java | 21 ------------------ + .../TabbedAppMenuPropertiesDelegate.java | 13 ++-------- chrome/browser/BUILD.gn | 2 -- - chrome/browser/actor/BUILD.gn | 2 -- - chrome/browser/android/tab_features.cc | 4 ++++ - chrome/browser/android/tab_features.h | 4 ++++ + chrome/browser/actor/BUILD.gn | 3 --- + chrome/browser/android/tab_features.cc | 4 +++ + chrome/browser/android/tab_features.h | 4 +++ .../contextual_cueing_helper.cc | 2 ++ .../contextual_cueing_page_data.cc | 3 +++ .../api/pdf_viewer_private/BUILD.gn | 3 --- - .../pdf_viewer_private_api.cc | 22 +------------------ + .../pdf_viewer_private_api.cc | 25 +------------------ chrome/browser/glic/android/BUILD.gn | 2 +- chrome/browser/pdf/BUILD.gn | 1 - - chrome/browser/sync/BUILD.gn | 4 ++-- + chrome/browser/sync/BUILD.gn | 4 +-- chrome/browser/sync/test/integration/BUILD.gn | 2 +- .../ui/browser_window/internal/BUILD.gn | 2 +- chrome/browser/ui/pdf/BUILD.gn | 1 - .../pdf/chrome_pdf_document_helper_client.cc | 2 ++ - .../ui/tabs/alert/tab_alert_controller.cc | 2 +- + .../ui/tabs/alert/tab_alert_controller.cc | 2 ++ chrome/browser/ui/toasts/BUILD.gn | 2 +- - chrome/common/chrome_features.cc | 4 ++++ - chrome/common/chrome_features.h | 2 +- - chrome/common/features.gni | 2 +- + chrome/common/BUILD.gn | 1 + + chrome/common/chrome_features.cc | 1 + + chrome/common/chrome_features.h | 1 + + chrome/common/features.gni | 3 +-- chrome/test/BUILD.gn | 2 +- components/browser_sync/BUILD.gn | 2 +- - 28 files changed, 33 insertions(+), 91 deletions(-) + 28 files changed, 32 insertions(+), 74 deletions(-) diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -368,7 +368,6 @@ if (_is_default_toolchain) { +@@ -374,8 +374,6 @@ if (_is_default_toolchain) { "//chrome/browser/creator/android:java", "//chrome/browser/data_sharing:factory_java", "//chrome/browser/data_sharing:instant_message_delegate_factory_java", +- "//chrome/browser/glic:public_java", - "//chrome/browser/glic/android:java", "//chrome/browser/page_content_annotations:factory_java", "//chrome/browser/prefs/android:java", @@ -51,7 +52,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 -@@ -102,11 +102,6 @@ found in the LICENSE file. +@@ -100,11 +100,6 @@ found in the LICENSE file. android:order="18" android:title="@string/tabs_settings_title" app:isPreferenceVisible="false"/> @@ -66,7 +67,7 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j diff --git a/chrome/android/java/src/org/chromium/chrome/browser/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 -@@ -740,17 +740,6 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties +@@ -739,17 +739,6 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties return downloadButton; } @@ -98,11 +99,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/search 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 -@@ -233,11 +233,7 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm +@@ -237,11 +237,7 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm iconModels.add(buildForwardActionModel(currentTab)); iconModels.add(buildBookmarkActionModel(currentTab)); iconModels.add(buildDownloadActionModel(currentTab)); -- if (ChromeFeatureList.isEnabled(ChromeFeatureList.GLIC)) { +- if (ChromeFeatureList.sGlic.isEnabled()) { - iconModels.add(buildGlicActionModel(currentTab)); - } else { - iconModels.add(buildPageInfoModel(currentTab)); @@ -111,8 +112,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab iconModels.add(buildReloadModel(currentTab)); -@@ -1165,12 +1161,7 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm - || !ChromeFeatureList.isEnabled(ChromeFeatureList.GLIC)) { +@@ -1399,12 +1395,7 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm + || !ChromeFeatureList.sGlic.isEnabled()) { return null; } - return new MVCListAdapter.ListItem( @@ -125,51 +126,13 @@ 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 -@@ -96,7 +96,6 @@ import org.chromium.chrome.browser.fullscreen.BrowserControlsManager; - import org.chromium.chrome.browser.fullscreen.FullscreenBackPressHandler; - import org.chromium.chrome.browser.fullscreen.FullscreenManager; - import org.chromium.chrome.browser.fullscreen.FullscreenOptions; --import org.chromium.chrome.browser.glic.GlicKeyedService; - import org.chromium.chrome.browser.host_zoom.HostZoomListenerFactory; - import org.chromium.chrome.browser.image_descriptions.ImageDescriptionsController; - import org.chromium.chrome.browser.incognito.reauth.IncognitoReauthController; -@@ -1619,26 +1618,6 @@ public class RootUiCoordinator - return result != null && result; - } - } -- } else if (id == R.id.glic_menu_id) { -- var task = mChromeAndroidTaskSupplier.get(); -- if (task == null) { -- Log.w(TAG, "Failed to trigger GLIC: ChromeAndroidTask is null."); -- return false; -- } -- Profile profile = mTabModelSelectorSupplier.get().getCurrentModel().getProfile(); -- assert profile != null; -- long browserWindowPtr = task.getOrCreateNativeBrowserWindowPtr(profile); -- GlicKeyedService service = new GlicKeyedService(); -- if (service == null) { -- return false; -- } -- -- // TODO(crbug.com/479863299): Create and pass in enum for invocationSource. -- service.toggleUI( -- browserWindowPtr, -- assumeNonNull(mProfileSupplier.get()), -- /* invocationSource= */ 7); -- return true; - } - return false; - } diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -3376,8 +3376,6 @@ static_library("browser") { - "//chrome/browser/flags:flags_android", +@@ -3275,8 +3275,6 @@ static_library("browser") { "//chrome/browser/flags:flags_android_impl", - "//chrome/browser/gesturenav/android:jni_headers", + "//chrome/browser/gesturenav/android:gesturenav", + "//chrome/browser/gesturenav/android:impl", - "//chrome/browser/glic/android", - "//chrome/browser/glic/android:jni_headers", "//chrome/browser/keyboard_accessory/android", @@ -178,30 +141,31 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/actor/BUILD.gn b/chrome/browser/actor/BUILD.gn --- a/chrome/browser/actor/BUILD.gn +++ b/chrome/browser/actor/BUILD.gn -@@ -394,8 +394,6 @@ source_set("browser_tests") { +@@ -399,9 +399,6 @@ source_set("browser_tests") { ":tools_test_support", "ui:event_dispatcher", "//chrome/browser/affiliations", - "//chrome/browser/glic", +- "//chrome/browser/glic/actor:browser_tests", - "//chrome/browser/glic/test_support", + "//chrome/browser/lookalikes:test_support", "//chrome/browser/optimization_guide", "//chrome/browser/optimization_guide:test_support", - "//chrome/browser/safe_browsing", diff --git a/chrome/browser/android/tab_features.cc b/chrome/browser/android/tab_features.cc --- a/chrome/browser/android/tab_features.cc +++ b/chrome/browser/android/tab_features.cc -@@ -6,8 +6,10 @@ - - #include "chrome/browser/actor/actor_features.h" +@@ -9,8 +9,10 @@ #include "chrome/browser/actor/actor_tab_data.h" + #include "chrome/browser/actor/android/ui/actor_ui_tab_controller_android.h" + #include "chrome/browser/glic/public/glic_enabling.h" +#if BUILDFLAG(ENABLE_GLIC) #include "chrome/browser/glic/public/widget/glic_side_panel_coordinator_android.h" #include "chrome/browser/glic/service/glic_instance_helper.h" +#endif #include "chrome/browser/net/qwac_web_contents_observer.h" #include "chrome/browser/preloading/new_tab_page_preload/new_tab_page_preload_pipeline_manager.h" - #include "chrome/browser/sync/sessions/sync_sessions_router_tab_helper.h" -@@ -49,11 +51,13 @@ TabFeatures::TabFeatures(content::WebContents* web_contents, Profile* profile) { + #include "chrome/browser/profiles/profile.h" +@@ -62,11 +64,13 @@ TabFeatures::TabFeatures(content::WebContents* web_contents, Profile* profile) { GetUserDataFactory().CreateInstance( *tab, tab); @@ -218,7 +182,7 @@ diff --git a/chrome/browser/android/tab_features.cc b/chrome/browser/android/tab diff --git a/chrome/browser/android/tab_features.h b/chrome/browser/android/tab_features.h --- a/chrome/browser/android/tab_features.h +++ b/chrome/browser/android/tab_features.h -@@ -22,10 +22,12 @@ namespace content { +@@ -26,10 +26,12 @@ namespace content { class WebContents; } // namespace content @@ -231,7 +195,7 @@ diff --git a/chrome/browser/android/tab_features.h b/chrome/browser/android/tab_ namespace sync_sessions { class SyncSessionsRouterTabHelper; -@@ -68,8 +70,10 @@ class TabFeatures { +@@ -72,8 +74,10 @@ class TabFeatures { std::unique_ptr tab_contextualization_controller_; @@ -239,21 +203,21 @@ diff --git a/chrome/browser/android/tab_features.h b/chrome/browser/android/tab_ std::unique_ptr glic_instance_helper_; std::unique_ptr glic_side_panel_coordinator_; +#endif + std::unique_ptr + actor_ui_tab_controller_; }; - - } // namespace tabs diff --git a/chrome/browser/contextual_cueing/contextual_cueing_helper.cc b/chrome/browser/contextual_cueing/contextual_cueing_helper.cc --- a/chrome/browser/contextual_cueing/contextual_cueing_helper.cc +++ b/chrome/browser/contextual_cueing/contextual_cueing_helper.cc -@@ -403,6 +403,7 @@ void ContextualCueingHelper::OnCueingDecision( +@@ -419,6 +419,7 @@ void ContextualCueingHelper::OnCueingDecision( return; } +#if BUILDFLAG(ENABLE_GLIC) // Handle side panel auto-open case: bypass nudge and open panel directly. // If auto-open fails or is disabled, falls through to standard nudge. - const bool should_open_side_panel = -@@ -449,6 +450,7 @@ void ContextualCueingHelper::OnCueingDecision( + if (should_open_side_panel) { +@@ -452,6 +453,7 @@ void ContextualCueingHelper::OnCueingDecision( contextual_cueing_service_->GetWeakPtr(), web_contents(), document_available_time, decision_result->is_dynamic)); @@ -321,7 +285,7 @@ diff --git a/chrome/browser/extensions/api/pdf_viewer_private/pdf_viewer_private #include "chrome/browser/pdf/pdf_pref_names.h" #include "chrome/browser/pdf/pdf_viewer_stream_manager.h" #include "chrome/browser/profiles/profile.h" -@@ -305,24 +302,7 @@ ExtensionFunction::ResponseAction PdfViewerPrivateGlicSummarizeFunction::Run() { +@@ -307,27 +304,7 @@ ExtensionFunction::ResponseAction PdfViewerPrivateGlicSummarizeFunction::Run() { return RespondNow(Error("No tab.")); } @@ -335,11 +299,14 @@ diff --git a/chrome/browser/extensions/api/pdf_viewer_private/pdf_viewer_private - contents->GetBrowserContext()); - CHECK(glic_service); - -- glic_service->ToggleUI(tab_interface->GetBrowserWindowInterface(), -- /*prevent_close=*/true, -- glic::mojom::InvocationSource::kPdfSummarizeButton, -- /*prompt_suggestion=*/"summarize the pdf", -- /*auto_send=*/true); +- glic::GlicInvokeOptions options{ +- glic::mojom::InvocationSource::kPdfSummarizeButton}; +- options.prompts.push_back(kSummarizePrompt); +- options.conversation = glic::NewConversation(); +- +- glic_service->InvokeWithAutoSubmit( +- glic::InvokeWithAutoSubmitPasskeyProvider::GetPassKey(), tab_interface, +- std::move(options)); - - success = true; - return RespondNow(NoArguments()); @@ -350,15 +317,15 @@ diff --git a/chrome/browser/extensions/api/pdf_viewer_private/pdf_viewer_private diff --git a/chrome/browser/glic/android/BUILD.gn b/chrome/browser/glic/android/BUILD.gn --- a/chrome/browser/glic/android/BUILD.gn +++ b/chrome/browser/glic/android/BUILD.gn -@@ -36,7 +36,7 @@ android_library("java") { +@@ -62,7 +62,7 @@ android_library("java") { ] } -source_set("android") { +source_set("android_notused") { - sources = [ "glic_keyed_service_android.cc" ] - public_deps = [ ":jni_headers" ] - deps = [ + sources = [ + "glic_keyed_service_android.cc", + "glic_keyed_service_android.h", diff --git a/chrome/browser/pdf/BUILD.gn b/chrome/browser/pdf/BUILD.gn --- a/chrome/browser/pdf/BUILD.gn +++ b/chrome/browser/pdf/BUILD.gn @@ -373,7 +340,7 @@ diff --git a/chrome/browser/pdf/BUILD.gn b/chrome/browser/pdf/BUILD.gn diff --git a/chrome/browser/sync/BUILD.gn b/chrome/browser/sync/BUILD.gn --- a/chrome/browser/sync/BUILD.gn +++ b/chrome/browser/sync/BUILD.gn -@@ -135,7 +135,7 @@ source_set("sync") { +@@ -145,7 +145,7 @@ source_set("sync") { "//components/saved_tab_groups/public", "//components/send_tab_to_self", "//components/sharing_message", @@ -382,7 +349,7 @@ diff --git a/chrome/browser/sync/BUILD.gn b/chrome/browser/sync/BUILD.gn "//components/spellcheck:buildflags", "//components/spellcheck/browser", "//components/strings:components_strings_grit", -@@ -194,7 +194,7 @@ source_set("sync") { +@@ -205,7 +205,7 @@ source_set("sync") { ] deps += [ "//chrome/browser/accessibility/tree_fixing:prefs", @@ -394,7 +361,7 @@ diff --git a/chrome/browser/sync/BUILD.gn b/chrome/browser/sync/BUILD.gn diff --git a/chrome/browser/sync/test/integration/BUILD.gn b/chrome/browser/sync/test/integration/BUILD.gn --- a/chrome/browser/sync/test/integration/BUILD.gn +++ b/chrome/browser/sync/test/integration/BUILD.gn -@@ -246,7 +246,7 @@ source_set("sync_integration_tests_impl") { +@@ -254,7 +254,7 @@ source_set("sync_integration_tests_impl") { "//chrome/browser/search_engines", "//chrome/browser/send_tab_to_self", "//chrome/browser/sharing", @@ -429,7 +396,7 @@ diff --git a/chrome/browser/ui/pdf/BUILD.gn b/chrome/browser/ui/pdf/BUILD.gn diff --git a/chrome/browser/ui/pdf/chrome_pdf_document_helper_client.cc b/chrome/browser/ui/pdf/chrome_pdf_document_helper_client.cc --- a/chrome/browser/ui/pdf/chrome_pdf_document_helper_client.cc +++ b/chrome/browser/ui/pdf/chrome_pdf_document_helper_client.cc -@@ -65,6 +65,7 @@ void LogGlicSummarizeMetrics(content::RenderFrameHost* render_frame_host) { +@@ -66,6 +66,7 @@ void LogGlicSummarizeMetrics(content::RenderFrameHost* render_frame_host) { return; } @@ -437,7 +404,7 @@ diff --git a/chrome/browser/ui/pdf/chrome_pdf_document_helper_client.cc b/chrome bool glic_enabled = glic::GlicEnabling::IsEnabledForProfile( Profile::FromBrowserContext(web_contents_to_use->GetBrowserContext())); base::UmaHistogramBoolean("PDF.GlicEnabled", glic_enabled); -@@ -73,6 +74,7 @@ void LogGlicSummarizeMetrics(content::RenderFrameHost* render_frame_host) { +@@ -74,6 +75,7 @@ void LogGlicSummarizeMetrics(content::RenderFrameHost* render_frame_host) { web_contents_to_use->GetBrowserContext()); base::UmaHistogramBoolean("PDF.GlicSummarizeButtonEnabled", glic_summarize_button_enabled); @@ -448,44 +415,51 @@ diff --git a/chrome/browser/ui/pdf/chrome_pdf_document_helper_client.cc b/chrome diff --git a/chrome/browser/ui/tabs/alert/tab_alert_controller.cc b/chrome/browser/ui/tabs/alert/tab_alert_controller.cc --- a/chrome/browser/ui/tabs/alert/tab_alert_controller.cc +++ b/chrome/browser/ui/tabs/alert/tab_alert_controller.cc -@@ -178,8 +178,8 @@ std::u16string TabAlertController::GetTabAlertStateText( +@@ -173,12 +173,14 @@ std::u16string TabAlertController::GetTabAlertStateText( case TabAlert::kActorWaitingOnUser: return l10n_util::GetStringUTF16( IDS_TOOLTIP_TAB_ALERT_STATE_ACTOR_ACCESSING); -- case TabAlert::kGlicAccessing: - #if BUILDFLAG(ENABLE_GLIC) -+ case TabAlert::kGlicAccessing: ++#if BUILDFLAG(ENABLE_GLIC) + case TabAlert::kGlicAccessing: return l10n_util::GetStringUTF16( IDS_TOOLTIP_TAB_ALERT_STATE_GLIC_ACCESSING); case TabAlert::kGlicSharing: + return l10n_util::GetStringUTF16( + IDS_TOOLTIP_TAB_ALERT_STATE_GLIC_SHARING); ++#endif + } + NOTREACHED(); + } diff --git a/chrome/browser/ui/toasts/BUILD.gn b/chrome/browser/ui/toasts/BUILD.gn --- a/chrome/browser/ui/toasts/BUILD.gn +++ b/chrome/browser/ui/toasts/BUILD.gn -@@ -52,7 +52,7 @@ source_set("impl") { - "//chrome/browser/actor/resources:common_resources", +@@ -53,7 +53,7 @@ source_set("impl") { "//chrome/browser/actor/resources:grit", + "//chrome/browser/glic", "//chrome/browser/profiles:profile", - "//chrome/browser/skills:ui", + #"//chrome/browser/skills:ui", + "//chrome/browser/translate", "//chrome/browser/ui:browser_element_identifiers", - "//chrome/browser/ui/tabs/saved_tab_groups", - "//chrome/browser/ui/views/interaction", + "//chrome/browser/ui/side_panel", +diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn +--- a/chrome/common/BUILD.gn ++++ b/chrome/common/BUILD.gn +@@ -55,6 +55,7 @@ buildflag_header("buildflags") { + "ENABLE_BACKGROUND_CONTENTS=$enable_background_contents", + "ENABLE_CHROME_NOTIFICATIONS=$enable_chrome_notifications", + "ENABLE_DOWNGRADE_PROCESSING=$enable_downgrade_processing", ++ "ENABLE_GLIC=$enable_glic", + "ENABLE_HANGOUT_SERVICES_EXTENSION=$enable_hangout_services_extension", + "ENABLE_PDF_SAVE_TO_DRIVE=$enable_pdf_save_to_drive", + "ENABLE_SERVICE_DISCOVERY=$enable_service_discovery", 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 -@@ -507,12 +507,16 @@ BASE_FEATURE(kGlicTrustFirstOnboarding, base::FEATURE_DISABLED_BY_DEFAULT); - - const base::FeatureParam kGlicTrustFirstOnboardingArmParam{ - &kGlicTrustFirstOnboarding, "arm", 1 /* kStartChat */}; -+#if !BUILDFLAG(ENABLE_GLIC) -+BASE_FEATURE(kGlic, base::FEATURE_DISABLED_BY_DEFAULT); -+#endif - #if BUILDFLAG(ENABLE_GLIC) - // Controls whether the Glic feature is enabled. - // IMPORTANT: this feature should never be expired! It is used as the main - // kill-switch for Glic and can be used in the future to handle unsupported - // Chrome versions. - BASE_FEATURE(kGlic, base::FEATURE_DISABLED_BY_DEFAULT); +@@ -523,6 +523,7 @@ BASE_FEATURE(kGlic, + base::FEATURE_DISABLED_BY_DEFAULT + #endif + ); +SET_CROMITE_FEATURE_DISABLED(kGlic); // Controls whether the Glic feature is always detached. @@ -493,14 +467,7 @@ diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc diff --git a/chrome/common/chrome_features.h b/chrome/common/chrome_features.h --- a/chrome/common/chrome_features.h +++ b/chrome/common/chrome_features.h -@@ -371,13 +371,13 @@ BASE_DECLARE_FEATURE(kGlicTrustFirstOnboarding); - COMPONENT_EXPORT(CHROME_FEATURES) - extern const base::FeatureParam kGlicTrustFirstOnboardingArmParam; - --#if BUILDFLAG(ENABLE_GLIC) - // Controls whether the Glic feature is enabled. - // IMPORTANT: this feature should never be expired! It is used as the main - // kill-switch for Glic and can be used in the future to handle unsupported +@@ -377,6 +377,7 @@ extern const base::FeatureParam kGlicTrustFirstOnboardingArmParam; // Chrome versions. COMPONENT_EXPORT(CHROME_FEATURES) BASE_DECLARE_FEATURE(kGlic); @@ -511,11 +478,12 @@ diff --git a/chrome/common/chrome_features.h b/chrome/common/chrome_features.h diff --git a/chrome/common/features.gni b/chrome/common/features.gni --- a/chrome/common/features.gni +++ b/chrome/common/features.gni -@@ -46,7 +46,7 @@ declare_args() { - enable_chrome_notifications = is_mac || is_win || is_linux +@@ -42,8 +42,7 @@ declare_args() { + enable_background_contents = !is_android + enable_background_mode = !is_android && !is_chromeos - # Enables inclusion of glic in the build. -- enable_glic = is_mac || is_win || is_linux || is_chromeos || is_android +- # Enables usage of notifications via Chrome's MessageCenter. +- enable_chrome_notifications = is_mac || is_win || is_linux + enable_glic = is_mac || is_win || is_linux || is_chromeos # Skips unmigrated actor files in the build on Android. This is temporary, and @@ -523,7 +491,7 @@ diff --git a/chrome/common/features.gni b/chrome/common/features.gni diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn -@@ -1976,7 +1976,7 @@ if (is_android) { +@@ -2028,7 +2028,7 @@ if (is_android) { "//chrome/browser/content_settings:content_settings_factory", "//chrome/browser/enterprise/data_controls", "//chrome/browser/flags:flags_android", @@ -535,7 +503,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn diff --git a/components/browser_sync/BUILD.gn b/components/browser_sync/BUILD.gn --- a/components/browser_sync/BUILD.gn +++ b/components/browser_sync/BUILD.gn -@@ -49,7 +49,7 @@ static_library("browser_sync") { +@@ -50,7 +50,7 @@ static_library("browser_sync") { "//components/send_tab_to_self", "//components/sharing_message", "//components/skills:features", diff --git a/build/patches/Enable-extension-in-incognito.patch b/build/patches/Enable-extension-in-incognito.patch index da9ce32a..a19f24fd 100644 --- a/build/patches/Enable-extension-in-incognito.patch +++ b/build/patches/Enable-extension-in-incognito.patch @@ -7,11 +7,11 @@ Full activation of incognito mode in experimental extension License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- .../chrome/browser/ChromeTabbedActivity.java | 9 ++ - .../chrome/browser/app/ChromeActivity.java | 43 ++++++-- + .../chrome/browser/app/ChromeActivity.java | 45 ++++++-- .../BaseCustomTabRootUiCoordinator.java | 2 + .../CustomTabIntentDataProvider.java | 3 + .../tabbed_mode/TabbedRootUiCoordinator.java | 1 + - .../browser/tabmodel/TabModelJniBridge.java | 4 +- + .../browser/tabmodel/TabModelJniBridge.java | 2 +- .../tabmodel/TabModelSelectorBase.java | 14 +++ .../browser/toolbar/ToolbarManager.java | 2 + .../chrome/browser/ui/RootUiCoordinator.java | 2 + @@ -22,36 +22,35 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../extensions/extension_actions_bridge.cc | 23 ++-- .../extensions/extension_actions_bridge.h | 4 +- .../ExtensionActionContextMenuBridge.java | 2 +- - .../ui/extensions/ExtensionActionsBridge.java | 92 ++++++++++++---- + .../ui/extensions/ExtensionActionsBridge.java | 64 +++++++++-- .../ui/extensions/ExtensionsMenuBridge.java | 70 ++++++++++-- - .../extensions/ExtensionsToolbarBridge.java | 101 +++++++++++++----- + .../extensions/ExtensionsToolbarBridge.java | 105 +++++++++++++----- .../android/tab_model/tab_model_jni_bridge.cc | 4 + - .../ExtensionActionListCoordinator.java | 12 +++ - .../ExtensionActionListMediator.java | 14 ++- - .../ExtensionActionsUpdateHelper.java | 3 +- + .../ExtensionActionListCoordinator.java | 12 ++ + .../ExtensionActionListMediator.java | 14 +-- .../ExtensionToolbarCoordinator.java | 3 + .../ExtensionToolbarCoordinatorImpl.java | 15 +-- ...MenuAndAccessControlButtonCoordinator.java | 5 +- .../extensions/ExtensionsMenuCoordinator.java | 2 + - .../extensions/ExtensionsMenuMediator.java | 21 ++-- + .../extensions/ExtensionsMenuMediator.java | 13 ++- .../browser_window/ChromeAndroidTaskImpl.java | 41 ++++++- .../ChromeAndroidTaskFeature.java | 2 +- components/tabs/impl/tab_collection.cc | 16 +++ components/tabs/impl/tab_strip_collection.cc | 4 +- - 32 files changed, 426 insertions(+), 110 deletions(-) + 31 files changed, 406 insertions(+), 95 deletions(-) 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 -@@ -122,6 +122,7 @@ import org.chromium.chrome.browser.compositor.overlays.strip.StripLayoutHelperMa - import org.chromium.chrome.browser.compositor.overlays.strip.StripLayoutHelperManager.TabModelStartupInfo; +@@ -125,6 +125,7 @@ import org.chromium.chrome.browser.contextmenu.ChromeContextMenuPopulator; + import org.chromium.chrome.browser.contextmenu.ChromeContextMenuPopulatorFactory; import org.chromium.chrome.browser.cookies.CookiesFetcher; import org.chromium.chrome.browser.crypto.CipherFactory; +import org.chromium.chrome.browser.customtabs.CustomTabActivity; import org.chromium.chrome.browser.data_sharing.DataSharingIntentUtils; import org.chromium.chrome.browser.data_sharing.DataSharingTabGroupUtils; import org.chromium.chrome.browser.data_sharing.DataSharingTabManager; -@@ -310,11 +311,15 @@ import org.chromium.chrome.browser.tasks.tab_management.TabSwitcherPaneBase; +@@ -316,11 +317,15 @@ import org.chromium.chrome.browser.tasks.tab_management.TabSwitcherPaneBase; import org.chromium.chrome.browser.tasks.tab_management.TabUiUtils; import org.chromium.chrome.browser.tasks.tab_management.TabsSettings; import org.chromium.chrome.browser.tasks.tab_management.archived_tabs_auto_delete_promo.ArchivedTabsAutoDeletePromoManager; @@ -67,7 +66,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.chrome.browser.ui.IncognitoRestoreAppLaunchDrawBlockerFactory; import org.chromium.chrome.browser.ui.RootUiCoordinator; import org.chromium.chrome.browser.ui.appmenu.AppMenuPropertiesDelegate; -@@ -4009,6 +4014,10 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt +@@ -4139,6 +4144,10 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt } RecordUserAction.record("MobileMenuRecentTabs"); } else if (id == R.id.extensions_menu_id) { @@ -99,12 +98,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv import org.chromium.chrome.browser.ui.extensions.windowing.ExtensionWindowControllerBridge; import org.chromium.chrome.browser.ui.extensions.windowing.ExtensionWindowControllerBridgeFactory; import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar; -@@ -1123,18 +1127,45 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -1131,19 +1135,46 @@ public abstract class ChromeActivity extends AsyncInitializationActivity // TODO(crbug.com/475200706): Handle multiple profiles for mobile. Profile profile = tabModelSelector.getCurrentModel().getProfile(); assert profile != null; - chromeAndroidTask.addFeature( -- new ChromeAndroidTaskFeatureKey(ExtensionWindowControllerBridge.class, profile), +- new ChromeAndroidTaskFeatureKey( +- ExtensionWindowControllerBridge.class, profile, activityWindowAndroid), - () -> - ExtensionWindowControllerBridgeFactory.create( - chromeAndroidTask, profile)); @@ -132,7 +132,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv - /** Returns an {@link OneshotSupplier} for {@link ChromeAndroidTask}. */ + private void addFeatures(ChromeAndroidTask task, Profile profile) { + task.addFeature( -+ new ChromeAndroidTaskFeatureKey(ExtensionWindowControllerBridge.class, profile), ++ new ChromeAndroidTaskFeatureKey( ++ ExtensionWindowControllerBridge.class, profile, activityWindowAndroid), + () -> ExtensionWindowControllerBridgeFactory.create(task, profile)); + + task.addFeature( @@ -154,7 +155,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/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 -@@ -95,6 +95,7 @@ import org.chromium.chrome.browser.tab.EmptyTabObserver; +@@ -93,6 +93,7 @@ import org.chromium.chrome.browser.tab.EmptyTabObserver; import org.chromium.chrome.browser.tab.RequestDesktopUtils; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab_ui.TabContentManager; @@ -162,7 +163,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Base import org.chromium.chrome.browser.tabmodel.TabCreatorManager; import org.chromium.chrome.browser.tabmodel.TabModelSelector; import org.chromium.chrome.browser.toolbar.adaptive.AdaptiveToolbarBehavior; -@@ -128,6 +129,7 @@ import org.chromium.ui.modaldialog.ModalDialogManager; +@@ -127,6 +128,7 @@ import org.chromium.ui.modaldialog.ModalDialogManager; import java.util.function.BooleanSupplier; import java.util.function.Supplier; @@ -173,7 +174,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/customtabs/CustomTabIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java -@@ -341,6 +341,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid +@@ -340,6 +340,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid private final boolean mEnableUrlBarHiding; private boolean mInteractWithBackground; @@ -181,7 +182,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust private List mCustomButtonParams; private @Nullable Drawable mCloseButtonIcon; private final boolean mIsCloseButtonEnabled; -@@ -724,6 +725,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid +@@ -723,6 +724,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid mSideSheetRoundedCornersPosition = getActivitySideSheetRoundedCornersPositionFromIntent(intent); @@ -189,7 +190,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust logCustomTabFeatures(intent, colorScheme); String packageName = getClientPackageNameFromSessionOrCallingActivity(mIntent, mSession); RecordHistogram.recordBooleanHistogram( -@@ -1378,6 +1380,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid +@@ -1377,6 +1379,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid @Override public @CustomTabProfileType int getCustomTabMode() { @@ -200,7 +201,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/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 -@@ -197,6 +197,7 @@ import org.chromium.chrome.browser.toolbar.adaptive.AdaptiveToolbarBehavior; +@@ -202,6 +202,7 @@ import org.chromium.chrome.browser.toolbar.adaptive.AdaptiveToolbarBehavior; import org.chromium.chrome.browser.ui.RootUiCoordinator; import org.chromium.chrome.browser.ui.appmenu.AppMenuBlocker; import org.chromium.chrome.browser.ui.appmenu.AppMenuDelegate; @@ -211,19 +212,15 @@ 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/TabModelJniBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelJniBridge.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelJniBridge.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelJniBridge.java -@@ -132,10 +132,10 @@ public abstract class TabModelJniBridge implements TabModelInternal { +@@ -134,7 +134,7 @@ public abstract class TabModelJniBridge implements TabModelInternal { @Override public void associateWithBrowserWindow(long nativeAndroidBrowserWindow) { // Ensure this isn't set multiple times. - assert mNativeAndroidBrowserWindow == 0; + if (nativeAndroidBrowserWindow != 0) assert mNativeAndroidBrowserWindow == 0; - mNativeAndroidBrowserWindow = nativeAndroidBrowserWindow; + assert nativeAndroidBrowserWindow != 0; -- assert nativeAndroidBrowserWindow != 0; -+ // assert nativeAndroidBrowserWindow != 0; - TabModelJniBridgeJni.get() - .associateWithBrowserWindow(mNativeTabModelJniBridge, nativeAndroidBrowserWindow); - } + mNativeAndroidBrowserWindow = nativeAndroidBrowserWindow; 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 @@ -251,7 +248,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabMod 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 -@@ -139,6 +139,7 @@ import org.chromium.chrome.browser.tab.TabObscuringHandler; +@@ -140,6 +140,7 @@ import org.chromium.chrome.browser.tab.TabObscuringHandler; import org.chromium.chrome.browser.tab.TabSelectionType; import org.chromium.chrome.browser.tab_ui.TabContentManager; import org.chromium.chrome.browser.tab_ui.TabModelDotInfo; @@ -270,7 +267,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/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 -@@ -154,6 +154,7 @@ import org.chromium.chrome.browser.tab.TabSelectionType; +@@ -157,6 +157,7 @@ import org.chromium.chrome.browser.tab.TabSelectionType; import org.chromium.chrome.browser.tab_ui.RecyclerViewPosition; import org.chromium.chrome.browser.tab_ui.TabContentManager; import org.chromium.chrome.browser.tab_ui.TabSwitcher; @@ -278,8 +275,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi import org.chromium.chrome.browser.tabmodel.TabCreator; import org.chromium.chrome.browser.tabmodel.TabCreatorManager; import org.chromium.chrome.browser.tabmodel.TabModel; -@@ -252,6 +253,7 @@ import org.chromium.url.GURL; - import java.lang.ref.WeakReference; +@@ -256,6 +257,7 @@ import java.lang.ref.WeakReference; + import java.util.Collections; import java.util.function.BooleanSupplier; import java.util.function.Supplier; +import java.util.function.Function; @@ -289,7 +286,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi 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 -@@ -1745,7 +1745,8 @@ DeveloperPrivateDismissSafetyHubExtensionsMenuNotificationFunction::Run() { +@@ -1756,7 +1756,8 @@ DeveloperPrivateDismissSafetyHubExtensionsMenuNotificationFunction::Run() { } Profile* profile = Profile::FromBrowserContext(browser_context()); @@ -302,7 +299,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_f diff --git a/chrome/browser/extensions/extension_tab_util.cc b/chrome/browser/extensions/extension_tab_util.cc --- a/chrome/browser/extensions/extension_tab_util.cc +++ b/chrome/browser/extensions/extension_tab_util.cc -@@ -1257,7 +1257,7 @@ bool ExtensionTabUtil::OpenOptionsPageFromWebContents( +@@ -1183,7 +1183,7 @@ bool ExtensionTabUtil::OpenOptionsPageFromWebContents( if (!url) { return false; } @@ -364,17 +361,17 @@ diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browse diff --git a/chrome/browser/ui/android/extensions/extension_actions_bridge.cc b/chrome/browser/ui/android/extensions/extension_actions_bridge.cc --- a/chrome/browser/ui/android/extensions/extension_actions_bridge.cc +++ b/chrome/browser/ui/android/extensions/extension_actions_bridge.cc -@@ -19,6 +19,8 @@ - #include "extensions/browser/extension_action.h" - #include "extensions/browser/extension_action_manager.h" - #include "extensions/browser/extension_registry.h" +@@ -12,6 +12,8 @@ + #include "base/task/thread_pool.h" + #include "chrome/browser/extensions/extension_management.h" + #include "chrome/browser/profiles/profile.h" +#include "extensions/browser/process_manager.h" +#include "extensions/browser/process_manager_factory.h" - #include "ui/color/color_provider_manager.h" + #include "chrome/browser/ui/browser_window/public/browser_window_interface.h" #include "ui/events/android/key_event_android.h" - #include "ui/events/event.h" -@@ -60,10 +62,9 @@ void ExtensionActionsBridge::IconObserver::OnIconUpdated() { - } + +@@ -23,10 +25,9 @@ + namespace extensions { ExtensionActionsBridge::ExtensionActionsBridge( - BrowserWindowInterface* browser, @@ -384,9 +381,9 @@ diff --git a/chrome/browser/ui/android/extensions/extension_actions_bridge.cc b/ - profile_(browser->GetProfile()), + : profile_(profile), java_object_(java_object), - model_(ToolbarActionsModel::Get(profile_)), keybinding_registry_( -@@ -221,6 +222,16 @@ void ExtensionActionsBridge::ClearExtensionData(JNIEnv* env) { + std::make_unique(profile_)) {} +@@ -57,6 +58,16 @@ void ExtensionActionsBridge::ClearExtensionData(JNIEnv* env) { install_directory, install_updacked_directory)); } @@ -403,7 +400,7 @@ diff --git a/chrome/browser/ui/android/extensions/extension_actions_bridge.cc b/ jni_zero::ScopedJavaLocalRef ExtensionActionsBridge::HandleKeyDownEvent( JNIEnv* env, -@@ -309,11 +320,9 @@ void ExtensionActionsBridge::OnToolbarIconUpdated( +@@ -74,11 +85,9 @@ ExtensionActionsBridge::HandleKeyDownEvent( static int64_t JNI_ExtensionActionsBridge_Init( JNIEnv* env, const base::android::JavaRef& java_object, @@ -420,31 +417,29 @@ 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 -@@ -25,7 +25,7 @@ namespace extensions { +@@ -22,7 +22,7 @@ namespace extensions { // This bridge is created and owned by Java UI code. - class ExtensionActionsBridge : public ToolbarActionsModel::Observer { + class ExtensionActionsBridge { public: - ExtensionActionsBridge(BrowserWindowInterface* browser, + ExtensionActionsBridge(Profile* profile, const base::android::JavaRef& java_object); ExtensionActionsBridge(const ExtensionActionsBridge&) = delete; ExtensionActionsBridge& operator=(const ExtensionActionsBridge&) = delete; -@@ -53,6 +53,7 @@ class ExtensionActionsBridge : public ToolbarActionsModel::Observer { - int tab_id, - content::WebContents* web_contents); +@@ -31,12 +31,12 @@ class ExtensionActionsBridge { + // JNI implementations. + void Destroy(JNIEnv* env); void ClearExtensionData(JNIEnv* env); + void CloseBackgroundHosts(JNIEnv* env); jni_zero::ScopedJavaLocalRef HandleKeyDownEvent( JNIEnv* env, const ui::KeyEventAndroid& key_event); -@@ -100,7 +101,6 @@ class ExtensionActionsBridge : public ToolbarActionsModel::Observer { - // Called by IconObserver to notify that the icon of an action was updated. - void OnToolbarIconUpdated(const ToolbarActionsModel::ActionId& action_id); + private: - const raw_ptr browser_; const raw_ptr profile_; const base::android::ScopedJavaGlobalRef java_object_; - const raw_ptr model_; + const std::unique_ptr diff --git a/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/browser/ui/extensions/ExtensionActionContextMenuBridge.java b/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/browser/ui/extensions/ExtensionActionContextMenuBridge.java --- a/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/browser/ui/extensions/ExtensionActionContextMenuBridge.java +++ b/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/browser/ui/extensions/ExtensionActionContextMenuBridge.java @@ -461,15 +456,15 @@ diff --git a/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/b 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 -@@ -6,6 +6,7 @@ package org.chromium.chrome.browser.ui.extensions; +@@ -5,6 +5,7 @@ + package org.chromium.chrome.browser.ui.extensions; - import android.graphics.Bitmap; import android.view.KeyEvent; +import android.util.ArrayMap; import androidx.annotation.VisibleForTesting; -@@ -26,18 +27,61 @@ import org.chromium.extensions.ShowAction; +@@ -22,17 +23,60 @@ import org.chromium.chrome.browser.ui.browser_window.ChromeAndroidTask; import java.util.Objects; @@ -485,7 +480,6 @@ diff --git a/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/b +public class ExtensionActionsBridge implements ChromeAndroidTaskFeature { private final @Nullable LifetimeAssert mLifetimeAssert = LifetimeAssert.create(this); private long mNativeExtensionActionsBridge; - private final ObserverList mObservers = new ObserverList<>(); - public ExtensionActionsBridge(ChromeAndroidTask task, Profile profile) { + private static ExtensionActionsBridge currentExtensionActionsBridge; @@ -534,7 +528,7 @@ diff --git a/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/b } /** Represents the result of handling a key event. */ -@@ -69,8 +113,8 @@ public class ExtensionActionsBridge implements Destroyable { +@@ -64,8 +108,8 @@ public class ExtensionActionsBridge implements Destroyable { } } @@ -545,123 +539,7 @@ diff --git a/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/b assert mNativeExtensionActionsBridge != 0; ExtensionActionsBridgeJni.get().destroy(mNativeExtensionActionsBridge); mNativeExtensionActionsBridge = 0; -@@ -78,11 +122,11 @@ public class ExtensionActionsBridge implements Destroyable { - } - - public void addObserver(Observer observer) { -- mObservers.addObserver(observer); -+ Instance().mObservers.addObserver(observer); - } - - public void removeObserver(Observer observer) { -- mObservers.removeObserver(observer); -+ Instance().mObservers.removeObserver(observer); - } - - /** -@@ -91,19 +135,19 @@ public class ExtensionActionsBridge implements Destroyable { - *

If it returns false, you can install an observer to wait for initialization. - */ - public boolean areActionsInitialized() { -- return ExtensionActionsBridgeJni.get().areActionsInitialized(mNativeExtensionActionsBridge); -+ return ExtensionActionsBridgeJni.get().areActionsInitialized(Instance().mNativeExtensionActionsBridge); - } - - /** Returns a sorted list of enabled action IDs. */ - public String[] getActionIds() { -- return ExtensionActionsBridgeJni.get().getActionIds(mNativeExtensionActionsBridge); -+ return ExtensionActionsBridgeJni.get().getActionIds(Instance().mNativeExtensionActionsBridge); - } - - /** Returns the state of an action for a particular tab. */ - @Nullable - public ExtensionAction getAction(String actionId, int tabId) { - return ExtensionActionsBridgeJni.get() -- .getAction(mNativeExtensionActionsBridge, actionId, tabId); -+ .getAction(Instance().mNativeExtensionActionsBridge, actionId, tabId); - } - - /** -@@ -121,7 +165,7 @@ public class ExtensionActionsBridge implements Destroyable { - float scaleFactor) { - return ExtensionActionsBridgeJni.get() - .getActionIcon( -- mNativeExtensionActionsBridge, -+ Instance().mNativeExtensionActionsBridge, - actionId, - tabId, - webContents, -@@ -144,7 +188,7 @@ public class ExtensionActionsBridge implements Destroyable { - // should be easy for callers of this method to find the tab ID, so we ask them to pass it - // as an argument, even though the value is not used in production. - return ExtensionActionsBridgeJni.get() -- .runAction(mNativeExtensionActionsBridge, actionId, tabId, webContents); -+ .runAction(Instance().mNativeExtensionActionsBridge, actionId, tabId, webContents); - } - - /** -@@ -159,13 +203,13 @@ public class ExtensionActionsBridge implements Destroyable { - /** Handles the key down event and returns the result. */ - public HandleKeyEventResult handleKeyDownEvent(KeyEvent event) { - return ExtensionActionsBridgeJni.get() -- .handleKeyDownEvent(mNativeExtensionActionsBridge, event); -+ .handleKeyDownEvent(Instance().mNativeExtensionActionsBridge, event); - } - - @CalledByNative - @VisibleForTesting - public void onActionAdded(@JniType("std::string") String actionId) { -- for (Observer observer : mObservers) { -+ for (Observer observer : Instance().mObservers) { - observer.onActionAdded(actionId); - } - } -@@ -173,7 +217,7 @@ public class ExtensionActionsBridge implements Destroyable { - @CalledByNative - @VisibleForTesting - public void onActionRemoved(@JniType("std::string") String actionId) { -- for (Observer observer : mObservers) { -+ for (Observer observer : Instance().mObservers) { - observer.onActionRemoved(actionId); - } - } -@@ -181,7 +225,7 @@ public class ExtensionActionsBridge implements Destroyable { - @CalledByNative - @VisibleForTesting - public void onActionUpdated(@JniType("std::string") String actionId) { -- for (Observer observer : mObservers) { -+ for (Observer observer : Instance().mObservers) { - observer.onActionUpdated(actionId); - } - } -@@ -189,7 +233,7 @@ public class ExtensionActionsBridge implements Destroyable { - @CalledByNative - @VisibleForTesting - public void onActionModelInitialized() { -- for (Observer observer : mObservers) { -+ for (Observer observer : Instance().mObservers) { - observer.onActionModelInitialized(); - } - } -@@ -197,7 +241,7 @@ public class ExtensionActionsBridge implements Destroyable { - @CalledByNative - @VisibleForTesting - public void onPinnedActionsChanged() { -- for (Observer observer : mObservers) { -+ for (Observer observer : Instance().mObservers) { - observer.onPinnedActionsChanged(); - } - } -@@ -205,7 +249,7 @@ public class ExtensionActionsBridge implements Destroyable { - @CalledByNative - @VisibleForTesting - public void onActionIconUpdated(@JniType("std::string") String actionId) { -- for (Observer observer : mObservers) { -+ for (Observer observer : Instance().mObservers) { - observer.onActionIconUpdated(actionId); - } - } -@@ -242,14 +286,18 @@ public class ExtensionActionsBridge implements Destroyable { +@@ -88,19 +132,25 @@ public class ExtensionActionsBridge implements Destroyable { } public void clearExtensionData() { @@ -682,8 +560,6 @@ diff --git a/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/b void destroy(long nativeExtensionActionsBridge); -@@ -281,6 +329,8 @@ public class ExtensionActionsBridge implements Destroyable { - void clearExtensionData(long nativeExtensionActionsBridge); + void closeBackgroundHosts(long nativeExtensionActionsBridge); @@ -694,9 +570,9 @@ diff --git a/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/b diff --git a/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/browser/ui/extensions/ExtensionsMenuBridge.java b/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/browser/ui/extensions/ExtensionsMenuBridge.java --- a/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/browser/ui/extensions/ExtensionsMenuBridge.java +++ b/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/browser/ui/extensions/ExtensionsMenuBridge.java -@@ -16,23 +16,75 @@ import org.chromium.build.annotations.Nullable; - import org.chromium.chrome.browser.profiles.Profile; - import org.chromium.chrome.browser.ui.browser_window.ChromeAndroidTask; +@@ -20,24 +20,76 @@ import org.chromium.chrome.browser.ui.browser_window.ChromeAndroidTask; + + import java.util.List; +import android.graphics.Rect; +import android.util.ArrayMap; @@ -711,6 +587,7 @@ diff --git a/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/b -public class ExtensionsMenuBridge implements Destroyable { +public class ExtensionsMenuBridge implements ChromeAndroidTaskFeature { private final @Nullable LifetimeAssert mLifetimeAssert = LifetimeAssert.create(this); + private long mNativeExtensionsMenuDelegateAndroid; - private final Observer mObserver; + private Observer mObserver; @@ -731,7 +608,9 @@ diff --git a/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/b + currentExtensionsMenuBridge = new ExtensionsMenuBridge(null, null); + return currentExtensionsMenuBridge; + } -+ + +- public ExtensionsMenuBridge(ChromeAndroidTask task, Profile profile, Observer observer) { +- mObserver = observer; + public static ExtensionsMenuBridge create(ChromeAndroidTask task, Profile profile) { + return new ExtensionsMenuBridge(task, profile); + } @@ -740,9 +619,7 @@ diff --git a/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/b + Instance().mObservers.put(task, observer); + Instance().mObserver = observer; + } - -- public ExtensionsMenuBridge(ChromeAndroidTask task, Profile profile, Observer observer) { -- mObserver = observer; ++ + @Override + public void onAddedToTask() { mNativeExtensionsMenuDelegateAndroid = @@ -776,12 +653,12 @@ diff --git a/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/b assert mNativeExtensionsMenuDelegateAndroid != 0; ExtensionsMenuBridgeJni.get().destroy(mNativeExtensionsMenuDelegateAndroid); mNativeExtensionsMenuDelegateAndroid = 0; -@@ -41,12 +93,12 @@ public class ExtensionsMenuBridge implements Destroyable { - - /** Returns a flattened list of action IDs and names from native. */ - public String[] getActions() { -- return ExtensionsMenuBridgeJni.get().getActions(mNativeExtensionsMenuDelegateAndroid); -+ return ExtensionsMenuBridgeJni.get().getActions(Instance().mNativeExtensionsMenuDelegateAndroid); +@@ -77,12 +129,12 @@ public class ExtensionsMenuBridge implements Destroyable { + */ + public void onSiteSettingsToggleChanged(boolean isChecked) { + ExtensionsMenuBridgeJni.get() +- .onSiteSettingsToggleChanged(mNativeExtensionsMenuDelegateAndroid, isChecked); ++ .onSiteSettingsToggleChanged(Instance().mNativeExtensionsMenuDelegateAndroid, isChecked); } /** Returns whether the native menu model is ready. */ @@ -791,7 +668,7 @@ diff --git a/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/b } /** -@@ -55,7 +107,7 @@ public class ExtensionsMenuBridge implements Destroyable { +@@ -134,7 +186,7 @@ public class ExtensionsMenuBridge implements Destroyable { */ @CalledByNative public void onReady() { @@ -799,13 +676,13 @@ diff --git a/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/b + //Instance().mObserver.onReady(); } - public interface Observer { + @CalledByNative diff --git a/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/browser/ui/extensions/ExtensionsToolbarBridge.java b/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/browser/ui/extensions/ExtensionsToolbarBridge.java --- a/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/browser/ui/extensions/ExtensionsToolbarBridge.java +++ b/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/browser/ui/extensions/ExtensionsToolbarBridge.java -@@ -21,10 +21,17 @@ import org.chromium.chrome.browser.ui.browser_window.ChromeAndroidTask; - import org.chromium.chrome.browser.ui.toolbar.InvocationSource; - import org.chromium.content_public.browser.WebContents; +@@ -26,10 +26,17 @@ import org.chromium.content_public.browser.WebContents; + import java.lang.annotation.Retention; + import java.lang.annotation.RetentionPolicy; +import android.graphics.Rect; +import android.util.ArrayMap; @@ -819,10 +696,10 @@ diff --git a/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/b @JNINamespace("extensions") -public class ExtensionsToolbarBridge implements Destroyable { +public class ExtensionsToolbarBridge implements ChromeAndroidTaskFeature { - private final @Nullable LifetimeAssert mLifetimeAssert = LifetimeAssert.create(this); - private long mNativeExtensionsToolbarAndroid; - private final ObserverList mObservers = new ObserverList<>(); -@@ -33,14 +40,55 @@ public class ExtensionsToolbarBridge implements Destroyable { + // TODO(crbug.com/423483658): Consider moving ExtensionsMenuButtonState and related types + // (e.g., RequestAccessButtonParams) into a new ExtensionControls.java file. + @IntDef({ +@@ -53,15 +60,56 @@ public class ExtensionsToolbarBridge implements Destroyable { // with {@code ExtensionActionListMediator}. private @Nullable Delegate mDelegate; @@ -835,20 +712,21 @@ diff --git a/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/b + + @Override + public void onAddedToTask() { + mProfile = profile; mNativeExtensionsToolbarAndroid = ExtensionsToolbarBridgeJni.get() - .init(this, task.getOrCreateNativeBrowserWindowPtr(profile)); + .init(this, mTask.getOrCreateNativeBrowserWindowPtr(mProfile)); ++ } ++ ++ @Override ++ public void onFeatureRemoved() { ++ Instance().mDelegates.remove(mTask); ++ destroy(); } @Override - public void destroy() { -+ public void onFeatureRemoved() { -+ Instance().mDelegates.remove(mTask); -+ destroy(); -+ } -+ -+ @Override + public void onTaskBoundsChanged(Rect newBoundsInDp) {} + + @Override @@ -881,7 +759,7 @@ diff --git a/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/b assert mNativeExtensionsToolbarAndroid != 0; ExtensionsToolbarBridgeJni.get().destroy(mNativeExtensionsToolbarAndroid); mNativeExtensionsToolbarAndroid = 0; -@@ -48,21 +96,23 @@ public class ExtensionsToolbarBridge implements Destroyable { +@@ -69,19 +117,21 @@ public class ExtensionsToolbarBridge implements Destroyable { } public void addObserver(Observer observer) { @@ -902,18 +780,24 @@ diff --git a/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/b } @Nullable - public ExtensionAction getAction(String actionId) { + public ExtensionAction getAction(String actionId, @Nullable WebContents webContents) { + assert Instance().mNativeExtensionsToolbarAndroid != 0; + if (mProfile.shutdownStarted()) { + // TODO(crbug.com/459079170): This is to prevent tests from breaking. {@code + // ExtensionToolbarCoordinatorImpl} should ideally be destroyed following {@code +@@ -89,7 +139,7 @@ public class ExtensionsToolbarBridge implements Destroyable { + return null; + } return ExtensionsToolbarBridgeJni.get() -- .getAction(mNativeExtensionsToolbarAndroid, actionId); -+ .getAction(Instance().mNativeExtensionsToolbarAndroid, actionId); +- .getAction(mNativeExtensionsToolbarAndroid, actionId, webContents); ++ .getAction(Instance().mNativeExtensionsToolbarAndroid, actionId, webContents); } @Nullable -@@ -72,9 +122,10 @@ public class ExtensionsToolbarBridge implements Destroyable { - int canvasWidthDp, - int canvasHeightDp, - float scaleFactor) { +@@ -105,9 +155,10 @@ public class ExtensionsToolbarBridge implements Destroyable { + // ChromeAndroidTask}'s destruction, and it is currently being worked on. + return null; + } + assert Instance().mNativeExtensionsToolbarAndroid != 0; return ExtensionsToolbarBridgeJni.get() .getIcon( @@ -922,31 +806,49 @@ diff --git a/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/b actionId, webContents, canvasWidthDp, -@@ -83,28 +134,28 @@ public class ExtensionsToolbarBridge implements Destroyable { - } - - public String[] getAllActionIds() { +@@ -122,7 +173,7 @@ public class ExtensionsToolbarBridge implements Destroyable { + // ChromeAndroidTask}'s destruction, and it is currently being worked on. + return new String[0]; + } - return ExtensionsToolbarBridgeJni.get().getAllActionIds(mNativeExtensionsToolbarAndroid); + return ExtensionsToolbarBridgeJni.get().getAllActionIds(Instance().mNativeExtensionsToolbarAndroid); } public String[] getPinnedActionIds() { +@@ -132,7 +183,7 @@ public class ExtensionsToolbarBridge implements Destroyable { + // ChromeAndroidTask}'s destruction, and it is currently being worked on. + return new String[0]; + } - return ExtensionsToolbarBridgeJni.get().getPinnedActionIds(mNativeExtensionsToolbarAndroid); + return ExtensionsToolbarBridgeJni.get().getPinnedActionIds(Instance().mNativeExtensionsToolbarAndroid); } public void executeUserAction(String actionId, @InvocationSource int source) { +@@ -143,7 +194,7 @@ public class ExtensionsToolbarBridge implements Destroyable { + return; + } ExtensionsToolbarBridgeJni.get() - .executeUserAction(mNativeExtensionsToolbarAndroid, actionId, source); + .executeUserAction(Instance().mNativeExtensionsToolbarAndroid, actionId, source); } public void movePinnedAction(String actionId, int targetIndex) { +@@ -154,20 +205,20 @@ public class ExtensionsToolbarBridge implements Destroyable { + return; + } ExtensionsToolbarBridgeJni.get() - .movePinnedAction(mNativeExtensionsToolbarAndroid, actionId, targetIndex); + .movePinnedAction(Instance().mNativeExtensionsToolbarAndroid, actionId, targetIndex); } + public @ExtensionsMenuButtonState int getExtensionsMenuButtonState(WebContents webContents) { +- assert mNativeExtensionsToolbarAndroid != 0; ++ assert Instance().mNativeExtensionsToolbarAndroid != 0; + return ExtensionsToolbarBridgeJni.get() +- .getExtensionsMenuButtonState(mNativeExtensionsToolbarAndroid, webContents); ++ .getExtensionsMenuButtonState(Instance().mNativeExtensionsToolbarAndroid, webContents); + } + public RequestAccessButtonParams getRequestAccessButtonParams(WebContents webContents) { - assert mNativeExtensionsToolbarAndroid != 0; + assert Instance().mNativeExtensionsToolbarAndroid != 0; @@ -957,7 +859,7 @@ diff --git a/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/b assert params != null; return params; } -@@ -112,56 +163,56 @@ public class ExtensionsToolbarBridge implements Destroyable { +@@ -175,14 +226,14 @@ public class ExtensionsToolbarBridge implements Destroyable { @CalledByNative public void triggerPopup(@JniType("std::string") String actionId, long nativeHostPtr) { // {@link mDelegate} should be set in {@code ExtensionActionListMediator}'s constructor. @@ -975,6 +877,7 @@ diff --git a/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/b observer.onRequestAccessButtonParamsChanged(); } } +@@ -196,42 +247,42 @@ public class ExtensionsToolbarBridge implements Destroyable { @CalledByNative public void onActionsInitialized() { @@ -1026,10 +929,10 @@ diff --git a/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/b 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 -@@ -130,6 +130,10 @@ void TabModelJniBridge::AssociateWithBrowserWindow( - // BrowserWindowInterface is available on desktop Android, but not other Android - // builds. For non-desktop Android, this function should be a no-op. - #if BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE) +@@ -126,6 +126,10 @@ void TabModelJniBridge::AssociateWithBrowserWindow( + if (!TabModel::EnableBrowserWindowInterfaceMobile()) { + return; + } + if (native_android_browser_window == 0) { + scoped_unowned_user_data_.reset(); + return; @@ -1040,7 +943,7 @@ diff --git a/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.cc b/chrom diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListCoordinator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListCoordinator.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListCoordinator.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListCoordinator.java -@@ -30,6 +30,8 @@ import org.chromium.ui.listmenu.ListMenuButton; +@@ -33,6 +33,8 @@ import org.chromium.ui.listmenu.ListMenuButton; import org.chromium.ui.modelutil.MVCListAdapter.ModelList; import org.chromium.ui.modelutil.PropertyModel; @@ -1049,8 +952,8 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow /** * Root component for the extension action buttons. Exposes public API for external consumers to * interact with the buttons and affect their states. -@@ -38,14 +40,17 @@ import org.chromium.ui.modelutil.PropertyModel; - public class ExtensionActionListCoordinator implements Destroyable { +@@ -46,16 +48,19 @@ public class ExtensionActionListCoordinator implements Destroyable { + private final Context mContext; private final ExtensionActionListRecyclerView mContainer; + private final ListMenuButton mExtensionsMenuButton; @@ -1060,6 +963,8 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow @Nullable private final LifetimeAssert mLifetimeAssert = LifetimeAssert.create(this); + public final ExtensionsToolbarBridge mExtensionsToolbarBridge; + private boolean mIsDragging; + public ExtensionActionListCoordinator( Context context, ExtensionActionListRecyclerView container, @@ -1067,8 +972,8 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow WindowAndroid windowAndroid, ChromeAndroidTask task, Profile profile, -@@ -53,6 +58,8 @@ public class ExtensionActionListCoordinator implements Destroyable { - ExtensionsToolbarBridge extensionsToolbarBridge) { +@@ -66,6 +71,8 @@ public class ExtensionActionListCoordinator implements Destroyable { + @Nullable SelectionDropdownMenuDelegate selectionDropdownMenuDelegate) { mContext = context; mContainer = container; + mExtensionsMenuButton = extensionsMenuButton; @@ -1076,7 +981,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow mModels = new ModelList(); mMediator = -@@ -122,8 +129,13 @@ public class ExtensionActionListCoordinator implements Destroyable { +@@ -135,8 +142,13 @@ public class ExtensionActionListCoordinator implements Destroyable { LifetimeAssert.setSafeToGc(mLifetimeAssert, true); } @@ -1087,13 +992,13 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow /** Performs a click on the button for the given action. */ public void click(String actionId) { + mExtensionsMenuButton.dismiss(); - for (int i = 0; i < mModels.size(); i++) { - if (mModels.get(i).model.get(ExtensionActionButtonProperties.ID).equals(actionId)) { - RecyclerView.ViewHolder holder = mContainer.findViewHolderForAdapterPosition(i); + View view = getButtonViewForId(actionId); + if (view != null) { + view.performClick(); diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListMediator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListMediator.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListMediator.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListMediator.java -@@ -37,6 +37,7 @@ import org.chromium.ui.modelutil.PropertyModel; +@@ -40,6 +40,7 @@ import org.chromium.ui.modelutil.PropertyModel; import java.util.Arrays; import java.util.HashSet; import java.util.Set; @@ -1101,97 +1006,80 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow @NullMarked class ExtensionActionListMediator implements Destroyable { -@@ -44,7 +45,6 @@ class ExtensionActionListMediator implements Destroyable { +@@ -88,7 +89,6 @@ class ExtensionActionListMediator implements Destroyable { private final WindowAndroid mWindowAndroid; private final ModelList mModels; private final ChromeAndroidTask mTask; - private final Profile mProfile; private final NullableObservableSupplier mCurrentTabSupplier; - private final ExtensionActionListRecyclerView mContainer; - -@@ -70,12 +70,11 @@ class ExtensionActionListMediator implements Destroyable { + private final ExtensionActionListCoordinator.ActionAnchorViewProvider mActionAnchorViewProvider; + private final @Nullable ContextMenuPopulatorFactory mContextMenuPopulatorFactory; +@@ -121,14 +121,13 @@ class ExtensionActionListMediator implements Destroyable { mWindowAndroid = windowAndroid; mModels = models; mTask = task; - mProfile = profile; mCurrentTabSupplier = currentTabSupplier; - mContainer = container; + mActionAnchorViewProvider = actionAnchorViewProvider; mExtensionsToolbarBridge = extensionsToolbarBridge; + mContextMenuPopulatorFactory = contextMenuPopulatorFactory; + mSelectionDropdownMenuDelegate = selectionDropdownMenuDelegate; - mExtensionsToolbarBridge.setDelegate(mToolbarDelegate); + mExtensionsToolbarBridge.setDelegate(mTask, mToolbarDelegate); mExtensionsToolbarBridge.addObserver(mToolbarObserver); reconcileActionItems(); } -@@ -85,7 +84,7 @@ class ExtensionActionListMediator implements Destroyable { - closePopup(); - assert mCurrentPopup == null; +@@ -141,7 +140,7 @@ class ExtensionActionListMediator implements Destroyable { + assert mActionState instanceof ActionState.Idle; + mExtensionsToolbarBridge.removeObserver(mToolbarObserver); - mExtensionsToolbarBridge.setDelegate(null); + mExtensionsToolbarBridge.setDelegate(mTask, null); LifetimeAssert.setSafeToGc(mLifetimeAssert, true); } -@@ -234,7 +233,7 @@ class ExtensionActionListMediator implements Destroyable { +@@ -316,7 +315,7 @@ class ExtensionActionListMediator implements Destroyable { return mModels.get(index).model.get(ExtensionActionButtonProperties.ID); } - private void onPrimaryClick(String actionId) { + public void onPrimaryClick(String actionId) { - mExtensionsToolbarBridge.executeUserAction(actionId, InvocationSource.TOOLBAR_BUTTON); - } - -@@ -247,8 +246,7 @@ class ExtensionActionListMediator implements Destroyable { - - View buttonView = getButtonViewForId(actionId); + if (mActionState instanceof ActionState.PopupActive activeState) { + boolean closeOnly = activeState.getActionId().equals(actionId); + closePopup(); +@@ -349,8 +348,7 @@ class ExtensionActionListMediator implements Destroyable { + private void showPopupOnReadyAnchor(String actionId, ExtensionActionPopupContents contents) { + View buttonView = mActionAnchorViewProvider.getButtonViewForId(actionId); if (buttonView == null) { - contents.destroy(); - return; + buttonView = mContainer; } - assert mCurrentPopup == null; -@@ -291,7 +289,7 @@ class ExtensionActionListMediator implements Destroyable { - + Activity activity = mWindowAndroid.getActivity().get(); +@@ -420,7 +418,7 @@ class ExtensionActionListMediator implements Destroyable { + assert mActionState instanceof ActionState.Idle; ExtensionActionContextMenuBridge bridge = new ExtensionActionContextMenuBridge( - mTask, mProfile, actionId, webContents, ContextMenuSource.TOOLBAR_ACTION); + currentTab.getProfile(), mTask, actionId, webContents, ContextMenuSource.TOOLBAR_ACTION); - - ListMenuButton buttonView = (ListMenuButton) getButtonViewForId(actionId); - if (buttonView == null) { -diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionsUpdateHelper.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionsUpdateHelper.java ---- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionsUpdateHelper.java -+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionsUpdateHelper.java -@@ -66,7 +66,7 @@ public class ExtensionActionsUpdateHelper implements Destroyable { - mModels = models; - mCurrentTabSupplier = currentTabSupplier; - mActionsUpdateDelegate = delegate; -- mExtensionActionsBridge = new ExtensionActionsBridge(task, profile); -+ mExtensionActionsBridge = ExtensionActionsBridge.Instance(); - - mCurrentTabSupplier.addObserver(mTabChangedCallback); - mExtensionActionsBridge.addObserver(mActionsObserver); -@@ -135,7 +135,6 @@ public class ExtensionActionsUpdateHelper implements Destroyable { - public void destroy() { - mExtensionActionsBridge.removeObserver(mActionsObserver); - mCurrentTabSupplier.removeObserver(mTabChangedCallback); -- mExtensionActionsBridge.destroy(); - - mCurrentTab = null; - } + ExtensionActionContextMenuUtils.showContextMenu( + mContext, + buttonView, diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionToolbarCoordinator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionToolbarCoordinator.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionToolbarCoordinator.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionToolbarCoordinator.java -@@ -16,12 +16,15 @@ import org.chromium.build.annotations.NullMarked; - import org.chromium.build.annotations.Nullable; +@@ -18,6 +18,7 @@ import org.chromium.build.annotations.Nullable; + import org.chromium.chrome.browser.layouts.toolbar.ToolbarWidthConsumer; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.tab.Tab; +import org.chromium.chrome.browser.tabmodel.TabModel; 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.ExtensionUi; +@@ -26,6 +27,8 @@ import org.chromium.components.embedder_support.contextmenu.ContextMenuPopulator + import org.chromium.content_public.browser.selection.SelectionDropdownMenuDelegate; import org.chromium.ui.base.WindowAndroid; +import java.util.function.Function; @@ -1202,15 +1090,15 @@ 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/ExtensionToolbarCoordinatorImpl.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionToolbarCoordinatorImpl.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionToolbarCoordinatorImpl.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionToolbarCoordinatorImpl.java -@@ -50,23 +50,18 @@ public class ExtensionToolbarCoordinatorImpl implements ExtensionToolbarCoordina - NullableObservableSupplier currentTabSupplier, - TabCreator tabCreator, - ThemeColorProvider themeColorProvider) { +@@ -65,23 +65,18 @@ public class ExtensionToolbarCoordinatorImpl implements ExtensionToolbarCoordina + ViewGroup rootView, + @Nullable ContextMenuPopulatorFactory contextMenuPopulatorFactory, + @Nullable SelectionDropdownMenuDelegate selectionDropdownMenuDelegate) { - mBridge = new ExtensionActionsBridge(task, profile); + mBridge = ExtensionActionsBridge.Instance(); extensionToolbarStub.setLayoutResource(R.layout.extension_toolbar_container); - LinearLayout container = (LinearLayout) extensionToolbarStub.inflate(); + mContainer = (LinearLayout) extensionToolbarStub.inflate(); - mExtensionsToolbarBridge = new ExtensionsToolbarBridge(task, profile); - @@ -1224,12 +1112,12 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow mExtensionActionListCoordinator = new ExtensionActionListCoordinator( context, - container.findViewById(R.id.extension_action_list), + mContainer.findViewById(R.id.extension_action_list), + container.findViewById(R.id.extensions_menu_button), windowAndroid, task, profile, -@@ -90,8 +85,8 @@ public class ExtensionToolbarCoordinatorImpl implements ExtensionToolbarCoordina +@@ -108,8 +103,8 @@ public class ExtensionToolbarCoordinatorImpl implements ExtensionToolbarCoordina public void destroy() { mExtensionsMenuAndAccessControlButtonCoordinator.destroy(); mExtensionActionListCoordinator.destroy(); @@ -1237,9 +1125,9 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow - mBridge.destroy(); + //mExtensionsToolbarBridge.destroy(); + //mBridge.destroy(); + LifetimeAssert.setSafeToGc(mLifetimeAssert, true); } - diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionsMenuAndAccessControlButtonCoordinator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionsMenuAndAccessControlButtonCoordinator.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionsMenuAndAccessControlButtonCoordinator.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionsMenuAndAccessControlButtonCoordinator.java @@ -1253,19 +1141,19 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow mExtensionsMenuCoordinator = new ExtensionsMenuCoordinator( context, -@@ -57,7 +58,7 @@ public class ExtensionsMenuAndAccessControlButtonCoordinator implements Destroya - task, +@@ -58,7 +59,7 @@ public class ExtensionsMenuAndAccessControlButtonCoordinator implements Destroya profile, currentTabSupplier, -- tabCreator); -+ tabCreator, extensionActionListCoordinator); + tabCreator, +- extensionsToolbarBridge); ++ extensionsToolbarBridge, extensionActionListCoordinator); mExtensionAccessControlButtonCoordinator = new ExtensionAccessControlButtonCoordinator( 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 -@@ -42,6 +42,8 @@ import org.chromium.ui.modelutil.PropertyModelChangeProcessor; +@@ -43,6 +43,8 @@ import org.chromium.ui.modelutil.PropertyModelChangeProcessor; import org.chromium.ui.modelutil.SimpleRecyclerViewAdapter; import org.chromium.ui.widget.RectProvider; @@ -1277,15 +1165,15 @@ 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 -@@ -5,6 +5,7 @@ - package org.chromium.chrome.browser.toolbar.extensions; +@@ -6,6 +6,7 @@ package org.chromium.chrome.browser.toolbar.extensions; import android.content.Context; + import android.graphics.Bitmap; +import android.graphics.Bitmap; - import android.graphics.Rect; - import android.view.View; -@@ -13,6 +14,7 @@ import org.chromium.base.supplier.NullableObservableSupplier; + import androidx.annotation.VisibleForTesting; + +@@ -14,6 +15,7 @@ import org.chromium.base.supplier.NullableObservableSupplier; import org.chromium.build.annotations.NullMarked; import org.chromium.chrome.browser.extensions.ContextMenuSource; import org.chromium.chrome.browser.profiles.Profile; @@ -1293,36 +1181,35 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.toolbar.extensions.ExtensionActionListCoordinator; import org.chromium.chrome.browser.ui.browser_window.ChromeAndroidTask; -@@ -25,6 +27,8 @@ import org.chromium.ui.modelutil.MVCListAdapter.ModelList; - import org.chromium.ui.modelutil.PropertyModel; - import org.chromium.ui.widget.RectProvider; +@@ -30,6 +32,8 @@ import org.chromium.ui.widget.ViewRectProvider; + + import java.util.List; +import java.util.function.Function; + /** * Mediator for the extensions menu. This class is responsible for listening to changes in the * extensions and updating the model accordingly. -@@ -38,7 +42,6 @@ class ExtensionsMenuMediator implements Destroyable, ExtensionsMenuBridge.Observ +@@ -43,7 +47,6 @@ class ExtensionsMenuMediator implements Destroyable, ExtensionsMenuBridge.Observ private final PropertyModel mMenuPropertyModel; private final Runnable mOnReady; private final ChromeAndroidTask mTask; - private final Profile mProfile; - private final View mRootView; private final ExtensionActionListCoordinator mExtensionActionListCoordinator; -@@ -68,9 +71,9 @@ class ExtensionsMenuMediator implements Destroyable, ExtensionsMenuBridge.Observ + /** +@@ -69,8 +72,8 @@ class ExtensionsMenuMediator implements Destroyable, ExtensionsMenuBridge.Observ + mOnReady = onReady; mMenuPropertyModel = propertyModel; - mRootView = rootView; mTask = task; - mProfile = profile; - - mMenuBridge = new ExtensionsMenuBridge(mTask, mProfile, /* observer= */ this); + mMenuBridge = ExtensionsMenuBridge.Instance(); + mMenuBridge.setObserver(task, /* observer= */ this); - if (mMenuBridge.isReady()) { - onReady(); - } -@@ -128,7 +131,7 @@ class ExtensionsMenuMediator implements Destroyable, ExtensionsMenuBridge.Observ + + mMenuPropertyModel.set( + ExtensionsMenuProperties.SITE_SETTINGS_TOGGLE_CLICK_LISTENER, +@@ -100,7 +103,7 @@ class ExtensionsMenuMediator implements Destroyable, ExtensionsMenuBridge.Observ ExtensionActionContextMenuBridge contextMenuBridge = new ExtensionActionContextMenuBridge( @@ -1331,7 +1218,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow ExtensionActionContextMenuUtils.showContextMenu( mContext, -@@ -141,7 +144,7 @@ class ExtensionsMenuMediator implements Destroyable, ExtensionsMenuBridge.Observ +@@ -113,7 +116,7 @@ class ExtensionsMenuMediator implements Destroyable, ExtensionsMenuBridge.Observ /** Destroys the mediator. */ @Override public void destroy() { @@ -1340,74 +1227,54 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow } /** -@@ -159,12 +162,18 @@ class ExtensionsMenuMediator implements Destroyable, ExtensionsMenuBridge.Observ - final String id = actions[i]; - final String name = actions[i + 1]; - -+ Bitmap icon = -+ ExtensionActionIconUtil.getIcon( -+ mContext, mExtensionActionListCoordinator.mExtensionsToolbarBridge, -+ id, /*webContents*/ null); -+ - PropertyModel model = - new PropertyModel.Builder(ExtensionsMenuItemProperties.ALL_KEYS) - .with(ExtensionsMenuItemProperties.TITLE, name) -+ .with(ExtensionsMenuItemProperties.ICON, icon) - .with( - ExtensionsMenuItemProperties.ITEM_CLICK_LISTENER, -- (view) -> mExtensionActionListCoordinator.click(actionId)) -+ (view) -> mExtensionActionListCoordinator.openPopup(id)) - .with( - ExtensionsMenuItemProperties.CLICK_LISTENER, - (view) -> onContextMenuButtonClicked((ListMenuButton) view, id)) diff --git a/chrome/browser/ui/browser_window/internal/android/java/src/org/chromium/chrome/browser/ui/browser_window/ChromeAndroidTaskImpl.java b/chrome/browser/ui/browser_window/internal/android/java/src/org/chromium/chrome/browser/ui/browser_window/ChromeAndroidTaskImpl.java --- a/chrome/browser/ui/browser_window/internal/android/java/src/org/chromium/chrome/browser/ui/browser_window/ChromeAndroidTaskImpl.java +++ b/chrome/browser/ui/browser_window/internal/android/java/src/org/chromium/chrome/browser/ui/browser_window/ChromeAndroidTaskImpl.java -@@ -250,7 +250,7 @@ final class ChromeAndroidTaskImpl +@@ -334,7 +334,7 @@ final class ChromeAndroidTaskImpl // profile is destroyed. This should be fixed. For now we can just defer the // destruction until the activity is destroyed since there should never be more // than one profile/window on desktop Android. - if (!BuildConfig.IS_DESKTOP_ANDROID) { + if (!BuildConfig.IS_DESKTOP_ANDROID_CROMITE) { - var browserWindow = mAndroidBrowserWindows.remove(profile); - if (browserWindow != null) { - var ptr = browserWindow.getOrCreateNativePtr(); -@@ -284,6 +284,34 @@ final class ChromeAndroidTaskImpl - - associateTabModelWithBrowserWindow(incognitoModel); - } + if (mPendingBrowserWindow != null + && mPendingBrowserWindow.getProfile() == profile) { + assert mActivityScopedObjectsDeque.isEmpty(); +@@ -402,6 +402,34 @@ final class ChromeAndroidTaskImpl + observer.onBrowserWindowAdded(ptr); + } + } + -+ @Override -+ public void didDestroyed() { -+ var activityScopedObjects = mActivityScopedObjectsDeque.peekFirst(); -+ assert activityScopedObjects != null -+ : "ActivityScopedObjects should not be null if the" -+ + " mIncognitoTabModelObserver is registered."; -+ var tabModelSelector = activityScopedObjects.mTabModelSelector; -+ var incognitoModel = tabModelSelector.getModel(/* incognito= */ true); -+ var incognitoProfile = incognitoModel.getProfile(); -+ var iterator = mFeatures.entrySet().iterator(); -+ while (iterator.hasNext()) { -+ var entry = iterator.next(); -+ var key = entry.getKey(); -+ if (incognitoProfile.equals(key.mProfile)) { -+ entry.getValue().onFeatureRemoved(); -+ iterator.remove(); -+ } -+ } -+ var browserWindow = mAndroidBrowserWindows.remove(incognitoProfile); -+ if (browserWindow != null) { -+ var ptr = browserWindow.getOrCreateNativePtr(); -+ for (var observer : mAndroidBrowserWindowObservers) { -+ observer.onBrowserWindowRemoved(ptr); -+ } -+ browserWindow.destroy(); -+ } ++ @Override ++ public void didDestroyed() { ++ var activityScopedObjects = mActivityScopedObjectsDeque.peekFirst(); ++ assert activityScopedObjects != null ++ : "ActivityScopedObjects should not be null if the" ++ + " mIncognitoTabModelObserver is registered."; ++ var tabModelSelector = activityScopedObjects.mTabModelSelector; ++ var incognitoModel = tabModelSelector.getModel(/* incognito= */ true); ++ var incognitoProfile = incognitoModel.getProfile(); ++ var iterator = mFeatures.entrySet().iterator(); ++ while (iterator.hasNext()) { ++ var entry = iterator.next(); ++ var key = entry.getKey(); ++ if (incognitoProfile.equals(key.mProfile)) { ++ entry.getValue().onFeatureRemoved(); ++ iterator.remove(); + } - }; ++ } ++ var browserWindow = mAndroidBrowserWindows.remove(incognitoProfile); ++ if (browserWindow != null) { ++ var ptr = browserWindow.getOrCreateNativePtr(); ++ for (var observer : mAndroidBrowserWindowObservers) { ++ observer.onBrowserWindowRemoved(ptr); ++ } ++ browserWindow.destroy(); ++ } ++ } + } private @Nullable Integer mId; -@@ -548,7 +576,7 @@ final class ChromeAndroidTaskImpl +@@ -685,7 +713,7 @@ final class ChromeAndroidTaskImpl mFeatures.put(featureKey, feature); feature.onAddedToTask(); if (tabModelSelector != null) { @@ -1416,7 +1283,7 @@ diff --git a/chrome/browser/ui/browser_window/internal/android/java/src/org/chro } } } -@@ -964,6 +992,13 @@ final class ChromeAndroidTaskImpl +@@ -1166,6 +1194,13 @@ final class ChromeAndroidTaskImpl for (var feature : mFeatures.values()) { feature.onTaskFocusChanged(isTopResumedActivity); } @@ -1430,7 +1297,7 @@ diff --git a/chrome/browser/ui/browser_window/internal/android/java/src/org/chro } @Override -@@ -1479,7 +1514,7 @@ final class ChromeAndroidTaskImpl +@@ -1805,7 +1840,7 @@ final class ChromeAndroidTaskImpl private void onTabModelSelected(TabModel tabModel) { for (var feature : mFeatures.values()) { @@ -1442,7 +1309,7 @@ diff --git a/chrome/browser/ui/browser_window/internal/android/java/src/org/chro diff --git a/chrome/browser/ui/browser_window/public/android/java/src/org/chromium/chrome/browser/ui/browser_window/ChromeAndroidTaskFeature.java b/chrome/browser/ui/browser_window/public/android/java/src/org/chromium/chrome/browser/ui/browser_window/ChromeAndroidTaskFeature.java --- a/chrome/browser/ui/browser_window/public/android/java/src/org/chromium/chrome/browser/ui/browser_window/ChromeAndroidTaskFeature.java +++ b/chrome/browser/ui/browser_window/public/android/java/src/org/chromium/chrome/browser/ui/browser_window/ChromeAndroidTaskFeature.java -@@ -55,5 +55,5 @@ public interface ChromeAndroidTaskFeature { +@@ -62,5 +62,5 @@ public interface ChromeAndroidTaskFeature { * * @param tabModel The selected {@link TabModel}. */ diff --git a/build/patches/Experimental-support-for-extensions-on-Android.patch b/build/patches/Experimental-support-for-extensions-on-Android.patch index 43715c6e..0a0c17a1 100644 --- a/build/patches/Experimental-support-for-extensions-on-Android.patch +++ b/build/patches/Experimental-support-for-extensions-on-Android.patch @@ -13,8 +13,7 @@ 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/allocator/partition_alloc_features.cc | 2 +- - .../src/partition_alloc/BUILD.gn | 3 +- + .../src/partition_alloc/BUILD.gn | 2 + base/android/device_info.cc | 8 ++- base/android/device_info.h | 3 +- .../src/org/chromium/base/DeviceInfo.java | 8 ++- @@ -35,7 +34,6 @@ 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 +- - .../MediaCaptureNotificationServiceImpl.java | 4 +- .../browser/multiwindow/MultiWindowUtils.java | 2 +- .../ChromeSiteSettingsDelegate.java | 2 +- .../site_settings/ManageSpaceActivity.java | 20 ++++++ @@ -107,18 +105,14 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../extension_window_controller_bridge.h | 2 +- .../Enable-extensions-Android.grdp | 15 +++++ .../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_test_helper.h | 2 +- .../toolbar/java/res/layout/toolbar_phone.xml | 6 ++ - .../ExtensionActionListRecyclerView.java | 2 +- - .../ExtensionToolbarCoordinatorImpl.java | 11 +++- + .../ExtensionToolbarCoordinatorImpl.java | 10 ++- .../extensions/ExtensionsMenuCoordinator.java | 8 ++- .../ExtensionsMenuItemProperties.java | 5 +- .../ExtensionsMenuItemViewBinder.java | 2 + .../extensions/ExtensionsMenuMediator.java | 9 ++- - .../ChromeAndroidTaskTrackerFactory.java | 4 -- + .../ChromeAndroidTaskTrackerFactory.java | 2 +- chrome/browser/ui/prefs/BUILD.gn | 4 +- chrome/browser/ui/prefs/prefs_tab_helper.cc | 8 +-- .../browser/ui/webui/chrome_web_ui_configs.cc | 4 +- @@ -154,8 +148,6 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../selection/selection_popup_controller.cc | 5 ++ .../selection/selection_popup_controller.h | 1 + content/browser/browser_main_loop.cc | 2 +- - .../media/video_capture_manager.cc | 4 +- - .../media/video_capture_manager.h | 6 +- .../render_widget_host_view_android.cc | 2 +- .../browser/ContentUiEventHandler.java | 7 +- .../SelectionPopupControllerImpl.java | 5 ++ @@ -197,7 +189,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 | 3 + ui/webui/resources/css/BUILD.gn | 2 +- - 185 files changed, 605 insertions(+), 311 deletions(-) + 177 files changed, 587 insertions(+), 289 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 @@ -205,7 +197,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 -@@ -1308,7 +1308,7 @@ declare_args() { +@@ -1316,7 +1316,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. @@ -214,26 +206,13 @@ diff --git a/android_webview/BUILD.gn b/android_webview/BUILD.gn # For Android Desktop x64, orderfile is disabled, see # https://crbug.com/422005929. webview_orderfile_path = "" -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 -@@ -190,7 +190,7 @@ BASE_FEATURE_ENUM_PARAM(BackupRefPtrEnabledProcesses, - kBackupRefPtrEnabledProcessesParam, - &kPartitionAllocBackupRefPtr, - kPAFeatureEnabledProcessesStr, --#if PA_BUILDFLAG(IS_ANDROID) && !PA_BUILDFLAG(IS_DESKTOP_ANDROID) -+#if PA_BUILDFLAG(IS_ANDROID) && !PA_BUILDFLAG(IS_DESKTOP_ANDROID_FALSE) - BackupRefPtrEnabledProcesses::kNonRenderer, - #else - BackupRefPtrEnabledProcesses::kAllProcesses, diff --git a/base/allocator/partition_allocator/src/partition_alloc/BUILD.gn b/base/allocator/partition_allocator/src/partition_alloc/BUILD.gn --- a/base/allocator/partition_allocator/src/partition_alloc/BUILD.gn +++ b/base/allocator/partition_allocator/src/partition_alloc/BUILD.gn -@@ -165,7 +165,8 @@ pa_buildflag_header("buildflags") { +@@ -170,6 +170,8 @@ pa_buildflag_header("buildflags") { "HAS_64_BIT_POINTERS=$has_64_bit_pointers", "HAS_MEMORY_TAGGING=$has_memory_tagging", "IS_ANDROID=$is_android", -- "IS_DESKTOP_ANDROID=$is_desktop_android", + "IS_DESKTOP_ANDROID_FALSE=false", + "IS_DESKTOP_ANDROID_CROMITE=$is_desktop_android_cromite", "IS_CASTOS=$is_castos", @@ -283,7 +262,7 @@ diff --git a/base/android/device_info.h b/base/android/device_info.h diff --git a/base/android/java/src/org/chromium/base/DeviceInfo.java b/base/android/java/src/org/chromium/base/DeviceInfo.java --- a/base/android/java/src/org/chromium/base/DeviceInfo.java +++ b/base/android/java/src/org/chromium/base/DeviceInfo.java -@@ -128,10 +128,14 @@ public final class DeviceInfo { +@@ -143,10 +143,14 @@ public final class DeviceInfo { return getInstance().mIDeviceInfo.isFoldable; } @@ -299,15 +278,15 @@ diff --git a/base/android/java/src/org/chromium/base/DeviceInfo.java b/base/andr public static int getVulkanDeqpLevel() { return getInstance().mIDeviceInfo.vulkanDeqpLevel; } -@@ -283,7 +287,7 @@ public final class DeviceInfo { - } - +@@ -308,7 +312,7 @@ public final class DeviceInfo { mIDeviceInfo.isDesktop = -- (BuildConfig.IS_DESKTOP_ANDROID && pm.hasSystemFeature(PackageManager.FEATURE_PC)) -+ (BuildConfig.IS_DESKTOP_ANDROID_FALSE && pm.hasSystemFeature(PackageManager.FEATURE_PC)) - || CommandLine.getInstance().hasSwitch(BaseSwitches.FORCE_DESKTOP_ANDROID); - - // Detect whether device is foldable. + (sIsDesktopForTesting != null) + ? sIsDesktopForTesting +- : (BuildConfig.IS_DESKTOP_ANDROID ++ : (BuildConfig.IS_DESKTOP_ANDROID_FALSE + && pm.hasSystemFeature(PackageManager.FEATURE_PC)) + || CommandLine.getInstance() + .hasSwitch(BaseSwitches.FORCE_DESKTOP_ANDROID); diff --git a/build/BUILD.gn b/build/BUILD.gn --- a/build/BUILD.gn +++ b/build/BUILD.gn @@ -342,7 +321,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 -@@ -2031,8 +2031,8 @@ if (!is_robolectric && enable_java_templates) { +@@ -2047,8 +2047,8 @@ if (!is_robolectric && enable_java_templates) { } else { defines += [ "_LOGTAG_PREFIX=cr_" ] } @@ -420,7 +399,7 @@ diff --git a/cc/resources/ui_resource_bitmap.cc b/cc/resources/ui_resource_bitma diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -970,7 +970,7 @@ if (_is_default_toolchain) { +@@ -981,7 +981,7 @@ if (_is_default_toolchain) { "//chrome/browser/password_entry_edit/android/internal:java", ] @@ -429,7 +408,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn deps += [ "//chrome/browser/ui/android/extensions/windowing/internal:java" ] } else { -@@ -2341,7 +2341,7 @@ if (_is_default_toolchain) { +@@ -2367,7 +2367,7 @@ if (_is_default_toolchain) { "//components/embedder_support/android:virtual_structure_javatests", ] @@ -490,7 +469,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 -@@ -619,7 +619,7 @@ public class ChromeBaseAppCompatActivity extends AppCompatActivity +@@ -620,7 +620,7 @@ public class ChromeBaseAppCompatActivity extends AppCompatActivity applySingleThemeOverlay(R.style.ThemeOverlay_BrowserUI_OptOutEdgeToEdge); } @@ -502,7 +481,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/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 -@@ -2107,7 +2107,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -2164,7 +2164,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity HostZoomMap.setTransparentZoomAdjustment( (float) ContentFeatureList.sAndroidMonitorZoomScalingFactor.getValue() / 100.0f); @@ -514,7 +493,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 -@@ -1191,7 +1191,7 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties +@@ -1195,7 +1195,7 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties && !shouldShowReaderModePrefs(currentTab) && currentTab != null && currentTab.getWebContents() != null @@ -559,37 +538,16 @@ 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/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 -@@ -219,7 +219,7 @@ public class MediaCaptureNotificationServiceImpl extends SplitCompatService.Impl - } - } - mNotificationsType.remove(notificationId); -- if (DeviceInfo.isDesktop()) { -+ if (DeviceInfo.isDesktopFalse()) { - int lastIndex = mNotifications.size() - 1; - boolean isRemovingLatestNotification = - lastIndex >= 0 && mNotifications.get(lastIndex).first == notificationId; -@@ -315,7 +315,7 @@ public class MediaCaptureNotificationServiceImpl extends SplitCompatService.Impl - contentIntent, - stopIntent); - mNotificationsType.put(notificationId, mediaTypes); -- if (DeviceInfo.isDesktop()) { -+ if (DeviceInfo.isDesktopFalse()) { - // For large screen device, we use the latest notification to start or update - // the foreground service. - startOrUpdateForegroundService(notificationId, notification); 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 -@@ -201,7 +201,7 @@ public class MultiWindowUtils implements ActivityStateListener { - return TabWindowManager.MAX_SELECTORS_S; +@@ -225,7 +225,7 @@ public class MultiWindowUtils implements ActivityStateListener { + return TabWindowManager.MAX_SELECTORS_LEGACY; } - if (DeviceInfo.isDesktop()) { + if (DeviceInfo.isDesktopFalse()) { - return TabWindowManager.MAX_SELECTORS; + return TabWindowManager.MAX_SELECTORS_1000; } diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java @@ -658,7 +616,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 -@@ -208,7 +208,7 @@ public class InterceptNavigationDelegateClientImpl implements InterceptNavigatio +@@ -209,7 +209,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()); @@ -682,10 +640,10 @@ 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 -@@ -863,7 +863,7 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm - return false; - } - +@@ -1004,7 +1004,7 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm + // 2. The current tab is a PDF page. + NativePage nativePage = currentTab.getNativePage(); + boolean isPdf = nativePage != null && nativePage.isPdf(); - return DeviceInfo.isDesktop() || isPdf; + return DeviceInfo.isDesktopFalse() || isPdf; } @@ -694,7 +652,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 -@@ -647,7 +647,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -651,7 +651,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { }); mCrossDeviceSettingImporter = @@ -703,7 +661,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab ? null : new CrossDeviceSettingImporter( activityLifecycleDispatcher, -@@ -2133,7 +2133,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -2226,7 +2226,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { } else if (id == R.id.toggle_bookmark_bar) { // isActivityStateBookmarkBarCompatible already checks the flag sAndroidBookmarkBar. if (BookmarkBarUtils.isActivityStateBookmarkBarCompatible(mActivity)) { @@ -735,7 +693,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 -@@ -379,7 +379,7 @@ +@@ -381,7 +381,7 @@ @@ -744,7 +702,7 @@ diff --git a/chrome/app/theme/theme_resources.grd b/chrome/app/theme/theme_resou -@@ -388,7 +388,7 @@ +@@ -390,7 +390,7 @@ @@ -756,7 +714,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 -@@ -7613,7 +7613,7 @@ static_library("browser") { +@@ -7471,7 +7471,7 @@ static_library("browser") { deps += [ "//media/mojo/mojom:remoting" ] } @@ -765,7 +723,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn sources += [ "download/download_crx_util_android.cc" ] } -@@ -7944,7 +7944,7 @@ static_library("browser") { +@@ -7815,7 +7815,7 @@ static_library("browser") { # TODO(https://crbug.com/356905053): Add more dependencies here and merge this # block with the `enable_extensions` block above. @@ -774,7 +732,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. -@@ -8716,7 +8716,7 @@ static_library("browser_generated_files") { +@@ -8595,7 +8595,7 @@ static_library("browser_generated_files") { [ "//chrome/browser/ui/webui/new_tab_page/foo:mojo_bindings" ] } } @@ -786,7 +744,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 -@@ -375,6 +375,10 @@ +@@ -384,6 +384,10 @@ #include "extensions/common/switches.h" #endif // BUILDFLAG(ENABLE_EXTENSIONS_CORE) @@ -873,7 +831,7 @@ diff --git a/chrome/browser/browser_controls/android/java/src/org/chromium/chrom 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 -@@ -387,7 +387,7 @@ void BrowserProcessImpl::Init() { +@@ -394,7 +394,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? @@ -885,7 +843,7 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro diff --git a/chrome/browser/chrome_browser_field_trials.cc b/chrome/browser/chrome_browser_field_trials.cc --- a/chrome/browser/chrome_browser_field_trials.cc +++ b/chrome/browser/chrome_browser_field_trials.cc -@@ -124,7 +124,7 @@ void ChromeBrowserFieldTrials::RegisterFeatureOverrides( +@@ -142,7 +142,7 @@ void ChromeBrowserFieldTrials::RegisterFeatureOverrides( feature_overrides.DisableFeature(features::kEyeDropper); } #elif BUILDFLAG(IS_ANDROID) // BUILDFLAG(IS_LINUX) @@ -894,7 +852,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,7 +133,7 @@ void ChromeBrowserFieldTrials::RegisterFeatureOverrides( +@@ -151,7 +151,7 @@ void ChromeBrowserFieldTrials::RegisterFeatureOverrides( // Enable the link hover status bar. // TODO(crbug.com/404678510): Remove when the feature is stable. @@ -903,16 +861,14 @@ 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 -@@ -144,24 +144,24 @@ void ChromeBrowserFieldTrials::RegisterFeatureOverrides( - // Enable desktop tab management features. - // TODO(crbug.com/422902625): Remove when rollout is complete to all form - // 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); +@@ -163,23 +163,23 @@ void ChromeBrowserFieldTrials::RegisterFeatureOverrides( + // TODO(crbug.com/426461170): Remove once we enable this feature for all form + // factors. Currently we have no conclusion whether to enable this on mobile + // phones yet. +- feature_overrides.EnableFeature( +- features::kAndroidEnableBackgroundMediaCapturing); ++ // feature_overrides.EnableFeature( ++ // features::kAndroidEnableBackgroundMediaCapturing); // TODO(crbug.com/465596248): Remove when experiment is complete. - feature_overrides.EnableFeature(chrome::android::kProtectRecentlyVisibleTab); + // feature_overrides.EnableFeature(chrome::android::kProtectRecentlyVisibleTab); @@ -938,7 +894,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( -@@ -169,13 +169,13 @@ void ChromeBrowserFieldTrials::RegisterFeatureOverrides( +@@ -187,13 +187,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. @@ -957,8 +913,8 @@ 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. -@@ -186,47 +186,47 @@ void ChromeBrowserFieldTrials::RegisterFeatureOverrides( - feature_overrides.EnableFeature(media::kContextMenuPictureInPictureAndroid); +@@ -212,51 +212,51 @@ void ChromeBrowserFieldTrials::RegisterFeatureOverrides( + // Disables the enhanced pip transition and uses the default animation. // TODO(crbug.com/440384447): Remove when enhanced pip transition is fixed. - feature_overrides.DisableFeature(media::kAllowEnhancedPipTransition); @@ -974,12 +930,8 @@ diff --git a/chrome/browser/chrome_browser_field_trials.cc b/chrome/browser/chro // Enable by default for desktop platforms, pending a tablet rollout using the // same flag. // TODO(crbug.com/445475304): Remove when tablet rollout is complete. - feature_overrides.EnableFeature(feed::kAndroidOpenIncognitoAsWindow); - // TODO(crbug.com/427242080): Remove when tablet rollout is complete. -- feature_overrides.EnableFeature( -- chrome::android::kAndroidPinnedTabsTabletTabStrip); -+ // feature_overrides.EnableFeature( -+ // chrome::android::kAndroidPinnedTabsTabletTabStrip); +- feature_overrides.EnableFeature(feed::kAndroidOpenIncognitoAsWindow); ++ // feature_overrides.EnableFeature(feed::kAndroidOpenIncognitoAsWindow); // Enable ANGLE/Vulkan features. // TODO (crbug.com//376280554): Enable these features with runtime checks @@ -999,17 +951,25 @@ diff --git a/chrome/browser/chrome_browser_field_trials.cc b/chrome/browser/chro - feature_overrides.EnableFeature(::features::kSitePerProcess); + // feature_overrides.EnableFeature(::features::kSitePerProcess); + // By setting the kSiteIsolationEnableMemoryThresholdAndroid feature, we make + // sure that site isolation (enabled by kSitePerProcess above) is not disabled + // due to memory thresholds. + // TODO(crbug.com/454695278): Find a different way to disable the site + // isolation memory thresholds on Android desktop. +- feature_overrides.DisableFeature( +- site_isolation::features::kSiteIsolationEnableMemoryThresholdAndroid); ++ // feature_overrides.DisableFeature( ++ // site_isolation::features::kSiteIsolationEnableMemoryThresholdAndroid); + // Enable all tabs to have WebContents at all times for desktop platforms. // TODO(crbug.com/448420873): Remove once we enable this feature for all form // factors. This is currently blocked by performance regressions on low-end // Android devices. - feature_overrides.EnableFeature(features::kWebContentsDiscard); - feature_overrides.EnableFeature(features::kLazyBrowserInterfaceBroker); -- feature_overrides.EnableFeature(chrome::android::kTabFreezingUsesDiscard); - feature_overrides.EnableFeature(chrome::android::kLoadAllTabsAtStartup); + // feature_overrides.EnableFeature(features::kWebContentsDiscard); + // feature_overrides.EnableFeature(features::kLazyBrowserInterfaceBroker); -+ // feature_overrides.EnableFeature(chrome::android::kTabFreezingUsesDiscard); + // feature_overrides.EnableFeature(chrome::android::kLoadAllTabsAtStartup); // Enable the ability for extensions to override chrome pages. @@ -1020,19 +980,24 @@ diff --git a/chrome/browser/chrome_browser_field_trials.cc b/chrome/browser/chro // Enable desktop full screen to a screen feature flag by default for desktop // platforms. -@@ -238,7 +238,7 @@ void ChromeBrowserFieldTrials::RegisterFeatureOverrides( +@@ -268,11 +268,11 @@ 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. - feature_overrides.EnableFeature(::features::kAndroidDesktopZoomScaling); + // feature_overrides.EnableFeature(::features::kAndroidDesktopZoomScaling); + + // Enable Android desktop fluid resize to improve UX. + // TODO(crbug.com/464967916): Remove when the feature is stable. +- feature_overrides.EnableFeature(features::kFluidResize); ++ // feature_overrides.EnableFeature(features::kFluidResize); #endif // BUILDFLAG(IS_DESKTOP_ANDROID) // Desktop-first features which are past incubation should either end up here, // or to a finch trial that enables it for all form factors. diff --git a/chrome/browser/chrome_browser_interface_binders_webui.cc b/chrome/browser/chrome_browser_interface_binders_webui.cc --- a/chrome/browser/chrome_browser_interface_binders_webui.cc +++ b/chrome/browser/chrome_browser_interface_binders_webui.cc -@@ -44,7 +44,7 @@ +@@ -48,7 +48,7 @@ #include "mojo/public/cpp/bindings/binder_map.h" #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ @@ -1041,7 +1006,7 @@ diff --git a/chrome/browser/chrome_browser_interface_binders_webui.cc b/chrome/b #include "chrome/browser/ui/webui/discards/discards.mojom.h" #include "chrome/browser/ui/webui/discards/discards_ui.h" #include "chrome/browser/ui/webui/discards/site_data.mojom.h" -@@ -153,7 +153,7 @@ void PopulateChromeWebUIFrameBinders( +@@ -165,7 +165,7 @@ void PopulateChromeWebUIFrameBinders( #endif // BUILDFLAG(IS_CHROMEOS) #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ @@ -1053,7 +1018,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 -@@ -4307,7 +4307,7 @@ base::OnceClosure ChromeContentBrowserClient::SelectClientCertificate( +@@ -4379,7 +4379,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) && \ @@ -1062,7 +1027,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); -@@ -4539,7 +4539,7 @@ void ChromeContentBrowserClient::OverrideWebPreferences( +@@ -4611,7 +4611,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/40337093, http://crbug.com/41304476. @@ -1074,7 +1039,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 -@@ -354,7 +354,7 @@ static_library("devtools") { +@@ -356,7 +356,7 @@ static_library("devtools") { } } @@ -1119,7 +1084,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") { +@@ -1736,7 +1736,7 @@ source_set("chrome_extensions_browser_client") { "//extensions/browser/updater", ] @@ -1128,7 +1093,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") { +@@ -1751,6 +1751,16 @@ source_set("chrome_extensions_browser_client") { "//extensions/browser", "//extensions/browser/kiosk", ] @@ -1211,16 +1176,16 @@ diff --git a/chrome/browser/extensions/api/identity/web_auth_flow.h b/chrome/bro diff --git a/chrome/browser/extensions/api/tabs/tabs_event_router.cc b/chrome/browser/extensions/api/tabs/tabs_event_router.cc --- a/chrome/browser/extensions/api/tabs/tabs_event_router.cc +++ b/chrome/browser/extensions/api/tabs/tabs_event_router.cc -@@ -338,6 +338,9 @@ void TabsEventRouter::DispatchEvent( - - void TabsEventRouter::OnTabAdded(tabs::TabInterface* tab, int index) { +@@ -408,6 +408,9 @@ void TabsEventRouter::OnTabAdded(TabListInterface& tab_list, + tabs::TabInterface* tab, + int index) { content::WebContents* contents = tab->GetContents(); +#if BUILDFLAG(IS_ANDROID) + if (!contents) return; +#endif CHECK(contents); - // Check if we've ever seen this tab. + // Adding a new tab can affect the indices of all existing tabs in the tab 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 @@ -1235,10 +1200,10 @@ diff --git a/chrome/browser/extensions/extension_management.cc b/chrome/browser/ + return base::FeatureList::IsEnabled( + extensions_features::kEnableExtensionsAndroid); + } - // If Finch has enabled extensions for corp, allow them. - if (base::FeatureList::IsEnabled( - extensions_features::kEnableExtensionsForCorpDesktopAndroid)) { -@@ -201,7 +205,7 @@ bool ExtensionManagement::ExtensionsEnabledForDesktopAndroid() const { + std::string user_name = profile_->GetProfileUserName(); + // Crude check to avoid passing invalid strings to `ExtractDomainName`. + if (user_name.contains("@")) { +@@ -195,7 +199,7 @@ bool ExtensionManagement::ExtensionsEnabledForDesktopAndroid() const { ManagedInstallationMode ExtensionManagement::GetInstallationMode( const ExtensionId& extension_id, const std::string& update_url) { @@ -1250,7 +1215,7 @@ 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 -@@ -103,7 +103,7 @@ class ExtensionManagement : public KeyedService, +@@ -104,7 +104,7 @@ class ExtensionManagement : public KeyedService, const std::vector>& GetProviders() const; @@ -1262,7 +1227,7 @@ diff --git a/chrome/browser/extensions/extension_management.h b/chrome/browser/e diff --git a/chrome/browser/extensions/extension_util.cc b/chrome/browser/extensions/extension_util.cc --- a/chrome/browser/extensions/extension_util.cc +++ b/chrome/browser/extensions/extension_util.cc -@@ -50,6 +50,10 @@ +@@ -47,6 +47,10 @@ #include "chromeos/ash/components/file_manager/app_id.h" #endif @@ -1273,7 +1238,7 @@ diff --git a/chrome/browser/extensions/extension_util.cc b/chrome/browser/extens static_assert(BUILDFLAG(ENABLE_EXTENSIONS_CORE)); namespace extensions::util { -@@ -350,6 +354,13 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -333,6 +337,13 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { bool AreExtensionsDisabled(const base::CommandLine& command_line, content::BrowserContext* context) { @@ -1302,7 +1267,7 @@ diff --git a/chrome/browser/feedback/android/java/src/org/chromium/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 -@@ -757,7 +757,7 @@ public abstract class ChromeFeatureList { +@@ -765,7 +765,7 @@ public abstract class ChromeFeatureList { public static final CachedFlag sAndroidNewMediaPicker = newCachedFlag(ANDROID_NEW_MEDIA_PICKER, false); public static final CachedFlag sAndroidOpenIncognitoAsWindow = @@ -1311,7 +1276,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final CachedFlag sAndroidProgressBarVisualUpdate = newCachedFlag( ANDROID_PROGRESS_BAR_VISUAL_UPDATE, -@@ -884,7 +884,7 @@ public abstract class ChromeFeatureList { +@@ -889,7 +889,7 @@ public abstract class ChromeFeatureList { public static final CachedFlag sChromeItemPickerUi = newCachedFlag(CHROME_ITEM_PICKER_UI, /* defaultValue= */ false); public static final CachedFlag sChromeNativeUrlOverriding = @@ -1320,7 +1285,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final CachedFlag sClampAutomotiveScaling = newCachedFlag(CLAMP_AUTOMOTIVE_SCALING, true); public static final CachedFlag sClankStartupLatencyInjection = -@@ -1040,7 +1040,7 @@ public abstract class ChromeFeatureList { +@@ -1065,7 +1065,7 @@ public abstract class ChromeFeatureList { newCachedFlag(POWER_SAVING_MODE_BROADCAST_RECEIVER_IN_BACKGROUND, true); public static final CachedFlag sPriceChangeModule = newCachedFlag(PRICE_CHANGE_MODULE, true); public static final CachedFlag sProtectRecentlyVisibleTab = @@ -1425,7 +1390,7 @@ diff --git a/chrome/browser/media/router/media_router_feature.h b/chrome/browser diff --git a/chrome/browser/media/webrtc/webrtc_event_log_manager.cc b/chrome/browser/media/webrtc/webrtc_event_log_manager.cc --- a/chrome/browser/media/webrtc/webrtc_event_log_manager.cc +++ b/chrome/browser/media/webrtc/webrtc_event_log_manager.cc -@@ -113,7 +113,7 @@ class PeerConnectionTrackerProxyImpl +@@ -112,7 +112,7 @@ class PeerConnectionTrackerProxyImpl // necessarily for any given user profile. // Certain platforms (mobile) are blocked from remote-bound logging. bool IsRemoteLoggingFeatureEnabled() { @@ -1434,7 +1399,7 @@ diff --git a/chrome/browser/media/webrtc/webrtc_event_log_manager.cc b/chrome/br bool enabled = false; #else bool enabled = true; -@@ -465,7 +465,7 @@ WebRtcEventLogManager::CreateRemoteLogFileWriterFactory() { +@@ -464,7 +464,7 @@ WebRtcEventLogManager::CreateRemoteLogFileWriterFactory() { if (remote_log_file_writer_factory_for_testing_) { return std::move(remote_log_file_writer_factory_for_testing_); } else { @@ -1470,7 +1435,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 -@@ -655,7 +655,7 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -663,7 +663,7 @@ void ChromeBrowserMainExtraPartsProfiles:: chromeos_extensions::EnsureBrowserContextKeyedServiceFactoriesBuilt(); #endif extensions::EnsureBrowserContextKeyedServiceFactoriesBuilt(); @@ -1527,7 +1492,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") { +@@ -130,7 +130,7 @@ group("resources") { ] } @@ -1651,7 +1616,7 @@ diff --git a/chrome/browser/sessions/session_restore_android.cc b/chrome/browser diff --git a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/ChromeProvidedSharingOptionsProviderBase.java b/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/ChromeProvidedSharingOptionsProviderBase.java --- a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/ChromeProvidedSharingOptionsProviderBase.java +++ b/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/ChromeProvidedSharingOptionsProviderBase.java -@@ -284,7 +284,7 @@ public abstract class ChromeProvidedSharingOptionsProviderBase { +@@ -285,7 +285,7 @@ public abstract class ChromeProvidedSharingOptionsProviderBase { } private void maybeAddCollaborateFirstPartyOption() { @@ -1660,7 +1625,7 @@ diff --git a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/s return; } FirstPartyOption option = createCollaborateFirstPartyOption(); -@@ -316,7 +316,7 @@ public abstract class ChromeProvidedSharingOptionsProviderBase { +@@ -317,7 +317,7 @@ public abstract class ChromeProvidedSharingOptionsProviderBase { private void maybeAddPrintFirstPartyOption() { // For the desktop case, the Print action will be showed in the main menu. @@ -1744,7 +1709,7 @@ 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 -@@ -680,7 +680,7 @@ static_library("ui") { +@@ -706,7 +706,7 @@ static_library("ui") { } # Desktop-Android-only dependencies. @@ -1753,7 +1718,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn deps += [ "//chrome/browser/ui/android/extensions/windowing/internal" ] } if (is_android) { -@@ -2924,7 +2924,7 @@ static_library("ui") { +@@ -2999,7 +2999,7 @@ static_library("ui") { allow_circular_includes_from += [ "//chrome/browser/ui/wallet" ] } @@ -1800,7 +1765,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(); - Java_ContextMenuHelper_dismissContextMenu(env, java_obj_); + Java_ContextMenuHelper_dismissContextMenu(env, GetJavaObject(env)); } void ContextMenuHelper::OnContextMenuClosed(JNIEnv* env) { @@ -1813,7 +1778,7 @@ diff --git a/chrome/browser/ui/android/context_menu_helper.cc b/chrome/browser/u diff --git a/chrome/browser/ui/android/context_menu_helper.h b/chrome/browser/ui/android/context_menu_helper.h --- a/chrome/browser/ui/android/context_menu_helper.h +++ b/chrome/browser/ui/android/context_menu_helper.h -@@ -14,7 +14,7 @@ +@@ -15,7 +15,7 @@ #include "extensions/buildflags/buildflags.h" #include "mojo/public/cpp/bindings/associated_remote.h" @@ -1822,7 +1787,7 @@ diff --git a/chrome/browser/ui/android/context_menu_helper.h b/chrome/browser/ui namespace extensions { class ExtensionMenuModel; } -@@ -53,7 +53,7 @@ class ContextMenuHelper +@@ -54,7 +54,7 @@ class ContextMenuHelper content::ContextMenuParams context_menu_params_; @@ -1867,7 +1832,7 @@ diff --git a/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/c 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 -@@ -86,8 +86,8 @@ if (enable_extensions_core) { +@@ -88,8 +88,8 @@ if (enable_extensions_core) { # BuildConfig. java_cpp_template("generate_buildflags") { sources = [ "java/templates/ExtensionsBuildflags.template" ] @@ -1881,23 +1846,24 @@ diff --git a/chrome/browser/ui/android/extensions/BUILD.gn b/chrome/browser/ui/a diff --git a/chrome/browser/ui/android/extensions/extension_actions_bridge.cc b/chrome/browser/ui/android/extensions/extension_actions_bridge.cc --- a/chrome/browser/ui/android/extensions/extension_actions_bridge.cc +++ b/chrome/browser/ui/android/extensions/extension_actions_bridge.cc -@@ -8,11 +8,14 @@ +@@ -8,12 +8,15 @@ #include #include "base/android/jni_string.h" +#include "base/files/file_util.h" +#include "base/task/thread_pool.h" - #include "chrome/browser/extensions/extension_action_runner.h" + #include "chrome/browser/extensions/extension_management.h" #include "chrome/browser/profiles/profile.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 "ui/events/android/key_event_android.h" + + // Must come after all headers that specialize FromJniType() / ToJniType(). +#include "extensions/common/constants.h" - #include "extensions/browser/extension_action.h" - #include "extensions/browser/extension_action_manager.h" - #include "extensions/browser/extension_registry.h" -@@ -198,6 +201,26 @@ ExtensionAction::ShowAction ExtensionActionsBridge::RunAction( - return runner->RunAction(extension, /*grant_tab_permissions=*/true); + #include "chrome/browser/ui/android/extensions/jni_headers/ExtensionAction_jni.h" + #include "chrome/browser/ui/android/extensions/jni_headers/ExtensionActionsBridge_jni.h" + +@@ -34,6 +37,26 @@ void ExtensionActionsBridge::Destroy(JNIEnv* env) { + delete this; } +void ExtensionActionsBridge::ClearExtensionData(JNIEnv* env) { @@ -1926,10 +1892,10 @@ 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 -@@ -52,6 +52,7 @@ class ExtensionActionsBridge : public ToolbarActionsModel::Observer { - const ToolbarActionsModel::ActionId& action_id, - int tab_id, - content::WebContents* web_contents); +@@ -30,6 +30,7 @@ class ExtensionActionsBridge { + + // JNI implementations. + void Destroy(JNIEnv* env); + void ClearExtensionData(JNIEnv* env); jni_zero::ScopedJavaLocalRef HandleKeyDownEvent( JNIEnv* env, @@ -1937,18 +1903,18 @@ diff --git a/chrome/browser/ui/android/extensions/extension_actions_bridge.h b/c diff --git a/chrome/browser/ui/android/extensions/extensions_toolbar_android.cc b/chrome/browser/ui/android/extensions/extensions_toolbar_android.cc --- a/chrome/browser/ui/android/extensions/extensions_toolbar_android.cc +++ b/chrome/browser/ui/android/extensions/extensions_toolbar_android.cc -@@ -152,6 +152,7 @@ base::android::ScopedJavaLocalRef ExtensionsToolbarAndroid::GetAction( - const ToolbarActionsModel::ActionId& action_id) { +@@ -159,6 +159,7 @@ base::android::ScopedJavaLocalRef ExtensionsToolbarAndroid::GetAction( + content::WebContents* web_contents) { ToolbarActionViewModel* action = toolbar_view_model_->GetActionModelForId(action_id); + if (!action) return nullptr; return Java_ExtensionAction_Constructor( - env, action_id, base::UTF16ToUTF8(action->GetActionName())); - } + env, action_id, base::UTF16ToUTF8(action->GetTooltip(web_contents)), + base::UTF16ToUTF8(action->GetAccessibleName(web_contents))); diff --git a/chrome/browser/ui/android/extensions/java/res/layout/extensions_menu.xml b/chrome/browser/ui/android/extensions/java/res/layout/extensions_menu.xml --- a/chrome/browser/ui/android/extensions/java/res/layout/extensions_menu.xml +++ b/chrome/browser/ui/android/extensions/java/res/layout/extensions_menu.xml -@@ -65,6 +65,7 @@ found in the LICENSE file. +@@ -76,6 +76,7 @@ found in the LICENSE file. - 600dp +@@ -7,4 +7,5 @@ found in the LICENSE file. + + + 400dp + 50dp 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 -@@ -241,6 +241,10 @@ public class ExtensionActionsBridge implements Destroyable { - void onActionIconUpdated(String actionId); +@@ -87,6 +87,10 @@ public class ExtensionActionsBridge implements Destroyable { + .handleKeyDownEvent(mNativeExtensionActionsBridge, event); } + public void clearExtensionData() { @@ -2005,9 +1971,9 @@ diff --git a/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/b @NativeMethods public interface Natives { boolean extensionsEnabled(@JniType("Profile*") Profile profile); -@@ -275,6 +279,8 @@ public class ExtensionActionsBridge implements Destroyable { - int tabId, - @JniType("content::WebContents*") WebContents webContents); +@@ -95,6 +99,8 @@ public class ExtensionActionsBridge implements Destroyable { + + void destroy(long nativeExtensionActionsBridge); + void clearExtensionData(long nativeExtensionActionsBridge); + @@ -2120,100 +2086,10 @@ new file mode 100644 + Enable experimental support for extensions in Android + + -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 -@@ -47,7 +47,7 @@ sync_sessions::OpenTabsUIDelegate* GetOpenTabsUIDelegate(Profile* profile) { - // TODO(http://crbug.com/444518651): remove the if-def when - // |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(); -@@ -157,7 +157,7 @@ void TabModel::RecordActualSyncedTabsHistogram() { - - // TODO(http://crbug.com/444518651): remove the if-def when - // |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) { - session_id_ = session_id; - } -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 -@@ -320,7 +320,7 @@ class TabModel : public TabListInterface { - - LocationBarModel* GetLocationBarModel(); - --#if BUILDFLAG(IS_DESKTOP_ANDROID) -+#if BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE) - // Sets the |SessionID|. - // - // This is only needed on desktop Android, where |BrowserWindowInterface| -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 -@@ -51,7 +51,7 @@ - - // "chrome/browser/ui/browser_window" is available on desktop Android, but not - // other Android builds. --#if BUILDFLAG(IS_DESKTOP_ANDROID) -+#if BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE) - #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 -@@ -91,7 +91,7 @@ std::vector GetAllTabsFromHandles(const Container& handles) { - return tabs; - } - --#if BUILDFLAG(IS_DESKTOP_ANDROID) -+#if BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE) - AndroidBrowserWindow* GetAndroidBrowserWindow(SessionID session_id) { - for (BrowserWindowInterface* window : GetAllBrowserWindowInterfaces()) { - if (window->GetSessionID() == session_id) { -@@ -129,7 +129,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. --#if BUILDFLAG(IS_DESKTOP_ANDROID) -+#if BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE) - BrowserWindowInterface* android_browser_window = - reinterpret_cast(native_android_browser_window); - CHECK(android_browser_window != nullptr); -@@ -165,7 +165,7 @@ void TabModelJniBridge::MoveTabToWindowForTesting( - TabAndroid* tab, - long android_browser_window_ptr, - int new_index) { --#if BUILDFLAG(IS_DESKTOP_ANDROID) -+#if BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE) - SessionID destination_window_id = - reinterpret_cast(android_browser_window_ptr) - ->GetSessionID(); -@@ -180,7 +180,7 @@ void TabModelJniBridge::MoveTabGroupToWindowForTesting( - const base::Token& group_id, - long android_browser_window_ptr, - int new_index) { --#if BUILDFLAG(IS_DESKTOP_ANDROID) -+#if BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE) - SessionID destination_window_id = - reinterpret_cast(android_browser_window_ptr) - ->GetSessionID(); -@@ -804,7 +804,7 @@ void TabModelJniBridge::MoveTabGroupToWindow(tab_groups::TabGroupId group_id, - ScopedJavaLocalRef TabModelJniBridge::GetActivityForWindow( - SessionID window_id) { - ScopedJavaLocalRef jactivity; --#if BUILDFLAG(IS_DESKTOP_ANDROID) -+#if BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE) - AndroidBrowserWindow* window = GetAndroidBrowserWindow(window_id); - if (!window) { - return jactivity; 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 -@@ -124,7 +124,7 @@ class TestTabModel : public TabModel { +@@ -129,7 +129,7 @@ class TestTabModel : public TabModel { // BrowserWindowInterface is available on desktop Android, but not other Android // builds. @@ -2226,8 +2102,8 @@ diff --git a/chrome/browser/ui/android/toolbar/java/res/layout/toolbar_phone.xml --- a/chrome/browser/ui/android/toolbar/java/res/layout/toolbar_phone.xml +++ b/chrome/browser/ui/android/toolbar/java/res/layout/toolbar_phone.xml @@ -65,6 +65,12 @@ found in the LICENSE file. - android:layout_width="52dp" - style="@style/ToolbarHoverableButton"/> + android:layout_height="wrap_content" + android:visibility="gone"/> + currentTabSupplier, -- TabCreator tabCreator) { -+ TabCreator tabCreator, + TabCreator tabCreator, +- ExtensionsToolbarBridge extensionsToolbarBridge) { ++ ExtensionsToolbarBridge extensionsToolbarBridge, + ExtensionActionListCoordinator extensionActionListCoordinator) { + mExtensionActionListCoordinator = extensionActionListCoordinator; mContext = context; mCurrentTabSupplier = currentTabSupplier; mProfile = profile; -@@ -179,7 +183,7 @@ public class ExtensionsMenuCoordinator implements Destroyable { - mExtensionsMenuButton.getRootView(), +@@ -184,7 +188,7 @@ public class ExtensionsMenuCoordinator implements Destroyable, ExtensionsToolbar + mPropertyModel, /* onReady= */ () -> { mExtensionsMenuButton.showMenu(); - }); @@ -2334,35 +2190,38 @@ 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/ExtensionsMenuItemProperties.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionsMenuItemProperties.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionsMenuItemProperties.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionsMenuItemProperties.java -@@ -18,8 +18,11 @@ public class ExtensionsMenuItemProperties { - - public static final WritableObjectPropertyKey TITLE = new WritableObjectPropertyKey<>(); +@@ -27,11 +27,14 @@ public class ExtensionsMenuItemProperties { + public static final WritableIntPropertyKey CONTEXT_MENU_BUTTON_ICON = + new WritableIntPropertyKey(); + public static final WritableObjectPropertyKey ITEM_CLICK_LISTENER = + new WritableObjectPropertyKey<>(); + - public static final WritableObjectPropertyKey CLICK_LISTENER = - new WritableObjectPropertyKey<>(); + public static final WritableObjectPropertyKey + CONTEXT_MENU_BUTTON_ON_CLICK = new WritableObjectPropertyKey<>(); -- public static final PropertyKey[] ALL_KEYS = new PropertyKey[] {ICON, TITLE, CLICK_LISTENER}; -+ public static final PropertyKey[] ALL_KEYS = new PropertyKey[] {ICON, TITLE, ITEM_CLICK_LISTENER, CLICK_LISTENER}; + public static final PropertyKey[] ALL_KEYS = + new PropertyKey[] { +- EXTENSION_ID, ICON, TITLE, CONTEXT_MENU_BUTTON_ICON, CONTEXT_MENU_BUTTON_ON_CLICK ++ EXTENSION_ID, ICON, TITLE, ITEM_CLICK_LISTENER, CONTEXT_MENU_BUTTON_ICON, CONTEXT_MENU_BUTTON_ON_CLICK + }; } diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionsMenuItemViewBinder.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionsMenuItemViewBinder.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionsMenuItemViewBinder.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionsMenuItemViewBinder.java -@@ -30,6 +30,8 @@ public class ExtensionsMenuItemViewBinder { - // TODO: Investigate the correct resizing method. - bitmap.setDensity(120); - iconView.setImageBitmap(bitmap); +@@ -33,6 +33,8 @@ public class ExtensionsMenuItemViewBinder { + // TODO: Investigate the correct resizing method. + bitmap.setDensity(120); + } + } else if (key == ExtensionsMenuItemProperties.ITEM_CLICK_LISTENER) { + view.setOnClickListener(model.get(ExtensionsMenuItemProperties.ITEM_CLICK_LISTENER)); - } else if (key == ExtensionsMenuItemProperties.CLICK_LISTENER) { - view.findViewById(R.id.extensions_menu_item_context_menu) - .setOnClickListener(model.get(ExtensionsMenuItemProperties.CLICK_LISTENER)); + } else if (key == ExtensionsMenuItemProperties.CONTEXT_MENU_BUTTON_ICON) { + ImageView contextMenuView = view.findViewById(R.id.extensions_menu_item_context_menu); + contextMenuView.setImageResource( 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 -@@ -14,6 +14,7 @@ import org.chromium.build.annotations.NullMarked; +@@ -15,6 +15,7 @@ import org.chromium.build.annotations.NullMarked; import org.chromium.chrome.browser.extensions.ContextMenuSource; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.tab.Tab; @@ -2370,18 +2229,18 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.ui.browser_window.ChromeAndroidTask; import org.chromium.chrome.browser.ui.extensions.ExtensionActionContextMenuBridge; import org.chromium.chrome.browser.ui.extensions.ExtensionsMenuBridge; -@@ -39,6 +40,7 @@ class ExtensionsMenuMediator implements Destroyable, ExtensionsMenuBridge.Observ +@@ -43,6 +44,7 @@ class ExtensionsMenuMediator implements Destroyable, ExtensionsMenuBridge.Observ + private final Runnable mOnReady; private final ChromeAndroidTask mTask; private final Profile mProfile; - private final View mRootView; + private final ExtensionActionListCoordinator mExtensionActionListCoordinator; /** * @param context The context to use. -@@ -56,7 +58,9 @@ class ExtensionsMenuMediator implements Destroyable, ExtensionsMenuBridge.Observ +@@ -58,7 +60,9 @@ class ExtensionsMenuMediator implements Destroyable, ExtensionsMenuBridge.Observ + NullableObservableSupplier currentTabSupplier, ModelList actionModels, PropertyModel propertyModel, - View rootView, - Runnable onReady) { + Runnable onReady, + ExtensionActionListCoordinator extensionActionListCoordinator) { @@ -2389,30 +2248,28 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow mActionModels = actionModels; mContext = context; mCurrentTabSupplier = currentTabSupplier; -@@ -158,6 +162,9 @@ class ExtensionsMenuMediator implements Destroyable, ExtensionsMenuBridge.Observ - PropertyModel model = - new PropertyModel.Builder(ExtensionsMenuItemProperties.ALL_KEYS) - .with(ExtensionsMenuItemProperties.TITLE, name) -+ .with( -+ ExtensionsMenuItemProperties.ITEM_CLICK_LISTENER, -+ (view) -> mExtensionActionListCoordinator.click(actionId)) - .with( - ExtensionsMenuItemProperties.CLICK_LISTENER, - (view) -> onContextMenuButtonClicked((ListMenuButton) view, id)) +@@ -218,6 +222,9 @@ class ExtensionsMenuMediator implements Destroyable, ExtensionsMenuBridge.Observ + ExtensionsMenuItemProperties.CONTEXT_MENU_BUTTON_ON_CLICK, + (view) -> + onContextMenuButtonClicked((ListMenuButton) view, entry.id)) ++ .with( ++ ExtensionsMenuItemProperties.ITEM_CLICK_LISTENER, ++ (view) -> mExtensionActionListCoordinator.click(actionId)) + .with( + ExtensionsMenuItemProperties.CONTEXT_MENU_BUTTON_ICON, + contextMenuIcon) diff --git a/chrome/browser/ui/browser_window/internal/android/java/src/org/chromium/chrome/browser/ui/browser_window/ChromeAndroidTaskTrackerFactory.java b/chrome/browser/ui/browser_window/internal/android/java/src/org/chromium/chrome/browser/ui/browser_window/ChromeAndroidTaskTrackerFactory.java --- a/chrome/browser/ui/browser_window/internal/android/java/src/org/chromium/chrome/browser/ui/browser_window/ChromeAndroidTaskTrackerFactory.java +++ b/chrome/browser/ui/browser_window/internal/android/java/src/org/chromium/chrome/browser/ui/browser_window/ChromeAndroidTaskTrackerFactory.java -@@ -19,10 +19,6 @@ public final class ChromeAndroidTaskTrackerFactory { +@@ -20,7 +20,7 @@ public final class ChromeAndroidTaskTrackerFactory { */ @Nullable public static ChromeAndroidTaskTracker getInstance() { -- // TODO(crbug.com/473636857): Remove once this is properly implemented on non-desktop -- // platforms. -- if (!BuildConfig.IS_DESKTOP_ANDROID) return null; -- - return ChromeAndroidTaskTrackerImpl.getInstance(); - } - } +- if (BuildConfig.IS_DESKTOP_ANDROID) { ++ if (BuildConfig.IS_DESKTOP_ANDROID_CROMITE) { + return ChromeAndroidTaskTrackerImpl.getInstance(); + } + 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 @@ -2450,12 +2307,12 @@ diff --git a/chrome/browser/ui/prefs/prefs_tab_helper.cc b/chrome/browser/ui/pre {prefs::kWebKitFantasyFontFamily, IDS_FANTASY_FONT_FAMILY}, {prefs::kWebKitMathFontFamily, IDS_MATH_FONT_FAMILY}, #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \ -- BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS) -+ BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_CROMITE) +- BUILDFLAG(IS_LINUX) || BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS) ++ BUILDFLAG(IS_LINUX) || BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_CROMITE) {prefs::kWebKitStandardFontFamilyJapanese, IDS_STANDARD_FONT_FAMILY_JAPANESE}, {prefs::kWebKitFixedFontFamilyJapanese, IDS_FIXED_FONT_FAMILY_JAPANESE}, -@@ -290,7 +290,7 @@ void OverrideFontFamily(blink::web_pref::WebPreferences* prefs, +@@ -296,7 +296,7 @@ void OverrideFontFamily(blink::web_pref::WebPreferences* prefs, (*map)[script] = base::UTF8ToUTF16(pref_value); } @@ -2464,7 +2321,7 @@ diff --git a/chrome/browser/ui/prefs/prefs_tab_helper.cc b/chrome/browser/ui/pre void RegisterLocalizedFontPref(user_prefs::PrefRegistrySyncable* registry, const char* path, int default_message_id) { -@@ -451,7 +451,7 @@ void PrefsTabHelper::RegisterProfilePrefs( +@@ -456,7 +456,7 @@ void PrefsTabHelper::RegisterProfilePrefs( } // Register font prefs. This is only configurable on desktop Chrome. @@ -2476,7 +2333,7 @@ diff --git a/chrome/browser/ui/prefs/prefs_tab_helper.cc b/chrome/browser/ui/pre 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 @@ +@@ -185,7 +185,7 @@ // BUILDFLAG(IS_ANDROID) #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ @@ -2485,7 +2342,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) -@@ -422,7 +422,7 @@ void RegisterChromeWebUIConfigs() { +@@ -428,7 +428,7 @@ void RegisterChromeWebUIConfigs() { // BUILDFLAG(IS_ANDROID) #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ @@ -2497,7 +2354,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/u diff --git a/chrome/browser/ui/webui/current_channel_logo.cc b/chrome/browser/ui/webui/current_channel_logo.cc --- a/chrome/browser/ui/webui/current_channel_logo.cc +++ b/chrome/browser/ui/webui/current_channel_logo.cc -@@ -28,8 +28,7 @@ int CurrentChannelLogoResourceId() { +@@ -29,8 +29,7 @@ int CurrentChannelLogoResourceId() { case version_info::Channel::DEV: case version_info::Channel::BETA: case version_info::Channel::STABLE: @@ -2549,7 +2406,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 -@@ -516,7 +516,7 @@ template("chrome_extra_paks") { +@@ -526,7 +526,7 @@ template("chrome_extra_paks") { deps += [ "//chrome/browser/resources/app_settings:resources" ] } @@ -2561,7 +2418,7 @@ diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni diff --git a/chrome/common/chrome_switches.cc b/chrome/common/chrome_switches.cc --- a/chrome/common/chrome_switches.cc +++ b/chrome/common/chrome_switches.cc -@@ -809,7 +809,7 @@ const char kMarketUrlForTesting[] = "market-url-for-testing"; +@@ -805,7 +805,7 @@ const char kMarketUrlForTesting[] = "market-url-for-testing"; const char kRequestDesktopSites[] = "request-desktop-sites"; #endif // BUILDFLAG(IS_ANDROID) @@ -2573,7 +2430,7 @@ diff --git a/chrome/common/chrome_switches.cc b/chrome/common/chrome_switches.cc diff --git a/chrome/common/chrome_switches.h b/chrome/common/chrome_switches.h --- a/chrome/common/chrome_switches.h +++ b/chrome/common/chrome_switches.h -@@ -240,7 +240,7 @@ extern const char kMarketUrlForTesting[]; +@@ -239,7 +239,7 @@ extern const char kMarketUrlForTesting[]; extern const char kRequestDesktopSites[]; #endif // BUILDFLAG(IS_ANDROID) @@ -2585,7 +2442,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 -@@ -73,6 +73,13 @@ uncompiled_sources_ = [ +@@ -74,6 +74,13 @@ uncompiled_sources_ = [ "top_sites.json", ] @@ -2602,8 +2459,8 @@ diff --git a/chrome/common/extensions/api/api_sources.gni b/chrome/common/extens diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_constants.cc --- a/chrome/common/webui_url_constants.cc +++ b/chrome/common/webui_url_constants.cc -@@ -208,7 +208,7 @@ base::span ChromeURLHosts() { - kChromeUIInternetDetailDialogHost, +@@ -254,7 +254,7 @@ base::span ChromeURLHosts() { + ash::kChromeUIInternetDetailDialogHost, #endif #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ - BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_DESKTOP_ANDROID) @@ -2614,7 +2471,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/"; +@@ -430,7 +430,7 @@ bool IsSystemWebUIHost(std::string_view host); #endif // BUILDFLAG(IS_CHROMEOS) #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ @@ -2657,7 +2514,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 -@@ -371,7 +371,7 @@ static_library("test_support") { +@@ -391,7 +391,7 @@ static_library("test_support") { ] } @@ -2666,16 +2523,16 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn public_deps += [ "//extensions/browser:test_support", "//extensions/common:test_support", -@@ -483,7 +483,7 @@ static_library("test_support") { +@@ -503,7 +503,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. - if (enable_desktop_android_extensions) { + if (enable_desktop_android_extensions_cromite) { - deps += [ "//chrome/renderer/extensions" ] - - public_deps += [ -@@ -1563,7 +1563,7 @@ source_set("platform_browser_tests") { + sources += [ + "../browser/extensions/test_extension_menu_model_android.cc", + "../browser/extensions/test_extension_menu_model_android.h", +@@ -1599,7 +1599,7 @@ source_set("platform_browser_tests") { sources += [ "../browser/enterprise/remote_commands/user_remote_commands_service_browsertest.cc" ] } @@ -2684,7 +2541,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn deps += [ "//chrome/browser/ui/prefs:browser_tests" ] } -@@ -1854,7 +1854,7 @@ source_set("platform_browser_tests") { +@@ -1906,7 +1906,7 @@ source_set("platform_browser_tests") { if (enable_guest_view) { deps += [ "//components/guest_view/browser" ] } @@ -2693,7 +2550,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn sources += [ "../browser/devtools/global_confirm_info_bar_browsertest.cc" ] } -@@ -2153,7 +2153,7 @@ if (is_android) { +@@ -2204,7 +2204,7 @@ if (is_android) { extra_args = [] # TODO(crbug.com/473636857): Include once all Android builds correctly use BrowserWindowInterface. @@ -2702,7 +2559,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn sources += [ "../browser/ui/android/browser_navigator_android_browsertest.cc" ] deps += [ -@@ -2249,7 +2249,7 @@ if (is_android) { +@@ -2301,7 +2301,7 @@ if (is_android) { ] } @@ -2711,7 +2568,7 @@ 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. -@@ -6333,7 +6333,7 @@ template("performance_test_suite_template_base") { +@@ -6436,7 +6436,7 @@ template("performance_test_suite_template_base") { } args += [ "--chromium-output-directory=@WrappedPath(.)" ] @@ -2720,7 +2577,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn data = [ "//third_party/crossbench-web-tests" ] } -@@ -8187,7 +8187,7 @@ test("unit_tests") { +@@ -8259,7 +8259,7 @@ test("unit_tests") { deps += [ "//chrome/browser/android/extensions:android" ] } @@ -2729,7 +2586,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn deps += [ # Unit test targets for //chrome/browser/ui/browser_window/internal. # -@@ -10039,7 +10039,7 @@ test("unit_tests") { +@@ -10125,7 +10125,7 @@ test("unit_tests") { ] } @@ -2778,7 +2635,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map. diff --git a/components/embedder_support/android/java/src/org/chromium/components/embedder_support/view/ContentView.java b/components/embedder_support/android/java/src/org/chromium/components/embedder_support/view/ContentView.java --- a/components/embedder_support/android/java/src/org/chromium/components/embedder_support/view/ContentView.java +++ b/components/embedder_support/android/java/src/org/chromium/components/embedder_support/view/ContentView.java -@@ -449,7 +449,7 @@ public class ContentView extends FrameLayout +@@ -459,7 +459,7 @@ public class ContentView extends FrameLayout } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE && Build.VERSION.SDK_INT <= 38 @@ -2956,16 +2813,16 @@ diff --git a/components/policy/core/browser/cloud/user_policy_signin_service_bas diff --git a/components/policy/core/browser/configuration_policy_handler_list.cc b/components/policy/core/browser/configuration_policy_handler_list.cc --- a/components/policy/core/browser/configuration_policy_handler_list.cc +++ b/components/policy/core/browser/configuration_policy_handler_list.cc -@@ -101,7 +101,7 @@ void ConfigurationPolicyHandlerList::PrepareForDisplaying( - - bool ConfigurationPolicyHandlerList::IsBlockedDesktopAndroidPolicy( - const std::string& policy_name) const { +@@ -104,7 +104,7 @@ bool ConfigurationPolicyHandlerList::IsBlockedDesktopAndroidPolicy( + // TODO(b/478012386): We shouldn't use IS_DESKTOP_ANDROID long-term. The feature + // flag needs to be removed as soon as we feel comfortable about all exist + // Android -#if BUILDFLAG(IS_DESKTOP_ANDROID) +#if BUILDFLAG(IS_DESKTOP_ANDROID_FALSE) - // The allowlist is not used if kDesktopAndroidPolicy is off. So that all - // policies are allowed by default without Finch config. - if (!base::FeatureList::IsEnabled(features::kDesktopAndroidPolicy)) { -@@ -173,7 +173,7 @@ bool ConfigurationPolicyHandlerList::IsBlockedFuturePolicy( + if (!base::FeatureList::IsEnabled(features::kDesktopAndroidPolicy)) { + return false; + } +@@ -174,7 +174,7 @@ bool ConfigurationPolicyHandlerList::IsBlockedFuturePolicy( const base::flat_set& future_policies_allowed, const PolicyDetails& policy_details, PolicyMap::const_reference entry) const { @@ -3076,7 +2933,7 @@ diff --git a/components/webui/version/resources/about_version.html b/components/ 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 -@@ -347,6 +347,11 @@ void SelectionPopupController::OnSelectAroundCaretAck( +@@ -353,6 +353,11 @@ void SelectionPopupController::OnSelectAroundCaretAck( result->word_start_adjust, result->word_end_adjust); } @@ -3102,7 +2959,7 @@ diff --git a/content/browser/android/selection/selection_popup_controller.h b/co diff --git a/content/browser/browser_main_loop.cc b/content/browser/browser_main_loop.cc --- a/content/browser/browser_main_loop.cc +++ b/content/browser/browser_main_loop.cc -@@ -849,7 +849,7 @@ int BrowserMainLoop::PreCreateThreads() { +@@ -838,7 +838,7 @@ int BrowserMainLoop::PreCreateThreads() { base::UmaHistogramBoolean("SiteIsolation.IsSitePerProcessOrStricter", SiteIsolationPolicy::IsSitePerProcessOrStricter()); @@ -3111,57 +2968,6 @@ diff --git a/content/browser/browser_main_loop.cc b/content/browser/browser_main base::UmaHistogramBoolean( "SiteIsolation.IsSitePerProcessOrStricter.AndroidDesktop", SiteIsolationPolicy::IsSitePerProcessOrStricter()); -diff --git a/content/browser/renderer_host/media/video_capture_manager.cc b/content/browser/renderer_host/media/video_capture_manager.cc ---- a/content/browser/renderer_host/media/video_capture_manager.cc -+++ b/content/browser/renderer_host/media/video_capture_manager.cc -@@ -120,7 +120,7 @@ void VideoCaptureManager::RegisterListener( - DCHECK_CURRENTLY_ON(BrowserThread::IO); - DCHECK(listener); - listeners_.AddObserver(listener); --#if BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_DESKTOP_ANDROID) -+#if BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_DESKTOP_ANDROID_FALSE) - application_state_has_running_activities_ = true; - app_status_listener_ = - base::android::ApplicationStatusListener::New(base::BindRepeating( -@@ -952,7 +952,7 @@ VideoCaptureManager::GetOrCreateController( - return new_controller; - } - --#if BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_DESKTOP_ANDROID) -+#if BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_DESKTOP_ANDROID_FALSE) - void VideoCaptureManager::OnApplicationStateChange( - base::android::ApplicationState state) { - DCHECK_CURRENTLY_ON(BrowserThread::IO); -diff --git a/content/browser/renderer_host/media/video_capture_manager.h b/content/browser/renderer_host/media/video_capture_manager.h ---- a/content/browser/renderer_host/media/video_capture_manager.h -+++ b/content/browser/renderer_host/media/video_capture_manager.h -@@ -36,7 +36,7 @@ - #include "media/capture/video_capture_types.h" - #include "ui/gfx/native_ui_types.h" - --#if BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_DESKTOP_ANDROID) -+#if BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_DESKTOP_ANDROID_FALSE) - #include "base/android/application_status_listener.h" - #endif - -@@ -211,7 +211,7 @@ class CONTENT_EXPORT VideoCaptureManager - void TakePhoto(const base::UnguessableToken& session_id, - VideoCaptureDevice::TakePhotoCallback callback); - --#if BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_DESKTOP_ANDROID) -+#if BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_DESKTOP_ANDROID_FALSE) - // 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. -@@ -327,7 +327,7 @@ class CONTENT_EXPORT VideoCaptureManager - void ReleaseDevices(); - void ResumeDevices(); - --#if BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_DESKTOP_ANDROID) -+#if BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_DESKTOP_ANDROID_FALSE) - std::unique_ptr - app_status_listener_; - bool application_state_has_running_activities_; diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/content/browser/renderer_host/render_widget_host_view_android.cc --- a/content/browser/renderer_host/render_widget_host_view_android.cc +++ b/content/browser/renderer_host/render_widget_host_view_android.cc @@ -3177,7 +2983,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/ diff --git a/content/public/android/java/src/org/chromium/content/browser/ContentUiEventHandler.java b/content/public/android/java/src/org/chromium/content/browser/ContentUiEventHandler.java --- a/content/public/android/java/src/org/chromium/content/browser/ContentUiEventHandler.java +++ b/content/public/android/java/src/org/chromium/content/browser/ContentUiEventHandler.java -@@ -123,9 +123,10 @@ public class ContentUiEventHandler implements UserData { +@@ -124,9 +124,10 @@ public class ContentUiEventHandler implements UserData { event, MotionEventUtils.getEventTimeNanos(event), EventForwarder.getMouseEventActionButton(event), @@ -3194,7 +3000,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/Conten 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 -@@ -762,6 +762,9 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper +@@ -763,6 +763,9 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper */ @Override public void finishActionMode() { @@ -3204,7 +3010,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select mHidden = false; mHandler.removeCallbacks(mRepeatingHideRunnable); -@@ -1976,6 +1979,8 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper +@@ -1982,6 +1985,8 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper void setTextHandlesTemporarilyHidden(long nativeSelectionPopupController, boolean hidden); @@ -3216,7 +3022,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select 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 -@@ -588,7 +588,7 @@ BASE_FEATURE(kLoadingPredictorLimitPreconnectSocketCount, +@@ -607,7 +607,7 @@ BASE_FEATURE(kLoadingPredictorLimitPreconnectSocketCount, base::FEATURE_DISABLED_BY_DEFAULT); BASE_FEATURE(kLogJsConsoleMessages, @@ -3291,7 +3097,7 @@ diff --git a/extensions/browser/BUILD.gn b/extensions/browser/BUILD.gn import("//build/config/android/rules.gni") } -@@ -1186,7 +1186,7 @@ source_set("unit_tests") { +@@ -1211,7 +1211,7 @@ source_set("unit_tests") { configs += [ "//build/config/compiler:no_exit_time_destructors" ] } @@ -3303,15 +3109,15 @@ diff --git a/extensions/browser/BUILD.gn b/extensions/browser/BUILD.gn diff --git a/extensions/browser/api/api_browser_context_keyed_service_factories.cc b/extensions/browser/api/api_browser_context_keyed_service_factories.cc --- a/extensions/browser/api/api_browser_context_keyed_service_factories.cc +++ b/extensions/browser/api/api_browser_context_keyed_service_factories.cc -@@ -69,7 +69,7 @@ +@@ -70,7 +70,7 @@ namespace extensions { -void EnsureApiBrowserContextKeyedServiceFactoriesBuilt() { +void EnsureApiBrowserContextKeyedServiceFactoriesBuilt() { // AlarmManager::GetFactoryInstance(); + ContentSettingsService::GetFactoryInstance(); declarative_net_request::RulesMonitorService::GetFactoryInstance(); - IdleManagerFactory::GetInstance(); diff --git a/extensions/browser/api/system_cpu/BUILD.gn b/extensions/browser/api/system_cpu/BUILD.gn --- a/extensions/browser/api/system_cpu/BUILD.gn +++ b/extensions/browser/api/system_cpu/BUILD.gn @@ -3445,7 +3251,7 @@ diff --git a/extensions/common/api/schema.gni b/extensions/common/api/schema.gni +if (enable_desktop_android_extensions_cromite) { extensions_types_only_schema_files_ += [ "clipboard.webidl", - "scripts_internal.idl", + "scripts_internal.webidl", diff --git a/extensions/common/command.cc b/extensions/common/command.cc --- a/extensions/common/command.cc +++ b/extensions/common/command.cc @@ -3461,7 +3267,7 @@ diff --git a/extensions/common/command.cc b/extensions/common/command.cc 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 -@@ -60,7 +60,7 @@ BASE_FEATURE(kSkipResetServiceWorkerURLLoaderFactories, +@@ -57,7 +57,7 @@ BASE_FEATURE(kCheckingNoExtensionIdInExtensionIpcs, BASE_FEATURE(kEnableWebHidInWebView, base::FEATURE_ENABLED_BY_DEFAULT); @@ -3470,7 +3276,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, -@@ -177,7 +177,7 @@ BASE_FEATURE(kDisableExtensionsOnChromeUrlsSwitch, +@@ -174,7 +174,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) && \ @@ -3493,7 +3299,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 -@@ -103,7 +103,7 @@ BASE_DECLARE_FEATURE(kSkipResetServiceWorkerURLLoaderFactories); +@@ -97,7 +97,7 @@ BASE_DECLARE_FEATURE(kCheckingNoExtensionIdInExtensionIpcs); // embedding Chrome App to request access to Human Interface Devices. BASE_DECLARE_FEATURE(kEnableWebHidInWebView); @@ -3502,7 +3308,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); -@@ -343,6 +343,10 @@ BASE_DECLARE_FEATURE(kEnableExtensionAutoupdate); +@@ -333,6 +333,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); @@ -3567,7 +3373,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 -@@ -148,7 +148,7 @@ std::string GetPlatformString() { +@@ -148,7 +148,7 @@ std::string_view GetPlatformString() { return "mac"; #elif BUILDFLAG(IS_WIN) return "win"; @@ -3579,7 +3385,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 -@@ -607,7 +607,7 @@ bool IsSkiaGraphiteSupportedByDevice(const base::CommandLine* command_line) { +@@ -614,7 +614,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. @@ -3588,7 +3394,7 @@ diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc return false; } -@@ -720,7 +720,7 @@ bool ShouldEnableDrDc() { +@@ -727,7 +727,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. @@ -3620,13 +3426,13 @@ diff --git a/skia/features.gni b/skia/features.gni (is_android && target_cpu != "x86" && target_cpu != "x64") || - (is_ios && use_blink) || (is_linux && !is_castos) || is_desktop_android + (is_ios && use_blink) || (is_linux && !is_castos) || is_desktop_android_false + } - # Enable experimental Skia Graphite Metal backend. Intended only for debugging - # on non-official developer builds on Mac and iOS Blink. + # Skia only needs to support GPU rasterization if we use the full Chromium 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 -@@ -2365,7 +2365,7 @@ BASE_FEATURE(kStopInBackground, +@@ -2424,7 +2424,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) && \ @@ -3647,7 +3453,7 @@ diff --git a/third_party/blink/renderer/modules/modules_initializer.cc b/third_p class SuspendCaptureObserver : public GarbageCollected, public Supplement, -@@ -374,7 +374,7 @@ void ModulesInitializer::ProvideModulesToPage( +@@ -376,7 +376,7 @@ void ModulesInitializer::ProvideModulesToPage( const SessionStorageNamespaceId& namespace_id) const { StorageNamespace::ProvideSessionStorageNamespaceTo(page, namespace_id); AudioGraphTracer::ProvideAudioGraphTracerTo(page); @@ -3761,7 +3567,7 @@ diff --git a/ui/base/accelerators/command.cc b/ui/base/accelerators/command.cc diff --git a/ui/base/device_form_factor_android.cc b/ui/base/device_form_factor_android.cc --- a/ui/base/device_form_factor_android.cc +++ b/ui/base/device_form_factor_android.cc -@@ -26,7 +26,7 @@ DeviceFormFactor GetDeviceFormFactor() { +@@ -28,7 +28,7 @@ DeviceFormFactor GetDeviceFormFactor() { return DEVICE_FORM_FACTOR_AUTOMOTIVE; } @@ -3818,15 +3624,15 @@ 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 -@@ -49,7 +49,7 @@ build_webui("build") { - "cr_tabs/cr_tabs.css", - ] +@@ -87,7 +87,7 @@ build_webui("build") { + ] + } - if ((!is_ios) || is_desktop_android) { + if ((!is_ios) || is_desktop_android_cromite) { - web_component_files += [ "cr_a11y_announcer/cr_a11y_announcer.ts" ] - + static_files = [ "cr_a11y_announcer/cr_a11y_announcer.css" ] ts_files += [ + "cr_radio_button/cr_radio_button_mixin_lit.ts", diff --git a/ui/webui/resources/cr_elements/cr_toolbar/cr_toolbar.css b/ui/webui/resources/cr_elements/cr_toolbar/cr_toolbar.css --- a/ui/webui/resources/cr_elements/cr_toolbar/cr_toolbar.css +++ b/ui/webui/resources/cr_elements/cr_toolbar/cr_toolbar.css diff --git a/build/patches/Move-navigation-bar-to-bottom.patch b/build/patches/Move-navigation-bar-to-bottom.patch index 46ee8965..53a4516e 100644 --- a/build/patches/Move-navigation-bar-to-bottom.patch +++ b/build/patches/Move-navigation-bar-to-bottom.patch @@ -39,7 +39,6 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../overlays/strip/ScrollDelegate.java | 2 +- .../strip/StripLayoutHelperManager.java | 39 ++++- .../scene_layer/StaticTabSceneLayer.java | 7 +- - .../scene_layer/TabListSceneLayer.java | 8 + .../scene_layer/TabStripSceneLayer.java | 20 ++- .../browser/findinpage/FindToolbarTablet.java | 10 +- .../fullscreen/BrowserControlsManager.java | 12 ++ @@ -77,7 +76,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../ui/edge_to_edge/EdgeToEdgeUtils.java | 2 + ...rredIMEWindowInsetApplicationCallback.java | 7 + .../omnibox/LocationBarCoordinator.java | 1 + - ...mniboxSuggestionsDropdownEmbedderImpl.java | 32 ++++ + ...mniboxSuggestionsDropdownEmbedderImpl.java | 31 ++++ .../suggestions/AutocompleteCoordinator.java | 16 ++ .../suggestions/AutocompleteMediator.java | 6 +- .../OmniboxSuggestionsDropdown.java | 5 + @@ -104,16 +103,16 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../render_widget_host_view_android.cc | 3 + .../Move-navigation-bar-to-bottom.inc | 17 ++ .../renderer/core/frame/viewport_data.cc | 1 + - 91 files changed, 1065 insertions(+), 89 deletions(-) + 90 files changed, 1056 insertions(+), 89 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 diff --git a/cc/base/features.cc b/cc/base/features.cc --- a/cc/base/features.cc +++ b/cc/base/features.cc -@@ -32,6 +32,14 @@ BASE_FEATURE(kSynchronizedScrolling, - base::FEATURE_ENABLED_BY_DEFAULT); - #endif +@@ -27,6 +27,14 @@ BASE_FEATURE(kComputeRasterTranslateForExternalScale, + // submitting a frame. + BASE_FEATURE(kSynchronizedScrolling, base::FEATURE_DISABLED_BY_DEFAULT); +BASE_FEATURE(kMoveTopToolbarToBottom, + "MoveTopToolbarToBottom", @@ -141,7 +140,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 -@@ -25,6 +25,7 @@ +@@ -26,6 +26,7 @@ #include "ui/gfx/animation/tween.h" #include "ui/gfx/geometry/transform.h" #include "ui/gfx/geometry/vector2d_f.h" @@ -149,7 +148,7 @@ diff --git a/cc/input/browser_controls_offset_manager.cc b/cc/input/browser_cont namespace cc { namespace { -@@ -623,6 +624,11 @@ gfx::Vector2dF BrowserControlsOffsetManager::ScrollBy( +@@ -676,6 +677,11 @@ gfx::Vector2dF BrowserControlsOffsetManager::ScrollByPrecise( // 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 +163,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 -@@ -5588,6 +5588,9 @@ bool LayerTreeHostImpl::AnimateBrowserControls(base::TimeTicks time) { +@@ -5408,6 +5408,9 @@ bool LayerTreeHostImpl::AnimateBrowserControls(base::TimeTicks time) { return false; } @@ -300,7 +299,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser } @Override -@@ -361,6 +396,8 @@ public class TabGroupUiMediator implements BackPressHandler { +@@ -363,6 +398,8 @@ public class TabGroupUiMediator implements BackPressHandler { mModel.set(TabGroupUiProperties.WIDTH_PX_CALLBACK, mWidthPxSupplier::set); resetTabStrip(); @@ -309,7 +308,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser mHandleBackPressChangedSupplier = handleBackPressChangedSupplier; if (mTabGridDialogControllerSupplier != null) { mTabGridDialogControllerSupplier.onAvailable( -@@ -394,6 +431,18 @@ public class TabGroupUiMediator implements BackPressHandler { +@@ -396,6 +433,18 @@ public class TabGroupUiMediator implements BackPressHandler { mModel.set(TINT, mThemeColorProvider.getTint()); } @@ -328,7 +327,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser private void setupToolbarButtons() { View.OnClickListener showGroupDialogOnClickListener = view -> { -@@ -580,6 +629,7 @@ public class TabGroupUiMediator implements BackPressHandler { +@@ -582,6 +631,7 @@ public class TabGroupUiMediator implements BackPressHandler { @SuppressWarnings("NullAway") public void destroy() { @@ -635,7 +634,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 -@@ -13,7 +13,9 @@ import android.view.View; +@@ -14,7 +14,9 @@ import android.view.View.OnLayoutChangeListener; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; @@ -645,7 +644,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser import androidx.annotation.DrawableRes; import androidx.annotation.Px; import androidx.annotation.StringRes; -@@ -27,6 +29,7 @@ import org.chromium.chrome.browser.flags.ChromeFeatureList; +@@ -28,6 +30,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; @@ -653,7 +652,7 @@ 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 -@@ -51,12 +54,14 @@ class TabListEmptyCoordinator { +@@ -60,12 +63,14 @@ class TabListEmptyCoordinator { private boolean mIsTabSwitcherShowing; private boolean mIsListObserverAttached; private @Nullable TabListEmptyIllustrationAnimationManager mIllustrationAnimationManager; @@ -669,7 +668,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser mRecyclerView = recyclerView; mRootView = rootView; mContext = rootView.getContext(); -@@ -64,6 +69,7 @@ class TabListEmptyCoordinator { +@@ -73,6 +78,7 @@ class TabListEmptyCoordinator { // Observe TabListModel to determine when to add / remove empty state view. mModel = model; @@ -677,7 +676,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser mListObserver = new ListObserver<>() { @Override -@@ -214,6 +220,15 @@ class TabListEmptyCoordinator { +@@ -218,6 +224,15 @@ class TabListEmptyCoordinator { public void attachEmptyView() { if (mEmptyView != null && mEmptyView.getParent() == null) { mRootView.addView(mEmptyView); @@ -737,7 +736,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; -@@ -750,6 +751,9 @@ public class FeedSurfaceCoordinator +@@ -754,6 +755,9 @@ public class FeedSurfaceCoordinator ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); layoutParams.setMarginStart(margin); layoutParams.setMarginEnd(margin); @@ -774,12 +773,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 -@@ -1101,7 +1101,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt - mRootUiCoordinator.getBottomSheetController(), - mRootUiCoordinator.getShareDelegateSupplier(), - mXrSceneCoreSessionManagerSupplier.get(), -- mBackPressManager); -+ mBackPressManager, +@@ -1114,7 +1114,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt + mBackPressManager, + getSnackbarManager(), + /* glicClickHandler= */ () -> +- ((TabbedRootUiCoordinator) mRootUiCoordinator).toggleGlic()); ++ ((TabbedRootUiCoordinator) mRootUiCoordinator).toggleGlic(), + /*browserControlsManagerSupplier*/ () -> getBrowserControlsManager()); mLayoutStateProviderSupplier.set(mLayoutManager); } @@ -896,18 +895,18 @@ 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 -@@ -272,6 +272,10 @@ public class CompositorViewHolder extends FrameLayout +@@ -286,6 +286,10 @@ public class CompositorViewHolder extends FrameLayout @Override - public void setCurrentTouchEventOffsets(float top) { + public void setCurrentTouchEventOffsets(float left, float top) { EventForwarder forwarder = getEventForwarder(); + if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + // no need to adjust the touch offsets, since the content view is never moved + top = 0; + } - if (forwarder != null) forwarder.setCurrentTouchOffsetY(top); - } - -@@ -993,6 +997,9 @@ public class CompositorViewHolder extends FrameLayout + if (forwarder != null) { + forwarder.setCurrentTouchOffsetX(left); + forwarder.setCurrentTouchOffsetY(top); +@@ -1037,6 +1041,9 @@ public class CompositorViewHolder extends FrameLayout mApplicationBottomInsetSupplier != null ? mApplicationBottomInsetSupplier.getInsets().webContentsHeightInset : 0; @@ -915,7 +914,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/Comp + keyboardInset = 0; + } - int viewportInsets = controlsInsets + keyboardInset; + int verticalViewportInsets = controlsInsets + keyboardInset; diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome.java @@ -965,7 +964,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 -@@ -43,6 +43,7 @@ import org.chromium.ui.base.WindowAndroid; +@@ -44,6 +44,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; @@ -973,22 +972,22 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo import java.util.function.Supplier; -@@ -115,7 +116,8 @@ public class LayoutManagerChromeTablet extends LayoutManagerChrome { - BottomSheetController bottomSheetController, - Supplier shareDelegateSupplier, +@@ -122,7 +123,8 @@ public class LayoutManagerChromeTablet extends LayoutManagerChrome { @Nullable XrSceneCoreSessionManager xrSceneCoreSessionManager, -- BackPressManager backPressManager) { -+ BackPressManager backPressManager, + BackPressManager backPressManager, + SnackbarManager snackbarManager, +- Runnable glicClickHandler) { ++ Runnable glicClickHandler, + Supplier browserControlsManagerSupplier) { super( host, contentContainer, -@@ -154,7 +156,8 @@ public class LayoutManagerChromeTablet extends LayoutManagerChrome { - bottomSheetController, - shareDelegateSupplier, +@@ -163,7 +165,8 @@ public class LayoutManagerChromeTablet extends LayoutManagerChrome { xrSpaceModeObservableSupplier, -- backPressManager); -+ backPressManager, + backPressManager, + snackbarManager, +- glicClickHandler); ++ glicClickHandler, + browserControlsManagerSupplier); addSceneOverlay(mTabStripLayoutHelperManager); addObserver(mTabStripLayoutHelperManager.getTabSwitcherObserver()); @@ -1046,7 +1045,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 -@@ -120,6 +120,8 @@ import org.chromium.ui.interpolators.Interpolators; +@@ -127,6 +127,8 @@ import org.chromium.ui.interpolators.Interpolators; import org.chromium.ui.resources.ResourceManager; import org.chromium.ui.util.ColorUtils; import org.chromium.url.GURL; @@ -1055,7 +1054,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over import java.util.ArrayList; import java.util.List; -@@ -293,12 +295,17 @@ public class StripLayoutHelperManager +@@ -309,12 +311,17 @@ public class StripLayoutHelperManager // Drag-Drop private @Nullable TabStripDragHandler mTabStripDragHandler; @@ -1073,7 +1072,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over if (mGlicButton != null && mGlicButton.onDown(x, y, buttons)) { return; } -@@ -330,6 +337,7 @@ public class StripLayoutHelperManager +@@ -346,6 +353,7 @@ public class StripLayoutHelperManager if (DragDropGlobalState.hasValue()) { return; } @@ -1081,7 +1080,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over if (mGlicButton != null) { mGlicButton.drag(x, y); } -@@ -344,6 +352,7 @@ public class StripLayoutHelperManager +@@ -360,6 +368,7 @@ public class StripLayoutHelperManager if (DragDropGlobalState.hasValue()) { return; } @@ -1089,7 +1088,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over long time = time(); if (mGlicButton != null && mGlicButton.click(x, y, buttons)) { mGlicButton.handleClick(time, buttons, modifiers); -@@ -361,6 +370,7 @@ public class StripLayoutHelperManager +@@ -377,6 +386,7 @@ public class StripLayoutHelperManager if (DragDropGlobalState.hasValue()) { return; } @@ -1097,34 +1096,34 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over getActiveStripLayoutHelper().fling(time(), velocityX); } -@@ -369,6 +379,7 @@ public class StripLayoutHelperManager +@@ -415,6 +425,7 @@ public class StripLayoutHelperManager if (DragDropGlobalState.hasValue()) { return; } + y -= mStripFilterArea.top; - getActiveStripLayoutHelper().onLongPress(x, y); + getActiveStripLayoutHelper().onHoverMove(x, y); } -@@ -509,7 +520,8 @@ public class StripLayoutHelperManager - BottomSheetController bottomSheetController, - Supplier shareDelegateSupplier, +@@ -537,7 +548,8 @@ public class StripLayoutHelperManager @Nullable NonNullObservableSupplier xrSpaceModeObservableSupplier, -- BackPressManager backPressManager) { -+ BackPressManager backPressManager, + BackPressManager backPressManager, + SnackbarManager snackbarManager, +- Runnable glicClickHandler) { ++ Runnable glicClickHandler, + Supplier browserControlsManagerSupplier) { mContext = context; Resources res = context.getResources(); mManagerHost = managerHost; -@@ -663,6 +675,8 @@ public class StripLayoutHelperManager - multiInstanceManager, +@@ -695,6 +707,8 @@ public class StripLayoutHelperManager shareDelegateSupplier, - TabGroupListBottomSheetCoordinator::new); + TabGroupListBottomSheetCoordinator::new, + snackbarManager); + mBrowserControlsManagerSupplier = browserControlsManagerSupplier; + mDpToPx = context.getResources().getDisplayMetrics().density; tabHoverCardViewStub.setOnInflateListener( (viewStub, view) -> { -@@ -940,6 +954,7 @@ public class StripLayoutHelperManager +@@ -1042,6 +1056,7 @@ public class StripLayoutHelperManager RectF viewport, RectF visibleViewport, ResourceManager resourceManager) { assert mTabStripTreeProvider != null; mResourceManager = resourceManager; @@ -1132,7 +1131,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. -@@ -983,6 +998,10 @@ public class StripLayoutHelperManager +@@ -1085,6 +1100,10 @@ public class StripLayoutHelperManager getStripTransitionScrimColor(), mStripTransitionScrimOpacity); } @@ -1143,7 +1142,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over mTabStripTreeProvider.pushAndUpdateStrip( this, assertNonNull(mLayerTitleCacheSupplier.get()), -@@ -996,7 +1015,9 @@ public class StripLayoutHelperManager +@@ -1098,7 +1117,9 @@ public class StripLayoutHelperManager mStripTransitionScrimOpacity, getActiveStripLayoutHelper().getLeftPaddingToDraw(), getActiveStripLayoutHelper().getRightPaddingToDraw(), @@ -1154,7 +1153,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over } private float getVisibleHeightDp(float topControlOffsetDp) { -@@ -1121,11 +1142,21 @@ public class StripLayoutHelperManager +@@ -1199,11 +1220,21 @@ public class StripLayoutHelperManager mRightPadding, mTopPadding); @@ -1190,9 +1189,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scen /** A SceneLayer to render a static tab. */ @NullMarked @JNINamespace("android") -@@ -53,7 +55,10 @@ public class StaticTabSceneLayer extends SceneLayer { +@@ -55,7 +57,10 @@ public class StaticTabSceneLayer extends SceneLayer { float y = - model.get(LayoutTab.CONTENT_OFFSET) + model.get(LayoutTab.CONTENT_OFFSET_Y) + model.get(LayoutTab.RENDER_Y) * LayoutTab.sDpToPx; - + if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { @@ -1202,31 +1201,6 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scen // Check isActiveLayout to prevent pushing a TAB_ID for a static layer that may already be // invalidated by the next layout. StaticTabSceneLayerJni.get() -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabListSceneLayer.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabListSceneLayer.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabListSceneLayer.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabListSceneLayer.java -@@ -27,6 +27,8 @@ import org.chromium.components.browser_ui.styles.SemanticColorUtils; - import org.chromium.ui.resources.ResourceManager; - import org.chromium.ui.util.ColorUtils; - -+import org.chromium.chrome.browser.flags.ChromeFeatureList; -+ - /** - * A SceneLayer to render a tab stack. - * TODO(changwan): change layouts to share one instance of this. -@@ -91,6 +93,12 @@ public class TabListSceneLayer extends SceneLayer { - - TabListSceneLayerJni.get().beginBuildingFrame(mNativePtr); - -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { -+ // the tabs list content window is fixed at the top, where the top toolbar used to be -+ viewport.top = 0; -+ backgroundTopOffset = 0; -+ } -+ - // TODO(crbug.com/40126259): Use Supplier to get viewport and forward it to native, then - // updateLayer can become obsolete. - TabListSceneLayerJni.get() diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java @@ -1383,7 +1357,7 @@ 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 -@@ -135,6 +135,7 @@ import org.chromium.ui.base.DeviceFormFactor; +@@ -132,6 +132,7 @@ import org.chromium.ui.base.DeviceFormFactor; import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.modaldialog.ModalDialogManager; import org.chromium.url.GURL; @@ -1391,7 +1365,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. import androidx.annotation.NonNull; import org.chromium.chrome.browser.bookmarks.BookmarkManagerOpener; -@@ -929,11 +930,16 @@ public class NewTabPage +@@ -847,11 +848,16 @@ public class NewTabPage final int topControlsDistanceToRest = mBrowserControlsStateProvider.getContentOffset() - mBrowserControlsStateProvider.getTopControlsHeight(); @@ -1410,7 +1384,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. if (topMargin != layoutParams.topMargin || bottomMargin != layoutParams.bottomMargin) { layoutParams.topMargin = topMargin; -@@ -949,9 +955,7 @@ public class NewTabPage +@@ -867,9 +873,7 @@ public class NewTabPage * strip. */ private int getToolbarExtraYOffset() { @@ -1434,7 +1408,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; -@@ -223,7 +226,12 @@ public class NewTabPageLayout extends LinearLayout +@@ -215,7 +218,12 @@ public class NewTabPageLayout extends LinearLayout { Log.i(TAG, "NewTabPageLayout.onFinishInflate before insertSiteSectionView"); initializeSiteSectionView(); @@ -1535,7 +1509,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/page_info/Chrom import org.chromium.chrome.browser.fullscreen.BrowserControlsManagerSupplier; import org.chromium.chrome.browser.merchant_viewer.PageInfoStoreInfoController.StoreInfoActionHandler; import org.chromium.chrome.browser.offlinepages.OfflinePageUtils; -@@ -90,6 +91,7 @@ public class ChromePageInfo { +@@ -91,6 +92,7 @@ public class ChromePageInfo { if (stateProvider != null) { dialogPosition = stateProvider.getControlsPosition() == ControlsPosition.BOTTOM @@ -1546,7 +1520,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/page_info/Chrom diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java -@@ -91,6 +91,11 @@ import org.chromium.url.GURL; +@@ -92,6 +92,11 @@ import org.chromium.url.GURL; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -1558,7 +1532,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se import java.lang.ref.WeakReference; import java.util.function.Supplier; -@@ -310,6 +315,15 @@ public class SearchActivity extends AsyncInitializationActivity +@@ -311,6 +316,15 @@ public class SearchActivity extends AsyncInitializationActivity // Build the search box. mSearchBox = contentView.findViewById(R.id.search_location_bar); mAnchorView = contentView.findViewById(R.id.toolbar); @@ -1577,7 +1551,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 -@@ -203,6 +203,11 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl +@@ -215,6 +215,11 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl if (fragment instanceof INeedSnackbarManager) { ((INeedSnackbarManager)fragment).setSnackbarManagerSupplier(mSnackbarManagerSupplier); } @@ -1651,7 +1625,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. -@@ -900,6 +903,17 @@ public class ToolbarManager +@@ -892,6 +895,17 @@ public class ToolbarManager /* matchTrustedCdnUrl= */ mIsCustomTab); mControlContainer = controlContainer; mToolbarHairline = mControlContainer.findViewById(R.id.toolbar_hairline); @@ -1668,8 +1642,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar + } mBookmarkModelSupplier = bookmarkModelSupplier; - mBookmarkModelSupplier.addObserver(mBookmarkModelSupplierObserver); -@@ -1611,6 +1625,7 @@ public class ToolbarManager + mBookmarkModelSupplier.addSyncObserverAndPostIfNonNull(mBookmarkModelSupplierObserver); +@@ -1599,6 +1613,7 @@ public class ToolbarManager // the height won't be measured by the background image. if (mControlContainer.getBackground() == null) { setControlContainerTopMargin(getToolbarExtraYOffset()); @@ -1677,7 +1651,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar } else if (mLayoutChangeListener == null) { mLayoutChangeListener = (view, -@@ -1624,6 +1639,7 @@ public class ToolbarManager +@@ -1612,6 +1627,7 @@ public class ToolbarManager oldBottom) -> { if (mControlContainer.getBackground() == null) { setControlContainerTopMargin(getToolbarExtraYOffset()); @@ -1685,7 +1659,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar mControlContainer.removeOnLayoutChangeListener( mLayoutChangeListener); mLayoutChangeListener = null; -@@ -2257,9 +2273,21 @@ public class ToolbarManager +@@ -2228,9 +2244,21 @@ public class ToolbarManager return ((LocationBarCoordinator) mLocationBar).getUrlBarViewRectProvider(); } @@ -1708,7 +1682,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar assert mTabGroupUiOneshotSupplier == null; assert mUndoBarThrottle != null; assert mLayoutManager != null; -@@ -2276,7 +2304,7 @@ public class ToolbarManager +@@ -2248,7 +2276,7 @@ public class ToolbarManager mActivityTabProvider, mTabModelSelector, mActivity, @@ -1717,7 +1691,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar mBrowserControlsSizer, mScrimManager, mOmniboxFocusStateSupplier, -@@ -2303,7 +2331,7 @@ public class ToolbarManager +@@ -2275,7 +2303,7 @@ public class ToolbarManager mControlsVisibilityDelegate, mFullscreenManager, mEdgeToEdgeControllerSupplier, @@ -1726,7 +1700,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar bottomControlsContentDelegateSupplier, mTabObscuringHandler, mOverlayPanelVisibilitySupplier, -@@ -2311,7 +2339,8 @@ public class ToolbarManager +@@ -2283,7 +2311,8 @@ public class ToolbarManager /* readAloudRestoringSupplier= */ () -> { final var readAloud = mReadAloudControllerSupplier.get(); return readAloud != null && readAloud.isRestoringPlayer(); @@ -1795,7 +1769,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; -@@ -621,6 +623,12 @@ public class StatusBarColorController +@@ -623,6 +625,12 @@ public class StatusBarColorController UiUtils.setStatusBarColor(window, color); } @@ -1841,7 +1815,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" -@@ -157,8 +158,10 @@ void TabStripSceneLayer::SetContentTree(JNIEnv* env, +@@ -160,8 +161,10 @@ void TabStripSceneLayer::SetContentTree(JNIEnv* env, content_tree_ = content_tree; if (content_tree) { layer()->InsertChild(content_tree->layer(), 0); @@ -1854,7 +1828,7 @@ diff --git a/chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer } } } -@@ -213,7 +216,12 @@ void TabStripSceneLayer::UpdateTabStripLayer(JNIEnv* env, +@@ -216,7 +219,12 @@ void TabStripSceneLayer::UpdateTabStripLayer(JNIEnv* env, float right_padding, float top_padding) { gfx::RectF content(0, y_offset, width, height); @@ -1868,7 +1842,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)); -@@ -222,7 +230,7 @@ void TabStripSceneLayer::UpdateTabStripLayer(JNIEnv* env, +@@ -225,7 +233,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. @@ -1880,7 +1854,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 -@@ -274,7 +274,7 @@ public class BottomControlsStacker implements BrowserControlsStateProvider.Obser +@@ -275,7 +275,7 @@ public class BottomControlsStacker implements BrowserControlsStateProvider.Obser /** * @return {@link BrowserControlsStateProvider} instance in the current Activity. */ @@ -1961,10 +1935,10 @@ 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" -@@ -379,6 +380,8 @@ const base::Feature* const kFeaturesExposedToJava[] = { - &kNewTabPageCustomizationToolbarButton, +@@ -384,6 +385,8 @@ const base::Feature* const kFeaturesExposedToJava[] = { + &kNewTabPageCustomizationForMvt, + &kNewTabPageCustomizationThemeSync, &kNewTabPageCustomizationV2, - &kNotificationPermissionBottomSheet, + &features::kMoveTopToolbarToBottom, + &features::kDisableToolbarSwipeUp, &kNotificationPermissionVariant, @@ -1973,20 +1947,20 @@ 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 -@@ -510,6 +510,10 @@ public abstract class ChromeFeatureList { +@@ -522,6 +522,10 @@ public abstract class ChromeFeatureList { + public static final String MVC_UPDATE_VIEW_WHEN_MODEL_CHANGED = "MvcUpdateViewWhenModelChanged"; 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"; + public static final String DISABLE_TOOLBAR_SWIPE_UP = + "DisableToolbarSwipeUp"; + public static final String MOVE_TOP_TOOLBAR_TO_BOTTOM = + "MoveTopToolbarToBottom"; - public static final String NEW_TAB_PAGE_CUSTOMIZATION_TOOLBAR_BUTTON = - "NewTabPageCustomizationToolbarButton"; + public static final String NEW_TAB_PAGE_CUSTOMIZATION_THEME_SYNC = + "NewTabPageCustomizationThemeSync"; public static final String NEW_TAB_PAGE_CUSTOMIZATION_V2 = "NewTabPageCustomizationV2"; -@@ -1016,6 +1020,10 @@ public abstract class ChromeFeatureList { - public static final CachedFlag sNotificationTrampolineNoNewTask = - newCachedFlag(NOTIFICATION_TRAMPOLINE_NO_NEW_TASK, false); +@@ -1041,6 +1045,10 @@ public abstract class ChromeFeatureList { + public static final CachedFlag sNtpSimplification = + newCachedFlag(NTP_SIMPLIFICATION, /* defaultValue= */ true); public static final CachedFlag sPCctMinimumHeight = newCachedFlag(PCCT_MINIMUM_HEIGHT, true); + public static final CachedFlag sDisableToolbarSwipeUp = + newCachedFlag(DISABLE_TOOLBAR_SWIPE_UP, false); @@ -1995,9 +1969,9 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final CachedFlag sPaintPreviewDemo = newCachedFlag(PAINT_PREVIEW_DEMO, false); public static final CachedFlag sPersistAcrossReboots = newCachedFlag(PERSIST_ACROSS_REBOOTS, false); -@@ -1251,6 +1259,8 @@ public abstract class ChromeFeatureList { - sNotificationTrampoline, - sNotificationTrampolineNoNewTask, +@@ -1281,6 +1289,8 @@ public abstract class ChromeFeatureList { + sNtpMvcRefactor, + sNtpSimplification, sPCctMinimumHeight, + sMoveTopToolbarToBottom, + sDisableToolbarSwipeUp, @@ -2078,7 +2052,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; -@@ -146,7 +148,10 @@ public class HubManagerImpl implements HubManager, HubController { +@@ -148,7 +150,10 @@ public class HubManagerImpl implements HubManager, HubController { LayoutParams params = (LayoutParams) mHubContainerView.getLayoutParams(); assert params != null : "HubContainerView should always have layout params."; mStatusIndicatorHeight = height; @@ -2090,7 +2064,7 @@ diff --git a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/br mHubContainerView.setLayoutParams(params); } -@@ -156,7 +161,10 @@ public class HubManagerImpl implements HubManager, HubController { +@@ -158,7 +163,10 @@ public class HubManagerImpl implements HubManager, HubController { LayoutParams params = (LayoutParams) mHubContainerView.getLayoutParams(); assert params != null : "HubContainerView should always have layout params."; mAppHeaderHeight = height; @@ -2102,7 +2076,7 @@ diff --git a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/br mHubContainerView.setLayoutParams(params); } -@@ -304,6 +312,8 @@ public class HubManagerImpl implements HubManager, HubController { +@@ -306,6 +314,8 @@ public class HubManagerImpl implements HubManager, HubController { } mSnackbarOverrideToken = mSnackbarManager.pushParentViewToOverrideStack( @@ -2213,7 +2187,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 -@@ -2137,7 +2137,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -2176,7 +2176,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, #if BUILDFLAG(IS_ANDROID) registry->RegisterBooleanPref(prefs::kVirtualKeyboardResizesLayoutByDefault, @@ -2225,7 +2199,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenu.java b/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenu.java --- a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenu.java +++ b/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenu.java -@@ -15,6 +15,7 @@ import android.graphics.PorterDuff; +@@ -14,6 +14,7 @@ import android.graphics.PorterDuff; import android.graphics.Rect; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; @@ -2233,7 +2207,7 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch import android.os.SystemClock; import android.view.Gravity; import android.view.KeyEvent; -@@ -45,6 +46,7 @@ import org.chromium.build.annotations.NullMarked; +@@ -44,6 +45,7 @@ import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; import org.chromium.build.annotations.RequiresNonNull; import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider.ControlsPosition; @@ -2241,7 +2215,7 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch import org.chromium.chrome.browser.ui.appmenu.internal.R; import org.chromium.components.browser_ui.styles.SemanticColorUtils; import org.chromium.components.browser_ui.widget.chips.ChipView; -@@ -424,6 +426,13 @@ class AppMenu implements OnKeyListener { +@@ -428,6 +430,13 @@ class AppMenu implements OnKeyListener { mListView.setVerticalScrollBarEnabled(false); } @@ -2255,7 +2229,7 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch int footerHeight = attachFooter(footer, (ViewGroup) contentView, menuWidth); int headerHeight = attachHeader(header, menuWidth); -@@ -471,7 +480,8 @@ class AppMenu implements OnKeyListener { +@@ -475,7 +484,8 @@ class AppMenu implements OnKeyListener { anchorView, anchorViewOffset); @@ -2265,7 +2239,7 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch int[] popupPosition = getPopupPosition( -@@ -483,8 +493,14 @@ class AppMenu implements OnKeyListener { +@@ -487,8 +497,14 @@ class AppMenu implements OnKeyListener { padding, anchorView, popupWidth, @@ -2281,7 +2255,7 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch mHierarchicalMenuController.setupFlyoutController( /* flyoutHandler= */ flyoutHandler, -@@ -609,11 +625,20 @@ class AppMenu implements OnKeyListener { +@@ -618,11 +634,20 @@ class AppMenu implements OnKeyListener { Rect padding, View anchorView, int popupWidth, @@ -2303,7 +2277,7 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch int[] offsets = new int[2]; // If we have a hardware menu button, locate the app menu closer to the estimated // hardware menu button location. -@@ -744,7 +769,13 @@ class AppMenu implements OnKeyListener { +@@ -772,7 +797,13 @@ class AppMenu implements OnKeyListener { - mMenuSpec.footerHeight - mMenuSpec.headerHeight - anchorViewImpactHeight; @@ -2329,7 +2303,7 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch import org.chromium.build.annotations.MonotonicNonNull; import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; -@@ -295,7 +296,16 @@ class AppMenuHandlerImpl +@@ -311,7 +312,16 @@ class AppMenuHandlerImpl assert !(isByPermanentButton && startDragging); mModelList = mDelegate.getMenuItems(); @@ -2360,7 +2334,7 @@ diff --git a/chrome/browser/ui/android/edge_to_edge/internal/java/src/org/chromi diff --git a/chrome/browser/ui/android/edge_to_edge/java/src/org/chromium/chrome/browser/ui/edge_to_edge/EdgeToEdgeUtils.java b/chrome/browser/ui/android/edge_to_edge/java/src/org/chromium/chrome/browser/ui/edge_to_edge/EdgeToEdgeUtils.java --- a/chrome/browser/ui/android/edge_to_edge/java/src/org/chromium/chrome/browser/ui/edge_to_edge/EdgeToEdgeUtils.java +++ b/chrome/browser/ui/android/edge_to_edge/java/src/org/chromium/chrome/browser/ui/edge_to_edge/EdgeToEdgeUtils.java -@@ -116,6 +116,7 @@ public class EdgeToEdgeUtils { +@@ -120,6 +120,7 @@ public class EdgeToEdgeUtils { * being attached to the window. */ public static boolean isEdgeToEdgeBottomChinEnabled(Activity activity) { @@ -2368,7 +2342,7 @@ diff --git a/chrome/browser/ui/android/edge_to_edge/java/src/org/chromium/chrome // Make sure we test SDK version before checking the Feature so Field Trials only collect // from qualifying devices. if (!EdgeToEdgeFieldTrialImpl.getBottomChinOverrides().isEnabledForManufacturerVersion()) { -@@ -362,6 +363,7 @@ public class EdgeToEdgeUtils { +@@ -385,6 +386,7 @@ public class EdgeToEdgeUtils { */ @Deprecated static boolean hasTappableNavigationBar(Window window) { @@ -2415,14 +2389,14 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java -@@ -286,6 +286,7 @@ public class LocationBarCoordinator +@@ -290,6 +290,7 @@ public class LocationBarCoordinator ? ControlsPosition.TOP : mBrowserControlsStateProvider.getControlsPosition(), mDeferredIMEWindowInsetApplicationCallback::getCurrentKeyboardHeight, + mDeferredIMEWindowInsetApplicationCallback::getSystemBarInsetsBottom, bottomWindowPaddingSupplier, + fuseboxStateSupplier, locationBarDataProvider, - fuseboxStateSupplier); diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/OmniboxSuggestionsDropdownEmbedderImpl.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/OmniboxSuggestionsDropdownEmbedderImpl.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/OmniboxSuggestionsDropdownEmbedderImpl.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/OmniboxSuggestionsDropdownEmbedderImpl.java @@ -2434,31 +2408,23 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import androidx.core.view.WindowInsetsCompat; import org.chromium.base.Callback; -@@ -29,6 +30,7 @@ import org.chromium.chrome.browser.flags.ChromeFeatureList; - import org.chromium.chrome.browser.omnibox.fusebox.FuseboxCoordinator.FuseboxState; - import org.chromium.chrome.browser.omnibox.styles.OmniboxResourceProvider; - import org.chromium.chrome.browser.omnibox.suggestions.OmniboxSuggestionsDropdownEmbedder; -+import org.chromium.chrome.browser.flags.ChromeFeatureList; - import org.chromium.ui.base.DeviceFormFactor; - import org.chromium.ui.base.ViewUtils; - import org.chromium.ui.base.WindowAndroid; -@@ -53,6 +55,7 @@ class OmniboxSuggestionsDropdownEmbedderImpl +@@ -55,6 +56,7 @@ class OmniboxSuggestionsDropdownEmbedderImpl private final boolean mForcePhoneStyleOmnibox; private final Supplier<@ControlsPosition Integer> mControlsPositionSupplier; private final Supplier mKeyboardHeightSupplier; + private final Supplier mSystemBarInsetsBottomSupplier; private final Supplier mBottomWindowPaddingSupplier; private final Context mContext; - // Reusable int array to pass to positioning methods that operate on a two element int array. -@@ -95,6 +98,7 @@ class OmniboxSuggestionsDropdownEmbedderImpl + private final TopInsetProvider mTopInsetProvider; +@@ -102,6 +104,7 @@ class OmniboxSuggestionsDropdownEmbedderImpl @Nullable View baseChromeLayout, Supplier<@ControlsPosition Integer> controlsPositionSupplier, Supplier keyboardHeightSupplier, + Supplier systemBarInsetsBottomSupplier, Supplier bottomWindowPaddingSupplier, + Supplier fuseboxStateSupplier, LocationBarDataProvider locationBarDataProvider, - Supplier fuseboxStateSupplier) { -@@ -104,6 +108,7 @@ class OmniboxSuggestionsDropdownEmbedderImpl +@@ -112,6 +115,7 @@ class OmniboxSuggestionsDropdownEmbedderImpl mForcePhoneStyleOmnibox = forcePhoneStyleOmnibox; mControlsPositionSupplier = controlsPositionSupplier; mKeyboardHeightSupplier = keyboardHeightSupplier; @@ -2466,7 +2432,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow mBottomWindowPaddingSupplier = bottomWindowPaddingSupplier; mContext = mAnchorView.getContext(); mContext.registerComponentCallbacks(this); -@@ -126,6 +131,11 @@ class OmniboxSuggestionsDropdownEmbedderImpl +@@ -139,6 +143,11 @@ class OmniboxSuggestionsDropdownEmbedderImpl mOmniboxAlignmentSupplier.removeObserver(obs); } @@ -2478,7 +2444,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow @Override public OmniboxAlignment getCurrentAlignment() { return assertNonNull(mOmniboxAlignmentSupplier.get()); -@@ -157,6 +167,10 @@ class OmniboxSuggestionsDropdownEmbedderImpl +@@ -170,6 +179,10 @@ class OmniboxSuggestionsDropdownEmbedderImpl @Override public void onDetachedFromWindow() { @@ -2489,7 +2455,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow mAnchorView.removeOnLayoutChangeListener(this); mAlignmentView.removeOnLayoutChangeListener(this); mAnchorView.getViewTreeObserver().removeOnGlobalLayoutListener(this); -@@ -263,6 +277,9 @@ class OmniboxSuggestionsDropdownEmbedderImpl +@@ -278,6 +291,9 @@ class OmniboxSuggestionsDropdownEmbedderImpl } else { ViewUtils.getRelativeLayoutPosition(contentView, mAnchorView, mPositionArray); top = mPositionArray[1] + mAnchorView.getMeasuredHeight() - contentView.getPaddingTop(); @@ -2499,7 +2465,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow } if (isTablet()) { -@@ -353,6 +370,13 @@ class OmniboxSuggestionsDropdownEmbedderImpl +@@ -368,6 +384,13 @@ class OmniboxSuggestionsDropdownEmbedderImpl height = Math.min(windowSpace, contentSpace) - top; } @@ -2513,8 +2479,8 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow // TODO(pnoland@, https://crbug.com/1416985): avoid pushing changes that are identical to // the previous alignment value. OmniboxAlignment omniboxAlignment = -@@ -361,6 +385,14 @@ class OmniboxSuggestionsDropdownEmbedderImpl - mOmniboxAlignmentSupplier.set(omniboxAlignment); +@@ -410,6 +433,14 @@ class OmniboxSuggestionsDropdownEmbedderImpl + return result; } + private void detachKeyboardAlignment() { @@ -2547,7 +2513,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import java.util.ArrayList; import java.util.List; -@@ -75,6 +77,7 @@ public class AutocompleteCoordinator implements OmniboxSuggestionsVisualState { +@@ -72,6 +74,7 @@ public class AutocompleteCoordinator implements OmniboxSuggestionsVisualState { private @Nullable OmniboxSuggestionsDropdown mDropdown; private final ObserverList mScrollListenerList = new ObserverList<>(); @@ -2555,7 +2521,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow /** An observer watching for changes to the visual state of the omnibox suggestions. */ public interface OmniboxSuggestionsVisualStateObserver { -@@ -112,6 +115,7 @@ public class AutocompleteCoordinator implements OmniboxSuggestionsVisualState { +@@ -106,6 +109,7 @@ public class AutocompleteCoordinator implements OmniboxSuggestionsVisualState { Context context = parent.getContext(); ModelList listItems = new ModelList(); @@ -2563,7 +2529,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow PropertyModel listModel = new PropertyModel.Builder(SuggestionListProperties.ALL_KEYS) .with(SuggestionListProperties.EMBEDDER, dropdownEmbedder) -@@ -242,6 +246,18 @@ public class AutocompleteCoordinator implements OmniboxSuggestionsVisualState { +@@ -231,6 +235,18 @@ public class AutocompleteCoordinator implements OmniboxSuggestionsVisualState { container.findViewById(R.id.omnibox_suggestions_dropdown); dropdown.setAdapter(mAdapter); @@ -2585,7 +2551,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java -@@ -76,6 +76,8 @@ import org.chromium.ui.modelutil.PropertyModel; +@@ -80,6 +80,8 @@ import org.chromium.ui.modelutil.PropertyModel; import org.chromium.ui.mojom.WindowOpenDisposition; import org.chromium.url.GURL; @@ -2594,7 +2560,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import java.util.List; import java.util.function.Supplier; -@@ -1364,7 +1366,9 @@ class AutocompleteMediator +@@ -1474,7 +1476,9 @@ class AutocompleteMediator public void onSuggestionDropdownScroll() { if (mAutocompleteInput == null) return; mAutocompleteInput.setSuggestionsListScrolled(); @@ -2608,17 +2574,17 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdown.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdown.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdown.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdown.java -@@ -293,6 +293,9 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { +@@ -294,6 +294,9 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { resources.getDimensionPixelOffset(R.dimen.omnibox_suggestion_list_padding_bottom); - int paddingTop = + mBaseTopPadding = resources.getDimensionPixelOffset(R.dimen.omnibox_suggestion_list_padding_top); + if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + paddingTop = 0; + } - this.setPaddingRelative(0, paddingTop, 0, mBaseBottomPadding); + this.setPaddingRelative(0, mBaseTopPadding, 0, mBaseBottomPadding); // Disable the scrollbar since it causes the hover events happening near the -@@ -503,6 +506,8 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { +@@ -504,6 +507,8 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { mToolbarOnTop = !(ChromeFeatureList.sAndroidBottomToolbarV2ReverseOrderSuggestionsList.getValue() && toolbarPosition == ControlsPosition.BOTTOM); @@ -2645,7 +2611,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import java.util.Objects; /** Provider of capabilities required to embed the omnibox suggestion list into the UI. */ -@@ -118,6 +121,9 @@ public interface OmniboxSuggestionsDropdownEmbedder { +@@ -124,6 +127,9 @@ public interface OmniboxSuggestionsDropdownEmbedder { */ OmniboxAlignment getCurrentAlignment(); @@ -2682,7 +2648,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 -@@ -1551,6 +1551,12 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1624,6 +1624,12 @@ Your Google account may have other forms of browsing history like searches and a Force Tablet Mode @@ -2698,7 +2664,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/browser/ui/android/toolbar/BUILD.gn b/chrome/browser/ui/android/toolbar/BUILD.gn --- a/chrome/browser/ui/android/toolbar/BUILD.gn +++ b/chrome/browser/ui/android/toolbar/BUILD.gn -@@ -227,6 +227,7 @@ android_library("core_java") { +@@ -219,6 +219,7 @@ android_library("core_java") { "//content/public/android:content_java", "//third_party/android_deps:material_design_java", "//third_party/androidx:androidx_annotation_annotation_experimental_java", @@ -2709,7 +2675,7 @@ diff --git a/chrome/browser/ui/android/toolbar/BUILD.gn b/chrome/browser/ui/andr diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarFocusScrimHandler.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarFocusScrimHandler.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarFocusScrimHandler.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarFocusScrimHandler.java -@@ -20,6 +20,7 @@ import org.chromium.components.browser_ui.widget.scrim.ScrimProperties; +@@ -24,6 +24,7 @@ import org.chromium.components.omnibox.OmniboxFeatures; import org.chromium.ui.base.DeviceFormFactor; import org.chromium.ui.modelutil.PropertyModel; import org.chromium.ui.util.ColorUtils; @@ -2717,7 +2683,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow /** Handles showing and hiding a scrim when url bar focus changes. */ @NullMarked -@@ -66,6 +67,10 @@ public class LocationBarFocusScrimHandler implements UrlFocusChangeListener { +@@ -70,6 +71,10 @@ public class LocationBarFocusScrimHandler implements UrlFocusChangeListener { mContext = context; int topMargin = tabStripHeightSupplier.get(); 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 69b94eaa..0d7f5c53 100644 --- a/build/patches/Revert-removal-of-execution-context-address-space.patch +++ b/build/patches/Revert-removal-of-execution-context-address-space.patch @@ -39,19 +39,19 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../core/workers/shared_worker_global_scope.h | 1 + .../workers/threaded_worklet_messaging_proxy.cc | 5 ++++- .../core/workers/threaded_worklet_test.cc | 1 + - .../core/workers/worker_classic_script_loader.cc | 5 ++++- + .../core/workers/worker_classic_script_loader.cc | 6 +++++- .../core/workers/worker_classic_script_loader.h | 6 ++++++ .../renderer/core/workers/worker_global_scope.h | 2 ++ .../renderer/core/workers/worker_thread_test.cc | 2 ++ .../core/workers/worker_thread_test_helper.h | 6 ++++++ .../csspaint/paint_worklet_global_scope_proxy.cc | 2 +- - .../modules/exported/web_embedded_worker_impl.cc | 4 +++- + .../modules/exported/web_embedded_worker_impl.cc | 1 + .../service_worker_global_scope.cc | 13 +++++++++++-- .../service_worker/service_worker_global_scope.h | 2 ++ .../webaudio/audio_worklet_global_scope_test.cc | 1 + .../webaudio/audio_worklet_thread_test.cc | 1 + .../worklet/worklet_thread_test_common.cc | 2 +- - 34 files changed, 145 insertions(+), 9 deletions(-) + 34 files changed, 144 insertions(+), 8 deletions(-) diff --git a/third_party/blink/renderer/core/execution_context/execution_context.cc b/third_party/blink/renderer/core/execution_context/execution_context.cc --- a/third_party/blink/renderer/core/execution_context/execution_context.cc @@ -96,7 +96,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context diff --git a/third_party/blink/renderer/core/exported/web_shared_worker_impl.cc b/third_party/blink/renderer/core/exported/web_shared_worker_impl.cc --- a/third_party/blink/renderer/core/exported/web_shared_worker_impl.cc +++ b/third_party/blink/renderer/core/exported/web_shared_worker_impl.cc -@@ -276,6 +276,7 @@ void WebSharedWorkerImpl::StartWorkerContext( +@@ -278,6 +278,7 @@ void WebSharedWorkerImpl::StartWorkerContext( MakeGarbageCollected(), std::make_unique( std::move(content_settings)), @@ -107,7 +107,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_shared_worker_impl.cc diff --git a/third_party/blink/renderer/core/frame/policy_container.cc b/third_party/blink/renderer/core/frame/policy_container.cc --- a/third_party/blink/renderer/core/frame/policy_container.cc +++ b/third_party/blink/renderer/core/frame/policy_container.cc -@@ -60,12 +60,22 @@ network::mojom::blink::ReferrerPolicy PolicyContainer::GetReferrerPolicy() +@@ -45,12 +45,22 @@ network::mojom::blink::ReferrerPolicy PolicyContainer::GetReferrerPolicy() return policies_->referrer_policy; } @@ -162,8 +162,8 @@ diff --git a/third_party/blink/renderer/core/layout/custom/layout_worklet_global --- a/third_party/blink/renderer/core/layout/custom/layout_worklet_global_scope_proxy.cc +++ b/third_party/blink/renderer/core/layout/custom/layout_worklet_global_scope_proxy.cc @@ -49,6 +49,7 @@ LayoutWorkletGlobalScopeProxy::LayoutWorkletGlobalScopeProxy( - window->IsSecureContext(), window->GetHttpsState(), - nullptr /* worker_clients */, + window->GetSecurityOrigin(), window->IsSecureContext(), + window->GetHttpsState(), nullptr /* worker_clients */, frame_client->CreateWorkerContentSettingsClient(), + window->AddressSpace(), OriginTrialContext::GetInheritedTrialFeatures(window).get(), @@ -179,12 +179,12 @@ diff --git a/third_party/blink/renderer/core/loader/modulescript/installed_servi + script_data->GetResponseAddressSpace(), ParseContentSecurityPolicyHeaders( script_data->GetContentSecurityPolicyResponseHeaders()), - script_data->CreateOriginTrialTokens().get()); + // TODO(crbug.com/488089240): Plumb Document Policy in Service Workers. diff --git a/third_party/blink/renderer/core/loader/modulescript/module_script_loader_test.cc b/third_party/blink/renderer/core/loader/modulescript/module_script_loader_test.cc --- a/third_party/blink/renderer/core/loader/modulescript/module_script_loader_test.cc +++ b/third_party/blink/renderer/core/loader/modulescript/module_script_loader_test.cc -@@ -226,6 +226,7 @@ void ModuleScriptLoaderTest::InitializeForWorklet() { - network::mojom::ReferrerPolicy::kDefault, security_origin_.get(), +@@ -227,6 +227,7 @@ void ModuleScriptLoaderTest::InitializeForWorklet() { + DocumentPolicy::DocumentPolicyBundle{}, security_origin_.get(), true /* is_secure_context */, HttpsState::kModern, nullptr /* worker_clients */, nullptr /* content_settings_client */, + network::mojom::IPAddressSpace::kLocal, @@ -210,76 +210,76 @@ diff --git a/third_party/blink/renderer/core/loader/modulescript/worker_module_s + response_url, response_referrer_policy, response.AddressSpace(), ParseContentSecurityPolicyHeaders( ContentSecurityPolicyResponseHeaders(response)), - response_origin_trial_tokens.get()); + // TODO(crbug.com/488090079): Plumb Document Policy in Module Workers. 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 -@@ -362,6 +362,7 @@ void DedicatedWorker::OnScriptLoadStarted( - ContinueStart(script_request_url_, std::move(worker_main_script_load_params), +@@ -363,6 +363,7 @@ void DedicatedWorker::OnScriptLoadStarted( network::mojom::ReferrerPolicy::kDefault, Vector(), + DocumentPolicy::DocumentPolicyBundle{}, + std::nullopt /* response_address_space */, std::move(back_forward_cache_controller_host), std::move(coep_reporting_observer), std::move(dip_reporting_observer)); -@@ -428,6 +429,7 @@ void DedicatedWorker::OnFinished( - ? mojo::Clone(classic_script_loader_->GetContentSecurityPolicy() +@@ -430,6 +431,7 @@ void DedicatedWorker::OnFinished( ->GetParsedPolicies()) : Vector(), + classic_script_loader_->GetDocumentPolicy(), + classic_script_loader_->ResponseAddressSpace(), std::move(back_forward_cache_controller_host), /*coep_reporting_observer=*/mojo::NullReceiver(), /*dip_reporting_observer=*/mojo::NullReceiver()); -@@ -445,6 +447,7 @@ void DedicatedWorker::ContinueStart( - network::mojom::ReferrerPolicy referrer_policy, +@@ -448,6 +450,7 @@ void DedicatedWorker::ContinueStart( Vector response_content_security_policies, + DocumentPolicy::DocumentPolicyBundle response_document_policy, + std::optional response_address_space, mojo::PendingRemote back_forward_cache_controller_host, mojo::PendingReceiver -@@ -469,6 +472,7 @@ void DedicatedWorker::ContinueStart( - std::move(worker_main_script_load_params), +@@ -473,6 +476,7 @@ void DedicatedWorker::ContinueStart( std::move(referrer_policy), std::move(response_content_security_policies), + std::move(response_document_policy), + response_address_space, std::move(back_forward_cache_controller_host), std::move(coep_reporting_observer), std::move(dip_reporting_observer)), -@@ -478,6 +482,7 @@ void DedicatedWorker::ContinueStart( - ContinueStartInternal( +@@ -483,6 +487,7 @@ void DedicatedWorker::ContinueStart( script_url, std::move(worker_main_script_load_params), std::move(referrer_policy), std::move(response_content_security_policies), + std::move(response_document_policy), + response_address_space, std::move(back_forward_cache_controller_host), std::move(coep_reporting_observer), std::move(dip_reporting_observer)); } -@@ -489,6 +494,7 @@ void DedicatedWorker::ContinueStartInternal( - network::mojom::ReferrerPolicy referrer_policy, +@@ -495,6 +500,7 @@ void DedicatedWorker::ContinueStartInternal( Vector response_content_security_policies, + DocumentPolicy::DocumentPolicyBundle document_policy, + std::optional response_address_space, mojo::PendingRemote back_forward_cache_controller_host, mojo::PendingReceiver -@@ -503,6 +509,7 @@ void DedicatedWorker::ContinueStartInternal( +@@ -509,6 +515,7 @@ void DedicatedWorker::ContinueStartInternal( CreateGlobalScopeCreationParams( script_url, referrer_policy, std::move(response_content_security_policies), + response_address_space, - std::move(coep_reporting_observer), + std::move(document_policy), std::move(coep_reporting_observer), std::move(dip_reporting_observer)), std::move(worker_main_script_load_params), options_, script_url, -@@ -541,6 +548,7 @@ DedicatedWorker::CreateGlobalScopeCreationParams( - network::mojom::ReferrerPolicy referrer_policy, +@@ -548,6 +555,7 @@ DedicatedWorker::CreateGlobalScopeCreationParams( Vector response_content_security_policies, + DocumentPolicy::DocumentPolicyBundle document_policy, + std::optional response_address_space, mojo::PendingReceiver coep_reporting_observer, mojo::PendingReceiver -@@ -593,6 +601,7 @@ DedicatedWorker::CreateGlobalScopeCreationParams( - execution_context->GetSecurityOrigin(), +@@ -600,6 +608,7 @@ DedicatedWorker::CreateGlobalScopeCreationParams( + std::move(document_policy), execution_context->GetSecurityOrigin(), execution_context->IsSecureContext(), execution_context->GetHttpsState(), MakeGarbageCollected(), CreateWebContentSettingsClient(), + response_address_space, @@ -289,26 +289,26 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.h b/third_party/blink/renderer/core/workers/dedicated_worker.h --- a/third_party/blink/renderer/core/workers/dedicated_worker.h +++ b/third_party/blink/renderer/core/workers/dedicated_worker.h -@@ -158,6 +158,7 @@ class CORE_EXPORT DedicatedWorker final - network::mojom::ReferrerPolicy, +@@ -160,6 +160,7 @@ class CORE_EXPORT DedicatedWorker final Vector response_content_security_policies, + DocumentPolicy::DocumentPolicyBundle response_document_policy, + std::optional response_address_space, mojo::PendingRemote back_forward_cache_controller_host, mojo::PendingReceiver -@@ -171,6 +172,7 @@ class CORE_EXPORT DedicatedWorker final - network::mojom::ReferrerPolicy, +@@ -174,6 +175,7 @@ class CORE_EXPORT DedicatedWorker final Vector response_content_security_policies, + DocumentPolicy::DocumentPolicyBundle response_document_policy, + std::optional response_address_space, mojo::PendingRemote back_forward_cache_controller_host, mojo::PendingReceiver -@@ -182,6 +184,7 @@ class CORE_EXPORT DedicatedWorker final - network::mojom::ReferrerPolicy, +@@ -186,6 +188,7 @@ class CORE_EXPORT DedicatedWorker final Vector response_content_security_policies, + DocumentPolicy::DocumentPolicyBundle response_document_policy, + std::optional response_address_space, mojo::PendingReceiver coep_reporting_observer, @@ -316,33 +316,33 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.h b/third_ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.cc b/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.cc --- a/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.cc +++ b/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.cc -@@ -92,6 +92,8 @@ DedicatedWorkerGlobalScope* DedicatedWorkerGlobalScope::Create( - KURL response_script_url = creation_params->script_url; - network::mojom::ReferrerPolicy response_referrer_policy = +@@ -95,6 +95,8 @@ DedicatedWorkerGlobalScope* DedicatedWorkerGlobalScope::Create( creation_params->referrer_policy; + DocumentPolicy::DocumentPolicyBundle response_document_policy = + std::move(creation_params->document_policy); + std::optional response_address_space = + creation_params->response_address_space; const bool parent_is_isolated_context = creation_params->parent_is_isolated_context; base::TimeTicks start_time; -@@ -118,7 +120,7 @@ DedicatedWorkerGlobalScope* DedicatedWorkerGlobalScope::Create( +@@ -121,7 +123,7 @@ DedicatedWorkerGlobalScope* DedicatedWorkerGlobalScope::Create( // Pass dummy origin trial tokens here as it is already set to outside's // origin trial tokens in DedicatedWorkerGlobalScope's constructor. global_scope->Initialize(response_script_url, response_referrer_policy, - std::move(response_csp), + *response_address_space, std::move(response_csp), + std::move(response_document_policy), nullptr /* response_origin_trial_tokens */); return global_scope; - } else { -@@ -234,6 +236,7 @@ const AtomicString& DedicatedWorkerGlobalScope::InterfaceName() const { +@@ -238,6 +240,7 @@ const AtomicString& DedicatedWorkerGlobalScope::InterfaceName() const { void DedicatedWorkerGlobalScope::Initialize( const KURL& response_url, network::mojom::ReferrerPolicy response_referrer_policy, + network::mojom::IPAddressSpace response_address_space, Vector response_csp, + DocumentPolicy::DocumentPolicyBundle response_document_policy, const Vector* /* response_origin_trial_tokens */) { - TRACE_EVENT("blink.worker", "DedicatedWorkerGlobalScope::Initialize", -@@ -249,6 +252,9 @@ void DedicatedWorkerGlobalScope::Initialize( +@@ -254,6 +257,9 @@ void DedicatedWorkerGlobalScope::Initialize( // parsing the `Referrer-Policy` header of response." SetReferrerPolicy(response_referrer_policy); @@ -352,7 +352,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_sco // The following is the Content-Security-Policy part of "Initialize worker // global scope's policy container" // https://html.spec.whatwg.org/#initialize-worker-policy-container -@@ -476,6 +482,7 @@ void DedicatedWorkerGlobalScope::DidFetchClassicScript( +@@ -502,6 +508,7 @@ void DedicatedWorkerGlobalScope::DidFetchClassicScript( // Pass dummy origin trial tokens here as it is already set to outside's // origin trial tokens in DedicatedWorkerGlobalScope's constructor. Initialize(classic_script_loader->ResponseURL(), response_referrer_policy, @@ -369,12 +369,12 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_sco network::mojom::ReferrerPolicy response_referrer_policy, + network::mojom::IPAddressSpace response_address_space, Vector response_csp, + DocumentPolicy::DocumentPolicyBundle response_document_policy, const Vector* response_origin_trial_tokens) override; - void FetchAndRunClassicScript( diff --git a/third_party/blink/renderer/core/workers/global_scope_creation_params.cc b/third_party/blink/renderer/core/workers/global_scope_creation_params.cc --- a/third_party/blink/renderer/core/workers/global_scope_creation_params.cc +++ b/third_party/blink/renderer/core/workers/global_scope_creation_params.cc -@@ -33,6 +33,7 @@ GlobalScopeCreationParams::GlobalScopeCreationParams( +@@ -34,6 +34,7 @@ GlobalScopeCreationParams::GlobalScopeCreationParams( HttpsState starter_https_state, WorkerClients* worker_clients, std::unique_ptr content_settings_client, @@ -382,7 +382,7 @@ diff --git a/third_party/blink/renderer/core/workers/global_scope_creation_param const Vector* inherited_trial_features, const base::UnguessableToken& parent_devtools_token, std::unique_ptr worker_settings, -@@ -77,6 +78,7 @@ GlobalScopeCreationParams::GlobalScopeCreationParams( +@@ -79,6 +80,7 @@ GlobalScopeCreationParams::GlobalScopeCreationParams( starter_https_state(starter_https_state), worker_clients(worker_clients), content_settings_client(std::move(content_settings_client)), @@ -399,9 +399,9 @@ diff --git a/third_party/blink/renderer/core/workers/global_scope_creation_param #include "services/network/public/cpp/permissions_policy/permissions_policy.h" +#include "services/network/public/mojom/ip_address_space.mojom-blink-forward.h" #include "services/network/public/mojom/referrer_policy.mojom-blink-forward.h" + #include "third_party/blink/public/common/permissions_policy/document_policy.h" #include "third_party/blink/public/common/tokens/tokens.h" - #include "third_party/blink/public/common/user_agent/user_agent_metadata.h" -@@ -63,6 +64,7 @@ struct CORE_EXPORT GlobalScopeCreationParams final { +@@ -65,6 +66,7 @@ struct CORE_EXPORT GlobalScopeCreationParams final { HttpsState starter_https_state, WorkerClients*, std::unique_ptr, @@ -409,7 +409,7 @@ diff --git a/third_party/blink/renderer/core/workers/global_scope_creation_param const Vector* inherited_trial_features, const base::UnguessableToken& parent_devtools_token, std::unique_ptr, -@@ -185,6 +187,11 @@ struct CORE_EXPORT GlobalScopeCreationParams final { +@@ -189,6 +191,11 @@ struct CORE_EXPORT GlobalScopeCreationParams final { std::unique_ptr content_settings_client; @@ -486,10 +486,10 @@ diff --git a/third_party/blink/renderer/core/workers/installed_scripts_manager.h diff --git a/third_party/blink/renderer/core/workers/main_thread_worklet_test.cc b/third_party/blink/renderer/core/workers/main_thread_worklet_test.cc --- a/third_party/blink/renderer/core/workers/main_thread_worklet_test.cc +++ b/third_party/blink/renderer/core/workers/main_thread_worklet_test.cc -@@ -72,6 +72,7 @@ class MainThreadWorkletTest : public PageTestBase { - window->GetReferrerPolicy(), window->GetSecurityOrigin(), - window->IsSecureContext(), window->GetHttpsState(), - nullptr /* worker_clients */, nullptr /* content_settings_client */, +@@ -73,6 +73,7 @@ class MainThreadWorkletTest : public PageTestBase { + window->GetSecurityOrigin(), window->IsSecureContext(), + window->GetHttpsState(), nullptr /* worker_clients */, + nullptr /* content_settings_client */, + window->AddressSpace(), OriginTrialContext::GetInheritedTrialFeatures(window).get(), base::UnguessableToken::Create(), nullptr /* worker_settings */, @@ -497,15 +497,15 @@ diff --git a/third_party/blink/renderer/core/workers/main_thread_worklet_test.cc diff --git a/third_party/blink/renderer/core/workers/shared_worker_global_scope.cc b/third_party/blink/renderer/core/workers/shared_worker_global_scope.cc --- a/third_party/blink/renderer/core/workers/shared_worker_global_scope.cc +++ b/third_party/blink/renderer/core/workers/shared_worker_global_scope.cc -@@ -81,6 +81,7 @@ const AtomicString& SharedWorkerGlobalScope::InterfaceName() const { +@@ -82,6 +82,7 @@ const AtomicString& SharedWorkerGlobalScope::InterfaceName() const { void SharedWorkerGlobalScope::Initialize( const KURL& response_url, network::mojom::ReferrerPolicy response_referrer_policy, + network::mojom::IPAddressSpace response_address_space, Vector response_csp, + DocumentPolicy::DocumentPolicyBundle response_document_policy, const Vector* response_origin_trial_tokens) { - // Step 12.3. "Set worker global scope's url to response's url." -@@ -94,6 +95,9 @@ void SharedWorkerGlobalScope::Initialize( +@@ -96,6 +97,9 @@ void SharedWorkerGlobalScope::Initialize( // parsing the `Referrer-Policy` header of response." SetReferrerPolicy(response_referrer_policy); @@ -515,7 +515,7 @@ diff --git a/third_party/blink/renderer/core/workers/shared_worker_global_scope. // Step 12.6. "Execute the Initialize a global object's CSP list algorithm // on worker global scope and response. [CSP]" // SharedWorkerGlobalScope inherits the outside's CSP instead of the response -@@ -103,6 +107,8 @@ void SharedWorkerGlobalScope::Initialize( +@@ -105,6 +109,8 @@ void SharedWorkerGlobalScope::Initialize( // https://fetch.spec.whatwg.org/#local-scheme // // https://w3c.github.io/webappsec-csp/#initialize-global-object-csp @@ -524,7 +524,7 @@ diff --git a/third_party/blink/renderer/core/workers/shared_worker_global_scope. Vector csp_headers = response_url.ProtocolIsAbout() || response_url.ProtocolIsData() || response_url.ProtocolIs("blob") -@@ -247,6 +253,7 @@ void SharedWorkerGlobalScope::DidFetchClassicScript( +@@ -251,6 +257,7 @@ void SharedWorkerGlobalScope::DidFetchClassicScript( // Step 12.3-12.6 are implemented in Initialize(). Initialize(classic_script_loader->ResponseURL(), response_referrer_policy, @@ -541,12 +541,12 @@ diff --git a/third_party/blink/renderer/core/workers/shared_worker_global_scope. network::mojom::ReferrerPolicy response_referrer_policy, + network::mojom::IPAddressSpace response_address_space, Vector response_csp, + DocumentPolicy::DocumentPolicyBundle response_document_policy, const Vector* response_origin_trial_tokens) override; - void FetchAndRunClassicScript( diff --git a/third_party/blink/renderer/core/workers/threaded_worklet_messaging_proxy.cc b/third_party/blink/renderer/core/workers/threaded_worklet_messaging_proxy.cc --- a/third_party/blink/renderer/core/workers/threaded_worklet_messaging_proxy.cc +++ b/third_party/blink/renderer/core/workers/threaded_worklet_messaging_proxy.cc -@@ -93,7 +93,9 @@ void ThreadedWorkletMessagingProxy::Initialize( +@@ -94,7 +94,9 @@ void ThreadedWorkletMessagingProxy::Initialize( starter_secure_context, /*starter_https_state=*/HttpsState::kNone, /*worker_clients=*/nullptr, @@ -557,9 +557,9 @@ diff --git a/third_party/blink/renderer/core/workers/threaded_worklet_messaging_ /*parent_devtools_token=*/ client_provided_global_scope_creation_params->devtools_token, /*worker_settings=*/nullptr, -@@ -144,6 +146,7 @@ void ThreadedWorkletMessagingProxy::Initialize( - window->GetReferrerPolicy(), window->GetSecurityOrigin(), - window->IsSecureContext(), window->GetHttpsState(), worker_clients, +@@ -146,6 +148,7 @@ void ThreadedWorkletMessagingProxy::Initialize( + window->GetSecurityOrigin(), window->IsSecureContext(), + window->GetHttpsState(), worker_clients, frame_client->CreateWorkerContentSettingsClient(), + window->AddressSpace(), OriginTrialContext::GetInheritedTrialFeatures(window).get(), @@ -568,7 +568,7 @@ diff --git a/third_party/blink/renderer/core/workers/threaded_worklet_messaging_ diff --git a/third_party/blink/renderer/core/workers/threaded_worklet_test.cc b/third_party/blink/renderer/core/workers/threaded_worklet_test.cc --- a/third_party/blink/renderer/core/workers/threaded_worklet_test.cc +++ b/third_party/blink/renderer/core/workers/threaded_worklet_test.cc -@@ -219,6 +219,7 @@ class ThreadedWorkletMessagingProxyForTest +@@ -220,6 +220,7 @@ class ThreadedWorkletMessagingProxyForTest GetExecutionContext()->IsSecureContext(), GetExecutionContext()->GetHttpsState(), worker_clients, nullptr /* content_settings_client */, @@ -579,15 +579,16 @@ diff --git a/third_party/blink/renderer/core/workers/threaded_worklet_test.cc b/ diff --git a/third_party/blink/renderer/core/workers/worker_classic_script_loader.cc b/third_party/blink/renderer/core/workers/worker_classic_script_loader.cc --- a/third_party/blink/renderer/core/workers/worker_classic_script_loader.cc +++ b/third_party/blink/renderer/core/workers/worker_classic_script_loader.cc -@@ -30,6 +30,7 @@ +@@ -30,6 +30,8 @@ #include #include "base/memory/scoped_refptr.h" +#include "services/network/public/mojom/ip_address_space.mojom-blink.h" - #include "third_party/blink/public/common/features.h" ++#include "third_party/blink/public/common/features.h" #include "third_party/blink/public/mojom/fetch/fetch_api_request.mojom-blink.h" #include "third_party/blink/renderer/core/execution_context/execution_context.h" -@@ -100,7 +101,8 @@ String CheckSameOriginEnforcement(const KURL& request_url, + #include "third_party/blink/renderer/core/frame/csp/content_security_policy.h" +@@ -101,7 +103,8 @@ String CheckSameOriginEnforcement(const KURL& request_url, } // namespace @@ -597,7 +598,7 @@ diff --git a/third_party/blink/renderer/core/workers/worker_classic_script_loade void WorkerClassicScriptLoader::LoadSynchronously( ExecutionContext& execution_context, -@@ -234,6 +236,7 @@ void WorkerClassicScriptLoader::DidReceiveResponse( +@@ -235,6 +238,7 @@ void WorkerClassicScriptLoader::DidReceiveResponse( identifier_ = identifier; response_url_ = response.ResponseUrl(); response_encoding_ = response.TextEncodingName(); @@ -614,11 +615,11 @@ diff --git a/third_party/blink/renderer/core/workers/worker_classic_script_loade #include "services/network/public/mojom/fetch_api.mojom-blink-forward.h" +#include "services/network/public/mojom/ip_address_space.mojom-blink-forward.h" #include "services/network/public/mojom/url_loader_factory.mojom-blink.h" + #include "third_party/blink/public/common/permissions_policy/document_policy.h" #include "third_party/blink/public/mojom/loader/resource_load_info_notifier.mojom-shared.h" - #include "third_party/blink/public/platform/cross_variant_mojo_util.h" -@@ -119,6 +120,10 @@ class CORE_EXPORT WorkerClassicScriptLoader final - - const String& GetReferrerPolicy() const { return referrer_policy_; } +@@ -124,6 +125,10 @@ class CORE_EXPORT WorkerClassicScriptLoader final + return document_policy_; + } + network::mojom::IPAddressSpace ResponseAddressSpace() const { + return response_address_space_; @@ -627,33 +628,33 @@ diff --git a/third_party/blink/renderer/core/workers/worker_classic_script_loade const Vector* OriginTrialTokens() const { return origin_trial_tokens_.get(); } -@@ -173,6 +178,7 @@ class CORE_EXPORT WorkerClassicScriptLoader final +@@ -179,6 +184,7 @@ class CORE_EXPORT WorkerClassicScriptLoader final uint64_t identifier_ = 0; std::unique_ptr> cached_metadata_; Member content_security_policy_; + network::mojom::IPAddressSpace response_address_space_; std::unique_ptr> origin_trial_tokens_; String referrer_policy_; - + DocumentPolicy::DocumentPolicyBundle document_policy_; diff --git a/third_party/blink/renderer/core/workers/worker_global_scope.h b/third_party/blink/renderer/core/workers/worker_global_scope.h --- a/third_party/blink/renderer/core/workers/worker_global_scope.h +++ b/third_party/blink/renderer/core/workers/worker_global_scope.h -@@ -32,6 +32,7 @@ - #include "base/task/single_thread_task_runner.h" +@@ -33,6 +33,7 @@ #include "base/time/time.h" #include "services/network/public/mojom/fetch_api.mojom-blink-forward.h" + #include "third_party/blink/public/common/permissions_policy/document_policy.h" +#include "services/network/public/mojom/ip_address_space.mojom-blink-forward.h" #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" -@@ -174,6 +175,7 @@ class CORE_EXPORT WorkerGlobalScope +@@ -175,6 +176,7 @@ class CORE_EXPORT WorkerGlobalScope virtual void Initialize( const KURL& response_url, network::mojom::ReferrerPolicy response_referrer_policy, + network::mojom::IPAddressSpace response_address_space, Vector response_csp, + DocumentPolicy::DocumentPolicyBundle response_document_policy, const Vector* response_origin_trial_tokens) = 0; - diff --git a/third_party/blink/renderer/core/workers/worker_thread_test.cc b/third_party/blink/renderer/core/workers/worker_thread_test.cc --- a/third_party/blink/renderer/core/workers/worker_thread_test.cc +++ b/third_party/blink/renderer/core/workers/worker_thread_test.cc @@ -665,7 +666,7 @@ diff --git a/third_party/blink/renderer/core/workers/worker_thread_test.cc b/thi #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/blink/public/mojom/v8_cache_options.mojom-blink.h" -@@ -386,6 +387,7 @@ TEST_F(WorkerThreadTest, Terminate_WhileDebuggerTaskIsRunningOnInitialization) { +@@ -387,6 +388,7 @@ TEST_F(WorkerThreadTest, Terminate_WhileDebuggerTaskIsRunningOnInitialization) { CalculateHttpsState(security_origin_.get()), MakeGarbageCollected(), nullptr /* content_settings_client */, @@ -684,12 +685,13 @@ diff --git a/third_party/blink/renderer/core/workers/worker_thread_test_helper.h #include "testing/gmock/include/gmock/gmock.h" #include "third_party/blink/public/common/loader/worker_main_script_load_parameters.h" #include "third_party/blink/public/mojom/v8_cache_options.mojom-blink.h" -@@ -78,11 +79,15 @@ class FakeWorkerGlobalScope : public WorkerGlobalScope { +@@ -79,12 +80,16 @@ class FakeWorkerGlobalScope : public WorkerGlobalScope { void Initialize( const KURL& response_url, network::mojom::ReferrerPolicy response_referrer_policy, + network::mojom::IPAddressSpace response_address_space, Vector response_csp, + DocumentPolicy::DocumentPolicyBundle response_document_policy, const Vector* response_origin_trial_tokens) override { InitializeURL(response_url); SetReferrerPolicy(response_referrer_policy); @@ -700,7 +702,7 @@ diff --git a/third_party/blink/renderer/core/workers/worker_thread_test_helper.h InitContentSecurityPolicyFromVector(std::move(response_csp)); BindContentSecurityPolicyToExecutionContext(); -@@ -158,6 +163,7 @@ class WorkerThreadForTest : public WorkerThread { +@@ -167,6 +172,7 @@ class WorkerThreadForTest : public WorkerThread { false /* starter_secure_context */, CalculateHttpsState(security_origin), worker_clients, nullptr /* content_settings_client */, @@ -712,9 +714,9 @@ diff --git a/third_party/blink/renderer/modules/csspaint/paint_worklet_global_sc --- a/third_party/blink/renderer/modules/csspaint/paint_worklet_global_scope_proxy.cc +++ b/third_party/blink/renderer/modules/csspaint/paint_worklet_global_scope_proxy.cc @@ -47,7 +47,7 @@ PaintWorkletGlobalScopeProxy::PaintWorkletGlobalScopeProxy( - window->GetReferrerPolicy(), window->GetSecurityOrigin(), - window->IsSecureContext(), window->GetHttpsState(), - nullptr /* worker_clients */, + window->GetReferrerPolicy(), DocumentPolicy::DocumentPolicyBundle{}, + window->GetSecurityOrigin(), window->IsSecureContext(), + window->GetHttpsState(), nullptr /* worker_clients */, - frame_client->CreateWorkerContentSettingsClient(), + frame_client->CreateWorkerContentSettingsClient(), window->AddressSpace(), OriginTrialContext::GetInheritedTrialFeatures(window).get(), @@ -723,21 +725,18 @@ diff --git a/third_party/blink/renderer/modules/csspaint/paint_worklet_global_sc diff --git a/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.cc b/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.cc --- a/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.cc +++ b/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.cc -@@ -214,7 +214,9 @@ void WebEmbeddedWorkerImpl::StartWorkerThread( - Vector(), - network::mojom::ReferrerPolicy::kDefault, starter_origin.get(), - starter_secure_context, starter_https_state, nullptr /* worker_clients */, -- std::move(content_settings_proxy), nullptr /* inherited_trial_features */, -+ std::move(content_settings_proxy), +@@ -222,6 +222,7 @@ void WebEmbeddedWorkerImpl::StartWorkerThread( + DocumentPolicy::DocumentPolicyBundle{}, starter_origin.get(), + starter_secure_context, starter_https_state, + /*worker_clients=*/nullptr, std::move(content_settings_proxy), + std::nullopt /* response_address_space */, -+ nullptr /* inherited_trial_features */, + /*inherited_trial_features=*/nullptr, worker_start_data->devtools_worker_token, std::move(worker_settings), // Generate the full code cache in the first execution of the script. - mojom::blink::V8CacheOptions::kFullCodeWithoutHeatCheck, diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc --- a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc +++ b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc -@@ -473,6 +473,7 @@ void ServiceWorkerGlobalScope::DidFetchClassicScript( +@@ -472,6 +472,7 @@ void ServiceWorkerGlobalScope::DidFetchClassicScript( // is set, and with the following callback steps given evaluationStatus:" RunClassicScript( classic_script_loader->ResponseURL(), referrer_policy, @@ -751,9 +750,9 @@ diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_gl network::mojom::ReferrerPolicy response_referrer_policy, + network::mojom::IPAddressSpace response_address_space, Vector response_csp, + DocumentPolicy::DocumentPolicyBundle response_document_policy, const Vector* response_origin_trial_tokens) { - // Step 4.5. "Set workerGlobalScope's url to serviceWorker's script url." -@@ -499,6 +501,9 @@ void ServiceWorkerGlobalScope::Initialize( +@@ -500,6 +502,9 @@ void ServiceWorkerGlobalScope::Initialize( // script resource's referrer policy." SetReferrerPolicy(response_referrer_policy); @@ -763,7 +762,7 @@ diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_gl // This is quoted from the "Content Security Policy" algorithm in the service // workers spec: // "Whenever a user agent invokes Run Service Worker algorithm with a service -@@ -509,6 +514,9 @@ void ServiceWorkerGlobalScope::Initialize( +@@ -510,6 +515,9 @@ void ServiceWorkerGlobalScope::Initialize( // - If serviceWorker's script resource was delivered with a // Content-Security-Policy-Report-Only HTTP header containing the value // policy, the user agent must monitor policy for serviceWorker." @@ -773,29 +772,30 @@ diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_gl InitContentSecurityPolicyFromVector(std::move(response_csp)); BindContentSecurityPolicyToExecutionContext(); -@@ -551,7 +559,7 @@ void ServiceWorkerGlobalScope::LoadAndRunInstalledClassicScript( - kDoNotSupportReferrerPolicyLegacyKeywords, &referrer_policy); +@@ -555,7 +563,7 @@ void ServiceWorkerGlobalScope::LoadAndRunInstalledClassicScript( } -- RunClassicScript(script_url, referrer_policy, -+ RunClassicScript(script_url, referrer_policy, script_data->GetResponseAddressSpace(), - ParseContentSecurityPolicyHeaders( - script_data->GetContentSecurityPolicyResponseHeaders()), - script_data->CreateOriginTrialTokens().get(), -@@ -563,13 +571,14 @@ void ServiceWorkerGlobalScope::LoadAndRunInstalledClassicScript( + RunClassicScript( +- script_url, referrer_policy, ++ script_url, referrer_policy, script_data->GetResponseAddressSpace(), + ParseContentSecurityPolicyHeaders( + script_data->GetContentSecurityPolicyResponseHeaders()), + // TODO(crbug.com/488089240): Plumb Document Policy in Service Workers. +@@ -568,6 +576,7 @@ void ServiceWorkerGlobalScope::LoadAndRunInstalledClassicScript( void ServiceWorkerGlobalScope::RunClassicScript( const KURL& response_url, network::mojom::ReferrerPolicy response_referrer_policy, + network::mojom::IPAddressSpace response_address_space, Vector response_csp, + DocumentPolicy::DocumentPolicyBundle response_document_policy, const Vector* response_origin_trial_tokens, - const String& source_code, +@@ -575,7 +584,7 @@ void ServiceWorkerGlobalScope::RunClassicScript( std::unique_ptr> cached_meta_data, const v8_inspector::V8StackTraceId& stack_id) { // Step 4.5-4.11 are implemented in Initialize(). - Initialize(response_url, response_referrer_policy, std::move(response_csp), + Initialize(response_url, response_referrer_policy, response_address_space, std::move(response_csp), - response_origin_trial_tokens); + std::move(response_document_policy), response_origin_trial_tokens); // Step 4.12. "Let evaluationStatus be the result of running the classic diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h @@ -807,23 +807,23 @@ diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_gl network::mojom::ReferrerPolicy response_referrer_policy, + network::mojom::IPAddressSpace response_address_space, Vector response_csp, + DocumentPolicy::DocumentPolicyBundle response_document_policy, const Vector* response_origin_trial_tokens) override; - // Fetches and runs the top-level classic worker script. -@@ -409,6 +410,7 @@ class MODULES_EXPORT ServiceWorkerGlobalScope final +@@ -410,6 +411,7 @@ class MODULES_EXPORT ServiceWorkerGlobalScope final void RunClassicScript( const KURL& response_url, network::mojom::ReferrerPolicy response_referrer_policy, + network::mojom::IPAddressSpace response_address_space, Vector response_csp, + DocumentPolicy::DocumentPolicyBundle response_document_policy, const Vector* response_origin_trial_tokens, - const String& source_code, diff --git a/third_party/blink/renderer/modules/webaudio/audio_worklet_global_scope_test.cc b/third_party/blink/renderer/modules/webaudio/audio_worklet_global_scope_test.cc --- a/third_party/blink/renderer/modules/webaudio/audio_worklet_global_scope_test.cc +++ b/third_party/blink/renderer/modules/webaudio/audio_worklet_global_scope_test.cc -@@ -88,6 +88,7 @@ class AudioWorkletGlobalScopeTest : public PageTestBase, public ModuleTestBase { - window->GetReferrerPolicy(), window->GetSecurityOrigin(), - window->IsSecureContext(), window->GetHttpsState(), - nullptr /* worker_clients */, nullptr /* content_settings_client */, +@@ -90,6 +90,7 @@ class AudioWorkletGlobalScopeTest : public PageTestBase, public ModuleTestBase { + window->GetSecurityOrigin(), window->IsSecureContext(), + window->GetHttpsState(), nullptr /* worker_clients */, + nullptr /* content_settings_client */, + window->AddressSpace(), OriginTrialContext::GetInheritedTrialFeatures(window).get(), base::UnguessableToken::Create(), nullptr /* worker_settings */, @@ -831,10 +831,10 @@ diff --git a/third_party/blink/renderer/modules/webaudio/audio_worklet_global_sc diff --git a/third_party/blink/renderer/modules/webaudio/audio_worklet_thread_test.cc b/third_party/blink/renderer/modules/webaudio/audio_worklet_thread_test.cc --- a/third_party/blink/renderer/modules/webaudio/audio_worklet_thread_test.cc +++ b/third_party/blink/renderer/modules/webaudio/audio_worklet_thread_test.cc -@@ -108,6 +108,7 @@ class AudioWorkletThreadTest : public PageTestBase, public ModuleTestBase { - window->GetReferrerPolicy(), window->GetSecurityOrigin(), - window->IsSecureContext(), window->GetHttpsState(), - nullptr /* worker_clients */, nullptr /* content_settings_client */, +@@ -109,6 +109,7 @@ class AudioWorkletThreadTest : public PageTestBase, public ModuleTestBase { + window->GetSecurityOrigin(), window->IsSecureContext(), + window->GetHttpsState(), nullptr /* worker_clients */, + nullptr /* content_settings_client */, + window->AddressSpace(), OriginTrialContext::GetInheritedTrialFeatures(window).get(), base::UnguessableToken::Create(), nullptr /* worker_settings */, @@ -842,10 +842,10 @@ diff --git a/third_party/blink/renderer/modules/webaudio/audio_worklet_thread_te diff --git a/third_party/blink/renderer/modules/worklet/worklet_thread_test_common.cc b/third_party/blink/renderer/modules/worklet/worklet_thread_test_common.cc --- a/third_party/blink/renderer/modules/worklet/worklet_thread_test_common.cc +++ b/third_party/blink/renderer/modules/worklet/worklet_thread_test_common.cc -@@ -38,7 +38,7 @@ CreateAnimationAndPaintWorkletThread( - Vector(), - window->GetReferrerPolicy(), window->GetSecurityOrigin(), - window->IsSecureContext(), window->GetHttpsState(), clients, +@@ -39,7 +39,7 @@ CreateAnimationAndPaintWorkletThread( + window->GetReferrerPolicy(), DocumentPolicy::DocumentPolicyBundle{}, + window->GetSecurityOrigin(), window->IsSecureContext(), + window->GetHttpsState(), clients, - nullptr /* content_settings_client */, + nullptr /* content_settings_client */, window->AddressSpace(), OriginTrialContext::GetInheritedTrialFeatures(window).get(), diff --git a/build/patches/eyeo-133.0.6943.49-base.patch b/build/patches/eyeo-133.0.6943.49-base.patch index d41b2687..f61f4a84 100644 --- a/build/patches/eyeo-133.0.6943.49-base.patch +++ b/build/patches/eyeo-133.0.6943.49-base.patch @@ -710,7 +710,7 @@ diff --git a/DEPS b/DEPS 'chrome_git': 'https://chrome-internal.googlesource.com', @@ -538,6 +539,11 @@ vars = { # and whatever else without interference from each other. - 'clusterfuzz_data_revision':'392cb8a05c3db5963d09b615987fe5fcb081088e', + 'clusterfuzz_data_revision':'9f6f3ab4e8e6f15133be9acb9f8a297496a43b30', + # Three lines of non-changing comments so that + # the commit queue can handle CLs rolling feed @@ -720,7 +720,7 @@ diff --git a/DEPS b/DEPS # If you change this, also update the libc++ revision in # //buildtools/deps_revisions.gni. 'libcxx_revision': '7ab65651aed6802d2599dcb7a73b1f82d5179d05', -@@ -1630,6 +1636,10 @@ deps = { +@@ -1632,6 +1638,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' + '@' + '5522b25f3da74caafdcd3f1bcf33380f9f023a1c', + 'url': Var('chromium_git') + '/website.git' + '@' + 'd3b3b620e65ebaf511c6c8399b98a081cd644a66', }, diff --git a/LICENSE b/LICENSE --- a/LICENSE @@ -819,7 +819,7 @@ diff --git a/base/trace_event/builtin_categories.h b/base/trace_event/builtin_ca diff --git a/components/BUILD.gn b/components/BUILD.gn --- a/components/BUILD.gn +++ b/components/BUILD.gn -@@ -1133,6 +1133,7 @@ if (use_blink) { +@@ -1138,6 +1138,7 @@ if (use_blink) { deps = [ "//base", "//base/test:test_support", @@ -50209,7 +50209,7 @@ new file mode 100644 diff --git a/content/browser/loader/navigation_url_loader_impl.cc b/content/browser/loader/navigation_url_loader_impl.cc --- a/content/browser/loader/navigation_url_loader_impl.cc +++ b/content/browser/loader/navigation_url_loader_impl.cc -@@ -1572,7 +1572,7 @@ void NavigationURLLoaderImpl::OnReceiveRedirect( +@@ -1575,7 +1575,7 @@ void NavigationURLLoaderImpl::OnReceiveRedirect( ? head->bypass_redirect_checks : bypass_redirect_checks_; @@ -50232,7 +50232,7 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/b #include "content/browser/renderer_host/render_frame_host_impl.h" -@@ -3795,6 +3799,12 @@ void RenderFrameHostImpl::ExecuteJavaScriptMethod( +@@ -3822,6 +3826,12 @@ void RenderFrameHostImpl::ExecuteJavaScriptMethod( std::move(callback)); } @@ -50259,7 +50259,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_ -@@ -516,6 +520,8 @@ class CONTENT_EXPORT RenderFrameHostImpl +@@ -515,6 +519,8 @@ class CONTENT_EXPORT RenderFrameHostImpl const std::u16string& method_name, base::ListValue arguments, JavaScriptResultCallback callback) override; @@ -50282,7 +50282,7 @@ diff --git a/content/public/browser/render_frame_host.h b/content/public/browser #ifndef CONTENT_PUBLIC_BROWSER_RENDER_FRAME_HOST_H_ #define CONTENT_PUBLIC_BROWSER_RENDER_FRAME_HOST_H_ -@@ -566,6 +570,9 @@ class CONTENT_EXPORT RenderFrameHost : public IPC::Listener { +@@ -571,6 +575,9 @@ class CONTENT_EXPORT RenderFrameHost : public IPC::Listener { virtual void AddMessageToConsole(blink::mojom::ConsoleMessageLevel level, const std::string& message) = 0; @@ -50376,7 +50376,7 @@ diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn import("//build/config/cast.gni") import("//build/config/chromeos/ui_mode.gni") -@@ -179,6 +182,10 @@ inspector_protocol_generate("protocol_sources") { +@@ -178,6 +181,10 @@ inspector_protocol_generate("protocol_sources") { static_library("content_shell_lib") { testonly = true sources = [ @@ -50387,7 +50387,7 @@ diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn "browser/protocol/browser_handler.cc", "browser/protocol/browser_handler.h", "browser/protocol/domain_handler.h", -@@ -248,6 +255,7 @@ static_library("content_shell_lib") { +@@ -247,6 +254,7 @@ static_library("content_shell_lib") { "browser/shell_platform_delegate_android.cc", "browser/shell_web_contents_view_delegate_android.cc", ] @@ -50395,7 +50395,7 @@ diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn } if (is_mac) { -@@ -328,6 +336,8 @@ static_library("content_shell_lib") { +@@ -327,6 +335,8 @@ static_library("content_shell_lib") { ":shell_controller_mojom", "//base", "//base:base_static", @@ -50404,7 +50404,7 @@ diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn "//components/cdm/renderer", "//components/custom_handlers", "//components/custom_handlers:test_support", -@@ -347,6 +357,7 @@ static_library("content_shell_lib") { +@@ -346,6 +356,7 @@ static_library("content_shell_lib") { "//components/services/storage/test_api", "//components/surface_embed/buildflags", "//components/url_formatter", @@ -50412,7 +50412,7 @@ diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn "//components/variations/service", "//components/web_cache/renderer", "//content:content_resources", -@@ -442,6 +453,7 @@ static_library("content_shell_lib") { +@@ -441,6 +452,7 @@ static_library("content_shell_lib") { "//mojo/public/java/system:test_support", "//ui/android", ] @@ -50420,7 +50420,7 @@ diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn } if (shell_use_toolkit_views) { -@@ -532,6 +544,8 @@ repack("pak") { +@@ -531,6 +543,8 @@ repack("pak") { sources = [ "$root_gen_dir/base/tracing/protos/tracing_proto_resources.pak", @@ -50429,7 +50429,7 @@ diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn "$root_gen_dir/components/ukm_resources.pak", "$root_gen_dir/content/attribution_internals_resources.pak", "$root_gen_dir/content/browser/resources/media/media_internals_resources.pak", -@@ -565,6 +579,8 @@ repack("pak") { +@@ -564,6 +578,8 @@ repack("pak") { deps = [ ":resources", "//base/tracing/protos:chrome_track_event_resources", @@ -50858,7 +50858,7 @@ diff --git a/third_party/blink/public/mojom/frame/frame.mojom b/third_party/blin module blink.mojom; -@@ -1009,6 +1013,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); @@ -50883,7 +50883,7 @@ diff --git a/third_party/blink/public/web/web_document.h b/third_party/blink/pub #ifndef THIRD_PARTY_BLINK_PUBLIC_WEB_WEB_DOCUMENT_H_ #define THIRD_PARTY_BLINK_PUBLIC_WEB_WEB_DOCUMENT_H_ -@@ -159,6 +163,14 @@ class BLINK_EXPORT WebDocument : public WebNode { +@@ -160,6 +164,14 @@ class BLINK_EXPORT WebDocument : public WebNode { WebCssOrigin = WebCssOrigin::kAuthor, BackForwardCacheAware = BackForwardCacheAware::kAllow); @@ -50912,7 +50912,7 @@ diff --git a/third_party/blink/renderer/core/dom/events/event_target.cc b/third_ #include "third_party/blink/renderer/core/dom/events/event_target.h" #include -@@ -851,7 +855,10 @@ bool EventTarget::dispatchEventForBindings(Event* event, +@@ -852,7 +856,10 @@ bool EventTarget::dispatchEventForBindings(Event* event, if (!GetExecutionContext()) return false; @@ -50927,7 +50927,7 @@ diff --git a/third_party/blink/renderer/core/dom/events/event_target.cc b/third_ diff --git a/third_party/blink/renderer/core/exported/web_document.cc b/third_party/blink/renderer/core/exported/web_document.cc --- a/third_party/blink/renderer/core/exported/web_document.cc +++ b/third_party/blink/renderer/core/exported/web_document.cc -@@ -279,6 +279,56 @@ WebStyleSheetKey WebDocument::InsertStyleSheet( +@@ -304,6 +304,56 @@ WebStyleSheetKey WebDocument::InsertStyleSheet( return injection_key; } @@ -51038,7 +51038,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame_mojo_handler.h b/ diff --git a/third_party/blink/renderer/core/html/html_element.cc b/third_party/blink/renderer/core/html/html_element.cc --- a/third_party/blink/renderer/core/html/html_element.cc +++ b/third_party/blink/renderer/core/html/html_element.cc -@@ -2942,7 +2942,13 @@ void HTMLElement::setSpellcheck(bool enable) { +@@ -3010,7 +3010,13 @@ void HTMLElement::setSpellcheck(bool enable) { } void HTMLElement::click() { @@ -51067,12 +51067,12 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/url_loader/mojo_ur #include "third_party/blink/renderer/platform/loader/fetch/url_loader/mojo_url_loader_client.h" #include -@@ -396,7 +400,7 @@ void MojoURLLoaderClient::OnReceiveRedirect( - return; - } - -- if (!bypass_redirect_checks_ && -+ if (!bypass_redirect_checks_ && !redirect_info.bypass_redirect_checks && +@@ -401,7 +405,7 @@ void MojoURLLoaderClient::OnReceiveRedirect( + // since the redirect target is never loaded or executed. + bool is_manual_redirect = response_head->response_type == + network::mojom::FetchResponseType::kOpaqueRedirect; +- if (!bypass_redirect_checks_ && !is_manual_redirect && ++ if (!bypass_redirect_checks_ && !is_manual_redirect && !redirect_info.bypass_redirect_checks && !Platform::Current()->IsRedirectSafe(GURL(last_loaded_url_), redirect_info.new_url, redirect_info.original_initiator)) { @@ -51717,7 +51717,7 @@ diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ # This file is used to assign starting resource ids for resources and strings # used by Chromium. This is done to ensure that resource ids are unique # across all the grd files. If you are adding a new grd file, please add -@@ -1271,6 +1275,14 @@ +@@ -1283,6 +1287,14 @@ "components/user_scripts/browser/resources/browser_resources.grd": { "includes": [7625], }, @@ -51746,7 +51746,7 @@ diff --git a/tools/metrics/histograms/metadata/extensions/enums.xml b/tools/metr --> +@@ -208,7 +212,7 @@ Called by update_extension_histograms.py.--> @@ -51755,7 +51755,7 @@ diff --git a/tools/metrics/histograms/metadata/extensions/enums.xml b/tools/metr -@@ -3267,6 +3271,8 @@ Called by update_extension_permission.py.--> +@@ -3276,6 +3280,8 @@ Called by update_extension_permission.py.--> From 130b90c92118298354e4f70423fa0c05e7bcafa5 Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Fri, 27 Mar 2026 15:11:13 +0100 Subject: [PATCH 3/9] Bump to 147.0.7727.24 --- build/RELEASE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/RELEASE b/build/RELEASE index bbec9453..13b03cd3 100644 --- a/build/RELEASE +++ b/build/RELEASE @@ -1 +1 @@ -146.0.7680.111 \ No newline at end of file +147.0.7727.24 \ No newline at end of file From 64656694614483301150b2c13a4c8ff35b8a4ca8 Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Wed, 8 Apr 2026 10:42:08 +0200 Subject: [PATCH 4/9] Patches for v147 (final) --- .../Add-an-always-incognito-mode.patch | 32 +- .../Add-bookmark-import-export-actions.patch | 15 +- build/patches/Add-cromite-flags-support.patch | 10 +- ...-switch-for-unsupported-clangd-flags.patch | 2 +- .../Add-menu-item-to-bookmark-all-tabs.patch | 14 +- .../Add-option-to-disable-snapshots.patch | 2 +- .../Add-option-to-force-tablet-UI.patch | 34 +- .../Add-setting-to-clear-data-on-exit.patch | 392 ++++++++++++++++-- ...d-setting-to-invert-tap-and-long-tap.patch | 26 +- .../patches/Android-Pixel-Perfect-Mode.patch | 4 +- ...roid-fonts-fingerprinting-mitigation.patch | 17 +- ...Ask-for-restart-on-connection-change.patch | 4 +- build/patches/Bromite-auto-updater.patch | 2 +- .../Bromite-subresource-adblocker.patch | 36 +- build/patches/Change-popup-site-setting.patch | 19 +- .../patches/Chrome-web-store-protection.patch | 6 +- .../Content-settings-infrastructure.patch | 37 +- build/patches/Cromite-Branding.patch | 13 +- ...ctionary-suggestions-for-the-Omnibox.patch | 87 +++- build/patches/Disable-PrivacyGuide.patch | 15 +- .../Disable-Read-Aloud-by-default.patch | 20 +- build/patches/Disable-Real-Box.patch | 13 +- build/patches/Disable-TLS-resumption.patch | 11 +- .../patches/Disable-all-predictors-code.patch | 132 ++++-- .../Disable-device-bound-session.patch | 45 +- .../Disable-integration-with-Gemini.patch | 104 +++-- build/patches/Disable-safety-check.patch | 17 +- .../Disable-visited-pseudo-class.patch | 2 +- .../Enable-extension-in-incognito.patch | 337 ++++++++++----- ...fwrapv-in-Clang-for-non-UBSan-builds.patch | 14 +- .../Enable-native-Android-autofill.patch | 21 +- ...le-search-engine-settings-desktop-ui.patch | 35 +- build/patches/Enable-share-intent.patch | 2 +- ...al-support-for-extensions-on-Android.patch | 322 +++++++++++++- .../Experimental-user-scripts-support.patch | 42 +- build/patches/Eyeo-Adblock-for-Cromite.patch | 2 +- ...story-number-of-days-privacy-setting.patch | 15 +- build/patches/Internal-firewall.patch | 2 +- build/patches/Keyboard-protection-flag.patch | 2 +- ...ing-attributes-in-some-html-elements.patch | 31 +- .../Move-navigation-bar-to-bottom.patch | 277 ++++++++++--- .../Remove-binary-blob-integrations.patch | 2 +- .../Restore-LastTabStandingTracker.patch | 2 +- .../Restore-Simplified-NTP-launch.patch | 34 +- ...-button-in-top-toolbar-customization.patch | 2 +- .../Restore-chrome-password-store.patch | 8 +- ...l-of-execution-context-address-space.patch | 15 +- build/patches/Timezone-customization.patch | 15 +- .../Use-list-mode-for-tab-switcher.patch | 28 +- build/patches/User-agent-customization.patch | 4 +- ...Add-some-prefs-to-secure-preferences.patch | 15 +- build/patches/bromite-build-utils.patch | 15 +- .../enable-ftrivial-auto-var-init-zero.patch | 12 +- .../eyeo-133.0.6943.49-android_api.patch | 2 +- ...yeo-133.0.6943.49-chrome_integration.patch | 4 +- ...ed-chromium-no-special-hosts-domains.patch | 12 +- 56 files changed, 1871 insertions(+), 512 deletions(-) diff --git a/build/patches/Add-an-always-incognito-mode.patch b/build/patches/Add-an-always-incognito-mode.patch index 411a10ff..da33334f 100644 --- a/build/patches/Add-an-always-incognito-mode.patch +++ b/build/patches/Add-an-always-incognito-mode.patch @@ -48,7 +48,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../tabmodel/TabModelSelectorImpl.java | 3 + .../tabmodel/TabPersistentStoreImpl.java | 7 + .../browser/toolbar/ToolbarManager.java | 1 + - .../webapps/WebappIntentDataProvider.java | 15 ++ + .../webapps/WebappIntentDataProvider.java | 16 ++ .../browser/android/historical_tab_saver.cc | 24 ++- .../chrome_autocomplete_provider_client.cc | 9 + .../chrome_autocomplete_provider_client.h | 1 + @@ -68,7 +68,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/prefs/browser_prefs.cc | 5 + chrome/browser/profiles/profile_selections.cc | 10 + chrome/browser/profiles/profile_selections.h | 7 +- - .../signin/services/ProfileDataCache.java | 16 +- + .../signin/services/ProfileDataCache.java | 18 +- .../browser/ui/android/native_page/BUILD.gn | 2 + .../browser/ui/native_page/NativePage.java | 17 +- .../browser/omnibox/LocationBarMediator.java | 8 + @@ -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, 811 insertions(+), 118 deletions(-) + 70 files changed, 812 insertions(+), 120 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 @@ -1127,16 +1127,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProvider.java --- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProvider.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProvider.java -@@ -33,6 +33,8 @@ import org.chromium.components.browser_ui.widget.TintedDrawable; +@@ -33,6 +33,9 @@ import org.chromium.components.browser_ui.widget.TintedDrawable; import org.chromium.device.mojom.ScreenOrientationLockType; import org.chromium.ui.util.ColorUtils; +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; ++import org.chromium.chrome.browser.flags.CustomTabProfileType; + /** Stores info about a web app. */ @NullMarked public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider { -@@ -47,6 +49,8 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider +@@ -47,6 +50,8 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider private final ColorProviderImpl mDarkColorProvider; private @DisplayMode.EnumType int mResolvedDisplayMode = DisplayMode.UNDEFINED; @@ -1145,7 +1146,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappI /** Returns the toolbar color to use if a custom color is not specified by the webapp. */ public static int getDefaultToolbarColor() { return Color.WHITE; -@@ -82,6 +86,10 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider +@@ -82,6 +87,10 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider mWebappExtras = webappExtras; mWebApkExtras = webApkExtras; mActivityType = (webApkExtras != null) ? ActivityType.WEB_APK : ActivityType.WEBAPP; @@ -1156,7 +1157,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappI } @Override -@@ -177,6 +185,13 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider +@@ -177,6 +186,13 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider return mWebApkExtras; } @@ -1914,7 +1915,16 @@ diff --git a/chrome/browser/signin/services/android/java/src/org/chromium/chrome mImageSize = imageSize; mDefaultBadgeConfig = badgeConfig; mPlaceholderImage = getScaledPlaceholderImage(context, imageSize); -@@ -266,7 +263,6 @@ public class ProfileDataCache implements IdentityManager.Observer, AccountsChang +@@ -255,8 +252,6 @@ public class ProfileDataCache implements IdentityManager.Observer, AccountsChang + return; + } + mPerAccountBadgeConfig.put(accountId, badgeConfig); +- var accountInfo = mIdentityManager.findExtendedAccountInfoByAccountId(accountId); +- onExtendedAccountInfoUpdated(accountInfo); + } + + /** +@@ -266,7 +261,6 @@ public class ProfileDataCache implements IdentityManager.Observer, AccountsChang ThreadUtils.assertOnUiThread(); if (mObservers.isEmpty()) { mAccountManagerFacade.addObserver(this); @@ -1922,7 +1932,7 @@ diff --git a/chrome/browser/signin/services/android/java/src/org/chromium/chrome } mObservers.addObserver(observer); } -@@ -279,7 +275,6 @@ public class ProfileDataCache implements IdentityManager.Observer, AccountsChang +@@ -279,7 +273,6 @@ public class ProfileDataCache implements IdentityManager.Observer, AccountsChang mObservers.removeObserver(observer); if (mObservers.isEmpty()) { mAccountManagerFacade.removeObserver(this); @@ -1930,7 +1940,7 @@ diff --git a/chrome/browser/signin/services/android/java/src/org/chromium/chrome } } -@@ -311,6 +306,7 @@ public class ProfileDataCache implements IdentityManager.Observer, AccountsChang +@@ -311,6 +304,7 @@ public class ProfileDataCache implements IdentityManager.Observer, AccountsChang } private void updateCache() { @@ -1938,7 +1948,7 @@ diff --git a/chrome/browser/signin/services/android/java/src/org/chromium/chrome var accounts = mAccountManagerFacade.getAccounts(); if (!accounts.isFulfilled()) { // When the list of accounts is ready - onCoreAccountInfosChanged will call -@@ -320,14 +316,6 @@ public class ProfileDataCache implements IdentityManager.Observer, AccountsChang +@@ -320,14 +314,6 @@ public class ProfileDataCache implements IdentityManager.Observer, AccountsChang List displayableAccounts = new ArrayList<>(); for (CoreAccountInfo account : accounts.getResult()) { diff --git a/build/patches/Add-bookmark-import-export-actions.patch b/build/patches/Add-bookmark-import-export-actions.patch index bb998c1c..2508a2b9 100644 --- a/build/patches/Add-bookmark-import-export-actions.patch +++ b/build/patches/Add-bookmark-import-export-actions.patch @@ -16,7 +16,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/TabbedModeTabDelegateFactory.java | 5 +- .../app/bookmarks/BookmarkActivity.java | 20 ++ .../native_page/NativePageFactory.java | 7 +- - chrome/browser/BUILD.gn | 9 + + chrome/browser/BUILD.gn | 7 + .../bookmarks/android/bookmark_bridge.cc | 193 ++++++++++++ .../bookmarks/android/bookmark_bridge.h | 30 +- .../browser/bookmarks/BookmarkBridge.java | 39 +++ @@ -51,7 +51,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html ui/shell_dialogs/select_file_dialog_linux.cc | 4 + ui/shell_dialogs/select_file_dialog_linux.h | 2 + ui/shell_dialogs/select_file_dialog_win.cc | 5 + - 40 files changed, 792 insertions(+), 21 deletions(-) + 40 files changed, 790 insertions(+), 21 deletions(-) create mode 100644 cromite_flags/chrome/browser/about_flags_cc/add-bookmark-import-export-actions.inc create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/add-bookmark-import-export-actions.inc create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/add-bookmark-import-export-actions.inc @@ -205,16 +205,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 -@@ -210,6 +210,8 @@ static_library("browser") { - "bad_message.h", - "browser_about_handler.cc", - "browser_about_handler.h", -+ "bookmarks/bookmark_html_writer.cc", -+ "bookmarks/bookmark_html_writer.h", - "browser_features.cc", - "browser_features.h", - "browser_process_impl.cc", -@@ -1327,6 +1329,13 @@ static_library("browser") { +@@ -1327,6 +1327,13 @@ static_library("browser") { "webauthn/webauthn_switches.cc", ] diff --git a/build/patches/Add-cromite-flags-support.patch b/build/patches/Add-cromite-flags-support.patch index 724083c4..bd252206 100644 --- a/build/patches/Add-cromite-flags-support.patch +++ b/build/patches/Add-cromite-flags-support.patch @@ -1580,7 +1580,7 @@ diff --git a/components/webui/flags/resources/experiment.css b/components/webui/ } +.experiment-on select { -+ background: #dddddd; ++ background: #ddd; + color: var(--link-color); +} + @@ -1722,11 +1722,13 @@ 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 -@@ -440,4 +440,5 @@ CONTENT_EXPORT bool IsFluidResizeEnabled(); - - } // namespace features +@@ -438,6 +438,7 @@ CONTENT_EXPORT bool IsPushSubscriptionChangeEventEnabled(); + CONTENT_EXPORT bool IsFluidResizeEnabled(); + #endif +#include "cromite_flags/content_public_common_content_features_h.inc" + } // namespace features + #endif // CONTENT_PUBLIC_COMMON_CONTENT_FEATURES_H_ diff --git a/cromite_flags/BUILD.gn b/cromite_flags/BUILD.gn new file mode 100755 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 44285d5b..7906f8ae 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 -@@ -661,7 +661,7 @@ config("compiler") { +@@ -669,7 +669,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 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 003efffd..94ea5ce6 100644 --- a/build/patches/Add-menu-item-to-bookmark-all-tabs.patch +++ b/build/patches/Add-menu-item-to-bookmark-all-tabs.patch @@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../bookmarks/bookmark_parent_folder.cc | 1 + .../permanent_folder_ordering_tracker.cc | 2 + .../dialogs/DownloadLocationCustomView.java | 4 +- - .../strings/android_chrome_strings.grd | 3 ++ + .../strings/android_chrome_strings.grd | 6 +-- .../bookmark_ui_operations_helper.cc | 2 + .../bookmark_bar_page_handler.cc | 2 + components/bookmark_bar_strings.grdp | 6 +++ @@ -31,7 +31,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html components/bookmarks/browser/bookmark_uuids.h | 1 + components/bookmarks/browser/model_loader.cc | 9 +++- .../bookmark_specifics_conversions.cc | 1 + - 27 files changed, 251 insertions(+), 11 deletions(-) + 27 files changed, 251 insertions(+), 14 deletions(-) diff --git a/chrome/android/java/res/values/ids.xml b/chrome/android/java/res/values/ids.xml --- a/chrome/android/java/res/values/ids.xml @@ -470,6 +470,16 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro Get image descriptions +@@ -4733,9 +4736,6 @@ To change this setting, BEGIN_LINKdelete the Chrome d + + Reopen closed group + +- +- Bookmark all tabs +- + + Unpin + diff --git a/chrome/browser/ui/bookmarks/bookmark_ui_operations_helper.cc b/chrome/browser/ui/bookmarks/bookmark_ui_operations_helper.cc --- a/chrome/browser/ui/bookmarks/bookmark_ui_operations_helper.cc +++ b/chrome/browser/ui/bookmarks/bookmark_ui_operations_helper.cc diff --git a/build/patches/Add-option-to-disable-snapshots.patch b/build/patches/Add-option-to-disable-snapshots.patch index 960f39ff..6012485f 100644 --- a/build/patches/Add-option-to-disable-snapshots.patch +++ b/build/patches/Add-option-to-disable-snapshots.patch @@ -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 -@@ -6709,6 +6709,14 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -6706,6 +6706,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 13bb4962..71f6bca3 100644 --- a/build/patches/Add-option-to-force-tablet-UI.patch +++ b/build/patches/Add-option-to-force-tablet-UI.patch @@ -7,7 +7,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../layout/custom_tabs_control_container.xml | 2 +- .../java/res/layout/recent_tabs_page.xml | 2 +- .../java/res/values-sw600dp/dimens.xml | 3 ++- - chrome/android/java/res/values/dimens.xml | 6 +++++- + chrome/android/java/res/values/dimens.xml | 3 ++- .../browser/ChromeBaseAppCompatActivity.java | 3 +++ .../chrome/browser/WarmupManager.java | 7 +++++-- .../ChromeAccessibilitySettingsDelegate.java | 19 +++++++++++++++++++ @@ -29,7 +29,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../java/res/layout/toolbar_tablet.xml | 2 +- .../java/res/values-sw600dp/dimens.xml | 5 +++-- .../toolbar/java/res/values/dimens.xml | 6 ++++-- - .../toolbar/top/ToolbarControlContainer.java | 19 +++++++++++++++++++ + .../toolbar/top/ToolbarControlContainer.java | 6 ++++++ .../browser/toolbar/top/ToolbarLayout.java | 5 ++++- .../tab_strip/HeightTransitionHandler.java | 2 ++ .../TabStripTransitionCoordinator.java | 6 +++++- @@ -37,7 +37,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../accessibility/AccessibilitySettings.java | 13 +++++++++++++ .../AccessibilitySettingsDelegate.java | 2 ++ .../chromium/ui/base/DeviceFormFactor.java | 14 ++++++++++++++ - 33 files changed, 165 insertions(+), 22 deletions(-) + 33 files changed, 149 insertions(+), 22 deletions(-) diff --git a/chrome/android/java/res/layout/custom_tabs_control_container.xml b/chrome/android/java/res/layout/custom_tabs_control_container.xml --- a/chrome/android/java/res/layout/custom_tabs_control_container.xml @@ -72,28 +72,23 @@ diff --git a/chrome/android/java/res/values-sw600dp/dimens.xml b/chrome/android/ - 96dp + 96dp -+ 96dp ++ 56dp 60dp diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res/values/dimens.xml --- a/chrome/android/java/res/values/dimens.xml +++ b/chrome/android/java/res/values/dimens.xml -@@ -116,9 +116,13 @@ found in the LICENSE file. +@@ -116,7 +116,8 @@ found in the LICENSE file. 50dp - @dimen/default_action_bar_height + @dimen/default_action_bar_height -+ 96dp ++ 56dp @dimen/default_action_bar_height -+ -+ 56dp -+ - 375dp - 64dp 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 @@ -489,27 +484,14 @@ 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; -@@ -174,6 +175,24 @@ public class ToolbarControlContainer extends OptimizedFrameLayout +@@ -174,6 +175,11 @@ public class ToolbarControlContainer extends OptimizedFrameLayout @Initializer public void initWithToolbar(int toolbarLayoutId, int toolbarLayoutHeightResId) { try (TraceEvent te = TraceEvent.scoped("ToolbarControlContainer.initWithToolbar")) { + if (DeviceFormFactor.isForceTabletUI() && toolbarLayoutHeightResId != 0) { -+ toolbarLayoutHeightResId = R.dimen.tab_strip_height_tabletui; ++ toolbarLayoutHeightResId = R.dimen.control_container_height_tabletui; + Resources res = getContext().getResources(); + setMinimumHeight((int) res.getDimension(toolbarLayoutHeightResId)); -+ int tab_strip_height = -+ (int) res.getDimension(R.dimen.tab_strip_height_tabletui); -+ -+ View view = findViewById(R.id.toolbar_stub); -+ if (view != null) -+ ((MarginLayoutParams)view.getLayoutParams()).topMargin = tab_strip_height; -+ -+ view = findViewById(R.id.toolbar_hairline); -+ if (view != null) view.setVisibility(View.GONE); -+ -+ view = findViewById(R.id.find_toolbar_stub); -+ if (view != null) -+ ((MarginLayoutParams)view.getLayoutParams()).topMargin = tab_strip_height; + } mToolbarContainer = findViewById(R.id.toolbar_container); mToolbarLayoutHeight = getResources().getDimensionPixelSize(toolbarLayoutHeightResId); 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 340a21d7..a28d1e17 100644 --- a/build/patches/Add-setting-to-clear-data-on-exit.patch +++ b/build/patches/Add-setting-to-clear-data-on-exit.patch @@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../browsing_data/BrowsingDataBridge.java | 12 +-- .../ClearBrowsingDataFragment.java | 37 +++++++-- .../ClearBrowsingDataFragmentAtStart.java | 79 +++++++++++++++++++ - chrome/app/settings_strings.grdp | 10 +++ + chrome/app/settings_strings.grdp | 8 ++ chrome/browser/about_flags.cc | 1 + .../browsing_data/browsing_data_bridge.cc | 17 +++- .../chrome_browsing_data_lifetime_manager.cc | 22 +++++- @@ -20,16 +20,24 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../profiles/android/profile_manager_utils.cc | 5 ++ chrome/browser/profiles/profile_manager.cc | 17 +++- chrome/browser/profiles/profile_manager.h | 2 + + .../clear_browsing_data_browser_proxy.ts | 1 + + .../clear_browsing_data_dialog_v2.html | 20 ++++- + .../clear_browsing_data_dialog_v2.ts | 62 ++++++++++++++- + .../clear_browsing_data_time_picker.ts | 6 +- + .../settings/privacy_page/privacy_page.html | 12 +++ + .../settings/privacy_page/privacy_page.ts | 10 +++ + .../privacy_page/privacy_page_index.ts | 2 +- + chrome/browser/resources/settings/route.ts | 2 + + chrome/browser/resources/settings/router.ts | 1 + .../strings/android_chrome_strings.grd | 3 + .../Add-setting-to-clear-data-on-exit.grdp | 9 +++ - .../settings_localized_strings_provider.cc | 1 + + .../settings_localized_strings_provider.cc | 4 + .../content/browsing_data_helper.cc | 9 ++- components/browsing_data/core/BUILD.gn | 5 ++ .../core/browsing_data_policies_utils.cc | 20 ++--- .../core/browsing_data_policies_utils.h | 11 +++ .../browsing_data/core/browsing_data_utils.cc | 31 ++++++++ .../core/clear_browsing_data_tab.h | 3 +- - components/browsing_data/core/features.h | 1 + components/browsing_data/core/pref_names.cc | 17 ++++ components/browsing_data/core/pref_names.h | 10 +++ components/favicon/core/favicon_database.cc | 9 +++ @@ -39,7 +47,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 ++ - 35 files changed, 369 insertions(+), 35 deletions(-) + 43 files changed, 473 insertions(+), 47 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 @@ -346,18 +354,16 @@ 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 -@@ -2222,6 +2222,16 @@ +@@ -2222,6 +2222,14 @@ Delete browsing data + -+ -+ At Close ++ ++ Clear browsing data when closing Cromite + -+ -+ -+ -+ At Startup ++ ++ Choose what to automatically delete when you close Cromite + + @@ -631,6 +637,352 @@ diff --git a/chrome/browser/profiles/profile_manager.h b/chrome/browser/profiles // If a profile with the given path is currently managed by this object and // fully initialized, return a pointer to the corresponding Profile object; // otherwise return null. +diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_browser_proxy.ts b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_browser_proxy.ts +--- a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_browser_proxy.ts ++++ b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_browser_proxy.ts +@@ -42,6 +42,7 @@ export enum BrowsingDataType { + SITE_SETTINGS = 5, + DOWNLOADS = 6, + HOSTED_APPS_DATA = 7, ++ PASSWORDS = 8, + // TABS = 8, Not used on Desktop. + } + // LINT.ThenChange(/components/browsing_data/core/browsing_data_utils.h:BrowsingDataType) +diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog_v2.html b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog_v2.html +--- a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog_v2.html ++++ b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog_v2.html +@@ -40,6 +40,8 @@ + + #deleteBrowsingDataDialog::part(dialog) { + max-height: var(--dbd-dialog-max-height); ++ top: 300px; ++ width: 590px; + } + + #deletingDataAlert { +@@ -99,18 +101,25 @@ +

++ +
+
+
+ +diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog_v2.ts b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog_v2.ts +--- a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog_v2.ts ++++ b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog_v2.ts +@@ -91,6 +91,17 @@ const ALL_BROWSING_DATATYPES_LIST: BrowsingDataType[] = [ + BrowsingDataType.HOSTED_APPS_DATA, + ]; + ++const ALL_BROWSING_DATATYPES_LIST_AT_CLOSE: BrowsingDataType[] = [ ++ BrowsingDataType.HISTORY, ++ BrowsingDataType.SITE_DATA, ++ BrowsingDataType.CACHE, ++ BrowsingDataType.DOWNLOADS, ++ BrowsingDataType.FORM_DATA, ++ BrowsingDataType.SITE_SETTINGS, ++ BrowsingDataType.PASSWORDS, ++ BrowsingDataType.HOSTED_APPS_DATA, ++]; ++ + /** The list of Browsing Data types that should be expanded by default. */ + const DEFAULT_BROWSING_DATATYPES_LIST: BrowsingDataType[] = [ + BrowsingDataType.HISTORY, +@@ -120,12 +131,36 @@ function getDataTypeLabel(datatypes: BrowsingDataType) { + return loadTimeData.getString('clearDownloadHistory'); + case BrowsingDataType.HOSTED_APPS_DATA: + return loadTimeData.getString('clearHostedAppData'); ++ case BrowsingDataType.PASSWORDS: ++ return loadTimeData.getString('clearPasswords'); + default: + assertNotReachedCase(datatypes); + } + } + +-export function getDataTypePrefName(datatypes: BrowsingDataType) { ++export function getDataTypePrefName(datatypes: BrowsingDataType, atclose: boolean) { ++ if (atclose) { ++ switch (datatypes) { ++ case BrowsingDataType.HISTORY: ++ return 'browser.clear_data.browsing_history_at_start'; ++ case BrowsingDataType.CACHE: ++ return 'browser.clear_data.cache_at_start'; ++ case BrowsingDataType.SITE_DATA: ++ return 'browser.clear_data.cookies_at_start'; ++ case BrowsingDataType.FORM_DATA: ++ return 'browser.clear_data.form_data_at_start'; ++ case BrowsingDataType.SITE_SETTINGS: ++ return 'browser.clear_data.site_settings_at_start'; ++ case BrowsingDataType.DOWNLOADS: ++ return 'browser.clear_data.download_history_at_start'; ++ case BrowsingDataType.HOSTED_APPS_DATA: ++ return 'browser.clear_data.hosted_apps_data_at_start'; ++ case BrowsingDataType.PASSWORDS: ++ return 'browser.clear_data.passwords_at_start'; ++ default: ++ assertNotReachedCase(datatypes); ++ } ++ } + switch (datatypes) { + case BrowsingDataType.HISTORY: + return 'browser.clear_data.browsing_history'; +@@ -141,6 +176,8 @@ export function getDataTypePrefName(datatypes: BrowsingDataType) { + return 'browser.clear_data.download_history'; + case BrowsingDataType.HOSTED_APPS_DATA: + return 'browser.clear_data.hosted_apps_data'; ++ case BrowsingDataType.PASSWORDS: ++ return 'browser.clear_data.passwords'; + default: + assertNotReachedCase(datatypes); + } +@@ -161,6 +198,12 @@ export class SettingsClearBrowsingDataDialogV2Element extends + + static get properties() { + return { ++ clearBrowsingDialogAtClose: { ++ type: Boolean, ++ value: '', ++ reflectToAttribute: true, ++ }, ++ + dataTypesExpanded_: { + type: Boolean, + value: false, +@@ -224,6 +267,8 @@ export class SettingsClearBrowsingDataDialogV2Element extends + }; + } + ++ declare private clearBrowsingDialogAtClose: boolean; ++ + declare private dataTypesExpanded_: boolean; + declare private deleteButtonLabel_: string; + declare private deletingDataAlertString_: string; +@@ -310,10 +355,14 @@ export class SettingsClearBrowsingDataDialogV2Element extends + const expandedOptionsList: BrowsingDataTypeOption[] = []; + const moreOptionsList: BrowsingDataTypeOption[] = []; + +- ALL_BROWSING_DATATYPES_LIST.forEach((datatype) => { ++ var list = ALL_BROWSING_DATATYPES_LIST; ++ if (this.clearBrowsingDialogAtClose) ++ list = ALL_BROWSING_DATATYPES_LIST_AT_CLOSE; ++ ++ list.forEach((datatype) => { + const datatypeOption = { + label: getDataTypeLabel(datatype), +- pref: this.getPref(getDataTypePrefName(datatype)), ++ pref: this.getPref(getDataTypePrefName(datatype, this.clearBrowsingDialogAtClose)), + }; + + if (this.shouldDataTypeBeExpanded_(datatype)) { +@@ -362,7 +411,12 @@ export class SettingsClearBrowsingDataDialogV2Element extends + + private shouldDataTypeBeExpanded_(datatype: BrowsingDataType) { + return DEFAULT_BROWSING_DATATYPES_LIST.includes(datatype) || +- this.getPref(getDataTypePrefName(datatype)).value; ++ this.getPref(getDataTypePrefName(datatype, this.clearBrowsingDialogAtClose)).value || ++ this.clearBrowsingDialogAtClose; ++ } ++ ++ private shouldShowSubLabel_(value: string) { ++ return this.clearBrowsingDialogAtClose ? '' : value; + } + + private computeDeleteButtonLabel_() { +diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_time_picker.ts b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_time_picker.ts +--- a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_time_picker.ts ++++ b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_time_picker.ts +@@ -80,7 +80,7 @@ export class SettingsClearBrowsingDataTimePicker extends + selectedTimePeriod_: { + type: Number, + observer: 'onTimePeriodSelectionChanged_', +- value: TimePeriod.LAST_HOUR, ++ value: TimePeriod.ALL_TIME, + }, + + /** +@@ -91,12 +91,12 @@ export class SettingsClearBrowsingDataTimePicker extends + readOnly: true, + type: Array, + value: [ ++ TimePeriod.ALL_TIME, + TimePeriod.LAST_15_MINUTES, + TimePeriod.LAST_HOUR, + TimePeriod.LAST_DAY, + TimePeriod.LAST_WEEK, + TimePeriod.FOUR_WEEKS, +- TimePeriod.ALL_TIME, + ], + }, + +@@ -125,7 +125,7 @@ export class SettingsClearBrowsingDataTimePicker extends + */ + maxChipsShown_: { + type: Number, +- value: 4, ++ value: 6, + }, + }; + } +diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.html b/chrome/browser/resources/settings/privacy_page/privacy_page.html +--- a/chrome/browser/resources/settings/privacy_page/privacy_page.html ++++ b/chrome/browser/resources/settings/privacy_page/privacy_page.html +@@ -6,6 +6,13 @@ + on-browsing-data-deleted="onBrowsingDataDeleted_"> + + ++ +