From ea944bb5e60b64c60d07fe509affda4790a02179 Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Mon, 27 Oct 2025 13:57:27 +0100 Subject: [PATCH 1/6] Patches for v142 --- .../Add-AllowUserCertificates-flag.patch | 20 +- ...dd-Alt-D-hotkey-to-focus-address-bar.patch | 2 +- .../Add-IsCleartextPermitted-flag.patch | 2 +- ...tialLowEndModeOnMidRangeDevices-flag.patch | 2 +- ...-flag-to-disable-trybot-verification.patch | 7 +- .../Add-a-flag-to-disable-GamePad-API.patch | 12 +- .../Add-a-proxy-configuration-page.patch | 16 +- .../Add-an-always-incognito-mode.patch | 154 ++++----- .../Add-bookmark-import-export-actions.patch | 105 +++--- build/patches/Add-cromite-test-support.patch | 18 +- ...dd-custom-tab-intents-privacy-option.patch | 32 +- build/patches/Add-exit-menu-item.patch | 14 +- ...g-for-omnibox-autocomplete-filtering.patch | 2 +- ...nfigure-maximum-connections-per-host.patch | 2 +- .../Add-flag-to-disable-IPv6-probes.patch | 4 +- ...-to-disable-external-intent-requests.patch | 16 +- .../Add-flag-to-disable-vibration.patch | 2 +- ...-switch-for-unsupported-clangd-flags.patch | 20 +- ...Add-lifetime-options-for-permissions.patch | 36 +- .../Add-menu-item-to-bookmark-all-tabs.patch | 65 ++-- .../Add-menu-item-to-view-source.patch | 14 +- .../Add-option-to-disable-snapshots.patch | 14 +- .../Add-option-to-force-tablet-UI.patch | 52 +-- ...-to-not-persist-tabs-across-sessions.patch | 6 +- build/patches/Add-search-engine.patch | 4 +- .../Add-setting-to-clear-data-on-exit.patch | 58 ++-- ...tting-to-enable-Credman-for-passkeys.patch | 16 +- ...d-setting-to-invert-tap-and-long-tap.patch | 40 +-- build/patches/Add-site-engagement-flag.patch | 4 +- ...-support-for-ISupportHelpAndFeedback.patch | 8 +- build/patches/Add-webGL-site-setting.patch | 14 +- build/patches/Add-webRTC-site-settings.patch | 8 +- ...ow-building-without-enable_reporting.patch | 24 +- ...ow-building-without-supervised-users.patch | 16 +- .../Allow-playing-audio-in-background.patch | 4 +- ...ays-open-browser-controls-in-new-tab.patch | 4 +- .../patches/Android-Pixel-Perfect-Mode.patch | 300 ++++++++--------- ...roid-Toolbar-Scroll-Ablation-setting.patch | 2 +- ...roid-fonts-fingerprinting-mitigation.patch | 69 ++-- ...Ask-for-restart-on-connection-change.patch | 28 +- ...ioBuffer-AnalyserNode-fp-mitigations.patch | 2 +- ...Block-gateway-attacks-via-websockets.patch | 8 +- ...k-leakage-of-urls-in-sandbox-iframes.patch | 8 +- .../Block-qjz9zk-or-trk-requests.patch | 14 +- .../Bookmarks-select-all-menu-entry.patch | 2 +- .../Bromite-subresource-adblocker.patch | 36 +- .../Bubble-Locking-on-UI-DevTools.patch | 6 +- .../patches/Chrome-web-store-protection.patch | 150 ++++----- ...ORS-Preflight-Cache-on-clearing-data.patch | 2 +- build/patches/Client-hints-overrides.patch | 20 +- .../patches/Close-Sessions-On-Ip-Change.patch | 6 +- ...romite-Branding--improve-settings-ui.patch | 2 +- build/patches/Cromite-Branding.patch | 26 +- build/patches/Customize-selection-popup.patch | 46 +-- ...ctionary-suggestions-for-the-Omnibox.patch | 8 +- ...ble-Accessibility-service-by-default.patch | 14 +- .../Disable-Android-AppRestrictions.patch | 6 +- .../Disable-CSS-blink-feature-support.patch | 4 +- .../Disable-CSSDynamicRangeLimit.patch | 2 +- build/patches/Disable-Compose-feature.patch | 14 +- build/patches/Disable-FedCm.patch | 2 +- build/patches/Disable-GSA-by-default.patch | 28 +- .../Disable-GetInstalledRelatedApps-API.patch | 2 +- build/patches/Disable-PrivacyGuide.patch | 2 +- build/patches/Disable-Real-Box.patch | 57 ++-- build/patches/Disable-TLS-resumption.patch | 14 +- build/patches/Disable-Viewport-Segments.patch | 2 +- build/patches/Disable-WebGPU.patch | 2 +- .../patches/Disable-all-predictors-code.patch | 311 +++++++++--------- build/patches/Disable-all-promo-dialogs.patch | 6 +- .../Disable-conversion-measurement-api.patch | 105 +++--- build/patches/Disable-crash-reporting.patch | 6 +- .../Disable-css-preferred-text-scale.patch | 2 +- .../Disable-feeds-support-by-default.patch | 2 +- ...Disable-fetching-of-all-field-trials.patch | 22 +- build/patches/Disable-idle-detection.patch | 2 +- ...media-router-and-remoting-by-default.patch | 8 +- .../Disable-minidump-upload-scheduling.patch | 6 +- .../Disable-omission-of-URL-elements.patch | 4 +- .../patches/Disable-plugins-enumeration.patch | 2 +- ...ers-reduced-transparency-media-query.patch | 2 +- ...e-privacy-issues-in-password-manager.patch | 10 +- build/patches/Disable-privacy-sandbox.patch | 26 +- .../patches/Disable-ranker-url-fetcher.patch | 4 +- ...e-references-to-fonts.googleapis.com.patch | 6 +- ...ble-remote-altsvc-for-h3-connections.patch | 6 +- build/patches/Disable-safety-check.patch | 23 +- .../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 | 6 +- .../Disable-third-party-origin-trials.patch | 14 +- build/patches/Disable-various-metrics.patch | 14 +- ...allow-Android-App-Scheme-as-referrer.patch | 2 +- .../Do-not-build-API-keys-infobar.patch | 2 +- .../Do-not-compile-QR-code-sharing.patch | 18 +- .../patches/Do-not-link-with-libatomic.patch | 2 +- .../Do-not-store-passwords-by-default.patch | 8 +- ...Windows-ClearType-Text-Tuner-setting.patch | 4 +- ...ndroid-Dynamic-Performance-Framework.patch | 16 +- build/patches/Enable-Cert-Management-UI.patch | 2 +- .../Enable-Certificate-Transparency.patch | 4 +- .../Enable-ClientHello-Segmentation.patch | 4 +- ...le-Document-Open-Inheritance-Removal.patch | 4 +- .../Enable-Global-Privacy-Control.patch | 36 +- build/patches/Enable-HEVC-by-default.patch | 6 +- ...Enable-HighEfficiencyMode-by-default.patch | 19 +- .../Enable-ImprovedBookmarks-by-default.patch | 2 +- ...cessBoundStringEncryption-by-default.patch | 4 +- ...ctOriginIsolation-and-SitePerProcess.patch | 4 +- build/patches/Enable-component-updater.patch | 12 +- ...e-darken-websites-checkbox-in-themes.patch | 2 +- ...fwrapv-in-Clang-for-non-UBSan-builds.patch | 2 +- .../patches/Enable-gwp-asan-on-Android.patch | 10 +- .../Enable-menu-on-reload-button.patch | 2 +- .../Enable-native-Android-autofill.patch | 120 +++---- .../Enable-network-isolation-features.patch | 12 +- ...le-platform-aac-audio-and-h264-video.patch | 6 +- build/patches/Enable-share-intent.patch | 18 +- ...ivation-of-the-js-debugger-statement.patch | 24 +- .../Experimental-user-scripts-support.patch | 62 ++-- build/patches/Eyeo-Adblock-for-Cromite.patch | 55 ++-- build/patches/Fix-chromium-vanilla.patch | 2 +- .../Fonts-fingerprinting-mitigation.patch | 12 +- .../Force-use-vpython3-for-some-scripts.patch | 4 +- .../Guard-for-user-agent-reduction.patch | 6 +- .../High-Resolution-Timing-Mitigation.patch | 10 +- .../patches/Improve-the-browser-sandbox.patch | 2 +- build/patches/Internal-firewall.patch | 32 +- build/patches/JIT-site-settings.patch | 38 +-- .../Keep-ComputePressure-disabled.patch | 2 +- .../patches/Keep-Manta-Service-Disabled.patch | 30 +- .../patches/Keep-disabled-FetchLaterAPI.patch | 23 +- ...ep-disabled-WebViewMediaIntegrityApi.patch | 2 +- .../Keep-empty-tabs-between-sessions.patch | 11 +- ...-allow-screenshots-in-Incognito-mode.patch | 2 +- build/patches/Keyboard-protection-flag.patch | 12 +- .../Lock-Profile-Cookie-Database.patch | 4 +- ...ing-attributes-in-some-html-elements.patch | 51 ++- build/patches/Logcat-crash-reports-UI.patch | 4 +- .../patches/Modify-default-preferences.patch | 12 +- .../Move-navigation-bar-to-bottom.patch | 218 ++++++------ ...nt-settings-back-to-privacy-settings.patch | 2 +- .../Multiple-fingerprinting-mitigations.patch | 34 +- build/patches/Never-fetch-popular-sites.patch | 4 +- ...er-treat-Proguard-warnings-as-errors.patch | 2 +- build/patches/OpenSearch-miscellaneous.patch | 2 +- .../patches/Override-Navigator-Language.patch | 4 +- .../Override-the-MV2-deprecation.patch | 2 +- .../Partition-Blink-memory-cache.patch | 58 ++-- .../patches/Partition-HSTS-cache-by-NAK.patch | 52 +-- .../Partition-MediaDeviceId-by-default.patch | 6 +- .../Partition-blobs-by-top-frame-URL.patch | 6 +- ...ning-all-cookies-by-top-frame-domain.patch | 32 +- ...vate-network-access-content-settings.patch | 8 +- ...redential-fingerprinting-mitigations.patch | 8 +- ...-modal-dialog-flag-to-close-all-tabs.patch | 6 +- ...e-introduce-override_build_timestamp.patch | 2 +- ...ders-in-DoH-requests-to-bare-minimum.patch | 18 +- .../Remove-ChromiumNetworkAdapter.patch | 4 +- ...th-header-upon-cross-origin-redirect.patch | 2 +- .../Remove-binary-blob-integrations.patch | 215 ++++++------ .../Remove-detection-of-captive-portals.patch | 2 +- .../Remove-segmentation-platform.patch | 6 +- ...t-for-device-memory-and-cpu-recovery.patch | 2 +- ...Remove-voice-recognition-integration.patch | 120 +++---- ...ndow-name-on-cross-origin-navigation.patch | 8 +- .../Restore-LastTabStandingTracker.patch | 12 +- .../Restore-Search-Ready-Omnibox-flag.patch | 10 +- ...-button-in-top-toolbar-customization.patch | 30 +- .../Restore-offline-indicator-v2-flag.patch | 8 +- ...emove-disable-pull-to-refresh-effect.patch | 6 +- ...l-of-execution-context-address-space.patch | 42 +-- ...script-content-setting-secondary-url.patch | 12 +- .../Set-caret-blink-interval-to-default.patch | 2 +- .../Set-the-screen-frame-rate-to-60-Hz.patch | 74 ++--- build/patches/Show-NTP-at-startup.patch | 43 +-- ...tings-for-cookies-javascript-and-ads.patch | 10 +- build/patches/Site-setting-for-images.patch | 22 +- .../Switch-to-fstack-protector-strong.patch | 2 +- .../Temp-disable-UseContextSnapshot.patch | 4 +- ...e-experimental-web-platform-features.patch | 2 +- ...ileSystemAccessPersistentPermissions.patch | 10 +- build/patches/Timezone-customization.patch | 18 +- .../patches/Use-BoringSSL-for-RandBytes.patch | 12 +- .../Use-browser-navigation-handler.patch | 4 +- .../Use-list-mode-for-tab-switcher.patch | 38 +-- build/patches/Viewport-Protection-flag.patch | 64 ++-- .../WIN-Disable-search-for-image.patch | 4 +- build/patches/WIN-enable-pdf-plugin.patch | 2 +- ...message-for-unsupported-hardware-aes.patch | 16 +- build/patches/Welcome-screen.patch | 36 +- build/patches/add-browser-policy.patch | 60 ++-- ...load-of-clang-for-windows-crossbuild.patch | 10 +- build/patches/autofill-miscellaneous.patch | 30 +- build/patches/bromite-build-utils.patch | 14 +- build/patches/disable-AdsBlockedInfoBar.patch | 2 +- .../disable-WebView-variations-support.patch | 10 +- ...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 | 2 +- build/patches/eyeo-133.0.6943.49-base.patch | 60 ++-- ...yeo-133.0.6943.49-chrome_integration.patch | 66 ++-- .../eyeo-133.0.6943.49-extension_api.patch | 24 +- .../kill-Location-fall-back-to-system.patch | 8 +- .../sharing-hub-always-use-visible-URL.patch | 2 +- ...hromium-Disable-Network-Time-Tracker.patch | 8 +- ...gled-chromium-Disable-profile-avatar.patch | 2 +- ...romium-Disable-translate-integration.patch | 4 +- ...ed-chromium-Disable-untraceable-URLs.patch | 4 +- ...chromium-Disable-webRTC-log-uploader.patch | 2 +- ...ed-chromium-no-special-hosts-domains.patch | 118 ++++--- ...RTC-do-not-expose-local-IP-addresses.patch | 4 +- ...iew-Hard-no-to-persistent-histograms.patch | 2 +- 215 files changed, 2350 insertions(+), 2431 deletions(-) diff --git a/build/patches/Add-AllowUserCertificates-flag.patch b/build/patches/Add-AllowUserCertificates-flag.patch index df21203f..8a9e869b 100644 --- a/build/patches/Add-AllowUserCertificates-flag.patch +++ b/build/patches/Add-AllowUserCertificates-flag.patch @@ -20,7 +20,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -239,6 +239,7 @@ import org.chromium.content_public.browser.LoadUrlParams; +@@ -242,6 +242,7 @@ import org.chromium.content_public.browser.LoadUrlParams; import org.chromium.content_public.browser.SelectionPopupController; import org.chromium.content_public.browser.WebContents; import org.chromium.content_public.common.ContentSwitches; @@ -28,7 +28,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv import org.chromium.printing.PrintManagerDelegateImpl; import org.chromium.printing.PrintingController; import org.chromium.printing.PrintingControllerImpl; -@@ -999,6 +1000,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -1004,6 +1005,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 -@@ -181,6 +181,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -185,6 +185,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &feed::kFeedPerformanceStudy, &feed::kFeedShowSignInCommand, &feed::kFeedSignedOutViewDemotion, @@ -51,7 +51,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -162,6 +162,7 @@ public abstract class ChromeFeatureList { +@@ -164,6 +164,7 @@ public abstract class ChromeFeatureList { "AccountForSuppressedKeyboardInsets"; public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_CUSTOMIZATION_V2 = "AdaptiveButtonInTopToolbarCustomizationV2"; @@ -59,23 +59,23 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_PAGE_SUMMARY = "AdaptiveButtonInTopToolbarPageSummary"; public static final String ALLOW_TAB_CLOSING_UPON_MINIMIZATION = -@@ -796,6 +797,8 @@ public abstract class ChromeFeatureList { +@@ -807,6 +808,8 @@ public abstract class ChromeFeatureList { public static final CachedFlag sAndroidWindowPopupResizeAfterSpawn = - newCachedFlag(ANDROID_WINDOW_POPUP_RESIZE_AFTER_SPAWN, false); + newCachedFlag(ANDROID_WINDOW_POPUP_RESIZE_AFTER_SPAWN, false, true); public static final CachedFlag sAppSpecificHistory = newCachedFlag(APP_SPECIFIC_HISTORY, true); + public static final CachedFlag sAllowUserCertificates = + newCachedFlag(ALLOW_USER_CERTIFICATES, false); 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 { +@@ -1130,6 +1133,7 @@ public abstract class ChromeFeatureList { + sAllowTabClosingUponMinimization, sAndroidAnimatedProgressBarInBrowser, sAndroidAnimatedProgressBarInViz, - sAndroidAppIntegration, + sAllowUserCertificates, sAndroidAppIntegrationModule, sAndroidAppIntegrationMultiDataSource, - sAndroidAppIntegrationV2, + sAndroidBottomToolbar, diff --git a/cromite_flags/chrome/browser/about_flags_cc/Add-AllowUserCertificates-flag.inc b/cromite_flags/chrome/browser/about_flags_cc/Add-AllowUserCertificates-flag.inc new file mode 100644 --- /dev/null @@ -120,7 +120,7 @@ diff --git a/net/android/java/src/org/chromium/net/X509Util.java b/net/android/j public static AndroidCertVerifyResult verifyServerCertificates( byte[][] certChain, String authType, -@@ -637,6 +639,9 @@ public class X509Util { +@@ -639,6 +641,9 @@ public class X509Util { X509Certificate root = verifiedChain.get(verifiedChain.size() - 1); isIssuedByKnownRoot = isKnownRoot(root); } diff --git a/build/patches/Add-Alt-D-hotkey-to-focus-address-bar.patch b/build/patches/Add-Alt-D-hotkey-to-focus-address-bar.patch index fceaf6d3..f857bb8b 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 -@@ -895,6 +895,12 @@ public class KeyboardShortcuts { +@@ -883,6 +883,12 @@ public class KeyboardShortcuts { KeyEvent.KEYCODE_ESCAPE, KeyEvent.META_CTRL_ON); } diff --git a/build/patches/Add-IsCleartextPermitted-flag.patch b/build/patches/Add-IsCleartextPermitted-flag.patch index e75cef12..090c933f 100644 --- a/build/patches/Add-IsCleartextPermitted-flag.patch +++ b/build/patches/Add-IsCleartextPermitted-flag.patch @@ -44,7 +44,7 @@ new file mode 100644 diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc --- a/net/url_request/url_request_http_job.cc +++ b/net/url_request/url_request_http_job.cc -@@ -408,6 +408,11 @@ std::unique_ptr URLRequestHttpJob::Create(URLRequest* request) { +@@ -413,6 +413,11 @@ std::unique_ptr URLRequestHttpJob::Create(URLRequest* request) { } } diff --git a/build/patches/Add-PartialLowEndModeOnMidRangeDevices-flag.patch b/build/patches/Add-PartialLowEndModeOnMidRangeDevices-flag.patch index 8c82ee41..1a123980 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 -@@ -129,6 +129,10 @@ bool IsReducePPMsEnabled() { +@@ -188,6 +188,10 @@ bool IsReducePPMsEnabled() { return g_is_reduce_ppms_enabled.load(std::memory_order_relaxed); } diff --git a/build/patches/Add-a-GN-flag-to-disable-trybot-verification.patch b/build/patches/Add-a-GN-flag-to-disable-trybot-verification.patch index d2e16880..f53d665c 100644 --- a/build/patches/Add-a-GN-flag-to-disable-trybot-verification.patch +++ b/build/patches/Add-a-GN-flag-to-disable-trybot-verification.patch @@ -27,13 +27,14 @@ diff --git a/chrome/android/expectations/expectations.gni b/chrome/android/expec +enable_libs_and_assets_verification = enable_trybot_verification && !enable_chrome_android_internal && !is_component_build && !use_jacoco_coverage && is_official_build && - (target_cpu == "arm64" && android_channel == "stable") -@@ -15,6 +19,6 @@ enable_libs_and_assets_verification = + ((target_cpu == "arm64" || target_cpu == "x64") && +@@ -16,7 +20,7 @@ enable_libs_and_assets_verification = # use_jacoco_coverage: Adds proguard flags. # android_channel: Manifest entries vary based on channel. # target_cpu: android:versionCode varies. -enable_manifest_verification = +enable_manifest_verification = enable_trybot_verification && !is_java_debug && !enable_chrome_android_internal && !use_jacoco_coverage && - (target_cpu == "arm64" && android_channel == "stable") + ((target_cpu == "arm64" || target_cpu == "x64") && + android_channel == "stable") -- 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 a64f07cc..98c10998 100644 --- a/build/patches/Add-a-flag-to-disable-GamePad-API.patch +++ b/build/patches/Add-a-flag-to-disable-GamePad-API.patch @@ -17,7 +17,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.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 -@@ -8787,9 +8787,9 @@ +@@ -8924,9 +8924,9 @@ "expiry_milestone": 150 }, { @@ -32,7 +32,7 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js 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 -@@ -263,6 +263,8 @@ void SetRuntimeFeaturesFromChromiumFeatures() { +@@ -265,6 +265,8 @@ void SetRuntimeFeaturesFromChromiumFeatures() { {wf::EnablePaymentApp, raw_ref(features::kServiceWorkerPaymentApps)}, {wf::EnablePeriodicBackgroundSync, raw_ref(features::kPeriodicBackgroundSync)}, @@ -56,7 +56,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 -@@ -33,4 +33,12 @@ bool IsGamepadMultitouchEnabled() { +@@ -37,4 +37,12 @@ bool IsGamepadMultitouchEnabled() { return false; } @@ -72,10 +72,10 @@ diff --git a/device/gamepad/public/cpp/gamepad_features.cc b/device/gamepad/publ diff --git a/device/gamepad/public/cpp/gamepad_features.h b/device/gamepad/public/cpp/gamepad_features.h --- a/device/gamepad/public/cpp/gamepad_features.h +++ b/device/gamepad/public/cpp/gamepad_features.h -@@ -13,8 +13,10 @@ namespace features { - GAMEPAD_FEATURES_EXPORT BASE_DECLARE_FEATURE( - kEnableWindowsGamingInputDataFetcher); +@@ -15,8 +15,10 @@ GAMEPAD_FEATURES_EXPORT BASE_DECLARE_FEATURE( GAMEPAD_FEATURES_EXPORT BASE_DECLARE_FEATURE(kEnableGamepadMultitouch); + GAMEPAD_FEATURES_EXPORT BASE_DECLARE_FEATURE( + kEnableSimulatedGamepadDataFetcher); +GAMEPAD_FEATURES_EXPORT BASE_DECLARE_FEATURE(kRestrictGamepadAccess); GAMEPAD_FEATURES_EXPORT bool IsGamepadMultitouchEnabled(); diff --git a/build/patches/Add-a-proxy-configuration-page.patch b/build/patches/Add-a-proxy-configuration-page.patch index 5b42e599..9d89df06 100644 --- a/build/patches/Add-a-proxy-configuration-page.patch +++ b/build/patches/Add-a-proxy-configuration-page.patch @@ -89,7 +89,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 -@@ -409,6 +409,7 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() { +@@ -410,6 +410,7 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() { builtins_to_provide.push_back(chrome::kChromeUISettingsURL16); #endif builtins_to_provide.push_back(chrome::kChromeUIVersionURL16); @@ -100,7 +100,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 -@@ -226,6 +226,9 @@ +@@ -229,6 +229,9 @@ @@ -113,7 +113,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 -@@ -372,7 +372,7 @@ std::optional CreateProxyConfigDict( +@@ -375,7 +375,7 @@ std::optional CreateProxyConfigDict( return std::nullopt; } return ProxyConfigDictionary::CreateFixedServers(proxy_rules_string, @@ -197,7 +197,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 -@@ -204,6 +204,8 @@ +@@ -207,6 +207,8 @@ #include "printing/buildflags/buildflags.h" #include "rlz/buildflags/buildflags.h" @@ -206,7 +206,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 -@@ -1692,6 +1694,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) { +@@ -1749,6 +1751,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) { component_updater::RegisterPrefs(registry); domain_reliability::RegisterPrefs(registry); embedder_support::OriginTrialPrefs::RegisterPrefs(registry); @@ -661,7 +661,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 -@@ -156,6 +156,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", @@ -683,7 +683,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/u #if BUILDFLAG(ENABLE_WEBUI_CERTIFICATE_VIEWER) #include "chrome/browser/ui/webui/certificate_viewer/certificate_viewer_ui.h" #endif -@@ -424,7 +427,7 @@ void RegisterChromeWebUIConfigs() { +@@ -426,7 +429,7 @@ void RegisterChromeWebUIConfigs() { map.AddWebUIConfig(std::make_unique()); map.AddWebUIConfig(std::make_unique()); #endif @@ -1154,7 +1154,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 -@@ -188,6 +188,8 @@ inline constexpr char kChromeUINetInternalsHost[] = "net-internals"; +@@ -190,6 +190,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 304b7523..8196adc4 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/profiles/profile_selections.cc | 10 + chrome/browser/profiles/profile_selections.h | 7 +- .../browser/ui/android/native_page/BUILD.gn | 2 + - .../browser/ui/native_page/NativePage.java | 22 ++- + .../browser/ui/native_page/NativePage.java | 17 +- .../browser/omnibox/LocationBarMediator.java | 8 + .../strings/android_chrome_strings.grd | 25 +++ .../browser/toolbar/LocationBarModel.java | 4 +- @@ -88,7 +88,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 + - 69 files changed, 794 insertions(+), 105 deletions(-) + 69 files changed, 791 insertions(+), 103 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 @@ -101,7 +101,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 -@@ -624,6 +624,7 @@ chrome_java_resources = [ +@@ -638,6 +638,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", @@ -120,14 +120,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", -@@ -916,6 +917,7 @@ chrome_java_sources = [ +@@ -925,6 +926,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/privacy/settings/PasswordEchoSettingHandlerFactory.java", "java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl.java", "java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java", + "java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java", "java/src/org/chromium/chrome/browser/privacy_sandbox/CctHandler.java", "java/src/org/chromium/chrome/browser/privacy_sandbox/ChromeTrackingProtectionDelegate.java", - "java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxSurveyController.java", + "java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandbox3pcdRollbackMessageController.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 @@ -247,7 +247,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 -@@ -73,6 +73,10 @@ import org.chromium.build.annotations.Nullable; +@@ -71,6 +71,10 @@ import org.chromium.build.annotations.Nullable; import org.chromium.build.annotations.UsedByReflection; import org.chromium.cc.input.BrowserControlsState; import org.chromium.chrome.R; @@ -258,9 +258,9 @@ 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.app.ChromeActivity; -@@ -803,14 +807,19 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -837,15 +841,20 @@ public class ChromeTabbedActivity extends ChromeActivity { + } - Profile profile = mTabModelSelector.getCurrentModel().getProfile(); // For saving non-incognito tab closures for Recent Tabs. - mHistoricalTabModelObserver = - new HistoricalTabModelObserver( @@ -276,16 +276,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct .getTabGroupModelFilterProvider() - .getTabGroupModelFilter(false)); - mHistoricalTabModelObserver.addSecondaryTabModelSupplier( -- ArchivedTabModelOrchestrator.getForProfile(profile)::getTabModel); -- +- ArchivedTabModelOrchestrator.getForProfile(currentTabModel.getProfile()) + .getTabGroupModelFilter(alwaysIncognito)); + mHistoricalTabModelObserver.addSecondaryTabModelSupplier( -+ ArchivedTabModelOrchestrator.getForProfile(profile)::getTabModel); ++ ArchivedTabModelOrchestrator.getForProfile(currentTabModel.getProfile()) + ::getTabModel); +- + } // Defer creation of this helper so it triggers after TabGroupModelFilter observers. mUndoRefocusHelper = new UndoRefocusHelper( -@@ -3228,7 +3237,7 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -3299,7 +3308,7 @@ public class ChromeTabbedActivity extends ChromeActivity { // We determine SupportedProfileType in onPreCreate(). // We determine the model as soon as possible so every systems get initialized coherently. @@ -297,7 +298,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 -@@ -98,6 +98,7 @@ import org.chromium.chrome.browser.compositor.layouts.content.TabContentManagerH +@@ -100,6 +100,7 @@ import org.chromium.chrome.browser.compositor.layouts.content.TabContentManagerH import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager; import org.chromium.chrome.browser.device.DeviceClassManager; import org.chromium.chrome.browser.devtools.DevToolsWindowAndroid; @@ -305,7 +306,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; -@@ -2028,6 +2029,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -2076,6 +2077,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity throw new IllegalStateException( "Attempting to access TabCreator before initialization"); } @@ -318,7 +319,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 -@@ -91,6 +91,8 @@ import java.util.Iterator; +@@ -92,6 +92,8 @@ import java.util.Iterator; import java.util.List; import java.util.function.Supplier; @@ -327,7 +328,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App /** * Base implementation of {@link AppMenuPropertiesDelegate} that handles hiding and showing menu * items based on activity state. -@@ -620,8 +622,9 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties +@@ -635,8 +637,9 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties && !isNativePage && !isFileScheme && !isContentScheme @@ -342,7 +343,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java -@@ -39,6 +39,7 @@ import org.chromium.base.shared_preferences.SharedPreferencesManager; +@@ -41,6 +41,7 @@ import org.chromium.base.shared_preferences.SharedPreferencesManager; import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; import org.chromium.chrome.R; @@ -350,7 +351,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; -@@ -425,6 +426,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -430,6 +431,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { mShowEphemeralTabNewLabel = null; mCustomActionMap.clear(); @@ -360,7 +361,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr List groupedItems = new ArrayList<>(); if (mParams.isPage() && shouldShowEmptySpaceContextMenu()) { -@@ -489,7 +493,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -501,7 +505,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { } } if (FirstRunStatus.getFirstRunFlowComplete()) { @@ -372,21 +373,22 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java -@@ -62,37 +62,6 @@ public class CustomTabActivityLifecycleUmaTracker +@@ -68,37 +68,6 @@ public class CustomTabActivityLifecycleUmaTracker private boolean mIsInitialResume = true; private void recordIncognitoLaunchReason() { - // TODO(crbug.com/352525607): Separate Ephemeral and Incognito CCT metrics. -- /*@IncognitoCctCallerId*/ int incognitoCctCallerId = -- mIntentDataProvider.getFeatureIdForMetricsCollection(); +- @BrowserServicesIntentDataProvider.IncognitoCctCallerId +- int incognitoCctCallerId = mIntentDataProvider.getFeatureIdForMetricsCollection(); - - RecordHistogram.recordEnumeratedHistogram( - "CustomTabs.IncognitoCctCallerId", - incognitoCctCallerId, -- IntentHandler.IncognitoCctCallerId.NUM_ENTRIES); +- BrowserServicesIntentDataProvider.IncognitoCctCallerId.NUM_ENTRIES); - - // Record which 1P app launched Incognito CCT. -- if (incognitoCctCallerId == IntentHandler.IncognitoCctCallerId.GOOGLE_APPS) { +- if (incognitoCctCallerId +- == BrowserServicesIntentDataProvider.IncognitoCctCallerId.GOOGLE_APPS) { - String sendersPackageName = mIntentDataProvider.getClientPackageName(); - @IntentHandler.ExternalAppId - int externalId = IntentHandler.mapPackageToExternalAppId(sendersPackageName); @@ -398,9 +400,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust - } else { - // Using package name didn't give any meaningful insight on who launched the - // Incognito CCT, falling back to check if they provided EXTRA_APPLICATION_ID. -- externalId = -- IntentHandler.determineExternalIntentSource( -- mIntentDataProvider.getIntent(), mActivity); +- var intent = assertNonNull(mIntentDataProvider.getIntent()); +- externalId = IntentHandler.determineExternalIntentSource(intent, mActivity); - RecordHistogram.recordEnumeratedHistogram( - "CustomTabs.ClientAppId.Incognito", - externalId, @@ -413,7 +414,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 -@@ -20,6 +20,7 @@ import org.chromium.base.supplier.ObservableSupplier; +@@ -21,6 +21,7 @@ import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; import org.chromium.chrome.R; import org.chromium.chrome.browser.ActivityTabProvider; @@ -421,7 +422,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; -@@ -221,6 +222,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat +@@ -224,6 +225,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat openInChromeItemVisible = false; tryAddingReadAloud = false; } @@ -434,7 +435,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/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 -@@ -104,6 +104,9 @@ import org.chromium.components.embedder_support.util.UrlConstants; +@@ -105,6 +105,9 @@ import org.chromium.components.embedder_support.util.UrlConstants; import org.chromium.device.mojom.ScreenOrientationLockType; import org.chromium.net.NetId; @@ -444,7 +445,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; -@@ -1263,6 +1266,13 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid +@@ -1287,6 +1290,13 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid return getInitialActivityWidth() > 0; } @@ -480,7 +481,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo /** A class containing some utility static methods. */ @NullMarked public class DownloadUtils { -@@ -314,7 +319,13 @@ public class DownloadUtils { +@@ -292,7 +297,13 @@ public class DownloadUtils { public static boolean isAllowedToDownloadPage(@Nullable Tab tab) { if (tab == null) return false; @@ -617,21 +618,21 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java --- a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java -@@ -20,6 +20,7 @@ import org.chromium.base.supplier.OneshotSupplier; +@@ -25,6 +25,7 @@ import org.chromium.base.supplier.OneshotSupplier; import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; import org.chromium.chrome.R; +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; import org.chromium.chrome.browser.app.ChromeActivity; import org.chromium.chrome.browser.app.download.home.DownloadPage; - import org.chromium.chrome.browser.bookmarks.BookmarkPage; -@@ -379,7 +380,8 @@ public class NativePageFactory { - @Nullable PdfInfo pdfInfo) { + import org.chromium.chrome.browser.back_press.BackPressManager; +@@ -396,7 +397,8 @@ public class NativePageFactory { + NativePage page; -- switch (NativePage.nativePageType(url, candidatePage, isIncognito, pdfInfo != null)) { +- switch (NativePage.nativePageType(gurl, candidatePage, isIncognito, pdfInfo != null)) { + boolean isAlwaysIncognito = AlwaysIncognitoLinkInterceptor.isAlwaysIncognito(); -+ switch (NativePage.nativePageType(url, candidatePage, isIncognito, pdfInfo != null, isAlwaysIncognito)) { ++ switch (NativePage.nativePageType(gurl, candidatePage, isIncognito, pdfInfo != null, isAlwaysIncognito)) { case NativePageType.NONE: return null; case NativePageType.CANDIDATE: @@ -664,7 +665,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM mActiveTab = tab; mTabModelSelector = tabModelSelector; mShowHistoryManager = showHistoryManager; -@@ -301,6 +311,22 @@ public class RecentTabsManager +@@ -302,6 +312,22 @@ public class RecentTabsManager */ public void openRecentlyClosedTab(RecentlyClosedTab tab, int windowDisposition) { if (mIsDestroyed) return; @@ -878,7 +879,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; -@@ -231,6 +232,9 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl +@@ -229,6 +230,9 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl SigninAndHistorySyncActivityLauncherImpl.get(), new SettingsCustomTabLauncherImpl())); } @@ -1005,7 +1006,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; -@@ -221,7 +222,8 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm +@@ -241,7 +242,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. @@ -1027,7 +1028,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.LocalizationUtils; import org.chromium.ui.display.DisplayUtil; -@@ -1270,7 +1272,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1281,7 +1283,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { () -> { mTabCreatorManagerSupplier .get() @@ -1039,7 +1040,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java -@@ -55,6 +55,10 @@ import org.chromium.url.GURL; +@@ -56,6 +56,10 @@ import org.chromium.url.GURL; import java.util.Collections; import java.util.function.Supplier; @@ -1050,7 +1051,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome /** This class creates various kinds of new tabs and adds them to the right {@link TabModel}. */ @NullMarked public class ChromeTabCreator extends TabCreator -@@ -584,7 +588,6 @@ public class ChromeTabCreator extends TabCreator +@@ -587,7 +591,6 @@ public class ChromeTabCreator extends TabCreator // TODO(crbug.com/40691614): Clean up the launches from SearchActivity/Chrome. public @Nullable Tab launchUrlFromExternalApp( LoadUrlParams loadUrlParams, String appId, boolean forceNewTab, Intent intent) { @@ -1090,7 +1091,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPer import java.io.BufferedInputStream; import java.io.ByteArrayInputStream; import java.io.DataInputStream; -@@ -838,6 +840,13 @@ public class TabPersistentStore { +@@ -837,6 +839,13 @@ public class TabPersistentStore { } } } @@ -1107,7 +1108,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPer diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java -@@ -49,6 +49,7 @@ import org.chromium.base.supplier.OneshotSupplierImpl; +@@ -50,6 +50,7 @@ import org.chromium.base.supplier.OneshotSupplierImpl; import org.chromium.cc.input.BrowserControlsState; import org.chromium.chrome.R; import org.chromium.chrome.browser.ActivityTabProvider; @@ -1115,7 +1116,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar import org.chromium.chrome.browser.IntentHandler; import org.chromium.chrome.browser.app.tabwindow.TabWindowManagerSingleton; import org.chromium.chrome.browser.back_press.BackPressManager; -@@ -866,7 +867,7 @@ public class ToolbarManager +@@ -869,7 +870,7 @@ public class ToolbarManager return ret; } }, @@ -1239,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 -@@ -460,6 +460,15 @@ ChromeAutocompleteProviderClient::GetAimEligibilityService() const { +@@ -461,6 +461,15 @@ ChromeAutocompleteProviderClient::GetAimEligibilityService() const { return AimEligibilityServiceFactory::GetForProfile(profile_); } @@ -1376,7 +1377,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" -@@ -612,6 +615,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) { +@@ -614,6 +617,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) { history::HistoryService* HistoryTabHelper::GetHistoryService() { Profile* profile = Profile::FromBrowserContext(web_contents()->GetBrowserContext()); @@ -1390,7 +1391,7 @@ diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/histo if (profile->IsOffTheRecord()) return nullptr; -@@ -619,6 +629,16 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() { +@@ -621,6 +631,16 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() { profile, ServiceAccessType::IMPLICIT_ACCESS); } @@ -1739,7 +1740,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 -@@ -254,6 +254,7 @@ +@@ -257,6 +257,7 @@ #if BUILDFLAG(IS_ANDROID) #include "chrome/browser/accessibility/accessibility_prefs/android/accessibility_prefs_controller.h" @@ -1747,7 +1748,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" -@@ -2145,6 +2146,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -2203,6 +2204,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, usage_stats::UsageStatsBridge::RegisterProfilePrefs(registry); variations::VariationsService::RegisterProfilePrefs(registry); webapps::InstallPromptPrefs::RegisterProfilePrefs(registry); @@ -1852,22 +1853,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/ } /** -@@ -212,11 +215,12 @@ public interface NativePage { - String url, - @Nullable NativePage candidatePage, - boolean isIncognito, -- boolean hasPdfDownload) { -+ boolean hasPdfDownload, -+ boolean isAlwaysIncognito) { - if (url == null) return NativePageType.NONE; - - GURL gurl = new GURL(url); -- return nativePageType(gurl, candidatePage, isIncognito, hasPdfDownload); -+ return nativePageType(gurl, candidatePage, isIncognito, hasPdfDownload, isAlwaysIncognito); - } - - /** -@@ -230,7 +234,8 @@ public interface NativePage { +@@ -211,7 +214,8 @@ public interface NativePage { GURL url, @Nullable NativePage candidatePage, boolean isIncognito, @@ -1877,7 +1863,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/ if (hasPdfDownload) { // For navigation with associated pdf download (e.g. open a pdf link), pdf page should // be created. -@@ -248,7 +253,7 @@ public interface NativePage { +@@ -229,7 +233,7 @@ public interface NativePage { // created after the pdf document is re-downloaded in other parts of the code. return NativePageType.NONE; } else { @@ -1886,7 +1872,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/ } } -@@ -260,7 +265,7 @@ public interface NativePage { +@@ -241,7 +245,7 @@ public interface NativePage { * which do not have chrome or chrome-native scheme. */ private static @NativePageType int chromePageType( @@ -1895,7 +1881,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/ String host = url.getHost(); String scheme = url.getScheme(); if (!UrlConstants.CHROME_NATIVE_SCHEME.equals(scheme) -@@ -280,7 +285,8 @@ public interface NativePage { +@@ -261,7 +265,8 @@ public interface NativePage { return NativePageType.DOWNLOADS; } else if (UrlConstants.HISTORY_HOST.equals(host)) { return NativePageType.HISTORY; @@ -1908,7 +1894,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 -@@ -97,6 +97,11 @@ import org.chromium.ui.interpolators.Interpolators; +@@ -99,6 +99,11 @@ import org.chromium.ui.interpolators.Interpolators; import org.chromium.ui.modaldialog.ModalDialogManager; import org.chromium.url.GURL; @@ -1920,7 +1906,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import java.util.ArrayList; import java.util.List; import java.util.function.BooleanSupplier; -@@ -437,6 +442,9 @@ class LocationBarMediator +@@ -448,6 +453,9 @@ class LocationBarMediator if (!DeviceFormFactor.isNonMultiDisplayContextOnTablet(mContext)) return; Tab tab = mLocationBarDataProvider.getTab(); if (tab == null) return; @@ -1933,7 +1919,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 -@@ -6627,6 +6627,31 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -6669,6 +6669,31 @@ To change this setting, BEGIN_LINKdelete the Chrome d Cookies, cache, and other site data @@ -1968,7 +1954,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java -@@ -168,6 +168,7 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro +@@ -167,6 +167,7 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro protected GURL mVisibleGurl = GURL.emptyGURL(); protected String mFormattedFullUrl; protected String mUrlForDisplay; @@ -1976,7 +1962,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow // notifyUrlChanged and notifySecurityStateChanged are usually called 3 times across a same // document navigation. The first call is usually necessary, which updates the UrlBar to reflect -@@ -192,7 +193,8 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro +@@ -191,7 +192,8 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro NewTabPageDelegate newTabPageDelegate, UrlFormatter urlFormatter, OfflineStatus offlineStatus, @@ -2056,7 +2042,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 -@@ -4095,6 +4095,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] = +@@ -4101,6 +4101,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] = "net.out_of_process_system_dns_resolution_enabled"; #endif // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) @@ -2072,7 +2058,7 @@ diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h diff --git a/components/content_settings/core/browser/content_settings_pref_provider.cc b/components/content_settings/core/browser/content_settings_pref_provider.cc --- a/components/content_settings/core/browser/content_settings_pref_provider.cc +++ b/components/content_settings/core/browser/content_settings_pref_provider.cc -@@ -114,10 +114,12 @@ void PrefProvider::RegisterProfilePrefs( +@@ -120,10 +120,12 @@ void PrefProvider::RegisterProfilePrefs( PrefProvider::PrefProvider(PrefService* prefs, bool off_the_record, @@ -2085,7 +2071,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov store_last_modified_(store_last_modified), clock_(base::DefaultClock::GetInstance()) { TRACE_EVENT_BEGIN("startup", "PrefProvider::PrefProvider"); -@@ -140,11 +142,13 @@ PrefProvider::PrefProvider(PrefService* prefs, +@@ -146,11 +148,13 @@ PrefProvider::PrefProvider(PrefService* prefs, WebsiteSettingsRegistry* website_settings = WebsiteSettingsRegistry::GetInstance(); for (const WebsiteSettingsInfo* info : *website_settings) { @@ -2111,7 +2097,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov bool store_last_modified, bool restore_session); -@@ -127,6 +128,7 @@ class PrefProvider : public UserModifiableProvider { +@@ -130,6 +131,7 @@ class PrefProvider : public UserModifiableProvider { raw_ptr prefs_; const bool off_the_record_; @@ -2170,10 +2156,10 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map. diff --git a/components/omnibox/browser/autocomplete_provider_client.cc b/components/omnibox/browser/autocomplete_provider_client.cc --- a/components/omnibox/browser/autocomplete_provider_client.cc +++ b/components/omnibox/browser/autocomplete_provider_client.cc -@@ -74,3 +74,7 @@ base::WeakPtr - AutocompleteProviderClient::GetWeakPtr() { +@@ -81,3 +81,7 @@ AutocompleteProviderClient::GetGeminiPrototypeOmniboxService() const { return nullptr; } + #endif // BUILDFLAG(IS_IOS) + +bool AutocompleteProviderClient::IsAlwaysIncognitoEnabled() const { + return false; @@ -2181,7 +2167,7 @@ diff --git a/components/omnibox/browser/autocomplete_provider_client.cc b/compon diff --git a/components/omnibox/browser/autocomplete_provider_client.h b/components/omnibox/browser/autocomplete_provider_client.h --- a/components/omnibox/browser/autocomplete_provider_client.h +++ b/components/omnibox/browser/autocomplete_provider_client.h -@@ -154,6 +154,7 @@ class AutocompleteProviderClient : public OmniboxAction::Client { +@@ -161,6 +161,7 @@ class AutocompleteProviderClient : public OmniboxAction::Client { virtual bool IsOffTheRecord() const = 0; virtual bool IsIncognitoProfile() const = 0; virtual bool IsGuestSession() const = 0; @@ -2192,7 +2178,7 @@ diff --git a/components/omnibox/browser/autocomplete_provider_client.h b/compone diff --git a/components/omnibox/browser/base_search_provider.cc b/components/omnibox/browser/base_search_provider.cc --- a/components/omnibox/browser/base_search_provider.cc +++ b/components/omnibox/browser/base_search_provider.cc -@@ -432,7 +432,7 @@ bool BaseSearchProvider::CanSendSuggestRequest( +@@ -401,7 +401,7 @@ bool BaseSearchProvider::CanSendSuggestRequest( // Don't make a suggest request if in incognito mode; unless for the Lens // searchboxes. diff --git a/build/patches/Add-bookmark-import-export-actions.patch b/build/patches/Add-bookmark-import-export-actions.patch index e7db3b19..c07ea764 100644 --- a/build/patches/Add-bookmark-import-export-actions.patch +++ b/build/patches/Add-bookmark-import-export-actions.patch @@ -14,7 +14,7 @@ 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 | 31 ++ + .../app/bookmarks/BookmarkActivity.java | 32 ++ .../native_page/NativePageFactory.java | 9 +- chrome/browser/BUILD.gn | 11 +- .../bookmarks/android/bookmark_bridge.cc | 197 ++++++++++++ @@ -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, 809 insertions(+), 24 deletions(-) + 40 files changed, 810 insertions(+), 24 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 @@ -94,14 +94,14 @@ diff --git a/chrome/android/java/res/menu/bookmark_toolbar_menu_improved.xml b/c diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java --- a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java -@@ -11,6 +11,7 @@ import org.chromium.base.supplier.ObservableSupplier; +@@ -10,6 +10,7 @@ import org.chromium.base.supplier.ObservableSupplier; import org.chromium.base.supplier.OneshotSupplier; import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; +import org.chromium.chrome.browser.app.ChromeActivity; import org.chromium.chrome.browser.app.tab_activity_glue.ActivityTabWebContentsDelegateAndroid; + import org.chromium.chrome.browser.back_press.BackPressManager; import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider; - import org.chromium.chrome.browser.compositor.CompositorViewHolder; @@ -60,7 +61,7 @@ import java.util.function.Supplier; */ @NullMarked @@ -112,7 +112,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDe private final Supplier mShareDelegateSupplier; private final Supplier mEphemeralTabCoordinatorSupplier; @@ -91,7 +92,7 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory { - private @Nullable NativePageFactory mNativePageFactory; + private final BackPressManager mBackPressManager; public TabbedModeTabDelegateFactory( - Activity activity, @@ -123,15 +123,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDe 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 -@@ -9,6 +9,7 @@ import static org.chromium.build.NullUtil.assumeNonNull; +@@ -6,6 +6,8 @@ package org.chromium.chrome.browser.app.bookmarks; + + import static org.chromium.build.NullUtil.assumeNonNull; + ++import android.os.Bundle; ++ import android.content.ComponentName; import android.content.Intent; import android.text.TextUtils; -+import android.os.Bundle; - - import org.chromium.base.IntentUtils; - import org.chromium.build.annotations.NullMarked; -@@ -32,6 +33,9 @@ import org.chromium.components.embedder_support.util.UrlConstants; +@@ -35,6 +37,9 @@ import org.chromium.components.embedder_support.util.UrlConstants; import org.chromium.ui.modaldialog.ModalDialogManager; import org.chromium.ui.modaldialog.ModalDialogManager.ModalDialogType; @@ -141,9 +142,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B /** * The activity that displays the bookmark UI on the phone. It keeps a {@link * BookmarkManagerCoordinator} inside of it and creates a snackbar manager. This activity should -@@ -46,6 +50,9 @@ public class BookmarkActivity extends SnackbarActivity { - private @Nullable BookmarkManagerCoordinator mBookmarkManagerCoordinator; +@@ -50,6 +55,9 @@ public class BookmarkActivity extends SnackbarActivity { private @Nullable BookmarkOpener mBookmarkOpener; + private @Nullable OnKeyDownHandler mOnKeyDownHandler; + private ActivityWindowAndroid mWindowAndroid; + private IntentRequestTracker mIntentRequestTracker; @@ -151,10 +152,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B @Override protected void onProfileAvailable(Profile profile) { super.onProfileAvailable(profile); -@@ -73,6 +80,14 @@ public class BookmarkActivity extends SnackbarActivity { - mBookmarkManagerCoordinator.updateForUrl(url); - setContentView(mBookmarkManagerCoordinator.getView()); - BackPressHelper.create(this, getOnBackPressedDispatcher(), mBookmarkManagerCoordinator); +@@ -82,6 +90,14 @@ public class BookmarkActivity extends SnackbarActivity { + mOnKeyDownHandler = + BackPressHelper.create( + this, getOnBackPressedDispatcher(), mBookmarkManagerCoordinator); + + final boolean listenToActivityState = true; + mIntentRequestTracker = IntentRequestTracker.createFromActivity(this); @@ -166,7 +167,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B } @Override -@@ -91,6 +106,7 @@ public class BookmarkActivity extends SnackbarActivity { +@@ -109,6 +125,7 @@ public class BookmarkActivity extends SnackbarActivity { @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); @@ -174,7 +175,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B if (requestCode == EDIT_BOOKMARK_REQUEST_CODE && resultCode == RESULT_OK) { assumeNonNull(data); BookmarkId bookmarkId = -@@ -100,6 +116,21 @@ public class BookmarkActivity extends SnackbarActivity { +@@ -118,6 +135,21 @@ public class BookmarkActivity extends SnackbarActivity { } } @@ -199,15 +200,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java --- a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java -@@ -20,6 +20,7 @@ import org.chromium.base.supplier.OneshotSupplier; +@@ -25,6 +25,7 @@ import org.chromium.base.supplier.OneshotSupplier; import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; import org.chromium.chrome.R; +import org.chromium.chrome.browser.app.ChromeActivity; import org.chromium.chrome.browser.app.download.home.DownloadPage; + import org.chromium.chrome.browser.back_press.BackPressManager; import org.chromium.chrome.browser.bookmarks.BookmarkPage; - import org.chromium.chrome.browser.browser_controls.BrowserControlsMarginSupplier; -@@ -67,7 +68,7 @@ import java.util.function.Supplier; +@@ -76,7 +77,7 @@ import java.util.function.Supplier; */ @NullMarked public class NativePageFactory { @@ -216,8 +217,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat private final BottomSheetController mBottomSheetController; private final BrowserControlsManager mBrowserControlsManager; private final Supplier<@Nullable Tab> mCurrentTabSupplier; -@@ -91,7 +92,7 @@ public class NativePageFactory { - private static @Nullable NativePage sTestPage; +@@ -100,7 +101,7 @@ public class NativePageFactory { + private final BackPressManager mBackPressManager; public NativePageFactory( - Activity activity, @@ -225,7 +226,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat BottomSheetController sheetController, BrowserControlsManager browserControlsManager, Supplier<@Nullable Tab> currentTabSupplier, -@@ -166,7 +167,7 @@ public class NativePageFactory { +@@ -175,7 +176,7 @@ public class NativePageFactory { @VisibleForTesting static class NativePageBuilder { @@ -234,20 +235,20 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat private final BottomSheetController mBottomSheetController; private final Supplier mNewTabPageCreationTracker; private final BrowserControlsManager mBrowserControlsManager; -@@ -275,7 +276,7 @@ public class NativePageFactory { - mBrowserControlsManager, +@@ -284,7 +285,7 @@ public class NativePageFactory { mTabModelSelector, mEdgeToEdgeControllerSupplier), -- mActivity.getComponentName()); -+ mActivity.getComponentName(), mActivity); + mActivity.getComponentName(), +- mBackPressManager); ++ mBackPressManager, mActivity); } protected NativePage buildDownloadsPage(Tab tab) { diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -241,6 +241,8 @@ static_library("browser") { - "bluetooth/chrome_bluetooth_delegate_impl_client.h", +@@ -205,6 +205,8 @@ static_library("browser") { + "bad_message.h", "bookmarks/bookmark_model_factory.cc", "bookmarks/bookmark_model_factory.h", + "bookmarks/bookmark_html_writer.cc", @@ -255,9 +256,9 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "bookmarks/chrome_bookmark_client.cc", "bookmarks/chrome_bookmark_client.h", "bookmarks/managed_bookmark_service_factory.cc", -@@ -1688,6 +1690,13 @@ static_library("browser") { - ] - } +@@ -1625,6 +1627,13 @@ static_library("browser") { + "webdata_services/web_data_service_factory.cc", + ] + if (is_android) { + sources += [ @@ -269,7 +270,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn configs += [ "//build/config/compiler:wexit_time_destructors", "//build/config:precompiled_headers", -@@ -3712,8 +3721,6 @@ static_library("browser") { +@@ -3715,8 +3724,6 @@ static_library("browser") { "bookmarks/bookmark_expanded_state_tracker.h", "bookmarks/bookmark_expanded_state_tracker_factory.cc", "bookmarks/bookmark_expanded_state_tracker_factory.h", @@ -690,7 +691,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows import org.chromium.ui.modaldialog.ModalDialogManager; import org.chromium.ui.modaldialog.ModalDialogManager.ModalDialogType; import org.chromium.ui.modelutil.MVCListAdapter.ListItem; -@@ -333,6 +335,13 @@ public class BookmarkManagerCoordinator +@@ -344,6 +346,13 @@ public class BookmarkManagerCoordinator // Public API implementation. @@ -716,7 +717,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows import org.chromium.ui.accessibility.AccessibilityState; import org.chromium.ui.base.DeviceFormFactor; import org.chromium.ui.base.DeviceInput; -@@ -83,6 +85,47 @@ import java.util.function.BooleanSupplier; +@@ -84,6 +86,47 @@ import java.util.function.BooleanSupplier; import java.util.function.Consumer; import java.util.function.Predicate; @@ -764,7 +765,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 -@@ -93,6 +136,9 @@ class BookmarkManagerMediator +@@ -94,6 +137,9 @@ class BookmarkManagerMediator private static boolean sPreventLoadingForTesting; @@ -774,7 +775,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; -@@ -608,6 +654,14 @@ class BookmarkManagerMediator +@@ -655,6 +701,14 @@ class BookmarkManagerMediator mNativePage = nativePage; } @@ -789,7 +790,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. -@@ -780,6 +834,235 @@ class BookmarkManagerMediator +@@ -827,6 +881,235 @@ class BookmarkManagerMediator } } @@ -1028,7 +1029,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/BookmarkPage.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java --- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java +++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java -@@ -15,6 +15,9 @@ import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; +@@ -16,6 +16,9 @@ import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; import org.chromium.chrome.browser.ui.native_page.BasicNativePage; import org.chromium.chrome.browser.ui.native_page.NativePageHost; import org.chromium.components.embedder_support.util.UrlConstants; @@ -1038,19 +1039,19 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows /** A native page holding a {@link BookmarkManagerCoordinator} on _tablet_. */ @NullMarked -@@ -35,7 +38,8 @@ public class BookmarkPage extends BasicNativePage { - SnackbarManager snackbarManager, +@@ -37,7 +40,8 @@ public class BookmarkPage extends BasicNativePage { Profile profile, NativePageHost host, -- @Nullable ComponentName componentName) { -+ @Nullable ComponentName componentName, + @Nullable ComponentName componentName, +- BackPressManager backPressManager) { ++ BackPressManager backPressManager, + ChromeActivity activity) { super(host); - mTitle = host.getContext().getString(R.string.bookmarks); -@@ -56,6 +60,9 @@ public class BookmarkPage extends BasicNativePage { - PriceDropNotificationManagerFactory.create(profile), - host::createEdgeToEdgePadAdjuster); + mTitle = host.getContext().getString(R.string.bookmarks); +@@ -65,6 +69,9 @@ public class BookmarkPage extends BasicNativePage { + backPressManager); + mBookmarkManagerCoordinator.setBasicNativePage(this); + mBookmarkManagerCoordinator.setWindow(activity.getWindowAndroid(), + new ModalDialogManager( @@ -1261,7 +1262,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 -@@ -702,6 +702,7 @@ public abstract class ChromeFeatureList { +@@ -712,6 +712,7 @@ public abstract class ChromeFeatureList { public static final String USE_LIBUNWINDSTACK_NATIVE_UNWINDER_ANDROID = "UseLibunwindstackNativeUnwinderAndroid"; public static final String VISITED_URL_RANKING_SERVICE = "VisitedURLRankingService"; @@ -1324,7 +1325,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"; -@@ -1051,6 +1053,7 @@ public final class ChromePreferenceKeys { +@@ -1067,6 +1069,7 @@ public final class ChromePreferenceKeys { AUXILIARY_SEARCH_SCHEMA_VERSION, APP_LAUNCH_LAST_KNOWN_ACTIVE_TAB_STATE, APP_LAUNCH_SEARCH_ENGINE_HAD_LOGO, @@ -1335,7 +1336,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 -@@ -249,6 +249,24 @@ CHAR_LIMIT guidelines: +@@ -252,6 +252,24 @@ CHAR_LIMIT guidelines: Sites diff --git a/build/patches/Add-cromite-test-support.patch b/build/patches/Add-cromite-test-support.patch index 2aef794b..897f0642 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 -@@ -144,6 +144,7 @@ import org.chromium.ui.base.SelectFileDialog; +@@ -145,6 +145,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; -@@ -710,7 +711,10 @@ public class ProcessInitializationHandler { +@@ -713,7 +714,10 @@ public class ProcessInitializationHandler { tasks.add( () -> { @@ -417,9 +417,9 @@ diff --git a/chrome/browser/notifications/android/java/src/org/chromium/chrome/b */ public boolean requestPermissionIfNeeded(boolean contextual) { + if (!contextual) return false; - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU - || ApiCompatibilityUtils.isDemoUser()) { + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU || DeviceInfo.isRetailDemoMode()) { return false; + } 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 @@ -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 -@@ -662,6 +662,7 @@ mojom("mojo_bindings") { +@@ -671,6 +671,7 @@ mojom("mojo_bindings") { sources = [ "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" -@@ -645,6 +646,7 @@ void ChromeContentRendererClient::RenderFrameCreated( +@@ -661,6 +662,7 @@ void ChromeContentRendererClient::RenderFrameCreated( TrustedVaultEncryptionKeysExtension::Create(render_frame); GoogleAccountsPrivateApiExtension::Create(render_frame); @@ -793,7 +793,7 @@ diff --git a/content/browser/devtools/devtools_http_handler.cc b/content/browser #include "content/public/common/content_switches.h" #include "content/public/common/url_constants.h" #include "net/base/io_buffer.h" -@@ -587,9 +589,12 @@ void DevToolsHttpHandler::OnJsonRequest( +@@ -588,9 +590,12 @@ void DevToolsHttpHandler::OnJsonRequest( if (command == "version") { base::Value::Dict version; @@ -860,7 +860,7 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/b #if BUILDFLAG(IS_ANDROID) #include "content/browser/accessibility/browser_accessibility_manager_android.h" #include "content/browser/android/content_url_loader_factory.h" -@@ -4763,7 +4765,8 @@ void RenderFrameHostImpl::DidAddMessageToConsole( +@@ -4773,7 +4775,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 -@@ -4780,8 +4783,14 @@ void RenderFrameHostImpl::DidAddMessageToConsole( +@@ -4790,8 +4793,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 a898ec2b..0781dad2 100644 --- a/build/patches/Add-custom-tab-intents-privacy-option.patch +++ b/build/patches/Add-custom-tab-intents-privacy-option.patch @@ -109,7 +109,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis 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 -@@ -236,16 +236,16 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid +@@ -238,16 +238,16 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid // Extra whose value is an array of ints that is supplied to // SyntheticTrialRegistry::RegisterExternalExperiments(). @@ -132,7 +132,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 -@@ -685,7 +685,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid +@@ -689,7 +689,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid TrustedWebActivityIntentBuilder.EXTRA_SCREEN_ORIENTATION, ScreenOrientation.DEFAULT)); @@ -141,7 +141,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust mBreakPointDp = getActivityBreakPointFromIntent(intent); mInitialActivityHeight = getInitialActivityHeightFromIntent(intent); -@@ -698,8 +698,8 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid +@@ -702,8 +702,8 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid intent, EXTRA_ACTIVITY_HEIGHT_RESIZE_BEHAVIOR, ACTIVITY_HEIGHT_DEFAULT); mIsPartialCustomTabFixedHeight = activityHeightResizeBehavior == ACTIVITY_HEIGHT_FIXED; @@ -152,7 +152,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust @BackgroundInteractBehavior int backgroundInteractBehavior = IntentUtils.safeGetIntExtra( -@@ -1270,7 +1270,9 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid +@@ -1294,7 +1294,9 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid public @CustomTabProfileType int getCustomTabMode() { return AlwaysIncognitoLinkInterceptor.isAlwaysIncognito() ? CustomTabProfileType.INCOGNITO @@ -166,7 +166,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/CustomTabsConnection.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java -@@ -776,7 +776,7 @@ public class CustomTabsConnection { +@@ -782,7 +782,7 @@ public class CustomTabsConnection { ThreadUtils.assertOnUiThread(); if (extras == null) return; int[] experimentIds = @@ -175,7 +175,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust if (experimentIds == null) return; // When ids are set through cct, they should not override existing ids. boolean override = false; -@@ -992,6 +992,7 @@ public class CustomTabsConnection { +@@ -999,6 +999,7 @@ public class CustomTabsConnection { PostTask.postTask( TaskTraits.UI_DEFAULT, () -> { @@ -186,7 +186,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 -@@ -40,6 +40,9 @@ import org.chromium.components.browser_ui.widget.TintedDrawable; +@@ -43,6 +43,9 @@ import org.chromium.components.browser_ui.widget.TintedDrawable; import java.util.ArrayList; import java.util.List; @@ -196,7 +196,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. -@@ -121,6 +124,9 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD +@@ -125,6 +128,9 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD } private static boolean isIntentFromThirdPartyAllowed() { @@ -206,7 +206,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Inco return ChromeFeatureList.sCctIncognitoAvailableToThirdParty.isEnabled(); } -@@ -221,6 +227,10 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD +@@ -222,6 +228,10 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD } public static boolean isValidIncognitoIntent(Intent intent, boolean recordMetrics) { @@ -217,7 +217,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() -@@ -330,6 +340,10 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD +@@ -332,6 +342,10 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD @Override public @CustomTabProfileType int getCustomTabMode() { @@ -327,15 +327,15 @@ 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 -@@ -1153,7 +1153,7 @@ BASE_FEATURE(kMagicStackAndroid, +@@ -909,7 +909,7 @@ 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. -BASE_FEATURE(kMayLaunchUrlUsesSeparateStoragePartition, +CROMITE_FEATURE(kMayLaunchUrlUsesSeparateStoragePartition, - "MayLaunchUrlUsesSeparateStoragePartition", base::FEATURE_DISABLED_BY_DEFAULT); + BASE_FEATURE(kMediaIndicatorsAndroid, base::FEATURE_DISABLED_BY_DEFAULT); diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java @@ -348,7 +348,7 @@ 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 sMultiInstanceApplicationStatusCleanup = -@@ -1226,6 +1228,7 @@ public abstract class ChromeFeatureList { +@@ -1224,6 +1226,7 @@ public abstract class ChromeFeatureList { sMiniOriginBar, sMitigateLegacySearchEnginePromoOverlap, sMostVisitedTilesCustomization, @@ -420,9 +420,9 @@ diff --git a/components/content_relationship_verification/android/java/src/org/c diff --git a/components/language/core/common/language_experiments.cc b/components/language/core/common/language_experiments.cc --- a/components/language/core/common/language_experiments.cc +++ b/components/language/core/common/language_experiments.cc -@@ -26,4 +26,5 @@ BASE_FEATURE(kDisableGeoLanguageModel, - "DisableGeoLanguageModel", - base::FEATURE_ENABLED_BY_DEFAULT); +@@ -20,4 +20,5 @@ BASE_FEATURE(kTranslateOpenSettings, base::FEATURE_DISABLED_BY_DEFAULT); + + BASE_FEATURE(kDisableGeoLanguageModel, base::FEATURE_ENABLED_BY_DEFAULT); +SET_CROMITE_FEATURE_DISABLED(kCctAutoTranslate); } // namespace language diff --git a/build/patches/Add-exit-menu-item.patch b/build/patches/Add-exit-menu-item.patch index 4e1fc75c..543cf846 100644 --- a/build/patches/Add-exit-menu-item.patch +++ b/build/patches/Add-exit-menu-item.patch @@ -17,7 +17,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 -@@ -121,6 +121,7 @@ found in the LICENSE file. +@@ -123,6 +123,7 @@ found in the LICENSE file. @@ -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 -@@ -352,6 +352,8 @@ import java.util.Set; +@@ -358,6 +358,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. -@@ -3820,6 +3822,8 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -3882,6 +3884,8 @@ public class ChromeTabbedActivity extends ChromeActivity { .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 -@@ -61,6 +61,7 @@ import org.chromium.base.supplier.UnownedUserDataSupplier; +@@ -63,6 +63,7 @@ import org.chromium.base.supplier.UnownedUserDataSupplier; 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; -@@ -2481,6 +2482,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -2529,6 +2530,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 -@@ -390,6 +390,13 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm +@@ -410,6 +410,13 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm maybeAddDividerLine(modelList, R.id.menu_item_content_filter_divider_line_id); modelList.add(buildContentFilterHelpCenterMenuItem(currentTab)); } @@ -108,7 +108,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -4311,6 +4311,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4317,6 +4317,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d Dark theme diff --git a/build/patches/Add-flag-for-omnibox-autocomplete-filtering.patch b/build/patches/Add-flag-for-omnibox-autocomplete-filtering.patch index 5fa03a3d..9e5e7811 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" -@@ -569,6 +570,15 @@ AutocompleteController::AutocompleteController( +@@ -571,6 +572,15 @@ AutocompleteController::AutocompleteController( provider_client_->GetOmniboxTriggeredFeatureService()), steady_state_omnibox_position_( metrics::OmniboxEventProto::UNKNOWN_POSITION) { diff --git a/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch b/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch index 666c6f44..a38a6369 100644 --- a/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch +++ b/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch @@ -103,7 +103,7 @@ diff --git a/net/socket/client_socket_pool_manager.cc b/net/socket/client_socket #include "net/ssl/ssl_config.h" #include "url/gurl.h" #include "url/scheme_host_port.h" -@@ -186,6 +190,19 @@ void ClientSocketPoolManager::set_max_sockets_per_pool( +@@ -187,6 +191,19 @@ void ClientSocketPoolManager::set_max_sockets_per_pool( int ClientSocketPoolManager::max_sockets_per_group( HttpNetworkSession::SocketPoolType pool_type) { DCHECK_LT(pool_type, HttpNetworkSession::NUM_SOCKET_POOL_TYPES); diff --git a/build/patches/Add-flag-to-disable-IPv6-probes.patch b/build/patches/Add-flag-to-disable-IPv6-probes.patch index 1c3be714..0011adb8 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 -@@ -1167,6 +1167,7 @@ component("net") { +@@ -1172,6 +1172,7 @@ component("net") { ":net_deps", "//components/miracle_parameter/common", "//components/network_time/time_tracker", @@ -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" -@@ -1496,6 +1497,13 @@ int HostResolverManager::StartIPv6ReachabilityCheck( +@@ -1493,6 +1494,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 10ff8e43..4bc8327e 100644 --- a/build/patches/Add-flag-to-disable-external-intent-requests.patch +++ b/build/patches/Add-flag-to-disable-external-intent-requests.patch @@ -49,7 +49,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java -@@ -35,6 +35,7 @@ import org.chromium.chrome.browser.ephemeraltab.EphemeralTabCoordinator; +@@ -38,6 +38,7 @@ import org.chromium.chrome.browser.ephemeraltab.EphemeralTabCoordinator; import org.chromium.chrome.browser.externalnav.ExternalNavigationDelegateImpl; import org.chromium.chrome.browser.flags.ActivityType; import org.chromium.chrome.browser.flags.ChromeFeatureList; @@ -57,7 +57,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust import org.chromium.chrome.browser.fullscreen.BrowserControlsManager; import org.chromium.chrome.browser.fullscreen.FullscreenManager; import org.chromium.chrome.browser.init.ChromeActivityNativeDelegate; -@@ -152,6 +153,7 @@ public class CustomTabDelegateFactory implements TabDelegateFactory { +@@ -156,6 +157,7 @@ public class CustomTabDelegateFactory implements TabDelegateFactory { @Override public boolean shouldDisableAllExternalIntents() { @@ -149,9 +149,9 @@ diff --git a/components/external_intents/android/external_intents_features.cc b/ } // namespace // Alphabetical: -@@ -62,7 +61,13 @@ BASE_FEATURE(kAuxiliaryNavigationStaysInPWA, - "AuxiliaryNavigationStaysInPWA", - base::FEATURE_DISABLED_BY_DEFAULT); +@@ -52,7 +51,13 @@ BASE_FEATURE(kReparentAuxiliaryNavigationFromPWA, + + BASE_FEATURE(kAuxiliaryNavigationStaysInPWA, base::FEATURE_DISABLED_BY_DEFAULT); +CROMITE_FEATURE(kIntentBlockExternalFormRedirectsNoGesture, + "IntentBlockExternalFormRedirectsNoGesture", @@ -193,8 +193,8 @@ 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 -@@ -1556,6 +1556,12 @@ public class ExternalNavigationHandler { - || ignoreBackForwardNav(params); +@@ -1623,6 +1623,12 @@ public class ExternalNavigationHandler { + return false; } + /** Wrapper of check against the feature to support overriding for testing. */ @@ -206,7 +206,7 @@ diff --git a/components/external_intents/android/java/src/org/chromium/component private OverrideUrlLoadingResult shouldOverrideUrlLoadingInternal( ExternalNavigationParams params, Intent targetIntent, -@@ -1624,6 +1630,21 @@ public class ExternalNavigationHandler { +@@ -1716,6 +1722,21 @@ public class ExternalNavigationHandler { return OverrideUrlLoadingResult.forNoOverride(); } diff --git a/build/patches/Add-flag-to-disable-vibration.patch b/build/patches/Add-flag-to-disable-vibration.patch index 4148cafc..2bffa706 100644 --- a/build/patches/Add-flag-to-disable-vibration.patch +++ b/build/patches/Add-flag-to-disable-vibration.patch @@ -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 -@@ -1045,6 +1045,10 @@ +@@ -1070,6 +1070,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 27c8d431..e4fb1153 100644 --- a/build/patches/Add-kill-switch-for-unsupported-clangd-flags.patch +++ b/build/patches/Add-kill-switch-for-unsupported-clangd-flags.patch @@ -14,16 +14,16 @@ 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 -@@ -694,7 +694,7 @@ config("compiler") { +@@ -715,7 +715,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 -- if (is_linux && use_lld && !llvm_android_mainline && current_cpu != "arm" && -+ if (is_linux && !skip_clangd_unsupported_options && use_lld && !llvm_android_mainline && current_cpu != "arm" && - current_cpu != "s390x") { +- if (is_linux && use_lld && current_cpu != "arm" && current_cpu != "s390x") { ++ if (is_linux && !skip_clangd_unsupported_options && use_lld && current_cpu != "arm" && current_cpu != "s390x") { cflags += [ "-Wa,--crel,--allow-experimental-crel" ] } -@@ -1806,7 +1806,7 @@ config("clang_revision") { + } +@@ -1848,7 +1848,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,16 +32,16 @@ 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 ] -@@ -2140,7 +2140,6 @@ config("default_warnings") { - # TODO(crbug.com/376641662): Fix and re-enable. - "-Wno-nontrivial-memcall", +@@ -2183,7 +2183,6 @@ config("default_warnings") { + # TODO(crbug.com/432275627): Fix and re-enable. + "-Wno-uninitialized-const-pointer", ] - cflags_cc += [ # TODO(crbug.com/328490295): Fix and re-enable for C flags. "-Wenum-compare-conditional", -@@ -2205,6 +2204,15 @@ config("default_warnings") { - ] +@@ -2237,6 +2236,15 @@ config("default_warnings") { + ldflags += [ "-Wno-version-check" ] } + if (skip_clangd_unsupported_options) { diff --git a/build/patches/Add-lifetime-options-for-permissions.patch b/build/patches/Add-lifetime-options-for-permissions.patch index 9d45a22f..525be567 100644 --- a/build/patches/Add-lifetime-options-for-permissions.patch +++ b/build/patches/Add-lifetime-options-for-permissions.patch @@ -142,8 +142,8 @@ diff --git a/chrome/browser/permissions/last_tab_standing_tracker.cc b/chrome/br diff --git a/chrome/browser/permissions/one_time_permissions_tracker.cc b/chrome/browser/permissions/one_time_permissions_tracker.cc --- a/chrome/browser/permissions/one_time_permissions_tracker.cc +++ b/chrome/browser/permissions/one_time_permissions_tracker.cc -@@ -19,8 +19,34 @@ - #include "components/permissions/features.h" +@@ -20,8 +20,34 @@ + #include "components/permissions/permission_util.h" #include "content/public/browser/visibility.h" #include "url/gurl.h" +#include "components/content_settings/core/browser/host_content_settings_map.h" @@ -178,7 +178,7 @@ diff --git a/chrome/browser/permissions/one_time_permissions_tracker.cc b/chrome OneTimePermissionsTracker::~OneTimePermissionsTracker() = default; OneTimePermissionsTracker::OriginTrackEntry::OriginTrackEntry() = default; -@@ -254,6 +280,12 @@ void OneTimePermissionsTracker::NotifyLastPageFromOriginClosed( +@@ -255,6 +281,12 @@ void OneTimePermissionsTracker::NotifyLastPageFromOriginClosed( for (auto& observer : observer_list_) { observer.OnLastPageFromOriginClosed(origin); } @@ -269,7 +269,7 @@ diff --git a/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_v diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java -@@ -634,6 +634,11 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -689,6 +689,11 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment } @RequiresNonNull({"mSite"}) @@ -281,7 +281,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c private void setUpClearDataPreference() { ClearWebsiteStorage preference = findPreference(PREF_CLEAR_DATA); long usage = mSite.getTotalUsage(); -@@ -1240,6 +1245,10 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1295,6 +1300,10 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment .getDefaultColor()); } } @@ -295,7 +295,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/website_preference_bridge.cc b/components/browser_ui/site_settings/android/website_preference_bridge.cc --- a/components/browser_ui/site_settings/android/website_preference_bridge.cc +++ b/components/browser_ui/site_settings/android/website_preference_bridge.cc -@@ -223,7 +223,7 @@ void GetOrigins(JNIEnv* env, +@@ -224,7 +224,7 @@ void GetOrigins(JNIEnv* env, seen_origins.push_back(origin); insertionFunc(env, static_cast(content_type), list, ConvertOriginToJavaString(env, origin), jembedder, @@ -307,7 +307,7 @@ diff --git a/components/browser_ui/site_settings/android/website_preference_brid diff --git a/components/browser_ui/strings/android/browser_ui_strings.grd b/components/browser_ui/strings/android/browser_ui_strings.grd --- a/components/browser_ui/strings/android/browser_ui_strings.grd +++ b/components/browser_ui/strings/android/browser_ui_strings.grd -@@ -646,6 +646,11 @@ +@@ -649,6 +649,11 @@ URL truncated @@ -365,7 +365,7 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.cc bool CanTrackLastVisit(ContentSettingsType type) { DCHECK(WebsiteSettingsRegistry::GetInstance()->Get(type)) << type; -@@ -273,10 +309,6 @@ const std::vector& GetTypesWithTemporaryGrants() { +@@ -282,10 +318,6 @@ const std::vector& GetTypesWithTemporaryGrants() { ContentSettingsType::CAPTURED_SURFACE_CONTROL, #endif ContentSettingsType::KEYBOARD_LOCK, @@ -376,7 +376,7 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.cc ContentSettingsType::HAND_TRACKING, ContentSettingsType::SMART_CARD_DATA, ContentSettingsType::AR, -@@ -292,10 +324,6 @@ const std::vector& GetTypesWithTemporaryGrantsInHcsm() { +@@ -301,10 +333,6 @@ const std::vector& GetTypesWithTemporaryGrantsInHcsm() { ContentSettingsType::CAPTURED_SURFACE_CONTROL, #endif ContentSettingsType::KEYBOARD_LOCK, @@ -425,7 +425,7 @@ diff --git a/components/content_settings/core/common/content_settings_enums.mojo diff --git a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java --- a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java +++ b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java -@@ -374,8 +374,8 @@ public class PageInfoController +@@ -376,8 +376,8 @@ public class PageInfoController */ @CalledByNative private void addPermissionSection( @@ -522,7 +522,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 -@@ -1293,6 +1293,8 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, +@@ -1303,6 +1303,8 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, permission_info.is_one_time = (info.metadata.session_model() == content_settings::mojom::SessionModel::ONE_TIME); @@ -990,7 +990,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm bool PermissionContextBase::UsesAutomaticEmbargo() const { return true; } -@@ -571,7 +582,8 @@ void PermissionContextBase::DecidePermission( +@@ -572,7 +583,8 @@ void PermissionContextBase::DecidePermission( void PermissionContextBase::PermissionDecided( PermissionDecision decision, bool is_final_decision, @@ -1000,7 +1000,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm UserMadePermissionDecision(request_data.id, request_data.requesting_origin, request_data.embedding_origin, decision); -@@ -584,11 +596,12 @@ void PermissionContextBase::PermissionDecided( +@@ -585,11 +597,12 @@ void PermissionContextBase::PermissionDecided( // missing if a permission prompt was preignored and we already notified an // origin about it. if (request->second.second) { @@ -1017,7 +1017,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm } } -@@ -673,6 +686,30 @@ void PermissionContextBase::NotifyPermissionSet( +@@ -674,6 +687,30 @@ void PermissionContextBase::NotifyPermissionSet( bool persist, PermissionDecision decision, bool is_final_decision) { @@ -1048,7 +1048,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm DCHECK_CURRENTLY_ON(content::BrowserThread::UI); // Note that rfh may be null, see crbug.com/426909787. -@@ -688,8 +725,8 @@ void PermissionContextBase::NotifyPermissionSet( +@@ -689,8 +726,8 @@ void PermissionContextBase::NotifyPermissionSet( if (persist) { // Clone new value, because we need it again for the callback. @@ -1059,7 +1059,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm } if (is_final_decision) { -@@ -727,6 +764,17 @@ void PermissionContextBase::UpdateSetting( +@@ -728,6 +765,17 @@ void PermissionContextBase::UpdateSetting( const PermissionRequestData& request_data, PermissionSetting setting, bool is_one_time) { @@ -1077,7 +1077,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm DCHECK_EQ(request_data.requesting_origin, request_data.requesting_origin.DeprecatedGetOriginAsURL()); DCHECK_EQ(request_data.embedding_origin, -@@ -736,6 +784,8 @@ void PermissionContextBase::UpdateSetting( +@@ -737,6 +785,8 @@ void PermissionContextBase::UpdateSetting( constraints.set_session_model( is_one_time ? content_settings::mojom::SessionModel::ONE_TIME : content_settings::mojom::SessionModel::DURABLE); @@ -1261,7 +1261,7 @@ diff --git a/components/permissions/permission_request.h b/components/permission // Called when the user has cancelled the permission request. This // corresponds to a denial, but is segregated in case the context needs to -@@ -237,6 +248,9 @@ class PermissionRequest { +@@ -234,6 +245,9 @@ class PermissionRequest { // Called once a decision is made about the permission. PermissionDecidedCallback permission_decided_callback_; 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 24ae1208..a2425da4 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 -@@ -187,6 +187,7 @@ found in the LICENSE file. +@@ -191,6 +191,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 -@@ -102,6 +102,7 @@ import org.chromium.chrome.browser.bookmarks.BookmarkPane; +@@ -100,6 +100,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; -@@ -292,6 +293,9 @@ import org.chromium.chrome.browser.ui.browser_window.ChromeAndroidTaskTrackerFac +@@ -296,6 +297,9 @@ import org.chromium.chrome.browser.ui.browser_window.ChromeAndroidTaskTrackerFac 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.extensions.windowing.ExtensionWindowControllerBridgeFactory; @@ -65,7 +65,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityClient; import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityExtras.IntentOrigin; import org.chromium.chrome.browser.ui.signin.BottomSheetSigninAndHistorySyncConfig; -@@ -303,6 +307,8 @@ import org.chromium.chrome.browser.usage_stats.UsageStatsService; +@@ -309,6 +313,8 @@ import org.chromium.chrome.browser.usage_stats.UsageStatsService; import org.chromium.chrome.browser.util.ChromeAccessibilityUtil; import org.chromium.chrome.browser.xr.scenecore.XrSceneCoreSessionInitializerImpl; import org.chromium.chrome.browser.xr.scenecore.XrSceneCoreSessionManagerImpl; @@ -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.util.BrowserControlsVisibilityDelegate; import org.chromium.components.browser_ui.util.ComposedBrowserControlsVisibilityDelegate; -@@ -3848,6 +3854,8 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -3910,6 +3916,8 @@ public class ChromeTabbedActivity extends ChromeActivity { 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); -@@ -3970,6 +3978,41 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -4030,6 +4038,41 @@ public class ChromeTabbedActivity extends ChromeActivity { 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 -@@ -271,6 +271,14 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm +@@ -291,6 +291,14 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm // Bookmarks modelList.add(buildBookmarksItem()); @@ -143,7 +143,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab // Recent Tabs if (shouldShowRecentTabsItem()) modelList.add(buildRecentTabsItem()); -@@ -448,6 +456,13 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm +@@ -466,6 +474,13 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm } 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 -@@ -4431,6 +4431,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4437,6 +4437,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d Select tabs @@ -520,15 +520,15 @@ diff --git a/components/bookmark_bar_strings.grdp b/components/bookmark_bar_stri diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmarks/browser/bookmark_codec.cc --- a/components/bookmarks/browser/bookmark_codec.cc +++ b/components/bookmarks/browser/bookmark_codec.cc -@@ -36,6 +36,7 @@ const char BookmarkCodec::kBookmarkBarFolderNameKey[] = "bookmark_bar"; +@@ -39,6 +39,7 @@ const char BookmarkCodec::kBookmarkBarFolderNameKey[] = "bookmark_bar"; const char BookmarkCodec::kOtherBookmarkFolderNameKey[] = "other"; // The value is left as 'synced' for historical reasons. const char BookmarkCodec::kMobileBookmarkFolderNameKey[] = "synced"; +const char BookmarkCodec::kTabsBookmarkFolderNameKey[] = "tabs"; const char BookmarkCodec::kVersionKey[] = "version"; const char BookmarkCodec::kChecksumKey[] = "checksum"; - const char BookmarkCodec::kIdKey[] = "id"; -@@ -73,6 +74,7 @@ base::Value::Dict BookmarkCodec::Encode( + const char BookmarkCodec::kChecksumSHA256Key[] = "checksum_sha256"; +@@ -99,6 +100,7 @@ base::Value::Dict BookmarkCodec::Encode( const BookmarkNode* bookmark_bar_node, const BookmarkNode* other_folder_node, const BookmarkNode* mobile_folder_node, @@ -536,7 +536,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar std::string sync_metadata_str) { ids_reassigned_ = false; uuids_reassigned_ = false; -@@ -98,6 +100,8 @@ base::Value::Dict BookmarkCodec::Encode( +@@ -124,6 +126,8 @@ base::Value::Dict BookmarkCodec::Encode( roots.Set(kBookmarkBarFolderNameKey, EncodeNode(bookmark_bar_node)); roots.Set(kOtherBookmarkFolderNameKey, EncodeNode(other_folder_node)); roots.Set(kMobileBookmarkFolderNameKey, EncodeNode(mobile_folder_node)); @@ -545,7 +545,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar } else { // No permanent node should have been provided. CHECK(!other_folder_node); -@@ -119,6 +123,7 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value, +@@ -148,6 +152,7 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value, BookmarkNode* bb_node, BookmarkNode* other_folder_node, BookmarkNode* mobile_folder_node, @@ -553,7 +553,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar int64_t* max_id, std::string* sync_metadata_str) { const int64_t max_already_assigned_id = -@@ -133,7 +138,8 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value, +@@ -162,7 +167,8 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value, base::Uuid::ParseLowercase(kBookmarkBarNodeUuid), base::Uuid::ParseLowercase(kOtherBookmarksNodeUuid), base::Uuid::ParseLowercase(kMobileBookmarksNodeUuid), @@ -563,23 +563,24 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar ids_reassigned_ = false; uuids_reassigned_ = false; ids_valid_ = true; -@@ -141,13 +147,14 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value, - stored_checksum_.clear(); +@@ -171,6 +177,7 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value, + stored_sha256_checksum_.clear(); InitializeChecksum(); bool success = DecodeHelper(bb_node, other_folder_node, mobile_folder_node, + tabs_folder_node, value, sync_metadata_str); FinalizeChecksum(); - // If either the checksums differ or some IDs were missing/not unique, - // reassign IDs. - if (!ids_valid_ || computed_checksum_ != stored_checksum_) { + +@@ -180,7 +187,7 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value, + if (!ids_valid_ || (computed_checksum_ != stored_checksum_) || + (use_sha256 && computed_sha256_checksum_ != stored_sha256_checksum_)) { maximum_id_ = max_already_assigned_id; - ReassignIDs(bb_node, other_folder_node, mobile_folder_node); + ReassignIDs(bb_node, other_folder_node, mobile_folder_node, tabs_folder_node); } *max_id = maximum_id_ + 1; return success; -@@ -205,6 +212,7 @@ base::Value::Dict BookmarkCodec::EncodeMetaInfo( +@@ -239,6 +246,7 @@ base::Value::Dict BookmarkCodec::EncodeMetaInfo( bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node, BookmarkNode* other_folder_node, BookmarkNode* mobile_folder_node, @@ -587,7 +588,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar const base::Value::Dict& value, std::string* sync_metadata_str) { std::optional version = value.FindInt(kVersionKey); -@@ -237,6 +245,8 @@ bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node, +@@ -284,6 +292,8 @@ bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node, roots->FindDict(kOtherBookmarkFolderNameKey); const base::Value::Dict* mobile_folder_value = roots->FindDict(kMobileBookmarkFolderNameKey); @@ -596,7 +597,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar if (!bb_value || !other_folder_value || !mobile_folder_value) return false; -@@ -244,6 +254,8 @@ bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node, +@@ -291,6 +301,8 @@ bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node, DecodeNode(*bb_value, nullptr, bb_node); DecodeNode(*other_folder_value, nullptr, other_folder_node); DecodeNode(*mobile_folder_value, nullptr, mobile_folder_node); @@ -605,7 +606,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar // Need to reset the title as the title is persisted and restored from // the file. -@@ -475,12 +487,14 @@ void BookmarkCodec::DecodeMetaInfoHelper( +@@ -499,12 +511,14 @@ void BookmarkCodec::DecodeMetaInfoHelper( void BookmarkCodec::ReassignIDs(BookmarkNode* bb_node, BookmarkNode* other_node, @@ -624,7 +625,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmarks/browser/bookmark_codec.h --- a/components/bookmarks/browser/bookmark_codec.h +++ b/components/bookmarks/browser/bookmark_codec.h -@@ -43,6 +43,7 @@ class BookmarkCodec { +@@ -44,6 +44,7 @@ class BookmarkCodec { const BookmarkNode* bookmark_bar_node, const BookmarkNode* other_folder_node, const BookmarkNode* mobile_folder_node, @@ -632,7 +633,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmark std::string sync_metadata_str); // Decodes the previously encoded value to the specified nodes as well as -@@ -61,6 +62,7 @@ class BookmarkCodec { +@@ -62,6 +63,7 @@ class BookmarkCodec { BookmarkNode* bb_node, BookmarkNode* other_folder_node, BookmarkNode* mobile_folder_node, @@ -640,15 +641,15 @@ diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmark int64_t* max_node_id, std::string* sync_metadata_str); -@@ -92,6 +94,7 @@ class BookmarkCodec { +@@ -100,6 +102,7 @@ class BookmarkCodec { static const char kBookmarkBarFolderNameKey[]; static const char kOtherBookmarkFolderNameKey[]; static const char kMobileBookmarkFolderNameKey[]; + static const char kTabsBookmarkFolderNameKey[]; static const char kVersionKey[]; static const char kChecksumKey[]; - static const char kIdKey[]; -@@ -124,6 +127,7 @@ class BookmarkCodec { + static const char kChecksumSHA256Key[]; +@@ -133,6 +136,7 @@ class BookmarkCodec { bool DecodeHelper(BookmarkNode* bb_node, BookmarkNode* other_folder_node, BookmarkNode* mobile_folder_node, @@ -656,7 +657,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmark const base::Value::Dict& value, std::string* sync_metadata_str); -@@ -134,7 +138,8 @@ class BookmarkCodec { +@@ -143,7 +147,8 @@ class BookmarkCodec { // Reassigns bookmark IDs for all nodes. void ReassignIDs(BookmarkNode* bb_node, BookmarkNode* other_node, @@ -906,7 +907,7 @@ diff --git a/components/bookmarks/browser/model_loader.cc b/components/bookmarks &sync_metadata_str)) { ids_assigned_to_account_nodes = codec.release_assigned_ids(); -@@ -123,7 +127,8 @@ std::unique_ptr LoadBookmarks( +@@ -118,7 +122,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(), @@ -919,7 +920,7 @@ diff --git a/components/bookmarks/browser/model_loader.cc b/components/bookmarks diff --git a/components/sync_bookmarks/bookmark_specifics_conversions.cc b/components/sync_bookmarks/bookmark_specifics_conversions.cc --- a/components/sync_bookmarks/bookmark_specifics_conversions.cc +++ b/components/sync_bookmarks/bookmark_specifics_conversions.cc -@@ -442,6 +442,7 @@ sync_pb::BookmarkSpecifics::Type GetProtoTypeFromBookmarkNode( +@@ -447,6 +447,7 @@ sync_pb::BookmarkSpecifics::Type GetProtoTypeFromBookmarkNode( case bookmarks::BookmarkNode::BOOKMARK_BAR: case bookmarks::BookmarkNode::OTHER_NODE: case bookmarks::BookmarkNode::MOBILE: diff --git a/build/patches/Add-menu-item-to-view-source.patch b/build/patches/Add-menu-item-to-view-source.patch index d9033c35..4c89e086 100644 --- a/build/patches/Add-menu-item-to-view-source.patch +++ b/build/patches/Add-menu-item-to-view-source.patch @@ -16,7 +16,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 -@@ -131,6 +131,7 @@ found in the LICENSE file. +@@ -133,6 +133,7 @@ found in the LICENSE file. @@ -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 -@@ -3884,6 +3884,8 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -3946,6 +3946,8 @@ public class ChromeTabbedActivity extends ChromeActivity { 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 -@@ -2638,6 +2638,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -2697,6 +2697,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity return doOpenWebApk(currentTab); } @@ -54,7 +54,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java -@@ -974,6 +974,30 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties +@@ -989,6 +989,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 -@@ -370,6 +370,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat +@@ -378,6 +378,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat modelList.add(buildAddToHomescreenListItem(currentTab, false)); } @@ -101,7 +101,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java -@@ -338,6 +338,9 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm +@@ -358,6 +358,9 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm modelList.add(buildAddToHomescreenListItem(currentTab, shouldShowIconBeforeItem())); } @@ -114,7 +114,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -321,6 +321,10 @@ CHAR_LIMIT guidelines: +@@ -324,6 +324,10 @@ CHAR_LIMIT guidelines: Collaboration diff --git a/build/patches/Add-option-to-disable-snapshots.patch b/build/patches/Add-option-to-disable-snapshots.patch index 92859e04..8a3c2db2 100644 --- a/build/patches/Add-option-to-disable-snapshots.patch +++ b/build/patches/Add-option-to-disable-snapshots.patch @@ -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 -@@ -129,6 +129,9 @@ public class TabProperties { +@@ -130,6 +130,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<>(); -@@ -223,6 +226,7 @@ public class TabProperties { +@@ -224,6 +227,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, -@@ -263,6 +267,7 @@ public class TabProperties { +@@ -264,6 +268,7 @@ public class TabProperties { TAB_ACTION_BUTTON_DATA, FAVICON_FETCHED, FAVICON_FETCHER, @@ -84,15 +84,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/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 -@@ -150,6 +150,7 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; +@@ -152,6 +152,7 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; import org.chromium.chrome.browser.preferences.Pref; import org.chromium.chrome.browser.price_tracking.PriceDropNotificationManagerFactory; import org.chromium.chrome.browser.printing.TabPrinter; +import org.chromium.chrome.browser.privacy.settings.PrivacySettings; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.ProfileManager; - import org.chromium.chrome.browser.profiles.ProfileProvider; -@@ -653,7 +654,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity + import org.chromium.chrome.browser.profiles.ProfileManagerUtils; +@@ -658,7 +659,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity new TabContentManager( this, mBrowserControlsManagerSupplier.get(), @@ -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 -@@ -6146,6 +6146,14 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -6185,6 +6185,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 8976f1cf..930d9de0 100644 --- a/build/patches/Add-option-to-force-tablet-UI.patch +++ b/build/patches/Add-option-to-force-tablet-UI.patch @@ -99,7 +99,7 @@ diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java -@@ -62,6 +62,7 @@ import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeController; +@@ -64,6 +64,7 @@ import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeController; import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeControllerCreator; import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeFieldTrialImpl; import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeUtils; @@ -107,7 +107,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCo import org.chromium.chrome.browser.ui.edge_to_edge.SimpleEdgeToEdgeController; import org.chromium.components.browser_ui.styles.SemanticColorUtils; import org.chromium.components.browser_ui.util.AutomotiveUtils; -@@ -142,6 +143,8 @@ public class ChromeBaseAppCompatActivity extends AppCompatActivity +@@ -145,6 +146,8 @@ public class ChromeBaseAppCompatActivity extends AppCompatActivity protected void attachBaseContext(Context newBase) { super.attachBaseContext(newBase); @@ -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 -@@ -803,7 +803,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -808,7 +808,9 @@ 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) { @@ -184,7 +184,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 -@@ -130,6 +130,7 @@ import org.chromium.components.tab_group_sync.TabGroupSyncService; +@@ -132,6 +132,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; @@ -192,7 +192,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over import org.chromium.ui.base.LocalizationUtils; import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.util.ColorUtils; -@@ -5147,8 +5148,13 @@ public class StripLayoutHelper +@@ -5039,8 +5040,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(); @@ -260,7 +260,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrow import org.chromium.chrome.browser.profiles.ProfileManager; import org.chromium.chrome.browser.signin.SigninCheckerProvider; import org.chromium.components.background_task_scheduler.BackgroundTaskSchedulerFactory; -@@ -109,6 +110,7 @@ public class ChromeBrowserInitializer { +@@ -110,6 +111,7 @@ public class ChromeBrowserInitializer { public void handlePreNativeStartupAndLoadLibraries(final BrowserParts parts) { ThreadUtils.checkUiThread(); if (parts.isActivityFinishingOrDestroyed()) return; @@ -271,7 +271,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 -@@ -762,7 +762,9 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -768,7 +768,9 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { @Override public int getControlContainerHeightResource() { @@ -285,7 +285,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java -@@ -107,6 +107,8 @@ import org.chromium.chrome.browser.paint_preview.DemoPaintPreview; +@@ -110,6 +110,8 @@ import org.chromium.chrome.browser.paint_preview.DemoPaintPreview; import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer; import org.chromium.chrome.browser.password_manager.PasswordManagerLauncher; import org.chromium.chrome.browser.pdf.PdfPage; @@ -294,7 +294,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; -@@ -1715,7 +1717,9 @@ public class RootUiCoordinator +@@ -1803,7 +1805,9 @@ public class RootUiCoordinator if (!mSupportsFindInPageSupplier.getAsBoolean()) return; int stubId = R.id.find_toolbar_stub; @@ -319,7 +319,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 -@@ -321,6 +321,7 @@ public final class ChromePreferenceKeys { +@@ -337,6 +337,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"; @@ -378,7 +378,7 @@ diff --git a/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/c import org.chromium.ui.insets.InsetObserver; import org.chromium.ui.insets.InsetObserver.WindowInsetsConsumer; import org.chromium.ui.insets.InsetsRectProvider; -@@ -280,6 +281,7 @@ public class AppHeaderCoordinator +@@ -281,6 +282,7 @@ public class AppHeaderCoordinator InsetsRectProvider insetsRectProvider, @DesktopWindowHeuristicResult int currentResult, boolean isOnExternalDisplay) { @@ -389,7 +389,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 -@@ -862,7 +862,7 @@ public class LocationBarCoordinator +@@ -869,7 +869,7 @@ public class LocationBarCoordinator } private boolean isTabletWindow() { @@ -401,7 +401,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 -@@ -1483,6 +1483,13 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1489,6 +1489,13 @@ Your Google account may have other forms of browsing history like searches and a Privacy guide explanation closed @@ -516,7 +516,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow import android.graphics.Canvas; import android.graphics.Color; import android.graphics.PorterDuff; -@@ -165,8 +166,25 @@ public class ToolbarControlContainer extends OptimizedFrameLayout +@@ -170,8 +171,25 @@ public class ToolbarControlContainer extends OptimizedFrameLayout @Override @Initializer @@ -587,7 +587,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/TabStripTransitionCoordinator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/TabStripTransitionCoordinator.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/TabStripTransitionCoordinator.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/TabStripTransitionCoordinator.java -@@ -28,6 +28,7 @@ import org.chromium.chrome.browser.ui.desktop_windowing.AppHeaderUtils; +@@ -29,6 +29,7 @@ import org.chromium.chrome.browser.ui.desktop_windowing.AppHeaderUtils; import org.chromium.components.browser_ui.desktop_windowing.AppHeaderState; import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateManager; import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateManager.AppHeaderObserver; @@ -595,7 +595,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow /** Class used to manage tab strip visibility and height updates. */ @NullMarked -@@ -153,7 +154,10 @@ public class TabStripTransitionCoordinator implements ComponentCallbacks, AppHea +@@ -148,7 +149,10 @@ public class TabStripTransitionCoordinator implements ComponentCallbacks, AppHea mTabStripReservedTopPadding = controlContainerView() .getResources() @@ -610,7 +610,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml --- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml +++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml -@@ -41,6 +41,11 @@ found in the LICENSE file. +@@ -36,6 +36,11 @@ found in the LICENSE file. android:summary="@string/jump_start_omnibox_summary" android:title="@string/jump_start_omnibox_title" /> @@ -643,7 +643,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c private PageZoomPreference mPageZoomDefaultZoomPref; private ChromeSwitchPreference mPageZoomIncludeOSAdjustment; private ChromeSwitchPreference mPageZoomAlwaysShowPref; -@@ -108,6 +112,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -117,6 +121,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment mDelegate.getReaderAccessibilityDelegate().getValue()); readerForAccessibilityPref.setOnPreferenceChangeListener(this); @@ -656,7 +656,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c Preference captions = findPreference(PREF_CAPTIONS); captions.setOnPreferenceClickListener( preference -> { -@@ -167,6 +177,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -176,6 +186,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment public boolean onPreferenceChange(Preference preference, Object newValue) { if (PREF_FORCE_ENABLE_ZOOM.equals(preference.getKey())) { mDelegate.getForceEnableZoomAccessibilityDelegate().setValue((Boolean) newValue); @@ -681,7 +681,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java --- a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java +++ b/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java -@@ -70,6 +70,14 @@ public class DeviceFormFactor { +@@ -79,6 +79,14 @@ public class DeviceFormFactor { /** See {@link #setIsTabletForTesting(boolean)}. */ private static @Nullable Boolean sIsTabletForTesting; @@ -696,7 +696,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui /** * Each activity could be on a different display, and this will just tell you whether the * display associated with the application context is "tablet sized". Use {@link -@@ -78,6 +86,7 @@ public class DeviceFormFactor { +@@ -87,6 +95,7 @@ public class DeviceFormFactor { @CalledByNative @Deprecated public static boolean isTablet() { @@ -704,7 +704,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui if (sIsTabletForTesting != null) { return sIsTabletForTesting; } -@@ -108,6 +117,7 @@ public class DeviceFormFactor { +@@ -117,6 +126,7 @@ public class DeviceFormFactor { * E.g. http://developer.samsung.com/samsung-dex/testing */ public static boolean isNonMultiDisplayContextOnTablet(Context context) { @@ -712,7 +712,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui return detectScreenWidthBucket(context) >= SCREEN_BUCKET_TABLET; } -@@ -142,6 +152,7 @@ public class DeviceFormFactor { +@@ -151,6 +161,7 @@ public class DeviceFormFactor { * @return The screen width bucket the device is in (see constants at the top of this class). */ private static int detectScreenWidthBucket(Context context) { @@ -720,7 +720,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui return context.getResources().getInteger(R.integer.min_screen_width_bucket); } -@@ -149,6 +160,7 @@ public class DeviceFormFactor { +@@ -158,6 +169,7 @@ public class DeviceFormFactor { ThreadUtils.assertOnUiThread(); Context context = windowAndroid.getContext().get(); if (context == null) return 0; @@ -728,7 +728,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui return context.getResources().getInteger(R.integer.min_screen_width_bucket); } -@@ -158,6 +170,7 @@ public class DeviceFormFactor { +@@ -167,6 +179,7 @@ public class DeviceFormFactor { */ @UiThread public static int getNonMultiDisplayMinimumTabletWidthPx(Context context) { @@ -736,7 +736,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui return getMinimumTabletWidthPx(DisplayAndroid.getNonMultiDisplay(context)); } -@@ -166,6 +179,7 @@ public class DeviceFormFactor { +@@ -175,6 +188,7 @@ public class DeviceFormFactor { * layout. */ public static int getMinimumTabletWidthPx(DisplayAndroid display) { 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 46458afb..cf0e4938 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 @@ -28,7 +28,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 -@@ -46,6 +46,7 @@ import org.chromium.base.Callback; +@@ -47,6 +47,7 @@ import org.chromium.base.Callback; import org.chromium.base.CallbackController; import org.chromium.base.CallbackUtils; import org.chromium.base.CommandLine; @@ -36,7 +36,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.base.IntentUtils; import org.chromium.base.Log; import org.chromium.base.MemoryPressureListener; -@@ -2151,8 +2152,10 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -2218,8 +2219,10 @@ public class ChromeTabbedActivity extends ChromeActivity { boolean hadCipherData = CipherLazyHolder.sCipherInstance.restoreFromBundle(getSavedInstanceState()); @@ -104,7 +104,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 -@@ -2850,6 +2850,12 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -2856,6 +2856,12 @@ To change this setting, BEGIN_LINKdelete the Chrome d All tabs diff --git a/build/patches/Add-search-engine.patch b/build/patches/Add-search-engine.patch index 3498b0b9..5e22cc15 100644 --- a/build/patches/Add-search-engine.patch +++ b/build/patches/Add-search-engine.patch @@ -63,7 +63,7 @@ diff --git a/components/search_engines/BUILD.gn b/components/search_engines/BUIL ] deps = [ -@@ -162,6 +163,7 @@ source_set("search_engine_utils") { +@@ -164,6 +165,7 @@ source_set("search_engine_utils") { ":search_engine_type", "//components/google/core/common", "//third_party/search_engines_data:prepopulated_engines", @@ -71,7 +71,7 @@ diff --git a/components/search_engines/BUILD.gn b/components/search_engines/BUIL ] deps = [ "//url" ] -@@ -252,6 +254,7 @@ source_set("unit_tests") { +@@ -258,6 +260,7 @@ source_set("unit_tests") { "//testing/gmock", "//testing/gtest", "//third_party/search_engines_data:prepopulated_engines", 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 32726289..fa2ce727 100644 --- a/build/patches/Add-setting-to-clear-data-on-exit.patch +++ b/build/patches/Add-setting-to-clear-data-on-exit.patch @@ -48,7 +48,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 -@@ -264,6 +264,7 @@ chrome_java_sources = [ +@@ -265,6 +265,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", @@ -82,7 +82,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; -@@ -2157,7 +2158,11 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -2224,7 +2225,11 @@ public class ChromeTabbedActivity extends ChromeActivity { Intent intent = getIntent(); boolean hadCipherData = @@ -136,7 +136,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 -@@ -160,6 +160,12 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -164,6 +164,12 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment assert mCheckbox == preference; mParent.updateButtonState(); @@ -149,7 +149,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C return true; } -@@ -241,7 +247,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -245,7 +251,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment private @TimePeriod int mLastSelectedTimePeriod; private boolean mShouldShowPostDeleteFeedback; @@ -158,7 +158,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C /** * @return All available {@link DialogOption} entries. -@@ -347,7 +353,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -351,7 +357,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment } /** Called when browsing data is about to be cleared. */ @@ -167,7 +167,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C RecordUserAction.record("ClearBrowsingData_AdvancedTab"); if (ChromeFeatureList.sClearBrowsingDataAndroidSurvey.isEnabled()) { -@@ -437,6 +443,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -442,6 +448,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment BrowsingDataBridge.getForProfile(getProfile()) .setBrowsingDataDeletionPreference( ClearBrowsingDataFragment.getDataType(item.getOption()), @@ -175,7 +175,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C item.isSelected()); } -@@ -444,8 +451,12 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -449,8 +456,12 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment .setBrowsingDataDeletionTimePeriod(mLastSelectedTimePeriod); } @@ -189,7 +189,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); -@@ -471,6 +482,10 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -476,6 +487,10 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment DialogOption.CLEAR_SITE_SETTINGS); } @@ -200,7 +200,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C /** * Decides whether a given dialog option should be selected when the dialog is initialized. * -@@ -479,7 +494,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -484,7 +499,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment */ private boolean isOptionSelectedByDefault(@DialogOption int option) { return BrowsingDataBridge.getForProfile(getProfile()) @@ -209,7 +209,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C } /** -@@ -547,6 +562,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -552,6 +567,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment * options. */ private void onClearButtonClicked() { @@ -217,15 +217,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C if (shouldShowImportantSitesDialog()) { showImportantDialogThenClear(); return; -@@ -576,6 +592,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment - Button clearButton = (Button) getView().findViewById(R.id.clear_button); +@@ -581,6 +597,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment + Button clearButton = (Button) assumeNonNull(getView()).findViewById(R.id.clear_button); boolean isEnabled = !getSelectedOptions().isEmpty(); clearButton.setEnabled(isEnabled); + clearButton.setVisibility(shouldClearBrowsingData() ? View.VISIBLE : View.INVISIBLE); } private int getSpinnerIndex( -@@ -651,7 +668,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -658,7 +675,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment .getBoolean(Pref.ALLOW_DELETING_BROWSER_HISTORY)) { enabled = false; browsingDataBridge.setBrowsingDataDeletionPreference( @@ -234,7 +234,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. -@@ -681,8 +698,12 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -688,8 +705,12 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment mSigninManager.addSignInStateObserver(this); setHasOptionsMenu(true); @@ -334,7 +334,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 -@@ -2036,6 +2036,16 @@ +@@ -2067,6 +2067,16 @@ Delete browsing data @@ -354,7 +354,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 -@@ -108,6 +108,7 @@ +@@ -110,6 +110,7 @@ #include "components/enterprise/data_controls/core/browser/features.h" #include "components/enterprise/obfuscation/core/utils.h" #include "components/error_page/common/error_page_switches.h" @@ -503,7 +503,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate. content::BackgroundTracingManager::GetInstance().DeleteTracesInDateRange( delete_begin_, delete_end_); -@@ -1306,6 +1319,8 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -1314,6 +1327,8 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( if (should_clear_zero_suggest_and_session_token && template_url_service) template_url_service->ClearSessionToken(); @@ -515,7 +515,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 -@@ -554,6 +554,23 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { +@@ -557,6 +557,23 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { (*s_allowlist)[browsing_data::prefs::kLastClearBrowsingDataTab] = settings_api::PrefType::kNumber; @@ -574,7 +574,7 @@ diff --git a/chrome/browser/profiles/android/profile_manager_utils.cc b/chrome/b diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc --- a/chrome/browser/profiles/profile_manager.cc +++ b/chrome/browser/profiles/profile_manager.cc -@@ -1434,6 +1434,19 @@ void ProfileManager::DoFinalInit(ProfileInfo* profile_info, +@@ -1435,6 +1435,19 @@ void ProfileManager::DoFinalInit(ProfileInfo* profile_info, } } @@ -594,7 +594,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_ || -@@ -2095,7 +2108,7 @@ void ProfileManager::OnBrowserClosed(Browser* browser) { +@@ -2096,7 +2109,7 @@ void ProfileManager::OnBrowserClosed(Browser* browser) { Profile* original_profile = profile->GetOriginalProfile(); // Do nothing if the closed window is not the last window of the same profile. for (Browser* browser_iter : *BrowserList::GetInstance()) { @@ -691,7 +691,7 @@ diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -1419,6 +1419,9 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1425,6 +1425,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>. @@ -718,7 +718,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 -@@ -2028,6 +2028,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, +@@ -2042,6 +2042,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, {"clearedData", IDS_SETTINGS_CLEARED_DATA}, {"clearBrowsingData", IDS_SETTINGS_CLEAR_BROWSING_DATA}, {"clearBrowsingDataDescription", IDS_SETTINGS_CLEAR_DATA_DESCRIPTION}, @@ -729,10 +729,10 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide diff --git a/components/browsing_data/content/browsing_data_helper.cc b/components/browsing_data/content/browsing_data_helper.cc --- a/components/browsing_data/content/browsing_data_helper.cc +++ b/components/browsing_data/content/browsing_data_helper.cc -@@ -42,8 +42,13 @@ bool WebsiteSettingsFilterAdapter( - // this filter is used for is DURABLE_STORAGE, which also only uses - // origin-scoped patterns. Such patterns can be directly translated to a GURL. - GURL url(primary_pattern.ToString()); +@@ -44,8 +44,13 @@ bool WebsiteSettingsFilterAdapter( + // `example.com`). + GURL url = primary_pattern.ToRepresentativeUrl(); + - DCHECK(url.is_valid()) << "url: '" << url.possibly_invalid_spec() << "' " - << "pattern: '" << primary_pattern.ToString() << "'"; + if (!url.is_valid()) { @@ -770,7 +770,7 @@ diff --git a/components/browsing_data/core/BUILD.gn b/components/browsing_data/c diff --git a/components/browsing_data/core/browsing_data_policies_utils.cc b/components/browsing_data/core/browsing_data_policies_utils.cc --- a/components/browsing_data/core/browsing_data_policies_utils.cc +++ b/components/browsing_data/core/browsing_data_policies_utils.cc -@@ -17,21 +17,21 @@ +@@ -18,21 +18,21 @@ namespace browsing_data { @@ -826,7 +826,7 @@ diff --git a/components/browsing_data/core/browsing_data_policies_utils.h b/comp diff --git a/components/browsing_data/core/browsing_data_utils.cc b/components/browsing_data/core/browsing_data_utils.cc --- a/components/browsing_data/core/browsing_data_utils.cc +++ b/components/browsing_data/core/browsing_data_utils.cc -@@ -413,6 +413,37 @@ bool GetDeletionPreferenceFromDataType( +@@ -418,6 +418,37 @@ bool GetDeletionPreferenceFromDataType( BrowsingDataType data_type, ClearBrowsingDataTab clear_browsing_data_tab, std::string* out_pref) { @@ -988,7 +988,7 @@ diff --git a/content/browser/btm/btm_service_impl.cc b/content/browser/btm/btm_s diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage_partition_impl.cc --- a/content/browser/storage_partition_impl.cc +++ b/content/browser/storage_partition_impl.cc -@@ -1529,6 +1529,7 @@ void StoragePartitionImpl::Initialize( +@@ -1550,6 +1550,7 @@ void StoragePartitionImpl::Initialize( .AppendASCII("Code Cache"); } DCHECK_GE(settings.size_in_bytes(), 0); diff --git a/build/patches/Add-setting-to-enable-Credman-for-passkeys.patch b/build/patches/Add-setting-to-enable-Credman-for-passkeys.patch index b8a771ec..3684cb59 100644 --- a/build/patches/Add-setting-to-enable-Credman-for-passkeys.patch +++ b/build/patches/Add-setting-to-enable-Credman-for-passkeys.patch @@ -145,7 +145,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } @Override -@@ -329,26 +328,20 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -339,26 +338,20 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon capabilities.add( createWebAuthnClientCapability( AuthenticatorConstants.CAPABILITY_CONDITIONAL_GET, @@ -285,7 +285,7 @@ diff --git a/components/webauthn/features.cc b/components/webauthn/features.cc + #endif // BUILDFLAG(IS_ANDROID) - } // namespace webauthn::features + #if !BUILDFLAG(IS_ANDROID) diff --git a/components/webauthn/features.h b/components/webauthn/features.h --- a/components/webauthn/features.h +++ b/components/webauthn/features.h @@ -298,11 +298,11 @@ diff --git a/components/webauthn/features.h b/components/webauthn/features.h + #endif // BUILDFLAG(IS_ANDROID) - } // namespace webauthn::features + #if !BUILDFLAG(IS_ANDROID) diff --git a/device/fido/features.cc b/device/fido/features.cc --- a/device/fido/features.cc +++ b/device/fido/features.cc -@@ -163,6 +163,7 @@ BASE_FEATURE(kWebAuthnImmediateGet, +@@ -154,6 +154,7 @@ BASE_FEATURE(kWebAuthnImmediateGet, #else base::FEATURE_ENABLED_BY_DEFAULT); #endif // BUILDFLAG(IS_ANDROID) @@ -310,18 +310,18 @@ diff --git a/device/fido/features.cc b/device/fido/features.cc BASE_FEATURE_PARAM(int, kWebAuthnImmediateMediationTimeoutMilliseconds, -@@ -175,6 +176,7 @@ BASE_FEATURE_PARAM(int, +@@ -166,6 +167,7 @@ BASE_FEATURE_PARAM(int, BASE_FEATURE(kWebAuthnImmediateGetAutoselect, "WebAuthenticationImmediateGetAutoselect", base::FEATURE_ENABLED_BY_DEFAULT); +SET_CROMITE_FEATURE_DISABLED(kWebAuthnImmediateGetAutoselect); - #if BUILDFLAG(IS_MAC) - // Default enabled in M139. Remove in or after M142. + // Default enabled in M140. Remove in or after M143. + BASE_FEATURE(kWebAuthnLargeBlobForGPM, diff --git a/third_party/blink/renderer/modules/credentialmanagement/authentication_credentials_container.cc b/third_party/blink/renderer/modules/credentialmanagement/authentication_credentials_container.cc --- a/third_party/blink/renderer/modules/credentialmanagement/authentication_credentials_container.cc +++ b/third_party/blink/renderer/modules/credentialmanagement/authentication_credentials_container.cc -@@ -1057,6 +1057,11 @@ DOMException* AuthenticatorStatusToDOMException( +@@ -1076,6 +1076,11 @@ DOMException* AuthenticatorStatusToDOMException( const WebAuthnDOMExceptionDetailsPtr& dom_exception_details) { DCHECK_EQ(status != AuthenticatorStatus::ERROR_WITH_DOM_EXCEPTION_DETAILS, dom_exception_details.is_null()); diff --git a/build/patches/Add-setting-to-invert-tap-and-long-tap.patch b/build/patches/Add-setting-to-invert-tap-and-long-tap.patch index 24d4048d..2d7068de 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 @@ -59,7 +59,7 @@ diff --git a/android_webview/java/src/org/chromium/android_webview/contextmenu/A 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 -@@ -107,6 +107,7 @@ found in the LICENSE file. +@@ -109,6 +109,7 @@ found in the LICENSE file. @@ -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 -@@ -447,6 +447,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -452,6 +452,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { } if (mParams.isAnchor()) { ModelList linkGroup = new ModelList(); @@ -138,7 +138,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr if (FirstRunStatus.getFirstRunFlowComplete() && !isEmptyUrl(mParams.getUrl()) && UrlUtilities.isAcceptedScheme(mParams.getUrl())) { -@@ -1039,6 +1042,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -1054,6 +1057,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { getProfile(), false); }); @@ -150,7 +150,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/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 -@@ -370,6 +370,14 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { +@@ -374,6 +374,14 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { mTab.loadUrl(loadUrlParams); } @@ -168,7 +168,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -429,6 +429,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -433,6 +433,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kTabGroupParityBottomSheetAndroid, &kTabModelInitFixes, &kTabStorageSqlitePrototype, @@ -179,7 +179,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -503,6 +503,8 @@ public abstract class ChromeFeatureList { +@@ -507,6 +507,8 @@ public abstract class ChromeFeatureList { "DisableToolbarSwipeUp"; public static final String MOVE_TOP_TOOLBAR_TO_BOTTOM = "MoveTopToolbarToBottom"; @@ -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 -@@ -1548,6 +1548,12 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1554,6 +1554,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 -@@ -3189,6 +3195,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -3195,6 +3201,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d Open in new Chrome tab @@ -234,7 +234,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml --- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml +++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml -@@ -31,6 +31,11 @@ found in the LICENSE file. +@@ -26,6 +26,11 @@ found in the LICENSE file. android:summary="@string/page_zoom_always_show_preference_summary" android:title="@string/page_zoom_always_show_preference_title" /> @@ -259,7 +259,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c private PageZoomPreference mPageZoomDefaultZoomPref; private ChromeSwitchPreference mPageZoomIncludeOSAdjustment; private ChromeSwitchPreference mPageZoomAlwaysShowPref; -@@ -139,6 +142,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -148,6 +151,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment mDisableToolbarSwipeUpPref.setChecked(mDisableToolbarSwipeUpDelegate.getValue()); mDisableToolbarSwipeUpPref.setOnPreferenceChangeListener(this); @@ -272,7 +272,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c Preference captions = findPreference(PREF_CAPTIONS); captions.setOnPreferenceClickListener( preference -> { -@@ -220,6 +229,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -229,6 +238,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment } else if (PREF_DISABLE_TOOLBAR_SWIPE_UP.equals(preference.getKey())) { mDisableToolbarSwipeUpDelegate.setValue((Boolean) newValue); mDelegate.requestRestart(getActivity()); @@ -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" -@@ -467,6 +468,17 @@ void HTMLAnchorElementBase::NavigateToHyperlink( +@@ -476,6 +477,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; -@@ -557,6 +569,15 @@ void HTMLAnchorElementBase::NavigateToHyperlink( +@@ -566,6 +578,15 @@ void HTMLAnchorElementBase::NavigateToHyperlink( frame_request.SetImpression(impression); } @@ -386,8 +386,8 @@ 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; -@@ -600,7 +621,7 @@ Element* HTMLAnchorElementBase::InterestForElement() const { - html_names::kInterestforAttr); +@@ -601,7 +622,7 @@ bool HTMLAnchorElementBase::IsValidInterestInvoker(Element& target) const { + return IsLink(); } -void HTMLAnchorElementBase::HandleClick(MouseEvent& event) { @@ -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(); -@@ -658,13 +679,12 @@ void HTMLAnchorElementBase::HandleClick(MouseEvent& event) { +@@ -659,13 +680,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( -@@ -674,7 +694,9 @@ void HTMLAnchorElementBase::HandleClick(MouseEvent& event) { +@@ -675,7 +695,9 @@ void HTMLAnchorElementBase::HandleClick(MouseEvent& event) { frame->GetEventHandler().SetDelayedNavigationTaskHandle( std::move(task_handle)); } else { @@ -428,7 +428,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.h b/third_ --- a/third_party/blink/renderer/core/html/html_anchor_element.h +++ b/third_party/blink/renderer/core/html/html_anchor_element.h @@ -112,6 +112,7 @@ class CORE_EXPORT HTMLAnchorElementBase : public HTMLElement, - Element* InterestForElement() const override; + bool IsValidInterestInvoker(Element& target) const override; void Trace(Visitor*) const override; + void HandleClick(MouseEvent&, bool do_not_show_context_menu = false); @@ -467,7 +467,7 @@ diff --git a/third_party/blink/renderer/core/html/html_image_element.cc b/third_ #include "third_party/blink/renderer/core/paint/timing/paint_timing.h" #include "third_party/blink/renderer/core/probe/core_probes.h" #include "third_party/blink/renderer/core/resize_observer/resize_observer_entry.h" -@@ -786,6 +788,21 @@ void HTMLImageElement::DidFinishLayout() { +@@ -796,6 +798,21 @@ void HTMLImageElement::DidFinishLayout() { } } @@ -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; -@@ -837,7 +850,7 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame, +@@ -836,7 +849,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 b95565e2..ddd927c2 100644 --- a/build/patches/Add-site-engagement-flag.patch +++ b/build/patches/Add-site-engagement-flag.patch @@ -24,7 +24,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 -@@ -169,6 +169,7 @@ +@@ -171,6 +171,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" @@ -76,7 +76,7 @@ diff --git a/components/feature_engagement/internal/tracker_impl.cc b/components #include "components/feature_engagement/internal/availability_model_impl.h" #include "components/feature_engagement/internal/blocked_iph_features.h" #include "components/feature_engagement/internal/chrome_variations_configuration.h" -@@ -306,6 +307,8 @@ TrackerImpl::TrackerImpl( +@@ -291,6 +292,8 @@ TrackerImpl::TrackerImpl( TrackerImpl::~TrackerImpl() = default; void TrackerImpl::NotifyEvent(const std::string& event) { diff --git a/build/patches/Add-support-for-ISupportHelpAndFeedback.patch b/build/patches/Add-support-for-ISupportHelpAndFeedback.patch index 4756ba12..fde685d2 100644 --- a/build/patches/Add-support-for-ISupportHelpAndFeedback.patch +++ b/build/patches/Add-support-for-ISupportHelpAndFeedback.patch @@ -12,15 +12,15 @@ 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 -@@ -56,6 +56,7 @@ import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar; +@@ -63,6 +63,7 @@ import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar; import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; import org.chromium.components.browser_ui.bottomsheet.BottomSheetControllerFactory; import org.chromium.components.browser_ui.bottomsheet.ManagedBottomSheetController; +import org.chromium.components.browser_ui.settings.SettingsUtils; import org.chromium.components.browser_ui.modaldialog.AppModalPresenter; import org.chromium.components.browser_ui.settings.EmbeddableSettingsPage; - import org.chromium.components.browser_ui.settings.SettingsFragment; -@@ -485,8 +486,12 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity + import org.chromium.components.browser_ui.settings.PreferenceUpdateObserver; +@@ -733,8 +734,12 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity finishCurrentSettings(mainFragment); return true; } else if (item.getItemId() == R.id.menu_id_general_help) { @@ -38,7 +38,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin diff --git a/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java b/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java --- a/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java +++ b/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java -@@ -28,6 +28,10 @@ import org.chromium.ui.drawable.StateListDrawableBuilder; +@@ -33,6 +33,10 @@ import java.util.ArrayList; /** A helper class for Settings. */ @NullMarked public class SettingsUtils { diff --git a/build/patches/Add-webGL-site-setting.patch b/build/patches/Add-webGL-site-setting.patch index ebcfe814..1972e4fc 100644 --- a/build/patches/Add-webGL-site-setting.patch +++ b/build/patches/Add-webGL-site-setting.patch @@ -206,7 +206,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context diff --git a/third_party/blink/renderer/core/execution_context/execution_context.h b/third_party/blink/renderer/core/execution_context/execution_context.h --- a/third_party/blink/renderer/core/execution_context/execution_context.h +++ b/third_party/blink/renderer/core/execution_context/execution_context.h -@@ -114,6 +114,8 @@ enum ReasonForCallingCanExecuteScripts { +@@ -115,6 +115,8 @@ enum ReasonForCallingCanExecuteScripts { enum ReferrerPolicySource { kPolicySourceHttpHeader, kPolicySourceMetaTag }; @@ -218,7 +218,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc --- a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc +++ b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc -@@ -345,6 +345,13 @@ void WebGLRenderingContextBase::InitializeWebGLContextLimits( +@@ -346,6 +346,13 @@ void WebGLRenderingContextBase::InitializeWebGLContextLimits( } } @@ -232,8 +232,8 @@ diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_ba unsigned WebGLRenderingContextBase::CurrentMaxGLContexts() { base::AutoLock locker(WebGLContextLimitLock()); DCHECK(webgl_context_limits_initialized_); -@@ -615,25 +622,6 @@ static String ExtractWebGLContextCreationError( - const Platform::GraphicsInfo& info) { +@@ -616,25 +623,6 @@ static String ExtractWebGLContextCreationError( + const Platform::WebGLContextInfo& info) { StringBuilder builder; builder.Append("Could not create a WebGL context"); - FormatWebGLStatusString( @@ -258,10 +258,10 @@ diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_ba FormatWebGLStatusString("ErrorMessage", info.error_message.Utf8().c_str(), builder); builder.Append('.'); -@@ -694,6 +682,12 @@ WebGLRenderingContextBase::CreateWebGraphicsContext3DProvider( +@@ -695,6 +683,12 @@ WebGLRenderingContextBase::CreateWebGraphicsContext3DProvider( const CanvasContextCreationAttributesCore& attributes, - Platform::ContextType context_type, - Platform::GraphicsInfo* graphics_info) { + Platform::WebGLContextType context_type, + Platform::WebGLContextInfo* context_info) { + if (!AllowWebglForHost(host)) { + host->HostDispatchEvent(WebGLContextEvent::Create( + event_type_names::kWebglcontextcreationerror, diff --git a/build/patches/Add-webRTC-site-settings.patch b/build/patches/Add-webRTC-site-settings.patch index d981ed2d..fe0202fd 100644 --- a/build/patches/Add-webRTC-site-settings.patch +++ b/build/patches/Add-webRTC-site-settings.patch @@ -187,7 +187,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc --- a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc +++ b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc -@@ -46,6 +46,7 @@ +@@ -47,6 +47,7 @@ #include "third_party/blink/public/platform/modules/webrtc/webrtc_logging.h" #include "third_party/blink/public/platform/platform.h" #include "third_party/blink/public/platform/task_type.h" @@ -195,7 +195,7 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_d #include "third_party/blink/public/platform/web_url.h" #include "third_party/blink/public/web/modules/mediastream/media_stream_video_source.h" #include "third_party/blink/public/web/web_document.h" -@@ -1023,6 +1024,11 @@ PeerConnectionDependencyFactory::CreatePortAllocator( +@@ -989,6 +990,11 @@ PeerConnectionDependencyFactory::CreatePortAllocator( // |request_multiple_routes|. Whether local IP addresses could be // collected depends on if mic/camera permission is granted for this // origin. @@ -220,7 +220,7 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver. #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_insertable_streams.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_rtcp_parameters.h" -@@ -287,6 +290,14 @@ RTCRtpCapabilities* RTCRtpReceiver::getCapabilities(ScriptState* state, +@@ -279,6 +282,14 @@ RTCRtpCapabilities* RTCRtpReceiver::getCapabilities(ScriptState* state, if (kind != "audio" && kind != "video") return nullptr; @@ -248,7 +248,7 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_encoding_options.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_insertable_streams.h" -@@ -1034,6 +1037,14 @@ RTCRtpCapabilities* RTCRtpSender::getCapabilities(ScriptState* state, +@@ -1031,6 +1034,14 @@ RTCRtpCapabilities* RTCRtpSender::getCapabilities(ScriptState* state, if (kind != "audio" && kind != "video") return nullptr; diff --git a/build/patches/Allow-building-without-enable_reporting.patch b/build/patches/Allow-building-without-enable_reporting.patch index e8189610..0dcdb80a 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 -@@ -1516,6 +1516,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) { +@@ -1520,6 +1520,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( -@@ -1529,6 +1530,7 @@ std::vector ComputeReportingURLs(RenderFrameHostImpl* frame_host) { +@@ -1533,6 +1534,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 -@@ -16185,12 +16185,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport( +@@ -16264,12 +16264,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport( } } } @@ -308,7 +308,7 @@ diff --git a/net/reporting/reporting_service.cc b/net/reporting/reporting_servic diff --git a/services/network/network_context.h b/services/network/network_context.h --- a/services/network/network_context.h +++ b/services/network/network_context.h -@@ -501,14 +501,14 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -506,14 +506,14 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext const GURL& url, const std::optional& reporting_source, const net::NetworkAnonymizationKey& network_anonymization_key, @@ -329,7 +329,7 @@ diff --git a/services/network/network_context.h b/services/network/network_conte diff --git a/services/network/public/cpp/parsed_headers.cc b/services/network/public/cpp/parsed_headers.cc --- a/services/network/public/cpp/parsed_headers.cc +++ b/services/network/public/cpp/parsed_headers.cc -@@ -125,6 +125,7 @@ mojom::ParsedHeadersPtr PopulateParsedHeaders( +@@ -133,6 +133,7 @@ mojom::ParsedHeadersPtr PopulateParsedHeaders( } #if BUILDFLAG(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 -@@ -1264,6 +1264,7 @@ interface NetworkContext { +@@ -1303,6 +1303,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, -@@ -1271,6 +1272,7 @@ interface NetworkContext { +@@ -1310,6 +1311,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, -@@ -1281,6 +1283,7 @@ interface NetworkContext { +@@ -1320,6 +1322,7 @@ interface NetworkContext { // Note that this queued report will never be delivered if no reporting // endpoint matching is registered for with the provided // `network_anonymization_key`. @@ -386,7 +386,7 @@ diff --git a/third_party/blink/renderer/core/frame/csp/content_security_policy.c #include "base/containers/contains.h" #include "base/debug/dump_without_crashing.h" #include "base/feature_list.h" -@@ -1356,6 +1357,7 @@ void ContentSecurityPolicy::ReportViolation( +@@ -1355,6 +1356,7 @@ void ContentSecurityPolicy::ReportViolation( ShouldBypassContentSecurityPolicy(KURL(violation_data->sourceFile()))) { return; } @@ -394,7 +394,7 @@ diff --git a/third_party/blink/renderer/core/frame/csp/content_security_policy.c PostViolationReport(violation_data, context_frame, report_endpoints, use_reporting_api); -@@ -1363,6 +1365,7 @@ void ContentSecurityPolicy::ReportViolation( +@@ -1362,6 +1364,7 @@ void ContentSecurityPolicy::ReportViolation( // `context_frame` (i.e. we're not processing 'frame-ancestors'). if (delegate_ && !context_frame) delegate_->DispatchViolationEvent(*violation_data, element); @@ -413,7 +413,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ #include "services/network/public/cpp/features.h" #include "services/network/public/mojom/content_security_policy.mojom-blink.h" #include "services/network/public/mojom/source_location.mojom-blink.h" -@@ -2860,9 +2861,11 @@ DocumentResourceCoordinator* LocalFrame::GetDocumentResourceCoordinator() { +@@ -2851,9 +2852,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 "mojo/public/cpp/bindings/pending_associated_receiver.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "net/storage_access_api/status.h" -@@ -671,7 +672,9 @@ class CORE_EXPORT LocalFrame final +@@ -668,7 +669,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 ea83f0b0..0e303a10 100644 --- a/build/patches/Allow-building-without-supervised-users.patch +++ b/build/patches/Allow-building-without-supervised-users.patch @@ -24,7 +24,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -820,7 +820,6 @@ if (_is_default_toolchain) { +@@ -826,7 +826,6 @@ if (_is_default_toolchain) { "//components/offline_pages/core:offline_page_model_enums_java", "//components/sharing_message:sharing_dialog_type_generated_enum", "//components/sharing_message:sharing_send_message_result_generated_enum", @@ -65,7 +65,7 @@ diff --git a/chrome/browser/feedback/android/BUILD.gn b/chrome/browser/feedback/ diff --git a/chrome/browser/prefs/chrome_pref_service_factory.cc b/chrome/browser/prefs/chrome_pref_service_factory.cc --- a/chrome/browser/prefs/chrome_pref_service_factory.cc +++ b/chrome/browser/prefs/chrome_pref_service_factory.cc -@@ -324,7 +324,7 @@ void PrepareFactory( +@@ -327,7 +327,7 @@ void PrepareFactory( policy::BrowserPolicyConnector* policy_connector) { factory->SetManagedPolicies(policy_service, policy_connector); factory->SetRecommendedPolicies(policy_service, policy_connector); @@ -100,7 +100,7 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p // Changes in the profile avatar. pref_change_registrar_.Add( -@@ -1623,6 +1619,7 @@ GURL ProfileImpl::GetHomePage() { +@@ -1632,6 +1628,7 @@ GURL ProfileImpl::GetHomePage() { } void ProfileImpl::UpdateSupervisedUserIdInStorage() { @@ -111,7 +111,7 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc --- a/chrome/browser/profiles/profile_manager.cc +++ b/chrome/browser/profiles/profile_manager.cc -@@ -1190,10 +1190,6 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) { +@@ -1191,10 +1191,6 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) { profile->GetPrefs()->SetString(prefs::kProfileName, profile_name); } @@ -122,7 +122,7 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile } void ProfileManager::RegisterTestingProfile(std::unique_ptr profile, -@@ -1955,9 +1951,6 @@ void ProfileManager::AddProfileToStorage(Profile* profile) { +@@ -1956,9 +1952,6 @@ void ProfileManager::AddProfileToStorage(Profile* profile) { init_params.icon_index = profile->GetPrefs()->GetInteger(prefs::kProfileAvatarIndex); @@ -219,7 +219,7 @@ diff --git a/components/supervised_user/core/browser/supervised_user_service.cc diff --git a/components/supervised_user/core/common/features.cc b/components/supervised_user/core/common/features.cc --- a/components/supervised_user/core/common/features.cc +++ b/components/supervised_user/core/common/features.cc -@@ -33,7 +33,6 @@ BASE_FEATURE(kAllowSubframeLocalWebApprovals, +@@ -30,7 +30,6 @@ BASE_FEATURE(kAllowSubframeLocalWebApprovals, #else base::FEATURE_DISABLED_BY_DEFAULT); #endif @@ -227,7 +227,7 @@ diff --git a/components/supervised_user/core/common/features.cc b/components/sup #if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ BUILDFLAG(IS_WIN) const int kLocalWebApprovalBottomSheetLoadTimeoutDefaultValueMs = 5000; -@@ -164,4 +163,5 @@ bool ClassifyUrlWithoutCredentialsForLocalSupervision() { +@@ -151,4 +150,5 @@ bool ClassifyUrlWithoutCredentialsForLocalSupervision() { #endif @@ -236,7 +236,7 @@ diff --git a/components/supervised_user/core/common/features.cc b/components/sup diff --git a/extensions/browser/api/management/management_api.cc b/extensions/browser/api/management/management_api.cc --- a/extensions/browser/api/management/management_api.cc +++ b/extensions/browser/api/management/management_api.cc -@@ -312,6 +312,7 @@ void AddExtensionInfo(const Extension* source_extension, +@@ -324,6 +324,7 @@ void AddExtensionInfo(const Extension* source_extension, } bool PlatformSupportsApprovalFlowForExtensions() { diff --git a/build/patches/Allow-playing-audio-in-background.patch b/build/patches/Allow-playing-audio-in-background.patch index 96462a46..1967106e 100644 --- a/build/patches/Allow-playing-audio-in-background.patch +++ b/build/patches/Allow-playing-audio-in-background.patch @@ -11,7 +11,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html 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 -@@ -1330,6 +1330,12 @@ bool WebMediaPlayerImpl::HasAudio() const { +@@ -1309,6 +1309,12 @@ bool WebMediaPlayerImpl::HasAudio() const { return pipeline_metadata_.has_audio; } @@ -24,7 +24,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()); -@@ -3679,7 +3685,10 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const { +@@ -3645,7 +3651,10 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const { const bool preserve_audio = HasUnmutedAudio() || audio_source_provider_->IsAudioBeingCaptured(); // Audio only stream is allowed to play when in background. diff --git a/build/patches/Always-open-browser-controls-in-new-tab.patch b/build/patches/Always-open-browser-controls-in-new-tab.patch index bba6ccd1..9a782d7a 100644 --- a/build/patches/Always-open-browser-controls-in-new-tab.patch +++ b/build/patches/Always-open-browser-controls-in-new-tab.patch @@ -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; -@@ -304,6 +306,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { +@@ -308,6 +310,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()); -@@ -324,6 +327,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { +@@ -328,6 +331,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/Android-Pixel-Perfect-Mode.patch b/build/patches/Android-Pixel-Perfect-Mode.patch index eda84332..6d3387de 100644 --- a/build/patches/Android-Pixel-Perfect-Mode.patch +++ b/build/patches/Android-Pixel-Perfect-Mode.patch @@ -131,7 +131,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 -@@ -679,7 +679,7 @@ InputHandlerPointerResult InputHandler::MouseMoveAt( +@@ -686,7 +686,7 @@ InputHandlerPointerResult InputHandler::MouseMoveAt( return result; } @@ -176,7 +176,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 -@@ -1249,7 +1249,7 @@ void VizLayerContext::SetVisible(bool visible) { +@@ -1293,7 +1293,7 @@ void VizLayerContext::SetVisible(bool visible) { service_->SetVisible(visible); } @@ -210,7 +210,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 -@@ -1348,7 +1348,7 @@ void LayerTreeHost::SetEventListenerProperties( +@@ -1354,7 +1354,7 @@ void LayerTreeHost::SetEventListenerProperties( SetNeedsCommit(); } @@ -219,7 +219,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) { -@@ -1468,9 +1468,11 @@ void LayerTreeHost::SetOverscrollBehavior(const OverscrollBehavior& behavior) { +@@ -1474,9 +1474,11 @@ void LayerTreeHost::SetOverscrollBehavior(const OverscrollBehavior& behavior) { void LayerTreeHost::SetPageScaleFactorAndLimits(float page_scale_factor, float min_page_scale_factor, @@ -231,7 +231,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); -@@ -1486,6 +1488,7 @@ void LayerTreeHost::SetPageScaleFactorAndLimits(float page_scale_factor, +@@ -1492,6 +1494,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; @@ -263,7 +263,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 -@@ -2497,7 +2497,7 @@ viz::RegionCaptureBounds LayerTreeHostImpl::CollectRegionCaptureBounds() { +@@ -2498,7 +2498,7 @@ viz::RegionCaptureBounds LayerTreeHostImpl::CollectRegionCaptureBounds() { return bounds; } @@ -272,7 +272,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, -@@ -2664,7 +2664,7 @@ viz::CompositorFrameMetadata LayerTreeHostImpl::MakeCompositorFrameMetadata() { +@@ -2665,7 +2665,7 @@ viz::CompositorFrameMetadata LayerTreeHostImpl::MakeCompositorFrameMetadata() { return metadata; } @@ -284,7 +284,7 @@ diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc --- a/cc/trees/layer_tree_impl.cc +++ b/cc/trees/layer_tree_impl.cc -@@ -160,6 +160,7 @@ LayerTreeImpl::LayerTreeImpl( +@@ -161,6 +161,7 @@ LayerTreeImpl::LayerTreeImpl( background_color_(SkColors::kTransparent), page_scale_factor_(page_scale_factor), min_page_scale_factor_(0), @@ -292,7 +292,7 @@ diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc max_page_scale_factor_(0), external_page_scale_factor_(1.f), device_scale_factor_(1.f), -@@ -449,7 +450,7 @@ void LayerTreeImpl::InvalidateRasterInducingScrolls( +@@ -450,7 +451,7 @@ void LayerTreeImpl::InvalidateRasterInducingScrolls( } } @@ -301,7 +301,7 @@ diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc if (!InnerViewportScrollNode()) return; -@@ -524,8 +525,13 @@ void LayerTreeImpl::UpdateViewportContainerSizes() { +@@ -520,8 +521,13 @@ void LayerTreeImpl::UpdateViewportContainerSizes() { // Adjust the outer viewport container as well, since adjusting only the // inner may cause its bounds to exceed those of the outer, causing scroll // clamping. @@ -317,7 +317,7 @@ diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc property_trees->SetOuterViewportContainerBoundsDelta(scaled_bounds_delta); // outer_viewport_container_bounds_delta and -@@ -821,6 +827,7 @@ void LayerTreeImpl::PullLayerTreePropertiesFrom(CommitState& commit_state) { +@@ -817,6 +823,7 @@ void LayerTreeImpl::PullLayerTreePropertiesFrom(CommitState& commit_state) { PushPageScaleFromMainThread(commit_state.page_scale_factor, commit_state.min_page_scale_factor, @@ -325,7 +325,7 @@ diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc commit_state.max_page_scale_factor); SetBrowserControlsParams(commit_state.browser_controls_params); -@@ -930,6 +937,7 @@ void LayerTreeImpl::PushPropertiesTo(LayerTreeImpl* target_tree) { +@@ -926,6 +933,7 @@ void LayerTreeImpl::PushPropertiesTo(LayerTreeImpl* target_tree) { // Active tree already shares the page_scale_factor object with pending // tree so only the limits need to be provided. target_tree->PushPageScaleFactorAndLimits(nullptr, min_page_scale_factor(), @@ -333,7 +333,7 @@ diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc max_page_scale_factor()); target_tree->SetExternalPageScaleFactor(external_page_scale_factor_); -@@ -1311,19 +1319,21 @@ void LayerTreeImpl::SetPageScaleOnActiveTree(float active_page_scale) { +@@ -1307,19 +1315,21 @@ void LayerTreeImpl::SetPageScaleOnActiveTree(float active_page_scale) { void LayerTreeImpl::PushPageScaleFromMainThread(float page_scale_factor, float min_page_scale_factor, @@ -357,7 +357,7 @@ diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc if (changed_page_scale) { DidUpdatePageScale(); -@@ -1332,12 +1342,13 @@ void LayerTreeImpl::SetPageScaleFactorAndLimitsForDisplayTree( +@@ -1328,12 +1338,13 @@ void LayerTreeImpl::SetPageScaleFactorAndLimitsForDisplayTree( void LayerTreeImpl::PushPageScaleFactorAndLimits(const float* page_scale_factor, float min_page_scale_factor, @@ -372,7 +372,7 @@ diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc if (page_scale_factor) { DCHECK(!IsActiveTree() || !host_impl_->pending_tree()); -@@ -1454,12 +1465,15 @@ void LayerTreeImpl::PushBrowserControls( +@@ -1450,12 +1461,15 @@ void LayerTreeImpl::PushBrowserControls( } bool LayerTreeImpl::SetPageScaleFactorLimits(float min_page_scale_factor, @@ -388,7 +388,7 @@ diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc max_page_scale_factor_ = max_page_scale_factor; return true; -@@ -2365,7 +2379,7 @@ ScrollbarSet LayerTreeImpl::ScrollbarsFor(ElementId scroll_element_id) const { +@@ -2361,7 +2375,7 @@ ScrollbarSet LayerTreeImpl::ScrollbarsFor(ElementId scroll_element_id) const { return scrollbars; } @@ -397,7 +397,7 @@ diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc const gfx::PointF& screen_space_point, const gfx::Transform& local_space_to_screen_space_transform, const gfx::Rect& local_space_rect, -@@ -2951,7 +2965,7 @@ static gfx::SelectionBound ComputeViewportSelectionBound( +@@ -2972,7 +2986,7 @@ static gfx::SelectionBound ComputeViewportSelectionBound( return viewport_bound; } @@ -426,7 +426,7 @@ diff --git a/cc/trees/layer_tree_impl.h b/cc/trees/layer_tree_impl.h float page_scale_delta() const { return page_scale_factor()->Delta(); } SyncedScale* page_scale_factor(); -@@ -838,6 +839,7 @@ class CC_EXPORT LayerTreeImpl { +@@ -844,6 +845,7 @@ class CC_EXPORT LayerTreeImpl { void SetPageScaleFactorAndLimitsForDisplayTree(float page_scale_factor, float min_page_scale_factor, @@ -434,7 +434,7 @@ diff --git a/cc/trees/layer_tree_impl.h b/cc/trees/layer_tree_impl.h float max_page_scale_factor); LayerTreeHostImpl* host_impl() { return host_impl_; } -@@ -862,8 +864,10 @@ class CC_EXPORT LayerTreeImpl { +@@ -868,8 +870,10 @@ class CC_EXPORT LayerTreeImpl { float ClampPageScaleFactorToLimits(float page_scale_factor) const; void PushPageScaleFactorAndLimits(const float* page_scale_factor, float min_page_scale_factor, @@ -445,7 +445,7 @@ diff --git a/cc/trees/layer_tree_impl.h b/cc/trees/layer_tree_impl.h float max_page_scale_factor); void DidUpdatePageScale(); void PushBrowserControls(const float* top_controls_shown_ratio, -@@ -902,6 +906,7 @@ class CC_EXPORT LayerTreeImpl { +@@ -908,6 +912,7 @@ class CC_EXPORT LayerTreeImpl { scoped_refptr page_scale_factor_; float min_page_scale_factor_; @@ -456,7 +456,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 -@@ -1597,7 +1597,7 @@ void ScrollTree::clear() { +@@ -1598,7 +1598,7 @@ void ScrollTree::clear() { #endif } @@ -465,7 +465,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); -@@ -2116,7 +2116,7 @@ gfx::Vector2dF ScrollTree::ScrollBy(const ScrollNode& scroll_node, +@@ -2117,7 +2117,7 @@ gfx::Vector2dF ScrollTree::ScrollBy(const ScrollNode& scroll_node, return old_offset + scroll - new_offset; } @@ -501,7 +501,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 -@@ -39,6 +39,9 @@ import androidx.annotation.NonNull; +@@ -41,6 +41,9 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; @@ -511,7 +511,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; -@@ -528,7 +531,25 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -533,7 +536,25 @@ public abstract class ChromeActivity extends AsyncInitializationActivity // Ensure that mConfig is initialized before tablet mode changes. mConfig = getResources().getConfiguration(); @@ -541,7 +541,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java -@@ -953,7 +953,7 @@ public class CompositorViewHolder extends FrameLayout +@@ -979,7 +979,7 @@ public class CompositorViewHolder extends FrameLayout int viewportInsets = controlsInsets + keyboardInset; if (isAttachedToWindow(view)) { @@ -550,7 +550,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/Comp // Dispatch the geometrychange JavaScript event to the page. // TODO(bokan): This doesn't belong in updateWebContentsSize. Ideally the content/ layer -@@ -973,7 +973,7 @@ public class CompositorViewHolder extends FrameLayout +@@ -999,7 +999,7 @@ public class CompositorViewHolder extends FrameLayout MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY)); view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight()); @@ -574,7 +574,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 -@@ -1870,7 +1870,7 @@ class TabImpl implements Tab { +@@ -1871,7 +1871,7 @@ class TabImpl implements Tab { // so that next onShow() call won't send a resize message with zero size // to the renderer process. This prevents the size fluttering that may confuse // Blink and break rendered result (see http://crbug.com/340987). @@ -583,7 +583,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav if (bounds != null) { assert mNativeTabAndroid != 0; -@@ -2244,7 +2244,7 @@ class TabImpl implements Tab { +@@ -2246,7 +2246,7 @@ class TabImpl implements Tab { Supplier compositorViewHolderSupplier = assumeNonNull(getActivity()).getCompositorViewHolderSupplier(); View compositorView = compositorViewHolderSupplier.get(); @@ -701,7 +701,7 @@ new file mode 100644 diff --git a/chrome/browser/settings/android/java/src/org/chromium/chrome/browser/settings/ChromeBaseSettingsFragment.java b/chrome/browser/settings/android/java/src/org/chromium/chrome/browser/settings/ChromeBaseSettingsFragment.java --- a/chrome/browser/settings/android/java/src/org/chromium/chrome/browser/settings/ChromeBaseSettingsFragment.java +++ b/chrome/browser/settings/android/java/src/org/chromium/chrome/browser/settings/ChromeBaseSettingsFragment.java -@@ -107,6 +107,10 @@ public abstract class ChromeBaseSettingsFragment extends PreferenceFragmentCompa +@@ -53,6 +53,10 @@ public abstract class ChromeBaseSettingsFragment extends PreferenceFragmentCompa mRequireRestartDelegateSupplier = delegate; } @@ -729,8 +729,8 @@ new file mode 100644 diff --git a/components/fingerprinting_protection_filter/interventions/common/interventions_features.cc b/components/fingerprinting_protection_filter/interventions/common/interventions_features.cc --- a/components/fingerprinting_protection_filter/interventions/common/interventions_features.cc +++ b/components/fingerprinting_protection_filter/interventions/common/interventions_features.cc -@@ -19,6 +19,7 @@ BASE_FEATURE_PARAM(bool, - &kCanvasNoise, +@@ -27,6 +27,7 @@ BASE_FEATURE_PARAM(bool, + &kBlockCanvasReadback, "enable_in_regular_mode", false); +SET_CROMITE_FEATURE_DISABLED(kCanvasNoise); @@ -740,7 +740,7 @@ diff --git a/components/fingerprinting_protection_filter/interventions/common/in diff --git a/components/input/BUILD.gn b/components/input/BUILD.gn --- a/components/input/BUILD.gn +++ b/components/input/BUILD.gn -@@ -101,6 +101,8 @@ component("input") { +@@ -97,6 +97,8 @@ component("input") { "//ui/events:gesture_detection", "//ui/events/blink", "//ui/events/gestures/blink", @@ -870,7 +870,7 @@ diff --git a/components/thin_webview/internal/thin_webview.cc b/components/thin_ 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 -@@ -418,7 +418,7 @@ const DisplayHitTestQueryMap& InputManager::GetDisplayHitTestQuery() const { +@@ -407,7 +407,7 @@ const DisplayHitTestQueryMap& InputManager::GetDisplayHitTestQuery() const { return frame_sink_manager_->GetDisplayHitTestQuery(); } @@ -906,7 +906,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 -@@ -1802,7 +1802,7 @@ base::expected LayerContextImpl::DoUpdateDisplayTree( +@@ -1842,7 +1842,7 @@ base::expected LayerContextImpl::DoUpdateDisplayTree( return base::unexpected("Invalid page scale factors"); } layers.SetPageScaleFactorAndLimitsForDisplayTree( @@ -918,7 +918,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 -@@ -192,7 +192,7 @@ void SelectionPopupController::MoveRangeSelectionExtent( +@@ -191,7 +191,7 @@ void SelectionPopupController::MoveRangeSelectionExtent( web_contents_impl->MoveRangeSelectionExtent(gfx::ToRoundedPoint(extent)); } @@ -927,14 +927,14 @@ 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()); -@@ -325,7 +325,8 @@ bool SelectionPopupController::ShowSelectionMenu( - can_select_all, can_edit_richly, should_suggest, - static_cast(params.source_type), - render_frame_host->GetJavaRenderFrameHost(), -- menu_model_bridge_->GetJavaObject()); -+ menu_model_bridge_->GetJavaObject(), +@@ -323,7 +323,8 @@ bool SelectionPopupController::ShowSelectionMenu( + can_select_all, can_edit_richly, should_suggest, + static_cast(params.source_type), + render_frame_host->GetJavaRenderFrameHost(), +- menu_model_bridge_->GetJavaObject()); ++ menu_model_bridge_->GetJavaObject(), + base::FeatureList::IsEnabled(features::kPixelPerfect)); - return true; + return true; } diff --git a/content/browser/renderer_host/cross_process_frame_connector.cc b/content/browser/renderer_host/cross_process_frame_connector.cc @@ -948,7 +948,7 @@ diff --git a/content/browser/renderer_host/cross_process_frame_connector.cc b/co #include "third_party/blink/public/common/frame/frame_visual_properties.h" #include "third_party/blink/public/common/input/web_input_event.h" #include "third_party/blink/public/mojom/frame/intrinsic_sizing_info.mojom.h" -@@ -215,9 +216,12 @@ void CrossProcessFrameConnector::SynchronizeVisualProperties( +@@ -223,9 +224,12 @@ void CrossProcessFrameConnector::SynchronizeVisualProperties( render_widget_host->SetAutoResize(visual_properties.auto_resize_enabled, visual_properties.min_size_for_auto_resize, visual_properties.max_size_for_auto_resize); @@ -962,7 +962,7 @@ diff --git a/content/browser/renderer_host/cross_process_frame_connector.cc b/co visual_properties.is_pinch_gesture_active, visual_properties.visible_viewport_size, visual_properties.compositor_viewport, -@@ -470,7 +474,7 @@ void CrossProcessFrameConnector::SetVisibilityForChildViews( +@@ -478,7 +482,7 @@ void CrossProcessFrameConnector::SetVisibilityForChildViews( current_child_frame_host()->SetVisibilityForChildViews(visible); } @@ -971,7 +971,7 @@ diff --git a/content/browser/renderer_host/cross_process_frame_connector.cc b/co const gfx::Size& local_frame_size) { has_size_ = true; const float dsf = screen_infos_.current().device_scale_factor; -@@ -479,7 +483,7 @@ void CrossProcessFrameConnector::SetLocalFrameSize( +@@ -487,7 +491,7 @@ void CrossProcessFrameConnector::SetLocalFrameSize( gfx::ScaleToRoundedSize(local_frame_size, 1.f / dsf); } @@ -1007,7 +1007,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 -@@ -9268,7 +9268,7 @@ void RenderFrameHostImpl::ShowPopupMenu( +@@ -9306,7 +9306,7 @@ void RenderFrameHostImpl::ShowPopupMenu( #endif } @@ -1019,7 +1019,7 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/b diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc --- a/content/browser/renderer_host/render_widget_host_impl.cc +++ b/content/browser/renderer_host/render_widget_host_impl.cc -@@ -1055,7 +1055,20 @@ blink::VisualProperties RenderWidgetHostImpl::GetVisualProperties() { +@@ -1048,7 +1048,20 @@ blink::VisualProperties RenderWidgetHostImpl::GetVisualProperties() { blink::VisualProperties visual_properties; visual_properties.screen_infos = GetScreenInfos(); auto& current_screen_info = visual_properties.screen_infos.mutable_current(); @@ -1041,7 +1041,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/ // For testing, override the raster color profile. // Note: this needs to be done here and not earlier in the pipeline because // Mac uses the display color space to update an NSSurface and this setting -@@ -1160,6 +1173,13 @@ blink::VisualProperties RenderWidgetHostImpl::GetVisualProperties() { +@@ -1153,6 +1166,13 @@ blink::VisualProperties RenderWidgetHostImpl::GetVisualProperties() { visual_properties.compositing_scale_factor = properties_from_parent_local_root_.compositing_scale_factor; @@ -1055,7 +1055,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/ #if BUILDFLAG(IS_MAC) // Only macOS cursor scaling affects CSS custom cursor images for now. visual_properties.cursor_accessibility_scale_factor = -@@ -1340,8 +1360,10 @@ bool RenderWidgetHostImpl::SynchronizeVisualProperties( +@@ -1333,8 +1353,10 @@ bool RenderWidgetHostImpl::SynchronizeVisualProperties( } } @@ -1068,7 +1068,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/ // If we do not have a valid viz::LocalSurfaceId then we are a child frame // waiting on the id to be propagated from our parent. We cannot create a hash -@@ -3990,7 +4012,7 @@ void RenderWidgetHostImpl::IntrinsicSizingInfoChanged( +@@ -3983,7 +4005,7 @@ void RenderWidgetHostImpl::IntrinsicSizingInfoChanged( // porting drag-and-drop calls to Mojo, so that RenderWidgetHostImpl bypasses // RenderWidget to talk the the WebFrameWidget and needs to perform the scale // operation itself. @@ -1080,15 +1080,15 @@ diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/ diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/content/browser/renderer_host/render_widget_host_view_android.cc --- a/content/browser/renderer_host/render_widget_host_view_android.cc +++ b/content/browser/renderer_host/render_widget_host_view_android.cc -@@ -85,6 +85,7 @@ - #include "content/public/browser/render_widget_host_iterator.h" +@@ -86,6 +86,7 @@ #include "content/public/common/content_client.h" + #include "content/public/common/content_features.h" #include "content/public/common/content_switches.h" +#include "content/public/common/content_features.h" #include "third_party/blink/public/mojom/input/input_handler.mojom.h" #include "third_party/perfetto/include/perfetto/tracing/track.h" #include "third_party/skia/include/core/SkBitmap.h" -@@ -952,7 +953,7 @@ void RenderWidgetHostViewAndroid::OnRenderFrameMetadataChangedBeforeActivation( +@@ -971,7 +972,7 @@ void RenderWidgetHostViewAndroid::OnRenderFrameMetadataChangedBeforeActivation( ? SK_ColorTRANSPARENT : metadata.root_background_color.toSkColor()); @@ -1097,7 +1097,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/ overscroll_controller_->OnFrameMetadataUpdated( metadata.page_scale_factor, metadata.device_scale_factor, metadata.scrollable_viewport_size, metadata.root_layer_size, -@@ -1254,6 +1255,12 @@ gfx::Size RenderWidgetHostViewAndroid::GetRequestedRendererSizeDevicePx() { +@@ -1273,6 +1274,12 @@ gfx::Size RenderWidgetHostViewAndroid::GetRequestedRendererSizeDevicePx() { default_bounds_dip_.height() * scale_factor); } @@ -1110,7 +1110,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/ const float scale_factor = GetDeviceScaleFactor() / view_.GetDipScale(); return gfx::ScaleToCeiledSize(view_.GetSizeDevicePx(), scale_factor); } -@@ -1279,6 +1286,10 @@ void RenderWidgetHostViewAndroid::SetInsets(const gfx::Insets& insets) { +@@ -1298,6 +1305,10 @@ void RenderWidgetHostViewAndroid::SetInsets(const gfx::Insets& insets) { NOTREACHED(); } @@ -1121,7 +1121,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/ gfx::Size RenderWidgetHostViewAndroid::GetCompositorViewportPixelSize() { if (!view_.parent()) { if (default_bounds_dip_.IsEmpty()) { -@@ -1414,7 +1425,7 @@ viz::SurfaceId RenderWidgetHostViewAndroid::GetCurrentSurfaceId() const { +@@ -1433,7 +1444,7 @@ viz::SurfaceId RenderWidgetHostViewAndroid::GetCurrentSurfaceId() const { : viz::SurfaceId(); } @@ -1130,7 +1130,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/ const gfx::PointF& point, RenderWidgetHostViewInput* target_view, gfx::PointF* transformed_point) { -@@ -1829,7 +1840,7 @@ bool RenderWidgetHostViewAndroid::HasFallbackSurface() const { +@@ -1849,7 +1860,7 @@ bool RenderWidgetHostViewAndroid::HasFallbackSurface() const { return delegated_frame_host_->HasFallbackSurface(); } @@ -1176,7 +1176,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_base.cc b/con diff --git a/content/browser/renderer_host/render_widget_host_view_base.h b/content/browser/renderer_host/render_widget_host_view_base.h --- a/content/browser/renderer_host/render_widget_host_view_base.h +++ b/content/browser/renderer_host/render_widget_host_view_base.h -@@ -273,6 +273,8 @@ class CONTENT_EXPORT RenderWidgetHostViewBase +@@ -278,6 +278,8 @@ class CONTENT_EXPORT RenderWidgetHostViewBase // The size of the view's backing surface in non-DPI-adjusted pixels. virtual gfx::Size GetCompositorViewportPixelSize(); @@ -1188,7 +1188,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_base.h b/cont diff --git a/content/browser/renderer_host/render_widget_host_view_child_frame.cc b/content/browser/renderer_host/render_widget_host_view_child_frame.cc --- a/content/browser/renderer_host/render_widget_host_view_child_frame.cc +++ b/content/browser/renderer_host/render_widget_host_view_child_frame.cc -@@ -437,6 +437,10 @@ void RenderWidgetHostViewChildFrame::RequestInputBackForDragAndDrop( +@@ -440,6 +440,10 @@ void RenderWidgetHostViewChildFrame::RequestInputBackForDragAndDrop( } #endif @@ -1213,7 +1213,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 -@@ -827,8 +827,11 @@ WebContentsAndroid::GetFullscreenVideoSize(JNIEnv* env) { +@@ -826,8 +826,11 @@ WebContentsAndroid::GetFullscreenVideoSize(JNIEnv* env) { return Java_WebContentsImpl_createSize(env, size.width(), size.height()); } @@ -1242,7 +1242,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 -@@ -530,7 +530,11 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs( +@@ -529,7 +529,11 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs( !command_line.HasSwitch(switches::kFingerprintingCanvasImageDataNoise)); // CAUTION: Only add custom enabling logic here if it cannot // be covered by the other functions. @@ -1258,7 +1258,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. diff --git a/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java b/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java --- a/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java +++ b/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java -@@ -526,7 +526,8 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper +@@ -532,7 +532,8 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper boolean shouldSuggest, int sourceType, RenderFrameHost renderFrameHost, @@ -1268,7 +1268,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select mMenuModelBridge = menuModelBridge; RecordHistogram.recordEnumeratedHistogram( "Android.ShowSelectionMenuSourceType", sourceType, MenuSourceType.MAX_VALUE); -@@ -536,6 +537,8 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper +@@ -542,6 +543,8 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper mXDip = xDip; mYDip = yDip; mSelectionRect.set(left, top, right, offsetBottom); @@ -1280,7 +1280,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 -@@ -982,9 +982,9 @@ public class WebContentsImpl +@@ -978,9 +978,9 @@ public class WebContentsImpl } @Override @@ -1292,7 +1292,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/webcon } @Override -@@ -1449,7 +1449,7 @@ public class WebContentsImpl +@@ -1452,7 +1452,7 @@ public class WebContentsImpl Rect getFullscreenVideoSize(long nativeWebContentsAndroid); @@ -1460,7 +1460,7 @@ diff --git a/third_party/blink/public/mojom/widget/visual_properties.mojom b/thi diff --git a/third_party/blink/public/web/web_view.h b/third_party/blink/public/web/web_view.h --- a/third_party/blink/public/web/web_view.h +++ b/third_party/blink/public/web/web_view.h -@@ -248,6 +248,7 @@ class BLINK_EXPORT WebView { +@@ -249,6 +249,7 @@ class BLINK_EXPORT WebView { // Minimum and Maximum as computed as a combination of default, page defined, // UA, etc. constraints. virtual float MinimumPageScaleFactor() const = 0; @@ -1471,7 +1471,7 @@ diff --git a/third_party/blink/public/web/web_view.h b/third_party/blink/public/ diff --git a/third_party/blink/renderer/core/canvas_interventions/canvas_interventions_helper.cc b/third_party/blink/renderer/core/canvas_interventions/canvas_interventions_helper.cc --- a/third_party/blink/renderer/core/canvas_interventions/canvas_interventions_helper.cc +++ b/third_party/blink/renderer/core/canvas_interventions/canvas_interventions_helper.cc -@@ -48,6 +48,7 @@ namespace { +@@ -69,6 +69,7 @@ std::string_view GetContextTypeForMetrics(ExecutionContext* execution_context) { // 2) the CanvasInterventions RuntimeEnabledFeature is enabled bool ShouldApplyNoise(HighEntropyCanvasOpType canvas_operations, ExecutionContext* execution_context) { @@ -1503,7 +1503,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 -@@ -1262,8 +1262,19 @@ void WebViewImpl::UpdateICBAndResizeViewport( +@@ -1265,8 +1265,19 @@ void WebViewImpl::UpdateICBAndResizeViewport( if (GetBrowserControls().PermittedState() == cc::BrowserControlsState::kBoth && !GetBrowserControls().ShrinkViewport()) { @@ -1525,7 +1525,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p } GetPageScaleConstraintsSet().DidChangeInitialContainingBlockSize(icb_size); -@@ -1343,7 +1354,8 @@ void WebViewImpl::DidUpdateBrowserControls() { +@@ -1346,7 +1357,8 @@ void WebViewImpl::DidUpdateBrowserControls() { ResizeViewportAnchor::ResizeScope resize_scope(*resize_viewport_anchor_); visual_viewport.SetBrowserControlsAdjustment( @@ -1535,7 +1535,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p } } -@@ -1417,7 +1429,7 @@ void WebViewImpl::ResizeWithBrowserControls( +@@ -1420,7 +1432,7 @@ void WebViewImpl::ResizeWithBrowserControls( float bottom_controls_height, bool browser_controls_shrink_layout) { ResizeWithBrowserControls( @@ -1544,7 +1544,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(), -@@ -1427,6 +1439,8 @@ void WebViewImpl::ResizeWithBrowserControls( +@@ -1430,6 +1442,8 @@ void WebViewImpl::ResizeWithBrowserControls( void WebViewImpl::ResizeWithBrowserControls( const gfx::Size& main_frame_widget_size, const gfx::Size& visible_viewport_size, @@ -1553,7 +1553,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 -@@ -1435,6 +1449,11 @@ void WebViewImpl::ResizeWithBrowserControls( +@@ -1438,6 +1452,11 @@ void WebViewImpl::ResizeWithBrowserControls( return; } @@ -1565,7 +1565,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) -@@ -2107,7 +2126,7 @@ void WebViewImpl::DidAttachLocalMainFrame() { +@@ -2114,7 +2133,7 @@ void WebViewImpl::DidAttachLocalMainFrame() { web_preferences_.prefers_reduced_motion); MainFrameImpl()->FrameWidgetImpl()->SetPageScaleStateAndLimits( viewport.Scale(), viewport.IsPinchGestureActive(), @@ -1574,7 +1574,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_ = -@@ -2915,7 +2934,7 @@ void WebViewImpl::RefreshPageScaleFactor() { +@@ -2922,7 +2941,7 @@ void WebViewImpl::RefreshPageScaleFactor() { auto& viewport = GetPage()->GetVisualViewport(); MainFrameImpl()->FrameWidgetImpl()->SetPageScaleStateAndLimits( viewport.Scale(), viewport.IsPinchGestureActive(), @@ -1583,7 +1583,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p } } -@@ -2992,7 +3011,7 @@ void WebViewImpl::UpdatePageDefinedViewportConstraints( +@@ -2999,7 +3018,7 @@ void WebViewImpl::UpdatePageDefinedViewportConstraints( TextAutosizer::UpdatePageInfoInAllFrames(GetPage()->MainFrame()); } @@ -1592,7 +1592,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p if (should_auto_resize_ || !MainFrameImpl()) return; -@@ -3226,6 +3245,10 @@ float WebViewImpl::MinimumPageScaleFactor() const { +@@ -3233,6 +3252,10 @@ float WebViewImpl::MinimumPageScaleFactor() const { return GetPageScaleConstraintsSet().FinalConstraints().minimum_scale; } @@ -1603,7 +1603,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; } -@@ -3275,7 +3298,7 @@ void WebViewImpl::SendResizeEventForMainFrame() { +@@ -3284,7 +3307,7 @@ void WebViewImpl::SendResizeEventForMainFrame() { auto& viewport = GetPage()->GetVisualViewport(); MainFrameImpl()->FrameWidgetImpl()->SetPageScaleStateAndLimits( viewport.Scale(), viewport.IsPinchGestureActive(), @@ -1612,7 +1612,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p } } -@@ -3823,7 +3846,7 @@ void WebViewImpl::PageScaleFactorChanged() { +@@ -3833,7 +3856,7 @@ void WebViewImpl::PageScaleFactorChanged() { DCHECK(viewport.IsActiveViewport()); MainFrameImpl()->FrameWidgetImpl()->SetPageScaleStateAndLimits( viewport.Scale(), viewport.IsPinchGestureActive(), @@ -1641,7 +1641,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. -@@ -832,6 +835,8 @@ class CORE_EXPORT WebViewImpl final : public WebView, +@@ -834,6 +837,8 @@ class CORE_EXPORT WebViewImpl final : public WebView, // The upper bound on the size when auto-resizing. gfx::Size max_auto_size_; @@ -1731,7 +1731,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); -@@ -879,10 +911,13 @@ gfx::Point VisualViewport::ClampDocumentOffsetAtScale(const gfx::Point& offset, +@@ -884,10 +916,13 @@ gfx::Point VisualViewport::ClampDocumentOffsetAtScale(const gfx::Point& offset, return clamped; } @@ -1776,7 +1776,7 @@ diff --git a/third_party/blink/renderer/core/frame/visual_viewport.h b/third_par ChromeClient* GetChromeClient() const override; bool SetScrollOffset(const ScrollOffset&, mojom::blink::ScrollType, -@@ -383,12 +386,14 @@ class CORE_EXPORT VisualViewport : public GarbageCollected, +@@ -388,12 +391,14 @@ class CORE_EXPORT VisualViewport : public GarbageCollected, // the changed visible content area. The transient URL bar-caused change to // the visible content area is tracked in browser_controls_adjustment. gfx::Size size_; @@ -1794,7 +1794,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 -@@ -1885,6 +1885,9 @@ void WebFrameWidgetImpl::UpdateVisualProperties( +@@ -1879,6 +1879,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. @@ -1804,7 +1804,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 -@@ -1892,7 +1895,7 @@ void WebFrameWidgetImpl::UpdateVisualProperties( +@@ -1886,7 +1889,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 * @@ -1813,7 +1813,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); -@@ -1905,7 +1908,7 @@ void WebFrameWidgetImpl::UpdateVisualProperties( +@@ -1899,7 +1902,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( @@ -1822,7 +1822,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th /*is_pinch_gesture_active=*/false); } -@@ -1949,6 +1952,18 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( +@@ -1943,6 +1946,18 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( new_compositor_viewport_pixel_rect, device_scale_factor_for_testing_ / non_testing_device_scale_factor_); } @@ -1841,7 +1841,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th if (ForMainFrame()) { if (size_ != new_size) { -@@ -1966,6 +1981,8 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( +@@ -1960,6 +1975,8 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( size_.value(), widget_base_->DIPsToCeiledBlinkSpace( widget_base_->VisibleViewportSize()), @@ -1850,7 +1850,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th visual_properties.browser_controls_params); return; } -@@ -1999,6 +2016,8 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( +@@ -1993,6 +2010,8 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( View()->ResizeWithBrowserControls( size_.value(), widget_base_->VisibleViewportSize(), @@ -1859,7 +1859,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th visual_properties.browser_controls_params); } -@@ -2381,6 +2400,8 @@ void WebFrameWidgetImpl::SetZoomInternal(double zoom_level, +@@ -2374,6 +2393,8 @@ void WebFrameWidgetImpl::SetZoomInternal(double zoom_level, View()->ZoomFactorForViewportLayout() * static_cast(View()->ZoomLevelToZoomFactor(zoom_level)) * static_cast(css_zoom_factor); @@ -1868,7 +1868,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()) { -@@ -3428,6 +3449,7 @@ void WebFrameWidgetImpl::SetRootLayer(scoped_refptr layer) { +@@ -3420,6 +3441,7 @@ void WebFrameWidgetImpl::SetRootLayer(scoped_refptr layer) { // be needed in setting the raster scale. SetPageScaleStateAndLimits(1.f, false /* is_pinch_gesture_active */, View()->MinimumPageScaleFactor(), @@ -1876,7 +1876,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th View()->MaximumPageScaleFactor()); } -@@ -4805,9 +4827,10 @@ void WebFrameWidgetImpl::SetPageScaleStateAndLimits( +@@ -4795,9 +4817,10 @@ void WebFrameWidgetImpl::SetPageScaleStateAndLimits( float page_scale_factor, bool is_pinch_gesture_active, float minimum, @@ -1888,7 +1888,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()) { -@@ -4931,7 +4954,10 @@ void WebFrameWidgetImpl::OrientationChanged() { +@@ -4921,7 +4944,10 @@ void WebFrameWidgetImpl::OrientationChanged() { void WebFrameWidgetImpl::DidUpdateSurfaceAndScreen( const display::ScreenInfos& previous_original_screen_infos) { display::ScreenInfo screen_info = widget_base_->GetScreenInfo(); @@ -1900,7 +1900,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 -@@ -5127,7 +5153,7 @@ void WebFrameWidgetImpl::SetDeviceScaleFactorForTesting(float factor) { +@@ -5120,7 +5146,7 @@ void WebFrameWidgetImpl::SetDeviceScaleFactorForTesting(float factor) { if (!device_scale_factor_for_testing_) { non_testing_device_scale_factor_ = @@ -1912,7 +1912,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 -@@ -657,6 +657,7 @@ class CORE_EXPORT WebFrameWidgetImpl +@@ -656,6 +656,7 @@ class CORE_EXPORT WebFrameWidgetImpl void SetPageScaleStateAndLimits(float page_scale_factor, bool is_pinch_gesture_active, float minimum, @@ -1923,7 +1923,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 -@@ -2559,7 +2559,7 @@ void WebLocalFrameImpl::PaintDevToolsOverlays(GraphicsContext& context) { +@@ -2560,7 +2560,7 @@ void WebLocalFrameImpl::PaintDevToolsOverlays(GraphicsContext& context) { dev_tools_agent_->PaintOverlays(context); } @@ -1932,7 +1932,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 -@@ -3034,7 +3034,7 @@ void WebLocalFrameImpl::ShowContextMenuFromExternal( +@@ -3035,7 +3035,7 @@ void WebLocalFrameImpl::ShowContextMenuFromExternal( std::move(context_menu_client), params); } @@ -1944,7 +1944,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 -@@ -1567,6 +1567,7 @@ bool HTMLCanvasElement::PushFrame(scoped_refptr&& image, +@@ -1534,6 +1534,7 @@ bool HTMLCanvasElement::PushFrame(scoped_refptr&& image, } bool HTMLCanvasElement::ShouldAccelerate() const { @@ -1955,7 +1955,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 -@@ -2084,7 +2084,7 @@ GestureEventWithHitTestResults EventHandler::HitTestResultForGestureEvent( +@@ -2090,7 +2090,7 @@ GestureEventWithHitTestResults EventHandler::HitTestResultForGestureEvent( hit_test_result); } @@ -1967,7 +1967,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 -@@ -1085,7 +1085,8 @@ InspectorEmulationAgent::setSmallViewportHeightDifferenceOverride( +@@ -1076,7 +1076,8 @@ InspectorEmulationAgent::setSmallViewportHeightDifferenceOverride( // Ensure the override is applied immediately without having to wait for // `WebFrameWidgetImpl::UpdateVisualProperties()` to be called. GetWebViewImpl()->ResizeWithBrowserControls( @@ -1980,7 +1980,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 -@@ -1323,6 +1323,10 @@ void Page::CalculateEmulatedScreenSetting(LocalFrame* frame, bool force) { +@@ -1325,6 +1325,10 @@ void Page::CalculateEmulatedScreenSetting(LocalFrame* frame, bool force) { if (SchemeRegistry::IsWebUIScheme(protocol) || disable_screen_emulated_) { isEnabled = false; } @@ -2006,7 +2006,7 @@ diff --git a/third_party/blink/renderer/core/page/viewport_description.cc b/thir diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc --- a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc +++ b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc -@@ -467,16 +467,17 @@ ImageData* BaseRenderingContext2D::getImageDataInternal( +@@ -471,16 +471,17 @@ ImageData* BaseRenderingContext2D::getImageDataInternal( } } @@ -2029,7 +2029,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 -@@ -5868,6 +5868,10 @@ +@@ -5992,6 +5992,10 @@ // If enabled, the `getDisplayMedia()` family of APIs will ask for NV12 // frames, which should trigger a zero-copy path in the tab capture code. name: "ZeroCopyTabCapture", @@ -2052,7 +2052,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox #include "third_party/blink/renderer/platform/widget/input/compositor_thread_event_queue.h" #include "third_party/blink/renderer/platform/widget/input/cursor_control_handler.h" #include "third_party/blink/renderer/platform/widget/input/elastic_overscroll_controller.h" -@@ -58,6 +59,20 @@ namespace { +@@ -62,6 +63,20 @@ constexpr unsigned int kStylusWritingHitTestRadius = 20; using ::perfetto::protos::pbzero::ChromeLatencyInfo2; using ::perfetto::protos::pbzero::TrackEvent; @@ -2073,7 +2073,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox cc::ScrollStateData CreateScrollStateDataForGesture( const WebGestureEvent& event) { cc::ScrollStateData scroll_state_data; -@@ -66,8 +81,8 @@ cc::ScrollStateData CreateScrollStateDataForGesture( +@@ -70,8 +85,8 @@ cc::ScrollStateData CreateScrollStateDataForGesture( } switch (event.GetType()) { case WebInputEvent::Type::kGestureScrollBegin: @@ -2084,7 +2084,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox scroll_state_data.delta_x_hint = -event.data.scroll_begin.delta_x_hint; scroll_state_data.delta_y_hint = -event.data.scroll_begin.delta_y_hint; scroll_state_data.is_beginning = true; -@@ -865,7 +880,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler( +@@ -870,7 +885,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler( const WebGestureEvent& gesture_event = static_cast(event); input_handler_->PinchGestureBegin( @@ -2093,7 +2093,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox GestureScrollInputType(gesture_event.SourceDevice())); gesture_pinch_in_progress_ = true; return DID_HANDLE; -@@ -877,7 +892,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler( +@@ -882,7 +897,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler( const WebGestureEvent& gesture_event = static_cast(event); input_handler_->PinchGestureEnd( @@ -2102,7 +2102,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox return DID_HANDLE; } -@@ -887,7 +902,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler( +@@ -892,7 +907,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler( static_cast(event); input_handler_->PinchGestureUpdate( gesture_event.data.pinch_update.scale, @@ -2111,7 +2111,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox return DID_HANDLE; } -@@ -910,7 +925,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler( +@@ -915,7 +930,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler( // TODO(arakeri): Pass in the modifier instead of a bool once the // refactor (crbug.com/1022097) is done. For details, see // crbug.com/1016955. @@ -2120,7 +2120,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox } return DID_NOT_HANDLE; -@@ -921,7 +936,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler( +@@ -926,7 +941,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler( static_cast(event); CHECK(input_handler_); if (mouse_event.button == WebMouseEvent::Button::kLeft) @@ -2129,7 +2129,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox return DID_NOT_HANDLE; } case WebInputEvent::Type::kMouseMove: { -@@ -936,7 +951,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler( +@@ -941,7 +956,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler( (mouse_event.button == WebPointerProperties::Button::kNoButton && !(mouse_event.GetModifiers() & WebInputEvent::Modifiers::kRelativeMotionEvent)); @@ -2138,7 +2138,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox should_cancel_scrollbar_drag); return DID_NOT_HANDLE; } -@@ -975,12 +990,14 @@ WebInputEventAttribution InputHandlerProxy::PerformEventAttribution( +@@ -980,12 +995,14 @@ WebInputEventAttribution InputHandlerProxy::PerformEventAttribution( // to check pointer lock state gfx::PointF point = static_cast(event).PositionInWidget(); @@ -2153,7 +2153,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox return WebInputEventAttribution( WebInputEventAttribution::kTargetedFrame, input_handler_->FindFrameElementIdAtPoint(point)); -@@ -995,6 +1012,7 @@ WebInputEventAttribution InputHandlerProxy::PerformEventAttribution( +@@ -1000,6 +1017,7 @@ WebInputEventAttribution InputHandlerProxy::PerformEventAttribution( // how the renderer host performs touch event dispatch. // https://cs.chromium.org/chromium/src/content/browser/renderer_host/render_widget_host_input_event_router.cc?l=808&rcl=10fe9d0a725d4ed7b69266a5936c525f0a5b26d3 gfx::PointF point = touch_event.touches[0].PositionInWidget(); @@ -2161,7 +2161,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox const cc::ElementId targeted_element = input_handler_->FindFrameElementIdAtPoint(point); -@@ -1096,7 +1114,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleMouseWheel( +@@ -1101,7 +1119,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleMouseWheel( } } @@ -2170,7 +2170,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; -@@ -1265,7 +1283,7 @@ InputHandlerProxy::HandleGestureScrollUpdate( +@@ -1273,7 +1291,7 @@ InputHandlerProxy::HandleGestureScrollUpdate( scroll_data->set_unused_delta_y(scroll_result.unused_scroll_delta.y()); }); @@ -2179,18 +2179,18 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox if (elastic_overscroll_controller_) HandleScrollElasticityOverscroll(gesture_event, scroll_result); -@@ -1343,8 +1361,8 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HitTestTouchEvent( +@@ -1359,8 +1377,8 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HitTestTouchEvent( + } + cc::TouchAction touch_action = cc::TouchAction::kAuto; - cc::InputHandler::TouchStartOrMoveEventListenerType event_listener_type = - input_handler_->EventListenerTypeForTouchStartOrMoveAt( -- gfx::Point(touch_event.touches[i].PositionInWidget().x(), -- touch_event.touches[i].PositionInWidget().y()), -+ ScalePoint(gfx::Point(touch_event.touches[i].PositionInWidget().x(), -+ touch_event.touches[i].PositionInWidget().y())), - &touch_action); - if (allowed_touch_action && touch_action != cc::TouchAction::kAuto) { - TRACE_EVENT_INSTANT1("input", "Adding TouchAction", -@@ -1450,7 +1468,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleTouchStart( +- const gfx::Point point(touch_event.touches[i].PositionInWidget().x(), +- touch_event.touches[i].PositionInWidget().y()); ++ const gfx::Point ScalePoint(point(touch_event.touches[i].PositionInWidget().x(), ++ touch_event.touches[i].PositionInWidget().y())); + // 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. +@@ -1475,7 +1493,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleTouchStart( touch_event.touches_length == 1) { DCHECK(touch_event.touches[0].state == WebTouchPoint::State::kStatePressed); cc::InputHandlerPointerResult pointer_result = HandlePointerDown( @@ -2199,7 +2199,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; -@@ -1513,7 +1531,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleTouchMove( +@@ -1538,7 +1556,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleTouchMove( touch_event.touch_start_or_first_touch_move); if (touch_event.touches_length == 1) { cc::InputHandlerPointerResult pointer_result = HandlePointerMove( @@ -2208,7 +2208,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; -@@ -1556,7 +1574,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleTouchEnd( +@@ -1581,7 +1599,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleTouchEnd( touch_event.touches_length); if (touch_event.touches_length == 1) { cc::InputHandlerPointerResult pointer_result = HandlePointerUp( @@ -2220,7 +2220,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 -@@ -1688,7 +1688,9 @@ void WidgetBase::RequestAnimationAfterDelayTimerFired(TimerBase*) { +@@ -1685,7 +1685,9 @@ void WidgetBase::RequestAnimationAfterDelayTimerFired(TimerBase*) { client_->ScheduleAnimation(/*urgent=*/urgent_for_input); } @@ -2231,7 +2231,7 @@ diff --git a/third_party/blink/renderer/platform/widget/widget_base.cc b/third_p return client_->GetOriginalScreenInfos().current().device_scale_factor; } -@@ -1730,7 +1732,7 @@ void WidgetBase::UpdateSurfaceAndScreenInfo( +@@ -1727,7 +1729,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, @@ -2240,7 +2240,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. -@@ -1860,56 +1862,56 @@ void WidgetBase::CountDroppedPointerDownForEventTiming(unsigned count) { +@@ -1857,56 +1859,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? @@ -2370,7 +2370,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 @@ jboolean EventForwarder::OnGenericMotionEvent( +@@ -271,7 +271,7 @@ jboolean EventForwarder::OnGenericMotionEvent( base::TimeTicks down_time = base::TimeTicks::FromUptimeMillis(down_time_ms); auto event = ui::MotionEventAndroidFactory::CreateFromJava( env, /*event=*/motion_event, @@ -2379,7 +2379,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, -@@ -323,7 +323,7 @@ void EventForwarder::DoubleTap(JNIEnv* env, +@@ -360,7 +360,7 @@ void EventForwarder::DoubleTap(JNIEnv* env, jlong time_ms, jint x, jint y) { @@ -2387,20 +2387,20 @@ diff --git a/ui/android/event_forwarder.cc b/ui/android/event_forwarder.cc + float dip_scale = view_->GetDipScaleFactor(); view_->OnGestureEvent(GestureEventAndroid( GESTURE_EVENT_TYPE_DOUBLE_TAP, gfx::PointF(x / dip_scale, y / dip_scale), - gfx::PointF(), time_ms, 0, 0, 0, 0, 0, /*target_viewport*/ true, -@@ -340,7 +340,7 @@ void EventForwarder::StartFling(JNIEnv* env, + gfx::PointF(), time_ms, ui::GestureDeviceType::DEVICE_TOUCHSCREEN, 0, 0, +@@ -379,7 +379,7 @@ void EventForwarder::StartFling(JNIEnv* env, if (velocity_x == 0 && velocity_y == 0) return; - float dip_scale = view_->GetDipScale(); + float dip_scale = view_->GetDipScaleFactor(); - // Use velocity as delta in scroll event. - view_->OnGestureEvent(GestureEventAndroid( - GESTURE_EVENT_TYPE_SCROLL_START, gfx::PointF(), gfx::PointF(), time_ms, 0, + ui::GestureDeviceType source = + is_touchpad_event ? ui::GestureDeviceType::DEVICE_TOUCHPAD + : ui::GestureDeviceType::DEVICE_TOUCHSCREEN; diff --git a/ui/android/java/src/org/chromium/ui/base/UiAndroidFeatureList.java b/ui/android/java/src/org/chromium/ui/base/UiAndroidFeatureList.java --- a/ui/android/java/src/org/chromium/ui/base/UiAndroidFeatureList.java +++ b/ui/android/java/src/org/chromium/ui/base/UiAndroidFeatureList.java -@@ -47,6 +47,12 @@ public class UiAndroidFeatureList { +@@ -53,6 +53,12 @@ public class UiAndroidFeatureList { /* defaultValue= */ false, /* defaultValueInTests= */ false); @@ -2412,7 +2412,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/UiAndroidFeatureList.java + public static final List sFlagsCachedUiAndroid = List.of( - sAndroidWindowOcclusion, + sAndroidUseCorrectWindowBounds, diff --git a/ui/android/java/src/org/chromium/ui/display/PhysicalDisplayAndroid.java b/ui/android/java/src/org/chromium/ui/display/PhysicalDisplayAndroid.java --- a/ui/android/java/src/org/chromium/ui/display/PhysicalDisplayAndroid.java +++ b/ui/android/java/src/org/chromium/ui/display/PhysicalDisplayAndroid.java @@ -2424,7 +2424,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/display/PhysicalDisplayAndroid. import org.chromium.ui.util.XrUtils; import java.util.Arrays; -@@ -345,6 +346,15 @@ import java.util.function.Consumer; +@@ -380,6 +381,15 @@ import java.util.function.Consumer; float ydpi, Display display) { if (hasForcedDIPScale()) density = sForcedDIPScale.floatValue(); @@ -2437,9 +2437,9 @@ diff --git a/ui/android/java/src/org/chromium/ui/display/PhysicalDisplayAndroid. + bounds = new Rect(bounds.left, bounds.top, bounds.right, 412); + } + } - boolean isWideColorGamut = false; - // Although this API was added in Android O, it was buggy. - // Restrict to Android Q, where it was fixed. + boolean isWideColorGamut = display.isWideColorGamut(); + + int pixelFormatId = PixelFormat.RGBA_8888; diff --git a/ui/android/view_android.cc b/ui/android/view_android.cc --- a/ui/android/view_android.cc +++ b/ui/android/view_android.cc @@ -2463,7 +2463,7 @@ diff --git a/ui/android/view_android.cc b/ui/android/view_android.cc child->DispatchOnSizeChanged(); } -@@ -498,7 +502,7 @@ void ViewAndroid::OnVerticalScrollDirectionChanged(bool direction_up, +@@ -502,7 +506,7 @@ void ViewAndroid::OnVerticalScrollDirectionChanged(bool direction_up, env, delegate, direction_up, current_scroll_ratio); } @@ -2472,7 +2472,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()); -@@ -508,13 +512,15 @@ void ViewAndroid::OnSizeChanged(int width, int height) { +@@ -512,13 +516,15 @@ void ViewAndroid::OnSizeChanged(int width, int height) { return; } @@ -2490,7 +2490,7 @@ diff --git a/ui/android/view_android.cc b/ui/android/view_android.cc if (bounds_device_px_.size() == size_device_px) { return; } -@@ -522,12 +528,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(); @@ -2509,7 +2509,7 @@ diff --git a/ui/android/view_android.cc b/ui/android/view_android.cc } } -@@ -578,6 +587,10 @@ gfx::Size ViewAndroid::GetSizeDevicePx() const { +@@ -592,6 +601,10 @@ gfx::Size ViewAndroid::GetSizeDevicePx() const { return bounds_device_px_.size(); } @@ -2523,7 +2523,7 @@ diff --git a/ui/android/view_android.cc b/ui/android/view_android.cc diff --git a/ui/android/view_android.h b/ui/android/view_android.h --- a/ui/android/view_android.h +++ b/ui/android/view_android.h -@@ -125,6 +125,8 @@ class UI_ANDROID_EXPORT ViewAndroid { +@@ -127,6 +127,8 @@ class UI_ANDROID_EXPORT ViewAndroid { // Virtual for testing. virtual float GetDipScale(); @@ -2532,7 +2532,7 @@ diff --git a/ui/android/view_android.h b/ui/android/view_android.h cc::slim::Layer* GetLayer() const; void SetLayer(scoped_refptr layer); -@@ -169,10 +171,11 @@ class UI_ANDROID_EXPORT ViewAndroid { +@@ -171,10 +173,11 @@ class UI_ANDROID_EXPORT ViewAndroid { gfx::Size GetPhysicalBackingSize() const; gfx::Size GetSizeDIPs() const; @@ -2545,7 +2545,7 @@ diff --git a/ui/android/view_android.h b/ui/android/view_android.h // |deadline_override| if not nullopt will be used as the cc::DeadlinePolicy // timeout for this resize. void OnPhysicalBackingSizeChanged( -@@ -320,7 +323,7 @@ class UI_ANDROID_EXPORT ViewAndroid { +@@ -325,7 +328,7 @@ class UI_ANDROID_EXPORT ViewAndroid { // each leaf of subtree. static bool SubtreeHasEventForwarder(ViewAndroid* view); @@ -2554,7 +2554,7 @@ diff --git a/ui/android/view_android.h b/ui/android/view_android.h void DispatchOnSizeChanged(); // Returns the Java delegate for this view. This is used to delegate work -@@ -343,6 +346,8 @@ class UI_ANDROID_EXPORT ViewAndroid { +@@ -348,6 +351,8 @@ class UI_ANDROID_EXPORT ViewAndroid { // Same as above, but before dividing by the device scale factor. gfx::Rect bounds_device_px_; diff --git a/build/patches/Android-Toolbar-Scroll-Ablation-setting.patch b/build/patches/Android-Toolbar-Scroll-Ablation-setting.patch index 05af7d23..7650e8f7 100644 --- a/build/patches/Android-Toolbar-Scroll-Ablation-setting.patch +++ b/build/patches/Android-Toolbar-Scroll-Ablation-setting.patch @@ -53,7 +53,7 @@ new file mode 100644 diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml --- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml +++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml -@@ -79,6 +79,12 @@ found in the LICENSE file. +@@ -74,6 +74,12 @@ found in the LICENSE file. android:key="disable_toolbar_swipeup" android:title="@string/disable_toolbar_swipe_up" /> diff --git a/build/patches/Android-fonts-fingerprinting-mitigation.patch b/build/patches/Android-fonts-fingerprinting-mitigation.patch index 10c3c43d..f2ea59f2 100644 --- a/build/patches/Android-fonts-fingerprinting-mitigation.patch +++ b/build/patches/Android-fonts-fingerprinting-mitigation.patch @@ -38,11 +38,11 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../skia/src/ports/SkFontConfigInterface.cpp | 4 + .../ports/SkFontConfigInterface_direct.cpp | 5 + .../src/ports/SkFontConfigInterface_direct.h | 1 + - .../skia/src/ports/SkFontMgr_android.cpp | 277 ++- + .../skia/src/ports/SkFontMgr_android.cpp | 278 ++- .../skia/src/ports/SkFontMgr_android_data.cpp | 1640 +++++++++++++++++ .../src/ports/SkFontMgr_android_parser.cpp | 49 +- .../skia/src/ports/SkFontMgr_android_parser.h | 5 +- - 36 files changed, 2414 insertions(+), 75 deletions(-) + 36 files changed, 2414 insertions(+), 76 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 @@ -54,7 +54,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 -@@ -1009,6 +1009,9 @@ public final class ProductionSupportedFlagList { +@@ -1003,6 +1003,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."), @@ -68,8 +68,8 @@ diff --git a/android_webview/nonembedded/component_updater/registration.cc b/and --- a/android_webview/nonembedded/component_updater/registration.cc +++ b/android_webview/nonembedded/component_updater/registration.cc @@ -26,6 +26,9 @@ + #include "components/privacy_sandbox/masked_domain_list/masked_domain_list.pb.h" #include "components/update_client/update_client.h" - #include "mojo/public/cpp/base/proto_wrapper.h" +#include "third_party/blink/public/common/features.h" +#include "components/component_updater/installer_policies/fonts_pack_component_installer.h" @@ -106,8 +106,8 @@ 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 -@@ -8005,6 +8005,13 @@ static_library("browser") { - } +@@ -8022,6 +8022,13 @@ static_library("browser") { + ] } + if (is_android) { @@ -161,7 +161,7 @@ new file mode 100644 diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn --- a/chrome/renderer/BUILD.gn +++ b/chrome/renderer/BUILD.gn -@@ -264,6 +264,10 @@ static_library("renderer") { +@@ -270,6 +270,10 @@ static_library("renderer") { deps += [ "//components/strings" ] } @@ -615,7 +615,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 -@@ -2614,6 +2614,17 @@ source_set("browser") { +@@ -2613,6 +2613,17 @@ source_set("browser") { ] } @@ -633,7 +633,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" ] -@@ -2659,6 +2670,13 @@ source_set("browser") { +@@ -2658,6 +2669,13 @@ source_set("browser") { ] } @@ -734,7 +734,7 @@ diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer using blink::Platform; using blink::WebAudioDevice; using blink::WebAudioLatencyHint; -@@ -174,6 +191,37 @@ gpu::ContextType ToGpuContextType(blink::Platform::ContextType type) { +@@ -187,6 +204,37 @@ viz::command_buffer_metrics::ContextType ToVizContextType( NOTREACHED(); } @@ -772,7 +772,7 @@ diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer } // namespace //------------------------------------------------------------------------------ -@@ -187,18 +235,21 @@ RendererBlinkPlatformImpl::RendererBlinkPlatformImpl( +@@ -200,18 +248,21 @@ RendererBlinkPlatformImpl::RendererBlinkPlatformImpl( is_locked_to_site_(false), main_thread_scheduler_(main_thread_scheduler), next_frame_sink_id_(uint32_t{std::numeric_limits::max()} + 1) { @@ -838,7 +838,7 @@ new file mode 100644 diff --git a/skia/BUILD.gn b/skia/BUILD.gn --- a/skia/BUILD.gn +++ b/skia/BUILD.gn -@@ -467,6 +467,18 @@ component("skia") { +@@ -465,6 +465,18 @@ component("skia") { sources += skia_ports_fci_sources } @@ -987,10 +987,12 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia #include #include -@@ -36,6 +38,91 @@ using namespace skia_private; - class SkData; +@@ -37,7 +39,91 @@ class SkData; namespace { + +-[[maybe_unused]] static inline const constexpr bool kSkFontMgrVerbose = false; ++static inline const constexpr bool kSkFontMgrVerbose = true; + +#include "SkFontMgr_android_data.cpp" + @@ -1075,11 +1077,10 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia + + using INHERITED = SkTypeface_FreeType; +}; -+ + class SkTypeface_AndroidSystem : public SkTypeface_proxy { public: - static sk_sp Make(sk_sp realTypeface, -@@ -109,7 +196,8 @@ using StreamForPathCache = skia_private::THashMapisFixedPitch(), -@@ -205,15 +340,18 @@ public: +@@ -208,15 +342,18 @@ public: return fStyles[index]; } @@ -1247,7 +1248,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia SkString fFallbackFor; friend struct NameToFamily; -@@ -234,24 +372,26 @@ struct NameToFamily { +@@ -237,24 +374,26 @@ struct NameToFamily { class SkFontMgr_Android : public SkFontMgr { public: @@ -1278,7 +1279,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia } this->buildNameToFamilyMap(families, custom ? custom->fIsolated : false); this->findDefaultStyleSet(); -@@ -306,12 +446,12 @@ protected: +@@ -309,12 +448,12 @@ protected: } enum class NameType { Self, Fallback }; @@ -1293,7 +1294,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia { for (auto&& nameToFamily : nameToFamilyMap) { SkFontStyleSet_Android* family = nameToFamily.styleSet; -@@ -322,22 +462,42 @@ protected: +@@ -325,22 +464,42 @@ protected: continue; } } @@ -1349,7 +1350,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia } } return nullptr; -@@ -352,7 +512,7 @@ protected: +@@ -355,7 +514,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. @@ -1358,7 +1359,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia SkString familyNameString(familyName); for (const SkString& currentFamilyName : { familyNameString, SkString() }) { // The first time match anything elegant, second time anything not elegant. -@@ -432,6 +592,7 @@ protected: +@@ -435,6 +594,7 @@ protected: private: std::unique_ptr fScanner; @@ -1366,7 +1367,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia TArray> fStyleSets; sk_sp fDefaultStyleSet; -@@ -453,7 +614,7 @@ private: +@@ -456,7 +616,7 @@ private: } sk_sp newSet = @@ -1375,22 +1376,22 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia if (0 == newSet->count()) { return; } -@@ -499,7 +660,11 @@ static char const * const gSystemFontUseStrings[] = { +@@ -502,7 +662,11 @@ static char const * const gSystemFontUseStrings[] = { } // namespace --sk_sp SkFontMgr_New_Android(const SkFontMgr_Android_CustomFonts* custom, std::unique_ptr scanner) { +-sk_sp SkFontMgr_New_Android(const SkFontMgr_Android_CustomFonts* custom, +sk_sp SkFontMgr_New_Android(std::unique_ptr custom) { + return SkFontMgr_New_Android(std::move(custom), SkFontScanner_Make_FreeType()); +} + -+sk_sp SkFontMgr_New_Android(std::unique_ptr custom, std::unique_ptr scanner) { ++sk_sp SkFontMgr_New_Android(std::unique_ptr custom, + std::unique_ptr scanner) { if (custom) { SkASSERT(0 <= custom->fSystemFontUse); - SkASSERT(custom->fSystemFontUse < std::size(gSystemFontUseStrings)); -@@ -509,5 +674,5 @@ sk_sp SkFontMgr_New_Android(const SkFontMgr_Android_CustomFonts* cust - custom->fFontsXml, - custom->fFallbackFontsXml); +@@ -515,5 +679,5 @@ sk_sp SkFontMgr_New_Android(const SkFontMgr_Android_CustomFonts* cust + custom->fFallbackFontsXml); + } } - return sk_make_sp(custom, std::move(scanner)); + return sk_make_sp(std::move(custom), std::move(scanner)); diff --git a/build/patches/Ask-for-restart-on-connection-change.patch b/build/patches/Ask-for-restart-on-connection-change.patch index 35b1e806..589cd06b 100644 --- a/build/patches/Ask-for-restart-on-connection-change.patch +++ b/build/patches/Ask-for-restart-on-connection-change.patch @@ -284,7 +284,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 -@@ -1439,7 +1439,10 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1465,7 +1465,10 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { mActivity, mStatusIndicatorCoordinator, isUrlBarFocusedSupplier, @@ -353,9 +353,9 @@ new file mode 100644 diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java --- a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java +++ b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java -@@ -146,6 +146,8 @@ public interface TabModelSelector { - /** Get total tab count across all tab models */ - int getTotalTabCount(); +@@ -149,6 +149,8 @@ public interface TabModelSelector { + /** Get total pinned tab count across all tab models */ + int getTotalPinnedTabCount(); + void setPagesFrozen(boolean frozen); + @@ -530,7 +530,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 -@@ -326,6 +326,12 @@ public class SnackbarManager +@@ -327,6 +327,12 @@ public class SnackbarManager new SnackbarView( mActivity, this, @@ -601,7 +601,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 -@@ -904,6 +904,22 @@ void WebContentsAndroid::SetFocus(JNIEnv* env, jboolean focused) { +@@ -903,6 +903,22 @@ void WebContentsAndroid::SetFocus(JNIEnv* env, jboolean focused) { view->SetFocus(focused); } @@ -638,7 +638,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 -@@ -4076,8 +4076,10 @@ void WebContentsImpl::Stop() { +@@ -4094,8 +4094,10 @@ void WebContentsImpl::Stop() { void WebContentsImpl::SetPageFrozen(bool frozen) { TRACE_EVENT1("content", "WebContentsImpl::SetPageFrozen", "frozen", frozen); @@ -652,7 +652,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 -@@ -1138,6 +1138,12 @@ public class WebContentsImpl +@@ -1134,6 +1134,12 @@ public class WebContentsImpl WebContentsImplJni.get().setFocus(mNativeWebContentsAndroid, hasFocus); } @@ -665,7 +665,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/webcon @Override public void setDisplayCutoutSafeArea(Rect insets) { if (mNativeWebContentsAndroid == 0) return; -@@ -1460,6 +1466,8 @@ public class WebContentsImpl +@@ -1463,6 +1469,8 @@ public class WebContentsImpl void setFocus(long nativeWebContentsAndroid, boolean focused); @@ -734,7 +734,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 -@@ -4630,6 +4630,7 @@ void Document::DispatchUnloadEvents(UnloadEventTimingInfo* unload_timing_info) { +@@ -4654,6 +4654,7 @@ void Document::DispatchUnloadEvents(UnloadEventTimingInfo* unload_timing_info) { } void Document::DispatchFreezeEvent() { @@ -745,7 +745,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 -@@ -3312,6 +3312,7 @@ void LocalFrame::DidFreeze() { +@@ -3303,6 +3303,7 @@ void LocalFrame::DidFreeze() { LoaderFreezeMode freeze_mode = GetLoaderFreezeMode(); GetDocument()->Fetcher()->SetDefersLoading(freeze_mode); Loader().SetDefersLoading(freeze_mode); @@ -753,7 +753,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ } void LocalFrame::DidResume() { -@@ -3326,6 +3327,7 @@ void LocalFrame::DidResume() { +@@ -3317,6 +3318,7 @@ void LocalFrame::DidResume() { GetDocument()->Fetcher()->SetDefersLoading(LoaderFreezeMode::kNone); Loader().SetDefersLoading(LoaderFreezeMode::kNone); @@ -764,7 +764,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 -@@ -989,7 +989,9 @@ SchedulingLifecycleState FrameSchedulerImpl::CalculateLifecycleState( +@@ -1033,7 +1033,9 @@ SchedulingLifecycleState FrameSchedulerImpl::CalculateLifecycleState( if (!parent_page_scheduler_) return SchedulingLifecycleState::kNotThrottled; if (parent_page_scheduler_->IsFrozen()) { @@ -790,7 +790,7 @@ diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/page_sche PolicyUpdater policy_updater; SetPageFrozenImpl(frozen, policy_updater); } -@@ -815,7 +817,12 @@ bool PageSchedulerImpl::IsBackgrounded() const { +@@ -816,7 +818,12 @@ bool PageSchedulerImpl::IsBackgrounded() const { // expire immediately when a page is backgrounded, which is undesirable in // headless mode. To prevent that, a page is never considerer backgrounded // when virtual time is enabled. diff --git a/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch b/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch index caa7d309..5b7a36ba 100644 --- a/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch +++ b/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch @@ -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 -@@ -594,9 +594,8 @@ +@@ -608,9 +608,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 5aa24439..49e0ab51 100644 --- a/build/patches/Block-gateway-attacks-via-websockets.patch +++ b/build/patches/Block-gateway-attacks-via-websockets.patch @@ -23,7 +23,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/third_party/blink/renderer/core/execution_context/execution_context.h b/third_party/blink/renderer/core/execution_context/execution_context.h --- a/third_party/blink/renderer/core/execution_context/execution_context.h +++ b/third_party/blink/renderer/core/execution_context/execution_context.h -@@ -397,6 +397,7 @@ class CORE_EXPORT ExecutionContext : public Supplementable, +@@ -398,6 +398,7 @@ class CORE_EXPORT ExecutionContext : public Supplementable, void SetAddressSpace(network::mojom::blink::IPAddressSpace ip_address_space); HeapObserverList& ContextLifecycleObserverSet(); @@ -45,7 +45,7 @@ diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.h b/third diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/third_party/blink/renderer/core/loader/frame_fetch_context.cc --- a/third_party/blink/renderer/core/loader/frame_fetch_context.cc +++ b/third_party/blink/renderer/core/loader/frame_fetch_context.cc -@@ -1057,6 +1057,26 @@ bool FrameFetchContext::ShouldBlockRequestByInspector(const KURL& url) const { +@@ -1120,6 +1120,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 -@@ -187,6 +187,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext, +@@ -191,6 +191,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext, bool ShouldBlockWebSocketByMixedContentCheck(const KURL&) const override; std::unique_ptr CreateWebSocketHandshakeThrottle() override; @@ -195,7 +195,7 @@ diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetc diff --git a/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc b/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc --- a/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc +++ b/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc -@@ -285,6 +285,11 @@ bool WebSocketChannelImpl::Connect(const KURL& url, const String& protocol) { +@@ -288,6 +288,11 @@ bool WebSocketChannelImpl::Connect(const KURL& url, const String& protocol) { return false; } 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 d2db790c..92fbe294 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 -@@ -5141,7 +5141,17 @@ void RenderFrameHostImpl::SetLastCommittedOrigin( +@@ -5151,7 +5151,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 { +@@ -836,6 +836,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_; } -@@ -2901,6 +2906,13 @@ void DocumentLoader::CommitNavigation() { +@@ -2916,6 +2921,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 -@@ -771,7 +771,7 @@ class CORE_EXPORT DocumentLoader : public GarbageCollected, +@@ -773,7 +773,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/Block-qjz9zk-or-trk-requests.patch b/build/patches/Block-qjz9zk-or-trk-requests.patch index e9eb6ceb..c7d34b52 100644 --- a/build/patches/Block-qjz9zk-or-trk-requests.patch +++ b/build/patches/Block-qjz9zk-or-trk-requests.patch @@ -49,7 +49,7 @@ diff --git a/chrome/browser/history/history_utils.cc b/chrome/browser/history/hi diff --git a/chrome/browser/ui/singleton_tabs.cc b/chrome/browser/ui/singleton_tabs.cc --- a/chrome/browser/ui/singleton_tabs.cc +++ b/chrome/browser/ui/singleton_tabs.cc -@@ -136,6 +136,11 @@ int GetIndexOfExistingTab(Browser* browser, const NavigateParams& params) { +@@ -141,6 +141,11 @@ int GetIndexOfExistingTab(BrowserWindowInterface* browser, continue; } @@ -60,7 +60,7 @@ diff --git a/chrome/browser/ui/singleton_tabs.cc b/chrome/browser/ui/singleton_t + GURL rewritten_tab_url = tab_url; content::BrowserURLHandler::GetInstance()->RewriteURLIfNecessary( - &rewritten_tab_url, browser->profile()); + &rewritten_tab_url, browser->GetProfile()); diff --git a/components/omnibox/browser/autocomplete_input.cc b/components/omnibox/browser/autocomplete_input.cc --- a/components/omnibox/browser/autocomplete_input.cc +++ b/components/omnibox/browser/autocomplete_input.cc @@ -107,7 +107,7 @@ diff --git a/components/url_formatter/url_fixer.cc b/components/url_formatter/ur diff --git a/content/browser/child_process_security_policy_impl.cc b/content/browser/child_process_security_policy_impl.cc --- a/content/browser/child_process_security_policy_impl.cc +++ b/content/browser/child_process_security_policy_impl.cc -@@ -970,6 +970,7 @@ ChildProcessSecurityPolicyImpl::ChildProcessSecurityPolicyImpl() +@@ -969,6 +969,7 @@ ChildProcessSecurityPolicyImpl::ChildProcessSecurityPolicyImpl() RegisterPseudoScheme(url::kJavaScriptScheme); RegisterPseudoScheme(kViewSourceScheme); RegisterPseudoScheme(kGoogleChromeScheme); @@ -118,7 +118,7 @@ diff --git a/content/browser/child_process_security_policy_impl.cc b/content/bro diff --git a/net/BUILD.gn b/net/BUILD.gn --- a/net/BUILD.gn +++ b/net/BUILD.gn -@@ -1137,6 +1137,8 @@ component("net") { +@@ -1142,6 +1142,8 @@ component("net") { "url_request/url_request_http_job.cc", "url_request/url_request_http_job.h", "url_request/url_request_interceptor.cc", @@ -211,7 +211,7 @@ diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc namespace net { -@@ -653,6 +655,12 @@ URLRequest::URLRequest(base::PassKey pass_key, +@@ -650,6 +652,12 @@ URLRequest::URLRequest(base::PassKey pass_key, // Sanity check out environment. DCHECK(base::SingleThreadTaskRunner::HasCurrentDefault()); @@ -222,8 +222,8 @@ diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc + } + context->url_requests()->insert(this); - net_log_.BeginEvent(NetLogEventType::REQUEST_ALIVE, [&] { - return NetLogURLRequestConstructorParams(url, priority_, + net_log_.BeginEvent(NetLogEventType::REQUEST_ALIVE, + [&](NetLogCaptureMode capture_mode) { diff --git a/net/url_request/url_request_context_builder.cc b/net/url_request/url_request_context_builder.cc --- a/net/url_request/url_request_context_builder.cc +++ b/net/url_request/url_request_context_builder.cc diff --git a/build/patches/Bookmarks-select-all-menu-entry.patch b/build/patches/Bookmarks-select-all-menu-entry.patch index 26714bef..f3c564d3 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 -@@ -249,6 +249,9 @@ CHAR_LIMIT guidelines: +@@ -252,6 +252,9 @@ CHAR_LIMIT guidelines: Sites diff --git a/build/patches/Bromite-subresource-adblocker.patch b/build/patches/Bromite-subresource-adblocker.patch index 4197934f..3aebf23a 100644 --- a/build/patches/Bromite-subresource-adblocker.patch +++ b/build/patches/Bromite-subresource-adblocker.patch @@ -77,7 +77,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 -@@ -424,6 +424,7 @@ chrome_java_resources = [ +@@ -432,6 +432,7 @@ chrome_java_resources = [ "java/res/layout/account_divider_preference.xml", "java/res/layout/account_management_account_row.xml", "java/res/layout/app_history_filter.xml", @@ -85,7 +85,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", -@@ -613,6 +614,7 @@ chrome_java_resources = [ +@@ -627,6 +628,7 @@ chrome_java_resources = [ "java/res/xml/account_management_preferences.xml", "java/res/xml/ad_services_config.xml", "java/res/xml/appearance_preferences.xml", @@ -96,7 +96,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 -@@ -909,6 +909,8 @@ chrome_java_sources = [ +@@ -918,6 +918,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", @@ -180,7 +180,7 @@ new file mode 100644 diff --git a/chrome/android/java/res/values/styles.xml b/chrome/android/java/res/values/styles.xml --- a/chrome/android/java/res/values/styles.xml +++ b/chrome/android/java/res/values/styles.xml -@@ -311,6 +311,24 @@ found in the LICENSE file. +@@ -312,6 +312,24 @@ found in the LICENSE file. @@ -442,16 +442,16 @@ 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 -@@ -75,6 +75,8 @@ import org.chromium.ui.modaldialog.ModalDialogManager.ModalDialogType; - import java.lang.ref.WeakReference; +@@ -88,6 +88,8 @@ import java.util.HashMap; import java.util.Locale; + import java.util.Map; +import org.chromium.chrome.browser.settings.AdBlockEditor; + /** * The Chrome settings activity. * -@@ -698,6 +700,7 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -948,6 +950,7 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity if (!MAIN_FRAGMENT_TAG.equals(fragment.getTag())) { return; } @@ -462,7 +462,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 -@@ -17032,6 +17032,16 @@ Please help our engineers fix this problem. Tell us what happened right before y +@@ -17103,6 +17103,16 @@ Please help our engineers fix this problem. Tell us what happened right before y Never show this again. @@ -590,7 +590,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 -@@ -387,6 +387,9 @@ StartupProfileInfo CreateInitialProfile( +@@ -390,6 +390,9 @@ StartupProfileInfo CreateInitialProfile( // missing code in the above test. CHECK(profile_info.profile) << "Cannot get default profile."; @@ -603,7 +603,7 @@ diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_brows diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn --- a/chrome/browser/flags/BUILD.gn +++ b/chrome/browser/flags/BUILD.gn -@@ -8,6 +8,7 @@ import("//third_party/jni_zero/jni_zero.gni") +@@ -9,6 +9,7 @@ import("//third_party/jni_zero/jni_zero.gni") android_library("java") { sources = [ "android/java/src/org/chromium/chrome/browser/flags/CromiteNativeUtils.java" ] sources += [ @@ -611,7 +611,7 @@ diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn "android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java", "android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureMap.java", "android/java/src/org/chromium/chrome/browser/flags/ChromeSessionState.java", -@@ -47,6 +48,7 @@ java_bromite_impl("java_cromite_cached_flags") { +@@ -49,6 +50,7 @@ java_bromite_impl("java_cromite_cached_flags") { generate_jni("jni_headers") { sources = [ "android/java/src/org/chromium/chrome/browser/flags/CromiteNativeUtils.java" ] sources += [ @@ -619,7 +619,7 @@ diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn "android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureMap.java", "android/java/src/org/chromium/chrome/browser/flags/ChromeSessionState.java", ] -@@ -61,6 +63,7 @@ static_library("flags_android") { +@@ -62,6 +64,7 @@ static_library("flags_android") { "android/chrome_session_state.cc", "android/chrome_session_state.h", ] @@ -701,7 +701,7 @@ new file mode 100755 diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc --- a/chrome/browser/net/system_network_context_manager.cc +++ b/chrome/browser/net/system_network_context_manager.cc -@@ -717,6 +717,10 @@ void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) { +@@ -715,6 +715,10 @@ void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) { DefaultDnsOverHttpsConfigSource::RegisterPrefs(registry); NetworkProcessLaunchWatcher::RegisterPrefs(registry); @@ -732,8 +732,8 @@ diff --git a/chrome/browser/sessions/session_restore_android.cc b/chrome/browser 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 -@@ -221,6 +221,20 @@ CHAR_LIMIT guidelines: - %1$s <new>New</new> +@@ -224,6 +224,20 @@ CHAR_LIMIT guidelines: + Search settings + @@ -756,7 +756,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 -@@ -2919,6 +2919,11 @@ inline constexpr char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled"; +@@ -2931,6 +2931,11 @@ inline constexpr char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled"; inline constexpr char kAudioCaptureAllowedUrls[] = "hardware.audio_capture_allowed_urls"; @@ -771,7 +771,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 -@@ -403,6 +403,9 @@ +@@ -406,6 +406,9 @@ This site shows intrusive or misleading ads @@ -1613,7 +1613,7 @@ diff --git a/components/subresource_filter/content/browser/content_subresource_f web_contents_helper_(web_contents_helper) {} ContentSubresourceFilterThrottleManager:: -@@ -628,6 +632,17 @@ ContentSubresourceFilterThrottleManager:: +@@ -629,6 +633,17 @@ ContentSubresourceFilterThrottleManager:: throttle->NotifyPageActivationWithRuleset(EnsureRulesetHandle(), ad_tagging_state); } diff --git a/build/patches/Bubble-Locking-on-UI-DevTools.patch b/build/patches/Bubble-Locking-on-UI-DevTools.patch index 863d8dd5..49b9b49d 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 -@@ -1479,6 +1479,19 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, +@@ -1465,6 +1465,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. -@@ -1519,13 +1532,6 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, +@@ -1505,13 +1518,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; -@@ -1536,11 +1542,6 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, +@@ -1522,11 +1528,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 67bc4c4f..59c168c6 100644 --- a/build/patches/Chrome-web-store-protection.patch +++ b/build/patches/Chrome-web-store-protection.patch @@ -71,9 +71,9 @@ diff --git a/chrome/app/extensions_strings.grdp b/chrome/app/extensions_strings. diff --git a/chrome/browser/extensions/api/developer_private/developer_private_api.cc b/chrome/browser/extensions/api/developer_private/developer_private_api.cc --- a/chrome/browser/extensions/api/developer_private/developer_private_api.cc +++ b/chrome/browser/extensions/api/developer_private/developer_private_api.cc -@@ -25,6 +25,12 @@ - #include "extensions/browser/app_window/app_window_registry.h" - #endif // BUILDFLAG(ENABLE_EXTENSIONS) +@@ -28,6 +28,12 @@ + + static_assert(BUILDFLAG(ENABLE_EXTENSIONS_CORE)); +#include "chrome/browser/about_flags.h" +#include "chrome/browser/browser_process.h" @@ -84,7 +84,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_a namespace extensions { namespace developer = api::developer_private; -@@ -66,6 +72,28 @@ DeveloperPrivateAPI::GetFactoryInstance() { +@@ -69,6 +75,28 @@ DeveloperPrivateAPI::GetFactoryInstance() { return g_developer_private_api_factory.Pointer(); } @@ -116,7 +116,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_a diff --git a/chrome/browser/extensions/api/developer_private/developer_private_api.h b/chrome/browser/extensions/api/developer_private/developer_private_api.h --- a/chrome/browser/extensions/api/developer_private/developer_private_api.h +++ b/chrome/browser/extensions/api/developer_private/developer_private_api.h -@@ -34,6 +34,9 @@ class DeveloperPrivateAPI : public BrowserContextKeyedAPI, +@@ -37,6 +37,9 @@ class DeveloperPrivateAPI : public BrowserContextKeyedAPI, static BrowserContextKeyedAPIFactory* GetFactoryInstance(); @@ -129,7 +129,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_a diff --git a/chrome/browser/extensions/api/developer_private/developer_private_functions_shared.cc b/chrome/browser/extensions/api/developer_private/developer_private_functions_shared.cc --- a/chrome/browser/extensions/api/developer_private/developer_private_functions_shared.cc +++ b/chrome/browser/extensions/api/developer_private/developer_private_functions_shared.cc -@@ -361,6 +361,7 @@ ExtensionFunction::ResponseAction DeveloperPrivateAutoUpdateFunction::Run() { +@@ -364,6 +364,7 @@ ExtensionFunction::ResponseAction DeveloperPrivateAutoUpdateFunction::Run() { ExtensionUpdater::CheckParams params; params.fetch_priority = DownloadFetchPriority::kForeground; params.install_immediately = true; @@ -137,7 +137,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_f params.callback = base::BindOnce(&DeveloperPrivateAutoUpdateFunction::OnComplete, this); updater->CheckNow(std::move(params)); -@@ -497,7 +498,7 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() { +@@ -500,7 +501,7 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() { const developer::ProfileConfigurationUpdate& update = params->update; @@ -146,7 +146,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_f Profile* profile = Profile::FromBrowserContext(browser_context()); CHECK(profile); if (supervised_user::AreExtensionsPermissionsEnabled(profile)) { -@@ -511,6 +512,11 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() { +@@ -514,6 +515,11 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() { ->MarkNoticeAsAcknowledgedGlobally(); } @@ -169,7 +169,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/profile_info_genera #include "chrome/common/pref_names.h" #include "components/policy/core/common/policy_pref_names.h" #include "components/prefs/pref_service.h" -@@ -39,6 +40,8 @@ developer::ProfileInfo CreateProfileInfo(Profile* profile) { +@@ -42,6 +43,8 @@ developer::ProfileInfo CreateProfileInfo(Profile* profile) { ManifestV2ExperimentManager::Get(profile) ->DidUserAcknowledgeNoticeGlobally(); @@ -181,15 +181,15 @@ 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 -@@ -65,6 +65,7 @@ - #include "extensions/browser/extension_util.h" - #include "extensions/browser/extensions_browser_client.h" +@@ -67,6 +67,7 @@ + #include "extensions/browser/scoped_active_install.h" + #include "extensions/buildflags/buildflags.h" #include "extensions/common/extension.h" +#include "extensions/common/extension_features.h" #include "extensions/common/manifest.h" #include "extensions/common/manifest_constants.h" #include "extensions/common/manifest_handlers/permissions_parser.h" -@@ -225,6 +226,8 @@ WebstorePrivateApi::Delegate* test_delegate = nullptr; +@@ -229,6 +230,8 @@ WebstorePrivateApi::Delegate* test_delegate = nullptr; // there was previously stored data, or an empty string otherwise. The Set will // overwrite any previous login. std::string GetWebstoreLogin(Profile* profile) { @@ -198,7 +198,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api if (profile->GetPrefs()->HasPrefPath(kWebstoreLogin)) { return profile->GetPrefs()->GetString(kWebstoreLogin); } -@@ -232,11 +235,15 @@ std::string GetWebstoreLogin(Profile* profile) { +@@ -236,11 +239,15 @@ std::string GetWebstoreLogin(Profile* profile) { } void SetWebstoreLogin(Profile* profile, const std::string& login) { @@ -243,7 +243,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api diff --git a/chrome/browser/extensions/chrome_extension_system.cc b/chrome/browser/extensions/chrome_extension_system.cc --- a/chrome/browser/extensions/chrome_extension_system.cc +++ b/chrome/browser/extensions/chrome_extension_system.cc -@@ -92,6 +92,7 @@ UninstallPingSender::FilterResult ShouldSendUninstallPing( +@@ -95,6 +95,7 @@ UninstallPingSender::FilterResult ShouldSendUninstallPing( Profile* profile, const Extension* extension, UninstallReason reason) { @@ -254,7 +254,7 @@ diff --git a/chrome/browser/extensions/chrome_extension_system.cc b/chrome/brows diff --git a/chrome/browser/extensions/cws_info_service_factory.cc b/chrome/browser/extensions/cws_info_service_factory.cc --- a/chrome/browser/extensions/cws_info_service_factory.cc +++ b/chrome/browser/extensions/cws_info_service_factory.cc -@@ -47,7 +47,8 @@ CWSInfoServiceFactory::CWSInfoServiceFactory() +@@ -50,7 +50,8 @@ CWSInfoServiceFactory::CWSInfoServiceFactory() std::unique_ptr CWSInfoServiceFactory::BuildServiceInstanceForBrowserContext( content::BrowserContext* context) const { @@ -267,7 +267,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 -@@ -417,6 +417,7 @@ bool ExtensionManagement::IsExemptFromMV2DeprecationByPolicy( +@@ -431,6 +431,7 @@ bool ExtensionManagement::IsExemptFromMV2DeprecationByPolicy( bool ExtensionManagement::IsAllowedByUnpublishedAvailabilityPolicy( const Extension* extension) { @@ -278,7 +278,7 @@ diff --git a/chrome/browser/extensions/extension_management.cc b/chrome/browser/ diff --git a/chrome/browser/extensions/extension_safety_check_utils.cc b/chrome/browser/extensions/extension_safety_check_utils.cc --- a/chrome/browser/extensions/extension_safety_check_utils.cc +++ b/chrome/browser/extensions/extension_safety_check_utils.cc -@@ -240,8 +240,7 @@ developer::SafetyCheckWarningReason GetSafetyCheckWarningReasonHelper( +@@ -243,8 +243,7 @@ developer::SafetyCheckWarningReason GetSafetyCheckWarningReasonHelper( developer::SafetyCheckWarningReason acknowledged_reason = GetPrefAcknowledgeSafetyCheckWarningReason(extension, ExtensionPrefs::Get(profile)); @@ -291,7 +291,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 -@@ -241,8 +241,6 @@ ExtensionService::ExtensionService( +@@ -247,8 +247,6 @@ ExtensionService::ExtensionService( UpgradeDetector::GetInstance()->AddObserver(this); #endif @@ -300,7 +300,7 @@ diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/ext ExtensionManagementFactory::GetForBrowserContext(profile_)->AddObserver(this); if (autoupdate_enabled) { -@@ -757,7 +755,7 @@ void ExtensionService::OnExtensionManagementSettingsChanged() { +@@ -763,7 +761,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. @@ -312,7 +312,7 @@ diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/ext diff --git a/chrome/browser/extensions/updater/chrome_extension_downloader_factory.cc b/chrome/browser/extensions/updater/chrome_extension_downloader_factory.cc --- a/chrome/browser/extensions/updater/chrome_extension_downloader_factory.cc +++ b/chrome/browser/extensions/updater/chrome_extension_downloader_factory.cc -@@ -50,7 +50,6 @@ ChromeExtensionDownloaderFactory::CreateForURLLoaderFactory( +@@ -53,7 +53,6 @@ ChromeExtensionDownloaderFactory::CreateForURLLoaderFactory( manifest_query_params += "&testrequest=1"; } downloader->set_manifest_query_params(manifest_query_params); @@ -323,7 +323,7 @@ diff --git a/chrome/browser/extensions/updater/chrome_extension_downloader_facto diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/browser/extensions/updater/extension_updater.cc --- a/chrome/browser/extensions/updater/extension_updater.cc +++ b/chrome/browser/extensions/updater/extension_updater.cc -@@ -55,6 +55,7 @@ +@@ -56,6 +56,7 @@ #include "extensions/common/constants.h" #include "extensions/common/extension.h" #include "extensions/common/extension_id.h" @@ -331,7 +331,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro #include "extensions/common/extension_set.h" #include "extensions/common/extension_updater_uma.h" #include "extensions/common/extension_urls.h" -@@ -226,6 +227,10 @@ void ExtensionUpdater::Start() { +@@ -229,6 +230,10 @@ void ExtensionUpdater::Start() { DCHECK(!weak_ptr_factory_.HasWeakPtrs()); DCHECK(registry_); alive_ = true; @@ -342,7 +342,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro // Check soon, and set up the first delayed check. if (!g_skip_scheduled_checks_for_tests) { CheckSoon(); -@@ -377,7 +382,8 @@ void ExtensionUpdater::AddToDownloader( +@@ -380,7 +385,8 @@ void ExtensionUpdater::AddToDownloader( const Extension& extension = **extension_iter; const ExtensionId& extension_id = extension.id(); if (!Manifest::IsAutoUpdateableLocation(extension.location())) { @@ -352,7 +352,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro continue; } // An extension might be overwritten by policy, and have its update url -@@ -392,7 +398,7 @@ void ExtensionUpdater::AddToDownloader( +@@ -395,7 +401,7 @@ void ExtensionUpdater::AddToDownloader( continue; } @@ -361,7 +361,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro update_check_params->update_info[extension_id] = GetExtensionUpdateData(extension_id); } else if (AddExtensionToDownloader(extension, request_id, -@@ -430,6 +436,12 @@ bool ExtensionUpdater::AddExtensionToDownloader( +@@ -433,6 +439,12 @@ bool ExtensionUpdater::AddExtensionToDownloader( } void ExtensionUpdater::CheckNow(CheckParams params) { @@ -374,7 +374,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro CHECK(enabled_); if (params.ids.empty()) { // Checking all extensions. Cancel pending DoCheckSoon() call if there's -@@ -439,7 +451,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -442,7 +454,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { int request_id = next_request_id_++; @@ -383,7 +383,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro if (params.ids.empty()) { NotifyStarted(); } -@@ -509,7 +521,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -512,7 +524,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { update_check_params.update_info[pending_id] = GetExtensionUpdateData(pending_id); } else if (!Manifest::IsAutoUpdateableLocation(info->install_source())) { @@ -392,7 +392,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro continue; } // We have to mark high-priority extensions (such as policy-forced -@@ -519,7 +531,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -522,7 +534,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { // See https://crbug.com/904600 and https://crbug.com/965686. const bool is_high_priority_extension_pending = pending_extension_manager->HasHighPriorityPendingExtension(); @@ -401,7 +401,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro update_check_params.update_info[pending_id] = GetExtensionUpdateData(pending_id); update_check_params.update_info[pending_id].is_corrupt_reinstall = -@@ -542,6 +554,8 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -545,6 +557,8 @@ void ExtensionUpdater::CheckNow(CheckParams params) { LOG(WARNING) << "Corrupt extension with id " << pending_id << " will be reinstalled with ExtensionDownloader."; } @@ -410,7 +410,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro } else { InstallStageTracker::Get(profile_)->ReportFailure( pending_id, -@@ -554,13 +568,6 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -557,13 +571,6 @@ void ExtensionUpdater::CheckNow(CheckParams params) { AddToDownloader(®istry_->disabled_extensions(), pending_ids, request_id, params.fetch_priority, &update_check_params); ExtensionSet remotely_disabled_extensions; @@ -424,7 +424,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro AddToDownloader(&remotely_disabled_extensions, pending_ids, request_id, params.fetch_priority, &update_check_params); } else { -@@ -568,7 +575,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -571,7 +578,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { const Extension* extension = registry_->GetExtensionById(id, ExtensionRegistry::EVERYTHING); if (extension) { @@ -433,7 +433,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro update_check_params.update_info[id] = GetExtensionUpdateData(id); } else if (AddExtensionToDownloader(*extension, request_id, params.fetch_priority)) { -@@ -712,7 +719,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished( +@@ -715,7 +722,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished( file.extension_id, InstallStageTracker::Stage::INSTALLING); UpdatePingData(file.extension_id, ping); @@ -442,7 +442,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro FetchedCRXFile fetched(file, file_ownership_passed, request_ids, std::move(callback)); -@@ -723,6 +730,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished( +@@ -726,6 +733,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished( bool ExtensionUpdater::GetPingDataForExtension(const ExtensionId& id, DownloadPingData* ping_data) { @@ -450,7 +450,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro DCHECK(alive_); ping_data->rollcall_days = CalculatePingDaysForExtension(extension_prefs_->LastPingDay(id)); -@@ -842,7 +850,7 @@ bool ExtensionUpdater::CanUseUpdateService( +@@ -845,7 +853,7 @@ bool ExtensionUpdater::CanUseUpdateService( void ExtensionUpdater::InstallCRXFile(FetchedCRXFile crx_file) { std::set request_ids; @@ -459,7 +459,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro << crx_file.info.path.value(); // The delegate is now responsible for cleaning up the temp file at -@@ -1051,7 +1059,7 @@ void ExtensionUpdater::NotifyIfFinished(int request_id) { +@@ -1054,7 +1062,7 @@ void ExtensionUpdater::NotifyIfFinished(int request_id) { if (!request.in_progress_ids.empty() || request.awaiting_update_service) { return; // This request is not done yet. } @@ -492,7 +492,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.h b/chrome/brow diff --git a/chrome/browser/extensions/webstore_install_helper.cc b/chrome/browser/extensions/webstore_install_helper.cc --- a/chrome/browser/extensions/webstore_install_helper.cc +++ b/chrome/browser/extensions/webstore_install_helper.cc -@@ -46,7 +46,7 @@ void WebstoreInstallHelper::Start( +@@ -49,7 +49,7 @@ void WebstoreInstallHelper::Start( data_decoder::DataDecoder::ParseJsonIsolated( manifest_, base::BindOnce(&WebstoreInstallHelper::OnJSONParsed, this)); @@ -504,7 +504,7 @@ 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 -@@ -591,7 +591,7 @@ void WebstoreInstaller::StartDownload( +@@ -594,7 +594,7 @@ void WebstoreInstaller::StartDownload( traffic_annotation)); params->set_file_path(file); params->set_initiator(render_frame_host->GetLastCommittedOrigin()); @@ -556,7 +556,7 @@ diff --git a/chrome/browser/resources/extensions/manager.ts b/chrome/browser/res diff --git a/chrome/browser/resources/extensions/service.ts b/chrome/browser/resources/extensions/service.ts --- a/chrome/browser/resources/extensions/service.ts +++ b/chrome/browser/resources/extensions/service.ts -@@ -341,6 +341,11 @@ export class Service implements ServiceInterface { +@@ -342,6 +342,11 @@ export class Service implements ServiceInterface { {inDeveloperMode: inDevMode}); } @@ -764,7 +764,7 @@ diff --git a/components/update_client/update_query_params.cc b/components/update GetProdIdString(prod), g_delegate ? g_delegate->GetExtraParams().c_str() : ""); } -@@ -120,7 +119,7 @@ const char* UpdateQueryParams::GetArch() { +@@ -120,7 +119,7 @@ std::string_view UpdateQueryParams::GetArch() { // static std::string UpdateQueryParams::GetProdVersion() { @@ -810,7 +810,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br #include "extensions/browser/api/extensions_api_client.h" #include "extensions/browser/api/management/management_api_constants.h" #include "extensions/browser/disable_reason.h" -@@ -41,6 +44,7 @@ +@@ -42,6 +45,7 @@ #include "extensions/common/api/management.h" #include "extensions/common/error_utils.h" #include "extensions/common/extension.h" @@ -818,7 +818,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br #include "extensions/common/extension_id.h" #include "extensions/common/extension_urls.h" #include "extensions/common/icons/extension_icon_set.h" -@@ -92,6 +96,29 @@ std::vector CreateWarningsList(const Extension* extension) { +@@ -104,6 +108,29 @@ std::vector CreateWarningsList(const Extension* extension) { return warnings_list; } @@ -848,7 +848,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br std::vector GetAvailableLaunchTypes( const Extension& extension) { std::vector launch_type_list; -@@ -269,6 +296,8 @@ void AddExtensionInfo(const Extension* source_extension, +@@ -281,6 +308,8 @@ void AddExtensionInfo(const Extension* source_extension, const ExtensionSet& extensions, ExtensionInfoList* extension_list, content::BrowserContext* context) { @@ -857,7 +857,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br for (ExtensionSet::const_iterator iter = extensions.begin(); iter != extensions.end(); ++iter) { const Extension& extension = **iter; -@@ -311,10 +340,9 @@ ExtensionFunction::ResponseAction ManagementGetFunction::Run() { +@@ -323,10 +352,9 @@ ExtensionFunction::ResponseAction ManagementGetFunction::Run() { std::optional params = management::Get::Params::Create(args()); EXTENSION_FUNCTION_VALIDATE(params); @@ -869,7 +869,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br if (!target_extension) { return RespondNow(Error(keys::kNoExtensionError, params->id)); } -@@ -335,8 +363,7 @@ ManagementGetPermissionWarningsByIdFunction::Run() { +@@ -347,8 +375,7 @@ ManagementGetPermissionWarningsByIdFunction::Run() { EXTENSION_FUNCTION_VALIDATE(params); const Extension* extension = @@ -879,7 +879,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br if (!extension) { return RespondNow(Error(keys::kNoExtensionError, params->id)); } -@@ -404,8 +431,7 @@ ExtensionFunction::ResponseAction ManagementLaunchAppFunction::Run() { +@@ -419,8 +446,7 @@ ExtensionFunction::ResponseAction ManagementLaunchAppFunction::Run() { } const Extension* extension = @@ -889,7 +889,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br if (!extension) { return RespondNow(Error(keys::kNoExtensionError, params->id)); } -@@ -545,8 +571,8 @@ void ManagementSetEnabledFunction::CheckPermissionsIncrease() { +@@ -562,8 +588,8 @@ void ManagementSetEnabledFunction::CheckPermissionsIncrease() { // Extension could have been uninstalled externally while previous check was // happening. const Extension* extension = @@ -900,7 +900,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br if (!extension) { FinishEnable(Error(keys::kNoExtensionError)); return; -@@ -589,8 +615,8 @@ void ManagementSetEnabledFunction::CheckManifestV2Deprecation() { +@@ -606,8 +632,8 @@ void ManagementSetEnabledFunction::CheckManifestV2Deprecation() { // Extension can be uninstalled externally while the previous check was // happening async. const Extension* extension = @@ -911,7 +911,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br if (!extension) { FinishEnable(Error(keys::kNoExtensionError)); return; -@@ -734,8 +760,8 @@ void ManagementSetEnabledFunction::OnSupervisedExtensionApprovalDone( +@@ -751,8 +777,8 @@ void ManagementSetEnabledFunction::OnSupervisedExtensionApprovalDone( } const Extension* ManagementSetEnabledFunction::GetExtension() { @@ -922,7 +922,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br } ManagementUninstallFunctionBase::ManagementUninstallFunctionBase() = default; -@@ -760,8 +786,7 @@ ExtensionFunction::ResponseAction ManagementUninstallFunctionBase::Uninstall( +@@ -777,8 +803,7 @@ ExtensionFunction::ResponseAction ManagementUninstallFunctionBase::Uninstall( ->GetDelegate(); target_extension_id_ = target_extension_id; const Extension* target_extension = @@ -932,7 +932,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br ExtensionRegistry::EVERYTHING); if (!target_extension || !ShouldExposeViaManagementAPI(*target_extension)) { return RespondNow(Error(keys::kNoExtensionError, target_extension_id_)); -@@ -826,8 +851,7 @@ void ManagementUninstallFunctionBase::UninstallExtension() { +@@ -843,8 +868,7 @@ void ManagementUninstallFunctionBase::UninstallExtension() { // The extension can be uninstalled in another window while the UI was // showing. Do nothing in that case. const Extension* target_extension = @@ -942,7 +942,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br ExtensionRegistry::EVERYTHING); std::string error; bool success = false; -@@ -907,8 +931,7 @@ ExtensionFunction::ResponseAction ManagementCreateAppShortcutFunction::Run() { +@@ -928,8 +952,7 @@ ExtensionFunction::ResponseAction ManagementCreateAppShortcutFunction::Run() { management::CreateAppShortcut::Params::Create(args()); EXTENSION_FUNCTION_VALIDATE(params); const Extension* extension = @@ -952,7 +952,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br if (!extension) { return RespondNow(Error( ErrorUtils::FormatErrorMessage(keys::kNoExtensionError, params->id))); -@@ -962,8 +985,7 @@ ExtensionFunction::ResponseAction ManagementSetLaunchTypeFunction::Run() { +@@ -983,8 +1006,7 @@ ExtensionFunction::ResponseAction ManagementSetLaunchTypeFunction::Run() { management::SetLaunchType::Params::Create(args()); EXTENSION_FUNCTION_VALIDATE(params); const Extension* extension = @@ -965,7 +965,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/browser/updater/extension_downloader.cc --- a/extensions/browser/updater/extension_downloader.cc +++ b/extensions/browser/updater/extension_downloader.cc -@@ -491,8 +491,8 @@ void ExtensionDownloader::CreateManifestLoader() { +@@ -485,8 +485,8 @@ void ExtensionDownloader::CreateManifestLoader() { std::vector id_vector(extension_ids.begin(), extension_ids.end()); std::string id_list = base::JoinString(id_vector, ","); @@ -976,7 +976,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro << (active_request->foreground_check() ? kUpdateInteractivityForeground : kUpdateInteractivityBackground); -@@ -517,7 +517,7 @@ void ExtensionDownloader::CreateManifestLoader() { +@@ -511,7 +511,7 @@ void ExtensionDownloader::CreateManifestLoader() { destination: WEBSITE } policy { @@ -985,7 +985,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro cookies_store: "user" setting: "This feature cannot be disabled. It is only enabled when the user " -@@ -534,6 +534,7 @@ void ExtensionDownloader::CreateManifestLoader() { +@@ -528,6 +528,7 @@ void ExtensionDownloader::CreateManifestLoader() { auto resource_request = std::make_unique(); resource_request->url = active_request->full_url(), resource_request->load_flags = net::LOAD_DISABLE_CACHE; @@ -993,7 +993,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro if (active_request->fetch_priority() == DownloadFetchPriority::kForeground) { resource_request->priority = net::MEDIUM; -@@ -542,10 +543,6 @@ void ExtensionDownloader::CreateManifestLoader() { +@@ -536,10 +537,6 @@ void ExtensionDownloader::CreateManifestLoader() { // Send traffic-management headers to the webstore, and omit credentials. // https://bugs.chromium.org/p/chromium/issues/detail?id=647516 if (extension_urls::IsWebstoreUpdateUrl(active_request->full_url())) { @@ -1004,7 +1004,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro resource_request->headers.SetHeader(kUpdateAppIdHeader, id_list); resource_request->headers.SetHeader( kUpdateUpdaterHeader, -@@ -830,20 +827,6 @@ void ExtensionDownloader::HandleManifestResults( +@@ -824,20 +821,6 @@ void ExtensionDownloader::HandleManifestResults( update.second->info); } @@ -1025,7 +1025,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro ExtensionIdSet extension_ids_with_errors; for (const auto& failure : failures) extension_ids_with_errors.insert(failure.first.id); -@@ -865,7 +848,7 @@ ExtensionDownloader::GetUpdateAvailability( +@@ -859,7 +842,7 @@ ExtensionDownloader::GetUpdateAvailability( // extensions that have already existed in the system. if (!delegate_->GetExtensionExistingVersion(extension_id, &extension_version)) { @@ -1034,7 +1034,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro return UpdateAvailability::kBadUpdateSpecification; } VLOG(2) << extension_id << " is at '" << extension_version << "'"; -@@ -876,11 +859,11 @@ ExtensionDownloader::GetUpdateAvailability( +@@ -870,11 +853,11 @@ ExtensionDownloader::GetUpdateAvailability( const std::string& update_version_str = update->version; if (VLOG_IS_ON(2)) { if (update_version_str.empty()) @@ -1048,7 +1048,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro << " latest version is '" << update_version_str << "'"; } -@@ -890,21 +873,21 @@ ExtensionDownloader::GetUpdateAvailability( +@@ -884,21 +867,21 @@ ExtensionDownloader::GetUpdateAvailability( // we don't want it. if (update_version_str.empty()) { // If update manifest doesn't have version number => no update. @@ -1073,7 +1073,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro << update_version_str << "'"; bool can_rollback = update_version.CompareTo(existing_version) < 0 && -@@ -931,7 +914,9 @@ ExtensionDownloader::GetUpdateAvailability( +@@ -925,7 +908,9 @@ ExtensionDownloader::GetUpdateAvailability( } // Stop checking as soon as an update for |extension_id| is found. @@ -1084,7 +1084,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro *update_result_out = const_cast(update); return UpdateAvailability::kAvailable; } -@@ -1176,7 +1161,7 @@ void ExtensionDownloader::CreateExtensionLoader() { +@@ -1170,7 +1155,7 @@ void ExtensionDownloader::CreateExtensionLoader() { int load_flags = net::LOAD_DISABLE_CACHE; bool is_secure = fetch->url.SchemeIsCryptographic(); extension_loader_resource_request_->load_flags = load_flags; @@ -1093,7 +1093,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro extension_loader_resource_request_->credentials_mode = network::mojom::CredentialsMode::kOmit; } else { -@@ -1184,7 +1169,7 @@ void ExtensionDownloader::CreateExtensionLoader() { +@@ -1178,7 +1163,7 @@ void ExtensionDownloader::CreateExtensionLoader() { net::SiteForCookies::FromUrl(fetch->url); } @@ -1102,7 +1102,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro is_secure) { if (access_token_.empty()) { // We should try OAuth2, but we have no token cached. This -@@ -1207,7 +1192,7 @@ void ExtensionDownloader::CreateExtensionLoader() { +@@ -1201,7 +1186,7 @@ void ExtensionDownloader::CreateExtensionLoader() { base::StringPrintf("Bearer %s", access_token_.c_str())); } @@ -1111,7 +1111,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro StartExtensionLoader(); } -@@ -1229,7 +1214,7 @@ void ExtensionDownloader::StartExtensionLoader() { +@@ -1223,7 +1208,7 @@ void ExtensionDownloader::StartExtensionLoader() { destination: WEBSITE } policy { @@ -1120,7 +1120,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro cookies_store: "user" setting: "This feature cannot be disabled. It is only enabled when the user " -@@ -1300,6 +1285,7 @@ void ExtensionDownloader::OnExtensionLoadComplete(base::FilePath crx_path) { +@@ -1294,6 +1279,7 @@ void ExtensionDownloader::OnExtensionLoadComplete(base::FilePath crx_path) { RETRY_HISTOGRAM("CrxFetchSuccess", extensions_queue_.active_request_failure_count(), url); @@ -1128,7 +1128,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro std::unique_ptr fetch_data = std::move(extensions_queue_.reset_active_request().fetch); delegate_->OnExtensionDownloadStageChanged( -@@ -1320,7 +1306,7 @@ void ExtensionDownloader::OnExtensionLoadComplete(base::FilePath crx_path) { +@@ -1314,7 +1300,7 @@ void ExtensionDownloader::OnExtensionLoadComplete(base::FilePath crx_path) { } else { const std::set request_ids = active_request.GetRequestIds(); const ExtensionDownloaderDelegate::PingResult& ping = ping_results_[id]; @@ -1137,7 +1137,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro << "' response code:" << response_code; if (ShouldRetryRequest(extension_loader_.get()) && extensions_queue_.active_request_failure_count() < kMaxRetries) { -@@ -1414,6 +1400,7 @@ void ExtensionDownloader::NotifyExtensionsDownloadFailedWithList( +@@ -1408,6 +1394,7 @@ void ExtensionDownloader::NotifyExtensionsDownloadFailedWithList( bool ExtensionDownloader::IterateFetchCredentialsAfterFailure( ExtensionFetch* fetch, int response_code) { @@ -1201,9 +1201,9 @@ 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 -@@ -178,4 +178,11 @@ BASE_FEATURE(OneTimeMessageUnserializableResponseClosesChannel, - BASE_FEATURE(ContentVerifyJobUseJobVersionForHashing, - base::FEATURE_ENABLED_BY_DEFAULT); +@@ -172,4 +172,11 @@ BASE_FEATURE(kRuntimeOnMessageWebExtensionPolyfillSupport, + "RuntimeOnMessageWebExtensionPolyfillSupport", + base::FEATURE_DISABLED_BY_DEFAULT); +CROMITE_FEATURE(kEnableExtensionAutoupdate, + "EnableExtensionAutoupdate", @@ -1216,9 +1216,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 -@@ -287,6 +287,16 @@ BASE_DECLARE_FEATURE(kOneTimeMessageUnserializableResponseClosesChannel); - // these inconsistencies. - BASE_DECLARE_FEATURE(kContentVerifyJobUseJobVersionForHashing); +@@ -287,6 +287,16 @@ BASE_DECLARE_FEATURE(kContentVerifyJobUseJobVersionForHashing); + // during execution) the error is passed back to the sender. + BASE_DECLARE_FEATURE(kRuntimeOnMessageWebExtensionPolyfillSupport); +// 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 f9bfe34d..88636bb7 100644 --- a/build/patches/Clear-CORS-Preflight-Cache-on-clearing-data.patch +++ b/build/patches/Clear-CORS-Preflight-Cache-on-clearing-data.patch @@ -41,7 +41,7 @@ diff --git a/services/network/cors/preflight_cache.h b/services/network/cors/pre diff --git a/services/network/cors/preflight_controller.cc b/services/network/cors/preflight_controller.cc --- a/services/network/cors/preflight_controller.cc +++ b/services/network/cors/preflight_controller.cc -@@ -762,6 +762,10 @@ void PreflightController::ClearCorsPreflightCache( +@@ -752,6 +752,10 @@ void PreflightController::ClearCorsPreflightCache( cache_.ClearCache(std::move(url_filter)); } diff --git a/build/patches/Client-hints-overrides.patch b/build/patches/Client-hints-overrides.patch index be0cb9e3..164a1641 100644 --- a/build/patches/Client-hints-overrides.patch +++ b/build/patches/Client-hints-overrides.patch @@ -44,7 +44,7 @@ diff --git a/components/embedder_support/user_agent_utils.cc b/components/embedd diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/client_hints/client_hints.cc --- a/content/browser/client_hints/client_hints.cc +++ b/content/browser/client_hints/client_hints.cc -@@ -57,6 +57,7 @@ +@@ -58,6 +58,7 @@ #include "third_party/blink/public/common/features.h" #include "third_party/blink/public/common/page/page_zoom.h" #include "third_party/blink/public/common/user_agent/user_agent_metadata.h" @@ -52,7 +52,7 @@ diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/clie #include "ui/display/display.h" #include "ui/display/screen.h" #include "url/origin.h" -@@ -705,7 +706,8 @@ void UpdateNavigationRequestClientUaHeadersImpl( +@@ -706,7 +707,8 @@ void UpdateNavigationRequestClientUaHeadersImpl( // value, disable them. This overwrites previous decision from UI. disable_due_to_custom_ua = !ua_metadata.has_value(); } @@ -62,7 +62,7 @@ diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/clie if (!disable_due_to_custom_ua) { if (!ua_metadata.has_value()) ua_metadata = delegate->GetUserAgentMetadata(); -@@ -897,10 +899,12 @@ void AddRequestClientHintsHeaders( +@@ -898,10 +900,12 @@ void AddRequestClientHintsHeaders( AddEctHeader(headers, network_quality_tracker, url); } @@ -79,7 +79,7 @@ diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/clie if (ShouldAddClientHint(data, WebClientHintsType::kPrefersColorScheme)) { AddPrefersColorSchemeHeader(headers, frame_tree_node); -@@ -988,6 +992,7 @@ ParseAndPersistAcceptCHForNavigation( +@@ -989,6 +993,7 @@ ParseAndPersistAcceptCHForNavigation( BrowserContext* context, ClientHintsControllerDelegate* delegate, FrameTreeNode* frame_tree_node) { @@ -90,7 +90,7 @@ diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/clie 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 -@@ -1737,6 +1737,11 @@ void NavigationURLLoaderImpl::OnAcceptCHFrameReceived( +@@ -1744,6 +1744,11 @@ void NavigationURLLoaderImpl::OnAcceptCHFrameReceived( return; } @@ -131,7 +131,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 -@@ -111,6 +111,7 @@ const size_t kMaxRestarts = 32; +@@ -113,6 +113,7 @@ const size_t kMaxRestarts = 32; // Returns true when Early Hints are allowed on the given protocol. bool EarlyHintsAreAllowedOn(HttpConnectionInfo connection_info) { @@ -234,7 +234,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 -@@ -227,6 +227,8 @@ bool ShouldSendClientHint(const network::PermissionsPolicy& policy, +@@ -231,6 +231,8 @@ bool ShouldSendClientHint(const network::PermissionsPolicy& policy, bool is_1p_origin, network::mojom::blink::WebClientHintsType type, const ClientHintsPreferences& hints_preferences) { @@ -243,7 +243,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( -@@ -630,7 +632,7 @@ void FrameFetchContext::AddClientHintsIfNecessary( +@@ -713,7 +715,7 @@ void FrameFetchContext::AddClientHintsIfNecessary( } // Only send User Agent hints if the info is available @@ -255,7 +255,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 -@@ -551,6 +551,11 @@ +@@ -569,6 +569,11 @@ name: "AriaNotifyV2", status: {"Android": "test", "Win": "test", "Mac": "test", "Linux": "test"}, }, @@ -267,7 +267,7 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 { name: "AriaRowColIndexText", status: "stable", -@@ -946,8 +951,7 @@ +@@ -976,8 +981,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 f09f32bd..fbce7cbc 100644 --- a/build/patches/Close-Sessions-On-Ip-Change.patch +++ b/build/patches/Close-Sessions-On-Ip-Change.patch @@ -22,7 +22,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/components/network_session_configurator/browser/network_session_configurator.cc b/components/network_session_configurator/browser/network_session_configurator.cc --- a/components/network_session_configurator/browser/network_session_configurator.cc +++ b/components/network_session_configurator/browser/network_session_configurator.cc -@@ -221,9 +221,8 @@ quic::QuicTagVector GetQuicClientConnectionOptions( +@@ -222,9 +222,8 @@ quic::QuicTagVector GetQuicClientConnectionOptions( bool ShouldQuicCloseSessionsOnIpChange( const VariationParameters& quic_trial_params) { @@ -34,7 +34,7 @@ diff --git a/components/network_session_configurator/browser/network_session_con } bool ShouldQuicGoAwaySessionsOnIpChange( -@@ -304,11 +303,8 @@ bool ShouldQuicEstimateInitialRtt( +@@ -305,11 +304,8 @@ bool ShouldQuicEstimateInitialRtt( bool ShouldQuicMigrateSessionsOnNetworkChangeV2( const VariationParameters& quic_trial_params) { @@ -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 -@@ -495,7 +495,7 @@ BASE_FEATURE(RelatedWebsitePartitionAPI, base::FEATURE_DISABLED_BY_DEFAULT); +@@ -509,7 +509,7 @@ BASE_FEATURE(kRelatedWebsitePartitionAPI, base::FEATURE_DISABLED_BY_DEFAULT); // NetworkChangeNotifier::AreNetworkHandlesSupported). #if BUILDFLAG(IS_ANDROID) inline constexpr auto kMigrateSessionsOnNetworkChangeV2Default = diff --git a/build/patches/Cromite-Branding--improve-settings-ui.patch b/build/patches/Cromite-Branding--improve-settings-ui.patch index 1da86001..f97bd304 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 -@@ -638,7 +638,7 @@ chrome_java_resources = [ +@@ -652,7 +652,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", diff --git a/build/patches/Cromite-Branding.patch b/build/patches/Cromite-Branding.patch index d639d58d..9ffcc847 100644 --- a/build/patches/Cromite-Branding.patch +++ b/build/patches/Cromite-Branding.patch @@ -9147,16 +9147,16 @@ diff --git a/chrome/android/java/res_chromium_base/values/channel_constants.xml 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 -@@ -454,8 +454,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -459,8 +459,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { && !isEmptyUrl(mParams.getUrl()) && UrlUtilities.isAcceptedScheme(mParams.getUrl())) { if (mMode == ContextMenuMode.NORMAL) { - linkGroup.add(createListItem(Item.OPEN_IN_NEW_TAB)); linkGroup.add(createListItem(Item.OPEN_IN_NEW_TAB_IN_GROUP)); + linkGroup.add(createListItem(Item.OPEN_IN_NEW_TAB)); - if (!mItemDelegate.isIncognito() && mItemDelegate.isIncognitoSupported()) { - linkGroup.add(createListItem(Item.OPEN_IN_INCOGNITO_TAB)); - } + if (!mItemDelegate.isIncognito() + && mItemDelegate.isIncognitoSupported() + && !shouldOpenIncognitoAsWindow()) { diff --git a/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenToast.java b/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenToast.java --- a/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenToast.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenToast.java @@ -9215,7 +9215,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/Br diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java -@@ -869,7 +869,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -875,7 +875,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { } return mBackButtonShouldCloseTabFn.apply(tab) ? ActionType.CLOSE_TAB @@ -13202,7 +13202,7 @@ e)fqMZZ`3a)Ds&5H CreateProfilePrefStoreManager( +@@ -289,10 +290,7 @@ std::unique_ptr CreateProfilePrefStoreManager( const base::FilePath& profile_path) { std::string seed; CHECK(ui::ResourceBundle::HasSharedInstance()); @@ -13415,7 +13415,7 @@ diff --git a/chrome/browser/resources/settings/settings_menu/settings_menu.html #menu { color: var(--google-grey-700); display: flex; -@@ -164,7 +176,7 @@ +@@ -176,7 +188,7 @@ @@ -13452,7 +13452,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 -@@ -2338,7 +2338,7 @@ Your Google account may have other forms of browsing history like searches and a +@@ -2344,7 +2344,7 @@ Your Google account may have other forms of browsing history like searches and a About Chrome @@ -13484,7 +13484,7 @@ 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) -@@ -198,7 +198,7 @@ inline constexpr char kChromeUIUntrustedNewTabPageUrl[] = +@@ -193,7 +193,7 @@ inline constexpr char kChromeUIUntrustedNewTabPageUrl[] = "chrome-untrusted://new-tab-page/"; // The URL for the Chromium project used in the About dialog. @@ -13508,7 +13508,7 @@ diff --git a/chrome/install_static/chromium_install_modes.cc b/chrome/install_st diff --git a/components/browser_ui/strings/android/browser_ui_strings.grd b/components/browser_ui/strings/android/browser_ui_strings.grd --- a/components/browser_ui/strings/android/browser_ui_strings.grd +++ b/components/browser_ui/strings/android/browser_ui_strings.grd -@@ -1008,7 +1008,7 @@ +@@ -1014,7 +1014,7 @@ @@ -18416,7 +18416,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 -@@ -1126,6 +1126,7 @@ bool AutocompleteController::ShouldRunProvider( +@@ -1136,6 +1136,7 @@ bool AutocompleteController::ShouldRunProvider( #if BUILDFLAG(IS_ANDROID) if (omnibox::IsAndroidHub(input_.current_page_classification())) { diff --git a/build/patches/Customize-selection-popup.patch b/build/patches/Customize-selection-popup.patch index 6ccd651c..bac42722 100644 --- a/build/patches/Customize-selection-popup.patch +++ b/build/patches/Customize-selection-popup.patch @@ -37,7 +37,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 -@@ -884,10 +884,17 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -915,10 +915,17 @@ public class ChromeTabbedActivity extends ChromeActivity { @TabLaunchType int type, @TabCreationState int creationState, boolean markedForSelection) { @@ -62,7 +62,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 -@@ -271,6 +271,14 @@ public class ActivityTabWebContentsDelegateAndroid extends TabWebContentsDelegat +@@ -249,6 +249,14 @@ public class ActivityTabWebContentsDelegateAndroid extends TabWebContentsDelegat // Skip opening a new Tab if it doesn't make sense. if (mTab.isClosing()) return false; @@ -77,13 +77,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/tab_activit WindowAndroid window = mTab.getWindowAndroid(); boolean openingPopup = window != null -@@ -301,7 +309,7 @@ public class ActivityTabWebContentsDelegateAndroid extends TabWebContentsDelegat +@@ -279,7 +287,7 @@ public class ActivityTabWebContentsDelegateAndroid extends TabWebContentsDelegat mTab, /* shouldPin= */ false, webContents, - TabLaunchType.FROM_LONGPRESS_FOREGROUND, + tabLaunchType, - url, + targetUrl, !openingPopup && !willReparentTab); if (tab == null) return false; diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java @@ -114,7 +114,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/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 -@@ -386,8 +386,13 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { +@@ -390,8 +390,13 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { public void onOpenImageInNewTab(GURL url, @Nullable Referrer referrer) { LoadUrlParams loadUrlParams = new LoadUrlParams(url.getSpec()); loadUrlParams.setReferrer(referrer); @@ -140,7 +140,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi import org.chromium.base.TraceEvent; import org.chromium.base.lifetime.Destroyable; import org.chromium.base.metrics.RecordUserAction; -@@ -842,11 +843,16 @@ public class RootUiCoordinator +@@ -910,11 +911,16 @@ public class RootUiCoordinator TrackerFactory.getTrackerForProfile(tab.getProfile()) .notifyEvent(EventConstants.WEB_SEARCH_PERFORMED); @@ -200,7 +200,7 @@ new file mode 100644 diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml --- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml +++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml -@@ -79,4 +79,28 @@ found in the LICENSE file. +@@ -74,4 +74,28 @@ found in the LICENSE file. android:key="disable_toolbar_swipeup" android:title="@string/disable_toolbar_swipe_up" /> @@ -232,7 +232,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/selection/SelectActionMenuHelper.java b/content/public/android/java/src/org/chromium/content/browser/selection/SelectActionMenuHelper.java --- a/content/public/android/java/src/org/chromium/content/browser/selection/SelectActionMenuHelper.java +++ b/content/public/android/java/src/org/chromium/content/browser/selection/SelectActionMenuHelper.java -@@ -27,6 +27,7 @@ import androidx.core.content.ContextCompat; +@@ -26,6 +26,7 @@ import androidx.core.content.ContextCompat; import org.chromium.base.ApiCompatibilityUtils; import org.chromium.base.ContextUtils; import org.chromium.base.Log; @@ -240,7 +240,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select import org.chromium.base.PackageManagerUtils; import org.chromium.base.StrictModeContext; import org.chromium.build.annotations.NullMarked; -@@ -54,38 +55,84 @@ import java.util.TreeSet; +@@ -53,38 +54,84 @@ import java.util.TreeSet; public class SelectActionMenuHelper { private static final String TAG = "SelectActionMenu"; // 20 char limit. @@ -355,16 +355,16 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select } @Retention(RetentionPolicy.SOURCE) -@@ -200,7 +247,7 @@ public class SelectActionMenuHelper { +@@ -201,7 +248,7 @@ public class SelectActionMenuHelper { } SelectionMenuGroup primaryAssistGroup = new SelectionMenuGroup( - R.id.select_action_menu_assist_items, GroupItemOrder.ASSIST_ITEMS); + R.id.select_action_menu_assist_items, GroupItemOrderChromium.ASSIST_ITEMS()); - View.OnClickListener clickListener = null; - if (classificationResult.onClickListener != null) { - clickListener = classificationResult.onClickListener; -@@ -227,7 +274,7 @@ public class SelectActionMenuHelper { + RemoteAction primaryAction = classificationResult.textClassification.getActions().get(0); + primaryAssistGroup.addItem( + new SelectionMenuItem.Builder(primaryAction.getTitle()) +@@ -225,7 +272,7 @@ public class SelectActionMenuHelper { String selectedText) { SelectionMenuGroup defaultGroup = new SelectionMenuGroup( @@ -373,7 +373,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select List menuItemBuilders = new ArrayList<>(); menuItemBuilders.add(cut(delegate.canCut())); menuItemBuilders.add(copy(delegate.canCopy())); -@@ -255,7 +302,7 @@ public class SelectActionMenuHelper { +@@ -252,7 +299,7 @@ public class SelectActionMenuHelper { // menu items if there is selected text. @IdRes int groupId = selectedText.isEmpty() ? Menu.NONE : android.R.id.textAssist; SelectionMenuGroup secondaryAssistItems = @@ -382,7 +382,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select if (selectedText.isEmpty() && selectionActionMenuDelegate != null) { List additionalMenuItems = -@@ -317,7 +364,7 @@ public class SelectActionMenuHelper { +@@ -311,7 +358,7 @@ public class SelectActionMenuHelper { SelectionMenuGroup textProcessingItems = new SelectionMenuGroup( R.id.select_action_menu_text_processing_items, @@ -391,7 +391,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select if (isSelectionPassword || intentHandler == null) { addAdditionalTextProcessingItems(textProcessingItems, selectionActionMenuDelegate); return textProcessingItems; -@@ -419,7 +466,7 @@ public class SelectActionMenuHelper { +@@ -420,7 +467,7 @@ public class SelectActionMenuHelper { .setId(R.id.select_action_menu_cut) .setIconAttr(android.R.attr.actionModeCutDrawable) .setAlphabeticShortcut(ItemKeyShortcuts.CUT) @@ -400,7 +400,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select .setShowAsActionFlags( MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT) .setIsEnabled(isEnabled) -@@ -431,7 +478,7 @@ public class SelectActionMenuHelper { +@@ -432,7 +479,7 @@ public class SelectActionMenuHelper { .setId(R.id.select_action_menu_copy) .setIconAttr(android.R.attr.actionModeCopyDrawable) .setAlphabeticShortcut(ItemKeyShortcuts.COPY) @@ -409,7 +409,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select .setShowAsActionFlags( MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT) .setIsEnabled(isEnabled) -@@ -443,7 +490,7 @@ public class SelectActionMenuHelper { +@@ -444,7 +491,7 @@ public class SelectActionMenuHelper { .setId(R.id.select_action_menu_paste) .setIconAttr(android.R.attr.actionModePasteDrawable) .setAlphabeticShortcut(ItemKeyShortcuts.PASTE) @@ -418,7 +418,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select .setShowAsActionFlags( MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT) .setIsEnabled(isEnabled) -@@ -457,7 +504,7 @@ public class SelectActionMenuHelper { +@@ -458,7 +505,7 @@ public class SelectActionMenuHelper { return new SelectionMenuItem.Builder(context.getString(R.string.actionbar_share)) .setId(R.id.select_action_menu_share) .setIconAttr(android.R.attr.actionModeShareDrawable) @@ -427,7 +427,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select .setShowAsActionFlags( MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT) .setIsEnabled(isEnabled) -@@ -469,7 +516,7 @@ public class SelectActionMenuHelper { +@@ -470,7 +517,7 @@ public class SelectActionMenuHelper { .setId(R.id.select_action_menu_select_all) .setIconAttr(android.R.attr.actionModeSelectAllDrawable) .setAlphabeticShortcut(ItemKeyShortcuts.SELECT_ALL) @@ -436,7 +436,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select .setShowAsActionFlags( MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT) .setIsEnabled(isEnabled) -@@ -481,7 +528,7 @@ public class SelectActionMenuHelper { +@@ -482,7 +529,7 @@ public class SelectActionMenuHelper { SelectionMenuItem.Builder builder = new SelectionMenuItem.Builder(android.R.string.paste_as_plain_text) .setId(R.id.select_action_menu_paste_as_plain_text) @@ -445,7 +445,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select .setShowAsActionFlags( MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT) .setIsEnabled(isEnabled); -@@ -501,7 +548,7 @@ public class SelectActionMenuHelper { +@@ -502,7 +549,7 @@ public class SelectActionMenuHelper { return new SelectionMenuItem.Builder(context.getString(R.string.actionbar_web_search)) .setId(R.id.select_action_menu_web_search) .setIconAttr(android.R.attr.actionModeWebSearchDrawable) diff --git a/build/patches/Dictionary-suggestions-for-the-Omnibox.patch b/build/patches/Dictionary-suggestions-for-the-Omnibox.patch index ba5f0bf3..1dfde8d4 100644 --- a/build/patches/Dictionary-suggestions-for-the-Omnibox.patch +++ b/build/patches/Dictionary-suggestions-for-the-Omnibox.patch @@ -28,7 +28,7 @@ diff --git a/chrome/android/java/res/layout/url_bar.xml b/chrome/android/java/re diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java -@@ -322,8 +322,17 @@ class LocationBarMediator +@@ -331,8 +331,17 @@ class LocationBarMediator if (!mUrlFocusedWithPastedText && !shouldRetainOmniboxOnFocus && mLocationBarLayout.shouldClearTextOnFocus()) { @@ -48,7 +48,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow } else if (shouldRetainOmniboxOnFocus) { mUrlCoordinator.setSelectAllOnFocus(true); } -@@ -1642,7 +1651,6 @@ class LocationBarMediator +@@ -1666,7 +1675,6 @@ class LocationBarMediator mUrlCoordinator.setKeyboardVisibility(true, false); } @@ -67,7 +67,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import android.os.SystemClock; import android.text.Editable; import android.text.InputType; -@@ -115,6 +116,7 @@ public class UrlBar extends AutocompleteEditText { +@@ -114,6 +115,7 @@ public class UrlBar extends AutocompleteEditText { private boolean mAllowFocus = true; private boolean mShouldSendTypingStartedEvent; @@ -75,7 +75,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow private boolean mPendingScroll; private boolean mIsInCct; -@@ -339,6 +341,28 @@ public class UrlBar extends AutocompleteEditText { +@@ -345,6 +347,28 @@ public class UrlBar extends AutocompleteEditText { fixupTextDirection(); mShouldSendTypingStartedEvent = focused; diff --git a/build/patches/Disable-Accessibility-service-by-default.patch b/build/patches/Disable-Accessibility-service-by-default.patch index a0904552..12a92816 100644 --- a/build/patches/Disable-Accessibility-service-by-default.patch +++ b/build/patches/Disable-Accessibility-service-by-default.patch @@ -27,22 +27,22 @@ new file mode 100644 diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml --- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml +++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml -@@ -8,6 +8,11 @@ found in the LICENSE file. - +@@ -11,6 +11,11 @@ found in the LICENSE file. + android:key="zoom_info" + android:title="@string/zoom_info_preference_title"/> + + - + () { @@ -54,10 +54,10 @@ diff --git a/chrome/browser/enterprise/util/android/java/src/org/chromium/chrome diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn --- a/chrome/browser/flags/BUILD.gn +++ b/chrome/browser/flags/BUILD.gn -@@ -26,6 +26,7 @@ android_library("java") { - "//build:chromeos_buildflags", +@@ -28,6 +28,7 @@ android_library("java") { "//build/android:build_java", "//chrome/browser/preferences:java", + "//content/public/android:content_main_dex_java", + "//components/policy/android:policy_java", "//third_party/android_deps:guava_android_java", "//third_party/androidx:androidx_annotation_annotation_java", diff --git a/build/patches/Disable-CSS-blink-feature-support.patch b/build/patches/Disable-CSS-blink-feature-support.patch index 7062263c..29c20441 100644 --- a/build/patches/Disable-CSS-blink-feature-support.patch +++ b/build/patches/Disable-CSS-blink-feature-support.patch @@ -16,7 +16,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/css/parser/css_supports_parser.cc b/third_party/blink/renderer/core/css/parser/css_supports_parser.cc --- a/third_party/blink/renderer/core/css/parser/css_supports_parser.cc +++ b/third_party/blink/renderer/core/css/parser/css_supports_parser.cc -@@ -400,7 +400,7 @@ bool CSSSupportsParser::ConsumeBlinkFeatureFn(CSSParserTokenStream& stream) { +@@ -403,7 +403,7 @@ bool CSSSupportsParser::ConsumeBlinkFeatureFn(CSSParserTokenStream& stream) { feature_name.Value().Utf8()) && guard.Release()) { stream.ConsumeWhitespace(); @@ -28,7 +28,7 @@ diff --git a/third_party/blink/renderer/core/css/parser/css_supports_parser.cc b diff --git a/third_party/blink/renderer/core/speculation_rules/document_rule_predicate.cc b/third_party/blink/renderer/core/speculation_rules/document_rule_predicate.cc --- a/third_party/blink/renderer/core/speculation_rules/document_rule_predicate.cc +++ b/third_party/blink/renderer/core/speculation_rules/document_rule_predicate.cc -@@ -578,7 +578,7 @@ DocumentRulePredicate* DocumentRulePredicate::Parse( +@@ -520,7 +520,7 @@ DocumentRulePredicate* DocumentRulePredicate::Parse( HeapVector arena; CSSPropertyValueSet* empty_properties = ImmutableCSSPropertyValueSet::Create(base::span(), diff --git a/build/patches/Disable-CSSDynamicRangeLimit.patch b/build/patches/Disable-CSSDynamicRangeLimit.patch index 265d149e..5200fda9 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 -@@ -1306,7 +1306,7 @@ +@@ -1326,7 +1326,7 @@ }, { name: "CSSDynamicRangeLimit", diff --git a/build/patches/Disable-Compose-feature.patch b/build/patches/Disable-Compose-feature.patch index 66691331..257c473b 100644 --- a/build/patches/Disable-Compose-feature.patch +++ b/build/patches/Disable-Compose-feature.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/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -8468,6 +8468,12 @@ static_library("browser") { +@@ -8435,6 +8435,12 @@ static_library("browser") { deps += [ "//components/segmentation_platform/internal:optimization_guide_segmentation_handler" ] } @@ -26,7 +26,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn if (enable_compose) { sources += [ "compose/chrome_compose_client.cc", -@@ -8483,7 +8489,6 @@ static_library("browser") { +@@ -8450,7 +8456,6 @@ static_library("browser") { ] deps += [ @@ -34,7 +34,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "//chrome/common/compose", "//chrome/common/compose:mojo_bindings", "//components/autofill/content/browser", -@@ -8943,7 +8948,7 @@ source_set("font_pref") { +@@ -8870,7 +8875,7 @@ source_set("font_pref") { deps = [ "//chrome/common" ] } @@ -46,7 +46,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn 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 -@@ -352,7 +352,7 @@ SettingsUI::SettingsUI(content::WebUI* web_ui) +@@ -351,7 +351,7 @@ SettingsUI::SettingsUI(content::WebUI* web_ui) base::FeatureList::IsEnabled(features::kLinkedServicesSetting)); #if BUILDFLAG(ENABLE_COMPOSE) @@ -58,9 +58,9 @@ diff --git a/chrome/browser/ui/webui/settings/settings_ui.cc b/chrome/browser/ui diff --git a/components/compose/core/browser/compose_features.cc b/components/compose/core/browser/compose_features.cc --- a/components/compose/core/browser/compose_features.cc +++ b/components/compose/core/browser/compose_features.cc -@@ -104,4 +104,6 @@ BASE_FEATURE(kComposeUpfrontInputModes, - "ComposeUpfrontInputModes", - base::FEATURE_ENABLED_BY_DEFAULT); +@@ -73,4 +73,6 @@ BASE_FEATURE(kComposeAllowOnDeviceExecution, base::FEATURE_DISABLED_BY_DEFAULT); + + BASE_FEATURE(kComposeUpfrontInputModes, base::FEATURE_ENABLED_BY_DEFAULT); +SET_CROMITE_FEATURE_DISABLED(kEnableCompose); +SET_CROMITE_FEATURE_DISABLED(kComposeEligible); diff --git a/build/patches/Disable-FedCm.patch b/build/patches/Disable-FedCm.patch index c320c9e0..a30e4f06 100644 --- a/build/patches/Disable-FedCm.patch +++ b/build/patches/Disable-FedCm.patch @@ -39,7 +39,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 -@@ -2108,7 +2108,7 @@ +@@ -2137,7 +2137,7 @@ { name: "FedCm", public: true, diff --git a/build/patches/Disable-GSA-by-default.patch b/build/patches/Disable-GSA-by-default.patch index bc7ddadc..85071dd9 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 | 6 ---- + .../chrome/browser/IntentHandler.java | 7 ---- .../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(+), 65 deletions(-) + 7 files changed, 12 insertions(+), 66 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,25 +36,33 @@ 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; -@@ -297,9 +296,6 @@ public class IntentHandler { - - public static final String EXTRA_CCT_EARLY_NAV = "org.chromium.chrome.browser.cct_early_nav"; +@@ -303,9 +302,6 @@ public class IntentHandler { + public static final String EXTRA_TIPS_NOTIFICATION_FEATURE_TYPE = + "org.chromium.chrome.browser.tips_notification_feature_type"; - /** The package name for the Google Search App. */ - public static final String PACKAGE_GSA = GSAUtils.GSA_PACKAGE_NAME; +- + /** Action to launch the Chrome Item Picker UI, e.g.: tabs. */ + public static final String EXTRA_OPEN_CHROME_ITEM_PICKER = + "org.chromium.chrome.browser.actions.open_chrome_item_picker"; +@@ -313,7 +309,6 @@ public class IntentHandler { + /** 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"; - private static @Nullable Pair sPendingReferrer; private static int sReferrerId; private static @Nullable String sPendingIncognitoUrl; -@@ -592,8 +588,6 @@ public class IntentHandler { +@@ -566,8 +561,6 @@ public class IntentHandler { return ExternalAppId.LINE; - } else if (packageName.equals(PACKAGE_WHATSAPP)) { + } else if (PACKAGE_WHATSAPP.equals(packageName)) { return ExternalAppId.WHATSAPP; -- } else if (packageName.equals(PACKAGE_GSA)) { +- } else if (PACKAGE_GSA.equals(packageName)) { - return ExternalAppId.GSA; - } else if (packageName.equals(ContextUtils.getApplicationContext().getPackageName())) { + } else if (ContextUtils.getApplicationContext().getPackageName().equals(packageName)) { return ExternalAppId.CHROME; - } else if (packageName.startsWith(WEBAPK_PACKAGE_PREFIX)) { + } else if (assumeNonNull(packageName).startsWith(WEBAPK_PACKAGE_PREFIX)) { diff --git a/chrome/android/java/src/org/chromium/chrome/browser/share/LensUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/share/LensUtils.java --- a/chrome/android/java/src/org/chromium/chrome/browser/share/LensUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/share/LensUtils.java diff --git a/build/patches/Disable-GetInstalledRelatedApps-API.patch b/build/patches/Disable-GetInstalledRelatedApps-API.patch index 14388168..3ae1d8fe 100644 --- a/build/patches/Disable-GetInstalledRelatedApps-API.patch +++ b/build/patches/Disable-GetInstalledRelatedApps-API.patch @@ -58,7 +58,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -2834,9 +2834,8 @@ +@@ -2879,9 +2879,8 @@ status: "stable", }, { diff --git a/build/patches/Disable-PrivacyGuide.patch b/build/patches/Disable-PrivacyGuide.patch index dff42339..816a1081 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 -@@ -326,8 +326,7 @@ SettingsUI::SettingsUI(content::WebUI* web_ui) +@@ -325,8 +325,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 2ebee6e5..c1472be3 100644 --- a/build/patches/Disable-Real-Box.patch +++ b/build/patches/Disable-Real-Box.patch @@ -4,16 +4,16 @@ Subject: Disable Real Box Real-box is search box in ntp --- - chrome/browser/prefs/browser_prefs.cc | 2 +- - chrome/browser/resources/new_tab_page/app.html | 11 ----------- - .../browser/ui/webui/searchbox/searchbox_handler.cc | 1 + - components/search/ntp_features.cc | 6 +++--- - 4 files changed, 5 insertions(+), 15 deletions(-) + chrome/browser/prefs/browser_prefs.cc | 2 +- + chrome/browser/resources/new_tab_page/app.html | 16 ---------------- + .../ui/webui/searchbox/searchbox_handler.cc | 1 + + components/search/ntp_features.cc | 4 ++-- + 4 files changed, 4 insertions(+), 19 deletions(-) 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 -@@ -2359,7 +2359,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -2417,7 +2417,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, registry->RegisterBooleanPref( prefs::kLensRegionSearchEnabled, true, user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); @@ -25,56 +25,59 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse diff --git a/chrome/browser/resources/new_tab_page/app.html b/chrome/browser/resources/new_tab_page/app.html --- a/chrome/browser/resources/new_tab_page/app.html +++ b/chrome/browser/resources/new_tab_page/app.html -@@ -21,17 +21,6 @@ import {nothing} from '//resources/lit/v3_0/lit.rollup.js'; - .theme="${this.theme_}" ?hidden="${!this.logoEnabled_}"> - +@@ -39,22 +39,6 @@ import {nothing} from '//resources/lit/v3_0/lit.rollup.js'; + @click="${this.showComposebox_ && this.composeboxCloseByClickOutside_ ? this.onComposeboxClickOutside_ : nothing}"> + ` : ''}
- +- ?composebox-enabled="${this.composeboxEnabled}" +- realbox-layout-mode="${this.realboxLayoutMode_}" +- ?ntp-realbox-next-enabled="${this.ntpRealboxNextEnabled_}" +- ?cycling-placeholders="${this.searchboxCyclingPlaceholders_}" +- @dropdown-visible-changed="${this.onDropdownVisibleChanged_}"> - ${this.showComposebox_ ? html` - - + AddBoolean("isTopChromeSearchbox", false); diff --git a/components/search/ntp_features.cc b/components/search/ntp_features.cc --- a/components/search/ntp_features.cc +++ b/components/search/ntp_features.cc -@@ -127,7 +127,7 @@ BASE_FEATURE(kNtpDriveModuleShowSixFiles, +@@ -106,7 +106,7 @@ BASE_FEATURE(kNtpDriveModuleShowSixFiles, base::FEATURE_ENABLED_BY_DEFAULT); // If enabled, logo will be shown. // This is a kill switch. Keep indefinitely. --BASE_FEATURE(kNtpLogo, "NtpLogo", base::FEATURE_ENABLED_BY_DEFAULT); -+BASE_FEATURE(kNtpLogo, "NtpLogo", base::FEATURE_DISABLED_BY_DEFAULT); +-BASE_FEATURE(kNtpLogo, base::FEATURE_ENABLED_BY_DEFAULT); ++BASE_FEATURE(kNtpLogo, base::FEATURE_DISABLED_BY_DEFAULT); // If enabled, middle slot promo will be shown. // This is a kill switch. Keep indefinitely. -@@ -186,8 +186,8 @@ BASE_FEATURE(kNtpModuleSignInRequirement, +@@ -148,7 +148,7 @@ BASE_FEATURE(kNtpModuleSignInRequirement, base::FEATURE_ENABLED_BY_DEFAULT); + // If enabled, OneGoogleBar will be shown. // This is a kill switch. Keep indefinitely. - BASE_FEATURE(kNtpOneGoogleBar, -- "NtpOneGoogleBar", -- base::FEATURE_ENABLED_BY_DEFAULT); -+ "NtpOneGoogleBar", // disabled -+ base::FEATURE_DISABLED_BY_DEFAULT); // by default +-BASE_FEATURE(kNtpOneGoogleBar, base::FEATURE_ENABLED_BY_DEFAULT); ++BASE_FEATURE(kNtpOneGoogleBar, base::FEATURE_DISABLED_BY_DEFAULT); // If enabled, outlook calendar module will be shown. - BASE_FEATURE(kNtpOutlookCalendarModule, + BASE_FEATURE(kNtpOutlookCalendarModule, base::FEATURE_ENABLED_BY_DEFAULT); -- diff --git a/build/patches/Disable-TLS-resumption.patch b/build/patches/Disable-TLS-resumption.patch index 2044f23e..c0e4e384 100644 --- a/build/patches/Disable-TLS-resumption.patch +++ b/build/patches/Disable-TLS-resumption.patch @@ -79,7 +79,7 @@ new file mode 100644 diff --git a/net/http/http_network_session.cc b/net/http/http_network_session.cc --- a/net/http/http_network_session.cc +++ b/net/http/http_network_session.cc -@@ -222,6 +222,7 @@ HttpNetworkSession::HttpNetworkSession(const HttpNetworkSessionParams& params, +@@ -218,6 +218,7 @@ HttpNetworkSession::HttpNetworkSession(const HttpNetworkSessionParams& params, next_protos_.push_back(NextProto::kProtoHTTP11); @@ -98,7 +98,7 @@ diff --git a/net/quic/quic_session_pool.cc b/net/quic/quic_session_pool.cc #include "url/gurl.h" #include "url/scheme_host_port.h" #include "url/url_constants.h" -@@ -377,6 +378,38 @@ base::TimeDelta GetAdditionalDelayForMainJob() { +@@ -378,6 +379,38 @@ base::TimeDelta GetAdditionalDelayForMainJob() { } // namespace @@ -137,9 +137,9 @@ diff --git a/net/quic/quic_session_pool.cc b/net/quic/quic_session_pool.cc QuicSessionRequest::QuicSessionRequest(QuicSessionPool* pool) : pool_(pool) {} QuicSessionRequest::~QuicSessionRequest() { -@@ -2387,7 +2420,7 @@ QuicSessionPool::CreateCryptoConfigHandle(QuicCryptoClientConfigKey key) { +@@ -2404,7 +2437,7 @@ QuicSessionPool::CreateCryptoConfigHandle(QuicCryptoClientConfigKey key) { cert_verifier_, transport_security_state_, sct_auditing_delegate_, - HostsFromOrigins(params_.origins_to_force_quic_on), + std::move(hostnames_to_allow_unknown_roots), key.network_anonymization_key), - std::make_unique(), this); + std::make_unique(), this); @@ -183,7 +183,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket Disconnect(); } -@@ -703,6 +729,8 @@ int SSLClientSocketImpl::Init() { +@@ -709,6 +735,8 @@ int SSLClientSocketImpl::Init() { } if (session) SSL_set_session(ssl_.get(), session.get()); @@ -192,7 +192,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket } transport_adapter_ = std::make_unique( -@@ -972,6 +1000,35 @@ int SSLClientSocketImpl::DoHandshakeComplete(int result) { +@@ -986,6 +1014,35 @@ int SSLClientSocketImpl::DoHandshakeComplete(int result) { : SSLHandshakeDetails::kTLS13Full; } } @@ -228,7 +228,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket UMA_HISTOGRAM_ENUMERATION("Net.SSLHandshakeDetails", details); // Measure TLS connections that implement the renegotiation_info and EMS -@@ -1611,6 +1668,8 @@ bool SSLClientSocketImpl::IsRenegotiationAllowed() const { +@@ -1625,6 +1682,8 @@ bool SSLClientSocketImpl::IsRenegotiationAllowed() const { } bool SSLClientSocketImpl::IsCachingEnabled() const { diff --git a/build/patches/Disable-Viewport-Segments.patch b/build/patches/Disable-Viewport-Segments.patch index d035edfa..542946e3 100644 --- a/build/patches/Disable-Viewport-Segments.patch +++ b/build/patches/Disable-Viewport-Segments.patch @@ -21,7 +21,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -5325,8 +5325,7 @@ +@@ -5469,8 +5469,7 @@ status: "stable", }, { diff --git a/build/patches/Disable-WebGPU.patch b/build/patches/Disable-WebGPU.patch index d7aac22e..37a10729 100644 --- a/build/patches/Disable-WebGPU.patch +++ b/build/patches/Disable-WebGPU.patch @@ -24,7 +24,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc --- a/gpu/config/gpu_finch_features.cc +++ b/gpu/config/gpu_finch_features.cc -@@ -199,7 +199,7 @@ BASE_FEATURE(EnableDrDc, +@@ -196,7 +196,7 @@ BASE_FEATURE(kEnableDrDc, // enabled by default on supported platforms. #if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS) || \ BUILDFLAG(IS_ANDROID) diff --git a/build/patches/Disable-all-predictors-code.patch b/build/patches/Disable-all-predictors-code.patch index 90a49c18..aa8974ac 100644 --- a/build/patches/Disable-all-predictors-code.patch +++ b/build/patches/Disable-all-predictors-code.patch @@ -5,74 +5,74 @@ Subject: Disable all predictors code Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - chrome/browser/BUILD.gn | 4 +--- - .../background_download_service_factory.cc | 2 +- - .../preloading_model_keyed_service.cc | 3 +++ - .../preloading_model_keyed_service_factory.cc | 4 +--- - .../optimization_guide/chrome_hints_manager.cc | 1 + - .../model_validator_keyed_service.cc | 6 +++++- - .../optimization_guide_keyed_service.cc | 1 - - chrome/browser/permissions/BUILD.gn | 2 -- - .../permissions/chrome_permissions_client.cc | 2 -- - .../passage_embedder_delegate.cc | 2 ++ - .../prediction_model_handler_provider.cc | 9 ++++++--- - .../prediction_model_handler_provider.h | 2 ++ - .../predictors/autocomplete_action_predictor.cc | 2 ++ - .../predictors/loading_predictor_config.cc | 4 ++-- - chrome/browser/predictors/predictors_features.cc | 3 +-- - .../search_prefetch/field_trial_settings.cc | 4 ++++ - .../search_prefetch_url_loader_interceptor.cc | 1 + - .../chrome_browser_main_extra_parts_profiles.cc | 1 - - chrome/browser/safe_browsing/BUILD.gn | 1 - - ...fication_content_detection_service_factory.cc | 6 ++++++ - .../preloading/AndroidPrerenderManager.java | 1 + - .../ui/autofill/chrome_autofill_client.cc | 15 --------------- - chrome/browser/ui/tab_helpers.cc | 1 - - .../autofill_ml_internals_page_handler.cc | 2 ++ - .../autofill_ml_internals_page_handler.h | 3 +++ - .../autofill_ml_internals_ui.cc | 3 +++ - .../read_anything/read_aloud_app_model.cc | 16 ++++++++++++++-- - .../read_anything/read_aloud_app_model.h | 9 ++++++++- - .../read_anything_app_controller.cc | 10 ++++++++++ - .../read_anything/read_anything_app_controller.h | 4 ++++ - chrome/utility/BUILD.gn | 2 +- - chrome/utility/services.cc | 8 -------- - components/BUILD.gn | 2 +- - .../core/browser/foundations/autofill_manager.cc | 2 ++ - .../core/browser/foundations/autofill_manager.h | 3 +++ - .../autofill_optimization_guide_decider.cc | 5 +++-- - .../field_classification_model_handler.cc | 12 ++++++++---- - .../field_classification_model_handler.h | 10 ++++++++-- - .../browser/aim_eligibility_service_features.cc | 1 + - .../omnibox/browser/autocomplete_controller.cc | 4 ++++ - .../omnibox/browser/base_search_provider.cc | 4 ++-- - .../prediction_model_download_manager.cc | 6 ++++-- - .../delivery/prediction_model_fetcher_impl.cc | 1 + - .../core/hints/hints_fetcher.cc | 1 + - .../core/hints/hints_manager.cc | 2 ++ - .../core/optimization_guide_features.cc | 12 ++++++------ - components/optimization_guide/features.gni | 3 +-- - .../core/page_content_annotations_features.cc | 4 ++++ - .../page_content_annotations_model_manager.cc | 1 + - .../notification_content_detection/BUILD.gn | 7 +++++++ - .../service_worker_main_resource_loader.cc | 1 + - .../Disable-all-predictors-code.inc | 2 ++ - .../Disable-all-predictors-code.inc | 1 + - .../Disable-all-predictors-code.inc | 1 + - .../features_cc/Disable-all-predictors-code.inc | 3 +++ - .../features_cc/Disable-all-predictors-code.inc | 1 + - .../features_cc/Disable-all-predictors-code.inc | 1 + - .../features_cc/Disable-all-predictors-code.inc | 2 ++ - services/on_device_model/ml/BUILD.gn | 2 +- - services/on_device_model/ml/ts_model.cc | 4 ++-- - services/on_device_model/safety/BUILD.gn | 2 +- - services/webnn/BUILD.gn | 2 +- - services/webnn/features.gni | 2 +- - services/webnn/webnn_context_provider_impl.cc | 16 +--------------- - .../core/html/parser/html_document_parser.cc | 1 + - .../document_speculation_rules.cc | 1 + - .../platform/runtime_enabled_features.json5 | 2 +- - 67 files changed, 165 insertions(+), 93 deletions(-) + chrome/browser/BUILD.gn | 4 +--- + .../background_download_service_factory.cc | 2 +- + .../preloading_model_keyed_service.cc | 3 +++ + .../preloading_model_keyed_service_factory.cc | 4 +--- + .../optimization_guide/chrome_hints_manager.cc | 1 + + .../model_validator_keyed_service.cc | 6 +++++- + .../optimization_guide_keyed_service.cc | 1 - + chrome/browser/permissions/BUILD.gn | 2 -- + .../permissions/chrome_permissions_client.cc | 2 -- + .../passage_embedder_delegate.cc | 2 ++ + .../prediction_model_handler_provider.cc | 9 ++++++--- + .../prediction_model_handler_provider.h | 2 ++ + .../predictors/autocomplete_action_predictor.cc | 2 ++ + .../predictors/loading_predictor_config.cc | 4 ++-- + .../browser/predictors/predictors_features.cc | 3 +-- + .../search_prefetch/field_trial_settings.cc | 4 ++++ + .../search_prefetch_url_loader_interceptor.cc | 1 + + .../chrome_browser_main_extra_parts_profiles.cc | 1 - + chrome/browser/safe_browsing/BUILD.gn | 1 - + ...ication_content_detection_service_factory.cc | 6 ++++++ + .../preloading/AndroidPrerenderManager.java | 1 + + .../ui/autofill/chrome_autofill_client.cc | 15 --------------- + chrome/browser/ui/tab_helpers.cc | 1 - + .../autofill_ml_internals_page_handler.cc | 2 ++ + .../autofill_ml_internals_page_handler.h | 3 +++ + .../autofill_ml_internals_ui.cc | 3 +++ + .../read_anything/read_aloud_app_model.cc | 16 ++++++++++++++-- + .../read_anything/read_aloud_app_model.h | 9 ++++++++- + .../read_anything_app_controller.cc | 10 ++++++++++ + .../read_anything_app_controller.h | 4 ++++ + chrome/utility/BUILD.gn | 2 +- + chrome/utility/services.cc | 8 -------- + components/BUILD.gn | 2 +- + .../browser/foundations/autofill_manager.cc | 2 ++ + .../core/browser/foundations/autofill_manager.h | 3 +++ + .../autofill_optimization_guide_decider.cc | 5 +++-- + .../field_classification_model_handler.cc | 12 ++++++++---- + .../field_classification_model_handler.h | 10 ++++++++-- + .../browser/aim_eligibility_service_features.cc | 1 + + .../omnibox/browser/autocomplete_controller.cc | 4 ++++ + .../omnibox/browser/base_search_provider.cc | 4 ++-- + .../prediction_model_download_manager.cc | 6 ++++-- + .../delivery/prediction_model_fetcher_impl.cc | 1 + + .../core/hints/hints_fetcher.cc | 1 + + .../core/hints/hints_manager.cc | 2 ++ + .../core/optimization_guide_features.cc | 12 ++++++------ + components/optimization_guide/features.gni | 3 +-- + .../core/page_content_annotations_features.cc | 4 ++++ + .../page_content_annotations_model_manager.cc | 1 + + .../notification_content_detection/BUILD.gn | 7 +++++++ + .../service_worker_main_resource_loader.cc | 1 + + .../Disable-all-predictors-code.inc | 2 ++ + .../Disable-all-predictors-code.inc | 1 + + .../Disable-all-predictors-code.inc | 1 + + .../features_cc/Disable-all-predictors-code.inc | 3 +++ + .../features_cc/Disable-all-predictors-code.inc | 1 + + .../features_cc/Disable-all-predictors-code.inc | 1 + + .../features_cc/Disable-all-predictors-code.inc | 2 ++ + services/on_device_model/ml/BUILD.gn | 2 +- + services/on_device_model/ml/ts_model.cc | 4 ++-- + services/on_device_model/safety/BUILD.gn | 2 +- + services/webnn/BUILD.gn | 2 +- + services/webnn/features.gni | 2 +- + services/webnn/webnn_context_provider_impl.cc | 17 +---------------- + .../core/html/parser/html_document_parser.cc | 1 + + .../document_speculation_rules.cc | 1 + + .../platform/runtime_enabled_features.json5 | 2 +- + 67 files changed, 165 insertions(+), 94 deletions(-) create mode 100644 cromite_flags/chrome/browser/browser_features_cc/Disable-all-predictors-code.inc create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-all-predictors-code.inc create mode 100644 cromite_flags/chrome/common/chrome_features_cc/Disable-all-predictors-code.inc @@ -84,7 +84,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 -@@ -793,8 +793,6 @@ static_library("browser") { +@@ -760,8 +760,6 @@ static_library("browser") { "navigation_predictor/navigation_predictor_keyed_service_factory.h", "navigation_predictor/navigation_predictor_metrics_document_data.cc", "navigation_predictor/navigation_predictor_metrics_document_data.h", @@ -93,7 +93,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "navigation_predictor/preloading_model_keyed_service.cc", "navigation_predictor/preloading_model_keyed_service.h", "navigation_predictor/preloading_model_keyed_service_factory.cc", -@@ -2381,7 +2379,7 @@ static_library("browser") { +@@ -2390,7 +2388,7 @@ static_library("browser") { "//components/resources", "//components/safe_browsing/content/browser", "//components/safe_browsing/content/browser:safe_browsing_service", @@ -217,7 +217,7 @@ diff --git a/chrome/browser/optimization_guide/model_validator_keyed_service.cc diff --git a/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc b/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc --- a/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc +++ b/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc -@@ -409,7 +409,6 @@ void OptimizationGuideKeyedService::RemoveObserverForOptimizationTargetModel( +@@ -388,7 +388,6 @@ void OptimizationGuideKeyedService::RemoveObserverForOptimizationTargetModel( void OptimizationGuideKeyedService::RegisterOptimizationTypes( const std::vector& optimization_types) { @@ -228,23 +228,23 @@ diff --git a/chrome/browser/optimization_guide/optimization_guide_keyed_service. 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 -@@ -44,8 +44,6 @@ source_set("permissions") { +@@ -42,8 +42,6 @@ source_set("permissions") { + "prediction_service/language_detection_observer.h", + "prediction_service/passage_embedder_delegate.cc", "prediction_service/passage_embedder_delegate.h", +- "prediction_service/permissions_ai_ui_selector.cc", +- "prediction_service/permissions_ai_ui_selector.h", "prediction_service/permissions_aiv1_handler.cc", "prediction_service/permissions_aiv1_handler.h", -- "prediction_service/prediction_based_permission_ui_selector.cc", -- "prediction_service/prediction_based_permission_ui_selector.h", "prediction_service/prediction_model_handler_provider.cc", - "prediction_service/prediction_model_handler_provider.h", - "prediction_service/prediction_service_factory.cc", 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 -@@ -474,8 +474,6 @@ ChromePermissionsClient::CreatePermissionUiSelectors( +@@ -472,8 +472,6 @@ ChromePermissionsClient::CreatePermissionUiSelectors( #endif selectors.emplace_back(std::make_unique( Profile::FromBrowserContext(browser_context))); -- selectors.emplace_back(std::make_unique( +- selectors.emplace_back(std::make_unique( - Profile::FromBrowserContext(browser_context))); return selectors; } @@ -354,7 +354,7 @@ diff --git a/chrome/browser/predictors/predictors_features.cc b/chrome/browser/p diff --git a/chrome/browser/preloading/prefetch/search_prefetch/field_trial_settings.cc b/chrome/browser/preloading/prefetch/search_prefetch/field_trial_settings.cc --- a/chrome/browser/preloading/prefetch/search_prefetch/field_trial_settings.cc +++ b/chrome/browser/preloading/prefetch/search_prefetch/field_trial_settings.cc -@@ -146,3 +146,7 @@ const base::FeatureParam +@@ -139,3 +139,7 @@ const base::FeatureParam kSuppressesSearchPrefetchOnSlowNetworkThreshold{ &kSuppressesSearchPrefetchOnSlowNetwork, "slow_network_threshold_for_search_prefetch", base::Milliseconds(208)}; @@ -376,18 +376,18 @@ 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 -@@ -1201,7 +1201,6 @@ void ChromeBrowserMainExtraPartsProfiles:: - base::FeatureList::IsEnabled( - permissions::features::kPermissionOnDeviceGeolocationPredictions) || - base::FeatureList::IsEnabled(permissions::features::kPermissionsAIv1)) { -- PredictionModelHandlerProviderFactory::GetInstance(); - } +@@ -1209,7 +1209,6 @@ void ChromeBrowserMainExtraPartsProfiles:: + policy::UserPolicySigninServiceFactory::GetInstance(); + #endif + PolicyBlocklistFactory::GetInstance(); +- PredictionModelHandlerProviderFactory::GetInstance(); PredictionServiceFactory::GetInstance(); predictors::AutocompleteActionPredictorFactory::GetInstance(); + predictors::LoadingPredictorFactory::GetInstance(); 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 -@@ -52,7 +52,6 @@ static_library("safe_browsing") { +@@ -53,7 +53,6 @@ static_library("safe_browsing") { "//components/resources:components_resources_grit", "//components/safe_browsing:buildflags", "//components/safe_browsing/content/browser", @@ -435,7 +435,7 @@ diff --git a/chrome/browser/safe_browsing/notification_content_detection/notific diff --git a/chrome/browser/ui/android/preloading/java/src/org/chromium/chrome/browser/preloading/AndroidPrerenderManager.java b/chrome/browser/ui/android/preloading/java/src/org/chromium/chrome/browser/preloading/AndroidPrerenderManager.java --- a/chrome/browser/ui/android/preloading/java/src/org/chromium/chrome/browser/preloading/AndroidPrerenderManager.java +++ b/chrome/browser/ui/android/preloading/java/src/org/chromium/chrome/browser/preloading/AndroidPrerenderManager.java -@@ -89,6 +89,7 @@ public class AndroidPrerenderManager { +@@ -92,6 +92,7 @@ public class AndroidPrerenderManager { * @param prerenderUrl The url to be prerendered. */ public void startPrerendering(GURL prerenderUrl) { @@ -446,7 +446,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 -@@ -509,11 +509,7 @@ void ChromeAutofillClient::GetAiPageContent(GetAiPageContentCallback callback) { +@@ -512,11 +512,7 @@ void ChromeAutofillClient::GetAiPageContent(GetAiPageContentCallback callback) { } AutofillAiManager* ChromeAutofillClient::GetAutofillAiManager() { @@ -458,7 +458,7 @@ diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.cc b/chrome/brows } AutofillAiModelCache* ChromeAutofillClient::GetAutofillAiModelCache() { -@@ -1199,18 +1195,7 @@ void ChromeAutofillClient::TriggerPlusAddressUserPerceptionSurvey( +@@ -1247,18 +1243,7 @@ void ChromeAutofillClient::TriggerPlusAddressUserPerceptionSurvey( optimization_guide::ModelQualityLogsUploaderService* ChromeAutofillClient::GetMqlsUploadService() { @@ -480,7 +480,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 -@@ -449,7 +449,6 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -458,7 +458,6 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { } MixedContentSettingsTabHelper::CreateForWebContents(web_contents); NavigationMetricsRecorder::CreateForWebContents(web_contents); @@ -561,7 +561,7 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_aloud_app_model.cc #include "chrome/renderer/accessibility/phrase_segmentation/dependency_tree.h" #include "chrome/renderer/accessibility/phrase_segmentation/phrase_segmenter.h" #include "chrome/renderer/accessibility/phrase_segmentation/token_boundaries.h" -@@ -27,6 +29,7 @@ +@@ -28,6 +30,7 @@ namespace { @@ -569,7 +569,7 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_aloud_app_model.cc // Returns the dependency parser model for this renderer process. DependencyParserModel& GetDependencyParserModel_() { static base::NoDestructor instance; -@@ -39,6 +42,7 @@ std::vector GetDependencyHeads(base::span input) { +@@ -40,6 +43,7 @@ std::vector GetDependencyHeads(base::span input) { ? dependency_parser_model.GetDependencyHeads(input) : std::vector(); } @@ -577,7 +577,7 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_aloud_app_model.cc } // namespace -@@ -153,10 +157,13 @@ void ReadAloudAppModel::PreprocessTextForSpeech( +@@ -164,10 +168,13 @@ void ReadAloudAppModel::PreprocessTextForSpeech( } } @@ -591,7 +591,7 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_aloud_app_model.cc void ReadAloudAppModel::CalculatePhrases( a11y::ReadAloudCurrentGranularity& granularity) { if (!features::IsReadAnythingReadAloudPhraseHighlightingEnabled()) { -@@ -213,19 +220,23 @@ void ReadAloudAppModel::CalculatePhrases( +@@ -224,19 +231,23 @@ void ReadAloudAppModel::CalculatePhrases( base::BindOnce(&ReadAloudAppModel::UpdatePhraseBoundaries, weak_ptr_factory_.GetWeakPtr(), phrase_tokens)); } @@ -617,7 +617,7 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_aloud_app_model.cc // Reset the phrase calculation flag, so that the next phrase calculation can // be scheduled, if needed. is_calculating_phrases = false; -@@ -287,6 +298,7 @@ void ReadAloudAppModel::UpdatePhraseBoundaries(std::vector tokens, +@@ -298,6 +309,7 @@ void ReadAloudAppModel::UpdatePhraseBoundaries(std::vector tokens, current_phrase_calculation_index_ = -1; LOG(WARNING) << "All phrases calculated!"; } @@ -650,7 +650,7 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_aloud_app_model.h // Increments the processed_granularity_index_, updating ReadAloud's state of // the current granularity to refer to the next granularity. The current -@@ -291,9 +296,11 @@ class ReadAloudAppModel { +@@ -293,9 +298,11 @@ class ReadAloudAppModel { // still needs to be read. bool NoValidTextRemainingInCurrentNode(bool is_pdf, bool is_docs) const; @@ -662,7 +662,7 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_aloud_app_model.h // Once the phrase segmentation has completed for a given sentence, update the // granularity with the phrase boundaries, and calculate phrases for the next -@@ -367,7 +374,7 @@ class ReadAloudAppModel { +@@ -369,7 +376,7 @@ class ReadAloudAppModel { // Whether a phrase calculation for a sentence is currently underway. (We // do not initiate a second calculation before the first has completed.) @@ -684,7 +684,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" -@@ -1754,6 +1756,7 @@ void ReadAnythingAppController::OnConnected() { +@@ -1786,6 +1788,7 @@ void ReadAnythingAppController::OnConnected() { render_frame()->GetBrowserInterfaceBroker().GetInterface( std::move(page_handler_factory_receiver)); @@ -692,7 +692,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; -@@ -1762,6 +1765,7 @@ void ReadAnythingAppController::OnConnected() { +@@ -1794,6 +1797,7 @@ void ReadAnythingAppController::OnConnected() { page_handler_->GetDependencyParserModel( base::BindOnce(&ReadAnythingAppController::UpdateDependencyParserModel, weak_ptr_factory_.GetWeakPtr())); @@ -700,7 +700,7 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_anything_app_contr } void ReadAnythingAppController::OnCopy() const { -@@ -2003,8 +2007,10 @@ std::u16string ReadAnythingAppController::GetCurrentTextContent() { +@@ -2034,8 +2038,10 @@ std::u16string ReadAnythingAppController::GetCurrentTextContent() { } void ReadAnythingAppController::PreprocessTextForSpeech() { @@ -711,7 +711,7 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_anything_app_contr } void ReadAnythingAppController::MovePositionToNextGranularity() { -@@ -2257,14 +2263,18 @@ bool ReadAnythingAppController::IsDocsLoadMoreButtonVisible() const { +@@ -2289,14 +2295,18 @@ bool ReadAnythingAppController::IsDocsLoadMoreButtonVisible() const { void ReadAnythingAppController::UpdateDependencyParserModel( base::File model_file) { @@ -743,7 +743,7 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_anything_app_contr class ReadAnythingAppControllerTest; class ReadAnythingAppControllerScreen2xDataCollectionModeTest; -@@ -304,7 +306,9 @@ class ReadAnythingAppController +@@ -310,7 +312,9 @@ class ReadAnythingAppController // available. void UpdateDependencyParserModel(base::File model_file); @@ -768,7 +768,7 @@ diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn diff --git a/chrome/utility/services.cc b/chrome/utility/services.cc --- a/chrome/utility/services.cc +++ b/chrome/utility/services.cc -@@ -251,13 +251,6 @@ auto RunMirroringService( +@@ -249,13 +249,6 @@ auto RunMirroringService( std::move(receiver), content::UtilityThread::Get()->GetIOTaskRunner()); } @@ -782,7 +782,7 @@ diff --git a/chrome/utility/services.cc b/chrome/utility/services.cc #endif // !BUILDFLAG(IS_ANDROID) #if BUILDFLAG(ENABLE_BROWSER_SPEECH_SERVICE) -@@ -475,7 +468,6 @@ void RegisterMainThreadServices(mojo::ServiceFactory& services) { +@@ -466,7 +459,6 @@ void RegisterMainThreadServices(mojo::ServiceFactory& services) { #if !BUILDFLAG(IS_ANDROID) services.Add(RunProfileImporter); services.Add(RunMirroringService); @@ -793,8 +793,8 @@ 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 -@@ -617,7 +617,7 @@ test("components_unittests") { - "//components/media_router/common/providers/cast/channel:unit_tests", +@@ -622,7 +622,7 @@ test("components_unittests") { + "//components/one_time_tokens/core/browser:unit_tests", "//components/page_info:unit_tests", "//components/permissions:unit_tests", - "//components/permissions/prediction_service:unit_tests", @@ -805,15 +805,15 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn diff --git a/components/autofill/core/browser/foundations/autofill_manager.cc b/components/autofill/core/browser/foundations/autofill_manager.cc --- a/components/autofill/core/browser/foundations/autofill_manager.cc +++ b/components/autofill/core/browser/foundations/autofill_manager.cc -@@ -895,6 +895,7 @@ void AutofillManager::LogCurrentFieldTypes(const FormStructure& form) { +@@ -955,6 +955,7 @@ void AutofillManager::LogCurrentFieldTypes( } } +#if BUILDFLAG(BUILD_WITH_TFLITE_LIB) void AutofillManager::SubscribeToMlModelChanges( - FieldClassificationModelHandler& handler, - optimization_guide::proto::OptimizationTarget optimization_target) { -@@ -919,5 +920,6 @@ void AutofillManager::SubscribeToMlModelChanges( + FieldClassificationModelHandler& handler) { + switch (handler.optimization_target()) { +@@ -978,5 +979,6 @@ void AutofillManager::SubscribeToMlModelChanges( NOTREACHED(); } } @@ -823,7 +823,7 @@ diff --git a/components/autofill/core/browser/foundations/autofill_manager.cc b/ diff --git a/components/autofill/core/browser/foundations/autofill_manager.h b/components/autofill/core/browser/foundations/autofill_manager.h --- a/components/autofill/core/browser/foundations/autofill_manager.h +++ b/components/autofill/core/browser/foundations/autofill_manager.h -@@ -38,6 +38,7 @@ +@@ -39,6 +39,7 @@ #include "components/autofill/core/common/signatures.h" #include "components/autofill/core/common/unique_ids.h" #include "components/optimization_guide/proto/models.pb.h" @@ -831,7 +831,7 @@ diff --git a/components/autofill/core/browser/foundations/autofill_manager.h b/c #include "components/translate/core/browser/translate_driver.h" namespace autofill { -@@ -355,12 +356,14 @@ class AutofillManager +@@ -366,10 +367,12 @@ class AutofillManager // Reparses all known forms. void ReparseKnownForms(); @@ -839,9 +839,7 @@ diff --git a/components/autofill/core/browser/foundations/autofill_manager.h b/c // After subscribing, FieldClassificationModelHandler::OnModelUpdated() will // trigger ReparseKnownForms(). There may be a handler for Autofill and/or // Password Manager. - void SubscribeToMlModelChanges( - FieldClassificationModelHandler& handler, - optimization_guide::proto::OptimizationTarget optimization_target); + void SubscribeToMlModelChanges(FieldClassificationModelHandler& handler); +#endif protected: @@ -849,7 +847,7 @@ diff --git a/components/autofill/core/browser/foundations/autofill_manager.h b/c diff --git a/components/autofill/core/browser/integrators/optimization_guide/autofill_optimization_guide_decider.cc b/components/autofill/core/browser/integrators/optimization_guide/autofill_optimization_guide_decider.cc --- a/components/autofill/core/browser/integrators/optimization_guide/autofill_optimization_guide_decider.cc +++ b/components/autofill/core/browser/integrators/optimization_guide/autofill_optimization_guide_decider.cc -@@ -258,6 +258,7 @@ void AutofillOptimizationGuideDecider::OnPaymentsDataLoaded( +@@ -264,6 +264,7 @@ void AutofillOptimizationGuideDecider::OnPaymentsDataLoaded( // If we do not have any optimization types to register, do not do anything. if (!optimization_types.empty()) { @@ -857,7 +855,7 @@ diff --git a/components/autofill/core/browser/integrators/optimization_guide/aut decider_->RegisterOptimizationTypes( std::vector( std::move(optimization_types).extract())); -@@ -365,7 +366,7 @@ bool AutofillOptimizationGuideDecider::ShouldBlockSingleFieldSuggestions( +@@ -371,7 +372,7 @@ bool AutofillOptimizationGuideDecider::ShouldBlockSingleFieldSuggestions( const AutofillField* field) const { // If the field's storable type is `IBAN_VALUE`, check whether IBAN // suggestions should be blocked based on `url`. @@ -866,7 +864,7 @@ diff --git a/components/autofill/core/browser/integrators/optimization_guide/aut optimization_guide::OptimizationGuideDecision decision = decider_->CanApplyOptimization( url, optimization_guide::proto::IBAN_AUTOFILL_BLOCKED, -@@ -391,7 +392,7 @@ bool AutofillOptimizationGuideDecider::ShouldBlockFormFieldSuggestion( +@@ -397,7 +398,7 @@ bool AutofillOptimizationGuideDecider::ShouldBlockFormFieldSuggestion( const CreditCard& card) const { if (auto optimization_type = GetVcnMerchantOptOutOptimizationTypeForCard(card); @@ -898,7 +896,7 @@ diff --git a/components/autofill/core/browser/ml_model/field_classification_mode // Store the model in memory as soon as it is available and keep it loaded for // the whole browser session since we query predictions very regularly. // TODO(crbug.com/40276177): Maybe change both back to default behavior if we -@@ -167,6 +165,7 @@ void FieldClassificationModelHandler::ApplySmallFormRules( +@@ -164,6 +162,7 @@ void FieldClassificationModelHandler::ApplySmallFormRules( } } @@ -906,7 +904,7 @@ diff --git a/components/autofill/core/browser/ml_model/field_classification_mode autofill_ml_internals::mojom::MlPredictionLogPtr FieldClassificationModelHandler::CreateMlPredictionLog( const FormData& form) const { -@@ -239,6 +238,7 @@ FieldClassificationModelHandler::CreateMlPredictionLog( +@@ -236,6 +235,7 @@ FieldClassificationModelHandler::CreateMlPredictionLog( prediction_log->start_time = base::Time::Now(); return prediction_log; } @@ -914,7 +912,7 @@ diff --git a/components/autofill/core/browser/ml_model/field_classification_mode void PopulateMlPredictionLogAfterInference( autofill_ml_internals::mojom::MlPredictionLog& prediction_log, -@@ -268,9 +268,11 @@ void FieldClassificationModelHandler::GetModelPredictionsForForm( +@@ -264,9 +264,11 @@ void FieldClassificationModelHandler::GetModelPredictionsForForm( std::optional prediction_log = std::nullopt; @@ -924,9 +922,9 @@ diff --git a/components/autofill/core/browser/ml_model/field_classification_mode } +#endif - // TODO(crbug.com/428686605) Set tokenized representation in `prediction_log`. FieldClassificationModelEncoder::ModelInput encoded_input = -@@ -325,11 +327,13 @@ void FieldClassificationModelHandler::GetModelPredictionsForForm( + state_->encoder.EncodeForm(form); +@@ -331,11 +333,13 @@ void FieldClassificationModelHandler::GetModelPredictionsForForm( predicted_types); } } @@ -965,7 +963,7 @@ diff --git a/components/autofill/core/browser/ml_model/field_classification_mode ~FieldClassificationModelHandler() override; // This function asynchronously queries predictions for the `form_structure` -@@ -132,8 +134,10 @@ class FieldClassificationModelHandler +@@ -136,8 +138,10 @@ class FieldClassificationModelHandler ModelInputHash CalculateModelInputHash( const FieldClassificationModelEncoder::ModelInput& input); @@ -974,9 +972,9 @@ diff --git a/components/autofill/core/browser/ml_model/field_classification_mode const FormData& form_structure) const; +#endif - struct ModelState { - optimization_guide::proto::AutofillFieldClassificationModelMetadata -@@ -155,7 +159,9 @@ class FieldClassificationModelHandler + // Converts a `TokenId` to the string representation. + std::string TokenIdToString( +@@ -163,7 +167,9 @@ class FieldClassificationModelHandler ModelChangeCallbackList model_change_callback_list_; @@ -992,15 +990,15 @@ diff --git a/components/omnibox/browser/aim_eligibility_service_features.cc b/co @@ -9,6 +9,7 @@ namespace omnibox { - BASE_FEATURE(kAimEnabled, "AimEnabled", base::FEATURE_ENABLED_BY_DEFAULT); + BASE_FEATURE(kAimEnabled, base::FEATURE_ENABLED_BY_DEFAULT); +SET_CROMITE_FEATURE_DISABLED(kAimEnabled); // Disable AI Mode starter pack - BASE_FEATURE(kAimServerEligibilityEnabled, - "AimServerEligibilityEnabled", + BASE_FEATURE(kAimServerEligibilityEnabled, base::FEATURE_DISABLED_BY_DEFAULT); + 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 -@@ -54,7 +54,9 @@ +@@ -53,7 +53,9 @@ #include "components/omnibox/browser/autocomplete_match.h" #include "components/omnibox/browser/autocomplete_match_type.h" #include "components/omnibox/browser/autocomplete_provider.h" @@ -1010,7 +1008,7 @@ diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/ #include "components/omnibox/browser/autocomplete_scoring_signals_annotator.h" #include "components/omnibox/browser/bookmark_provider.h" #include "components/omnibox/browser/bookmark_scoring_signals_annotator.h" -@@ -128,6 +130,7 @@ using ProviderType = AutocompleteProvider::Type; +@@ -131,6 +133,7 @@ using ProviderType = AutocompleteProvider::Type; constexpr bool is_android = !!BUILDFLAG(IS_ANDROID); @@ -1018,7 +1016,7 @@ diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/ void RecordMlScoreCoverage(size_t matches_with_non_null_scores, size_t total_scored_matches) { int percent_score_coverage = -@@ -236,6 +239,7 @@ void RecordTotalMatchesScored(size_t num_scored) { +@@ -239,6 +242,7 @@ void RecordTotalMatchesScored(size_t num_scored) { base::UmaHistogramCounts1000("Omnibox.URLScoringModelExecuted.Matches", num_scored); } @@ -1029,7 +1027,7 @@ diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/ diff --git a/components/omnibox/browser/base_search_provider.cc b/components/omnibox/browser/base_search_provider.cc --- a/components/omnibox/browser/base_search_provider.cc +++ b/components/omnibox/browser/base_search_provider.cc -@@ -101,14 +101,14 @@ BaseSearchProvider::BaseSearchProvider(AutocompleteProvider::Type type, +@@ -100,14 +100,14 @@ BaseSearchProvider::BaseSearchProvider(AutocompleteProvider::Type type, bool BaseSearchProvider::ShouldPrefetch(const AutocompleteMatch& match) { // TODO (manukh): `GetAdditionalInfoForDebugging()` shouldn't be used for // non-debugging purposes. @@ -1049,7 +1047,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 -@@ -51,7 +51,7 @@ const char kDisableModelDownloadsForBenchmarking[] = +@@ -53,7 +53,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, @@ -1058,16 +1056,16 @@ 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 = -@@ -111,7 +111,7 @@ PredictionModelDownloadManager::PredictionModelDownloadManager( +@@ -123,7 +123,7 @@ PredictionModelDownloadManager::PredictionModelDownloadManager( unzip::UnzipperFactory unzipper_factory, scoped_refptr background_task_runner) - : download_service_(download_service), + : download_service_tracker_(download_service_tracker), - is_available_for_downloads_(true), + is_available_for_downloads_(false), api_key_(features::GetOptimizationGuideServiceAPIKey()), get_base_model_dir_for_download_callback_( get_base_model_dir_for_download_callback), -@@ -124,6 +124,7 @@ PredictionModelDownloadManager::~PredictionModelDownloadManager() = default; +@@ -136,6 +136,7 @@ PredictionModelDownloadManager::~PredictionModelDownloadManager() = default; void PredictionModelDownloadManager::StartDownload( const GURL& download_url, proto::OptimizationTarget optimization_target) { @@ -1075,7 +1073,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; -@@ -276,6 +277,7 @@ bool PredictionModelDownloadManager::VerifyDownload( +@@ -293,6 +294,7 @@ bool PredictionModelDownloadManager::VerifyDownload( const base::FilePath& download_file_path, const base::FilePath& base_model_dir, bool delete_file_on_error) { @@ -1086,14 +1084,14 @@ diff --git a/components/optimization_guide/core/delivery/prediction_model_downlo diff --git a/components/optimization_guide/core/delivery/prediction_model_fetcher_impl.cc b/components/optimization_guide/core/delivery/prediction_model_fetcher_impl.cc --- a/components/optimization_guide/core/delivery/prediction_model_fetcher_impl.cc +++ b/components/optimization_guide/core/delivery/prediction_model_fetcher_impl.cc -@@ -50,6 +50,7 @@ bool PredictionModelFetcherImpl::FetchOptimizationGuideServiceModels( +@@ -51,6 +51,7 @@ bool PredictionModelFetcherImpl::FetchOptimizationGuideServiceModels( proto::RequestContext request_context, const std::string& locale, ModelsFetchedCallback models_fetched_callback) { + if ((true)) return false; DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - if (url_loader_) { + TRACE_EVENT( diff --git a/components/optimization_guide/core/hints/hints_fetcher.cc b/components/optimization_guide/core/hints/hints_fetcher.cc --- a/components/optimization_guide/core/hints/hints_fetcher.cc +++ b/components/optimization_guide/core/hints/hints_fetcher.cc @@ -1137,7 +1135,7 @@ diff --git a/components/optimization_guide/core/optimization_guide_features.cc b } // namespace -@@ -289,8 +285,7 @@ size_t MaxHostKeyedHintCacheSize() { +@@ -253,8 +249,7 @@ size_t MaxHostKeyedHintCacheSize() { } bool ShouldPersistHintsToDisk() { @@ -1147,7 +1145,7 @@ diff --git a/components/optimization_guide/core/optimization_guide_features.cc b } RequestContextSet GetAllowedContextsForPersonalizedMetadata() { -@@ -699,5 +694,10 @@ bool IsPrivacyGuideAiSettingsEnabled() { +@@ -659,5 +654,10 @@ bool IsPrivacyGuideAiSettingsEnabled() { return base::FeatureList::IsEnabled(kPrivacyGuideAiSettings); } @@ -1174,8 +1172,8 @@ 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 -@@ -298,4 +298,8 @@ std::string AnnotatedPageContentMode() { - return kAnnotatedPageContentMode.Get(); +@@ -323,4 +323,8 @@ PageContentExtractionTriggeringMode GetPageContentExtractionTriggeringMode() { + return PageContentExtractionTriggeringMode::kOnLoad; } +SET_CROMITE_FEATURE_DISABLED(kPageContentAnnotations); @@ -1298,8 +1296,8 @@ diff --git a/services/on_device_model/ml/ts_model.cc b/services/on_device_model/ -#if !BUILDFLAG(IS_FUCHSIA) +#if false && !BUILDFLAG(IS_FUCHSIA) - if (params->safety_assets->which() == - mojom::SafetyModelAssets::Tag::kTsAssets) { + if (!params->safety_assets || params->safety_assets->which() == + mojom::SafetyModelAssets::Tag::kTsAssets) { auto impl = TsModel::Create(*chrome_ml_, std::move(params)); diff --git a/services/on_device_model/safety/BUILD.gn b/services/on_device_model/safety/BUILD.gn --- a/services/on_device_model/safety/BUILD.gn @@ -1316,7 +1314,7 @@ diff --git a/services/on_device_model/safety/BUILD.gn b/services/on_device_model diff --git a/services/webnn/BUILD.gn b/services/webnn/BUILD.gn --- a/services/webnn/BUILD.gn +++ b/services/webnn/BUILD.gn -@@ -178,7 +178,7 @@ component("webnn_service") { +@@ -166,7 +166,7 @@ component("webnn_service") { } } @@ -1340,8 +1338,8 @@ 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 -@@ -186,21 +186,7 @@ void WebNNContextProviderImpl::CreateWebNNContext( - RecordDeviceType(options->device); +@@ -208,22 +208,7 @@ void WebNNContextProviderImpl::CreateWebNNContext( + } #if BUILDFLAG(IS_WIN) - if (ort::ShouldCreateOrtContext(*options)) { @@ -1354,19 +1352,20 @@ diff --git a/services/webnn/webnn_context_provider_impl.cc b/services/webnn/webn - context_impl = base::MakeRefCounted( - std::move(receiver), this, - env_creation_results.value()->GetEpWorkarounds(options->device), -- std::move(options), std::move(env_creation_results.value()), -- command_buffer_id, std::move(sequence), -- std::move(scheduler_task_runner)); +- std::move(options), std::move(write_tensor_consumer), +- std::move(read_tensor_producer), +- std::move(env_creation_results.value()), command_buffer_id, +- std::move(sequence), std::move(scheduler_task_runner)); - } - } else if (dml::ShouldCreateDmlContext(*options)) { + if (dml::ShouldCreateDmlContext(*options)) { base::expected, mojom::ErrorPtr> context_creation_results = dml::CreateContextFromOptions( - std::move(options), gpu_feature_info_, gpu_info_, + std::move(options), std::move(write_tensor_consumer), 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 -@@ -1822,6 +1822,7 @@ ALWAYS_INLINE bool HTMLDocumentParser::ShouldCheckTimeBudget( +@@ -1845,6 +1845,7 @@ ALWAYS_INLINE bool HTMLDocumentParser::ShouldCheckTimeBudget( } bool HTMLDocumentParser::ShouldSkipPreloadScan() { @@ -1388,7 +1387,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 -@@ -3752,7 +3752,7 @@ +@@ -3844,7 +3844,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 937d580b..73f45d83 100644 --- a/build/patches/Disable-all-promo-dialogs.patch +++ b/build/patches/Disable-all-promo-dialogs.patch @@ -18,7 +18,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java -@@ -1769,6 +1769,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1800,6 +1800,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { } private boolean maybeShowPromo(Profile profile) { @@ -29,7 +29,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc --- a/chrome/browser/ui/browser_ui_prefs.cc +++ b/chrome/browser/ui/browser_ui_prefs.cc -@@ -176,7 +176,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -180,7 +180,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref(prefs::kEnterpriseHardwarePlatformAPIEnabled, false); @@ -63,7 +63,7 @@ diff --git a/chrome/browser/ui/views/user_education/impl/browser_feature_promo_c 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 -@@ -122,6 +122,7 @@ public class UserEducationHelper { +@@ -119,6 +119,7 @@ public class UserEducationHelper { } private void showIph(Tracker tracker, IphCommand iphCommand) { diff --git a/build/patches/Disable-conversion-measurement-api.patch b/build/patches/Disable-conversion-measurement-api.patch index 84ee8bf0..c0b665e5 100644 --- a/build/patches/Disable-conversion-measurement-api.patch +++ b/build/patches/Disable-conversion-measurement-api.patch @@ -16,7 +16,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/android/java/AndroidManifest.xml | 4 - .../ChromeSiteSettingsDelegate.java | 2 + .../k_anonymity_trust_token_getter.cc | 2 +- - .../settings/privacy_page/privacy_page.html | 5 - + .../privacy_page/privacy_page_index.html | 8 - chrome/browser/resources/settings/route.ts | 2 +- .../site_settings_page/site_settings_page.ts | 1 + .../aggregatable_trigger_config.cc | 2 +- @@ -46,14 +46,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html third_party/blink/renderer/core/page/page.cc | 2 +- .../platform/runtime_enabled_features.json5 | 20 +- ui/events/android/motion_event_android.cc | 8 +- - 35 files changed, 103 insertions(+), 430 deletions(-) + 35 files changed, 103 insertions(+), 433 deletions(-) create mode 100644 cromite_flags/services/network/public/cpp/features_cc/Disable-conversion-measurement-api.inc create mode 100644 cromite_flags/third_party/blink/common/features_cc/Disable-conversion-measurement-api.inc diff --git a/android_webview/browser/aw_content_browser_client.cc b/android_webview/browser/aw_content_browser_client.cc --- a/android_webview/browser/aw_content_browser_client.cc +++ b/android_webview/browser/aw_content_browser_client.cc -@@ -1357,6 +1357,7 @@ network::mojom::AttributionSupport +@@ -1317,6 +1317,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: -@@ -1375,6 +1376,8 @@ bool AwContentBrowserClient::IsAttributionReportingOperationAllowed( +@@ -1335,6 +1336,8 @@ bool AwContentBrowserClient::IsAttributionReportingOperationAllowed( const url::Origin* destination_origin, const url::Origin* reporting_origin, bool* can_bypass) { @@ -73,7 +73,7 @@ diff --git a/android_webview/browser/aw_content_browser_client.cc b/android_webv diff --git a/android_webview/java/src/org/chromium/android_webview/AwSettings.java b/android_webview/java/src/org/chromium/android_webview/AwSettings.java --- a/android_webview/java/src/org/chromium/android_webview/AwSettings.java +++ b/android_webview/java/src/org/chromium/android_webview/AwSettings.java -@@ -207,7 +207,7 @@ public class AwSettings { +@@ -202,7 +202,7 @@ public class AwSettings { private boolean mSpatialNavigationEnabled; // Default depends on device features. private boolean mEnableSupportedHardwareAcceleratedFeatures; private int mMixedContentMode = WebSettings.MIXED_CONTENT_NEVER_ALLOW; @@ -82,7 +82,7 @@ diff --git a/android_webview/java/src/org/chromium/android_webview/AwSettings.ja @SpeculativeLoadingAllowedFlags private int mSpeculativeLoadingAllowedFlags = -@@ -1834,7 +1834,7 @@ public class AwSettings { +@@ -1784,7 +1784,7 @@ public class AwSettings { public void setAttributionBehavior(@AttributionBehavior int behavior) { synchronized (mAwSettingsLock) { if (mAttributionBehavior != behavior) { @@ -115,7 +115,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro 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 --- 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 -@@ -151,6 +151,8 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { +@@ -150,6 +150,8 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { // not great to dynamically remove the preference in this way. case SiteSettingsCategory.Type.ADS: return SiteSettingsCategory.adsCategoryEnabled(); @@ -136,25 +136,28 @@ diff --git a/chrome/browser/k_anonymity_service/k_anonymity_trust_token_getter.c !identity_manager_->HasPrimaryAccount(signin::ConsentLevel::kSignin)) { std::move(callback).Run(std::nullopt); return; -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 -@@ -395,11 +395,6 @@ - - - -- - + +- +- + - - -+
- -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 -@@ -54,6 +54,7 @@ import {SiteSettingsPrefsBrowserProxyImpl} from '../site_settings/site_settings_ +diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page_index.html b/chrome/browser/resources/settings/privacy_page/privacy_page_index.html +--- a/chrome/browser/resources/settings/privacy_page/privacy_page_index.html ++++ b/chrome/browser/resources/settings/privacy_page/privacy_page_index.html +@@ -572,4 +572,5 @@ + + - import {PrivacyGuideAvailabilityMixin} from './privacy_guide/privacy_guide_availability_mixin.js'; - import {getTemplate} from './privacy_page.html.js'; ++
+ +diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page_index.ts b/chrome/browser/resources/settings/privacy_page/privacy_page_index.ts +--- a/chrome/browser/resources/settings/privacy_page/privacy_page_index.ts ++++ b/chrome/browser/resources/settings/privacy_page/privacy_page_index.ts +@@ -29,6 +29,7 @@ import {PrivacyGuideAvailabilityMixin} from './privacy_guide/privacy_guide_avail + import type {PrivacyGuideBrowserProxy} from './privacy_guide/privacy_guide_browser_proxy.js'; + import {MAX_PRIVACY_GUIDE_PROMO_IMPRESSION, PrivacyGuideBrowserProxyImpl} from './privacy_guide/privacy_guide_browser_proxy.js'; + import {getTemplate} from './privacy_page_index.html.js'; +import { SettingsCategoryDefaultRadioGroupElement } from '../site_settings/settings_category_default_radio_group.js'; - interface BlockAutoplayStatus { - enabled: boolean; -@@ -77,8 +78,82 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase { - return 'settings-privacy-page'; + // clang-format off + // +@@ -53,8 +54,82 @@ export class SettingsPrivacyPageIndexElement extends + return 'settings-privacy-page-index'; } + static getSettingTemplate(template: HTMLTemplateElement, @@ -283,9 +283,9 @@ diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resourc /** * Add all of the child routes that originate from the privacy route, -@@ -175,6 +176,7 @@ function addPrivacyChildRoutes(r: Partial) { +@@ -155,6 +156,7 @@ function addPrivacyChildRoutes(r: Partial) { + r.SITE_SETTINGS_LOCAL_NETWORK_ACCESS = r.SITE_SETTINGS.createChild('localNetworkAccess'); - r.SITE_SETTINGS_LOCAL_NETWORK_ACCESS.hasMigratedToPlugin = true; } + setupContentSettingsRoutes(r); } @@ -390,16 +390,17 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d diff --git a/chrome/browser/resources/settings/site_settings/site_details.html b/chrome/browser/resources/settings/site_settings/site_details.html --- a/chrome/browser/resources/settings/site_settings/site_details.html +++ b/chrome/browser/resources/settings/site_settings/site_details.html -@@ -331,4 +331,5 @@ +@@ -332,5 +332,6 @@ label="$i18n{siteSettingsLocalNetworkAccess}"> +
+ diff --git a/chrome/browser/resources/settings/site_settings/site_details.ts b/chrome/browser/resources/settings/site_settings/site_details.ts --- a/chrome/browser/resources/settings/site_settings/site_details.ts +++ b/chrome/browser/resources/settings/site_settings/site_details.ts -@@ -62,8 +62,39 @@ export class SiteDetailsElement extends SiteDetailsElementBase { +@@ -69,8 +69,39 @@ export class SiteDetailsElement extends SiteDetailsElementBase { return 'site-details'; } @@ -675,7 +676,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/site_settings_util. diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts b/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts --- a/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts +++ b/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts -@@ -50,7 +50,7 @@ function getCategoryItemMap(): Map { +@@ -51,7 +51,7 @@ function getCategoryItemMap(): Map { } // The following list is ordered alphabetically by |id|. The order in which // these appear in the UI is determined elsewhere in this file. @@ -684,7 +685,7 @@ diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_ { route: routes.SITE_SETTINGS_ADS, id: Id.ADS, -@@ -451,10 +451,36 @@ function getCategoryItemMap(): Map { +@@ -452,10 +452,36 @@ function getCategoryItemMap(): Map { icon: 'privacy:cookie', }, ]; @@ -721,7 +722,7 @@ diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_ function buildItemListFromIds(orderedIdList: ContentSettingsTypes[]): CategoryListItem[] { const map = getCategoryItemMap(); -@@ -545,7 +571,7 @@ export class SettingsSiteSettingsPageElement extends +@@ -546,7 +572,7 @@ export class SettingsSiteSettingsPageElement extends Id.IMAGES, Id.POPUPS, ]), @@ -733,7 +734,7 @@ diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_ 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 -@@ -1542,6 +1542,7 @@ static_library("ui") { +@@ -1581,6 +1581,7 @@ static_library("ui") { "//components/commerce/core/mojom:mojo_bindings", "//components/commerce/core/webui", "//components/endpoint_fetcher", @@ -741,7 +742,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", -@@ -4672,6 +4673,7 @@ static_library("ui") { +@@ -4719,6 +4720,7 @@ static_library("ui") { "//components/power_bookmarks/core", "//components/power_bookmarks/storage", "//components/prefs", @@ -912,7 +913,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.h b/chrome diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc --- a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc +++ b/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc -@@ -39,6 +39,34 @@ +@@ -40,6 +40,34 @@ #include "ui/views/controls/styled_label.h" #include "ui/views/style/typography.h" #include "ui/views/view_class_properties.h" @@ -947,7 +948,7 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/c namespace { -@@ -73,17 +101,12 @@ PermissionToggleRowView::PermissionToggleRowView( +@@ -74,17 +102,12 @@ PermissionToggleRowView::PermissionToggleRowView( navigation_handler_(navigation_handler) { SetUseDefaultFillLayout(true); row_view_ = AddChildView(std::make_unique()); @@ -966,7 +967,7 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/c if (permission.requesting_origin.has_value()) { std::u16string requesting_origin_string; switch (permission.type) { -@@ -181,6 +204,91 @@ void PermissionToggleRowView::UpdatePermission( +@@ -182,6 +205,91 @@ void PermissionToggleRowView::UpdatePermission( UpdateUiOnPermissionChanged(); } @@ -1058,7 +1059,7 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/c void PermissionToggleRowView::OnToggleButtonPressed() { PageInfoUI::ToggleBetweenAllowAndBlock(permission_); PermissionChanged(); -@@ -189,27 +297,19 @@ void PermissionToggleRowView::OnToggleButtonPressed() { +@@ -190,27 +298,19 @@ void PermissionToggleRowView::OnToggleButtonPressed() { void PermissionToggleRowView::AddToggleButton( const std::u16string& toggle_accessible_name, int icon_label_spacing) { @@ -1093,7 +1094,7 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/c } void PermissionToggleRowView::InitForUserSource( -@@ -251,12 +351,6 @@ void PermissionToggleRowView::InitForUserSource( +@@ -255,12 +355,6 @@ void PermissionToggleRowView::InitForUserSource( auto spacer_view = std::make_unique(); spacer_view->SetPreferredSize(gfx::Size(icon_size, icon_size)); spacer_view_ = row_view_->AddControl(std::move(spacer_view)); @@ -1106,7 +1107,7 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/c } } } -@@ -282,6 +376,15 @@ void PermissionToggleRowView::InitForManagedSource( +@@ -286,6 +380,15 @@ void PermissionToggleRowView::InitForManagedSource( } void PermissionToggleRowView::UpdateUiOnPermissionChanged() { @@ -1122,7 +1123,7 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/c if (blocked_on_system_level_label_) { if (!permission_.setting) { permission_blocked_on_system_level_ = false; -@@ -326,6 +429,37 @@ void PermissionToggleRowView::UpdateUiOnPermissionChanged() { +@@ -330,6 +433,37 @@ void PermissionToggleRowView::UpdateUiOnPermissionChanged() { } } } @@ -1230,7 +1231,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" -@@ -3855,6 +3859,56 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, +@@ -3885,6 +3889,56 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, policy_indicator::AddLocalizedStrings(html_source); AddSecurityKeysStrings(html_source); @@ -1290,7 +1291,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/browser/ui/webui/settings/site_settings_helper.cc --- a/chrome/browser/ui/webui/settings/site_settings_helper.cc +++ b/chrome/browser/ui/webui/settings/site_settings_helper.cc -@@ -47,6 +47,8 @@ +@@ -46,6 +46,8 @@ #include "chrome/grit/generated_resources.h" #include "components/content_settings/core/browser/content_settings_provider.h" #include "components/content_settings/core/browser/host_content_settings_map.h" @@ -1299,8 +1300,8 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b #include "components/content_settings/core/common/content_settings.h" #include "components/content_settings/core/common/content_settings_pattern.h" #include "components/content_settings/core/common/content_settings_types.h" -@@ -261,13 +263,13 @@ constexpr auto kContentSettingsTypeGroupNames = std::to_array< - {ContentSettingsType::DEVICE_ATTRIBUTES, nullptr}, +@@ -263,13 +265,13 @@ constexpr auto kContentSettingsTypeGroupNames = std::to_array< + {ContentSettingsType::SUSPICIOUS_NOTIFICATION_SHOW_ORIGINAL, nullptr}, }); -static_assert( @@ -1320,7 +1321,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b struct SiteSettingSourceStringMapping { SiteSettingSource source; -@@ -529,6 +531,13 @@ bool HasRegisteredGroupName(ContentSettingsType type) { +@@ -531,6 +533,13 @@ bool HasRegisteredGroupName(ContentSettingsType type) { return true; } } @@ -1334,7 +1335,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b return false; } -@@ -542,11 +551,24 @@ ContentSettingsType ContentSettingsTypeFromGroupName(std::string_view name) { +@@ -544,11 +553,24 @@ ContentSettingsType ContentSettingsTypeFromGroupName(std::string_view name) { return entry.type; } } @@ -1360,7 +1361,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b for (const auto& entry : kContentSettingsTypeGroupNames) { if (type == entry.type) { // Content setting types that aren't represented in the settings UI -@@ -561,7 +583,6 @@ std::string_view ContentSettingsTypeToGroupName(ContentSettingsType type) { +@@ -563,7 +585,6 @@ std::string_view ContentSettingsTypeToGroupName(ContentSettingsType type) { return entry.name ? entry.name : std::string_view(); } } @@ -1368,7 +1369,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b NOTREACHED() << static_cast(type) << " is not a recognized content settings type."; } -@@ -668,6 +689,13 @@ std::vector GetVisiblePermissionCategories( +@@ -670,6 +691,13 @@ std::vector GetVisiblePermissionCategories( base_types->push_back(ContentSettingsType::LOCAL_NETWORK_ACCESS); } @@ -1385,7 +1386,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b diff --git a/components/browser_ui/settings/android/BUILD.gn b/components/browser_ui/settings/android/BUILD.gn --- a/components/browser_ui/settings/android/BUILD.gn +++ b/components/browser_ui/settings/android/BUILD.gn -@@ -92,6 +92,7 @@ android_resources("java_resources") { +@@ -94,6 +94,7 @@ android_resources("java_resources") { "java/res/layout/managed_disclaimer_preference_for_radio_groups.xml", "java/res/layout/preference_chrome_image_view.xml", "java/res/layout/preference_spinner.xml", @@ -1548,7 +1549,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 -@@ -153,6 +153,23 @@ android_library("java") { +@@ -156,6 +156,23 @@ android_library("java") { ":site_settings_jni_headers", "//components/content_settings/android:java_pref_names_srcjar", ] @@ -1572,7 +1573,7 @@ diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/b } android_library("javatests") { -@@ -202,6 +219,7 @@ robolectric_library("junit") { +@@ -205,6 +222,7 @@ robolectric_library("junit") { } android_resources("java_resources") { @@ -1598,7 +1599,7 @@ diff --git a/components/browser_ui/site_settings/android/java/res/xml/site_setti diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/AllSiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/AllSiteSettings.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/AllSiteSettings.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/AllSiteSettings.java -@@ -389,7 +389,8 @@ public class AllSiteSettings extends BaseSiteSettingsFragment +@@ -390,7 +390,8 @@ public class AllSiteSettings extends BaseSiteSettingsFragment if (queryHasChanged) getInfoForOrigins(); }); @@ -1608,7 +1609,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c MenuItem help = menu.add( Menu.NONE, -@@ -401,6 +402,8 @@ public class AllSiteSettings extends BaseSiteSettingsFragment +@@ -402,6 +403,8 @@ public class AllSiteSettings extends BaseSiteSettingsFragment getResources(), R.drawable.ic_help_and_feedback, getContext().getTheme())); @@ -2306,7 +2307,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java -@@ -349,6 +349,10 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -355,6 +355,10 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment } else { @ContentSetting Integer contentSetting = website.site().getContentSetting(browserContextHandle, type); @@ -2317,7 +2318,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c if (contentSetting != null) { return ContentSetting.BLOCK == contentSetting; } -@@ -540,6 +544,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -546,6 +550,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment ? new HashSet<>(getArguments().getStringArrayList(EXTRA_SELECTED_DOMAINS)) : null; @@ -2325,7 +2326,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"); -@@ -575,7 +580,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -581,7 +586,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment if (queryHasChanged) getInfoForOrigins(); }); @@ -2335,7 +2336,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c MenuItem help = menu.add( Menu.NONE, -@@ -587,12 +593,20 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -593,12 +599,20 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment getResources(), R.drawable.ic_help_and_feedback, getContext().getTheme())); @@ -2356,7 +2357,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()); -@@ -671,6 +685,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -673,6 +687,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment public boolean onPreferenceChange(Preference preference, Object newValue) { BrowserContextHandle browserContextHandle = getBrowserContextHandle(); PrefService prefService = UserPrefs.get(browserContextHandle); @@ -2368,7 +2369,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(); -@@ -845,7 +864,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -847,7 +866,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; } @@ -2377,7 +2378,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } // OnPreferenceClickListener: -@@ -963,17 +982,15 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -965,17 +984,15 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment break; } @@ -2398,7 +2399,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c String exceptionDialogMessage = exceptionDialogMessageResourceId != 0 ? getString(exceptionDialogMessageResourceId) -@@ -984,7 +1001,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -986,7 +1003,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment getStyledContext(), ADD_EXCEPTION_KEY, exceptionDialogMessage, @@ -2407,7 +2408,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c mCategory, this)); -@@ -1168,8 +1185,16 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1170,8 +1187,16 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment private boolean isBlocked() { switch (mGlobalToggleLayout) { case GlobalToggleLayout.TRI_STATE_TOGGLE: @@ -2424,7 +2425,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c return (triStateToggle.getCheckedSetting() == ContentSetting.BLOCK); case GlobalToggleLayout.TRI_STATE_COOKIE_TOGGLE: TriStateCookieSettingsPreference triStateCookieToggle = -@@ -1322,7 +1347,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1324,7 +1349,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment } else if (res_id != -1) { infoText.setSummary(res_id); } else { @@ -2437,7 +2438,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } // Hide the anti-abuse text preferences, as needed. -@@ -1361,6 +1390,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1363,6 +1392,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment } else { screen.removePreference(mLocationTriStatePref); } @@ -2445,7 +2446,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c maybeShowReasonToggleDisabled(screen); -@@ -1569,6 +1599,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1571,6 +1601,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment iconIds = ContentSettingsResources.getTriStateSettingIconIDs(contentType); } triStateToggle.initialize( @@ -2453,8 +2454,8 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c setting, descriptionIds, iconIds, -@@ -1743,6 +1774,14 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment - value = site.getContentSetting(browserContextHandle, contentSettingsType); +@@ -1859,6 +1890,14 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment + selectedButton.setChecked(true); } + AlertDialog.Builder alertDialogBuilder = @@ -2471,7 +2472,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java -@@ -56,6 +56,7 @@ import java.util.Collection; +@@ -57,6 +57,7 @@ import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -2479,7 +2480,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c /** Shows the permissions and other settings for a particular website. */ @NullMarked -@@ -196,7 +197,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -200,7 +201,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment case ContentSettingsType.WINDOW_MANAGEMENT: return "window_management_permission_list"; default: @@ -2488,36 +2489,37 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } } -@@ -596,14 +597,27 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -623,7 +624,8 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment private void setupContentSettingsPreferences() { Preference permissionsHeaderPref = findPreference(PREF_PERMISSIONS_HEADER); mMaxPermissionOrder = permissionsHeaderPref.getOrder(); - for (@ContentSettingsType.EnumType int type : SiteSettingsUtil.SETTINGS_ORDER) { + List order = BromiteCustomContentSettingImpl.getSettingsOrder(); + for (@ContentSettingsType.EnumType int type : order) { -+ @ContentSetting @Nullable Integer value = -+ mSite.getContentSetting( -+ getSiteSettingsDelegate().getBrowserContextHandle(), type); -+ if (value == null) { -+ value = WebsitePreferenceBridge.getDefaultContentSetting( -+ getSiteSettingsDelegate().getBrowserContextHandle(), type); -+ } - Preference preference = -+ BromiteCustomContentSettingImpl -+ .createWebSitePreference(type, getStyledContext(), value); -+ if (preference == null) { -+ preference = - (isOneTime(type) - && PermissionsAndroidFeatureMap.isEnabled( - PermissionsAndroidFeatureList - .APPROXIMATE_GEOLOCATION_PERMISSION)) - ? new ChromeImageViewPreference(getStyledContext()) - : new ChromeSwitchPreference(getStyledContext()); -+ } + Preference preference = getPermissionPreference(type); preference.setKey(getPreferenceKey(type)); - if (type == ContentSettingsType.ADS) { -@@ -1199,7 +1213,16 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -655,6 +657,19 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment + } + + private Preference getPermissionPreference(@ContentSettingsType.EnumType int type) { ++ @ContentSetting @Nullable Integer value = ++ mSite.getContentSetting( ++ getSiteSettingsDelegate().getBrowserContextHandle(), type); ++ if (value == null) { ++ value = WebsitePreferenceBridge.getDefaultContentSetting( ++ getSiteSettingsDelegate().getBrowserContextHandle(), type); ++ } ++ Preference preference = ++ BromiteCustomContentSettingImpl ++ .createWebSitePreference(type, getStyledContext(), value); ++ if (preference != null) ++ return preference; ++ + boolean isOneTime = isOneTime(type); + if (type == ContentSettingsType.GEOLOCATION_WITH_OPTIONS && !isOneTime) { + return createTwoActionLocationSwitchPreference(); +@@ -1254,7 +1269,16 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment @ContentSetting @Nullable Integer value, boolean isEmbargoed, boolean isOneTime) { @@ -2535,7 +2537,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c setUpPreferenceCommon(preference, value); preference.setOnPreferenceChangeListener(this); @ContentSettingsType.EnumType -@@ -1211,7 +1234,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1266,7 +1290,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment isEmbargoed ? getString(R.string.automatically_blocked) : getString( @@ -2544,7 +2546,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c value, isOneTime, isApproximateGeolocation))); if (preference instanceof ChromeImageViewPreference) { ChromeImageViewPreference oneTimePreference = (ChromeImageViewPreference) preference; -@@ -1237,10 +1260,14 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1292,10 +1316,14 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment oneTimePreference.setBackgroundColor(mHighlightColor); } } else { @@ -2563,7 +2565,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c AppCompatResources.getColorStateList(getContext(), mHighlightColor) .getDefaultColor()); } -@@ -1532,7 +1559,13 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1587,7 +1615,13 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment if (newValue instanceof Boolean) { permission = (Boolean) newValue ? getEnabledValue(type) : ContentSetting.BLOCK; } else { @@ -2578,7 +2580,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } if (type == ContentSettingsType.GEOLOCATION_WITH_OPTIONS) { -@@ -1553,7 +1586,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1608,7 +1642,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment // info. preference.setSummary( getString( @@ -2802,7 +2804,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java -@@ -128,7 +128,7 @@ public class WebsitePermissionsFetcher { +@@ -129,7 +129,7 @@ public class WebsitePermissionsFetcher { } break; default: @@ -2952,7 +2954,7 @@ diff --git a/components/content_settings/core/browser/content_settings_registry. diff --git a/components/content_settings/core/browser/content_settings_uma_util.cc b/components/content_settings/core/browser/content_settings_uma_util.cc --- a/components/content_settings/core/browser/content_settings_uma_util.cc +++ b/components/content_settings/core/browser/content_settings_uma_util.cc -@@ -224,11 +224,7 @@ void RecordContentSettingsHistogram(const std::string& name, +@@ -226,11 +226,7 @@ void RecordContentSettingsHistogram(const std::string& name, } int ContentSettingTypeToHistogramValue(ContentSettingsType content_setting) { @@ -3288,10 +3290,11 @@ diff --git a/components/content_settings/core/common/content_settings_mojom_trai diff --git a/components/content_settings/core/common/content_settings_types.mojom b/components/content_settings/core/common/content_settings_types.mojom --- a/components/content_settings/core/common/content_settings_types.mojom +++ b/components/content_settings/core/common/content_settings_types.mojom -@@ -498,5 +498,6 @@ enum ContentSettingsType { - // Setting for enabling the Device Attributes API. Spec link: - // https://wicg.github.io/WebApiDevice/device_attributes/ - DEVICE_ATTRIBUTES, +@@ -508,5 +508,7 @@ enum ContentSettingsType { + // when suspicious warning is shown. If the user has selected this, the + // notification permission will not be revoked based on suspicious verdict. + SUSPICIOUS_NOTIFICATION_SHOW_ORIGINAL, ++ +#include "components/content_settings/core/common/bromite_content_settings.inc" }; // LINT.ThenChange(//components/content_settings/core/browser/content_settings_uma_util.cc:kHistogramValue) @@ -3477,7 +3480,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" -@@ -1367,6 +1368,14 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, +@@ -1377,6 +1378,14 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, // via `HasContentSettingChangedViaPageInfo(type)`. bool PageInfo::ShouldShowPermission( const PageInfo::PermissionInfo& info) const { @@ -3492,7 +3495,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) { -@@ -1494,7 +1503,19 @@ void PageInfo::PresentSitePermissions() { +@@ -1504,7 +1513,19 @@ void PageInfo::PresentSitePermissions() { HostContentSettingsMap* content_settings = GetContentSettings(); DCHECK(web_contents_); @@ -3524,7 +3527,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" -@@ -252,6 +253,13 @@ void CreateOppositeToDefaultSiteException( +@@ -251,6 +252,13 @@ void CreateOppositeToDefaultSiteException( std::u16string GetPermissionAskStateString(ContentSettingsType type) { int message_id = kInvalidResourceID; @@ -3538,7 +3541,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; -@@ -550,6 +558,12 @@ PageInfoUI::~PageInfoUI() = default; +@@ -549,6 +557,12 @@ PageInfoUI::~PageInfoUI() = default; // static std::u16string PageInfoUI::PermissionTypeToUIString(ContentSettingsType type) { @@ -3551,7 +3554,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); -@@ -560,6 +574,12 @@ std::u16string PageInfoUI::PermissionTypeToUIString(ContentSettingsType type) { +@@ -559,6 +573,12 @@ std::u16string PageInfoUI::PermissionTypeToUIString(ContentSettingsType type) { // static std::u16string PageInfoUI::PermissionTypeToUIStringMidSentence( ContentSettingsType type) { @@ -3564,7 +3567,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); -@@ -948,6 +968,11 @@ bool PageInfoUI::ContentSettingsTypeInPageInfo(ContentSettingsType type) { +@@ -947,6 +967,11 @@ bool PageInfoUI::ContentSettingsTypeInPageInfo(ContentSettingsType type) { if (info.type == type) return true; } @@ -3645,7 +3648,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context diff --git a/third_party/blink/renderer/core/execution_context/execution_context.h b/third_party/blink/renderer/core/execution_context/execution_context.h --- a/third_party/blink/renderer/core/execution_context/execution_context.h +++ b/third_party/blink/renderer/core/execution_context/execution_context.h -@@ -42,6 +42,7 @@ +@@ -43,6 +43,7 @@ #include "third_party/blink/public/mojom/frame/lifecycle.mojom-blink-forward.h" #include "third_party/blink/public/mojom/permissions_policy/policy_disposition.mojom-blink-forward.h" #include "third_party/blink/public/mojom/v8_cache_options.mojom-blink-forward.h" @@ -3653,7 +3656,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context #include "third_party/blink/renderer/bindings/core/v8/sanitize_script_errors.h" #include "third_party/blink/renderer/core/core_export.h" #include "third_party/blink/renderer/core/execution_context/security_context.h" -@@ -101,6 +102,10 @@ class SecurityOrigin; +@@ -102,6 +103,10 @@ class SecurityOrigin; class ScriptState; class ScriptWrappable; class TrustedTypePolicyFactory; diff --git a/build/patches/Disable-Compression-Dictionary-Transport.patch b/build/patches/Disable-Compression-Dictionary-Transport.patch index 6f42f164..ff16711d 100644 --- a/build/patches/Disable-Compression-Dictionary-Transport.patch +++ b/build/patches/Disable-Compression-Dictionary-Transport.patch @@ -4,27 +4,28 @@ Subject: Disable Compression Dictionary Transport License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- - .../blink/renderer/platform/runtime_enabled_features.json5 | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) + chrome/browser/chrome_content_browser_client.cc | 3 +-- + .../features_cc/Disable-Compression-Dictionary-Transport.inc | 1 + + 2 files changed, 2 insertions(+), 2 deletions(-) + create mode 100644 cromite_flags/services/network/public/cpp/features_cc/Disable-Compression-Dictionary-Transport.inc -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 -@@ -1065,12 +1065,14 @@ - } - }, - { -- name: "CompressionDictionaryTransport", -+ name: "CompressionDictionaryTransport", // need to be disabled -+ status: "experimental", - base_feature: "none", - public: true, - }, - { -- name: "CompressionDictionaryTransportBackend", -+ name: "CompressionDictionaryTransportBackend", // need to be disabled -+ status: "experimental", - base_feature: "none", - public: true, - }, +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 +@@ -1467,8 +1467,7 @@ void ChromeContentBrowserClient::RegisterProfilePrefs( + registry->RegisterBooleanPref(prefs::kSandboxExternalProtocolBlocked, true); + registry->RegisterBooleanPref(prefs::kSSLErrorOverrideAllowed, true); + registry->RegisterListPref(prefs::kSSLErrorOverrideAllowedForOrigins); +- registry->RegisterBooleanPref(prefs::kCompressionDictionaryTransportEnabled, +- true); ++ registry->RegisterBooleanPref(prefs::kCompressionDictionaryTransportEnabled, false); + #if BUILDFLAG(ENABLE_ON_DEVICE_TRANSLATION) + registry->RegisterBooleanPref(prefs::kTranslatorAPIAllowed, true); + #endif +diff --git a/cromite_flags/services/network/public/cpp/features_cc/Disable-Compression-Dictionary-Transport.inc b/cromite_flags/services/network/public/cpp/features_cc/Disable-Compression-Dictionary-Transport.inc +new file mode 100644 +--- /dev/null ++++ b/cromite_flags/services/network/public/cpp/features_cc/Disable-Compression-Dictionary-Transport.inc +@@ -0,0 +1 @@ ++SET_CROMITE_FEATURE_DISABLED(kCompressionDictionaryTransport); -- diff --git a/build/patches/Enable-search-engine-settings-desktop-ui.patch b/build/patches/Enable-search-engine-settings-desktop-ui.patch index ca80737c..696043a3 100644 --- a/build/patches/Enable-search-engine-settings-desktop-ui.patch +++ b/build/patches/Enable-search-engine-settings-desktop-ui.patch @@ -12,8 +12,8 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html chrome/app/settings_strings.grdp | 3 + chrome/app/settings_strings_android.grdp | 260 ++++++++++++++++++ chrome/browser/BUILD.gn | 3 + - .../chrome_browser_interface_binders.cc | 3 + - .../chrome_browser_interface_binders_webui.cc | 21 ++ + .../chrome_browser_interface_binders_webui.cc | 1 + + ...r_interface_binders_webui_parts_desktop.cc | 3 + chrome/browser/extensions/extension_util.h | 2 +- chrome/browser/resources/BUILD.gn | 7 + chrome/browser/resources/settings/BUILD.gn | 2 +- @@ -80,7 +80,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html ui/webui/resources/images/BUILD.gn | 2 +- ui/webui/resources/js/BUILD.gn | 2 +- ui/webui/resources/js/load_time_data.ts | 17 +- - 73 files changed, 1171 insertions(+), 73 deletions(-) + 73 files changed, 1151 insertions(+), 73 deletions(-) create mode 100644 chrome/app/settings_strings_android.grdp create mode 100644 chrome/browser/search_engines/android/java/res/layout/search_engine_layout.xml create mode 100644 chrome/browser/ui/webui/settings/settings_localized_strings_provider_android.cc @@ -131,7 +131,7 @@ diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources -@@ -527,7 +532,7 @@ are declared in tools/grit/grit_args.gni. +@@ -525,7 +530,7 @@ are declared in tools/grit/grit_args.gni. Disable @@ -143,7 +143,7 @@ diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp --- a/chrome/app/settings_strings.grdp +++ b/chrome/app/settings_strings.grdp -@@ -2218,6 +2218,9 @@ +@@ -2249,6 +2249,9 @@ URL with %s in place of query @@ -421,7 +421,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 -@@ -3706,6 +3706,9 @@ static_library("browser") { +@@ -3718,6 +3718,9 @@ static_library("browser") { "//components/user_scripts/android", ] } @@ -431,64 +431,23 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn } else { #!is_android sources += [ -diff --git a/chrome/browser/chrome_browser_interface_binders.cc b/chrome/browser/chrome_browser_interface_binders.cc ---- a/chrome/browser/chrome_browser_interface_binders.cc -+++ b/chrome/browser/chrome_browser_interface_binders.cc -@@ -89,6 +89,9 @@ - #endif - - #if BUILDFLAG(IS_ANDROID) -+#include "ui/webui/resources/cr_components/help_bubble/help_bubble.mojom.h" -+#include "ui/webui/resources/cr_components/customize_color_scheme_mode/customize_color_scheme_mode.mojom.h" -+#include "chrome/browser/ui/webui/settings/settings_ui_android.h" - #include "chrome/browser/android/dom_distiller/distiller_ui_handle_android.h" - #include "chrome/browser/facilitated_payments/payment_link_handler_binder.h" - #include "chrome/browser/offline_pages/android/offline_page_auto_fetcher.h" 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 -@@ -71,6 +71,12 @@ - #include "components/signin/public/base/signin_switches.h" - #endif +@@ -119,6 +119,7 @@ void PopulateChromeWebUIFrameBinders( -+#if BUILDFLAG(IS_ANDROID) -+#include "ui/webui/resources/cr_components/customize_color_scheme_mode/customize_color_scheme_mode.mojom.h" -+#include "ui/webui/resources/cr_components/help_bubble/help_bubble.mojom.h" -+#include "chrome/browser/ui/webui/settings/settings_ui.h" -+#endif -+ #if BUILDFLAG(IS_ANDROID) - #include "chrome/browser/ui/webui/feed_internals/feed_internals.mojom.h" - #include "chrome/browser/ui/webui/feed_internals/feed_internals_ui.h" -@@ -503,6 +509,15 @@ void PopulateChromeWebUIFrameBinders( - } - #endif - -+#if BUILDFLAG(IS_ANDROID) -+ RegisterWebUIControllerInterfaceBinder< -+ help_bubble::mojom::HelpBubbleHandlerFactory, settings::SettingsUI>(map); -+ -+ RegisterWebUIControllerInterfaceBinder< -+ customize_color_scheme_mode::mojom:: -+ CustomizeColorSchemeModeHandlerFactory, settings::SettingsUI>(map); -+#endif -+ - #if !BUILDFLAG(IS_ANDROID) - RegisterWebUIControllerInterfaceBinder< - actor_internals::mojom::PageHandlerFactory, ActorInternalsUI>(map); -@@ -660,6 +675,9 @@ void PopulateChromeWebUIFrameBinders( - RegisterWebUIControllerInterfaceBinder(map); - -+#if BUILDFLAG(IS_ANDROID) + PopulateChromeWebUIFrameBindersPartsAndroid(map, render_frame_host); +#error "Check this patch" -+#endif - RegisterWebUIControllerInterfaceBinder< - password_manager::mojom::PageHandlerFactory, PasswordManagerUI>(map); - -@@ -683,6 +701,9 @@ void PopulateChromeWebUIFrameBinders( - CertificateManagerUI>(map); - #endif // BUILDFLAG(CHROME_ROOT_STORE_CERT_MANAGEMENT_UI) + #else + PopulateChromeWebUIFrameBindersPartsDesktop(map, render_frame_host); + #endif // BUILDFLAG(IS_ANDROID) +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 +@@ -366,6 +366,9 @@ void PopulateChromeWebUIFrameBindersPartsDesktop( + #endif // !BUILDFLAG(IS_CHROMEOS) + >(map); +#if BUILDFLAG(IS_ANDROID) +#error "Check this patch" @@ -540,7 +499,7 @@ diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resourc diff --git a/chrome/browser/resources/settings/page_visibility.ts b/chrome/browser/resources/settings/page_visibility.ts --- a/chrome/browser/resources/settings/page_visibility.ts +++ b/chrome/browser/resources/settings/page_visibility.ts -@@ -41,8 +41,42 @@ export interface PrivacyPageVisibility { +@@ -42,8 +42,42 @@ export interface PrivacyPageVisibility { searchPrediction: boolean; } @@ -698,7 +657,7 @@ diff --git a/chrome/browser/resources/settings/search_page/search_engines_page.h + @@ -831,8 +790,8 @@ diff --git a/chrome/browser/search/background/BUILD.gn b/chrome/browser/search/b # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. --assert(is_win || is_mac || is_linux || is_chromeos) -+# assert(is_win || is_mac || is_linux || is_chromeos) +-assert(is_win || is_mac || is_linux || is_chromeos || is_android) ++# assert(is_win || is_mac || is_linux || is_chromeos || is_android) import("//third_party/protobuf/proto_library.gni") @@ -840,9 +799,9 @@ diff --git a/chrome/browser/search/background/BUILD.gn b/chrome/browser/search/b source_set("background") { public = [ "ntp_background_service_factory.h", -@@ -58,6 +59,7 @@ source_set("background") { - "//ui/gfx/codec", - ] +@@ -73,6 +74,7 @@ source_set("background") { + ] + } } +} @@ -937,7 +896,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 -@@ -671,7 +671,11 @@ static_library("ui") { +@@ -684,7 +684,11 @@ static_library("ui") { deps += [ "//chrome/browser/ui/android/extensions/windowing/internal" ] } } @@ -950,7 +909,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) { -@@ -985,6 +989,25 @@ static_library("ui") { +@@ -1012,6 +1016,25 @@ static_library("ui") { "//extensions/browser:extension_action_enums", ] } @@ -1172,7 +1131,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/u #if BUILDFLAG(ENABLE_WEBUI_CERTIFICATE_VIEWER) #include "chrome/browser/ui/webui/certificate_viewer/certificate_viewer_ui.h" #endif -@@ -441,4 +446,7 @@ void RegisterChromeWebUIConfigs() { +@@ -443,4 +448,7 @@ void RegisterChromeWebUIConfigs() { #if BUILDFLAG(ENTERPRISE_WATERMARK) map.AddWebUIConfig(std::make_unique()); #endif @@ -1183,7 +1142,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/u diff --git a/chrome/browser/ui/webui/favicon_source.cc b/chrome/browser/ui/webui/favicon_source.cc --- a/chrome/browser/ui/webui/favicon_source.cc +++ b/chrome/browser/ui/webui/favicon_source.cc -@@ -230,6 +230,7 @@ bool FaviconSource::ShouldServiceRequest( +@@ -235,6 +235,7 @@ bool FaviconSource::ShouldServiceRequest( render_process_id); } @@ -1191,7 +1150,7 @@ diff --git a/chrome/browser/ui/webui/favicon_source.cc b/chrome/browser/ui/webui ui::NativeTheme* FaviconSource::GetNativeTheme( const content::WebContents::Getter& wc_getter) { #if BUILDFLAG(IS_ANDROID) -@@ -238,6 +239,7 @@ ui::NativeTheme* FaviconSource::GetNativeTheme( +@@ -243,6 +244,7 @@ ui::NativeTheme* FaviconSource::GetNativeTheme( return webui::GetNativeThemeDeprecated(wc_getter.Run()); #endif } @@ -1199,39 +1158,42 @@ diff --git a/chrome/browser/ui/webui/favicon_source.cc b/chrome/browser/ui/webui void FaviconSource::OnFaviconDataAvailable( content::URLDataSource::GotDataCallback callback, -@@ -261,7 +263,11 @@ void FaviconSource::SendDefaultResponse( - parsed.device_scale_factor, - parsed.force_light_mode - ? false +@@ -265,8 +267,12 @@ void FaviconSource::SendDefaultResponse( + SendDefaultResponse( + std::move(callback), parsed.size_in_dip, parsed.device_scale_factor, + !parsed.force_light_mode && +#if !BUILDFLAG(IS_ANDROID) - : GetNativeTheme(wc_getter)->ShouldUseDarkColors()); + GetNativeTheme(wc_getter)->preferred_color_scheme() == + ui::NativeTheme::PreferredColorScheme::kDark, +#else -+ : false); ++ false, +#endif - return; - } - int icon_size = std::ceil(parsed.size_in_dip * parsed.device_scale_factor); -@@ -281,7 +287,11 @@ void FaviconSource::SendDefaultResponse( + parsed.force_empty_default_favicon + ? DefaultFaviconBehavior::kUseEmptyIcon + : DefaultFaviconBehavior::kUseGlobeIcon); +@@ -289,9 +295,13 @@ void FaviconSource::SendDefaultResponse( + DefaultFaviconBehavior behavior) { SendDefaultResponse(std::move(callback), 16, 1.0f, - force_light_mode - ? false + !force_light_mode && +#if !BUILDFLAG(IS_ANDROID) - : GetNativeTheme(wc_getter)->ShouldUseDarkColors()); + GetNativeTheme(wc_getter)->preferred_color_scheme() == + ui::NativeTheme::PreferredColorScheme::kDark, + behavior); +#else + : false); +#endif } void FaviconSource::SendDefaultResponse( -@@ -292,6 +302,7 @@ void FaviconSource::SendDefaultResponse( - base::UmaHistogramBoolean(kDefaultResponseHistogramName, true); +@@ -309,6 +319,7 @@ void FaviconSource::SendDefaultResponse( + int resource_id; switch (size_in_dip) { +#if !BUILDFLAG(IS_ANDROID) case 64: resource_id = dark_mode ? IDR_DEFAULT_FAVICON_DARK_64 : IDR_DEFAULT_FAVICON_64; -@@ -300,6 +311,7 @@ void FaviconSource::SendDefaultResponse( +@@ -317,6 +328,7 @@ void FaviconSource::SendDefaultResponse( resource_id = dark_mode ? IDR_DEFAULT_FAVICON_DARK_32 : IDR_DEFAULT_FAVICON_32; break; @@ -1242,14 +1204,12 @@ diff --git a/chrome/browser/ui/webui/favicon_source.cc b/chrome/browser/ui/webui diff --git a/chrome/browser/ui/webui/favicon_source.h b/chrome/browser/ui/webui/favicon_source.h --- a/chrome/browser/ui/webui/favicon_source.h +++ b/chrome/browser/ui/webui/favicon_source.h -@@ -64,9 +64,11 @@ class FaviconSource : public content::URLDataSource { +@@ -69,7 +69,9 @@ class FaviconSource : public content::URLDataSource { int render_process_id) override; protected: +#if !BUILDFLAG(IS_ANDROID) // Exposed for testing. - virtual ui::NativeTheme* GetNativeTheme( - const content::WebContents::Getter& wc_getter); +#endif virtual base::RefCountedMemory* LoadIconBytes(float scale_factor, int resource_id); @@ -1257,7 +1217,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 -@@ -34,10 +34,12 @@ +@@ -36,10 +36,12 @@ #include "components/search_engines/template_url.h" #include "components/search_engines/template_url_service.h" #include "content/public/browser/web_ui.h" @@ -1270,7 +1230,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" -@@ -49,6 +51,7 @@ namespace { +@@ -51,6 +53,7 @@ namespace { const char kSearchEngineField[] = "searchEngine"; const char kKeywordField[] = "keyword"; const char kQueryUrlField[] = "queryUrl"; @@ -1278,7 +1238,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; -@@ -252,9 +255,10 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine( +@@ -254,9 +257,10 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine( IDS_SEARCH_ENGINES_EDITOR_DESCRIPTION_COLUMN)); dict.Set("keyword", table_model->GetText( index, IDS_SEARCH_ENGINES_EDITOR_KEYWORD_COLUMN)); @@ -1290,7 +1250,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() > 0))); GURL icon_url = template_url->favicon_url(); -@@ -268,6 +272,8 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine( +@@ -273,6 +277,8 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine( #endif } @@ -1299,7 +1259,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. -@@ -284,6 +290,7 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine( +@@ -289,6 +295,7 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine( base::StrCat({"chrome://theme/", template_url->GetBuiltinImageResourceId(), "@2x"})); } @@ -1307,7 +1267,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome dict.Set("modelIndex", base::checked_cast(index)); -@@ -300,6 +307,7 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine( +@@ -305,6 +312,7 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine( dict.Set("isOmniboxExtension", type == TemplateURL::OMNIBOX_API_EXTENSION); dict.Set("isPrepopulated", template_url->prepopulate_id() > 0); dict.Set("isStarterPack", template_url->starter_pack_id() > 0); @@ -1315,7 +1275,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 = -@@ -316,6 +324,7 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine( +@@ -321,6 +329,7 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine( dict.Set("extension", std::move(ext_info)); } } @@ -1323,7 +1283,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome return dict; } -@@ -418,12 +427,13 @@ void SearchEnginesHandler::HandleSearchEngineEditStarted( +@@ -423,12 +432,13 @@ void SearchEnginesHandler::HandleSearchEngineEditStarted( void SearchEnginesHandler::OnEditedKeyword(TemplateURL* template_url, const std::u16string& title, const std::u16string& keyword, @@ -1340,7 +1300,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome } edit_controller_.reset(); -@@ -453,6 +463,8 @@ bool SearchEnginesHandler::CheckFieldValidity(const std::string& field_name, +@@ -458,6 +468,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); @@ -1349,7 +1309,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome } else { NOTREACHED(); } -@@ -475,18 +487,20 @@ void SearchEnginesHandler::HandleSearchEngineEditCompleted( +@@ -480,18 +492,20 @@ void SearchEnginesHandler::HandleSearchEngineEditCompleted( return; } @@ -1389,7 +1349,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 -@@ -2560,6 +2560,8 @@ void AddSearchEnginesStrings(content::WebUIDataSource* html_source) { +@@ -2586,6 +2586,8 @@ void AddSearchEnginesStrings(content::WebUIDataSource* html_source) { {"searchEnginesQueryURL", IDS_SETTINGS_SEARCH_ENGINES_QUERY_URL}, {"searchEnginesQueryURLExplanation", IDS_SETTINGS_SEARCH_ENGINES_QUERY_URL_EXPLANATION}, @@ -1398,7 +1358,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}, -@@ -3849,7 +3851,11 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, +@@ -3879,7 +3881,11 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, AddSiteSettingsStrings(html_source, profile); AddSiteDataPageStrings(html_source, profile); AddStorageAccessStrings(html_source); @@ -1947,18 +1907,18 @@ diff --git a/components/search_engines/android/template_url_service_android.cc b diff --git a/components/search_engines/search_engines_switches.cc b/components/search_engines/search_engines_switches.cc --- a/components/search_engines/search_engines_switches.cc +++ b/components/search_engines/search_engines_switches.cc -@@ -53,6 +53,7 @@ const base::FeatureParam kSearchEngineChoiceTriggerRepromptParams{ +@@ -43,6 +43,7 @@ const base::FeatureParam kSearchEngineChoiceTriggerRepromptParams{ &kSearchEngineChoiceTriggerReprompt, /*name=*/"reprompt", /*default_value=*/kSearchEngineChoiceNoRepromptString}; +SET_CROMITE_FEATURE_DISABLED(kSearchEngineChoiceTriggerReprompt); #if BUILDFLAG(IS_ANDROID) - COMPONENT_EXPORT(SEARCH_ENGINES_SWITCHES) + BASE_FEATURE(kSuppressDefaultBrowserPromoIfChoiceSet, diff --git a/components/search_engines/template_url.cc b/components/search_engines/template_url.cc --- a/components/search_engines/template_url.cc +++ b/components/search_engines/template_url.cc -@@ -2125,6 +2125,10 @@ void TemplateURL::SetURL(const std::string& url) { +@@ -2149,6 +2149,10 @@ void TemplateURL::SetURL(const std::string& url) { url_ref().InvalidateCachedValues(); } @@ -1972,7 +1932,7 @@ diff --git a/components/search_engines/template_url.cc b/components/search_engin diff --git a/components/search_engines/template_url.h b/components/search_engines/template_url.h --- a/components/search_engines/template_url.h +++ b/components/search_engines/template_url.h -@@ -1007,6 +1007,7 @@ class TemplateURL { +@@ -1012,6 +1012,7 @@ class TemplateURL { bool CreatedByRegulatoryProgram() const; void SetURL(const std::string& url); @@ -2316,7 +2276,7 @@ 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 -@@ -33,7 +33,7 @@ build_webui("build") { +@@ -36,7 +36,7 @@ build_webui("build") { "cr_tabs/cr_tabs.css", ] diff --git a/build/patches/Eyeo-Adblock-for-Cromite.patch b/build/patches/Eyeo-Adblock-for-Cromite.patch index 10dfca4d..920ad8a3 100644 --- a/build/patches/Eyeo-Adblock-for-Cromite.patch +++ b/build/patches/Eyeo-Adblock-for-Cromite.patch @@ -878,7 +878,7 @@ diff --git a/chrome/browser/adblock/android/java/src/org/chromium/chrome/browser diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -6517,7 +6517,9 @@ ChromeContentBrowserClient:: +@@ -6516,7 +6516,9 @@ ChromeContentBrowserClient:: } bool ChromeContentBrowserClient::WillInterceptWebSocket( @@ -889,7 +889,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch #if BUILDFLAG(ENABLE_EXTENSIONS_CORE) if (!frame) { return false; -@@ -6540,9 +6542,11 @@ bool ChromeContentBrowserClient::WillInterceptWebSocket( +@@ -6539,9 +6541,11 @@ bool ChromeContentBrowserClient::WillInterceptWebSocket( } void ChromeContentBrowserClient::CreateWebSocket( diff --git a/build/patches/Fix-chromium-build-bugs.patch b/build/patches/Fix-chromium-build-bugs.patch index d8eaadab..33d9a314 100644 --- a/build/patches/Fix-chromium-build-bugs.patch +++ b/build/patches/Fix-chromium-build-bugs.patch @@ -11,17 +11,15 @@ https://bugs.chromium.org/p/chromium/issues/detail?id=1491776#c10 .../component_updater/installer_policies/BUILD.gn | 1 + .../omnibox/browser/autocomplete_classifier.cc | 4 ++-- components/omnibox/browser/omnibox_field_trial.cc | 4 ++-- - components/plus_addresses/BUILD.gn | 1 + .../phishing_classifier/phishing_image_embedder.cc | 14 +++----------- content/browser/browser_interface_binders.cc | 1 + - net/BUILD.gn | 1 + services/webnn/dml/graph_impl_dml.cc | 1 + - 11 files changed, 15 insertions(+), 16 deletions(-) + 9 files changed, 13 insertions(+), 16 deletions(-) diff --git a/BUILD.gn b/BUILD.gn --- a/BUILD.gn +++ b/BUILD.gn -@@ -422,7 +422,6 @@ group("gn_all") { +@@ -411,7 +411,6 @@ group("gn_all") { "//android_webview:empty_group", "//android_webview/test", "//android_webview/tools/automated_ui_tests:webview_ui_test_app_test_apk", @@ -44,7 +42,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 -@@ -299,6 +299,7 @@ static_library("safe_browsing") { +@@ -300,6 +300,7 @@ static_library("safe_browsing") { "//components/version_info", "//content/public/browser", "//services/preferences/public/mojom", @@ -66,7 +64,7 @@ diff --git a/components/component_updater/installer_policies/BUILD.gn b/componen diff --git a/components/omnibox/browser/autocomplete_classifier.cc b/components/omnibox/browser/autocomplete_classifier.cc --- a/components/omnibox/browser/autocomplete_classifier.cc +++ b/components/omnibox/browser/autocomplete_classifier.cc -@@ -131,8 +131,8 @@ void AutocompleteClassifier::Classify( +@@ -136,8 +136,8 @@ void AutocompleteClassifier::Classify( metrics::OmniboxEventProto::PageClassification page_classification, AutocompleteMatch* match, GURL* alternate_nav_url) { @@ -94,17 +92,6 @@ diff --git a/components/omnibox/browser/omnibox_field_trial.cc b/components/omni } MLConfig& ScopedMLConfigForTesting::GetMLConfig() { -diff --git a/components/plus_addresses/BUILD.gn b/components/plus_addresses/BUILD.gn ---- a/components/plus_addresses/BUILD.gn -+++ b/components/plus_addresses/BUILD.gn -@@ -59,6 +59,7 @@ source_set("plus_addresses") { - "//services/data_decoder/public/cpp", - "//services/network/public/cpp", - "//ui/base", -+ "//third_party/re2", - ] - public_deps = [ - "//base", diff --git a/components/safe_browsing/content/renderer/phishing_classifier/phishing_image_embedder.cc b/components/safe_browsing/content/renderer/phishing_classifier/phishing_image_embedder.cc --- a/components/safe_browsing/content/renderer/phishing_classifier/phishing_image_embedder.cc +++ b/components/safe_browsing/content/renderer/phishing_classifier/phishing_image_embedder.cc @@ -140,21 +127,10 @@ diff --git a/content/browser/browser_interface_binders.cc b/content/browser/brow auto* view = RenderWidgetHostViewAndroid::FromRenderWidgetHostView(host->GetView()); if (!view || !view->text_suggestion_host()) -diff --git a/net/BUILD.gn b/net/BUILD.gn ---- a/net/BUILD.gn -+++ b/net/BUILD.gn -@@ -1829,6 +1829,7 @@ component("net") { - ] - deps += [ "//sql" ] - } -+ # test: configs -= [ "//build/config/clang:find_bad_constructs" ] - } - - # net_export.h has its own build target so that code (eg 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 -@@ -248,6 +248,7 @@ base::expected CreateUnexpectedError( +@@ -246,6 +246,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/History-number-of-days-privacy-setting.patch b/build/patches/History-number-of-days-privacy-setting.patch index d396b5c0..18f645db 100644 --- a/build/patches/History-number-of-days-privacy-setting.patch +++ b/build/patches/History-number-of-days-privacy-setting.patch @@ -157,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 -@@ -44,6 +44,7 @@ +@@ -45,6 +45,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" @@ -165,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" -@@ -230,6 +231,9 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { +@@ -231,6 +232,9 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { (*s_allowlist)[::prefs::kSplitViewDragAndDropEnabled] = settings_api::PrefType::kBoolean; @@ -178,7 +178,7 @@ diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chro diff --git a/chrome/browser/history/history_service_factory.cc b/chrome/browser/history/history_service_factory.cc --- a/chrome/browser/history/history_service_factory.cc +++ b/chrome/browser/history/history_service_factory.cc -@@ -29,6 +29,8 @@ std::unique_ptr BuildHistoryService( +@@ -30,6 +30,8 @@ std::unique_ptr BuildHistoryService( context->GetPath(), chrome::GetChannel()))) { return nullptr; } @@ -201,26 +201,26 @@ 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 -@@ -92,6 +92,15 @@ - sub-label="$i18n{permissionsPageDescription}" - on-click="onPermissionsPageClick_" - role-description="$i18n{subpageArrowRoleDescription}"> -+
-+ -+ -+ -+
- -
[[dbdDeletionConfirmationToastLabel_]]
-
+@@ -76,6 +76,15 @@ + sub-label="$i18n{permissionsPageDescription}" + on-click="onPermissionsPageClick_" + role-description="$i18n{subpageArrowRoleDescription}"> ++
++ ++ ++ ++
+ +
[[dbdDeletionConfirmationToastLabel_]]
+
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 -@@ -83,6 +83,23 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase { +@@ -62,6 +62,23 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase { static get properties() { return { @@ -241,21 +241,21 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.ts b/ch + }, + }, + - isGuest_: { - type: Boolean, - value() { -@@ -286,6 +303,7 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase { + showClearBrowsingDataDialog_: Boolean, + showPrivacyGuideDialog_: Boolean, + +@@ -101,6 +118,7 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase { }; } + declare private historyExpireDaysThresholdOptions_: object[]; - declare private isGuest_: boolean; - declare private showPersistentPermissions_: boolean; declare private showClearBrowsingDataDialog_: boolean; + declare private showPrivacyGuideDialog_: boolean; + declare private enableDeleteBrowsingDataRevamp_: 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 -@@ -1246,6 +1246,18 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1252,6 +1252,18 @@ Your Google account may have other forms of browsing history like searches and a Browsing history @@ -277,7 +277,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 -@@ -2062,6 +2062,11 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, +@@ -2076,6 +2076,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}, @@ -476,7 +476,7 @@ diff --git a/components/history/core/browser/history_backend.cc b/components/his // The maximum number of days for which domain visit metrics are computed // each time HistoryBackend::GetDomainDiversity() is called. constexpr int kDomainDiversityMaxBacktrackedDays = 7; -@@ -1333,6 +1337,19 @@ void HistoryBackend::InitImpl( +@@ -1338,6 +1342,19 @@ void HistoryBackend::InitImpl( expirer_.StartExpiringOldStuff(base::Days(kExpireDaysThreshold)); } @@ -532,7 +532,7 @@ diff --git a/components/history/core/browser/history_service.cc b/components/his #include "components/history/core/browser/download_row.h" #include "components/history/core/browser/features.h" #include "components/history/core/browser/history_backend.h" -@@ -565,6 +568,33 @@ base::CancelableTaskTracker::TaskId HistoryService::ScheduleDBTask( +@@ -511,6 +514,33 @@ base::CancelableTaskTracker::TaskId HistoryService::ScheduleDBTask( return task_id; } @@ -566,7 +566,7 @@ diff --git a/components/history/core/browser/history_service.cc b/components/his void HistoryService::ScheduleDBTaskForUI( base::OnceCallback callback) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); -@@ -1467,6 +1497,9 @@ void HistoryService::Cleanup() { +@@ -1420,6 +1450,9 @@ void HistoryService::Cleanup() { return; } @@ -588,7 +588,7 @@ diff --git a/components/history/core/browser/history_service.h b/components/hist #include "components/history/core/browser/history_types.h" #include "components/history/core/browser/keyword_id.h" #include "components/history/core/browser/url_row.h" -@@ -115,6 +117,8 @@ class HistoryService : public KeyedService, +@@ -119,6 +121,8 @@ class HistoryService : public KeyedService, // Returns the directory containing the History databases. const base::FilePath& history_dir() const { return history_dir_; } @@ -597,7 +597,7 @@ diff --git a/components/history/core/browser/history_service.h b/components/hist // Triggers the backend to load if it hasn't already, and then returns whether // it's finished loading. // Note: Virtual needed for mocking. -@@ -1184,6 +1188,10 @@ class HistoryService : public KeyedService, +@@ -1169,6 +1173,10 @@ class HistoryService : public KeyedService, raw_ptr local_device_info_provider_ = nullptr; 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 45f8d6d7..9d365e9d 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 -@@ -638,6 +638,8 @@ chrome_java_resources = [ +@@ -652,6 +652,8 @@ chrome_java_resources = [ "java/res/xml/personalize_google_services_preferences.xml", "java/res/xml/incognito_preferences.xml", "java/res/xml/privacy_preferences.xml", @@ -56,7 +56,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -931,6 +931,8 @@ chrome_java_sources = [ +@@ -941,6 +941,8 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxSurveyController.java", "java/src/org/chromium/chrome/browser/privacy_sandbox/TrackingProtectionSnackbarController.java", "java/src/org/chromium/chrome/browser/privacy_sandbox/TrackingProtectionSnackbarLimiter.java", @@ -395,7 +395,7 @@ new file mode 100644 diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chrome/browser/extensions/api/settings_private/prefs_util.cc --- a/chrome/browser/extensions/api/settings_private/prefs_util.cc +++ b/chrome/browser/extensions/api/settings_private/prefs_util.cc -@@ -234,6 +234,11 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { +@@ -235,6 +235,11 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { (*s_allowlist)[::prefs::kExpireDaysThreshold] = settings_api::PrefType::kNumber; @@ -410,7 +410,7 @@ diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chro diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc --- a/chrome/browser/net/system_network_context_manager.cc +++ b/chrome/browser/net/system_network_context_manager.cc -@@ -674,6 +674,9 @@ SystemNetworkContextManager::SystemNetworkContextManager( +@@ -672,6 +672,9 @@ SystemNetworkContextManager::SystemNetworkContextManager( base::BindRepeating(&SystemNetworkContextManager::UpdateReferrersEnabled, base::Unretained(this))); @@ -420,7 +420,7 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows pref_change_registrar_.Add( prefs::kExplicitlyAllowedNetworkPorts, base::BindRepeating( -@@ -756,6 +759,7 @@ void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) { +@@ -754,6 +757,7 @@ void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) { // the system NetworkContext, and the per-profile pref values are used for // the profile NetworkContexts. registry->RegisterBooleanPref(prefs::kEnableReferrers, true); @@ -431,9 +431,9 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows diff --git a/chrome/browser/renderer_preferences_util.cc b/chrome/browser/renderer_preferences_util.cc --- a/chrome/browser/renderer_preferences_util.cc +++ b/chrome/browser/renderer_preferences_util.cc -@@ -146,6 +146,7 @@ void UpdateFromSystemSettings(blink::RendererPreferences* prefs, - #endif - #endif +@@ -142,6 +142,7 @@ void UpdateFromSystemSettings(blink::RendererPreferences* prefs, + prefs->caret_blink_interval = + ui::NativeTheme::GetInstanceForNativeUi()->caret_blink_interval(); prefs->enable_referrers = pref_service->GetBoolean(prefs::kEnableReferrers); + prefs->referrers_policy = pref_service->GetInteger(prefs::kReferrersPolicy); prefs->enable_do_not_track = @@ -442,28 +442,28 @@ 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 -@@ -101,6 +101,16 @@ - menu-options="[[historyExpireDaysThresholdOptions_]]"> - -
-+
-+ -+ -+ -+
- -
[[dbdDeletionConfirmationToastLabel_]]
-
+@@ -85,6 +85,16 @@ + menu-options="[[historyExpireDaysThresholdOptions_]]"> + +
++
++ ++ ++ ++
+ +
[[dbdDeletionConfirmationToastLabel_]]
+
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 -@@ -100,6 +100,17 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase { - }, +@@ -92,6 +92,17 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase { + value: () => loadTimeData.getBoolean('isPrivacySandboxRestricted'), }, + referersPolicyOptions_: { @@ -477,18 +477,18 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.ts b/ch + ]; + }, + }, - isGuest_: { + isPrivacySandboxRestrictedNoticeEnabled_: { type: Boolean, - value() { -@@ -323,6 +334,7 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase { - declare private enableWebPrintingContentSetting_: boolean; + value: () => +@@ -122,6 +133,7 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase { + declare private showClearBrowsingDataDialog_: boolean; + declare private showPrivacyGuideDialog_: boolean; + declare private enableDeleteBrowsingDataRevamp_: boolean; ++ declare private referersPolicyOptions_: object[]; + declare private enableIncognitoTrackingProtections_: boolean; declare private isPrivacySandboxRestricted_: boolean; declare private isPrivacySandboxRestrictedNoticeEnabled_: boolean; -+ declare private referersPolicyOptions_: object[]; - private privateStateTokensEnabled_: boolean; - declare private autoPictureInPictureEnabled_: boolean; - declare private capturedSurfaceControlEnabled_: boolean; -@@ -397,6 +409,12 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase { +@@ -153,6 +165,12 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase { Router.getInstance().navigateTo(routes.COOKIES); } @@ -504,7 +504,7 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.ts b/ch diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -1074,6 +1074,30 @@ For more settings that use data to improve your Chrome experience, go to @@ -562,7 +562,7 @@ diff --git a/chrome/browser/ui/prefs/prefs_tab_helper.cc b/chrome/browser/ui/pre diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc --- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc +++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc -@@ -2067,6 +2067,10 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, +@@ -2081,6 +2081,10 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, {"dayHistory", IDS_SETTINGS_DAY_HISTORY_DESCRIPTION}, {"daysHistory", IDS_SETTINGS_DAYS_HISTORY_DESCRIPTION}, {"foreverHistory", IDS_SETTINGS_FOREVER_HISTORY_DESCRIPTION}, @@ -576,7 +576,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h --- a/chrome/common/pref_names.h +++ b/chrome/common/pref_names.h -@@ -1569,6 +1569,9 @@ inline constexpr char kEnableReferrers[] = "enable_referrers"; +@@ -1553,6 +1553,9 @@ inline constexpr char kEnableReferrers[] = "enable_referrers"; inline constexpr char kEnableEncryptedMedia[] = "webkit.webprefs.encrypted_media_enabled"; @@ -639,7 +639,7 @@ diff --git a/components/download/content/internal/context_menu_download.cc b/com diff --git a/content/browser/renderer_host/navigation_request.cc b/content/browser/renderer_host/navigation_request.cc --- a/content/browser/renderer_host/navigation_request.cc +++ b/content/browser/renderer_host/navigation_request.cc -@@ -397,6 +397,15 @@ void AddAdditionalRequestHeaders( +@@ -403,6 +403,15 @@ void AddAdditionalRequestHeaders( blink::mojom::Referrer(GURL(), network::mojom::ReferrerPolicy::kNever); } @@ -658,7 +658,7 @@ diff --git a/content/browser/renderer_host/navigation_request.cc b/content/brows diff --git a/services/network/public/cpp/resource_request.h b/services/network/public/cpp/resource_request.h --- a/services/network/public/cpp/resource_request.h +++ b/services/network/public/cpp/resource_request.h -@@ -170,7 +170,7 @@ struct COMPONENT_EXPORT(NETWORK_CPP_BASE) ResourceRequest { +@@ -178,7 +178,7 @@ struct COMPONENT_EXPORT(NETWORK_CPP_BASE) ResourceRequest { std::vector navigation_redirect_chain; GURL referrer; diff --git a/build/patches/Remove-help-menu-item.patch b/build/patches/Remove-help-menu-item.patch index 4b8227ae..f12c96e0 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 -@@ -1128,9 +1128,6 @@ public class KeyboardShortcuts { +@@ -1134,9 +1134,6 @@ public class KeyboardShortcuts { currentTab.goForward(); } return true; @@ -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 -@@ -2496,15 +2496,6 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -2544,15 +2544,6 @@ public abstract class ChromeActivity extends AsyncInitializationActivity final Tab currentTab = getActivityTab(); @@ -52,9 +52,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv - return true; - } - - if (id == R.id.open_history_menu_id) { - if (currentTab != null && UrlUtilities.isNtpUrl(currentTab.getUrl())) { - NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_HISTORY_MANAGER); + if (id == R.id.feedback_form) { + String url = currentTab != null ? currentTab.getUrl().getSpec() : ""; + String helpContextId = 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 @@ -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 -@@ -895,6 +895,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -905,6 +905,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment TraceEventVectorDrawableCompat.create( getResources(), R.drawable.ic_help_and_feedback, 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 -@@ -1151,7 +1151,6 @@ public abstract class BaseCustomTabActivity extends ChromeActivity { +@@ -1153,7 +1153,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 @@ -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 -@@ -462,6 +462,7 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -701,6 +701,7 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity help.setIcon( TraceEventVectorDrawableCompat.create( getResources(), R.drawable.ic_help_and_feedback, 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 -@@ -170,6 +170,7 @@ public class GoogleServicesSettings extends ChromeBaseSettingsFragment +@@ -171,6 +171,7 @@ public class GoogleServicesSettings extends ChromeBaseSettingsFragment MenuItem help = menu.add(Menu.NONE, R.id.menu_id_targeted_help, Menu.NONE, R.string.menu_help); help.setIcon(R.drawable.ic_help_and_feedback); @@ -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 -@@ -317,6 +317,7 @@ public class ManageSyncSettings extends ChromeBaseSettingsFragment +@@ -318,6 +318,7 @@ public class ManageSyncSettings extends ChromeBaseSettingsFragment MenuItem help = menu.add(Menu.NONE, R.id.menu_id_targeted_help, Menu.NONE, R.string.menu_help); help.setIcon(R.drawable.ic_help_and_feedback); @@ -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 -@@ -379,7 +379,7 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm +@@ -399,7 +399,7 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm } // Help @@ -191,7 +191,7 @@ diff --git a/chrome/browser/prefetch/android/java/src/org/chromium/chrome/browse diff --git a/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxSettingsBaseFragment.java b/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxSettingsBaseFragment.java --- a/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxSettingsBaseFragment.java +++ b/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxSettingsBaseFragment.java -@@ -67,6 +67,7 @@ public abstract class PrivacySandboxSettingsBaseFragment extends ChromeBaseSetti +@@ -69,6 +69,7 @@ public abstract class PrivacySandboxSettingsBaseFragment extends ChromeBaseSetti help.setIcon( TraceEventVectorDrawableCompat.create( getResources(), R.drawable.ic_help_and_feedback, getActivity().getTheme())); @@ -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 -@@ -139,6 +139,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/Restore-Simplified-NTP-launch.patch b/build/patches/Restore-Simplified-NTP-launch.patch index 5fed3693..f2389ebd 100644 --- a/build/patches/Restore-Simplified-NTP-launch.patch +++ b/build/patches/Restore-Simplified-NTP-launch.patch @@ -28,12 +28,12 @@ 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 | 29 +- + .../chrome/browser/ntp/NewTabPageLayout.java | 28 +- .../suggestions/SuggestionsConfig.java | 2 +- .../SuggestionsNavigationDelegate.java | 27 +- .../tile/MostVisitedTilesCoordinator.java | 6 +- .../tile/MostVisitedTilesGridLayout.java | 287 ++++++++++++++++++ - .../tile/MostVisitedTilesMediator.java | 12 +- + .../tile/MostVisitedTilesMediator.java | 8 +- .../tile/TileDragDelegateImpl.java | 16 +- .../suggestions/tile/TileRenderer.java | 8 +- .../suggestions/tile/TilesLinearLayout.java | 2 +- @@ -47,7 +47,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 + - 41 files changed, 639 insertions(+), 60 deletions(-) + 41 files changed, 639 insertions(+), 55 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 @@ -77,7 +77,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", -@@ -528,6 +533,7 @@ chrome_java_resources = [ +@@ -538,6 +543,7 @@ chrome_java_resources = [ "java/res/layout/manage_sync_settings_bottom_bar.xml", "java/res/layout/material_tooltip.xml", "java/res/layout/multiline_spinner_item.xml", @@ -85,7 +85,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja "java/res/layout/mv_tiles_layout.xml", "java/res/layout/navigation_bubble.xml", "java/res/layout/navigation_sheet.xml", -@@ -537,8 +543,10 @@ chrome_java_resources = [ +@@ -547,8 +553,10 @@ chrome_java_resources = [ "java/res/layout/new_custom_tab_toolbar.xml", "java/res/layout/new_tab_page_incognito.xml", "java/res/layout/new_tab_page_layout.xml", @@ -99,7 +99,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 -@@ -613,6 +613,7 @@ chrome_java_sources = [ +@@ -617,6 +617,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", @@ -107,7 +107,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", -@@ -1020,6 +1021,7 @@ chrome_java_sources = [ +@@ -1031,6 +1032,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", @@ -573,12 +573,12 @@ diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -3410,7 +3410,8 @@ public class ChromeTabbedActivity extends ChromeActivity { - mEdgeToEdgeControllerSupplier, +@@ -3482,7 +3482,8 @@ public class ChromeTabbedActivity extends ChromeActivity { mTopInsetCoordinatorSupplier, getStartupMetricsTracker(), -- mRootUiCoordinator.getExclusiveAccessManager()); -+ mRootUiCoordinator.getExclusiveAccessManager(), + mRootUiCoordinator.getExclusiveAccessManager(), +- mBackPressManager); ++ mBackPressManager, + mBookmarkManagerOpenerSupplier); } return mTabDelegateFactory; @@ -586,10 +586,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java --- a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java -@@ -13,6 +13,7 @@ import org.chromium.build.annotations.NullMarked; - import org.chromium.build.annotations.Nullable; +@@ -13,6 +13,7 @@ import org.chromium.build.annotations.Nullable; import org.chromium.chrome.browser.app.ChromeActivity; import org.chromium.chrome.browser.app.tab_activity_glue.ActivityTabWebContentsDelegateAndroid; + import org.chromium.chrome.browser.back_press.BackPressManager; +import org.chromium.chrome.browser.bookmarks.BookmarkManagerOpener; import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider; import org.chromium.chrome.browser.compositor.CompositorViewHolder; @@ -603,39 +603,39 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDe /** * {@link TabDelegateFactory} class to be used in all {@link Tab} instances owned by a {@link * ChromeTabbedActivity}. -@@ -89,6 +92,8 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory { +@@ -88,6 +91,8 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory { private final ObservableSupplier mTopInsetCoordinatorSupplier; private final StartupMetricsTracker mStartupMetricsTracker; private final @Nullable ExclusiveAccessManager mExclusiveAccessManager; + private final ObservableSupplier mBookmarkManagerOpenerSupplier; + private @Nullable NativePageFactory mNativePageFactory; + private final BackPressManager mBackPressManager; - public TabbedModeTabDelegateFactory( @@ -119,7 +124,8 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory { - ObservableSupplier edgeToEdgeControllerSupplier, ObservableSupplier topInsetCoordinatorSupplier, StartupMetricsTracker startupMetricsTracker, -- @Nullable ExclusiveAccessManager exclusiveAccessManager) { -+ @Nullable ExclusiveAccessManager exclusiveAccessManager, + @Nullable ExclusiveAccessManager exclusiveAccessManager, +- BackPressManager backPressManager) { ++ BackPressManager backPressManager, + @NonNull ObservableSupplier bookmarkManagerOpenerSupplier) { mActivity = activity; mAppBrowserControlsVisibilityDelegate = appBrowserControlsVisibilityDelegate; mShareDelegateSupplier = shareDelegateSupplier; @@ -148,6 +154,7 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory { - mTopInsetCoordinatorSupplier = topInsetCoordinatorSupplier; mStartupMetricsTracker = startupMetricsTracker; mExclusiveAccessManager = exclusiveAccessManager; + mBackPressManager = backPressManager; + mBookmarkManagerOpenerSupplier = bookmarkManagerOpenerSupplier; } @Override @@ -218,7 +225,8 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory { - mModuleRegistrySupplier, mEdgeToEdgeControllerSupplier, mTopInsetCoordinatorSupplier, -- mStartupMetricsTracker); -+ mStartupMetricsTracker, + mStartupMetricsTracker, +- mBackPressManager); ++ mBackPressManager, + mBookmarkManagerOpenerSupplier); } return mNativePageFactory.createNativePage(url, candidatePage, tab, pdfInfo); @@ -712,23 +712,23 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/I diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java --- a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java -@@ -12,6 +12,7 @@ import android.graphics.Rect; +@@ -17,6 +17,7 @@ import android.graphics.Rect; import android.view.View; import androidx.annotation.VisibleForTesting; +import androidx.annotation.NonNull; - import org.chromium.base.jank_tracker.JankTracker; + import org.chromium.base.metrics.RecordUserAction; import org.chromium.base.supplier.DestroyableObservableSupplier; -@@ -24,6 +25,7 @@ import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; - import org.chromium.chrome.browser.app.ChromeActivity; +@@ -30,6 +31,7 @@ import org.chromium.chrome.browser.app.ChromeActivity; import org.chromium.chrome.browser.app.download.home.DownloadPage; + import org.chromium.chrome.browser.back_press.BackPressManager; import org.chromium.chrome.browser.bookmarks.BookmarkPage; +import org.chromium.chrome.browser.bookmarks.BookmarkManagerOpener; import org.chromium.chrome.browser.browser_controls.BrowserControlsMarginSupplier; import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider; - import org.chromium.chrome.browser.fullscreen.BrowserControlsManager; -@@ -87,6 +89,7 @@ public class NativePageFactory { + import org.chromium.chrome.browser.flags.ChromeFeatureList; +@@ -95,6 +97,7 @@ public class NativePageFactory { private final ObservableSupplier mEdgeToEdgeControllerSupplier; private final ObservableSupplier mTopInsetCoordinatorSupplier; private final StartupMetricsTracker mStartupMetricsTracker; @@ -736,38 +736,38 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat private @Nullable NewTabPageCreationTracker mNewTabPageCreationTracker; private @Nullable NativePageBuilder mNativePageBuilder; -@@ -110,7 +113,8 @@ public class NativePageFactory { - OneshotSupplier moduleRegistrySupplier, +@@ -119,7 +122,8 @@ public class NativePageFactory { ObservableSupplier edgeToEdgeControllerSupplier, ObservableSupplier topInsetCoordinatorSupplier, -- StartupMetricsTracker startupMetricsTracker) { -+ StartupMetricsTracker startupMetricsTracker, + StartupMetricsTracker startupMetricsTracker, +- BackPressManager backPressManager) { ++ BackPressManager backPressManager, + @NonNull ObservableSupplier bookmarkManagerOpenerSupplier) { mActivity = activity; mBottomSheetController = sheetController; mBrowserControlsManager = browserControlsManager; -@@ -129,6 +133,7 @@ public class NativePageFactory { - mEdgeToEdgeControllerSupplier = edgeToEdgeControllerSupplier; +@@ -138,6 +142,7 @@ public class NativePageFactory { mTopInsetCoordinatorSupplier = topInsetCoordinatorSupplier; mStartupMetricsTracker = startupMetricsTracker; + mBackPressManager = backPressManager; + mBookmarkManagerOpenerSupplier = bookmarkManagerOpenerSupplier; } private NativePageBuilder getBuilder() { -@@ -153,7 +158,8 @@ public class NativePageFactory { - mModuleRegistrySupplier, +@@ -162,7 +167,8 @@ public class NativePageFactory { mEdgeToEdgeControllerSupplier, mTopInsetCoordinatorSupplier, -- mStartupMetricsTracker); -+ mStartupMetricsTracker, + mStartupMetricsTracker, +- mBackPressManager); ++ mBackPressManager, + mBookmarkManagerOpenerSupplier); } return mNativePageBuilder; } -@@ -187,9 +193,10 @@ public class NativePageFactory { - private final ObservableSupplier mEdgeToEdgeControllerSupplier; +@@ -196,9 +202,10 @@ public class NativePageFactory { private final ObservableSupplier mTopInsetCoordinatorSupplier; private final StartupMetricsTracker mStartupMetricsTracker; + private final BackPressManager mBackPressManager; + private final ObservableSupplier mBookmarkManagerOpenerSupplier; public NativePageBuilder( @@ -776,25 +776,25 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat Supplier newTabPageCreationTracker, BottomSheetController sheetController, BrowserControlsManager browserControlsManager, -@@ -207,7 +214,8 @@ public class NativePageFactory { - OneshotSupplier moduleRegistrySupplier, +@@ -216,7 +223,8 @@ public class NativePageFactory { ObservableSupplier edgeToEdgeControllerSupplier, ObservableSupplier topInsetCoordinatorSupplier, -- StartupMetricsTracker startupMetricsTracker) { -+ StartupMetricsTracker startupMetricsTracker, + StartupMetricsTracker startupMetricsTracker, +- BackPressManager backPressManager) { ++ BackPressManager backPressManager, + @NonNull ObservableSupplier bookmarkManagerOpenerSupplier) { mActivity = activity; mNewTabPageCreationTracker = newTabPageCreationTracker; mBottomSheetController = sheetController; -@@ -227,6 +235,7 @@ public class NativePageFactory { - mEdgeToEdgeControllerSupplier = edgeToEdgeControllerSupplier; +@@ -236,6 +244,7 @@ public class NativePageFactory { mTopInsetCoordinatorSupplier = topInsetCoordinatorSupplier; mStartupMetricsTracker = startupMetricsTracker; + mBackPressManager = backPressManager; + mBookmarkManagerOpenerSupplier = bookmarkManagerOpenerSupplier; } protected NativePage buildNewTabPage(Tab tab, String url) { -@@ -265,7 +274,8 @@ public class NativePageFactory { +@@ -273,7 +282,8 @@ public class NativePageFactory { mModuleRegistrySupplier, mEdgeToEdgeControllerSupplier, mTopInsetCoordinatorSupplier, @@ -819,7 +819,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java -@@ -125,6 +125,9 @@ import org.chromium.ui.base.DeviceFormFactor; +@@ -126,6 +126,9 @@ import org.chromium.ui.base.DeviceFormFactor; import org.chromium.ui.base.WindowAndroid; import org.chromium.url.GURL; @@ -829,7 +829,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. import java.util.List; import java.util.function.Supplier; -@@ -504,7 +507,8 @@ public class NewTabPage +@@ -502,7 +505,8 @@ public class NewTabPage OneshotSupplier moduleRegistrySupplier, ObservableSupplier edgeToEdgeControllerSupplier, ObservableSupplier topInsetCoordinatorSupplier, @@ -839,7 +839,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. mConstructedTimeNs = System.nanoTime(); TraceEvent.begin(TAG); -@@ -529,7 +533,7 @@ public class NewTabPage +@@ -526,7 +530,7 @@ public class NewTabPage SuggestionsNavigationDelegate navigationDelegate = new SuggestionsNavigationDelegate( @@ -851,7 +851,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java -@@ -13,6 +13,7 @@ import android.graphics.Rect; +@@ -12,6 +12,7 @@ import android.graphics.Rect; import android.text.Editable; import android.util.AttributeSet; import android.view.DragEvent; @@ -859,7 +859,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; +@@ -40,6 +41,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; @@ -867,16 +867,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL import org.chromium.chrome.browser.lens.LensMetrics; import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher; import org.chromium.chrome.browser.logo.LogoBridge.Logo; -@@ -58,7 +60,7 @@ import org.chromium.chrome.browser.profiles.Profile; - import org.chromium.chrome.browser.suggestions.tile.MostVisitedTilesCoordinator; +@@ -58,6 +60,7 @@ import org.chromium.chrome.browser.suggestions.tile.MostVisitedTilesCoordinator; + import org.chromium.chrome.browser.suggestions.tile.MostVisitedTilesLayout; import org.chromium.chrome.browser.suggestions.tile.TileGroup; import org.chromium.chrome.browser.suggestions.tile.TileGroup.Delegate; --import org.chromium.chrome.browser.suggestions.tile.TilesLinearLayout; +import org.chromium.chrome.browser.suggestions.tile.MostVisitedTilesGridLayout; import org.chromium.chrome.browser.tab_ui.InvalidationAwareThumbnailProvider; import org.chromium.chrome.browser.ui.native_page.TouchEnabledDelegate; import org.chromium.chrome.browser.util.BrowserUiUtils; -@@ -105,6 +107,8 @@ public class NewTabPageLayout extends LinearLayout +@@ -104,6 +107,8 @@ public class NewTabPageLayout extends LinearLayout private @Nullable DisplayStyleObserver mDisplayStyleObserver; private CallbackController mCallbackController = new CallbackController(); @@ -885,7 +884,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL /** * Whether the tiles shown in the layout have finished loading. * With {@link #mHasShownView}, it's one of the 2 flags used to track initialisation progress. -@@ -117,7 +121,7 @@ public class NewTabPageLayout extends LinearLayout +@@ -116,7 +121,7 @@ public class NewTabPageLayout extends LinearLayout */ private boolean mHasShownView; @@ -894,7 +893,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL private boolean mSearchProviderIsGoogle; private boolean mShowingNonStandardGoogleLogo; private boolean mIsOmniboxMobileParityUpdateV2Enabled; -@@ -311,6 +315,7 @@ public class NewTabPageLayout extends LinearLayout +@@ -299,6 +304,7 @@ public class NewTabPageLayout extends LinearLayout initializeMostVisitedTilesCoordinator( mProfile, lifecycleDispatcher, tileGroupDelegate, touchEnabledDelegate); initializeDseIconView(shouldShowDseIcon()); @@ -902,16 +901,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL initializeSearchBoxTextView(); initializeVoiceSearchButton(); initializeLensButton(); -@@ -700,7 +705,7 @@ public class NewTabPageLayout extends LinearLayout +@@ -686,7 +692,7 @@ public class NewTabPageLayout extends LinearLayout + private void calculateTabletMvtWidth(int totalWidth) { + if (mMvTilesContainerLayout.getVisibility() == GONE) return; - if (mInitialTileNum == null) { - mInitialTileNum = -- ((TilesLinearLayout) findViewById(R.id.mv_tiles_layout)).getTileCount(); -+ ((MostVisitedTilesGridLayout) findViewById(R.id.mv_tiles_layout)).getTileCount(); - } - - int currentOrientation = getResources().getConfiguration().orientation; -@@ -768,7 +773,7 @@ public class NewTabPageLayout extends LinearLayout +- MostVisitedTilesLayout mvTilesLayout = findViewById(R.id.mv_tiles_layout); ++ MostVisitedTilesGridLayout mvTilesLayout = findViewById(R.id.mv_tiles_layout); + mMvtContentFits = mvTilesLayout.contentFitsOnTablet(totalWidth); + updateMvtOnTablet(); + } +@@ -737,7 +743,7 @@ public class NewTabPageLayout extends LinearLayout && mInitialized) { return; } @@ -920,7 +919,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL mSearchProviderIsGoogle = isGoogle; if (!mSearchProviderIsGoogle) { -@@ -1219,6 +1224,22 @@ public class NewTabPageLayout extends LinearLayout +@@ -1188,6 +1194,22 @@ public class NewTabPageLayout extends LinearLayout return mMostVisitedTilesCoordinator; } @@ -1335,7 +1334,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til TileRenderer renderer, PropertyModel propertyModel, boolean isTablet, -@@ -211,20 +211,14 @@ public class MostVisitedTilesMediator implements TileGroup.Observer { +@@ -211,12 +211,10 @@ public class MostVisitedTilesMediator implements TileGroup.Observer { @Override public void onCustomTileCreation(Tile tile) { @@ -1347,16 +1346,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til - mMvTilesLayout.ensureTileIsInViewOnNextLayout(newPos); } - @Override - public void onCustomTileNonReorderChange() { -- SuggestionsTileVerticalDivider divider = mMvTilesLayout.getDividerMaybeNull(); -- if (divider != null) { -- divider.showThenHide(); -- } - } - public void onConfigurationChanged() { -@@ -334,7 +328,5 @@ public class MostVisitedTilesMediator implements TileGroup.Observer { +@@ -326,7 +324,5 @@ public class MostVisitedTilesMediator implements TileGroup.Observer { double firstTileScore = mTileGroup.getSuggestionScore(firstTile.getUrl()); if (firstTileScore < MVT_CUSTOMIZATION_IPH_TILE_SCORE_THRESHOULD) return; @@ -1422,7 +1413,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileRenderer.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileRenderer.java --- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileRenderer.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileRenderer.java -@@ -176,7 +176,7 @@ public class TileRenderer { +@@ -174,7 +174,7 @@ public class TileRenderer { */ public void renderTileSection( List sectionTiles, @@ -1431,7 +1422,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til TileGroup.TileSetupDelegate setupDelegate) { try (TraceEvent e = TraceEvent.scoped("TileRenderer.renderTileSection")) { // Map the old tile views by url so they can be reused later. -@@ -265,7 +265,7 @@ public class TileRenderer { +@@ -263,7 +263,7 @@ public class TileRenderer { */ @VisibleForTesting SuggestionsTileView buildTileView( @@ -1440,7 +1431,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til SuggestionsTileView tileView = (SuggestionsTileView) LayoutInflater.from(parent.getContext()) -@@ -332,7 +332,7 @@ public class TileRenderer { +@@ -330,7 +330,7 @@ public class TileRenderer { return tileView; } @@ -1449,7 +1440,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til return (SuggestionsTileVerticalDivider) LayoutInflater.from(parent.getContext()) .inflate(R.layout.suggestions_tile_vertical_divider, parent, false); -@@ -353,7 +353,7 @@ public class TileRenderer { +@@ -351,7 +351,7 @@ public class TileRenderer { } TileView buildAddCustomLinksButton( @@ -1461,15 +1452,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TilesLinearLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TilesLinearLayout.java --- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TilesLinearLayout.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TilesLinearLayout.java -@@ -26,7 +26,7 @@ import java.util.List; - * #getChildCount()} and {@link #getChildAt()}. +@@ -32,7 +32,7 @@ import java.util.List; + * #getChildAt()}. */ @NullMarked -public class TilesLinearLayout extends LinearLayout { +class TilesLinearLayout extends LinearLayout { private final List mTileList = new ArrayList<>(); - protected float mNonTileViewsTotalWidthDp; + protected int mTileAndUiViewCount; diff --git a/chrome/browser/engagement/important_sites_util.cc b/chrome/browser/engagement/important_sites_util.cc --- a/chrome/browser/engagement/important_sites_util.cc +++ b/chrome/browser/engagement/important_sites_util.cc @@ -1485,7 +1476,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 -@@ -347,6 +347,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -349,6 +349,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kIncognitoThemeOverlayTesting, &kInstanceSwitcherV2, &kKeyboardEscBackNavigation, @@ -1496,7 +1487,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 -@@ -486,6 +486,7 @@ public abstract class ChromeFeatureList { +@@ -490,6 +490,7 @@ public abstract class ChromeFeatureList { public static final String MITIGATE_LEGACY_SEARCH_ENGINE_PROMO_OVERLAP = "MitigateLegacySearchEnginePromoOverlap"; public static final String MOST_VISITED_TILES_CUSTOMIZATION = "MostVisitedTilesCustomization"; @@ -1505,9 +1496,9 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final String MOST_VISITED_TILES_RESELECT = "MostVisitedTilesReselect"; public static final String MULTI_INSTANCE_APPLICATION_STATUS_CLEANUP = @@ -980,7 +981,7 @@ public abstract class ChromeFeatureList { - newCachedFlag(LOCK_BACK_PRESS_HANDLER_AT_START, true); - public static final CachedFlag sLockTopControlsOnLargeTablets = - newCachedFlag(LOCK_TOP_CONTROLS_ON_LARGE_TABLETS, false); + // TODO(https://crbug.com/438970923): Remove the use of BuildConfig by 2025 EoY. + public static final CachedFlag sLockTopControlsOnLargeTabletsV2 = + newCachedFlag(LOCK_TOP_CONTROLS_ON_LARGE_TABLETS_V2, BuildConfig.IS_DESKTOP_ANDROID); - public static final CachedFlag sMagicStackAndroid = newCachedFlag(MAGIC_STACK_ANDROID, true); + public static final CachedFlag sMagicStackAndroid = newCachedFlag(MAGIC_STACK_ANDROID, false); public static final CachedFlag sMaliciousApkDownloadCheck = @@ -1527,7 +1518,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 -@@ -3902,6 +3902,12 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -3908,6 +3908,12 @@ To change this setting, BEGIN_LINKdelete the Chrome d Recent tabs diff --git a/build/patches/Restore-chrome-password-store.patch b/build/patches/Restore-chrome-password-store.patch index a4f93a3c..829f79e2 100644 --- a/build/patches/Restore-chrome-password-store.patch +++ b/build/patches/Restore-chrome-password-store.patch @@ -60,7 +60,6 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../settings/SavedPasswordEntry.java | 41 ++ .../settings/SingleThreadBarrierClosure.java | 49 ++ .../settings/TimedCallbackDelayer.java | 33 + - .../login_db_deprecation_runner_factory.cc | 2 +- .../android/password_manager_android_util.cc | 1 + .../android/password_ui_view_android.cc | 449 +++++++++++ .../android/password_ui_view_android.h | 196 +++++ @@ -70,12 +69,11 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../Import-Password-Android.grdp | 9 + .../autofill/core/common/autofill_features.cc | 1 + .../settings/SettingsNavigation.java | 3 + - .../core/browser/buildflags.gni | 2 +- .../password_manager_features_util.cc | 1 + .../core/browser/import/password_importer.cc | 11 + components/sync/service/sync_prefs.cc | 2 +- .../Restore-chrome-password-store.inc | 1 + - 67 files changed, 5511 insertions(+), 38 deletions(-) + 65 files changed, 5509 insertions(+), 36 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 @@ -121,7 +119,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 -@@ -797,6 +797,10 @@ if (_is_default_toolchain) { +@@ -803,6 +803,10 @@ if (_is_default_toolchain) { "//url/mojom:url_mojom_origin_java", ] @@ -132,7 +130,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn deps += feed_deps srcjar_deps = [ -@@ -939,6 +943,10 @@ if (_is_default_toolchain) { +@@ -946,6 +950,10 @@ if (_is_default_toolchain) { "//components/visited_url_ranking/internal:internal_java", ] @@ -146,7 +144,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 -@@ -629,3 +629,8 @@ chrome_java_resources = [ +@@ -643,3 +643,8 @@ chrome_java_resources = [ "java/res/xml/tracing_preferences.xml", "java/res/xml/unified_account_settings_preferences.xml", ] @@ -158,7 +156,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 -@@ -866,6 +866,7 @@ chrome_java_sources = [ +@@ -875,6 +875,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", @@ -169,7 +167,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 -@@ -457,10 +457,9 @@ by a child template that "extends" this file. +@@ -455,10 +455,9 @@ by a child template that "extends" this file. @@ -1006,7 +1004,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; -@@ -136,6 +138,9 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl +@@ -134,6 +136,9 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl PasswordManagerHelper.getForProfile(mProfile), new SettingsCustomTabLauncherImpl()); } @@ -1019,7 +1017,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 -@@ -480,18 +480,6 @@ public class MainSettings extends ChromeBaseSettingsFragment +@@ -481,18 +481,6 @@ public class MainSettings extends ChromeBaseSettingsFragment preference -> SettingsNavigationHelper.showAutofillProfileSettings( getActivity())); @@ -1069,7 +1067,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 -@@ -3371,6 +3371,13 @@ static_library("browser") { +@@ -3369,6 +3369,13 @@ static_library("browser") { "touch_to_fill/password_manager/touch_to_fill_controller_webauthn_delegate.h", ] @@ -1086,7 +1084,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/AutofillClientProviderUtils.java b/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/AutofillClientProviderUtils.java --- a/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/AutofillClientProviderUtils.java +++ b/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/AutofillClientProviderUtils.java -@@ -122,6 +122,7 @@ public class AutofillClientProviderUtils { +@@ -121,6 +121,7 @@ public class AutofillClientProviderUtils { @CalledByNative public static void setAutofillOptionsDeepLinkPref(boolean featureOn) { @@ -2905,7 +2903,7 @@ new file mode 100644 diff --git a/chrome/browser/password_manager/android/BUILD.gn b/chrome/browser/password_manager/android/BUILD.gn --- a/chrome/browser/password_manager/android/BUILD.gn +++ b/chrome/browser/password_manager/android/BUILD.gn -@@ -190,6 +190,27 @@ android_library("java") { +@@ -188,6 +188,27 @@ android_library("java") { "java/src/org/chromium/chrome/browser/password_manager/settings/PasswordsPreference.java", ] @@ -2933,7 +2931,7 @@ diff --git a/chrome/browser/password_manager/android/BUILD.gn b/chrome/browser/p resources_package = "org.chromium.chrome.browser.password_manager" } -@@ -211,6 +232,8 @@ generate_jni("jni_headers") { +@@ -209,6 +230,8 @@ generate_jni("jni_headers") { "java/src/org/chromium/chrome/browser/password_manager/PasswordStoreCredential.java", "java/src/org/chromium/chrome/browser/password_manager/PasswordSyncControllerDelegateBridgeImpl.java", ] @@ -2945,7 +2943,7 @@ diff --git a/chrome/browser/password_manager/android/BUILD.gn b/chrome/browser/p diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerHelper.java b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerHelper.java --- a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerHelper.java +++ b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerHelper.java -@@ -38,8 +38,9 @@ import org.chromium.chrome.browser.preferences.Pref; +@@ -37,8 +37,9 @@ import org.chromium.chrome.browser.password_manager.PasswordCheckupClientHelper. import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.ProfileKeyedMap; import org.chromium.chrome.browser.pwm_disabled.PasswordCsvDownloadFlowControllerFactory; @@ -2954,9 +2952,9 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom +import org.chromium.chrome.browser.settings.SettingsNavigationFactory; +import org.chromium.components.browser_ui.settings.SettingsNavigation; import org.chromium.components.browser_ui.settings.SettingsCustomTabLauncher; - import org.chromium.components.prefs.PrefService; import org.chromium.components.sync.SyncService; -@@ -187,6 +188,7 @@ public class PasswordManagerHelper { + import org.chromium.ui.modaldialog.ModalDialogManager; +@@ -173,6 +174,7 @@ public class PasswordManagerHelper { Context context, Supplier<@Nullable ModalDialogManager> modalDialogManagerSupplier, SettingsCustomTabLauncher settingsCustomTabLauncher) { @@ -2964,11 +2962,11 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom // Automotive doesn't support the export flow. if (!DeviceInfo.isAutomotive() && LoginDbDeprecationUtilBridge.hasPasswordsInCsv(mProfile)) { -@@ -194,16 +196,6 @@ public class PasswordManagerHelper { +@@ -180,16 +182,6 @@ public class PasswordManagerHelper { return true; } -- if (!PasswordManagerUtilBridge.isPasswordManagerAvailable(UserPrefs.get(mProfile))) { +- if (!PasswordManagerUtilBridge.isPasswordManagerAvailable()) { - new PasswordManagerUnavailableDialogCoordinator() - .showDialog( - context, @@ -2981,7 +2979,7 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom return false; } -@@ -432,6 +424,11 @@ public class PasswordManagerHelper { +@@ -417,6 +409,11 @@ public class PasswordManagerHelper { Supplier<@Nullable ModalDialogManager> modalDialogManagerSupplier, Context context, @Nullable String account) { @@ -2991,12 +2989,12 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom + context, SettingsNavigation.SettingsFragment.PASSWORDS); + if ((true)) return; assert syncService != null; - assert PasswordManagerUtilBridge.isPasswordManagerAvailable(prefService); + assert PasswordManagerUtilBridge.isPasswordManagerAvailable(); CredentialManagerLauncher credentialManagerLauncher = diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerUtilBridge.java b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerUtilBridge.java --- a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerUtilBridge.java +++ b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerUtilBridge.java -@@ -41,8 +41,7 @@ public class PasswordManagerUtilBridge { +@@ -39,8 +39,7 @@ public class PasswordManagerUtilBridge { */ @CalledByNative public static boolean isGooglePlayServicesUpdatable() { @@ -4831,11 +4829,11 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom @@ -87,6 +87,7 @@ public class PasswordsPreference extends ChromeBasePreference implements Profile } - private void setUpPostDeprecationWarning(PreferenceViewHolder holder, PrefService prefService) { + private void setUpPostDeprecationWarning(PreferenceViewHolder holder) { + if ((true)) return; assert mProfile != null : "Profile is not set!"; - boolean isPasswordManagerAvailable = + boolean isPasswordManagerAvailable = PasswordManagerUtilBridge.isPasswordManagerAvailable(); diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/settings/ProgressBarDialogFragment.java b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/settings/ProgressBarDialogFragment.java new file mode 100644 --- /dev/null @@ -5252,22 +5250,10 @@ new file mode 100644 + mHandler.postDelayed(callback, mDelayMillis); + } +} -diff --git a/chrome/browser/password_manager/android/login_db_deprecation_runner_factory.cc b/chrome/browser/password_manager/android/login_db_deprecation_runner_factory.cc ---- a/chrome/browser/password_manager/android/login_db_deprecation_runner_factory.cc -+++ b/chrome/browser/password_manager/android/login_db_deprecation_runner_factory.cc -@@ -39,7 +39,7 @@ std::unique_ptr - LoginDbDeprecationRunnerFactory::BuildServiceInstanceForBrowserContext( - content::BrowserContext* context) const { - #if BUILDFLAG(USE_LOGIN_DATABASE_AS_BACKEND) -- return nullptr; -+ if ((true)) return nullptr; - #else - Profile* profile = Profile::FromBrowserContext(context); - PrefService* prefs = profile->GetPrefs(); diff --git a/chrome/browser/password_manager/android/password_manager_android_util.cc b/chrome/browser/password_manager/android/password_manager_android_util.cc --- a/chrome/browser/password_manager/android/password_manager_android_util.cc +++ b/chrome/browser/password_manager/android/password_manager_android_util.cc -@@ -31,6 +31,7 @@ namespace password_manager_android_util { +@@ -16,6 +16,7 @@ namespace password_manager_android_util { namespace { bool HasMinGmsVersionForFullUpmSupport() { @@ -5945,7 +5931,7 @@ diff --git a/chrome/browser/password_manager/android/pwm_disabled/BUILD.gn b/chr diff --git a/chrome/browser/password_manager/password_manager_settings_service_factory.cc b/chrome/browser/password_manager/password_manager_settings_service_factory.cc --- a/chrome/browser/password_manager/password_manager_settings_service_factory.cc +++ b/chrome/browser/password_manager/password_manager_settings_service_factory.cc -@@ -94,9 +94,7 @@ PasswordManagerSettingsServiceFactory::CreateService(Profile* profile) const { +@@ -90,9 +90,7 @@ PasswordManagerSettingsServiceFactory::CreateService(Profile* profile) const { return std::make_unique( profile->GetPrefs(), SyncServiceFactory::GetForProfile(profile)); } @@ -5959,7 +5945,7 @@ diff --git a/chrome/browser/password_manager/password_manager_settings_service_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 -@@ -679,7 +679,7 @@ For more settings that use data to improve your Chrome experience, go to @@ -5968,7 +5954,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro Password saving is turned on by your administrator -@@ -779,6 +779,127 @@ For more settings that use data to improve your Chrome experience, go to @@ -6113,10 +6099,10 @@ 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 -@@ -922,6 +922,7 @@ BASE_FEATURE(kAutofillAndroidDesktopSuppressAccessoryOnEmpty, - BASE_FEATURE(kAutofillDeepLinkAutofillOptions, - "AutofillDeepLinkAutofillOptions", - base::FEATURE_ENABLED_BY_DEFAULT); +@@ -786,6 +786,7 @@ BASE_FEATURE(kAutofillDeepLinkAutofillOptions, + // TODO: crbug.com/385172647 - Clean up after the feature is launched. + BASE_FEATURE(kAutofillEnableKeyboardAccessoryChipRedesign, + base::FEATURE_DISABLED_BY_DEFAULT); +SET_CROMITE_FEATURE_DISABLED(kAutofillDeepLinkAutofillOptions); // Controls if Chrome Autofill UI surfaces ignore touch events if something is @@ -6141,18 +6127,6 @@ diff --git a/components/browser_ui/settings/android/java/src/org/chromium/compon } /** -diff --git a/components/password_manager/core/browser/buildflags.gni b/components/password_manager/core/browser/buildflags.gni ---- a/components/password_manager/core/browser/buildflags.gni -+++ b/components/password_manager/core/browser/buildflags.gni -@@ -9,7 +9,7 @@ declare_args() { - # The legacy password store backend is supported on android but usually disabled - # in favor of a downstream implementation. Important: the support for this flag - # is planned to be removed in November 2024. -- use_login_database_as_backend = !is_android -+ use_login_database_as_backend = true - } - - # Drawables from the downstream clank/ repository are diff --git a/components/password_manager/core/browser/features/password_manager_features_util.cc b/components/password_manager/core/browser/features/password_manager_features_util.cc --- a/components/password_manager/core/browser/features/password_manager_features_util.cc +++ b/components/password_manager/core/browser/features/password_manager_features_util.cc diff --git a/build/patches/User-agent-customization.patch b/build/patches/User-agent-customization.patch index f27bf351..b17dc8cc 100644 --- a/build/patches/User-agent-customization.patch +++ b/build/patches/User-agent-customization.patch @@ -56,7 +56,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 -@@ -228,7 +228,7 @@ base::WeakPtr GetAsyncCheckTracker( +@@ -197,7 +197,7 @@ base::WeakPtr GetAsyncCheckTracker( } // anonymous namespace std::string GetProduct() { @@ -92,7 +92,7 @@ diff --git a/base/base_switches.h b/base/base_switches.h diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni --- a/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni -@@ -639,6 +639,8 @@ chrome_java_resources = [ +@@ -653,6 +653,8 @@ chrome_java_resources = [ "java/res/xml/search_widget_info.xml", "java/res/xml/tracing_preferences.xml", "java/res/xml/unified_account_settings_preferences.xml", @@ -104,7 +104,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 -@@ -899,6 +899,7 @@ chrome_java_sources = [ +@@ -908,6 +908,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", @@ -271,7 +271,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 -@@ -2657,6 +2657,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -2716,6 +2716,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity TabUtils.switchUserAgent( currentTab, usingDesktopUserAgent, @@ -282,18 +282,18 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java --- a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java -@@ -23,6 +23,7 @@ import org.chromium.chrome.browser.profiles.ProfileManager; - import org.chromium.chrome.browser.signin.SigninCheckerProvider; +@@ -24,6 +24,7 @@ import org.chromium.chrome.browser.signin.SigninCheckerProvider; import org.chromium.components.background_task_scheduler.BackgroundTaskSchedulerFactory; import org.chromium.content_public.browser.BrowserStartupController; + import org.chromium.content_public.browser.BrowserStartupController.StartupMetrics; +import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImpl; import java.util.ArrayList; import java.util.List; -@@ -244,11 +245,13 @@ public class ChromeBrowserInitializer { +@@ -245,11 +246,13 @@ public class ChromeBrowserInitializer { @Override - public void onSuccess() { + public void onSuccess(@Nullable StartupMetrics metrics) { + PrivacyPreferencesManagerImpl.getInstance().updateOverrideUserAgent(); tasks.start(false); } @@ -559,7 +559,7 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/RequestDesktopUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/RequestDesktopUtils.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/RequestDesktopUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/RequestDesktopUtils.java -@@ -132,6 +132,7 @@ public class RequestDesktopUtils { +@@ -142,6 +142,7 @@ public class RequestDesktopUtils { */ public static void setRequestDesktopSiteContentSettingsForUrl( Profile profile, GURL url, boolean useDesktopUserAgent) { @@ -570,7 +570,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/RequestDesk 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 -@@ -81,6 +81,9 @@ import org.chromium.components.autofill.AutofillProvider; +@@ -82,6 +82,9 @@ import org.chromium.components.autofill.AutofillProvider; import org.chromium.components.autofill.AutofillProviderUMA; import org.chromium.components.autofill.AutofillSelectionActionMenuDelegate; import org.chromium.components.autofill.AutofillSelectionMenuItemHelper; @@ -580,7 +580,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav import org.chromium.components.dom_distiller.core.DomDistillerUrlUtils; import org.chromium.components.embedder_support.contextmenu.ContextMenuPopulatorFactory; import org.chromium.components.embedder_support.util.UrlConstants; -@@ -123,6 +126,9 @@ import org.chromium.chrome.browser.preferences.Pref; +@@ -124,6 +127,9 @@ import org.chromium.chrome.browser.preferences.Pref; import org.chromium.chrome.browser.profiles.ProfileManager; import org.chromium.components.user_prefs.UserPrefs; @@ -590,7 +590,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. -@@ -2195,9 +2201,6 @@ class TabImpl implements Tab { +@@ -2196,9 +2202,6 @@ class TabImpl implements Tab { } if (mWebContents != null) { @@ -600,7 +600,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav mWebContents.getNavigationController().loadIfNecessary(); } mIsBeingRestored = true; -@@ -2592,6 +2595,11 @@ class TabImpl implements Tab { +@@ -2594,6 +2597,11 @@ class TabImpl implements Tab { url = webContents.getVisibleUrl(); } @@ -609,10 +609,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav + else if (mUserAgent == TabUserAgent.DESKTOP) + return UserAgentOverrideOption.TRUE; + - CommandLine commandLine = CommandLine.getInstance(); - // For --request-desktop-sites, always override the user agent. - boolean alwaysRequestDesktopSite = -@@ -2633,7 +2641,7 @@ class TabImpl implements Tab { + boolean shouldRequestDesktopSite = + RequestDesktopUtils.shouldOverrideDesktopSite(mProfile, url, getContext()); + +@@ -2623,7 +2631,7 @@ class TabImpl implements Tab { } boolean usingDesktopUserAgent = getWebContents().getNavigationController().getUseDesktopUserAgent(); @@ -621,7 +621,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav } /** Sets the TabLaunchType for tabs launched with an unset launch type. */ -@@ -2774,6 +2782,54 @@ class TabImpl implements Tab { +@@ -2771,6 +2779,54 @@ class TabImpl implements Tab { /* allowDialog= */ false); } @@ -922,15 +922,15 @@ 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 -@@ -9,6 +9,7 @@ - #include "chrome/browser/content_settings/host_content_settings_map_factory.h" +@@ -10,6 +10,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" +#include "chrome/browser/ui/android/tab_model/tab_model.h" #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" -@@ -36,6 +37,7 @@ RequestDesktopSiteWebContentsObserverAndroid:: +@@ -37,6 +38,7 @@ RequestDesktopSiteWebContentsObserverAndroid:: host_content_settings_map_ = HostContentSettingsMapFactory::GetForProfile(profile); pref_service_ = profile->GetPrefs(); @@ -938,7 +938,7 @@ diff --git a/chrome/browser/content_settings/request_desktop_site_web_contents_o } RequestDesktopSiteWebContentsObserverAndroid:: -@@ -50,6 +52,15 @@ void RequestDesktopSiteWebContentsObserverAndroid::DidStartNavigation( +@@ -51,6 +53,15 @@ void RequestDesktopSiteWebContentsObserverAndroid::DidStartNavigation( return; } @@ -971,12 +971,12 @@ diff --git a/chrome/browser/content_settings/request_desktop_site_web_contents_o raw_ptr pref_service_ = nullptr; + raw_ptr tab_android_ = nullptr; - WEB_CONTENTS_USER_DATA_KEY_DECL(); - }; + // The display size threshold in inches for enabling desktop user agent on + // connected displays. 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 -@@ -1192,8 +1192,6 @@ public final class ChromePreferenceKeys { +@@ -1212,8 +1212,6 @@ public final class ChromePreferenceKeys { SIGNIN_PROMO_NTP_LAST_SHOWN_TIME, SYNC_PROMO_TOTAL_SHOW_COUNT, SEARCH_RESUMPTION_MODULE_COLLAPSE_ON_NTP, @@ -1058,7 +1058,7 @@ diff --git a/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chr 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 -@@ -235,6 +235,32 @@ CHAR_LIMIT guidelines: +@@ -238,6 +238,32 @@ CHAR_LIMIT guidelines: Visit help page @@ -1094,7 +1094,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 -@@ -1915,6 +1915,14 @@ inline constexpr char kNaviOnboardGroup[] = "browser.navi_onboard_group"; +@@ -1899,6 +1899,14 @@ inline constexpr char kNaviOnboardGroup[] = "browser.navi_onboard_group"; inline constexpr char kHadThreeConsecutiveNotificationPermissionDenies[] = "profile.content_settings.had_three_consecutive_denies.notifications"; @@ -1245,7 +1245,7 @@ diff --git a/content/browser/renderer_host/navigation_controller_android.cc b/co const JavaParamRef& j_initiator_origin, jboolean has_user_gesture, jboolean should_clear_history_list, -@@ -323,6 +324,9 @@ base::android::ScopedJavaLocalRef NavigationControllerAndroid::LoadUrl( +@@ -320,6 +321,9 @@ base::android::ScopedJavaLocalRef NavigationControllerAndroid::LoadUrl( params.navigation_ui_data = std::move(navigation_ui_data); @@ -1269,7 +1269,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 -@@ -3657,6 +3657,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( +@@ -3707,6 +3707,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( #if BUILDFLAG(IS_CHROMEOS) switches::kSchedulerBoostUrgent, #endif @@ -1288,7 +1288,7 @@ diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser #include "base/check_op.h" #include "base/command_line.h" #include "base/containers/contains.h" -@@ -2439,8 +2440,6 @@ void WebContentsImpl::SetUserAgentOverride( +@@ -2451,8 +2452,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); @@ -1297,7 +1297,7 @@ diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser if (GetUserAgentOverride() == ua_override) { return; -@@ -3746,6 +3745,9 @@ const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences( +@@ -3764,6 +3763,9 @@ const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences( #else prefs.viewport_meta_enabled = false; #endif @@ -1330,7 +1330,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 -@@ -859,7 +859,6 @@ void RenderThreadImpl::InitializeRenderer( +@@ -858,7 +858,6 @@ void RenderThreadImpl::InitializeRenderer( uint64_t trace_id) { TRACE_EVENT("navigation", "RenderThreadImpl::InitializeRenderer", perfetto::TerminatingFlow::Global(trace_id)); From 409ac177ee6dd9051fb1f455622b7ab87f3262fa Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Mon, 27 Oct 2025 13:58:45 +0100 Subject: [PATCH 3/6] Bump to 142.0.7444.52 --- build/RELEASE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/RELEASE b/build/RELEASE index 74f6b328..69b3eb7e 100644 --- a/build/RELEASE +++ b/build/RELEASE @@ -1 +1 @@ -141.0.7390.127 \ No newline at end of file +142.0.7444.52 \ No newline at end of file From 705a8e4ee7488a4470d9b762e059469beab0b2f5 Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Wed, 29 Oct 2025 17:46:16 +0100 Subject: [PATCH 4/6] Patches for v142 (final version) --- .../Add-an-always-incognito-mode.patch | 4 +- build/patches/Add-cromite-flags-support.patch | 6 +- ...dd-custom-tab-intents-privacy-option.patch | 11 +- ...-switch-for-unsupported-clangd-flags.patch | 11 +- .../Add-option-to-disable-snapshots.patch | 2 +- .../Add-option-to-use-home-page-as-NTP.patch | 16 +- build/patches/Add-site-engagement-flag.patch | 24 +- .../patches/Android-Pixel-Perfect-Mode.patch | 4 +- build/patches/Bromite-auto-updater.patch | 263 +++++++++-------- .../Bromite-subresource-adblocker.patch | 2 +- build/patches/Change-popup-site-setting.patch | 36 ++- .../Content-settings-infrastructure.patch | 21 +- .../patches/Disable-all-predictors-code.patch | 73 ++++- ...e-privacy-issues-in-password-manager.patch | 2 +- .../Enable-native-Android-autofill.patch | 16 +- ...le-search-engine-settings-desktop-ui.patch | 37 +-- build/patches/Eyeo-Adblock-for-Cromite.patch | 17 +- .../Force-use-vpython3-for-some-scripts.patch | 73 ++++- ...ing-against-incognito-mode-detection.patch | 13 +- build/patches/Internal-firewall.patch | 2 +- .../patches/Keep-disabled-FetchLaterAPI.patch | 9 +- ...ing-attributes-in-some-html-elements.patch | 25 +- .../patches/Modify-default-preferences.patch | 13 +- .../Move-navigation-bar-to-bottom.patch | 80 ++++-- .../Partition-Blink-memory-cache.patch | 46 ++- .../Partition-MediaDeviceId-by-default.patch | 15 +- build/patches/Remove-help-menu-item.patch | 2 +- .../Restore-Simplified-NTP-launch.patch | 85 +++++- .../Restore-chrome-password-store.patch | 264 +++++++++++++++++- .../Set-the-screen-frame-rate-to-60-Hz.patch | 2 +- build/patches/Site-setting-for-images.patch | 2 +- .../Use-list-mode-for-tab-switcher.patch | 2 +- .../eyeo-133.0.6943.49-android_api.patch | 9 +- build/patches/eyeo-133.0.6943.49-base.patch | 4 +- 34 files changed, 892 insertions(+), 299 deletions(-) diff --git a/build/patches/Add-an-always-incognito-mode.patch b/build/patches/Add-an-always-incognito-mode.patch index 8196adc4..71b68aa7 100644 --- a/build/patches/Add-an-always-incognito-mode.patch +++ b/build/patches/Add-an-always-incognito-mode.patch @@ -727,7 +727,7 @@ new file mode 100644 + +import org.chromium.base.supplier.ObservableSupplier; +import org.chromium.base.supplier.ObservableSupplierImpl; -+import org.chromium.base.supplier.Supplier; ++import java.util.function.Supplier; + +import org.chromium.chrome.R; +import org.chromium.chrome.browser.preferences.Pref; @@ -2007,7 +2007,7 @@ new file mode 100644 + +package org.chromium.chrome.browser.ui.messages.snackbar; + -+import org.chromium.base.supplier.Supplier; ++import java.util.function.Supplier; +import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; + +/** diff --git a/build/patches/Add-cromite-flags-support.patch b/build/patches/Add-cromite-flags-support.patch index 03fc35be..30619cba 100644 --- a/build/patches/Add-cromite-flags-support.patch +++ b/build/patches/Add-cromite-flags-support.patch @@ -505,7 +505,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; -+import org.chromium.base.supplier.Supplier; ++import java.util.function.Supplier; import org.chromium.base.supplier.ObservableSupplier; import org.chromium.base.supplier.OneshotSupplier; import org.chromium.build.annotations.NullMarked; @@ -557,7 +557,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin import org.chromium.base.DeviceInfo; import org.chromium.base.Log; import org.chromium.base.metrics.RecordHistogram; -+import org.chromium.base.supplier.Supplier; ++import java.util.function.Supplier; import org.chromium.base.supplier.ObservableSupplier; +import org.chromium.base.supplier.OneshotSupplier; import org.chromium.base.supplier.OneshotSupplierImpl; @@ -868,7 +868,7 @@ diff --git a/chrome/browser/settings/android/java/src/org/chromium/chrome/browse import org.chromium.build.annotations.Initializer; import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; -+import org.chromium.base.supplier.Supplier; ++import java.util.function.Supplier; import org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncher; import org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncherFactory; import org.chromium.chrome.browser.flags.ChromeFeatureList; diff --git a/build/patches/Add-custom-tab-intents-privacy-option.patch b/build/patches/Add-custom-tab-intents-privacy-option.patch index 0781dad2..c5ecd490 100644 --- a/build/patches/Add-custom-tab-intents-privacy-option.patch +++ b/build/patches/Add-custom-tab-intents-privacy-option.patch @@ -18,14 +18,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../customtabs/CustomTabsConnection.java | 3 +- .../IncognitoCustomTabIntentDataProvider.java | 14 +++++ .../privacy/settings/PrivacySettings.java | 51 +++++++++++++++++++ - .../flags/android/chrome_feature_list.cc | 2 +- + .../flags/android/chrome_feature_list.cc | 5 +- .../browser/flags/ChromeFeatureList.java | 3 ++ .../chrome/browser/tab/TabAssociatedApp.java | 6 ++- ...Add-custom-tab-intents-privacy-option.grdp | 25 +++++++++ .../OriginVerifier.java | 5 ++ .../core/common/language_experiments.cc | 1 + .../add-custom-tab-intents-privacy-option.inc | 1 + - 13 files changed, 156 insertions(+), 13 deletions(-) + 13 files changed, 158 insertions(+), 14 deletions(-) create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-custom-tab-intents-privacy-option.grdp create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/add-custom-tab-intents-privacy-option.inc @@ -327,15 +327,18 @@ 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 -@@ -909,7 +909,7 @@ BASE_FEATURE(kMagicStackAndroid, base::FEATURE_ENABLED_BY_DEFAULT); +@@ -909,8 +909,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. -BASE_FEATURE(kMayLaunchUrlUsesSeparateStoragePartition, +- base::FEATURE_DISABLED_BY_DEFAULT); +CROMITE_FEATURE(kMayLaunchUrlUsesSeparateStoragePartition, - base::FEATURE_DISABLED_BY_DEFAULT); ++ "MayLaunchUrlUsesSeparateStoragePartition", ++ base::FEATURE_DISABLED_BY_DEFAULT); BASE_FEATURE(kMediaIndicatorsAndroid, base::FEATURE_DISABLED_BY_DEFAULT); + diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java 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 e4fb1153..8cc46d0c 100644 --- a/build/patches/Add-kill-switch-for-unsupported-clangd-flags.patch +++ b/build/patches/Add-kill-switch-for-unsupported-clangd-flags.patch @@ -7,9 +7,9 @@ Allows build with clangd by suppressing unsupported parameters 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 --- - build/config/compiler/BUILD.gn | 14 +++++++++++--- + build/config/compiler/BUILD.gn | 17 ++++++++++++++--- build_overrides/build.gni | 3 +++ - 2 files changed, 14 insertions(+), 3 deletions(-) + 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn --- a/build/config/compiler/BUILD.gn @@ -32,15 +32,18 @@ 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 ] -@@ -2183,7 +2183,6 @@ config("default_warnings") { +@@ -2183,7 +2183,9 @@ config("default_warnings") { # TODO(crbug.com/432275627): Fix and re-enable. "-Wno-uninitialized-const-pointer", ] - ++ if (skip_clangd_unsupported_options) { ++ cflags -= [ "-Wno-uninitialized-const-pointer" ] ++ } cflags_cc += [ # TODO(crbug.com/328490295): Fix and re-enable for C flags. "-Wenum-compare-conditional", -@@ -2237,6 +2236,15 @@ config("default_warnings") { +@@ -2237,6 +2239,15 @@ config("default_warnings") { ldflags += [ "-Wno-version-check" ] } diff --git a/build/patches/Add-option-to-disable-snapshots.patch b/build/patches/Add-option-to-disable-snapshots.patch index 8a3c2db2..f7400b72 100644 --- a/build/patches/Add-option-to-disable-snapshots.patch +++ b/build/patches/Add-option-to-disable-snapshots.patch @@ -109,7 +109,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import org.chromium.base.IntentUtils; import org.chromium.base.metrics.RecordHistogram; import org.chromium.base.metrics.RecordUserAction; -+import org.chromium.base.supplier.Supplier; ++import java.util.function.Supplier; import org.chromium.base.supplier.ObservableSupplier; import org.chromium.base.supplier.ObservableSupplierImpl; import org.chromium.build.annotations.NullMarked; 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 068130c8..ac639836 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 @@ -6,7 +6,7 @@ And allow use about:blank as default homepage License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../tab_management/TabGridDialogMediator.java | 11 ++++++++++- + .../tab_management/TabGridDialogMediator.java | 12 +++++++++++- .../tasks/tab_management/TabGroupUiMediator.java | 8 +++++++- .../java/res/xml/homepage_preferences.xml | 5 +++++ .../strip/TabGroupContextMenuCoordinator.java | 11 ++++++++++- @@ -19,12 +19,20 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../android/strings/android_chrome_strings.grd | 3 +++ chrome/browser/ui/browser_ui_prefs.cc | 2 ++ chrome/common/pref_names.h | 4 ++++ - 13 files changed, 79 insertions(+), 4 deletions(-) + 13 files changed, 80 insertions(+), 4 deletions(-) diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java -@@ -120,6 +120,9 @@ import java.util.Objects; +@@ -100,6 +100,7 @@ import org.chromium.components.collaboration.messaging.PersistentNotificationTyp + import org.chromium.components.data_sharing.DataSharingService; + import org.chromium.components.data_sharing.GroupMember; + import org.chromium.components.data_sharing.member_role.MemberRole; ++import org.chromium.components.embedder_support.util.UrlConstants; + import org.chromium.components.tab_group_sync.EitherId.EitherGroupId; + import org.chromium.components.tab_group_sync.LocalTabGroupId; + import org.chromium.components.tab_group_sync.TabGroupSyncService; +@@ -120,6 +121,9 @@ import java.util.Objects; import java.util.Set; import java.util.function.Supplier; @@ -34,7 +42,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser /** * A mediator for the TabGridDialog component, responsible for communicating with the components' * coordinator as well as managing the business logic for dialog show/hide. -@@ -1033,9 +1036,15 @@ public class TabGridDialogMediator +@@ -1033,9 +1037,15 @@ public class TabGridDialogMediator UrlConstantResolver urlConstantResolver = UrlConstantResolverFactory.getForProfile(profile); diff --git a/build/patches/Add-site-engagement-flag.patch b/build/patches/Add-site-engagement-flag.patch index ddd927c2..e005b42c 100644 --- a/build/patches/Add-site-engagement-flag.patch +++ b/build/patches/Add-site-engagement-flag.patch @@ -9,6 +9,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- chrome/browser/about_flags.cc | 1 + .../engagement/important_sites_util.cc | 9 +++++ + .../browser/media/media_engagement_service.cc | 4 ++- .../internal/tracker_impl.cc | 3 ++ .../public/feature_configurations.cc | 7 ++++ .../content/site_engagement_score.cc | 5 +++ @@ -16,7 +17,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html components/site_engagement/core/features.cc | 30 ++++++++++++++++ components/site_engagement/core/features.h | 34 +++++++++++++++++++ .../Add-site-engagement-flag.inc | 10 ++++++ - 9 files changed, 105 insertions(+) + 10 files changed, 108 insertions(+), 1 deletion(-) create mode 100644 components/site_engagement/core/features.cc create mode 100644 components/site_engagement/core/features.h create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-site-engagement-flag.inc @@ -65,6 +66,27 @@ diff --git a/chrome/browser/engagement/important_sites_util.cc b/chrome/browser/ std::map important_info; std::map engagement_map; +diff --git a/chrome/browser/media/media_engagement_service.cc b/chrome/browser/media/media_engagement_service.cc +--- a/chrome/browser/media/media_engagement_service.cc ++++ b/chrome/browser/media/media_engagement_service.cc +@@ -25,6 +25,7 @@ + #include "components/history/core/browser/history_service.h" + #include "components/no_state_prefetch/browser/no_state_prefetch_contents.h" + #include "components/prefs/pref_service.h" ++#include "components/site_engagement/core/features.h" + #include "content/public/browser/web_contents.h" + #include "media/base/media_switches.h" + #include "url/origin.h" +@@ -54,7 +55,8 @@ enum class MediaEngagementClearReason { + + // static + bool MediaEngagementService::IsEnabled() { +- return base::FeatureList::IsEnabled(media::kRecordMediaEngagementScores); ++ return base::FeatureList::IsEnabled(media::kRecordMediaEngagementScores) ++ && base::FeatureList::IsEnabled(site_engagement::features::kSiteEngagement); + } + + // static diff --git a/components/feature_engagement/internal/tracker_impl.cc b/components/feature_engagement/internal/tracker_impl.cc --- a/components/feature_engagement/internal/tracker_impl.cc +++ b/components/feature_engagement/internal/tracker_impl.cc diff --git a/build/patches/Android-Pixel-Perfect-Mode.patch b/build/patches/Android-Pixel-Perfect-Mode.patch index 6d3387de..a07a5f0b 100644 --- a/build/patches/Android-Pixel-Perfect-Mode.patch +++ b/build/patches/Android-Pixel-Perfect-Mode.patch @@ -2185,8 +2185,8 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox cc::TouchAction touch_action = cc::TouchAction::kAuto; - const gfx::Point point(touch_event.touches[i].PositionInWidget().x(), - touch_event.touches[i].PositionInWidget().y()); -+ const gfx::Point ScalePoint(point(touch_event.touches[i].PositionInWidget().x(), -+ touch_event.touches[i].PositionInWidget().y())); ++ const gfx::Point point(ScalePoint(gfx::Point(touch_event.touches[i].PositionInWidget().x(), ++ touch_event.touches[i].PositionInWidget().y()))); // 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. diff --git a/build/patches/Bromite-auto-updater.patch b/build/patches/Bromite-auto-updater.patch index 9af9699b..88a9ee6a 100644 --- a/build/patches/Bromite-auto-updater.patch +++ b/build/patches/Bromite-auto-updater.patch @@ -21,12 +21,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/endpoint_fetcher/BUILD.gn | 32 ++ chrome/browser/endpoint_fetcher/DEPS | 3 + chrome/browser/endpoint_fetcher/OWNERS | 1 + - .../endpoint_fetcher_android.cc | 149 +++++++++ - .../endpoint_fetcher/EndpointFetcher.java | 116 +++++++ + .../endpoint_fetcher_android.cc | 107 +++++++ + .../endpoint_fetcher/EndpointFetcher.java | 63 ++++ .../EndpointHeaderResponse.java | 31 ++ .../endpoint_fetcher/EndpointResponse.java | 30 ++ .../flags/android/chrome_feature_list.cc | 1 + .../browser/flags/ChromeFeatureList.java | 1 + + .../access_code_cast_discovery_interface.cc | 2 +- chrome/browser/omaha/android/BUILD.gn | 3 + .../chrome/browser/omaha/OmahaPrefUtils.java | 52 +++- .../chrome/browser/omaha/UpdateConfigs.java | 27 +- @@ -34,15 +35,22 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/omaha/VersionNumberGetter.java | 4 +- .../omaha/inline/InlineUpdateController.java | 57 ++++ .../safety_hub/SafetyHubFetchService.java | 5 - + .../browser/save_to_drive/drive_uploader.cc | 2 +- .../strings/android_chrome_strings.grd | 23 +- - .../ui/lens/lens_overlay_query_controller.cc | 1 + - .../endpoint_fetcher/endpoint_fetcher.cc | 125 ++++++-- + .../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 +- + .../data_sharing_network_loader_impl.cc | 2 +- + .../internal/preview_server_proxy.cc | 2 +- + .../endpoint_fetcher/endpoint_fetcher.cc | 127 ++++++-- .../endpoint_fetcher/endpoint_fetcher.h | 28 +- - components/manta/base_provider.cc | 1 + + components/manta/base_provider.cc | 4 +- .../composebox/composebox_query_controller.cc | 2 +- .../Bromite-auto-updater.inc | 3 + .../Bromite-auto-updater.inc | 1 + - 34 files changed, 1239 insertions(+), 94 deletions(-) + 42 files changed, 1154 insertions(+), 106 deletions(-) create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/omaha/CromiteUpdateStatusProvider.java create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/BromiteInlineUpdateController.java create mode 100644 chrome/browser/endpoint_fetcher/BUILD.gn @@ -746,7 +754,7 @@ diff --git a/chrome/browser/endpoint_fetcher/endpoint_fetcher_android.cc b/chrom new file mode 100644 --- /dev/null +++ b/chrome/browser/endpoint_fetcher/endpoint_fetcher_android.cc -@@ -0,0 +1,149 @@ +@@ -0,0 +1,107 @@ +// Copyright 2019 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. @@ -801,48 +809,6 @@ new file mode 100644 +} +} // namespace + -+// TODO(crbug.com/1077537) Create a KeyProvider so -+// we can have one centralized API. -+ -+static void JNI_EndpointFetcher_NativeFetchOAuth( -+ JNIEnv* env, -+ const base::android::JavaParamRef& jprofile, -+ const base::android::JavaParamRef& joauth_consumer_name, -+ const base::android::JavaParamRef& jurl, -+ const base::android::JavaParamRef& jhttps_method, -+ const base::android::JavaParamRef& jcontent_type, -+ const base::android::JavaParamRef& jscopes, -+ const base::android::JavaParamRef& jpost_data, -+ jlong jtimeout, -+ jint jannotation_hash_code, -+ const base::android::JavaParamRef& jcallback) { -+ std::vector scopes; -+ base::android::AppendJavaStringArrayToStringVector(env, jscopes, &scopes); -+ auto endpoint_fetcher = std::make_unique( -+ Profile::FromJavaObject(jprofile) -+ ->GetDefaultStoragePartition() -+ ->GetURLLoaderFactoryForBrowserProcess(), -+ base::android::ConvertJavaStringToUTF8(env, joauth_consumer_name), -+ GURL(base::android::ConvertJavaStringToUTF8(env, jurl)), -+ base::android::ConvertJavaStringToUTF8(env, jhttps_method), -+ base::android::ConvertJavaStringToUTF8(env, jcontent_type), scopes, -+ base::Milliseconds(jtimeout), base::android::ConvertJavaStringToUTF8(env, jpost_data), -+ net::NetworkTrafficAnnotationTag::FromJavaAnnotation( -+ jannotation_hash_code), -+ IdentityManagerFactory::GetForProfile( -+ Profile::FromJavaObject(jprofile)), -+ // TODO(crbug.com/1466445): ConsentLevel::kSync is deprecated and should -+ // be removed. See ConsentLevel::kSync documentation for details. -+ signin::ConsentLevel::kSync); -+ auto* const endpoint_fetcher_ptr = endpoint_fetcher.get(); -+ endpoint_fetcher_ptr->Fetch( -+ base::BindOnce(&OnEndpointFetcherComplete, -+ base::android::ScopedJavaGlobalRef(jcallback), -+ // unique_ptr endpoint_fetcher is passed until the callback -+ // to ensure its lifetime across the request. -+ std::move(endpoint_fetcher))); -+} -+ +static void JNI_EndpointFetcher_NativeFetchWithNoAuth( + JNIEnv* env, + const base::android::JavaParamRef& jprofile, @@ -900,7 +866,7 @@ diff --git a/chrome/browser/endpoint_fetcher/java/src/org/chromium/chrome/browse new file mode 100644 --- /dev/null +++ b/chrome/browser/endpoint_fetcher/java/src/org/chromium/chrome/browser/endpoint_fetcher/EndpointFetcher.java -@@ -0,0 +1,116 @@ +@@ -0,0 +1,63 @@ +// Copyright 2019 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. @@ -928,47 +894,6 @@ new file mode 100644 +public final class EndpointFetcher { + private EndpointFetcher() {} + -+ /** -+ * Calls an endpoint using OAuth and returns the response via a callback -+ * @param callback callback function response is returned in -+ * @param profile profile via which the endpoint is called -+ * @param oathConsumerName consumer name for OAuth -+ * @param url endpoint URL called -+ * @param httpsMethod the HTTPS method used e.g. "GET" or "POST" -+ * @param contentType the content type e.g. "application/json" -+ * @param scopes scopes used as part of authentication -+ * @param postData data for a "POST" request -+ * @param timeout time after which the request will terminate in the event a response hasn't -+ * been received -+ */ -+ @MainThread -+ public static void fetchUsingOAuth( -+ Callback callback, -+ Profile profile, -+ String oathConsumerName, -+ String url, -+ String httpsMethod, -+ String contentType, -+ String[] scopes, -+ String postData, -+ long timeout, -+ NetworkTrafficAnnotationTag annotation) { -+ // EndpointFetcher currently does not support incognito mode -+ assert !profile.isOffTheRecord(); -+ EndpointFetcherJni.get() -+ .nativeFetchOAuth( -+ profile, -+ oathConsumerName, -+ url, -+ httpsMethod, -+ contentType, -+ scopes, -+ postData, -+ timeout, -+ annotation.getHashCode(), -+ callback); -+ } -+ + @MainThread + public static void nativeHeadWithNoAuth( + Callback callback, Profile profile, @@ -989,18 +914,6 @@ new file mode 100644 + + @NativeMethods + public interface Natives { -+ void nativeFetchOAuth( -+ Profile profile, -+ String oathConsumerName, -+ String url, -+ String httpsMethod, -+ String contentType, -+ String[] scopes, -+ String postData, -+ long timeout, -+ int annotationHashCode, -+ Callback callback); -+ + void nativeFetchWithNoAuth( + Profile profile, + String url, @@ -1110,6 +1023,18 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final String INSTANCE_SWITCHER_V2 = "InstanceSwitcherV2"; public static final String IP_PROTECTION_UX = "IpProtectionUx"; public static final String KEYBOARD_ESC_BACK_NAVIGATION = "KeyboardEscBackNavigation"; +diff --git a/chrome/browser/media/router/discovery/access_code/access_code_cast_discovery_interface.cc b/chrome/browser/media/router/discovery/access_code/access_code_cast_discovery_interface.cc +--- a/chrome/browser/media/router/discovery/access_code/access_code_cast_discovery_interface.cc ++++ b/chrome/browser/media/router/discovery/access_code/access_code_cast_discovery_interface.cc +@@ -270,7 +270,7 @@ AccessCodeCastDiscoveryInterface::CreateEndpointFetcher( + .SetOauthScopes(discovery_scopes) + .SetOauthConsumerName(kDiscoveryOAuthConsumerName) + .SetPostData(kEmptyPostData) +- .Build()); ++ .Build(), kTrafficAnnotation); + } + + void AccessCodeCastDiscoveryInterface::ValidateDiscoveryAccessCode( diff --git a/chrome/browser/omaha/android/BUILD.gn b/chrome/browser/omaha/android/BUILD.gn --- a/chrome/browser/omaha/android/BUILD.gn +++ b/chrome/browser/omaha/android/BUILD.gn @@ -1677,6 +1602,18 @@ diff --git a/chrome/browser/safety_hub/android/java/src/org/chromium/chrome/brow } /** See {@link ChromeActivitySessionTracker#onForegroundSessionStart()}. */ +diff --git a/chrome/browser/save_to_drive/drive_uploader.cc b/chrome/browser/save_to_drive/drive_uploader.cc +--- a/chrome/browser/save_to_drive/drive_uploader.cc ++++ b/chrome/browser/save_to_drive/drive_uploader.cc +@@ -288,7 +288,7 @@ DriveUploader::CreateEndpointFetcher( + return std::make_unique( + /*url_loader_factory=*/url_loader_factory_.get(), + /*identity_manager=*/identity_manager_, +- /*request_params=*/std::move(request_params)); ++ /*request_params=*/std::move(request_params), kTrafficAnnotationTag); + } + + DriveUploaderType DriveUploader::get_drive_uploader_type() const { 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 @@ -1727,14 +1664,87 @@ 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 -@@ -712,6 +712,7 @@ LensOverlayQueryController::CreateEndpointFetcher( - /*url_loader_factory=*/profile_ - ? profile_->GetURLLoaderFactory().get() - : g_browser_process->shared_url_loader_factory(), -+ kTrafficAnnotationTag, - /*identity_manager=*/nullptr, - EndpointFetcher::RequestParams::Builder(http_method, - kTrafficAnnotationTag) +@@ -726,7 +726,7 @@ LensOverlayQueryController::CreateEndpointFetcher( + .SetTimeout(timeout) + .SetUrl(fetch_url) + .SetUploadProgressCallback(std::move(upload_progress_callback)) +- .Build()); ++ .Build(), kTrafficAnnotationTag); + } + + void LensOverlayQueryController::SendLatencyGen204IfEnabled( +diff --git a/components/commerce/core/account_checker.cc b/components/commerce/core/account_checker.cc +--- a/components/commerce/core/account_checker.cc ++++ b/components/commerce/core/account_checker.cc +@@ -331,7 +331,7 @@ std::unique_ptr AccountChecker::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(), annotation_tag); + } + + } // 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 +@@ -158,7 +158,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 +@@ -298,7 +298,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 +@@ -304,7 +304,7 @@ SubscriptionsServerProxy::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(), annotation_tag); + } + + void SubscriptionsServerProxy::HandleManageSubscriptionsResponses( +diff --git a/components/data_sharing/internal/data_sharing_network_loader_impl.cc b/components/data_sharing/internal/data_sharing_network_loader_impl.cc +--- a/components/data_sharing/internal/data_sharing_network_loader_impl.cc ++++ b/components/data_sharing/internal/data_sharing_network_loader_impl.cc +@@ -78,7 +78,7 @@ DataSharingNetworkLoaderImpl::CreateEndpointFetcher( + .SetOauthScopes(scopes) + .SetOauthConsumerName(kOauthConsumerName) + .SetPostData(post_data) +- .Build()); ++ .Build(), annotation_tag); + } + + void DataSharingNetworkLoaderImpl::OnDownloadComplete( +diff --git a/components/data_sharing/internal/preview_server_proxy.cc b/components/data_sharing/internal/preview_server_proxy.cc +--- a/components/data_sharing/internal/preview_server_proxy.cc ++++ b/components/data_sharing/internal/preview_server_proxy.cc +@@ -351,7 +351,7 @@ std::unique_ptr PreviewServerProxy::CreateEndpointFetcher( + .SetUrl(url) + .SetOauthScopes(std::vector{kOAuthScope}) + .SetOauthConsumerName(kOAuthName) +- .Build()); ++ .Build(), kGetSharedDataPreviewTrafficAnnotation); + } + + void PreviewServerProxy::HandleServerResponse( diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoint_fetcher/endpoint_fetcher.cc --- a/components/endpoint_fetcher/endpoint_fetcher.cc +++ b/components/endpoint_fetcher/endpoint_fetcher.cc @@ -1777,8 +1787,9 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi EndpointFetcher::EndpointFetcher( const scoped_refptr& url_loader_factory, signin::IdentityManager* identity_manager, -+ const net::NetworkTrafficAnnotationTag& annotation_tag, - RequestParams request_params) +- RequestParams request_params) ++ RequestParams request_params, ++ const net::NetworkTrafficAnnotationTag& annotation_tag) : url_loader_factory_(url_loader_factory), identity_manager_(identity_manager), + intercept_redirect_(false), @@ -2031,14 +2042,24 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoin diff --git a/components/manta/base_provider.cc b/components/manta/base_provider.cc --- a/components/manta/base_provider.cc +++ b/components/manta/base_provider.cc -@@ -156,6 +156,7 @@ std::unique_ptr BaseProvider::CreateEndpointFetcherForDemoMode( - return std::make_unique( - /*url_loader_factory=*/url_loader_factory_, - /*identity_manager=*/nullptr, -+ annotation_tag, - EndpointFetcher::RequestParams::Builder(kHttpMethod, annotation_tag) - .SetAuthType(endpoint_fetcher::CHROME_API_KEY) - .SetUrl(url) +@@ -145,7 +145,7 @@ std::unique_ptr BaseProvider::CreateEndpointFetcher( + .SetOauthScopes(scopes) + .SetOauthConsumerName(oauth_consumer_name) + .SetPostData(post_data) +- .Build()); ++ .Build(), annotation_tag); + } + + std::unique_ptr BaseProvider::CreateEndpointFetcherForDemoMode( +@@ -163,7 +163,7 @@ std::unique_ptr BaseProvider::CreateEndpointFetcherForDemoMode( + .SetTimeout(timeout) + .SetPostData(post_data) + .SetChannel(version_info::Channel::STABLE) +- .Build()); ++ .Build(), annotation_tag); + } + + } // namespace manta diff --git a/components/omnibox/composebox/composebox_query_controller.cc b/components/omnibox/composebox/composebox_query_controller.cc --- a/components/omnibox/composebox/composebox_query_controller.cc +++ b/components/omnibox/composebox/composebox_query_controller.cc diff --git a/build/patches/Bromite-subresource-adblocker.patch b/build/patches/Bromite-subresource-adblocker.patch index 3aebf23a..f8e1538e 100644 --- a/build/patches/Bromite-subresource-adblocker.patch +++ b/build/patches/Bromite-subresource-adblocker.patch @@ -377,7 +377,7 @@ new file mode 100644 + +import org.chromium.base.supplier.ObservableSupplier; +import org.chromium.base.supplier.ObservableSupplierImpl; -+import org.chromium.base.supplier.Supplier; ++import java.util.function.Supplier; + +import org.chromium.content_public.browser.BrowserContextHandle; +import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; diff --git a/build/patches/Change-popup-site-setting.patch b/build/patches/Change-popup-site-setting.patch index 7879328c..d054733b 100644 --- a/build/patches/Change-popup-site-setting.patch +++ b/build/patches/Change-popup-site-setting.patch @@ -6,20 +6,33 @@ In site settings added ability to block all popups per site License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- + .../settings/site_settings/popups_page.html | 2 + .../tab_under_navigation_throttle.cc | 11 +- .../android/popup_blocked_message_delegate.cc | 20 +++- .../android/popup_blocked_message_delegate.h | 1 + components/blocked_content/popup_blocker.cc | 3 + components/blocked_content_strings.grdp | 3 + .../impl/BromitePopupContentSetting.java | 106 ++++++++++++++++++ - .../bromite_content_settings/popups.grdp | 12 ++ - .../bromite_content_settings/popups.inc | 8 ++ + .../bromite_content_settings/popups.grdp | 18 +++ + .../bromite_content_settings/popups.inc | 13 +++ .../core/browser/content_settings_registry.cc | 2 +- - 9 files changed, 160 insertions(+), 6 deletions(-) + 10 files changed, 173 insertions(+), 6 deletions(-) create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromitePopupContentSetting.java create mode 100644 components/browser_ui/strings/bromite_content_settings/popups.grdp create mode 100644 components/content_settings/core/browser/bromite_content_settings/popups.inc +diff --git a/chrome/browser/resources/settings/site_settings/popups_page.html b/chrome/browser/resources/settings/site_settings/popups_page.html +--- a/chrome/browser/resources/settings/site_settings/popups_page.html ++++ b/chrome/browser/resources/settings/site_settings/popups_page.html +@@ -9,6 +9,8 @@ + category="[[contentSettingsTypesEnum_.POPUPS]]" + allow-option-label="$i18n{siteSettingsPopupsAllowed}" + allow-option-icon="cr:open-in-new" ++ ask-option-label="$i18n{brSiteSettingspopupsAsk}" ++ ask-option-icon="privacy:open-in-new-off" + block-option-label="$i18n{siteSettingsPopupsBlocked}" + block-option-icon="privacy:open-in-new-off"> + diff --git a/chrome/browser/ui/blocked_content/tab_under_navigation_throttle.cc b/chrome/browser/ui/blocked_content/tab_under_navigation_throttle.cc --- a/chrome/browser/ui/blocked_content/tab_under_navigation_throttle.cc +++ b/chrome/browser/ui/blocked_content/tab_under_navigation_throttle.cc @@ -244,9 +257,15 @@ diff --git a/components/browser_ui/strings/bromite_content_settings/popups.grdp new file mode 100644 --- /dev/null +++ b/components/browser_ui/strings/bromite_content_settings/popups.grdp -@@ -0,0 +1,12 @@ +@@ -0,0 +1,18 @@ + + ++ ++ Block sites from showing pop-ups and redirects ++ ++ ++ When on, sites can use pop-ups and redirects. When off, sites can’t use pop-ups and redirects. ++ + + Block all popups + @@ -261,15 +280,20 @@ diff --git a/components/content_settings/core/browser/bromite_content_settings/p new file mode 100644 --- /dev/null +++ b/components/content_settings/core/browser/bromite_content_settings/popups.inc -@@ -0,0 +1,8 @@ +@@ -0,0 +1,13 @@ + content_settings::WebsiteSettingsRegistry::GetInstance() + ->GetMutable(ContentSettingsType::POPUPS) + ->set_show_into_info_page() + .set_desktop_ui() + .set_is_renderer_content_setting() ++ .set_title_ui(IDS_WEBSITE_SETTINGS_CATEGORY_POPUP) ++ .set_description_ui(IDS_WEBSITE_SETTINGS_CATEGORY_POPUP_DESCRIPTION) + .set_allowed_ui(IDS_WEBSITE_SETTINGS_CATEGORY_POPUP_ALLOWED) + .set_ask_ui(IDS_WEBSITE_SETTINGS_CATEGORY_POPUP_BLOCK_ALL) -+ .set_blocked_ui(IDS_WEBSITE_SETTINGS_CATEGORY_POPUP_BLOCKED); ++ .set_blocked_ui(IDS_WEBSITE_SETTINGS_CATEGORY_POPUP_BLOCKED) ++ .set_allowed_exceptions_ui(IDS_WEBSITE_SETTINGS_CATEGORY_POPUP_ALLOWED) ++ .set_blocked_exceptions_ui(IDS_WEBSITE_SETTINGS_CATEGORY_POPUP_BLOCKED) ++ .set_mid_sentence_ui(IDS_WEBSITE_SETTINGS_CATEGORY_POPUP); 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 diff --git a/build/patches/Content-settings-infrastructure.patch b/build/patches/Content-settings-infrastructure.patch index 329d8bf2..0514c821 100644 --- a/build/patches/Content-settings-infrastructure.patch +++ b/build/patches/Content-settings-infrastructure.patch @@ -15,7 +15,7 @@ Require: bromite-build-utils.patch ...page_specific_content_settings_delegate.cc | 2 +- chrome/browser/resources/settings/BUILD.gn | 2 +- .../privacy_page/privacy_page_index.html | 1 + - .../privacy_page/privacy_page_index.ts | 77 +++- + .../privacy_page/privacy_page_index.ts | 82 +++- chrome/browser/resources/settings/route.ts | 2 + ...settings_category_default_radio_group.html | 12 + .../settings_category_default_radio_group.ts | 23 +- @@ -85,7 +85,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 + - 74 files changed, 1967 insertions(+), 108 deletions(-) + 74 files changed, 1972 insertions(+), 108 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 @@ -180,22 +180,23 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page_index.h diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page_index.ts b/chrome/browser/resources/settings/privacy_page/privacy_page_index.ts --- a/chrome/browser/resources/settings/privacy_page/privacy_page_index.ts +++ b/chrome/browser/resources/settings/privacy_page/privacy_page_index.ts -@@ -29,6 +29,7 @@ import {PrivacyGuideAvailabilityMixin} from './privacy_guide/privacy_guide_avail +@@ -29,6 +29,8 @@ import {PrivacyGuideAvailabilityMixin} from './privacy_guide/privacy_guide_avail import type {PrivacyGuideBrowserProxy} from './privacy_guide/privacy_guide_browser_proxy.js'; import {MAX_PRIVACY_GUIDE_PROMO_IMPRESSION, PrivacyGuideBrowserProxyImpl} from './privacy_guide/privacy_guide_browser_proxy.js'; import {getTemplate} from './privacy_page_index.html.js'; -+import { SettingsCategoryDefaultRadioGroupElement } from '../site_settings/settings_category_default_radio_group.js'; ++import {ContentSettingsTypes} from '../site_settings/constants.js'; ++import {SettingsCategoryDefaultRadioGroupElement} from '../site_settings/settings_category_default_radio_group.js'; // clang-format off // -@@ -53,8 +54,82 @@ export class SettingsPrivacyPageIndexElement extends +@@ -53,8 +55,86 @@ export class SettingsPrivacyPageIndexElement extends return 'settings-privacy-page-index'; } + static getSettingTemplate(template: HTMLTemplateElement, + name: string) : SettingsCategoryDefaultRadioGroupElement | undefined { + let value : SettingsCategoryDefaultRadioGroupElement | undefined = undefined; -+ let page : any = template.content.querySelector("settings-animated-pages"); ++ let page : any = template.content.querySelector("cr-view-manager"); + + page.querySelectorAll("template")!.forEach( + (subTemplate: HTMLTemplateElement) => { @@ -234,9 +235,14 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page_index.t + subpage.setAttribute("page-title", loadTimeData.getString(`brSiteSettings${name}`)); + subpage.setAttribute("search-title", loadTimeData.getString("siteSettingsAllSitesSearch")); + subpage.setAttribute("search-term", "{{searchFilter_}}"); ++ subpage.setAttribute("slot", "view"); ++ subpage.setAttribute("data-parent-view-id", "privacy"); ++ subpage.setAttribute("id", `siteSettings${name}`); ++ subpage.setAttribute("route-path", `/content/${tag_name}`); + + let divElement = document.createElement("div"); + divElement.setAttribute("class", "content-settings-header secondary"); ++ divElement.setAttribute("style", "padding: 0 var(--cr-section-padding)"); + divElement.innerText = loadTimeData.getString(`brSiteSettings${name}Description`); + subpage.appendChild(divElement); + @@ -261,8 +267,7 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page_index.t + + let tag = document.createElement("template"); + tag.setAttribute("is", "dom-if"); -+ tag.setAttribute("route-path", `/content/${tag_name}`); -+ tag.setAttribute("no-search", ""); ++ tag.setAttribute("if", `[[renderView_(routes_.SITE_SETTINGS_${name.toUpperCase()}, currentRoute, inSearchMode)]]`); + tag.content.appendChild(subpage); + + content.parentElement!.insertBefore(tag, content); diff --git a/build/patches/Disable-all-predictors-code.patch b/build/patches/Disable-all-predictors-code.patch index aa8974ac..ac10b20c 100644 --- a/build/patches/Disable-all-predictors-code.patch +++ b/build/patches/Disable-all-predictors-code.patch @@ -15,8 +15,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/permissions/BUILD.gn | 2 -- .../permissions/chrome_permissions_client.cc | 2 -- .../passage_embedder_delegate.cc | 2 ++ + .../permissions_ai_ui_selector.cc | 1 + .../prediction_model_handler_provider.cc | 9 ++++++--- .../prediction_model_handler_provider.h | 2 ++ + .../quiet_notification_permission_ui_state.cc | 4 ++-- .../predictors/autocomplete_action_predictor.cc | 2 ++ .../predictors/loading_predictor_config.cc | 4 ++-- .../browser/predictors/predictors_features.cc | 3 +-- @@ -38,7 +40,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/utility/BUILD.gn | 2 +- chrome/utility/services.cc | 8 -------- components/BUILD.gn | 2 +- - .../browser/foundations/autofill_manager.cc | 2 ++ + .../browser/foundations/autofill_manager.cc | 6 ++++++ .../core/browser/foundations/autofill_manager.h | 3 +++ .../autofill_optimization_guide_decider.cc | 5 +++-- .../field_classification_model_handler.cc | 12 ++++++++---- @@ -59,7 +61,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../Disable-all-predictors-code.inc | 2 ++ .../Disable-all-predictors-code.inc | 1 + .../Disable-all-predictors-code.inc | 1 + - .../features_cc/Disable-all-predictors-code.inc | 3 +++ + .../features_cc/Disable-all-predictors-code.inc | 5 +++++ .../features_cc/Disable-all-predictors-code.inc | 1 + .../features_cc/Disable-all-predictors-code.inc | 1 + .../features_cc/Disable-all-predictors-code.inc | 2 ++ @@ -72,7 +74,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../core/html/parser/html_document_parser.cc | 1 + .../document_speculation_rules.cc | 1 + .../platform/runtime_enabled_features.json5 | 2 +- - 67 files changed, 165 insertions(+), 94 deletions(-) + 69 files changed, 174 insertions(+), 96 deletions(-) create mode 100644 cromite_flags/chrome/browser/browser_features_cc/Disable-all-predictors-code.inc create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-all-predictors-code.inc create mode 100644 cromite_flags/chrome/common/chrome_features_cc/Disable-all-predictors-code.inc @@ -268,6 +270,17 @@ diff --git a/chrome/browser/permissions/prediction_service/passage_embedder_dele return nullptr; } +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 +@@ -718,6 +718,7 @@ bool PermissionsAiUiSelector::ShouldHoldBack( + + PredictionSource PermissionsAiUiSelector::GetPredictionTypeToUse( + permissions::RequestType request_type) { ++ if ((true)) return PredictionSource::kNoCpssModel; + const bool is_msbb_enabled = profile_->GetPrefs()->GetBoolean( + unified_consent::prefs::kUrlKeyedAnonymizedDataCollectionEnabled); + 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 @@ -312,6 +325,21 @@ diff --git a/chrome/browser/permissions/prediction_service/prediction_model_hand std::unique_ptr permissions_aiv1_handler_; #if BUILDFLAG(BUILD_WITH_TFLITE_LIB) +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( + registry->RegisterTimePref(prefs::kQuietNotificationPermissionUiDisabledTime, + base::Time()); + registry->RegisterBooleanPref(prefs::kEnableNotificationCPSS, +- /*default_value=*/true); ++ /*default_value=*/false); + registry->RegisterBooleanPref(prefs::kEnableGeolocationCPSS, +- /*default_value=*/true); ++ /*default_value=*/false); + registry->RegisterBooleanPref( + prefs::kDidMigrateAdaptiveNotifiationQuietingToCPSS, + /*default_value=*/false); diff --git a/chrome/browser/predictors/autocomplete_action_predictor.cc b/chrome/browser/predictors/autocomplete_action_predictor.cc --- a/chrome/browser/predictors/autocomplete_action_predictor.cc +++ b/chrome/browser/predictors/autocomplete_action_predictor.cc @@ -805,7 +833,34 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn diff --git a/components/autofill/core/browser/foundations/autofill_manager.cc b/components/autofill/core/browser/foundations/autofill_manager.cc --- a/components/autofill/core/browser/foundations/autofill_manager.cc +++ b/components/autofill/core/browser/foundations/autofill_manager.cc -@@ -955,6 +955,7 @@ void AutofillManager::LogCurrentFieldTypes( +@@ -137,8 +137,10 @@ struct AutofillManager::AsyncContext { + + std::vector forms; + std::vector regex_predictions; ++#if BUILDFLAG(BUILD_WITH_TFLITE_LIB) + std::vector autofill_predictions; + std::vector password_manager_predictions; ++#endif + GeoIpCountryCode country_code; + LanguageCode current_page_language; + std::unique_ptr log_manager; +@@ -707,6 +709,7 @@ void AutofillManager::ParseFormsAsyncCommon( + } + } + ++#if BUILDFLAG(BUILD_WITH_TFLITE_LIB) + if (!context.autofill_predictions.empty()) { + context.autofill_predictions[i].ApplyTo(form_structure->fields()); + } +@@ -714,6 +717,7 @@ void AutofillManager::ParseFormsAsyncCommon( + context.password_manager_predictions[i].ApplyTo( + form_structure->fields()); + } ++#endif + if (!context.regex_predictions.empty()) { + context.regex_predictions[i].ApplyTo(form_structure->fields()); + } +@@ -955,6 +959,7 @@ void AutofillManager::LogCurrentFieldTypes( } } @@ -813,7 +868,7 @@ diff --git a/components/autofill/core/browser/foundations/autofill_manager.cc b/ void AutofillManager::SubscribeToMlModelChanges( FieldClassificationModelHandler& handler) { switch (handler.optimization_target()) { -@@ -978,5 +979,6 @@ void AutofillManager::SubscribeToMlModelChanges( +@@ -978,5 +983,6 @@ void AutofillManager::SubscribeToMlModelChanges( NOTREACHED(); } } @@ -1243,10 +1298,12 @@ diff --git a/cromite_flags/components/permissions/features_cc/Disable-all-predic new file mode 100644 --- /dev/null +++ b/cromite_flags/components/permissions/features_cc/Disable-all-predictors-code.inc -@@ -0,0 +1,3 @@ -+SET_CROMITE_FEATURE_DISABLED(kPermissionOnDeviceNotificationPredictions); -+SET_CROMITE_FEATURE_DISABLED(kPermissionOnDeviceGeolocationPredictions); +@@ -0,0 +1,5 @@ +SET_CROMITE_FEATURE_DISABLED(kPermissionPredictionsV2); ++ ++#if BUILDFLAG(IS_ANDROID) ++SET_CROMITE_FEATURE_DISABLED(kPermissionDedicatedCpssSettingAndroid); ++#endif diff --git a/cromite_flags/net/base/features_cc/Disable-all-predictors-code.inc b/cromite_flags/net/base/features_cc/Disable-all-predictors-code.inc new file mode 100644 --- /dev/null diff --git a/build/patches/Disable-privacy-issues-in-password-manager.patch b/build/patches/Disable-privacy-issues-in-password-manager.patch index 6adf97b2..6f1cef0c 100644 --- a/build/patches/Disable-privacy-issues-in-password-manager.patch +++ b/build/patches/Disable-privacy-issues-in-password-manager.patch @@ -181,7 +181,7 @@ diff --git a/components/password_manager/core/browser/password_manager.cc b/comp #endif // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) || // BUILDFLAG(IS_CHROMEOS) #if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_IOS) // Desktop -@@ -612,7 +612,7 @@ void PasswordManager::RegisterProfilePrefs( +@@ -610,7 +610,7 @@ void PasswordManager::RegisterProfilePrefs( registry->RegisterBooleanPref(prefs::kAccountStoreMigratedToOSCryptAsync, false); registry->RegisterBooleanPref( diff --git a/build/patches/Enable-native-Android-autofill.patch b/build/patches/Enable-native-Android-autofill.patch index 96805a25..0c3a23e5 100644 --- a/build/patches/Enable-native-Android-autofill.patch +++ b/build/patches/Enable-native-Android-autofill.patch @@ -18,7 +18,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../settings/PasswordSettings.java | 84 ++++++++++++++++++- .../chrome/browser/settings/MainSettings.java | 16 +--- .../chromium/chrome/browser/tab/TabImpl.java | 42 ++++++++-- - chrome/browser/android/tab_android.cc | 3 +- + chrome/browser/android/tab_android.cc | 4 +- chrome/browser/autofill/android/BUILD.gn | 2 +- .../autofill/AutofillClientProviderUtils.java | 2 +- ...AutofillThirdPartyModeContentProvider.java | 1 + @@ -45,7 +45,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../autofill/core/common/autofill_features.cc | 1 - .../autofill/core/common/autofill_prefs.cc | 4 +- .../autofill/core/common/autofill_prefs.h | 5 ++ - 30 files changed, 278 insertions(+), 121 deletions(-) + 30 files changed, 279 insertions(+), 121 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 @@ -56,7 +56,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage import androidx.preference.PreferenceGroup; +import org.chromium.base.StrictModeContext; -+import org.chromium.base.supplier.Supplier; ++import java.util.function.Supplier; import org.chromium.base.supplier.ObservableSupplier; import org.chromium.base.supplier.ObservableSupplierImpl; import org.chromium.build.annotations.Nullable; @@ -297,7 +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 -@@ -449,8 +449,7 @@ void TabAndroid::InitializeAutofillIfNecessary(JNIEnv* env) { +@@ -36,6 +36,7 @@ + #include "chrome/browser/resource_coordinator/tab_load_tracker.h" + #include "chrome/browser/sync/glue/synced_tab_delegate_android.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" +@@ -449,8 +450,7 @@ void TabAndroid::InitializeAutofillIfNecessary(JNIEnv* env) { ->MaybeInitKeyboardSuppressor(); return; } diff --git a/build/patches/Enable-search-engine-settings-desktop-ui.patch b/build/patches/Enable-search-engine-settings-desktop-ui.patch index 696043a3..bf872cf7 100644 --- a/build/patches/Enable-search-engine-settings-desktop-ui.patch +++ b/build/patches/Enable-search-engine-settings-desktop-ui.patch @@ -12,7 +12,6 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html chrome/app/settings_strings.grdp | 3 + chrome/app/settings_strings_android.grdp | 260 ++++++++++++++++++ chrome/browser/BUILD.gn | 3 + - .../chrome_browser_interface_binders_webui.cc | 1 + ...r_interface_binders_webui_parts_desktop.cc | 3 + chrome/browser/extensions/extension_util.h | 2 +- chrome/browser/resources/BUILD.gn | 7 + @@ -28,7 +27,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../browser/resources/settings/settings.html | 8 +- .../settings/settings_ui/settings_ui.html | 6 + .../resources/settings_shared/BUILD.gn | 2 +- - chrome/browser/search/background/BUILD.gn | 4 +- + chrome/browser/search/background/BUILD.gn | 2 +- .../browser/search_engines/android/BUILD.gn | 1 + .../java/res/layout/search_engine_layout.xml | 25 ++ .../settings/SearchEngineSettings.java | 21 ++ @@ -80,7 +79,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html ui/webui/resources/images/BUILD.gn | 2 +- ui/webui/resources/js/BUILD.gn | 2 +- ui/webui/resources/js/load_time_data.ts | 17 +- - 73 files changed, 1151 insertions(+), 73 deletions(-) + 72 files changed, 1148 insertions(+), 73 deletions(-) create mode 100644 chrome/app/settings_strings_android.grdp create mode 100644 chrome/browser/search_engines/android/java/res/layout/search_engine_layout.xml create mode 100644 chrome/browser/ui/webui/settings/settings_localized_strings_provider_android.cc @@ -431,17 +430,6 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn } else { #!is_android sources += [ -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 -@@ -119,6 +119,7 @@ void PopulateChromeWebUIFrameBinders( - - #if BUILDFLAG(IS_ANDROID) - PopulateChromeWebUIFrameBindersPartsAndroid(map, render_frame_host); -+#error "Check this patch" - #else - PopulateChromeWebUIFrameBindersPartsDesktop(map, render_frame_host); - #endif // BUILDFLAG(IS_ANDROID) 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 @@ -786,7 +774,7 @@ diff --git a/chrome/browser/resources/settings_shared/BUILD.gn b/chrome/browser/ diff --git a/chrome/browser/search/background/BUILD.gn b/chrome/browser/search/background/BUILD.gn --- a/chrome/browser/search/background/BUILD.gn +++ b/chrome/browser/search/background/BUILD.gn -@@ -2,10 +2,11 @@ +@@ -2,7 +2,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. @@ -795,18 +783,6 @@ diff --git a/chrome/browser/search/background/BUILD.gn b/chrome/browser/search/b import("//third_party/protobuf/proto_library.gni") -+if (!is_android) { - source_set("background") { - public = [ - "ntp_background_service_factory.h", -@@ -73,6 +74,7 @@ source_set("background") { - ] - } - } -+} - - source_set("constants") { - sources = [ "ntp_custom_background_service_constants.h" ] 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 @@ -1171,20 +1147,19 @@ diff --git a/chrome/browser/ui/webui/favicon_source.cc b/chrome/browser/ui/webui parsed.force_empty_default_favicon ? DefaultFaviconBehavior::kUseEmptyIcon : DefaultFaviconBehavior::kUseGlobeIcon); -@@ -289,9 +295,13 @@ void FaviconSource::SendDefaultResponse( +@@ -289,8 +295,12 @@ void FaviconSource::SendDefaultResponse( DefaultFaviconBehavior behavior) { SendDefaultResponse(std::move(callback), 16, 1.0f, !force_light_mode && +#if !BUILDFLAG(IS_ANDROID) GetNativeTheme(wc_getter)->preferred_color_scheme() == ui::NativeTheme::PreferredColorScheme::kDark, - behavior); +#else -+ : false); ++ false, +#endif + behavior); } - void FaviconSource::SendDefaultResponse( @@ -309,6 +319,7 @@ void FaviconSource::SendDefaultResponse( int resource_id; diff --git a/build/patches/Eyeo-Adblock-for-Cromite.patch b/build/patches/Eyeo-Adblock-for-Cromite.patch index 920ad8a3..be8fc981 100644 --- a/build/patches/Eyeo-Adblock-for-Cromite.patch +++ b/build/patches/Eyeo-Adblock-for-Cromite.patch @@ -31,7 +31,7 @@ suit Cromite logic. .../settings/adblock_page/adblock_page.html | 218 + .../settings/adblock_page/adblock_page.ts | 311 + .../resources/settings/page_visibility.ts | 1 + - chrome/browser/resources/settings/route.ts | 5 + + chrome/browser/resources/settings/route.ts | 4 + chrome/browser/resources/settings/router.ts | 1 + chrome/browser/resources/settings/settings.ts | 1 + .../settings/settings_main/settings_main.html | 7 + @@ -131,7 +131,7 @@ suit Cromite logic. .../renderer/core/exported/web_document.cc | 13 +- .../blink/renderer/core/html/html_element.cc | 8 +- .../definitions/adblock_private.d.ts | 14 + - 126 files changed, 9337 insertions(+), 689 deletions(-) + 126 files changed, 9336 insertions(+), 689 deletions(-) rename chrome/browser/adblock/android/java/res/xml/{adblock_preferences.xml => eyeo_adblock_preferences.xml} (59%) create mode 100644 chrome/browser/resources/settings/adblock_page/adblock_page.html create mode 100644 chrome/browser/resources/settings/adblock_page/adblock_page.ts @@ -1782,13 +1782,12 @@ 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 -@@ -226,6 +226,11 @@ function createRoutes(): SettingsRoutes { +@@ -226,6 +226,10 @@ function createRoutes(): SettingsRoutes { r.FONTS = r.APPEARANCE.createChild('/fonts'); } + if (visibility.adblock !== false) { + r.ADBLOCK = r.BASIC.createSection('/adblock', 'adblock'); -+ r.ADBLOCK.hasMigratedToPlugin = true; + } + if (visibility.autofill !== false) { @@ -1949,8 +1948,8 @@ diff --git a/components/adblock/android/adblock_controller_jni.cc b/components/a + long download_success_count, long download_error_count, const std::vector& languages, const bool autoinstalled) { - ScopedJavaLocalRef url_param( -@@ -57,24 +62,40 @@ ScopedJavaLocalRef ToJava(JNIEnv* env, + ScopedJavaLocalRef url_param = +@@ -58,24 +63,40 @@ ScopedJavaLocalRef ToJava(JNIEnv* env, return Java_Subscription_Constructor(env, url_param, ConvertUTF8ToJavaString(env, title), ConvertUTF8ToJavaString(env, version), @@ -1993,7 +1992,7 @@ diff --git a/components/adblock/android/adblock_controller_jni.cc b/components/a } return jobjects; } -@@ -93,7 +114,11 @@ std::vector> CSubscriptionsToJObjects( +@@ -94,7 +115,11 @@ std::vector> CSubscriptionsToJObjects( DCHECK(sub.url.is_valid()); if (sub.url.is_valid()) { jobjects.push_back(ToJava(env, url_class, url_constructor, @@ -2006,7 +2005,7 @@ diff --git a/components/adblock/android/adblock_controller_jni.cc b/components/a false)); } } -@@ -103,6 +128,52 @@ std::vector> CSubscriptionsToJObjects( +@@ -104,6 +129,52 @@ std::vector> CSubscriptionsToJObjects( } // namespace @@ -2059,7 +2058,7 @@ diff --git a/components/adblock/android/adblock_controller_jni.cc b/components/a static base::android::ScopedJavaLocalRef JNI_AdblockController_GetInstalledSubscriptions( JNIEnv* env, -@@ -118,7 +189,7 @@ JNI_AdblockController_GetInstalledSubscriptions( +@@ -119,7 +190,7 @@ JNI_AdblockController_GetInstalledSubscriptions( return ToJavaArrayOfObjects( env, CSubscriptionsToJObjects( diff --git a/build/patches/Force-use-vpython3-for-some-scripts.patch b/build/patches/Force-use-vpython3-for-some-scripts.patch index 2718a9ee..cf810c30 100644 --- a/build/patches/Force-use-vpython3-for-some-scripts.patch +++ b/build/patches/Force-use-vpython3-for-some-scripts.patch @@ -8,16 +8,16 @@ required by the chromium build tools. License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- - build/config/android/internal_rules.gni | 5 ++++- - build/config/python.gni | 7 ++++++- - .../metrics/generate_expired_histograms_array.gni | 7 +++++-- - components/variations/field_trial_config/BUILD.gn | 4 +++- - third_party/perfetto/gn/BUILD.gn | 5 ++++- - tools/grit/grit_rule.gni | 4 +++- - tools/json_schema_compiler/json_schema_api.gni | 12 +++++++++--- - tools/json_to_struct/json_to_struct.gni | 4 +++- - .../generate_allowlist_from_histograms_file.gni | 5 +++-- - 9 files changed, 40 insertions(+), 13 deletions(-) + build/config/android/internal_rules.gni | 22 ++++++++++++++----- + build/config/python.gni | 7 +++++- + .../generate_expired_histograms_array.gni | 7 ++++-- + .../variations/field_trial_config/BUILD.gn | 4 +++- + third_party/perfetto/gn/BUILD.gn | 5 ++++- + tools/grit/grit_rule.gni | 4 +++- + .../json_schema_compiler/json_schema_api.gni | 12 +++++++--- + tools/json_to_struct/json_to_struct.gni | 4 +++- + ...enerate_allowlist_from_histograms_file.gni | 5 +++-- + 9 files changed, 52 insertions(+), 18 deletions(-) diff --git a/build/config/android/internal_rules.gni b/build/config/android/internal_rules.gni --- a/build/config/android/internal_rules.gni @@ -39,6 +39,59 @@ diff --git a/build/config/android/internal_rules.gni b/build/config/android/inte "--output", rebase_path(invoker.build_config, root_build_dir), "--depfile", +@@ -3018,17 +3021,18 @@ if (enable_java_templates) { + } + + action_with_pydeps(target_name) { ++ script = "//build/gn_run_binary.py" + if (invoker.use_turbine) { +- script = "//build/android/gyp/turbine.py" ++ original_script = "//build/android/gyp/turbine.py" + inputs = [ + "//third_party/jdk/current/bin/java", + android_sdk_jar, + ] + } else if (invoker.enable_errorprone) { +- script = "//build/android/gyp/errorprone.py" ++ original_script = "//build/android/gyp/errorprone.py" + inputs = javac_paths_for_inputs + } else { +- script = "//build/android/gyp/compile_java.py" ++ original_script = "//build/android/gyp/compile_java.py" + inputs = javac_paths_for_inputs + } + +@@ -3044,7 +3048,10 @@ if (enable_java_templates) { + deps += invoker.deps + } + +- args = [] ++ args = [ ++ rebase_path("//third_party/depot_tools/vpython3"), ++ rebase_path(original_script), ++ ] + if (invoker.enable_errorprone) { + _stamp_file = "$target_out_dir/$target_name.stamp" + outputs = [ _stamp_file ] +@@ -3242,7 +3249,8 @@ if (enable_java_templates) { + } + + action_with_pydeps(target_name) { +- script = "//build/android/gyp/compile_kt.py" ++ script = "//build/gn_run_binary.py" ++ original_script = "//build/android/gyp/compile_kt.py" + depfile = "$target_gen_dir/$target_name.d" + deps = _srcjar_deps + if (defined(invoker.deps)) { +@@ -3271,6 +3279,8 @@ if (enable_java_templates) { + "$target_gen_dir/${invoker.main_target_name}/generated_java", + root_build_dir) + args = [ ++ rebase_path("//third_party/depot_tools/vpython3"), ++ rebase_path(original_script), + "--depfile=$_rebased_depfile", + "--generated-dir=$_rebased_generated_dir", + "--jar-path=$_rebased_output_jar_path", diff --git a/build/config/python.gni b/build/config/python.gni --- a/build/config/python.gni +++ b/build/config/python.gni diff --git a/build/patches/Hardening-against-incognito-mode-detection.patch b/build/patches/Hardening-against-incognito-mode-detection.patch index bdf818dc..db89635f 100644 --- a/build/patches/Hardening-against-incognito-mode-detection.patch +++ b/build/patches/Hardening-against-incognito-mode-detection.patch @@ -4,9 +4,9 @@ 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 | 2 +- + storage/browser/quota/quota_manager_impl.cc | 4 ++-- storage/browser/quota/quota_settings.cc | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) + 2 files changed, 3 insertions(+), 3 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 @@ -20,6 +20,15 @@ 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; } +@@ -2445,7 +2445,7 @@ void QuotaManagerImpl::SimulateStoragePressure(const url::Origin& origin_url) { + void QuotaManagerImpl::IsSimulateStoragePressureAvailable( + IsSimulateStoragePressureAvailableCallback callback) { + // We assume this is only the case in incognito. If it changes, update this. +- DCHECK_EQ(is_incognito_, storage_pressure_callback_.is_null()); ++ // DCHECK_EQ(is_incognito_, storage_pressure_callback_.is_null()); + + std::move(callback).Run(!storage_pressure_callback_.is_null()); + } diff --git a/storage/browser/quota/quota_settings.cc b/storage/browser/quota/quota_settings.cc --- a/storage/browser/quota/quota_settings.cc +++ b/storage/browser/quota/quota_settings.cc diff --git a/build/patches/Internal-firewall.patch b/build/patches/Internal-firewall.patch index eade03c2..922cfedf 100644 --- a/build/patches/Internal-firewall.patch +++ b/build/patches/Internal-firewall.patch @@ -1254,7 +1254,7 @@ new file mode 100644 +""", + event_template=""" +const char k{event.name}EntryName[] = "{event.raw_name}"; -+constexpr uint64_t k{event.name}EntryNameHash = COMPUTE_NETWORK_TRAFFIC_ANNOTATION_ID_HASH("{event.raw_name}"); ++constexpr uint64_t k{event.name}EntryNameHash = net::internal::ComputeAnnotationHash("{event.raw_name}"); +""", + metric_template=""" +""") diff --git a/build/patches/Keep-disabled-FetchLaterAPI.patch b/build/patches/Keep-disabled-FetchLaterAPI.patch index 92e1a109..280f98e5 100644 --- a/build/patches/Keep-disabled-FetchLaterAPI.patch +++ b/build/patches/Keep-disabled-FetchLaterAPI.patch @@ -11,12 +11,12 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- .../browser/loader/keep_alive_url_loader.cc | 33 +++++++++++++++++-- .../browser/loader/keep_alive_url_loader.h | 3 -- - .../Keep-disabled-FetchLaterAPI.inc | 2 ++ + .../Keep-disabled-FetchLaterAPI.inc | 1 + .../renderer/core/fetch/fetch_manager.cc | 21 ++++++++++-- .../loader/child_url_loader_factory_bundle.cc | 16 +++++++++ .../platform/loader/fetch/resource_fetcher.cc | 2 +- .../platform/runtime_enabled_features.json5 | 4 +-- - 7 files changed, 71 insertions(+), 10 deletions(-) + 7 files changed, 70 insertions(+), 10 deletions(-) create mode 100644 cromite_flags/third_party/blink/common/features_cc/Keep-disabled-FetchLaterAPI.inc diff --git a/content/browser/loader/keep_alive_url_loader.cc b/content/browser/loader/keep_alive_url_loader.cc @@ -93,9 +93,8 @@ diff --git a/cromite_flags/third_party/blink/common/features_cc/Keep-disabled-Fe new file mode 100644 --- /dev/null +++ b/cromite_flags/third_party/blink/common/features_cc/Keep-disabled-FetchLaterAPI.inc -@@ -0,0 +1,2 @@ +@@ -0,0 +1 @@ +SET_CROMITE_FEATURE_ENABLED(kKeepAliveInBrowserMigration); -+SET_CROMITE_FEATURE_DISABLED(kAttributionReportingInBrowserMigration); diff --git a/third_party/blink/renderer/core/fetch/fetch_manager.cc b/third_party/blink/renderer/core/fetch/fetch_manager.cc --- a/third_party/blink/renderer/core/fetch/fetch_manager.cc +++ b/third_party/blink/renderer/core/fetch/fetch_manager.cc @@ -186,7 +185,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 -@@ -3107,7 +3107,7 @@ void ResourceFetcher::PrepareForLeakDetection() { +@@ -3108,7 +3108,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. 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 fe092da2..a62fee63 100644 --- a/build/patches/Log-dangling-attributes-in-some-html-elements.patch +++ b/build/patches/Log-dangling-attributes-in-some-html-elements.patch @@ -13,7 +13,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../blink/renderer/core/dom/document.cc | 18 +++++++++++++++ .../blink/renderer/core/dom/element.cc | 20 ++++++++++++++++- third_party/blink/renderer/core/dom/element.h | 3 ++- - .../editing/serializers/markup_formatter.cc | 11 ++++++++++ + .../editing/serializers/markup_formatter.cc | 12 ++++++++++ .../core/html/forms/html_form_element.cc | 2 +- .../renderer/core/html/html_base_element.cc | 6 +++++ .../renderer/core/html/html_base_element.h | 2 ++ @@ -23,7 +23,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../core/loader/frame_load_request.cc | 9 ++++++++ .../blink/renderer/core/page/frame_tree.cc | 22 +++++++++++++++++++ .../platform/runtime_enabled_features.json5 | 6 +++++ - 14 files changed, 132 insertions(+), 3 deletions(-) + 14 files changed, 133 insertions(+), 3 deletions(-) create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Log-dangling-attributes-in-some-html-elements.inc diff --git a/cromite_flags/chrome/browser/about_flags_cc/Log-dangling-attributes-in-some-html-elements.inc b/cromite_flags/chrome/browser/about_flags_cc/Log-dangling-attributes-in-some-html-elements.inc @@ -137,19 +137,20 @@ diff --git a/third_party/blink/renderer/core/editing/serializers/markup_formatte #include "third_party/blink/renderer/core/dom/comment.h" #include "third_party/blink/renderer/core/dom/document.h" #include "third_party/blink/renderer/core/dom/document_fragment.h" -@@ -208,6 +210,15 @@ void MarkupFormatter::AppendEndMarkup(StringBuilder& result, +@@ -208,6 +210,16 @@ void MarkupFormatter::AppendEndMarkup(StringBuilder& result, void MarkupFormatter::AppendAttributeValue(StringBuilder& result, const String& attribute, bool document_is_html) { -+ if (RuntimeEnabledFeatures::LogDanglingAttributesEnabled()) { -+ if (attribute.Contains('<') || attribute.Contains('>')) { -+ document.AddConsoleMessage(MakeGarbageCollected( -+ mojom::ConsoleMessageSource::kSecurity, -+ mojom::ConsoleMessageLevel::kInfo, -+ "Bromite Dangling Markup Prevention: '" + attribute + -+ "' is not allowed as parameter value.")); -+ } -+ } ++ // https://chromium-review.googlesource.com/c/chromium/src/+/6905283 ++ // if (RuntimeEnabledFeatures::LogDanglingAttributesEnabled()) { ++ // if (attribute.Contains('<') || attribute.Contains('>')) { ++ // document.AddConsoleMessage(MakeGarbageCollected( ++ // mojom::ConsoleMessageSource::kSecurity, ++ // mojom::ConsoleMessageLevel::kInfo, ++ // "Bromite Dangling Markup Prevention: '" + attribute + ++ // "' is not allowed as parameter value.")); ++ // } ++ // } EntityMask entity_mask = document_is_html ? kEntityMaskInHTMLAttributeValue : kEntityMaskInAttributeValue; AppendCharactersReplacingEntities(result, attribute, entity_mask); diff --git a/build/patches/Modify-default-preferences.patch b/build/patches/Modify-default-preferences.patch index 47b8fd8c..87884bc8 100644 --- a/build/patches/Modify-default-preferences.patch +++ b/build/patches/Modify-default-preferences.patch @@ -15,14 +15,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html components/bookmarks/browser/bookmark_utils.cc | 7 +++++-- components/bookmarks/browser/features.cc | 17 +++++++++++++++++ components/bookmarks/browser/features.h | 18 ++++++++++++++++++ - .../core/browser/content_settings_registry.cc | 6 +++--- + .../core/browser/content_settings_registry.cc | 8 ++++---- .../core/browser/cookie_settings.cc | 2 +- components/payments/core/payment_prefs.cc | 2 +- .../core/common/safe_browsing_prefs.cc | 4 ++-- .../primary_account_manager.cc | 2 +- .../Modify-default-preferences.inc | 8 ++++++++ .../features_cc/Modify-default-preferences.inc | 1 + - 18 files changed, 68 insertions(+), 18 deletions(-) + 18 files changed, 69 insertions(+), 19 deletions(-) create mode 100644 components/bookmarks/browser/features.cc create mode 100644 components/bookmarks/browser/features.h create mode 100755 cromite_flags/chrome/browser/about_flags_cc/Modify-default-preferences.inc @@ -227,6 +227,15 @@ diff --git a/components/content_settings/core/browser/content_settings_registry. /*allowlisted_primary_schemes=*/{}, /*valid_settings=*/ {CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, CONTENT_SETTING_ASK}, +@@ -218,7 +218,7 @@ void ContentSettingsRegistry::Init() { + PermissionSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY); + + Register(ContentSettingsType::PROTECTED_MEDIA_IDENTIFIER, +- "protected-media-identifier", CONTENT_SETTING_ALLOW, ++ "protected-media-identifier", CONTENT_SETTING_BLOCK, + WebsiteSettingsInfo::UNSYNCABLE, /*allowlisted_primary_schemes=*/{}, + #if BUILDFLAG(IS_ANDROID) + /*valid_settings=*/ @@ -245,7 +245,7 @@ void ContentSettingsRegistry::Init() { PermissionSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY); diff --git a/build/patches/Move-navigation-bar-to-bottom.patch b/build/patches/Move-navigation-bar-to-bottom.patch index 3b2ac503..e9ec41f3 100644 --- a/build/patches/Move-navigation-bar-to-bottom.patch +++ b/build/patches/Move-navigation-bar-to-bottom.patch @@ -47,6 +47,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../chrome/browser/ntp/NewTabPage.java | 14 +- .../chrome/browser/ntp/NewTabPageLayout.java | 10 +- .../chrome/browser/ntp/RecentTabsPage.java | 31 +++- + .../browser/page_info/ChromePageInfo.java | 2 + .../browser/searchwidget/SearchActivity.java | 14 ++ .../settings/FragmentDependencyProvider.java | 5 + .../StatusIndicatorCoordinator.java | 9 ++ @@ -73,12 +74,12 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../ui/appmenu/AppMenuHandlerImpl.java | 10 ++ .../EdgeToEdgeControllerImpl.java | 1 + .../ui/edge_to_edge/EdgeToEdgeUtils.java | 2 + - ...rredIMEWindowInsetApplicationCallback.java | 7 + + ...rredIMEWindowInsetApplicationCallback.java | 17 ++ .../omnibox/LocationBarCoordinator.java | 1 + - ...mniboxSuggestionsDropdownEmbedderImpl.java | 31 ++++ + ...mniboxSuggestionsDropdownEmbedderImpl.java | 32 ++++ .../suggestions/AutocompleteCoordinator.java | 16 ++ .../suggestions/AutocompleteMediator.java | 6 +- - .../OmniboxSuggestionsDropdown.java | 8 + + .../OmniboxSuggestionsDropdown.java | 5 + .../OmniboxSuggestionsDropdownEmbedder.java | 6 + .../base/BaseSuggestionViewBinder.java | 7 + .../strings/android_chrome_strings.grd | 6 + @@ -101,7 +102,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html components/viz/common/features.cc | 2 + .../render_widget_host_view_android.cc | 3 + .../Move-navigation-bar-to-bottom.inc | 17 ++ - 88 files changed, 1058 insertions(+), 88 deletions(-) + 89 files changed, 1068 insertions(+), 88 deletions(-) create mode 100644 chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/ReversedLinearLayout.java create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Move-navigation-bar-to-bottom.inc @@ -758,7 +759,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s +import org.chromium.chrome.R; +import android.app.Activity; -+import org.chromium.base.supplier.Supplier; ++import java.util.function.Supplier; +import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; +import org.chromium.chrome.browser.ui.messages.snackbar.INeedSnackbarManager; +import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar; @@ -1480,6 +1481,25 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsP if (topMargin != layoutParams.topMargin || bottomMargin != layoutParams.bottomMargin) { layoutParams.topMargin = topMargin; layoutParams.bottomMargin = bottomMargin; +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/page_info/ChromePageInfo.java b/chrome/android/java/src/org/chromium/chrome/browser/page_info/ChromePageInfo.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/page_info/ChromePageInfo.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/page_info/ChromePageInfo.java +@@ -14,6 +14,7 @@ import org.chromium.build.annotations.Nullable; + import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider; + import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider.ControlsPosition; + import org.chromium.chrome.browser.ephemeraltab.EphemeralTabCoordinator; ++import org.chromium.chrome.browser.flags.ChromeFeatureList; + import org.chromium.chrome.browser.fullscreen.BrowserControlsManagerSupplier; + import org.chromium.chrome.browser.merchant_viewer.PageInfoStoreInfoController.StoreInfoActionHandler; + import org.chromium.chrome.browser.offlinepages.OfflinePageUtils; +@@ -77,6 +78,7 @@ public class ChromePageInfo { + if (stateProvider != null) { + dialogPosition = + stateProvider.getControlsPosition() == ControlsPosition.BOTTOM ++ || ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled() + ? Gravity.BOTTOM + : Gravity.TOP; + } 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 @@ -2345,7 +2365,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow @Override public void onPrepare(WindowInsetsAnimationCompat animation) { if ((animation.getTypeMask() & WindowInsetsCompat.Type.ime()) == 0) return; -@@ -121,11 +126,13 @@ public class DeferredIMEWindowInsetApplicationCallback +@@ -121,11 +126,14 @@ public class DeferredIMEWindowInsetApplicationCallback public WindowInsetsCompat onApplyWindowInsets( View view, WindowInsetsCompat windowInsetsCompat) { int newKeyboardHeight = 0; @@ -2355,10 +2375,27 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow Insets systemBarInsets = windowInsetsCompat.getInsets(WindowInsetsCompat.Type.systemBars()); newKeyboardHeight = imeInsets.bottom - systemBarInsets.bottom; -+ mSystemBarInsetsBottom = systemBarInsets.bottom; ++ if (!hasTappableNavigationBarFromInsets(windowInsetsCompat)) ++ mSystemBarInsetsBottom = systemBarInsets.bottom; // Since the ime insets are greater than 0, the keyboard is showing, but its height is // being suppressed in that this class deliberately wants to avoid application resizing. +@@ -173,6 +181,15 @@ public class DeferredIMEWindowInsetApplicationCallback + return builder.build(); + } + ++ static boolean hasTappableNavigationBarFromInsets(WindowInsetsCompat insets) { ++ Insets navigationBarInsets = insets.getInsets(WindowInsetsCompat.Type.navigationBars()); ++ Insets tappableElementInsets = insets.getInsets(WindowInsetsCompat.Type.tappableElement()); ++ // Return whether there is any overlap in navigation bar and tappable element insets. ++ return (navigationBarInsets.bottom > 0 && tappableElementInsets.bottom > 0) ++ || (navigationBarInsets.left > 0 && tappableElementInsets.left > 0) ++ || (navigationBarInsets.right > 0 && tappableElementInsets.right > 0); ++ } ++ + private void commitKeyboardHeight(int newKeyboardHeight) { + mKeyboardHeight = newKeyboardHeight; + mDeferredKeyboardHeight = NO_DEFERRED_KEYBOARD_HEIGHT; 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 @@ -2446,7 +2483,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow } if (isTablet()) { -@@ -311,6 +328,12 @@ class OmniboxSuggestionsDropdownEmbedderImpl +@@ -311,6 +328,13 @@ class OmniboxSuggestionsDropdownEmbedderImpl height = Math.min(windowSpace, contentSpace) - top; } @@ -2454,12 +2491,13 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow + ViewCompat.setPaddingRelative( + contentView, 0, 0, 0, keyboardHeight + mSystemBarInsetsBottomSupplier.get()); + top = 0; ++ height -= mSystemBarInsetsBottomSupplier.get(); + } + // TODO(pnoland@, https://crbug.com/1416985): avoid pushing changes that are identical to // the previous alignment value. OmniboxAlignment omniboxAlignment = -@@ -319,6 +342,14 @@ class OmniboxSuggestionsDropdownEmbedderImpl +@@ -319,6 +343,14 @@ class OmniboxSuggestionsDropdownEmbedderImpl mOmniboxAlignmentSupplier.set(omniboxAlignment); } @@ -2554,17 +2592,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/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 -@@ -37,6 +37,9 @@ import org.chromium.components.omnibox.OmniboxFeatures; - import org.chromium.ui.base.KeyNavigationUtil; - import org.chromium.ui.util.MotionEventUtils; - -+import android.graphics.Rect; -+import org.chromium.chrome.browser.flags.ChromeFeatureList; -+ - /** A widget for showing a list of omnibox suggestions. */ - @NullMarked - public class OmniboxSuggestionsDropdown extends RecyclerView { -@@ -292,6 +295,9 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { +@@ -292,6 +292,9 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { resources.getDimensionPixelOffset(R.dimen.omnibox_suggestion_list_padding_bottom); int paddingTop = resources.getDimensionPixelOffset(R.dimen.omnibox_suggestion_list_padding_top); @@ -2574,15 +2602,15 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow this.setPaddingRelative(0, paddingTop, 0, mBaseBottomPadding); if (OmniboxFeatures.sAsyncViewInflation.isEnabled()) { -@@ -509,6 +515,8 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { - } - - void setToolbarPosition(@ControlsPosition int toolbarPosition) { -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) -+ toolbarPosition = ControlsPosition.BOTTOM; +@@ -512,6 +515,8 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { mToolbarOnTop = !(ChromeFeatureList.sAndroidBottomToolbarV2ReverseOrderSuggestionsList.getValue() && toolbarPosition == ControlsPosition.BOTTOM); ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) ++ mToolbarOnTop = false; + mLayoutScrollListener.setToolbarPosition(mToolbarOnTop); + + var params = (FrameLayout.LayoutParams) getLayoutParams(); diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdownEmbedder.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdownEmbedder.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdownEmbedder.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdownEmbedder.java diff --git a/build/patches/Partition-Blink-memory-cache.patch b/build/patches/Partition-Blink-memory-cache.patch index c741cf61..ce720db3 100644 --- a/build/patches/Partition-Blink-memory-cache.patch +++ b/build/patches/Partition-Blink-memory-cache.patch @@ -20,9 +20,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../renderer/core/loader/image_loader.cc | 3 +- .../platform/loader/fetch/memory_cache.cc | 8 +-- .../platform/loader/fetch/memory_cache.h | 5 +- - .../platform/loader/fetch/resource_fetcher.cc | 57 ++++++++++++++++--- - .../platform/loader/fetch/resource_fetcher.h | 7 ++- - 8 files changed, 64 insertions(+), 23 deletions(-) + .../platform/loader/fetch/resource_fetcher.cc | 62 +++++++++++++++---- + .../platform/loader/fetch/resource_fetcher.h | 10 ++- + .../platform/runtime_enabled_features.json5 | 2 +- + 9 files changed, 70 insertions(+), 27 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 @@ -210,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 -@@ -2942,7 +2981,7 @@ String ResourceFetcher::GetCacheIdentifier(const KURL& url, +@@ -2942,12 +2981,13 @@ String ResourceFetcher::GetCacheIdentifier(const KURL& url, return bundle->GetCacheIdentifier(); } @@ -219,10 +220,26 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c } String ResourceFetcher::GetCacheIdentifier(ResourceType type, + const KURL& url, +- bool skip_service_worker) const { ++ bool skip_service_worker, ++ const ResourceRequest& resource_request) const { + // 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. +@@ -2960,7 +3000,7 @@ String ResourceFetcher::GetCacheIdentifier(ResourceType type, + } + + // Fallback to the standard cache identifier logic. +- return GetCacheIdentifier(url, skip_service_worker); ++ return GetCacheIdentifier(url, skip_service_worker, resource_request); + } + + std::optional diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h --- a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h +++ b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h -@@ -287,7 +287,12 @@ class PLATFORM_EXPORT ResourceFetcher +@@ -287,10 +287,16 @@ class PLATFORM_EXPORT ResourceFetcher // `url` is used for finding a matching WebBundle. // If `skip_service_worker` is true, the identifier won't be a ServiceWorker's // identifier to keep the cache separated. @@ -235,5 +252,22 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h + const String origin_url) const; String GetCacheIdentifier(ResourceType type, const KURL& url, - bool skip_service_worker) const; +- bool skip_service_worker) const; ++ bool skip_service_worker, ++ const ResourceRequest& resource_request) const; + + // If `url` exists as a resource in a subresource bundle in this frame, + // returns its UnguessableToken; otherwise, returns std::nullopt. +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 +@@ -4886,7 +4886,7 @@ + }, + { + name: "SvgPartitionSVGDocumentResourcesInMemoryCache", +- status: "stable", ++ status: "experimental", + }, + { + name: "SvgScriptElementAsyncAttribute", -- diff --git a/build/patches/Partition-MediaDeviceId-by-default.patch b/build/patches/Partition-MediaDeviceId-by-default.patch index 27c21387..0ad2f1d8 100644 --- a/build/patches/Partition-MediaDeviceId-by-default.patch +++ b/build/patches/Partition-MediaDeviceId-by-default.patch @@ -5,24 +5,23 @@ Subject: Partition MediaDeviceId by default and, in windows, hide the presence of the webcam if the user has not given permission License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- - .../core/browser/bromite_content_settings/camera.inc | 8 ++++++++ - components/media_device_salt/media_device_salt_service.cc | 2 ++ - content/browser/media/media_devices_util.cc | 3 +++ - .../browser/renderer_host/media/media_devices_manager.cc | 5 +++++ - 4 files changed, 18 insertions(+) + .../core/browser/bromite_content_settings/camera.inc | 7 +++++++ + components/media_device_salt/media_device_salt_service.cc | 2 ++ + content/browser/media/media_devices_util.cc | 3 +++ + .../browser/renderer_host/media/media_devices_manager.cc | 5 +++++ + 4 files changed, 17 insertions(+) create mode 100644 components/content_settings/core/browser/bromite_content_settings/camera.inc diff --git a/components/content_settings/core/browser/bromite_content_settings/camera.inc b/components/content_settings/core/browser/bromite_content_settings/camera.inc new file mode 100644 --- /dev/null +++ b/components/content_settings/core/browser/bromite_content_settings/camera.inc -@@ -0,0 +1,8 @@ +@@ -0,0 +1,7 @@ +#if !BUILDFLAG(IS_ANDROID) + + content_settings::WebsiteSettingsRegistry::GetInstance() + ->GetMutable(ContentSettingsType::MEDIASTREAM_CAMERA) -+ ->set_show_into_info_page() -+ .set_desktop_ui(); ++ ->set_show_into_info_page(); + +#endif diff --git a/components/media_device_salt/media_device_salt_service.cc b/components/media_device_salt/media_device_salt_service.cc diff --git a/build/patches/Remove-help-menu-item.patch b/build/patches/Remove-help-menu-item.patch index f12c96e0..cdaa261d 100644 --- a/build/patches/Remove-help-menu-item.patch +++ b/build/patches/Remove-help-menu-item.patch @@ -217,7 +217,7 @@ diff --git a/chrome/browser/ui/chrome_pages.cc b/chrome/browser/ui/chrome_pages. // 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) { -+ if (source == chrome::HELP_SOURCE_WEBUI) { ++ if (source == HelpSource::kWebUI) { + GURL url = GURL("https://github.com/uazo/cromite/issues"); + if (browser) { + ShowSingletonTab(browser, url); diff --git a/build/patches/Restore-Simplified-NTP-launch.patch b/build/patches/Restore-Simplified-NTP-launch.patch index f2389ebd..4d4aa72c 100644 --- a/build/patches/Restore-Simplified-NTP-launch.patch +++ b/build/patches/Restore-Simplified-NTP-launch.patch @@ -28,14 +28,14 @@ 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 | 28 +- + .../chrome/browser/ntp/NewTabPageLayout.java | 33 +- .../suggestions/SuggestionsConfig.java | 2 +- .../SuggestionsNavigationDelegate.java | 27 +- .../tile/MostVisitedTilesCoordinator.java | 6 +- .../tile/MostVisitedTilesGridLayout.java | 287 ++++++++++++++++++ .../tile/MostVisitedTilesMediator.java | 8 +- .../tile/TileDragDelegateImpl.java | 16 +- - .../suggestions/tile/TileRenderer.java | 8 +- + .../suggestions/tile/TileRenderer.java | 12 +- .../suggestions/tile/TilesLinearLayout.java | 2 +- .../engagement/important_sites_util.cc | 2 +- .../flags/android/chrome_feature_list.cc | 1 + @@ -44,10 +44,12 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../strings/android_chrome_strings.grd | 6 + .../core/browser/top_sites_constants.h | 2 +- components/ntp_tiles/custom_links_store.cc | 2 - + components/omnibox/common/omnibox_features.cc | 2 + + components/search_engines/template_url.h | 4 +- .../Restore-Simplified-NTP-launch.inc | 12 + .../Restore-Simplified-NTP-launch.inc | 10 + .../Restore-Simplified-NTP-launch.inc | 1 + - 41 files changed, 639 insertions(+), 55 deletions(-) + 43 files changed, 648 insertions(+), 61 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 @@ -893,6 +895,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL private boolean mSearchProviderIsGoogle; private boolean mShowingNonStandardGoogleLogo; private boolean mIsOmniboxMobileParityUpdateV2Enabled; +@@ -124,7 +129,7 @@ public class NewTabPageLayout extends LinearLayout + private boolean mInitialized; + + private float mUrlFocusChangePercent; +- private boolean mDisableUrlFocusChangeAnimations; ++ private boolean mDisableUrlFocusChangeAnimations = true; + private boolean mIsViewMoving; + + /** Flag used to request some layout changes after the next layout pass is completed. */ @@ -299,6 +304,7 @@ public class NewTabPageLayout extends LinearLayout initializeMostVisitedTilesCoordinator( mProfile, lifecycleDispatcher, tileGroupDelegate, touchEnabledDelegate); @@ -901,15 +912,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL initializeSearchBoxTextView(); initializeVoiceSearchButton(); initializeLensButton(); -@@ -686,7 +692,7 @@ public class NewTabPageLayout extends LinearLayout +@@ -686,8 +692,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 = mvTilesLayout.contentFitsOnTablet(totalWidth); ++ mMvtContentFits = false; updateMvtOnTablet(); } + @@ -737,7 +743,7 @@ public class NewTabPageLayout extends LinearLayout && mInitialized) { return; @@ -919,7 +932,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL mSearchProviderIsGoogle = isGoogle; if (!mSearchProviderIsGoogle) { -@@ -1188,6 +1194,22 @@ public class NewTabPageLayout extends LinearLayout +@@ -786,6 +792,7 @@ public class NewTabPageLayout extends LinearLayout + * @param disable Whether to disable the animations. + */ + void setUrlFocusAnimationsDisabled(boolean disable) { ++ disable = true; + if (disable == mDisableUrlFocusChangeAnimations) return; + mDisableUrlFocusChangeAnimations = disable; + if (!disable) onUrlFocusAnimationChanged(); +@@ -1188,6 +1195,22 @@ public class NewTabPageLayout extends LinearLayout return mMostVisitedTilesCoordinator; } @@ -1422,6 +1443,24 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til TileGroup.TileSetupDelegate setupDelegate) { try (TraceEvent e = TraceEvent.scoped("TileRenderer.renderTileSection")) { // Map the old tile views by url so they can be reused later. +@@ -212,7 +212,7 @@ public class TileRenderer { + if (prevTile != null + && (prevTile.getData().source == TileSource.CUSTOM_LINKS) + != (tile.getData().source == TileSource.CUSTOM_LINKS)) { +- parent.addDivider(buildDivider(parent)); ++ //parent.addDivider(buildDivider(parent)); + } + parent.addTile(tileView); + if (focusedUrl != null && focusedUrl.equals(tile.getUrl().getSpec())) { +@@ -228,7 +228,7 @@ public class TileRenderer { + + if (shouldShowAddNewButton(sectionTiles)) { + TileView addCustomLinksButton = buildAddCustomLinksButton(parent, setupDelegate); +- parent.addUiView(addCustomLinksButton, mTileWidth); ++ //parent.addUiView(addCustomLinksButton, mTileWidth); + } + } + } @@ -263,7 +263,7 @@ public class TileRenderer { */ @VisibleForTesting @@ -1555,6 +1594,40 @@ diff --git a/components/ntp_tiles/custom_links_store.cc b/components/ntp_tiles/c } return links; +diff --git a/components/omnibox/common/omnibox_features.cc b/components/omnibox/common/omnibox_features.cc +--- a/components/omnibox/common/omnibox_features.cc ++++ b/components/omnibox/common/omnibox_features.cc +@@ -206,6 +206,7 @@ BASE_FEATURE(kRemoveSearchReadyOmnibox, DISABLED); + BASE_FEATURE(kDefaultTypedNavigationsToHttps, + "OmniboxDefaultTypedNavigationsToHttps", + enable_if(IS_IOS)); ++SET_CROMITE_FEATURE_ENABLED(kDefaultTypedNavigationsToHttps); + + // Override the delay to create a spare renderer when the omnibox is focused + // on Android. +@@ -292,6 +293,7 @@ BASE_FEATURE(kOmniboxMobileParityUpdate, ENABLED); + // Updates various NTP/Omnibox assets and descriptions for visual alignment on + // Android and iOS, V2. + BASE_FEATURE(kOmniboxMobileParityUpdateV2, ENABLED); ++SET_CROMITE_FEATURE_DISABLED(kOmniboxMobileParityUpdateV2); + + #if BUILDFLAG(IS_IOS) + // Updates the search engine logo on NTP. iOS only. +diff --git a/components/search_engines/template_url.h b/components/search_engines/template_url.h +--- a/components/search_engines/template_url.h ++++ b/components/search_engines/template_url.h +@@ -802,9 +802,9 @@ class TemplateURL { + } + const GURL& favicon_url() const { return data().favicon_url; } + +- const GURL& logo_url() const { return data().logo_url; } ++ const GURL logo_url() const { return GURL(); } + +- const GURL& doodle_url() const { return data().doodle_url; } ++ const GURL doodle_url() const { return GURL(); } + + const GURL& originating_url() const { return data().originating_url; } + diff --git a/cromite_flags/chrome/browser/about_flags_cc/Restore-Simplified-NTP-launch.inc b/cromite_flags/chrome/browser/about_flags_cc/Restore-Simplified-NTP-launch.inc new file mode 100644 --- /dev/null diff --git a/build/patches/Restore-chrome-password-store.patch b/build/patches/Restore-chrome-password-store.patch index 829f79e2..0689054d 100644 --- a/build/patches/Restore-chrome-password-store.patch +++ b/build/patches/Restore-chrome-password-store.patch @@ -64,6 +64,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../android/password_ui_view_android.cc | 449 +++++++++++ .../android/password_ui_view_android.h | 196 +++++ .../android/pwm_disabled/BUILD.gn | 2 - + .../password_store_backend_factory.cc | 14 +- ...ssword_manager_settings_service_factory.cc | 4 +- .../strings/android_chrome_strings.grd | 123 +++- .../Import-Password-Android.grdp | 9 + @@ -71,9 +72,18 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../settings/SettingsNavigation.java | 3 + .../password_manager_features_util.cc | 1 + .../core/browser/import/password_importer.cc | 11 + + .../core/browser/password_manager.cc | 2 - + .../browser/password_manager_constants.cc | 2 - + .../core/browser/password_manager_constants.h | 2 - + .../core/browser/password_store/BUILD.gn | 13 + + .../password_store/login_database_posix.cc | 4 +- + .../password_store_built_in_backend.cc | 6 + + .../browser/password_store_factory_util.cc | 6 - + .../browser/password_store_factory_util.h | 4 - + .../core/common/password_manager_pref_names.h | 2 - components/sync/service/sync_prefs.cc | 2 +- .../Restore-chrome-password-store.inc | 1 + - 65 files changed, 5509 insertions(+), 36 deletions(-) + 75 files changed, 5536 insertions(+), 64 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 @@ -5928,6 +5938,47 @@ diff --git a/chrome/browser/password_manager/android/pwm_disabled/BUILD.gn b/chr "java/src/org/chromium/chrome/browser/pwm_disabled/PwmDeprecationDialogsMetricsRecorder.java", "java/src/org/chromium/chrome/browser/pwm_disabled/SingleThreadBarrierClosure.java", "java/src/org/chromium/chrome/browser/pwm_disabled/TimedCallbackDelayer.java", +diff --git a/chrome/browser/password_manager/factories/password_store_backend_factory.cc b/chrome/browser/password_manager/factories/password_store_backend_factory.cc +--- a/chrome/browser/password_manager/factories/password_store_backend_factory.cc ++++ b/chrome/browser/password_manager/factories/password_store_backend_factory.cc +@@ -17,6 +17,8 @@ + #include "chrome/browser/password_manager/android/password_store_android_account_backend.h" + #include "chrome/browser/password_manager/android/password_store_android_local_backend.h" + #include "chrome/browser/password_manager/android/password_store_empty_backend.h" ++#include "components/password_manager/core/browser/password_store/login_database.h" ++#include "components/password_manager/core/browser/password_store/password_store_built_in_backend.h" + #else // BUILDFLAG(IS_ANDROID) + #include "components/password_manager/core/browser/password_store/login_database.h" + #include "components/password_manager/core/browser/password_store/password_store_built_in_backend.h" +@@ -53,24 +55,20 @@ CreatePasswordStoreBackend(password_manager::IsAccountStore is_account_store, + + #if BUILDFLAG(IS_ANDROID) + using password_manager_android_util::PasswordManagerUtilBridge; +- if (!password_manager_android_util::IsPasswordManagerAvailable( +- std::make_unique())) { +- return std::make_unique(); +- } + if (is_account_store) { + return std::make_unique< +- password_manager::PasswordStoreAndroidAccountBackend>(); ++ password_manager::PasswordStoreEmptyBackend>(); + } +- return std::make_unique(); +-#else // BUILDFLAG(IS_ANDROID) ++#endif // BUILDFLAG(IS_ANDROID) + std::unique_ptr login_db( + password_manager::CreateLoginDatabase(is_account_store, + login_db_directory, prefs)); ++#if !BUILDFLAG(IS_ANDROID) + SetIsUserDataDirPolicySet(login_db.get()); ++#endif + auto behavior = is_account_store + ? syncer::WipeModelUponSyncDisabledBehavior::kAlways + : syncer::WipeModelUponSyncDisabledBehavior::kNever; + return std::make_unique( + std::move(login_db), behavior, prefs, os_crypt_async); +-#endif // BUILDFLAG(IS_ANDROID) + } diff --git a/chrome/browser/password_manager/password_manager_settings_service_factory.cc b/chrome/browser/password_manager/password_manager_settings_service_factory.cc --- a/chrome/browser/password_manager/password_manager_settings_service_factory.cc +++ b/chrome/browser/password_manager/password_manager_settings_service_factory.cc @@ -6159,6 +6210,217 @@ diff --git a/components/password_manager/core/browser/import/password_importer.c std::optional file_size = base::GetFileSize(path); if (file_size.has_value()) { +diff --git a/components/password_manager/core/browser/password_manager.cc b/components/password_manager/core/browser/password_manager.cc +--- a/components/password_manager/core/browser/password_manager.cc ++++ b/components/password_manager/core/browser/password_manager.cc +@@ -598,9 +598,7 @@ void PasswordManager::RegisterProfilePrefs( + registry->RegisterIntegerPref(prefs::kTotalPasswordsAvailableForProfile, 0); + registry->RegisterIntegerPref(prefs::kPasswordRemovalReasonForAccount, 0); + registry->RegisterIntegerPref(prefs::kPasswordRemovalReasonForProfile, 0); +-#if !BUILDFLAG(IS_ANDROID) + registry->RegisterBooleanPref(prefs::kClearingUndecryptablePasswords, false); +-#endif + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ + BUILDFLAG(IS_IOS) +diff --git a/components/password_manager/core/browser/password_manager_constants.cc b/components/password_manager/core/browser/password_manager_constants.cc +--- a/components/password_manager/core/browser/password_manager_constants.cc ++++ b/components/password_manager/core/browser/password_manager_constants.cc +@@ -8,7 +8,6 @@ + + namespace password_manager { + +-#if !BUILDFLAG(IS_ANDROID) + const base::FilePath::CharType kLoginDataForProfileFileName[] = + FILE_PATH_LITERAL("Login Data"); + const base::FilePath::CharType kLoginDataForAccountFileName[] = +@@ -17,7 +16,6 @@ const base::FilePath::CharType kLoginDataJournalForProfileFileName[] = + FILE_PATH_LITERAL("Login Data-journal"); + const base::FilePath::CharType kLoginDataJournalForAccountFileName[] = + FILE_PATH_LITERAL("Login Data For Account-journal"); +-#endif // !BUILDFLAG(IS_ANDROID) + + const char kPasswordManagerAccountDashboardURL[] = + "https://passwords.google.com"; +diff --git a/components/password_manager/core/browser/password_manager_constants.h b/components/password_manager/core/browser/password_manager_constants.h +--- a/components/password_manager/core/browser/password_manager_constants.h ++++ b/components/password_manager/core/browser/password_manager_constants.h +@@ -11,12 +11,10 @@ + + namespace password_manager { + +-#if !BUILDFLAG(IS_ANDROID) + extern const base::FilePath::CharType kLoginDataForProfileFileName[]; + extern const base::FilePath::CharType kLoginDataForAccountFileName[]; + extern const base::FilePath::CharType kLoginDataJournalForProfileFileName[]; + extern const base::FilePath::CharType kLoginDataJournalForAccountFileName[]; +-#endif // !BUILDFLAG(IS_ANDROID) + + // URL to the password manager account dashboard. + extern const char kPasswordManagerAccountDashboardURL[]; +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 +@@ -75,6 +75,19 @@ source_set("password_store_impl") { + "android_backend_error.h", + "password_data_type_controller_delegate_android.cc", + "password_data_type_controller_delegate_android.h", ++ "insecure_credentials_table.cc", ++ "insecure_credentials_table.h", ++ "login_database.cc", ++ "login_database.h", ++ "login_database_async_helper.cc", ++ "login_database_async_helper.h", ++ "password_notes_table.cc", ++ "password_notes_table.h", ++ "password_store_built_in_backend.cc", ++ "password_store_built_in_backend.h", ++ "statistics_table.cc", ++ "statistics_table.h", ++ "login_database_posix.cc", + ] + deps += [ + "//components/sync/base", +diff --git a/components/password_manager/core/browser/password_store/login_database_posix.cc b/components/password_manager/core/browser/password_store/login_database_posix.cc +--- a/components/password_manager/core/browser/password_store/login_database_posix.cc ++++ b/components/password_manager/core/browser/password_store/login_database_posix.cc +@@ -44,7 +44,7 @@ EncryptionResult LoginDatabase::DecryptedString( + const std::string& cipher_text, + std::u16string* plain_text) const { + #if !BUILDFLAG(IS_FUCHSIA) +-#if BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS) + // On ChromeOS, we have a mix of obfuscated and plain-text + // passwords. Obfuscated passwords always start with "v10", therefore anything + // else is plain-text. +@@ -66,7 +66,7 @@ EncryptionResult LoginDatabase::DecryptedString( + bool decryption_success = + encryptor_ ? encryptor_->DecryptString16(cipher_text, plain_text) + : OSCrypt::DecryptString16(cipher_text, plain_text); +-#if BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS) + // If decryption failed, we assume it was because the value was actually a + // plain-text password which started with "v10". + // TODO(crbug.com/41457193): Remove this when there isn't a mix of plain-text +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 +@@ -154,6 +154,7 @@ void PasswordStoreBuiltInBackend::InitBackend( + DCHECK(helper_); + affiliated_match_helper_ = affiliated_match_helper; + ++#if !BUILDFLAG(IS_ANDROID) + // 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 +@@ -162,6 +163,7 @@ void PasswordStoreBuiltInBackend::InitBackend( + if (pref_service_->GetBoolean(prefs::kClearingUndecryptablePasswords)) { + base::FeatureList::IsEnabled(features::kClearUndecryptablePasswords); + } ++#endif + + background_task_runner_->PostTask( + FROM_HERE, base::BindOnce(&LoginDatabaseAsyncHelper::CreateSyncBackend, +@@ -450,11 +452,15 @@ void PasswordStoreBuiltInBackend::OnEncryptorReceived( + weak_ptr_factory_.GetWeakPtr())) + .Then(std::move(remote_form_changes_received)); + ++#if BUILDFLAG(IS_ANDROID) ++ auto on_undecryptable_passwords_removed = base::DoNothing(); ++#else + auto on_undecryptable_passwords_removed = + base::BindPostTaskToCurrentDefault(base::BindRepeating( + &PasswordStoreBuiltInBackend:: + SetClearingUndecryptablePasswordsIsEnabledPref, + weak_ptr_factory_.GetWeakPtr())); ++#endif + + background_task_runner_->PostTaskAndReplyWithResult( + FROM_HERE, +diff --git a/components/password_manager/core/browser/password_store_factory_util.cc b/components/password_manager/core/browser/password_store_factory_util.cc +--- a/components/password_manager/core/browser/password_store_factory_util.cc ++++ b/components/password_manager/core/browser/password_store_factory_util.cc +@@ -21,15 +21,12 @@ + #include "components/password_manager/core/common/password_manager_pref_names.h" + #include "components/prefs/pref_service.h" + +-#if !BUILDFLAG(IS_ANDROID) + #include "components/password_manager/core/browser/password_store/login_database.h" +-#endif // !BUILDFLAG(IS_ANDROID) + + namespace password_manager { + + namespace { + +-#if !BUILDFLAG(IS_ANDROID) + LoginDatabase::DeletingUndecryptablePasswordsEnabled GetPolicyFromPrefs( + PrefService* prefs) { + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ +@@ -40,11 +37,9 @@ LoginDatabase::DeletingUndecryptablePasswordsEnabled GetPolicyFromPrefs( + return LoginDatabase::DeletingUndecryptablePasswordsEnabled(true); + #endif + } +-#endif // !BUILDFLAG(IS_ANDROID) + + } // namespace + +-#if !BUILDFLAG(IS_ANDROID) + std::unique_ptr CreateLoginDatabase( + password_manager::IsAccountStore is_account_store, + const base::FilePath& db_directory, +@@ -55,7 +50,6 @@ std::unique_ptr CreateLoginDatabase( + return std::make_unique(login_db_file_path, is_account_store, + GetPolicyFromPrefs(prefs)); + } +-#endif // !BUILDFLAG(IS_ANDROID) + + // TODO(http://crbug.com/890318): Add unitests to check cleaners are correctly + // created. +diff --git a/components/password_manager/core/browser/password_store_factory_util.h b/components/password_manager/core/browser/password_store_factory_util.h +--- a/components/password_manager/core/browser/password_store_factory_util.h ++++ b/components/password_manager/core/browser/password_store_factory_util.h +@@ -13,9 +13,7 @@ + #include "build/build_config.h" + #include "components/password_manager/core/browser/password_store/password_store_interface.h" + +-#if !BUILDFLAG(IS_ANDROID) + #include "components/password_manager/core/browser/password_store/login_database.h" +-#endif // !BUILDFLAG(IS_ANDROID) + + namespace network::mojom { + class NetworkContext; +@@ -27,7 +25,6 @@ namespace password_manager { + + class CredentialsCleanerRunner; + +-#if !BUILDFLAG(IS_ANDROID) + // Creates a LoginDatabase. Looks in |db_directory| for the database file. + // Does not call LoginDatabase::Init() -- to avoid UI jank, that needs to be + // called by PasswordStore::Init() on the background thread. +@@ -35,7 +32,6 @@ std::unique_ptr CreateLoginDatabase( + password_manager::IsAccountStore is_account_store, + const base::FilePath& db_directory, + PrefService* prefs); +-#endif // !BUILDFLAG(IS_ANDROID) + + // This function handles the following clean-ups of credentials: + // (1) Removing blocklisted duplicates: if two blocklisted credentials have the +diff --git a/components/password_manager/core/common/password_manager_pref_names.h b/components/password_manager/core/common/password_manager_pref_names.h +--- a/components/password_manager/core/common/password_manager_pref_names.h ++++ b/components/password_manager/core/common/password_manager_pref_names.h +@@ -259,12 +259,10 @@ inline constexpr char kRelaunchChromeBubbleDismissedCounter[] = + "password_manager.relaunch_chrome_bubble_dismissed_counter"; + #endif + +-#if !BUILDFLAG(IS_ANDROID) + // Boolean pref indicating if the user is in one of the groups of the + // kClearUndecryptablePasswords experiment. + inline constexpr char kClearingUndecryptablePasswords[] = + "password_manager.clearing_undecryptable_passwords"; +-#endif + + // Boolean pref indicating if passwords were migrated to OSCryptAsync. Two for + // each store. 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 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 2d432a2c..b831b2ed 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 @@ -36,7 +36,7 @@ diff --git a/cc/base/features.cc b/cc/base/features.cc BASE_FEATURE(kInitImageDecodeLastUseTime, base::FEATURE_ENABLED_BY_DEFAULT); -BASE_FEATURE(kThrottleMainFrameTo60Hz, base::FEATURE_DISABLED_BY_DEFAULT); -+CROMITE_FEATURE(kThrottleMainFrameTo60Hz, base::FEATURE_ENABLED_BY_DEFAULT); ++CROMITE_FEATURE(kThrottleMainFrameTo60Hz, "ThrottleMainFrameTo60Hz", base::FEATURE_ENABLED_BY_DEFAULT); BASE_FEATURE(kBoostFrameRateForUrgentMainFrame, base::FEATURE_DISABLED_BY_DEFAULT); diff --git a/build/patches/Site-setting-for-images.patch b/build/patches/Site-setting-for-images.patch index 56c17e3d..59bd1277 100644 --- a/build/patches/Site-setting-for-images.patch +++ b/build/patches/Site-setting-for-images.patch @@ -504,7 +504,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h FetchContext& Context() const; void ClearContext(); -@@ -711,6 +712,7 @@ class PLATFORM_EXPORT ResourceFetcher +@@ -712,6 +713,7 @@ class PLATFORM_EXPORT ResourceFetcher bool is_in_request_resource_ = false; bool auto_load_images_ : 1; diff --git a/build/patches/Use-list-mode-for-tab-switcher.patch b/build/patches/Use-list-mode-for-tab-switcher.patch index a48605a8..f1718a26 100644 --- a/build/patches/Use-list-mode-for-tab-switcher.patch +++ b/build/patches/Use-list-mode-for-tab-switcher.patch @@ -213,7 +213,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser import org.chromium.chrome.browser.tabmodel.TabClosingSource; import org.chromium.chrome.browser.tabmodel.TabClosureParamsUtils; import org.chromium.chrome.browser.tabmodel.TabGroupModelFilter; -@@ -907,6 +908,13 @@ public class TabGridDialogMediator +@@ -908,6 +909,13 @@ public class TabGridDialogMediator TabGridDialogProperties.DIALOG_UNGROUP_BAR_HOVERED_TEXT_COLOR, ungroupBarHoveredTextColor); mModel.set(TabGridDialogProperties.IS_INCOGNITO, isIncognito); 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 cbe7a805..f9c9399a 100644 --- a/build/patches/eyeo-133.0.6943.49-android_api.patch +++ b/build/patches/eyeo-133.0.6943.49-android_api.patch @@ -13,7 +13,7 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module .../android/adblock/tab_id_translator_jni.cc | 41 ++ chrome/browser/ui/BUILD.gn | 6 + components/adblock/android/BUILD.gn | 107 ++++ - .../adblock/android/adblock_controller_jni.cc | 132 +++++ + .../adblock/android/adblock_controller_jni.cc | 133 +++++ .../filtering_configuration_android.cc | 244 ++++++++ .../android/filtering_configuration_android.h | 94 +++ .../components/adblock/AdblockController.java | 283 +++++++++ @@ -46,7 +46,7 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module .../adblock/TestVerificationUtils.java | 220 +++++++ ...esource_classification_notifier_android.cc | 163 +++++ ...resource_classification_notifier_android.h | 72 +++ - 40 files changed, 5609 insertions(+) + 40 files changed, 5610 insertions(+) create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/adblock/TabIdTranslator.java create mode 100644 chrome/browser/android/adblock/tab_id_translator_jni.cc create mode 100644 components/adblock/android/BUILD.gn @@ -396,7 +396,7 @@ diff --git a/components/adblock/android/adblock_controller_jni.cc b/components/a new file mode 100644 --- /dev/null +++ b/components/adblock/android/adblock_controller_jni.cc -@@ -0,0 +1,132 @@ +@@ -0,0 +1,133 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -449,7 +449,8 @@ new file mode 100644 + const std::string& version, + const std::vector& languages, + const bool autoinstalled) { -+ ScopedJavaLocalRef url_param( ++ ScopedJavaLocalRef url_param = ++ ScopedJavaLocalRef::Adopt( + env, env->NewObject(url_class.obj(), url_constructor, + ConvertUTF8ToJavaString(env, url).obj())); + CheckException(env); diff --git a/build/patches/eyeo-133.0.6943.49-base.patch b/build/patches/eyeo-133.0.6943.49-base.patch index e37f6c4a..20e6f1c5 100644 --- a/build/patches/eyeo-133.0.6943.49-base.patch +++ b/build/patches/eyeo-133.0.6943.49-base.patch @@ -51039,7 +51039,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame_mojo_handler.cc b } +void LocalFrameMojoHandler::InsertAbpElemhideStylesheet( -+ const WTF::String& stylesheet) { ++ const String& stylesheet) { + WebLocalFrameImpl* web_frame = WebLocalFrameImpl::FromFrame(frame_); + DCHECK(web_frame); + web_frame->GetDocument().InsertAbpElemhideStylesheet(stylesheet, nullptr, @@ -51067,7 +51067,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame_mojo_handler.h b/ void AddMessageToConsole(mojom::blink::ConsoleMessageLevel level, const String& message, bool discard_duplicates) final; -+ void InsertAbpElemhideStylesheet(const WTF::String& stylesheet) final; ++ void InsertAbpElemhideStylesheet(const String& stylesheet) final; void SwapInImmediately() final; void CheckCompleted() final; void StopLoading() final; From af12a65ed48c1e18ee6d2778b051a946db39a5b7 Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Wed, 29 Oct 2025 17:53:19 +0100 Subject: [PATCH 5/6] Disable Sticky User Activation Across Same Origin Navigation: do not retains the user activation status after navigating from one page to another page of the same origin. It is currently not possible to remove activation once it has been granted. --- build/cromite_patches_list.txt | 1 + ...vation-Across-Same-Origin-Navigation.patch | 28 +++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 build/patches/Disable-Sticky-User-Activation-Across-Same-Origin-Navigation.patch diff --git a/build/cromite_patches_list.txt b/build/cromite_patches_list.txt index c50ae8b1..9ed877e6 100644 --- a/build/cromite_patches_list.txt +++ b/build/cromite_patches_list.txt @@ -307,6 +307,7 @@ Disable-Device-Attributes-API.patch Add-setting-to-enable-Credman-for-passkeys.patch Temp-disable-UseContextSnapshot.patch Enable-ClientHello-Segmentation.patch +Disable-Sticky-User-Activation-Across-Same-Origin-Navigation.patch # temporary or wip patches Temp-PerformanceNavigationTiming-privacy-fix.patch diff --git a/build/patches/Disable-Sticky-User-Activation-Across-Same-Origin-Navigation.patch b/build/patches/Disable-Sticky-User-Activation-Across-Same-Origin-Navigation.patch new file mode 100644 index 00000000..c426aaeb --- /dev/null +++ b/build/patches/Disable-Sticky-User-Activation-Across-Same-Origin-Navigation.patch @@ -0,0 +1,28 @@ +From: uazo +Date: Wed, 29 Oct 2025 13:01:41 +0000 +Subject: Disable Sticky User Activation Across Same Origin Navigation + +Do not retains the user activation status after navigating +from one page to another page of the same origin. +It is currently not possible to remove activation once it has been granted. + +License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html +--- + .../blink/renderer/platform/runtime_enabled_features.json5 | 4 ++-- + 1 file changed, 2 insertions(+), 2 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 +@@ -4794,8 +4794,8 @@ + { + // Preserves the sticky user activation state after a page navigates to + // another same-origin page. https://crbug.com/433729626 +- name: "StickyUserActivationAcrossSameOriginNavigation", +- status: "stable", ++ name: "StickyUserActivationAcrossSameOriginNavigation", status: "experimental", // disabled by default ++ + }, + { + name: "StorageBuckets", +-- From bdb2a4ef2219c2c28974a555536308b803feb95d Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Wed, 29 Oct 2025 17:54:25 +0100 Subject: [PATCH 6/6] Temp use PREVIEW for IDCompositionDevice5: Temporarily restore the statement from v141 while waiting to update the Windows SDK. See "Remove preview usage of DynamicTexture DComp APIs" bugid 6902339 --- build/cromite_patches_list.txt | 1 + ...use-PREVIEW-for-IDCompositionDevice5.patch | 76 +++++++++++++++++++ 2 files changed, 77 insertions(+) create mode 100644 build/patches/Temp-use-PREVIEW-for-IDCompositionDevice5.patch diff --git a/build/cromite_patches_list.txt b/build/cromite_patches_list.txt index 9ed877e6..51484a02 100644 --- a/build/cromite_patches_list.txt +++ b/build/cromite_patches_list.txt @@ -319,6 +319,7 @@ Temp-disable-experimental-web-platform-features.patch Block-leakage-of-urls-in-sandbox-iframes.patch Fix-chromium-build-bugs.patch Try-to-fix-2082.patch +Temp-use-PREVIEW-for-IDCompositionDevice5.patch # adblock patches eyeo-133.0.6943.49-base.patch diff --git a/build/patches/Temp-use-PREVIEW-for-IDCompositionDevice5.patch b/build/patches/Temp-use-PREVIEW-for-IDCompositionDevice5.patch new file mode 100644 index 00000000..4871d942 --- /dev/null +++ b/build/patches/Temp-use-PREVIEW-for-IDCompositionDevice5.patch @@ -0,0 +1,76 @@ +From: uazo +Date: Wed, 29 Oct 2025 12:30:49 +0000 +Subject: Temp use PREVIEW for IDCompositionDevice5 + +Temporarily restore the statement from v141 while waiting to update the Windows SDK. +See Remove preview usage of DynamicTexture DComp APIs. +https://chromium-review.googlesource.com/c/chromium/src/+/6902339 + +License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html +--- + .../viz/service/display_embedder/skia_output_device_dcomp.cc | 3 ++- + ui/gl/dc_layer_tree.cc | 3 ++- + ui/gl/dc_layer_tree.h | 3 ++- + 3 files changed, 6 insertions(+), 3 deletions(-) + +diff --git a/components/viz/service/display_embedder/skia_output_device_dcomp.cc b/components/viz/service/display_embedder/skia_output_device_dcomp.cc +--- a/components/viz/service/display_embedder/skia_output_device_dcomp.cc ++++ b/components/viz/service/display_embedder/skia_output_device_dcomp.cc +@@ -26,6 +26,7 @@ + #include "gpu/command_buffer/service/shared_image/shared_image_representation.h" + #include "gpu/command_buffer/service/skia_utils.h" + #include "gpu/command_buffer/service/texture_manager.h" ++#include "third_party/microsoft_dxheaders/src/include/composition/dcomp-preview.h" + #include "third_party/skia/include/core/SkCanvas.h" + #include "third_party/skia/include/core/SkSurface.h" + #include "third_party/skia/include/gpu/ganesh/GrDirectContext.h" +@@ -56,7 +57,7 @@ OutputSurface::DCSupportLevel GetDcSupportLevel() { + Microsoft::WRL::ComPtr dcomp_device = + gl::GetDirectCompositionDevice(); + +- if (Microsoft::WRL::ComPtr dcomp_device5; ++ if (Microsoft::WRL::ComPtr dcomp_device5; + SUCCEEDED(dcomp_device.As(&dcomp_device5))) { + return OutputSurface::DCSupportLevel::kDCompDynamicTexture; + } +diff --git a/ui/gl/dc_layer_tree.cc b/ui/gl/dc_layer_tree.cc +--- a/ui/gl/dc_layer_tree.cc ++++ b/ui/gl/dc_layer_tree.cc +@@ -17,6 +17,7 @@ + #include "base/trace_event/trace_event.h" + #include "base/types/expected.h" + #include "base/types/expected_macros.h" ++#include "third_party/microsoft_dxheaders/src/include/composition/dcomp-preview.h" + #include "ui/gfx/color_space_win.h" + #include "ui/gfx/geometry/rect_conversions.h" + #include "ui/gfx/geometry/transform_util.h" +@@ -384,7 +385,7 @@ void DCLayerTree::Initialize( + + hdr_metadata_helper_ = std::make_unique(d3d11_device_); + +- if (Microsoft::WRL::ComPtr dcomp_device5; ++ if (Microsoft::WRL::ComPtr dcomp_device5; + SUCCEEDED(dcomp_device_.As(&dcomp_device5))) { + hr = dcomp_device5->CreateDynamicTexture(&primary_plane_surface_); + if (FAILED(hr)) { +diff --git a/ui/gl/dc_layer_tree.h b/ui/gl/dc_layer_tree.h +--- a/ui/gl/dc_layer_tree.h ++++ b/ui/gl/dc_layer_tree.h +@@ -18,6 +18,7 @@ + #include "base/moving_window.h" + #include "base/types/expected.h" + #include "mojo/public/cpp/bindings/pending_receiver.h" ++#include "third_party/microsoft_dxheaders/src/include/composition/dcomp-preview.h" + #include "ui/gfx/geometry/size.h" + #include "ui/gfx/overlay_layer_id.h" + #include "ui/gl/dc_layer_overlay_params.h" +@@ -555,7 +556,7 @@ class GL_EXPORT DCLayerTree { + + // If supported, a surface that is updated with the contents of the primary + // plane. If not supported, null. +- Microsoft::WRL::ComPtr primary_plane_surface_; ++ Microsoft::WRL::ComPtr primary_plane_surface_; + + // This is a number that increments once every time `primary_plane_surface_` + // is updated, and is used to determine when the contents have changed so +--