From f81c2de32c70b1ff992bd1a10ad1a3e1da028885 Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Sun, 27 Apr 2025 15:43:00 +0200 Subject: [PATCH 01/10] Patches for v136 --- .../AImageReader-CFI-crash-mitigations.patch | 14 +- .../Add-AllowUserCertificates-flag.patch | 18 +- ...dd-Alt-D-hotkey-to-focus-address-bar.patch | 2 +- ...tialLowEndModeOnMidRangeDevices-flag.patch | 16 +- .../Add-a-flag-to-disable-GamePad-API.patch | 4 +- .../Add-a-proxy-configuration-page.patch | 12 +- .../Add-bookmark-import-export-actions.patch | 76 +- build/patches/Add-cromite-flags-support.patch | 139 +- ...dd-custom-tab-intents-privacy-option.patch | 24 +- build/patches/Add-exit-menu-item.patch | 12 +- ...g-for-omnibox-autocomplete-filtering.patch | 2 +- .../Add-flag-to-disable-IPv6-probes.patch | 6 +- ...-to-disable-external-intent-requests.patch | 10 +- .../Add-flag-to-disable-vibration.patch | 2 +- ...-switch-for-unsupported-clangd-flags.patch | 12 +- .../Add-menu-item-to-view-source.patch | 12 +- .../Add-option-to-disable-snapshots.patch | 22 +- .../Add-option-to-force-tablet-UI.patch | 60 +- ...-to-not-persist-tabs-across-sessions.patch | 12 +- .../Add-option-to-use-home-page-as-NTP.patch | 20 +- ...d-setting-to-invert-tap-and-long-tap.patch | 80 +- build/patches/Add-site-engagement-flag.patch | 2 +- ...-support-for-ISupportHelpAndFeedback.patch | 18 +- build/patches/Add-support-to-jxl.patch | 28 +- build/patches/Add-webGL-site-setting.patch | 8 +- ...PiP-if-PopupsAndRedirects-are-active.patch | 2 +- ...ow-building-without-enable_reporting.patch | 24 +- ...ow-building-without-supervised-users.patch | 40 +- .../Allow-playing-audio-in-background.patch | 4 +- ...ays-open-browser-controls-in-new-tab.patch | 12 +- ...e-new-tab-page-for-default-home-page.patch | 2 +- ...roid-fonts-fingerprinting-mitigation.patch | 22 +- ...Ask-for-restart-on-connection-change.patch | 36 +- ...ioBuffer-AnalyserNode-fp-mitigations.patch | 10 +- ...Block-gateway-attacks-via-websockets.patch | 8 +- ...k-leakage-of-urls-in-sandbox-iframes.patch | 4 +- .../Block-qjz9zk-or-trk-requests.patch | 10 +- .../Bookmarks-select-all-menu-entry.patch | 2 +- build/patches/Bromite-auto-updater.patch | 20 +- .../Bromite-subresource-adblocker.patch | 20 +- .../Bubble-Locking-on-UI-DevTools.patch | 6 +- .../patches/Chrome-web-store-protection.patch | 171 ++- ...ORS-Preflight-Cache-on-clearing-data.patch | 4 +- build/patches/Client-hints-overrides.patch | 26 +- .../patches/Close-Sessions-On-Ip-Change.patch | 2 +- .../Content-settings-infrastructure.patch | 308 ++--- ...romite-Branding--improve-settings-ui.patch | 6 +- build/patches/Cromite-Branding.patch | 22 +- build/patches/Customize-selection-popup.patch | 12 +- ...ctionary-suggestions-for-the-Omnibox.patch | 2 +- ...ble-Accessibility-service-by-default.patch | 2 +- .../Disable-Android-AppRestrictions.patch | 8 +- .../Disable-Android-Tab-Declutter.patch | 8 +- build/patches/Disable-Compose-feature.patch | 8 +- ...ble-Compression-Dictionary-Transport.patch | 2 +- build/patches/Disable-FedCm.patch | 2 +- build/patches/Disable-GSA-by-default.patch | 56 +- .../Disable-GetInstalledRelatedApps-API.patch | 10 +- .../Disable-Paint-Preview-by-default.patch | 2 +- build/patches/Disable-PrivacyGuide.patch | 2 +- build/patches/Disable-Real-Box.patch | 6 +- build/patches/Disable-WebGPU.patch | 2 +- .../patches/Disable-all-predictors-code.patch | 82 +- build/patches/Disable-all-promo-dialogs.patch | 30 +- .../Disable-conversion-measurement-api.patch | 59 +- build/patches/Disable-crash-reporting.patch | 8 +- ...Disable-fetching-of-all-field-trials.patch | 32 +- ...media-router-and-remoting-by-default.patch | 4 +- .../Disable-omission-of-URL-elements.patch | 10 +- .../patches/Disable-plugins-enumeration.patch | 2 +- ...ers-reduced-transparency-media-query.patch | 39 +- ...e-privacy-issues-in-password-manager.patch | 6 +- build/patches/Disable-privacy-sandbox.patch | 50 +- ...e-references-to-fonts.googleapis.com.patch | 2 +- build/patches/Disable-safety-check.patch | 31 +- .../Disable-smart-selection-by-default.patch | 6 +- ...isable-some-signed-exchange-features.patch | 2 +- ...isable-speechSynthesis-getVoices-API.patch | 2 +- .../Disable-text-fragments-by-default.patch | 6 +- .../Disable-third-party-origin-trials.patch | 10 +- build/patches/Disable-various-metrics.patch | 20 +- ...allow-Android-App-Scheme-as-referrer.patch | 2 +- .../Do-not-build-API-keys-infobar.patch | 2 +- .../Do-not-compile-QR-code-sharing.patch | 8 +- .../patches/Do-not-link-with-libatomic.patch | 2 +- .../Do-not-store-passwords-by-default.patch | 6 +- build/patches/DoH-improvements.patch | 10 +- ...ndroid-Dynamic-Performance-Framework.patch | 2 +- build/patches/Enable-Cert-Management-UI.patch | 2 +- .../Enable-Certificate-Transparency.patch | 6 +- ...le-Document-Open-Inheritance-Removal.patch | 4 +- .../Enable-Global-Privacy-Control.patch | 32 +- ...Enable-HighEfficiencyMode-by-default.patch | 8 +- .../Enable-ImprovedBookmarks-by-default.patch | 6 +- ...cessBoundStringEncryption-by-default.patch | 6 +- ...ctOriginIsolation-and-SitePerProcess.patch | 4 +- build/patches/Enable-component-updater.patch | 12 +- ...e-darken-websites-checkbox-in-themes.patch | 2 +- .../patches/Enable-gwp-asan-on-Android.patch | 8 +- .../Enable-menu-on-reload-button.patch | 4 +- .../Enable-native-Android-autofill.patch | 66 +- .../Enable-network-isolation-features.patch | 14 +- ...le-platform-aac-audio-and-h264-video.patch | 4 +- ...le-search-engine-settings-desktop-ui.patch | 104 +- build/patches/Enable-share-intent.patch | 30 +- ...ivation-of-the-js-debugger-statement.patch | 22 +- .../Experimental-user-scripts-support.patch | 48 +- build/patches/Eyeo-Adblock-for-Cromite.patch | 32 +- build/patches/Fix-chromium-build-bugs.patch | 12 +- build/patches/Fix-chromium-vanilla.patch | 2 +- .../Fonts-fingerprinting-mitigation.patch | 11 +- .../Guard-for-user-agent-reduction.patch | 23 +- ...ing-against-incognito-mode-detection.patch | 10 +- ...story-number-of-days-privacy-setting.patch | 52 +- ...e-enterprise-policies-for-secure-DNS.patch | 28 +- ...number-of-autocomplete-matches-to-10.patch | 2 +- build/patches/Internal-firewall.patch | 34 +- build/patches/JIT-site-settings.patch | 4 +- .../Keep-ComputePressure-disabled.patch | 2 +- .../patches/Keep-disabled-FetchLaterAPI.patch | 14 +- .../Keep-empty-tabs-between-sessions.patch | 4 +- ...-allow-screenshots-in-Incognito-mode.patch | 4 +- build/patches/Keyboard-protection-flag.patch | 12 +- .../Lock-Profile-Cookie-Database.patch | 6 +- ...ing-attributes-in-some-html-elements.patch | 12 +- build/patches/Logcat-crash-reports-UI.patch | 2 +- .../Media-fingerprinting-mitigations.patch | 2 +- .../patches/Modify-default-preferences.patch | 12 +- .../Move-navigation-bar-to-bottom.patch | 273 ++-- ...nt-settings-back-to-privacy-settings.patch | 16 +- .../Multiple-fingerprinting-mitigations.patch | 128 +- build/patches/OpenSearch-miscellaneous.patch | 8 +- .../patches/Partition-HSTS-cache-by-NAK.patch | 64 +- .../Partition-MediaDeviceId-by-default.patch | 2 +- ...ning-all-cookies-by-top-frame-domain.patch | 34 +- ...vate-network-access-content-settings.patch | 8 +- ...redential-fingerprinting-mitigations.patch | 10 +- ...-modal-dialog-flag-to-close-all-tabs.patch | 8 +- ...e-introduce-override_build_timestamp.patch | 4 +- .../Remove-ChromiumNetworkAdapter.patch | 2 +- ...referrals-in-cross-origin-navigation.patch | 36 +- ...th-header-upon-cross-origin-redirect.patch | 2 +- .../Remove-binary-blob-integrations.patch | 1229 +++++++---------- ...cklisted-URLs-upon-bookmark-creation.patch | 14 +- .../Remove-detection-of-captive-portals.patch | 4 +- build/patches/Remove-help-menu-item.patch | 26 +- .../Remove-segmentation-platform.patch | 2 +- ...t-for-device-memory-and-cpu-recovery.patch | 8 +- ...Remove-voice-recognition-integration.patch | 84 +- ...ndow-name-on-cross-origin-navigation.patch | 4 +- ...ore-BookmarkToolbar-setCurrentFolder.patch | 4 +- .../Restore-LastTabStandingTracker.patch | 8 +- .../Restore-Search-Ready-Omnibox-flag.patch | 6 +- .../Restore-Simplified-NTP-launch.patch | 48 +- ...-button-in-top-toolbar-customization.patch | 104 +- .../Restore-chrome-password-store.patch | 10 +- .../Restore-offline-indicator-v2-flag.patch | 8 +- ...evert-Permit-blocking-of-view-source.patch | 4 +- ...emove-disable-pull-to-refresh-effect.patch | 8 +- ...l-of-execution-context-address-space.patch | 58 +- ...script-content-setting-secondary-url.patch | 14 +- ...-Note-9-SDK27-crazylinker-workaround.patch | 2 +- build/patches/Show-NTP-at-startup.patch | 10 +- ...tings-for-cookies-javascript-and-ads.patch | 12 +- build/patches/Site-setting-for-images.patch | 20 +- ...-Add-a-log-to-track-strange-behavior.patch | 2 +- ...e-experimental-web-platform-features.patch | 2 +- ...arily-disable-Tab-Group-Sync-Android.patch | 8 +- build/patches/Timezone-customization.patch | 14 +- .../patches/Use-BoringSSL-for-RandBytes.patch | 2 +- .../Use-browser-navigation-handler.patch | 4 +- .../Use-list-mode-for-tab-switcher.patch | 12 +- build/patches/User-agent-customization.patch | 54 +- build/patches/Viewport-Protection-flag.patch | 34 +- build/patches/WIN-Disable-updater.patch | 2 +- build/patches/WIN-enable-pdf-plugin.patch | 2 +- ...message-for-unsupported-hardware-aes.patch | 10 +- build/patches/add-browser-policy.patch | 32 +- build/patches/autofill-miscellaneous.patch | 75 +- build/patches/bromite-build-utils.patch | 2 +- .../disable-WebView-variations-support.patch | 35 +- ...ot-block-build-incompatible-profiles.patch | 2 +- .../exit-on-failure-of-inclusion.patch | 2 +- .../eyeo-133.0.6943.49-android_api.patch | 14 +- .../eyeo-133.0.6943.49-android_settings.patch | 2 +- build/patches/eyeo-133.0.6943.49-base.patch | 92 +- ...yeo-133.0.6943.49-chrome_integration.patch | 78 +- .../eyeo-133.0.6943.49-extension_api.patch | 19 +- .../kill-Location-fall-back-to-system.patch | 8 +- ...gled-chromium-Disable-profile-avatar.patch | 2 +- ...romium-Disable-translate-integration.patch | 2 +- ...ed-chromium-Disable-untraceable-URLs.patch | 2 +- ...chromium-Disable-webRTC-log-uploader.patch | 2 +- ...ed-chromium-no-special-hosts-domains.patch | 76 +- ...RTC-do-not-expose-local-IP-addresses.patch | 2 +- ...iew-Hard-no-to-persistent-histograms.patch | 2 +- 196 files changed, 2615 insertions(+), 2851 deletions(-) diff --git a/build/patches/AImageReader-CFI-crash-mitigations.patch b/build/patches/AImageReader-CFI-crash-mitigations.patch index 438fb642..66f9d6d1 100644 --- a/build/patches/AImageReader-CFI-crash-mitigations.patch +++ b/build/patches/AImageReader-CFI-crash-mitigations.patch @@ -90,10 +90,10 @@ diff --git a/base/android/android_image_reader_compat.h b/base/android/android_i 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 -@@ -3268,6 +3268,10 @@ - "name": "enable-identity-in-auth-error", - "owners": [ "jlebel@chromium.org", "chrome-signin-team@google.com" ], - "expiry_milestone": 135 +@@ -3344,6 +3344,10 @@ + "chrome-signin-team@google.com" + ], + "expiry_milestone": 138 + },{ + "name": "enable-image-reader", // Bromite: do not expire + "owners": [ "vikassoni@chromium.org", "liberato@chromium.org" ], // flag @@ -119,7 +119,7 @@ new file mode 100644 diff --git a/gpu/config/gpu_driver_bug_list.json b/gpu/config/gpu_driver_bug_list.json --- a/gpu/config/gpu_driver_bug_list.json +++ b/gpu/config/gpu_driver_bug_list.json -@@ -2593,6 +2593,22 @@ +@@ -2597,6 +2597,22 @@ "no_downscaled_overlay_promotion" ] }, @@ -171,7 +171,7 @@ diff --git a/gpu/config/gpu_finch_features.h b/gpu/config/gpu_finch_features.h diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc --- a/gpu/config/gpu_util.cc +++ b/gpu/config/gpu_util.cc -@@ -126,6 +126,9 @@ GpuFeatureStatus GetAndroidSurfaceControlFeatureStatus( +@@ -127,6 +127,9 @@ GpuFeatureStatus GetAndroidSurfaceControlFeatureStatus( #if !BUILDFLAG(IS_ANDROID) return kGpuFeatureStatusDisabled; #else @@ -215,7 +215,7 @@ diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc #endif #if BUILDFLAG(ENABLE_VULKAN) -@@ -692,6 +693,13 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line, +@@ -688,6 +689,13 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line, } #endif // BUILDFLAG(IS_WIN) diff --git a/build/patches/Add-AllowUserCertificates-flag.patch b/build/patches/Add-AllowUserCertificates-flag.patch index a985da37..187285e9 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 -@@ -227,6 +227,7 @@ import org.chromium.content_public.browser.LoadUrlParams; +@@ -228,6 +228,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; -@@ -969,6 +970,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -984,6 +985,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 -@@ -160,6 +160,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -163,6 +163,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &feed::kFeedPerformanceStudy, &feed::kFeedShowSignInCommand, &feed::kFeedSignedOutViewDemotion, @@ -59,16 +59,16 @@ 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 ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_CUSTOMIZATION_V2 = -@@ -643,6 +644,8 @@ public abstract class ChromeFeatureList { - public static final CachedFlag sAndroidMinimalUiLargeScreen = - newCachedFlag(ANDROID_MINIMAL_UI_LARGE_SCREEN, false); +@@ -641,6 +642,8 @@ public abstract class ChromeFeatureList { + public static final CachedFlag sAndroidWindowPopupLargeScreen = + newCachedFlag(ANDROID_WINDOW_POPUP_LARGE_SCREEN, false); public static final CachedFlag sAppSpecificHistory = newCachedFlag(APP_SPECIFIC_HISTORY, true); + public static final CachedFlag sAllowUserCertificates = + newCachedFlag(ALLOW_USER_CERTIFICATES, false); public static final CachedFlag sAsyncNotificationManager = newCachedFlag(ASYNC_NOTIFICATION_MANAGER, false, true); public static final CachedFlag sAsyncNotificationManagerForDownload = -@@ -878,6 +881,7 @@ public abstract class ChromeFeatureList { +@@ -858,6 +861,7 @@ public abstract class ChromeFeatureList { public static final List sFlagsCachedFullBrowserChromium = List.of( sAndroidAppIntegration, @@ -111,7 +111,7 @@ new file mode 100644 diff --git a/net/android/java/src/org/chromium/net/X509Util.java b/net/android/java/src/org/chromium/net/X509Util.java --- a/net/android/java/src/org/chromium/net/X509Util.java +++ b/net/android/java/src/org/chromium/net/X509Util.java -@@ -542,6 +542,8 @@ public class X509Util { +@@ -537,6 +537,8 @@ public class X509Util { return userRootBytes.toArray(new byte[0][]); } @@ -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, -@@ -642,6 +644,9 @@ public class X509Util { +@@ -637,6 +639,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 a06517b9..84a7969d 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 -@@ -472,6 +472,8 @@ public class KeyboardShortcuts { +@@ -628,6 +628,8 @@ public class KeyboardShortcuts { R.string.keyboard_shortcut_address_bar, KeyEvent.KEYCODE_L, KeyEvent.META_CTRL_ON); diff --git a/build/patches/Add-PartialLowEndModeOnMidRangeDevices-flag.patch b/build/patches/Add-PartialLowEndModeOnMidRangeDevices-flag.patch index 930853b7..aff9a9e3 100644 --- a/build/patches/Add-PartialLowEndModeOnMidRangeDevices-flag.patch +++ b/build/patches/Add-PartialLowEndModeOnMidRangeDevices-flag.patch @@ -7,15 +7,14 @@ adds a new flag in chrome://flags to re-enable the experiment License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- base/features.cc | 4 ++++ - chrome/browser/about_flags.cc | 1 + .../Add-PartialLowEndModeOnMidRangeDevices-flag.inc | 12 ++++++++++++ - 3 files changed, 17 insertions(+) + 2 files changed, 16 insertions(+) create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-PartialLowEndModeOnMidRangeDevices-flag.inc diff --git a/base/features.cc b/base/features.cc --- a/base/features.cc +++ b/base/features.cc -@@ -120,6 +120,10 @@ BASE_FEATURE(kPostGetMyMemoryStateToBackground, +@@ -125,6 +125,10 @@ BASE_FEATURE(kPostGetMyMemoryStateToBackground, FEATURE_ENABLED_BY_DEFAULT); #endif // BUILDFLAG(IS_ANDROID) @@ -26,17 +25,6 @@ diff --git a/base/features.cc b/base/features.cc void Init(EmitThreadControllerProfilerMetadata emit_thread_controller_profiler_metadata) { sequence_manager::internal::SequenceManagerImpl::InitializeFeatures(); -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 -@@ -22,6 +22,7 @@ - #include "base/base_switches.h" - #include "base/command_line.h" - #include "base/feature_list.h" -+#include "base/features.h" - #include "base/functional/bind.h" - #include "base/functional/callback.h" - #include "base/i18n/base_i18n_switches.h" diff --git a/cromite_flags/chrome/browser/about_flags_cc/Add-PartialLowEndModeOnMidRangeDevices-flag.inc b/cromite_flags/chrome/browser/about_flags_cc/Add-PartialLowEndModeOnMidRangeDevices-flag.inc new file mode 100644 --- /dev/null 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 1e7793a9..d0cc5837 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 -@@ -7693,9 +7693,9 @@ +@@ -7921,9 +7921,9 @@ "expiry_milestone": 140 }, { @@ -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 -@@ -258,6 +258,8 @@ void SetRuntimeFeaturesFromChromiumFeatures() { +@@ -257,6 +257,8 @@ void SetRuntimeFeaturesFromChromiumFeatures() { raw_ref(features::kPeriodicBackgroundSync)}, {wf::EnablePushMessagingSubscriptionChange, raw_ref(features::kPushSubscriptionChangeEvent)}, diff --git a/build/patches/Add-a-proxy-configuration-page.patch b/build/patches/Add-a-proxy-configuration-page.patch index e4b8838c..5e69a048 100644 --- a/build/patches/Add-a-proxy-configuration-page.patch +++ b/build/patches/Add-a-proxy-configuration-page.patch @@ -78,7 +78,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -81,6 +81,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -79,6 +79,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private static final String PREF_PASSWORD_LEAK_DETECTION = "password_leak_detection"; private static final String PREF_SYNC_AND_SERVICES_LINK = "sync_and_services_link"; private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox"; @@ -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 -@@ -333,6 +333,7 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() { +@@ -335,6 +335,7 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() { builtins_to_provide.push_back(chrome::kChromeUISettingsURL16); #endif builtins_to_provide.push_back(chrome::kChromeUIVersionURL16); @@ -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 -@@ -196,6 +196,8 @@ +@@ -195,6 +195,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 -@@ -1561,6 +1563,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) { +@@ -1562,6 +1564,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 -@@ -224,6 +224,8 @@ static_library("ui") { +@@ -225,6 +225,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_NACL) #include "chrome/browser/ui/webui/nacl_ui.h" #endif -@@ -391,7 +394,7 @@ void RegisterChromeWebUIConfigs() { +@@ -395,7 +398,7 @@ void RegisterChromeWebUIConfigs() { map.AddWebUIConfig(std::make_unique()); map.AddWebUIConfig(std::make_unique()); #endif diff --git a/build/patches/Add-bookmark-import-export-actions.patch b/build/patches/Add-bookmark-import-export-actions.patch index 0313ff4e..83892bd3 100644 --- a/build/patches/Add-bookmark-import-export-actions.patch +++ b/build/patches/Add-bookmark-import-export-actions.patch @@ -132,7 +132,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B import org.chromium.base.IntentUtils; import org.chromium.build.annotations.Nullable; -@@ -28,6 +29,9 @@ import org.chromium.components.embedder_support.util.UrlConstants; +@@ -29,6 +30,9 @@ import org.chromium.components.embedder_support.util.UrlConstants; import org.chromium.ui.modaldialog.ModalDialogManager; import org.chromium.ui.modaldialog.ModalDialogManager.ModalDialogType; @@ -142,7 +142,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B /** * The activity that displays the bookmark UI on the phone. It keeps a {@link * BookmarkManagerCoordinator} inside of it and creates a snackbar manager. This activity should -@@ -41,6 +45,9 @@ public class BookmarkActivity extends SnackbarActivity { +@@ -42,6 +46,9 @@ public class BookmarkActivity extends SnackbarActivity { private @Nullable BookmarkManagerCoordinator mBookmarkManagerCoordinator; private @Nullable BookmarkOpener mBookmarkOpener; @@ -152,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); -@@ -70,6 +77,14 @@ public class BookmarkActivity extends SnackbarActivity { - getOnBackPressedDispatcher(), - mBookmarkManagerCoordinator, - SecondaryActivity.BOOKMARK); +@@ -68,6 +75,14 @@ public class BookmarkActivity extends SnackbarActivity { + mBookmarkManagerCoordinator.updateForUrl(url); + setContentView(mBookmarkManagerCoordinator.getView()); + BackPressHelper.create(this, getOnBackPressedDispatcher(), mBookmarkManagerCoordinator); + + final boolean listenToActivityState = true; + mIntentRequestTracker = IntentRequestTracker.createFromActivity(this); @@ -167,7 +167,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B } @Override -@@ -89,6 +104,7 @@ public class BookmarkActivity extends SnackbarActivity { +@@ -87,6 +102,7 @@ public class BookmarkActivity extends SnackbarActivity { @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); @@ -175,7 +175,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B if (requestCode == EDIT_BOOKMARK_REQUEST_CODE && resultCode == RESULT_OK) { BookmarkId bookmarkId = BookmarkId.getBookmarkIdFromString( -@@ -97,6 +113,21 @@ public class BookmarkActivity extends SnackbarActivity { +@@ -95,6 +111,21 @@ public class BookmarkActivity extends SnackbarActivity { } } @@ -256,7 +256,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "bookmarks/chrome_bookmark_client.cc", "bookmarks/chrome_bookmark_client.h", "bookmarks/managed_bookmark_service_factory.cc", -@@ -1713,6 +1715,13 @@ static_library("browser") { +@@ -1735,6 +1737,13 @@ static_library("browser") { ] } @@ -270,7 +270,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn configs += [ "//build/config/compiler:wexit_time_destructors", "//build/config:precompiled_headers", -@@ -3535,8 +3544,6 @@ static_library("browser") { +@@ -3570,8 +3579,6 @@ static_library("browser") { "bookmarks/bookmark_expanded_state_tracker.h", "bookmarks/bookmark_expanded_state_tracker_factory.cc", "bookmarks/bookmark_expanded_state_tracker_factory.h", @@ -768,7 +768,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; -@@ -328,6 +330,13 @@ public class BookmarkManagerCoordinator +@@ -332,6 +334,13 @@ public class BookmarkManagerCoordinator // Public API implementation. @@ -785,7 +785,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java --- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java +++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java -@@ -57,6 +57,8 @@ import org.chromium.components.commerce.core.SubscriptionsObserver; +@@ -58,6 +58,8 @@ import org.chromium.components.commerce.core.SubscriptionsObserver; import org.chromium.components.embedder_support.util.UrlConstants; import org.chromium.components.power_bookmarks.PowerBookmarkMeta; import org.chromium.components.power_bookmarks.PowerBookmarkType; @@ -794,7 +794,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows import org.chromium.ui.accessibility.AccessibilityState; import org.chromium.ui.listmenu.ListMenu; import org.chromium.ui.listmenu.ListMenuItemProperties; -@@ -75,6 +77,47 @@ import java.util.function.BooleanSupplier; +@@ -76,6 +78,47 @@ import java.util.function.BooleanSupplier; import java.util.function.Consumer; import java.util.function.Predicate; @@ -842,7 +842,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. class BookmarkManagerMediator -@@ -84,6 +127,9 @@ class BookmarkManagerMediator +@@ -85,6 +128,9 @@ class BookmarkManagerMediator private static boolean sPreventLoadingForTesting; @@ -852,7 +852,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; -@@ -573,6 +619,14 @@ class BookmarkManagerMediator +@@ -579,6 +625,14 @@ class BookmarkManagerMediator mNativePage = nativePage; } @@ -867,7 +867,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. -@@ -748,6 +802,235 @@ class BookmarkManagerMediator +@@ -754,6 +808,235 @@ class BookmarkManagerMediator } } @@ -1106,7 +1106,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; @@ -1116,7 +1116,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows /** A native page holding a {@link BookmarkManagerCoordinator} on _tablet_. */ public class BookmarkPage extends BasicNativePage { -@@ -34,7 +37,8 @@ public class BookmarkPage extends BasicNativePage { +@@ -35,7 +38,8 @@ public class BookmarkPage extends BasicNativePage { @NonNull SnackbarManager snackbarManager, @NonNull Profile profile, @NonNull NativePageHost host, @@ -1126,9 +1126,9 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows super(host); mTitle = host.getContext().getString(R.string.bookmarks); -@@ -53,6 +57,9 @@ public class BookmarkPage extends BasicNativePage { - mBookmarkOpener, - componentName); +@@ -55,6 +59,9 @@ public class BookmarkPage extends BasicNativePage { + new BookmarkManagerOpenerImpl(), + PriceDropNotificationManagerFactory.create(profile)); mBookmarkManagerCoordinator.setBasicNativePage(this); + mBookmarkManagerCoordinator.setWindow(activity.getWindowAndroid(), + new ModalDialogManager( @@ -1197,7 +1197,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java --- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java +++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java -@@ -135,6 +135,10 @@ class BookmarkToolbarMediator +@@ -138,6 +138,10 @@ class BookmarkToolbarMediator mBookmarkDelegate = bookmarkDelegate; mModel.set( BookmarkToolbarProperties.NAVIGATE_BACK_RUNNABLE, this::onNavigateBack); @@ -1325,25 +1325,25 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -213,6 +213,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { - &kCCTAuthTab, - &kCCTAuthTabDisableAllExternalIntents, - &kCCTAuthTabEnableHttpsRedirects, +@@ -209,6 +209,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { + &kBackgroundThreadPool, + &kBlockIntentsWhileLocked, + &kBookmarkPaneAndroid, + &kBookmarksExportUseSaf, - &kCCTBeforeUnload, - &kCCTBlockTouchesDuringEnterAnimation, - &kCCTClientDataHeader, + &kBottomBrowserControlsRefactor, + &kTabClosureMethodRefactor, + &kBrowserControlsEarlyResize, 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 -@@ -599,6 +599,7 @@ public abstract class ChromeFeatureList { +@@ -594,6 +594,7 @@ public abstract class ChromeFeatureList { public static final String USE_LIBUNWINDSTACK_NATIVE_UNWINDER_ANDROID = "UseLibunwindstackNativeUnwinderAndroid"; public static final String VISITED_URL_RANKING_SERVICE = "VisitedURLRankingService"; + public static final String BOOKMARKS_EXPORT_USESAF = "BookmarksExportUseSaf"; - public static final String VOICE_SEARCH_AUDIO_CAPTURE_POLICY = "VoiceSearchAudioCapturePolicy"; public static final String WEB_APK_BACKUP_AND_RESTORE_BACKEND = "WebApkBackupAndRestoreBackend"; public static final String WEB_APK_INSTALL_FAILURE_NOTIFICATION = + "WebApkInstallFailureNotification"; diff --git a/chrome/browser/importer/profile_writer.cc b/chrome/browser/importer/profile_writer.cc --- a/chrome/browser/importer/profile_writer.cc +++ b/chrome/browser/importer/profile_writer.cc @@ -1390,7 +1390,7 @@ diff --git a/chrome/browser/importer/profile_writer.h b/chrome/browser/importer/ 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 -@@ -127,6 +127,8 @@ public final class ChromePreferenceKeys { +@@ -140,6 +140,8 @@ public final class ChromePreferenceKeys { "enhanced_bookmark_last_used_parent_folder"; public static final String BOOKMARKS_SORT_ORDER = "Chrome.Bookmarks.BookmarkRowSortOrder"; public static final String BOOKMARKS_VISUALS_PREF = "Chrome.Bookmarks.BookmarkRowDisplay"; @@ -1399,7 +1399,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"; -@@ -957,6 +959,7 @@ public final class ChromePreferenceKeys { +@@ -986,6 +988,7 @@ public final class ChromePreferenceKeys { AUXILIARY_SEARCH_IS_SCHEMA_V2_SET, APP_LAUNCH_LAST_KNOWN_ACTIVE_TAB_STATE, APP_LAUNCH_SEARCH_ENGINE_HAD_LOGO, @@ -1410,7 +1410,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 -@@ -246,6 +246,24 @@ CHAR_LIMIT guidelines: +@@ -249,6 +249,24 @@ CHAR_LIMIT guidelines: Sites @@ -1451,7 +1451,7 @@ diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn --- a/chrome/utility/BUILD.gn +++ b/chrome/utility/BUILD.gn -@@ -89,8 +89,6 @@ static_library("utility") { +@@ -88,8 +88,6 @@ static_library("utility") { if (!is_android) { sources += [ @@ -1460,8 +1460,8 @@ diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn "importer/bookmarks_file_importer.cc", "importer/bookmarks_file_importer.h", "importer/external_process_importer_bridge.cc", -@@ -227,6 +225,11 @@ static_library("utility") { - ] +@@ -221,6 +219,11 @@ static_library("utility") { + deps += [ "//chrome/services/pdf:lib" ] } + sources += [ @@ -1685,7 +1685,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui return mimeTypes; } -@@ -1155,6 +1163,10 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -1156,6 +1164,10 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick return countAcceptTypesFor(superType) == mMimeTypes.size(); } diff --git a/build/patches/Add-cromite-flags-support.patch b/build/patches/Add-cromite-flags-support.patch index 3eecdcb2..a50dd888 100644 --- a/build/patches/Add-cromite-flags-support.patch +++ b/build/patches/Add-cromite-flags-support.patch @@ -143,7 +143,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/base/BUILD.gn b/base/BUILD.gn --- a/base/BUILD.gn +++ b/base/BUILD.gn -@@ -164,6 +164,8 @@ use_epoll = is_linux || is_chromeos || is_android +@@ -174,6 +174,8 @@ use_epoll = is_linux || is_chromeos || is_android # This does not include test code (test support and anything in the test # directory) which should use source_set as is recommended for GN targets). component("base") { @@ -152,7 +152,7 @@ diff --git a/base/BUILD.gn b/base/BUILD.gn sources = [ "allocator/allocator_check.cc", "allocator/allocator_check.h", -@@ -1019,7 +1021,7 @@ component("base") { +@@ -1029,7 +1031,7 @@ component("base") { "//build/config/compiler:wglobal_constructors", ] @@ -291,7 +291,7 @@ diff --git a/base/feature_list.cc b/base/feature_list.cc diff --git a/base/feature_list.h b/base/feature_list.h --- a/base/feature_list.h +++ b/base/feature_list.h -@@ -167,8 +167,10 @@ enum class FeatureMacroHandshake { kSecret }; +@@ -174,8 +174,10 @@ enum class FeatureMacroHandshake { kSecret }; struct BASE_EXPORT LOGICALLY_CONST Feature { constexpr Feature(const char* name, FeatureState default_state, @@ -304,7 +304,7 @@ diff --git a/base/feature_list.h b/base/feature_list.h #if BUILDFLAG(ENABLE_BANNED_BASE_FEATURE_PREFIX) if (std::string_view(name).find(BUILDFLAG(BANNED_BASE_FEATURE_PREFIX)) == 0) { -@@ -195,6 +197,9 @@ struct BASE_EXPORT LOGICALLY_CONST Feature { +@@ -202,6 +204,9 @@ struct BASE_EXPORT LOGICALLY_CONST Feature { // command line switch. const FeatureState default_state; @@ -314,7 +314,7 @@ diff --git a/base/feature_list.h b/base/feature_list.h private: friend class FeatureList; -@@ -474,6 +479,11 @@ class BASE_EXPORT FeatureList { +@@ -481,6 +486,11 @@ class BASE_EXPORT FeatureList { // instance, which is checked in builds with DCHECKs enabled. static bool IsEnabled(const Feature& feature); @@ -326,7 +326,7 @@ diff --git a/base/feature_list.h b/base/feature_list.h // Some characters are not allowed to appear in feature names or the // associated field trial names, as they are used as special characters for // command-line serialization. This function checks that the strings are ASCII -@@ -743,4 +753,62 @@ class BASE_EXPORT FeatureList { +@@ -750,4 +760,62 @@ class BASE_EXPORT FeatureList { } // namespace base @@ -462,7 +462,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settin diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -84,7 +84,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -81,7 +81,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private final ObservableSupplierImpl mPageTitle = new ObservableSupplierImpl<>(); @Override @@ -537,7 +537,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin import org.chromium.base.supplier.OneshotSupplierImpl; import org.chromium.chrome.R; import org.chromium.chrome.browser.ChromeBaseAppCompatActivity; -@@ -41,12 +44,14 @@ import org.chromium.chrome.browser.back_press.SecondaryActivityBackPressUma.Seco +@@ -40,12 +43,14 @@ import org.chromium.chrome.browser.back_press.BackPressHelper; import org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncherImpl; import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.init.ChromeBrowserInitializer; @@ -552,7 +552,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; import org.chromium.components.browser_ui.bottomsheet.BottomSheetControllerFactory; import org.chromium.components.browser_ui.bottomsheet.ManagedBottomSheetController; -@@ -85,6 +90,40 @@ import java.util.Locale; +@@ -84,6 +89,40 @@ import java.util.Locale; */ public class SettingsActivity extends ChromeBaseAppCompatActivity implements PreferenceFragmentCompat.OnPreferenceStartFragmentCallback, SnackbarManageable { @@ -593,7 +593,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin @VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE) public static final String EXTRA_SHOW_FRAGMENT = "show_fragment"; -@@ -151,7 +190,8 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -150,7 +189,8 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity mProfile, mSnackbarManagerSupplier, mBottomSheetControllerSupplier, @@ -632,7 +632,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tracing/setting diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -396,6 +396,10 @@ using flags_ui::kOsLinux; +@@ -402,6 +402,10 @@ using flags_ui::kOsLinux; using flags_ui::kOsMac; using flags_ui::kOsWin; @@ -643,9 +643,9 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc namespace about_flags { namespace { -@@ -4428,6 +4432,10 @@ const FeatureEntry::FeatureVariation - std::size(kStandardBoundSessionCredentialsEnabledOriginTrialToken), - nullptr}}; +@@ -4419,6 +4423,10 @@ const FeatureEntry::FeatureVariation kEnableCanvasNoiseVariations[] = { + {" - In all browsing modes", kEnableCanvasNoiseInAllModes, + std::size(kEnableCanvasNoiseInAllModes), nullptr}}; +#define FEATURE_PARAM_SECTION +#include "cromite_flags/chrome_browser_about_flags_cc.inc" @@ -654,7 +654,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc // RECORDING USER METRICS FOR FLAGS: // ----------------------------------------------------------------------------- // The first line of the entry is the internal name. -@@ -4454,6 +4462,9 @@ const FeatureEntry::FeatureVariation +@@ -4445,6 +4453,9 @@ const FeatureEntry::FeatureVariation kEnableCanvasNoiseVariations[] = { const FeatureEntry kFeatureEntries[] = { // Include generated flags for flag unexpiry; see //docs/flag_expiry.md and // //tools/flags/generate_unexpire_flags.py. @@ -667,7 +667,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/browser_features.cc b/chrome/browser/browser_features.cc --- a/chrome/browser/browser_features.cc +++ b/chrome/browser/browser_features.cc -@@ -357,4 +357,5 @@ BASE_FEATURE(kRemovalOfIWAsFromTabCapture, +@@ -351,4 +351,5 @@ BASE_FEATURE(kRemovalOfIWAsFromTabCapture, "RemovalOfIWAsFromTabCapture", base::FEATURE_ENABLED_BY_DEFAULT); @@ -676,7 +676,7 @@ diff --git a/chrome/browser/browser_features.cc b/chrome/browser/browser_feature diff --git a/chrome/browser/browser_features.h b/chrome/browser/browser_features.h --- a/chrome/browser/browser_features.h +++ b/chrome/browser/browser_features.h -@@ -134,6 +134,7 @@ BASE_DECLARE_FEATURE(kRemovalOfIWAsFromTabCapture); +@@ -133,6 +133,7 @@ BASE_DECLARE_FEATURE(kRemovalOfIWAsFromTabCapture); // module, e.g. // //chrome/browser//features.h // @@ -726,8 +726,8 @@ diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -1207,5 +1207,6 @@ BASE_FEATURE(kWebOtpCrossDeviceSimpleString, - "WebOtpCrossDeviceSimpleString", +@@ -1213,5 +1213,6 @@ BASE_FEATURE(kAndroidWebAppLaunchHandler, + "AndroidWebAppLaunchHandler", base::FEATURE_DISABLED_BY_DEFAULT); +#include "cromite_flags/chrome_browser_flags_android_chrome_feature_list_cc.inc" @@ -736,7 +736,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h --- a/chrome/browser/flags/android/chrome_feature_list.h +++ b/chrome/browser/flags/android/chrome_feature_list.h -@@ -241,6 +241,7 @@ constexpr base::FeatureParam kQuickDeleteAndroidSurveyTriggerId( +@@ -246,6 +246,7 @@ constexpr base::FeatureParam kQuickDeleteAndroidSurveyTriggerId( "trigger_id", /*default_value=*/""); @@ -758,7 +758,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f import java.util.List; import java.util.Map; -@@ -863,7 +867,7 @@ public abstract class ChromeFeatureList { +@@ -843,7 +847,7 @@ public abstract class ChromeFeatureList { public static final CachedFlag sWebApkMinShellApkVersion = newCachedFlag(WEB_APK_MIN_SHELL_APK_VERSION, true); @@ -767,7 +767,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f List.of( sAndroidAppIntegration, sAndroidAppIntegrationModule, -@@ -968,6 +972,13 @@ public abstract class ChromeFeatureList { +@@ -944,6 +948,13 @@ public abstract class ChromeFeatureList { sUseLibunwindstackNativeUnwinderAndroid, sWebApkMinShellApkVersion); @@ -855,8 +855,8 @@ diff --git a/chrome/browser/settings/android/java/src/org/chromium/chrome/browse +++ b/chrome/browser/settings/android/java/src/org/chromium/chrome/browser/settings/ChromeBaseSettingsFragment.java @@ -8,12 +8,19 @@ import androidx.preference.PreferenceFragmentCompat; + 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 org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncher; import org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncherFactory; @@ -874,8 +874,8 @@ diff --git a/chrome/browser/settings/android/java/src/org/chromium/chrome/browse * Base class for settings in Chrome. * @@ -28,6 +35,49 @@ public abstract class ChromeBaseSettingsFragment extends PreferenceFragmentCompa - private @Nullable Profile mProfile; - private @Nullable SettingsCustomTabLauncher mCustomTabLauncher; + private Profile mProfile; + private SettingsCustomTabLauncher mCustomTabLauncher; + private Supplier mRequireRestartDelegateSupplier; + @@ -957,7 +957,7 @@ new file mode 100644 diff --git a/chrome/browser/ui/ui_features.cc b/chrome/browser/ui/ui_features.cc --- a/chrome/browser/ui/ui_features.cc +++ b/chrome/browser/ui/ui_features.cc -@@ -371,4 +371,5 @@ BASE_FEATURE(kByDateHistoryInSidePanel, +@@ -374,4 +374,5 @@ BASE_FEATURE(kByDateHistoryInSidePanel, "ByDateHistoryInSidePanel", base::FEATURE_DISABLED_BY_DEFAULT); @@ -966,7 +966,7 @@ diff --git a/chrome/browser/ui/ui_features.cc b/chrome/browser/ui/ui_features.cc diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc --- a/chrome/common/chrome_features.cc +++ b/chrome/common/chrome_features.cc -@@ -1591,4 +1591,5 @@ BASE_FEATURE(kDisableShortcutsEnableDiy, +@@ -1640,4 +1640,5 @@ BASE_FEATURE(kDisableShortcutsEnableDiy, "DisableShortcutsEnableDiy", base::FEATURE_ENABLED_BY_DEFAULT); @@ -999,27 +999,28 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java --- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java +++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java -@@ -24,8 +24,10 @@ import org.chromium.components.omnibox.OmniboxFeatures; +@@ -27,9 +27,11 @@ import org.chromium.components.omnibox.OmniboxFeatures; import org.chromium.content_public.browser.ContentFeatureList; import org.chromium.content_public.browser.ContentFeatureMap; +import org.chromium.chrome.browser.settings.ChromeBaseSettingsFragment; + /** Fragment to keep track of all the accessibility related preferences. */ + @NullMarked -public class AccessibilitySettings extends PreferenceFragmentCompat +public class AccessibilitySettings extends ChromeBaseSettingsFragment implements EmbeddableSettingsPage, Preference.OnPreferenceChangeListener { public static final String PREF_PAGE_ZOOM_DEFAULT_ZOOM = "page_zoom_default_zoom"; public static final String PREF_PAGE_ZOOM_INCLUDE_OS_ADJUSTMENT = -@@ -64,7 +66,7 @@ public class AccessibilitySettings extends PreferenceFragmentCompat +@@ -68,7 +70,7 @@ public class AccessibilitySettings extends PreferenceFragmentCompat } @Override -- public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { -+ public void onCreatePreferencesCromite(Bundle savedInstanceState, String rootKey) { +- public void onCreatePreferences(@Nullable Bundle savedInstanceState, @Nullable String rootKey) { ++ public void onCreatePreferencesCromite(@Nullable Bundle savedInstanceState, @Nullable String rootKey) { SettingsUtils.addPreferencesFromResource(this, R.xml.accessibility_preferences); - mPageZoomDefaultZoomPref = (PageZoomPreference) findPreference(PREF_PAGE_ZOOM_DEFAULT_ZOOM); + mPageZoomDefaultZoomPref = findPreference(PREF_PAGE_ZOOM_DEFAULT_ZOOM); diff --git a/components/browser_ui/settings/android/java/res/values/attrs.xml b/components/browser_ui/settings/android/java/res/values/attrs.xml --- a/components/browser_ui/settings/android/java/res/values/attrs.xml +++ b/components/browser_ui/settings/android/java/res/values/attrs.xml @@ -1037,7 +1038,7 @@ diff --git a/components/browser_ui/settings/android/java/res/values/attrs.xml b/ diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeSwitchPreference.java b/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeSwitchPreference.java --- a/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeSwitchPreference.java +++ b/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeSwitchPreference.java -@@ -15,6 +15,8 @@ import android.view.accessibility.AccessibilityEvent; +@@ -13,6 +13,8 @@ import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityNodeInfo; import android.widget.TextView; @@ -1046,7 +1047,7 @@ diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium import androidx.annotation.ColorInt; import androidx.annotation.VisibleForTesting; import androidx.preference.PreferenceViewHolder; -@@ -40,6 +42,11 @@ public class ChromeSwitchPreference extends SwitchPreferenceCompat { +@@ -38,6 +40,11 @@ public class ChromeSwitchPreference extends SwitchPreferenceCompat { /** Indicates if the preference uses a custom layout. */ private final boolean mHasCustomLayout; @@ -1058,7 +1059,7 @@ diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium // TOOD(crbug.com/1451550): This is an interim solution. In the long-term, we should migrate // away from a switch with dynamically changing summaries onto a radio group. /** -@@ -59,6 +66,18 @@ public class ChromeSwitchPreference extends SwitchPreferenceCompat { +@@ -57,6 +64,18 @@ public class ChromeSwitchPreference extends SwitchPreferenceCompat { mHasCustomLayout = ManagedPreferencesUtils.isCustomLayoutApplied(context, attrs); mUseSummaryAsTitle = true; @@ -1152,7 +1153,7 @@ diff --git a/components/offline_pages/core/offline_page_feature.h b/components/o diff --git a/components/password_manager/core/browser/features/password_features.cc b/components/password_manager/core/browser/features/password_features.cc --- a/components/password_manager/core/browser/features/password_features.cc +++ b/components/password_manager/core/browser/features/password_features.cc -@@ -187,4 +187,5 @@ BASE_FEATURE(kImprovedPasswordChangeService, +@@ -183,4 +183,5 @@ BASE_FEATURE(kImprovedPasswordChangeService, "ImprovedPasswordChangeService", base::FEATURE_DISABLED_BY_DEFAULT); @@ -1161,7 +1162,7 @@ diff --git a/components/password_manager/core/browser/features/password_features diff --git a/components/permissions/features.cc b/components/permissions/features.cc --- a/components/permissions/features.cc +++ b/components/permissions/features.cc -@@ -137,6 +137,8 @@ BASE_FEATURE(kOsAdditionalSecurityPermissionKillSwitch, +@@ -133,6 +133,8 @@ BASE_FEATURE(kOsAdditionalSecurityPermissionKillSwitch, "OsAdditionalSecurityPermissionKillSwitch", base::FEATURE_DISABLED_BY_DEFAULT); #endif @@ -1237,7 +1238,7 @@ diff --git a/components/webui/flags/flags_state.cc b/components/webui/flags/flag CHECK(entry_it != name_to_switch_map.end(), base::NotFatalUntil::M130); const SwitchEntry& entry = entry_it->second; -@@ -705,6 +720,27 @@ void FlagsState::GetFlagFeatureEntries( +@@ -710,6 +725,27 @@ void FlagsState::GetFlagFeatureEntries( data.Set("links", std::move(links)); } @@ -1265,7 +1266,7 @@ diff --git a/components/webui/flags/flags_state.cc b/components/webui/flags/flag switch (entry.type) { case FeatureEntry::SINGLE_VALUE: case FeatureEntry::SINGLE_DISABLE_VALUE: -@@ -832,6 +868,16 @@ void FlagsState::AddSwitchesToCommandLine( +@@ -837,6 +873,16 @@ void FlagsState::AddSwitchesToCommandLine( for (const std::string& entry_name : enabled_entries) { const auto& entry_it = name_to_switch_map.find(entry_name); if (entry_it == name_to_switch_map.end()) { @@ -1282,7 +1283,7 @@ diff --git a/components/webui/flags/flags_state.cc b/components/webui/flags/flag NOTREACHED(); } -@@ -1088,6 +1134,14 @@ const FeatureEntry* FlagsState::FindFeatureEntryByName( +@@ -1093,6 +1139,14 @@ const FeatureEntry* FlagsState::FindFeatureEntryByName( bool FlagsState::IsSupportedFeature(const FlagsStorage* storage, const std::string& name, int platform_mask) const { @@ -1297,7 +1298,7 @@ diff --git a/components/webui/flags/flags_state.cc b/components/webui/flags/flag for (const auto& entry : feature_entries_) { DCHECK(entry.IsValid()); if (!(entry.supported_platforms & platform_mask)) { -@@ -1122,6 +1176,11 @@ void FlagsState::SetFlags(FlagsStorage* flags_storage, +@@ -1129,6 +1183,11 @@ void FlagsState::SetFlags( std::string feature_internal_name = flag.substr(0, at_index); const flags_ui::FeatureEntry* entry = FindFeatureEntryByName(feature_internal_name); @@ -1401,16 +1402,16 @@ diff --git a/components/webui/flags/resources/app.ts b/components/webui/flags/re // + "Cromite", ]; - protected selectedTabIndex_: number = 0; + protected accessor selectedTabIndex_: number = 0; @@ -150,9 +151,12 @@ export class FlagsAppElement extends CrLitElement { - protected defaultFeatures: Feature[] = []; - protected nonDefaultFeatures: Feature[] = []; + protected accessor defaultFeatures: Feature[] = []; + protected accessor nonDefaultFeatures: Feature[] = []; + protected defaultCromiteFeatures: Feature[] = []; + protected nonDefaultCromiteFeatures: Feature[] = []; - protected searching: boolean = false; - protected needsRestart: boolean = false; + protected accessor searching: boolean = false; + protected accessor needsRestart: boolean = false; + private onlyCromiteFlags: boolean = false; private announceStatusDelayMs: number = 100; @@ -1594,7 +1595,7 @@ diff --git a/components/webui/version/version_handler_helper.cc b/components/web diff --git a/content/common/features.cc b/content/common/features.cc --- a/content/common/features.cc +++ b/content/common/features.cc -@@ -509,4 +509,5 @@ BASE_FEATURE(kLimitCrossOriginNonActivatedPaintHolding, +@@ -515,4 +515,5 @@ BASE_FEATURE(kLimitCrossOriginNonActivatedPaintHolding, // Please keep features in alphabetical order. @@ -1603,7 +1604,7 @@ diff --git a/content/common/features.cc b/content/common/features.cc diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc --- a/content/public/common/content_features.cc +++ b/content/public/common/content_features.cc -@@ -1485,4 +1485,5 @@ bool IsVideoCaptureServiceEnabledForBrowserProcess() { +@@ -1486,4 +1486,5 @@ bool IsVideoCaptureServiceEnabledForBrowserProcess() { VideoCaptureServiceConfiguration::kEnabledForBrowserProcess; } @@ -1612,7 +1613,7 @@ diff --git a/content/public/common/content_features.cc b/content/public/common/c diff --git a/content/public/common/content_features.h b/content/public/common/content_features.h --- a/content/public/common/content_features.h +++ b/content/public/common/content_features.h -@@ -350,6 +350,7 @@ CONTENT_EXPORT extern const base::FeatureParam +@@ -351,6 +351,7 @@ CONTENT_EXPORT extern const base::FeatureParam CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForOutOfProcess(); CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForBrowserProcess(); @@ -1958,7 +1959,7 @@ new file mode 100755 diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc --- a/media/base/media_switches.cc +++ b/media/base/media_switches.cc -@@ -1807,5 +1807,5 @@ uint32_t GetPassthroughAudioFormats() { +@@ -1827,5 +1827,5 @@ uint32_t GetPassthroughAudioFormats() { return 0; #endif // BUILDFLAG(ENABLE_PASSTHROUGH_AUDIO_CODECS) } @@ -1968,7 +1969,7 @@ diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc diff --git a/media/base/media_switches.h b/media/base/media_switches.h --- a/media/base/media_switches.h +++ b/media/base/media_switches.h -@@ -571,5 +571,5 @@ MEDIA_EXPORT OOPVDMode GetOutOfProcessVideoDecodingMode(); +@@ -572,5 +572,5 @@ MEDIA_EXPORT bool IsOutOfProcessVideoDecodingEnabled(); MEDIA_EXPORT uint32_t GetPassthroughAudioFormats(); } // namespace media @@ -1978,18 +1979,18 @@ diff --git a/media/base/media_switches.h b/media/base/media_switches.h diff --git a/net/base/features.cc b/net/base/features.cc --- a/net/base/features.cc +++ b/net/base/features.cc -@@ -709,4 +709,5 @@ BASE_FEATURE(kSelfSignedLocalNetworkInterstitial, - "SelfSignedLocalNetworkInterstitial", - base::FEATURE_DISABLED_BY_DEFAULT); +@@ -708,4 +708,5 @@ BASE_FEATURE(kSelfSignedLocalNetworkInterstitial, + BASE_FEATURE(kVerifyQWACs, "VerifyQWACs", base::FEATURE_DISABLED_BY_DEFAULT); + #endif // BUILDFLAG(CHROME_ROOT_STORE_SUPPORTED) +#include "cromite_flags/net_base_features_cc.inc" } // namespace net::features diff --git a/net/base/features.h b/net/base/features.h --- a/net/base/features.h +++ b/net/base/features.h -@@ -721,6 +721,7 @@ NET_EXPORT BASE_DECLARE_FEATURE(kUseCertTransparencyAwareApiForOsCertVerify); - // URLs. - NET_EXPORT BASE_DECLARE_FEATURE(kSelfSignedLocalNetworkInterstitial); +@@ -723,6 +723,7 @@ NET_EXPORT BASE_DECLARE_FEATURE(kSelfSignedLocalNetworkInterstitial); + NET_EXPORT BASE_DECLARE_FEATURE(kVerifyQWACs); + #endif +#include "cromite_flags/net_base_features_h.inc" } // namespace net::features @@ -1998,18 +1999,18 @@ diff --git a/net/base/features.h b/net/base/features.h diff --git a/services/network/public/cpp/features.cc b/services/network/public/cpp/features.cc --- a/services/network/public/cpp/features.cc +++ b/services/network/public/cpp/features.cc -@@ -544,4 +544,5 @@ BASE_FEATURE_PARAM(int, - "max_ops_before_maintenance", - 1000); +@@ -588,4 +588,5 @@ BASE_FEATURE(kProtectedAudienceCorsSafelistKVv2Signals, + "ProtectedAudienceCorsSafelistKVv2Signals", + base::FEATURE_ENABLED_BY_DEFAULT); +#include "cromite_flags/services_network_public_cpp_features_cc.inc" } // namespace network::features diff --git a/services/network/public/cpp/features.h b/services/network/public/cpp/features.h --- a/services/network/public/cpp/features.h +++ b/services/network/public/cpp/features.h -@@ -261,6 +261,7 @@ BASE_DECLARE_FEATURE_PARAM(int, kInterestGroupStorageMaxNegativeGroupsPerOwner); - COMPONENT_EXPORT(NETWORK_CPP) - BASE_DECLARE_FEATURE_PARAM(int, kInterestGroupStorageMaxOpsBeforeMaintenance); +@@ -311,6 +311,7 @@ BASE_DECLARE_FEATURE(kPopulatePermissionsPolicyOnRequest); + COMPONENT_EXPORT(NETWORK_CPP_FLAGS_AND_SWITCHES) + BASE_DECLARE_FEATURE(kProtectedAudienceCorsSafelistKVv2Signals); +#include "cromite_flags/services_network_public_cpp_features_h.inc" } // namespace network::features @@ -2018,7 +2019,7 @@ diff --git a/services/network/public/cpp/features.h b/services/network/public/cp diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc --- a/third_party/blink/common/features.cc +++ b/third_party/blink/common/features.cc -@@ -2744,4 +2744,5 @@ bool IsLinkPreviewTriggerTypeEnabled(LinkPreviewTriggerType type) { +@@ -2897,4 +2897,5 @@ bool IsLinkPreviewTriggerTypeEnabled(LinkPreviewTriggerType type) { // // DO NOT ADD NEW FEATURES HERE. @@ -2027,7 +2028,7 @@ diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/fea diff --git a/third_party/blink/public/common/features.h b/third_party/blink/public/common/features.h --- a/third_party/blink/public/common/features.h +++ b/third_party/blink/public/common/features.h -@@ -1793,6 +1793,7 @@ BLINK_COMMON_EXPORT bool IsUpdateComplexSafaAreaConstraintsEnabled(); +@@ -1897,6 +1897,7 @@ BLINK_COMMON_EXPORT bool IsUpdateComplexSafaAreaConstraintsEnabled(); // // DO NOT ADD NEW FEATURES HERE. @@ -2038,8 +2039,8 @@ diff --git a/third_party/blink/public/common/features.h b/third_party/blink/publ diff --git a/ui/base/ui_base_features.cc b/ui/base/ui_base_features.cc --- a/ui/base/ui_base_features.cc +++ b/ui/base/ui_base_features.cc -@@ -456,4 +456,5 @@ BASE_FEATURE(kAsyncFullscreenWindowState, - "AsyncFullscreenWindowState", +@@ -466,4 +466,5 @@ BASE_FEATURE(kClipboardChangeEvent, + "ClipboardChangeEvent", base::FEATURE_DISABLED_BY_DEFAULT); +#include "cromite_flags/ui_base_features_cc.inc" @@ -2047,9 +2048,9 @@ diff --git a/ui/base/ui_base_features.cc b/ui/base/ui_base_features.cc diff --git a/ui/base/ui_base_features.h b/ui/base/ui_base_features.h --- a/ui/base/ui_base_features.h +++ b/ui/base/ui_base_features.h -@@ -230,6 +230,7 @@ BASE_DECLARE_FEATURE(kWriteBookmarkWithoutTitle); +@@ -237,6 +237,7 @@ BASE_DECLARE_FEATURE(kAsyncFullscreenWindowState); COMPONENT_EXPORT(UI_BASE_FEATURES) - BASE_DECLARE_FEATURE(kAsyncFullscreenWindowState); + BASE_DECLARE_FEATURE(kClipboardChangeEvent); +#include "cromite_flags/ui_base_features_h.inc" } // namespace features diff --git a/build/patches/Add-custom-tab-intents-privacy-option.patch b/build/patches/Add-custom-tab-intents-privacy-option.patch index f531b22f..46184d51 100644 --- a/build/patches/Add-custom-tab-intents-privacy-option.patch +++ b/build/patches/Add-custom-tab-intents-privacy-option.patch @@ -108,7 +108,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 -@@ -1190,7 +1190,9 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid +@@ -1204,7 +1204,9 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid public @CustomTabProfileType int getCustomTabMode() { return AlwaysIncognitoLinkInterceptor.isAlwaysIncognito() ? CustomTabProfileType.INCOGNITO @@ -122,7 +122,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 -@@ -981,6 +981,7 @@ public class CustomTabsConnection { +@@ -985,6 +985,7 @@ public class CustomTabsConnection { PostTask.postTask( TaskTraits.UI_DEFAULT, () -> { @@ -164,7 +164,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 +@@ -326,6 +336,10 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD @Override public @CustomTabProfileType int getCustomTabMode() { @@ -178,8 +178,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Inco diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -59,6 +59,15 @@ import org.chromium.device.DeviceFeatureList; - import org.chromium.device.DeviceFeatureMap; +@@ -57,6 +57,15 @@ import org.chromium.components.signin.identitymanager.ConsentLevel; + import org.chromium.components.user_prefs.UserPrefs; import org.chromium.ui.text.SpanApplier; +import android.app.role.RoleManager; @@ -194,7 +194,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import androidx.annotation.Nullable; import androidx.preference.PreferenceCategory; import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager; -@@ -107,6 +116,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -104,6 +113,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private IncognitoLockSettings mIncognitoLockSettings; private final ObservableSupplierImpl mPageTitle = new ObservableSupplierImpl<>(); @@ -204,7 +204,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting @Override public void onCreatePreferencesCromite(Bundle savedInstanceState, String rootKey) { mPageTitle.set(getString(R.string.prefs_privacy_security)); -@@ -336,6 +348,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -329,6 +341,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment new SpanApplier.SpanInfo("", "", servicesLink)); } @@ -214,7 +214,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting @Override public boolean onPreferenceChange(Preference preference, Object newValue) { String key = preference.getKey(); -@@ -356,6 +371,31 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -349,6 +364,31 @@ public class PrivacySettings extends ChromeBaseSettingsFragment } else if (PREF_SEARCH_SUGGESTIONS.equals(key)) { UserPrefs.get(getProfile()) .setBoolean(Pref.SEARCH_SUGGEST_ENABLED, (boolean) newValue); @@ -246,7 +246,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting } return true; } -@@ -388,6 +428,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -381,6 +421,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment UserPrefs.get(getProfile()).getBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED)); } @@ -266,7 +266,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting 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 -@@ -767,6 +767,8 @@ public abstract class ChromeFeatureList { +@@ -768,6 +768,8 @@ public abstract class ChromeFeatureList { public static final CachedFlag sMagicStackAndroid = newCachedFlag(MAGIC_STACK_ANDROID, true); public static final CachedFlag sMostVisitedTilesCustomization = newCachedFlag(MOST_VISITED_TILES_CUSTOMIZATION, false); @@ -275,7 +275,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 = -@@ -933,6 +935,7 @@ public abstract class ChromeFeatureList { +@@ -915,6 +917,7 @@ public abstract class ChromeFeatureList { sNotificationTrampoline, sMagicStackAndroid, sMostVisitedTilesCustomization, @@ -286,7 +286,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java --- a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java +++ b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java -@@ -87,7 +87,11 @@ public final class TabAssociatedApp extends TabWebContentsUserData implements Im +@@ -88,7 +88,11 @@ public final class TabAssociatedApp extends TabWebContentsUserData implements Im public static boolean isOpenedFromExternalApp(Tab tab) { TabAssociatedApp app = get(tab); if (app == null) return false; diff --git a/build/patches/Add-exit-menu-item.patch b/build/patches/Add-exit-menu-item.patch index 0bcee128..17be6f7e 100644 --- a/build/patches/Add-exit-menu-item.patch +++ b/build/patches/Add-exit-menu-item.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/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml --- a/chrome/android/java/res/menu/main_menu.xml +++ b/chrome/android/java/res/menu/main_menu.xml -@@ -175,6 +175,9 @@ found in the LICENSE file. +@@ -178,6 +178,9 @@ found in the LICENSE file. @@ -26,7 +26,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re -@@ -204,6 +207,9 @@ found in the LICENSE file. +@@ -210,6 +213,9 @@ found in the LICENSE file. @@ -39,7 +39,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re 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 -@@ -297,6 +297,8 @@ import java.util.Set; +@@ -309,6 +309,8 @@ import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; import java.util.function.DoubleConsumer; @@ -48,7 +48,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. -@@ -3070,6 +3072,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements MismatchedIn +@@ -3200,6 +3202,8 @@ public class ChromeTabbedActivity extends ChromeActivity { .closeTabs( TabClosureParams.closeTab(currentTab).build(), /* allowDialog= */ true); RecordUserAction.record("MobileTabClosed"); @@ -68,7 +68,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; -@@ -2375,6 +2376,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -2399,6 +2400,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity return true; } @@ -102,7 +102,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLife 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 -@@ -4382,6 +4382,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4392,6 +4392,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 4dd75b57..837ff187 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" -@@ -536,6 +537,15 @@ AutocompleteController::AutocompleteController( +@@ -543,6 +544,15 @@ AutocompleteController::AutocompleteController( provider_client_->GetOmniboxTriggeredFeatureService()), steady_state_omnibox_position_( metrics::OmniboxEventProto::UNKNOWN_POSITION) { diff --git a/build/patches/Add-flag-to-disable-IPv6-probes.patch b/build/patches/Add-flag-to-disable-IPv6-probes.patch index 433eccf7..d682d339 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 -@@ -1119,6 +1119,7 @@ component("net") { +@@ -1127,6 +1127,7 @@ component("net") { ":net_deps", "//components/miracle_parameter/common", "//components/network_time/time_tracker", @@ -56,7 +56,7 @@ diff --git a/net/BUILD.gn b/net/BUILD.gn diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc --- a/net/dns/host_resolver_manager.cc +++ b/net/dns/host_resolver_manager.cc -@@ -114,6 +114,7 @@ +@@ -115,6 +115,7 @@ #include "net/log/net_log_event_type.h" #include "net/log/net_log_source.h" #include "net/log/net_log_source_type.h" @@ -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" -@@ -1477,6 +1478,13 @@ int HostResolverManager::StartIPv6ReachabilityCheck( +@@ -1487,6 +1488,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 dbe32a8a..ed334158 100644 --- a/build/patches/Add-flag-to-disable-external-intent-requests.patch +++ b/build/patches/Add-flag-to-disable-external-intent-requests.patch @@ -144,13 +144,13 @@ diff --git a/components/external_intents/android/external_intents_features.cc b/ @@ -27,7 +27,6 @@ namespace { const base::Feature* const kFeaturesExposedToJava[] = { &kExternalNavigationDebugLogs, &kBlockFrameRenavigations, - &kBlockIntentsToSelf}; + &kBlockIntentsToSelf, &kLowerCaseIntentSchemes}; - } // namespace // Alphabetical: -@@ -44,7 +43,13 @@ BASE_FEATURE(kBlockIntentsToSelf, - "BlockIntentsToSelf", +@@ -49,7 +48,13 @@ BASE_FEATURE(kLowerCaseIntentSchemes, + "LowerCaseIntentSchemes", base::FEATURE_ENABLED_BY_DEFAULT); +CROMITE_FEATURE(kIntentBlockExternalFormRedirectsNoGesture, @@ -193,7 +193,7 @@ diff --git a/components/external_intents/android/java/src/org/chromium/component diff --git a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java --- a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java +++ b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java -@@ -1529,6 +1529,12 @@ public class ExternalNavigationHandler { +@@ -1537,6 +1537,12 @@ public class ExternalNavigationHandler { || ignoreBackForwardNav(params); } @@ -206,7 +206,7 @@ diff --git a/components/external_intents/android/java/src/org/chromium/component private OverrideUrlLoadingResult shouldOverrideUrlLoadingInternal( ExternalNavigationParams params, Intent targetIntent, -@@ -1585,6 +1591,21 @@ public class ExternalNavigationHandler { +@@ -1593,6 +1599,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 35567bca..e0d2a61b 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 -@@ -869,6 +869,10 @@ +@@ -890,6 +890,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 2c8780c1..20cc467e 100644 --- a/build/patches/Add-kill-switch-for-unsupported-clangd-flags.patch +++ b/build/patches/Add-kill-switch-for-unsupported-clangd-flags.patch @@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn -@@ -1978,7 +1978,6 @@ config("default_warnings") { +@@ -1997,7 +1997,6 @@ config("default_warnings") { # TODO(crbug.com/376641662): Fix and re-enable. "-Wno-nontrivial-memcall", ] @@ -22,10 +22,10 @@ diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn cflags_cc += [ # TODO(crbug.com/328490295): Fix and re-enable for C flags. "-Wenum-compare-conditional", -@@ -1993,6 +1992,16 @@ config("default_warnings") { - # TODO(crbug.com/344680447): Fix and re-enable. - cflags_cc += [ "-Wno-missing-template-arg-list-after-template-kw" ] - } +@@ -2023,6 +2022,16 @@ config("default_warnings") { + # other issues if the versions are incompatible. + cflags += [ "-Wno-version-check" ] + ldflags += [ "-Wno-version-check" ] + if (skip_clangd_unsupported_options) { + cflags -= [ + "-Wno-thread-safety-reference-return", @@ -42,7 +42,7 @@ diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn diff --git a/build_overrides/build.gni b/build_overrides/build.gni --- a/build_overrides/build.gni +++ b/build_overrides/build.gni -@@ -54,6 +54,9 @@ declare_args() { +@@ -55,6 +55,9 @@ declare_args() { # to lack of toolchain support. gtest_enable_absl_printers = !is_nacl diff --git a/build/patches/Add-menu-item-to-view-source.patch b/build/patches/Add-menu-item-to-view-source.patch index d7424b04..2ea47a95 100644 --- a/build/patches/Add-menu-item-to-view-source.patch +++ b/build/patches/Add-menu-item-to-view-source.patch @@ -29,7 +29,7 @@ diff --git a/chrome/android/java/res/menu/custom_tabs_menu.xml b/chrome/android/ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml --- a/chrome/android/java/res/menu/main_menu.xml +++ b/chrome/android/java/res/menu/main_menu.xml -@@ -125,6 +125,9 @@ found in the LICENSE file. +@@ -128,6 +128,9 @@ found in the LICENSE file. @@ -42,7 +42,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re 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 -@@ -3135,6 +3135,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements MismatchedIn +@@ -3273,6 +3273,8 @@ public class ChromeTabbedActivity extends ChromeActivity { NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_DOWNLOADS_MANAGER); } RecordUserAction.record("MobileMenuDownloadManager"); @@ -54,7 +54,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 -@@ -2531,6 +2531,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -2556,6 +2556,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity return doOpenWebApk(currentTab); } @@ -69,7 +69,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 -@@ -587,6 +587,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -595,6 +595,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate isNativePage, isFileScheme, isContentScheme, isIncognito, url)); updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */, isNativePage); @@ -77,7 +77,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App updateAutoDarkMenuItem(menu, currentTab, isNativePage); -@@ -1328,6 +1329,23 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -1336,6 +1337,23 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate findInPageMenuRow.setVisible(itemVisible); } @@ -115,7 +115,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust 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 -@@ -315,6 +315,10 @@ CHAR_LIMIT guidelines: +@@ -318,6 +318,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 f84348e4..4036092b 100644 --- a/build/patches/Add-option-to-disable-snapshots.patch +++ b/build/patches/Add-option-to-disable-snapshots.patch @@ -15,7 +15,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java -@@ -404,7 +404,12 @@ class TabGridViewBinder { +@@ -403,7 +403,12 @@ class TabGridViewBinder { if (result != null) { TabUtils.setDrawableAndUpdateImageMatrix(thumbnail, result, thumbnailSize); } else { @@ -29,7 +29,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser } }; if (sThumbnailFetcherForTesting != null) { -@@ -445,6 +450,7 @@ class TabGridViewBinder { +@@ -444,6 +449,7 @@ class TabGridViewBinder { */ private static void setFavicon( ImageView faviconView, PropertyModel model, TabListFaviconProvider.TabFavicon favicon) { @@ -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 -@@ -141,6 +141,7 @@ import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; - import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; +@@ -143,6 +143,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; -@@ -613,7 +614,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -625,7 +626,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity new TabContentManager( this, mBrowserControlsManagerSupplier.get(), @@ -113,7 +113,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import org.chromium.base.supplier.ObservableSupplier; import org.chromium.base.supplier.ObservableSupplierImpl; import org.chromium.base.ContextUtils; -@@ -78,12 +79,26 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; +@@ -76,12 +77,26 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate; @@ -141,7 +141,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting private static final String PREF_CAN_MAKE_PAYMENT = "can_make_payment"; private static final String PREF_PRELOAD_PAGES = "preload_pages"; private static final String PREF_HTTPS_FIRST_MODE = "https_first_mode"; -@@ -170,6 +185,21 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -167,6 +182,21 @@ public class PrivacySettings extends ChromeBaseSettingsFragment } } @@ -163,7 +163,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting Preference privacyGuidePreference = findPreference(PREF_PRIVACY_GUIDE); // Record the launch of PG from the S&P link-row entry point privacyGuidePreference.setOnPreferenceClickListener( -@@ -392,6 +422,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -385,6 +415,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment public static final String PREF_ALLOW_CUSTOM_TAB_INTENTS = "allow_custom_tab_intents"; public static final String PREF_OPEN_EXTERNAL_LINKS_INCOGNITO = "open_external_links_incognito"; @@ -171,7 +171,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting @Override public boolean onPreferenceChange(Preference preference, Object newValue) { -@@ -438,6 +469,13 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -431,6 +462,13 @@ public class PrivacySettings extends ChromeBaseSettingsFragment SharedPreferences.Editor sharedPreferencesEditor = ContextUtils.getAppSharedPreferences().edit(); sharedPreferencesEditor.putBoolean(PREF_OPEN_EXTERNAL_LINKS_INCOGNITO, (boolean)newValue); sharedPreferencesEditor.apply(); @@ -185,7 +185,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting } return true; } -@@ -504,6 +542,10 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -497,6 +535,10 @@ public class PrivacySettings extends ChromeBaseSettingsFragment : R.string.text_off); } @@ -199,7 +199,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 -@@ -6016,6 +6016,14 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -6088,6 +6088,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 850598c6..22974798 100644 --- a/build/patches/Add-option-to-force-tablet-UI.patch +++ b/build/patches/Add-option-to-force-tablet-UI.patch @@ -99,15 +99,15 @@ 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 -@@ -58,6 +58,7 @@ import org.chromium.chrome.browser.metrics.UmaSessionStats; - import org.chromium.chrome.browser.night_mode.GlobalNightModeStateProviderHolder; +@@ -59,6 +59,7 @@ import org.chromium.chrome.browser.night_mode.GlobalNightModeStateProviderHolder import org.chromium.chrome.browser.night_mode.NightModeStateProvider; import org.chromium.chrome.browser.night_mode.NightModeUtils; + import org.chromium.chrome.browser.theme.ThemeModuleUtils; +import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeUtils; import org.chromium.components.browser_ui.edge_to_edge.EdgeToEdgeManager; import org.chromium.components.browser_ui.edge_to_edge.EdgeToEdgeStateProvider; -@@ -131,6 +132,8 @@ public class ChromeBaseAppCompatActivity extends AppCompatActivity +@@ -134,6 +135,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 -@@ -759,7 +759,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -774,7 +774,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,17 +184,17 @@ 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 -@@ -115,6 +115,7 @@ import org.chromium.components.tab_group_sync.TabGroupSyncService; +@@ -119,6 +119,7 @@ import org.chromium.components.tab_group_sync.SavedTabGroup; + 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.MotionEventUtils; +import org.chromium.ui.base.DeviceFormFactor; import org.chromium.ui.base.LocalizationUtils; import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.modaldialog.ModalDialogManager; -@@ -4113,8 +4114,13 @@ public class StripLayoutHelper - mTabMenu.setAnchorView(tabView); - // 3. Set the vertical offset to align the tab menu with bottom of the tab strip +@@ -4211,8 +4212,13 @@ public class StripLayoutHelper + mCloseButtonMenu.setAnchorView(tabView); + // 3. Set the vertical offset to align the close button menu with bottom of the tab strip int tabHeight = mManagerHost.getHeight(); - int verticalOffset = - -(tabHeight - (int) mContext.getResources().getDimension(R.dimen.tab_strip_height)); @@ -205,13 +205,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over + (int) mContext.getResources().getDimension(R.dimen.tab_strip_height_tabletui); + } + int verticalOffset = -(tabHeight - tab_strip_height); - mTabMenu.setVerticalOffset(verticalOffset); + mCloseButtonMenu.setVerticalOffset(verticalOffset); - // 4. Set the horizontal offset to align the tab menu with the right side of the tab + // 4. Set the horizontal offset to align the close button menu with the right side of the diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java -@@ -93,6 +93,7 @@ import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateMa +@@ -96,6 +96,7 @@ import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateMa import org.chromium.components.browser_ui.styles.SemanticColorUtils; import org.chromium.components.browser_ui.widget.scrim.ScrimProperties; import org.chromium.content_public.browser.LoadUrlParams; @@ -219,7 +219,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over import org.chromium.ui.base.LocalizationUtils; import org.chromium.ui.base.PageTransition; import org.chromium.ui.base.WindowAndroid; -@@ -450,7 +451,10 @@ public class StripLayoutHelperManager +@@ -460,7 +461,10 @@ public class StripLayoutHelperManager mIsLayoutOptimizationsEnabled = ToolbarFeatures.isTabStripWindowLayoutOptimizationEnabled(true); @@ -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 -@@ -664,7 +664,9 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -693,7 +693,9 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { @Override public int getControlContainerHeightResource() { @@ -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 -@@ -286,6 +286,7 @@ public final class ChromePreferenceKeys { +@@ -307,6 +307,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"; @@ -370,10 +370,10 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro diff --git a/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/chrome/browser/ui/desktop_windowing/AppHeaderCoordinator.java b/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/chrome/browser/ui/desktop_windowing/AppHeaderCoordinator.java --- a/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/chrome/browser/ui/desktop_windowing/AppHeaderCoordinator.java +++ b/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/chrome/browser/ui/desktop_windowing/AppHeaderCoordinator.java -@@ -38,6 +38,7 @@ import org.chromium.chrome.browser.ui.desktop_windowing.AppHeaderUtils.Windowing - import org.chromium.components.browser_ui.desktop_windowing.AppHeaderState; +@@ -39,6 +39,7 @@ import org.chromium.components.browser_ui.desktop_windowing.AppHeaderState; import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateManager; import org.chromium.components.browser_ui.edge_to_edge.EdgeToEdgeStateProvider; + import org.chromium.ui.CaptionBarInsetsRectProvider; +import org.chromium.ui.base.DeviceFormFactor; import org.chromium.ui.InsetObserver; import org.chromium.ui.InsetObserver.WindowInsetsConsumer; @@ -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 -@@ -790,7 +790,7 @@ public class LocationBarCoordinator +@@ -791,7 +791,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 -@@ -1671,6 +1671,13 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1674,6 +1674,13 @@ Your Google account may have other forms of browsing history like searches and a Hide your IP address @@ -548,15 +548,15 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java -@@ -63,6 +63,7 @@ import org.chromium.chrome.browser.util.BrowserUiUtils.ModuleTypeOnStartAndNtp; +@@ -64,6 +64,7 @@ import org.chromium.chrome.browser.util.BrowserUiUtils.ModuleTypeOnStartAndNtp; import org.chromium.components.feature_engagement.Tracker; - import org.chromium.ui.MotionEventUtils; import org.chromium.ui.base.ViewUtils; + import org.chromium.ui.util.MotionEventUtils; +import org.chromium.ui.base.DeviceFormFactor; import org.chromium.ui.util.TokenHolder; import org.chromium.url.GURL; -@@ -583,7 +584,9 @@ public abstract class ToolbarLayout extends FrameLayout +@@ -578,7 +579,9 @@ public abstract class ToolbarLayout extends FrameLayout * not have a tab strip. */ protected int getTabStripHeightFromResource() { @@ -627,15 +627,15 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java --- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java +++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java -@@ -25,6 +25,7 @@ import org.chromium.content_public.browser.ContentFeatureList; +@@ -28,6 +28,7 @@ import org.chromium.content_public.browser.ContentFeatureList; import org.chromium.content_public.browser.ContentFeatureMap; import org.chromium.chrome.browser.settings.ChromeBaseSettingsFragment; +import org.chromium.components.browser_ui.accessibility.AccessibilitySettingsDelegate.BooleanPreferenceDelegate; /** Fragment to keep track of all the accessibility related preferences. */ - public class AccessibilitySettings extends ChromeBaseSettingsFragment -@@ -39,6 +40,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment + @NullMarked +@@ -43,6 +44,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment public static final String PREF_ZOOM_INFO = "zoom_info"; public static final String PREF_IMAGE_DESCRIPTIONS = "image_descriptions"; @@ -645,7 +645,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c private PageZoomPreference mPageZoomDefaultZoomPref; private ChromeSwitchPreference mPageZoomIncludeOSAdjustment; private ChromeSwitchPreference mPageZoomAlwaysShowPref; -@@ -105,6 +109,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -107,6 +111,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment mDelegate.getReaderAccessibilityDelegate().getValue()); readerForAccessibilityPref.setOnPreferenceChangeListener(this); @@ -658,7 +658,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c Preference captions = findPreference(PREF_CAPTIONS); captions.setOnPreferenceClickListener( preference -> { -@@ -163,6 +173,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -166,6 +176,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); @@ -666,12 +666,12 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c + mForceTabletUIDelegate.setValue((Boolean) newValue); + mDelegate.requestRestart(getActivity()); } else if (PREF_READER_FOR_ACCESSIBILITY.equals(preference.getKey())) { - mDelegate.getReaderAccessibilityDelegate().setValue((Boolean) newValue); - } else if (PREF_PAGE_ZOOM_DEFAULT_ZOOM.equals(preference.getKey())) { + boolean readerModeEnabled = (Boolean) newValue; + mDelegate.getReaderAccessibilityDelegate().setValue(readerModeEnabled); diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java --- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java +++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java -@@ -39,6 +39,8 @@ public interface AccessibilitySettingsDelegate { +@@ -41,6 +41,8 @@ public interface AccessibilitySettingsDelegate { */ BrowserContextHandle getBrowserContextHandle(); 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 24e3a967..d388f679 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 -@@ -45,6 +45,7 @@ import org.chromium.base.Callback; +@@ -46,6 +46,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; -@@ -1695,8 +1696,10 @@ public class ChromeTabbedActivity extends ChromeActivity implements MismatchedIn +@@ -1775,8 +1776,10 @@ public class ChromeTabbedActivity extends ChromeActivity { boolean hadCipherData = CipherLazyHolder.sCipherInstance.restoreFromBundle(getSavedInstanceState()); @@ -68,7 +68,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import org.chromium.chrome.R; import org.chromium.chrome.browser.enterprise.util.ManagedBrowserUtils; import org.chromium.chrome.browser.flags.ChromeFeatureList; -@@ -92,6 +95,8 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -89,6 +92,8 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private final SharedPreferencesManager mSharedPreferencesManager = ChromeSharedPreferences.getInstance(); @@ -77,7 +77,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting private ManagedPreferenceDelegate mManagedPreferenceDelegate; @VisibleForTesting static final String PREF_FP_PROTECTION = "fp_protection"; @VisibleForTesting static final String PREF_IP_PROTECTION = "ip_protection"; -@@ -333,7 +338,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -326,7 +331,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment @Override public boolean onPreferenceChange(Preference preference, Object newValue) { String key = preference.getKey(); @@ -90,7 +90,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting UserPrefs.get(getProfile()) .setBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue); } else if (PREF_HTTPS_FIRST_MODE_LEGACY.equals(key)) { -@@ -409,6 +418,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -402,6 +411,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment getContext(), getProfile())); } @@ -105,7 +105,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 -@@ -5541,6 +5541,12 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -5616,6 +5616,12 @@ To change this setting, BEGIN_LINKdelete the Chrome d IMAGE 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 aae0e8e1..bf7e4539 100644 --- a/build/patches/Add-option-to-use-home-page-as-NTP.patch +++ b/build/patches/Add-option-to-use-home-page-as-NTP.patch @@ -24,7 +24,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java -@@ -99,6 +99,9 @@ import java.util.Map; +@@ -100,6 +100,9 @@ import java.util.Map; import java.util.Objects; import java.util.Optional; @@ -34,7 +34,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. -@@ -930,9 +933,15 @@ public class TabGridDialogMediator +@@ -940,9 +943,15 @@ public class TabGridDialogMediator return; } @@ -54,15 +54,15 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java -@@ -34,6 +34,7 @@ import org.chromium.chrome.browser.collaboration.CollaborationServiceFactory; - import org.chromium.chrome.browser.data_sharing.DataSharingServiceFactory; +@@ -35,6 +35,7 @@ import org.chromium.chrome.browser.data_sharing.DataSharingServiceFactory; + import org.chromium.chrome.browser.data_sharing.ui.shared_image_tiles.SharedImageTilesConfig; import org.chromium.chrome.browser.data_sharing.ui.shared_image_tiles.SharedImageTilesCoordinator; import org.chromium.chrome.browser.layouts.LayoutStateProvider; +import org.chromium.chrome.browser.homepage.HomepageManager; import org.chromium.chrome.browser.layouts.LayoutStateProvider.LayoutStateObserver; import org.chromium.chrome.browser.layouts.LayoutType; import org.chromium.chrome.browser.profiles.Profile; -@@ -401,10 +402,15 @@ public class TabGroupUiMediator implements BackPressHandler, ThemeColorObserver, +@@ -414,10 +415,15 @@ public class TabGroupUiMediator implements BackPressHandler { assert relatedTabs.size() > 0; Tab parentTabToAttach = relatedTabs.get(relatedTabs.size() - 1); @@ -107,7 +107,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over /** * A coordinator for the context menu on the tab strip by long-pressing on the group titles. It is * responsible for creating a list of menu items, setting up the menu and displaying the menu. -@@ -199,9 +202,15 @@ public class TabGroupContextMenuCoordinator extends TabGroupOverflowMenuCoordina +@@ -200,9 +203,15 @@ public class TabGroupContextMenuCoordinator extends TabGroupOverflowMenuCoordina /* didCloseCallback= */ null); recordUserAction("DeleteGroup"); } else if (menuId == org.chromium.chrome.R.id.open_new_tab_in_group) { @@ -208,7 +208,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome import org.chromium.chrome.browser.prefetch.settings.PreloadPagesSettingsBridge; import org.chromium.chrome.browser.prefetch.settings.PreloadPagesState; import org.chromium.chrome.browser.profiles.Profile; -@@ -487,6 +488,13 @@ public class ChromeTabCreator extends TabCreator { +@@ -505,6 +506,13 @@ public class ChromeTabCreator extends TabCreator * @return the created tab. */ public Tab launchUrl(String url, @TabLaunchType int type, Intent intent, long intentTimestamp) { @@ -225,7 +225,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java -@@ -299,6 +299,7 @@ public final class ChromePreferenceKeys { +@@ -320,6 +320,7 @@ public final class ChromePreferenceKeys { public static final String HOMEPAGE_USE_CHROME_NTP = "Chrome.Homepage.UseNTP"; public static final String HOMEPAGE_USE_DEFAULT_URI = "homepage_partner_enabled"; @@ -247,7 +247,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 -@@ -1492,6 +1492,9 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1498,6 +1498,9 @@ Your Google account may have other forms of browsing history like searches and a Last hour @@ -260,7 +260,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc --- a/chrome/browser/ui/browser_ui_prefs.cc +++ b/chrome/browser/ui/browser_ui_prefs.cc -@@ -90,6 +90,8 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -91,6 +91,8 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref( prefs::kShowForwardButton, true, GetHomeAndForwardButtonAndHomePageIsNewTabPageFlags()); 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 52dd216d..c38d12d0 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 -@@ -88,6 +88,7 @@ found in the LICENSE file. +@@ -99,6 +99,7 @@ found in the LICENSE file. @@ -98,37 +98,37 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuItem.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuItem.java --- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuItem.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuItem.java -@@ -111,8 +111,9 @@ class ChromeContextMenuItem { - int SHARE_HIGHLIGHT = 32; - int REMOVE_HIGHLIGHT = 33; - int LEARN_MORE = 34; -+ int FOLLOW_LINK = 35; +@@ -118,8 +118,9 @@ class ChromeContextMenuItem { + int SAVE_PAGE = 35; + int SHARE_PAGE = 36; + int PRINT_PAGE = 37; ++ int FOLLOW_LINK = 38; // ALWAYS UPDATE! -- int NUM_ENTRIES = 35; -+ int NUM_ENTRIES = 36; +- int NUM_ENTRIES = 38; ++ int NUM_ENTRIES = 39; } /** Mapping from {@link Item} to the ID found in the ids.xml. */ -@@ -152,6 +153,7 @@ class ChromeContextMenuItem { - R.id.contextmenu_share_highlight, // Item.SHARE_HIGHLIGHT - R.id.contextmenu_remove_highlight, // Item.REMOVE_HIGHLIGHT - R.id.contextmenu_learn_more, // Item.LEARN_MORE -+ R.id.contextmenu_open_in_tab, // Item.OPEN_IN_NEW_CHROME_TAB +@@ -162,6 +163,7 @@ class ChromeContextMenuItem { + R.id.contextmenu_save_page, // Item.SAVE_PAGE + R.id.contextmenu_share_page, // Item.SHARE_PAGE + R.id.contextmenu_print_page, // Item.PRINT_PAGE ++ R.id.contextmenu_open_in_tab, // Item.OPEN_IN_NEW_CHROME_TAB }; /** Mapping from {@link Item} to the ID of the string that describes the action of the item. */ -@@ -191,6 +193,7 @@ class ChromeContextMenuItem { - R.string.contextmenu_share_highlight, // Item.SHARE_HIGHLIGHT - R.string.contextmenu_remove_highlight, // Item.REMOVE_HIGHLIGHT - R.string.contextmenu_learn_more, // Item.LEARN_MORE -+ R.string.contextmenu_open_in_tab, // Item.OPEN_IN_NEW_CHROME_TAB: +@@ -204,6 +206,7 @@ class ChromeContextMenuItem { + R.string.contextmenu_save_page, // Item.SAVE_PAGE + R.string.contextmenu_share_page, // Item.SHARE_PAGE + R.string.contextmenu_print_page, // Item.PRINT_PAGE ++ R.string.contextmenu_open_in_tab, // Item.OPEN_IN_NEW_CHROME_TAB }; /** 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 -@@ -285,6 +285,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -318,6 +318,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())) { -@@ -676,6 +679,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -735,6 +738,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 -@@ -301,6 +301,14 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { +@@ -323,6 +323,14 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { mTab.loadUrl(loadUrlParams); } @@ -168,10 +168,10 @@ 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 -@@ -344,6 +344,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -350,6 +350,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { + &kTabGroupEntryPointsAndroid, &kTabGroupParityBottomSheetAndroid, &kToolbarPhoneCleanup, - &kTabResumptionModuleAndroid, + &blink::features::kShowAlwaysContextMenuOnLinks, &kTabStateFlatBuffer, &kTabStripContextMenuAndroid, @@ -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 -@@ -419,6 +419,8 @@ public abstract class ChromeFeatureList { +@@ -423,6 +423,8 @@ public abstract class ChromeFeatureList { "DisableToolbarSwipeUp"; public static final String MOVE_TOP_TOOLBAR_TO_BOTTOM = "MoveTopToolbarToBottom"; @@ -188,7 +188,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final String NOTIFICATION_PERMISSION_VARIANT = "NotificationPermissionVariant"; public static final String NOTIFICATION_PERMISSION_BOTTOM_SHEET = "NotificationPermissionBottomSheet"; -@@ -810,6 +812,8 @@ public abstract class ChromeFeatureList { +@@ -805,6 +807,8 @@ public abstract class ChromeFeatureList { newCachedFlag(DISABLE_TOOLBAR_SWIPE_UP, false); public static final CachedFlag sMoveTopToolbarToBottom = newCachedFlag(MOVE_TOP_TOOLBAR_TO_BOTTOM, false); @@ -197,7 +197,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final CachedFlag sPaintPreviewDemo = newCachedFlag(PAINT_PREVIEW_DEMO, false); public static final CachedFlag sPostGetMyMemoryStateToBackground = newCachedFlag(POST_GET_MEMORY_PRESSURE_TO_BACKGROUND, true); -@@ -994,6 +998,7 @@ public abstract class ChromeFeatureList { +@@ -970,6 +974,7 @@ public abstract class ChromeFeatureList { sTabWindowManagerReportIndicesMismatch, sTraceBinderIpc, sUseChimeAndroidSdk, @@ -208,7 +208,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -1736,6 +1736,12 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1739,6 +1739,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 -@@ -3309,6 +3315,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -3313,6 +3319,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d Open in new Chrome tab @@ -249,7 +249,7 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java --- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java +++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java -@@ -48,6 +48,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -52,6 +52,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment private BooleanPreferenceDelegate mMoveTopToolbarToBottomDelegate; private BooleanPreferenceDelegate mDisableToolbarSwipeUpDelegate; @@ -259,7 +259,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c private PageZoomPreference mPageZoomDefaultZoomPref; private ChromeSwitchPreference mPageZoomIncludeOSAdjustment; private ChromeSwitchPreference mPageZoomAlwaysShowPref; -@@ -136,6 +139,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -138,6 +141,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 -> { -@@ -212,6 +221,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -219,6 +228,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment } else if (PREF_DISABLE_TOOLBAR_SWIPE_UP.equals(preference.getKey())) { mDisableToolbarSwipeUpDelegate.setValue((Boolean) newValue); mDelegate.requestRestart(getActivity()); @@ -285,7 +285,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java --- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java +++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java -@@ -42,6 +42,8 @@ public interface AccessibilitySettingsDelegate { +@@ -45,6 +45,8 @@ public interface AccessibilitySettingsDelegate { BooleanPreferenceDelegate getMoveTopToolbarToBottomDelegate(); BooleanPreferenceDelegate getDisableToolbarSwipeUpDelegate(); @@ -344,7 +344,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third_party/blink/renderer/core/html/html_anchor_element.cc --- a/third_party/blink/renderer/core/html/html_anchor_element.cc +++ b/third_party/blink/renderer/core/html/html_anchor_element.cc -@@ -64,6 +64,7 @@ +@@ -66,6 +66,7 @@ #include "third_party/blink/renderer/core/loader/render_blocking_resource_manager.h" #include "third_party/blink/renderer/core/navigation_api/navigation_api.h" #include "third_party/blink/renderer/core/page/chrome_client.h" @@ -352,7 +352,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third #include "third_party/blink/renderer/core/page/page.h" #include "third_party/blink/renderer/core/speculation_rules/document_speculation_rules.h" #include "third_party/blink/renderer/platform/heap/garbage_collected.h" -@@ -504,6 +505,17 @@ void HTMLAnchorElementBase::NavigateToHyperlink( +@@ -500,6 +501,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; -@@ -594,6 +606,15 @@ void HTMLAnchorElementBase::NavigateToHyperlink( +@@ -590,6 +602,15 @@ void HTMLAnchorElementBase::NavigateToHyperlink( frame_request.SetImpression(impression); } @@ -386,7 +386,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third Frame* target_frame = frame->Tree().FindOrCreateFrameForNavigation(frame_request, target).frame; -@@ -637,7 +658,7 @@ Element* HTMLAnchorElementBase::interestTargetElement() { +@@ -633,7 +654,7 @@ Element* HTMLAnchorElementBase::interestTargetElement() { html_names::kInteresttargetAttr); } @@ -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(); -@@ -733,13 +754,12 @@ void HTMLAnchorElementBase::HandleClick(MouseEvent& event) { +@@ -729,13 +750,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( -@@ -749,7 +769,9 @@ void HTMLAnchorElementBase::HandleClick(MouseEvent& event) { +@@ -745,7 +765,9 @@ void HTMLAnchorElementBase::HandleClick(MouseEvent& event) { frame->GetEventHandler().SetDelayedNavigationTaskHandle( std::move(task_handle)); } else { @@ -492,7 +492,7 @@ diff --git a/third_party/blink/renderer/core/html/html_image_element.cc b/third_ diff --git a/third_party/blink/renderer/core/html/html_image_element.h b/third_party/blink/renderer/core/html/html_image_element.h --- a/third_party/blink/renderer/core/html/html_image_element.h +++ b/third_party/blink/renderer/core/html/html_image_element.h -@@ -218,6 +218,8 @@ class CORE_EXPORT HTMLImageElement +@@ -217,6 +217,8 @@ class CORE_EXPORT HTMLImageElement void DidAddUserAgentShadowRoot(ShadowRoot&) override; void AdjustStyle(ComputedStyleBuilder&) override; @@ -551,7 +551,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; -@@ -798,11 +811,13 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame, +@@ -816,11 +829,13 @@ 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 add02cd5..17651896 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 -@@ -161,6 +161,7 @@ +@@ -163,6 +163,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" diff --git a/build/patches/Add-support-for-ISupportHelpAndFeedback.patch b/build/patches/Add-support-for-ISupportHelpAndFeedback.patch index 9aa51e14..729cc878 100644 --- a/build/patches/Add-support-for-ISupportHelpAndFeedback.patch +++ b/build/patches/Add-support-for-ISupportHelpAndFeedback.patch @@ -12,7 +12,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java -@@ -55,6 +55,7 @@ import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar; +@@ -54,6 +54,7 @@ import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar; import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; import org.chromium.components.browser_ui.bottomsheet.BottomSheetControllerFactory; import org.chromium.components.browser_ui.bottomsheet.ManagedBottomSheetController; @@ -20,7 +20,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin import org.chromium.components.browser_ui.modaldialog.AppModalPresenter; import org.chromium.components.browser_ui.settings.EmbeddableSettingsPage; import org.chromium.components.browser_ui.util.TraceEventVectorDrawableCompat; -@@ -441,8 +442,12 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -440,8 +441,12 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity finishCurrentSettings(mainFragment); return true; } else if (item.getItemId() == R.id.menu_id_general_help) { @@ -38,13 +38,15 @@ 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 -@@ -93,4 +93,8 @@ public class SettingsUtils { - ToolbarUtils.setOverflowMenuVisibility(toolbar, visibility); - return true; - } -+ +@@ -28,6 +28,10 @@ import org.chromium.ui.drawable.StateListDrawableBuilder; + /** A helper class for Settings. */ + @NullMarked + public class SettingsUtils { + public interface ISupportHelpAndFeedback { + void onHelpAndFeebackPressed(); + } - } ++ + /** + * A helper that is used to load preferences from XML resources without causing a + * StrictModeViolation. See http://crbug.com/692125. -- diff --git a/build/patches/Add-support-to-jxl.patch b/build/patches/Add-support-to-jxl.patch index fe8f4fab..d2684a36 100644 --- a/build/patches/Add-support-to-jxl.patch +++ b/build/patches/Add-support-to-jxl.patch @@ -84,7 +84,7 @@ Enabled by default diff --git a/DEPS b/DEPS --- a/DEPS +++ b/DEPS -@@ -480,6 +480,10 @@ vars = { +@@ -503,6 +503,10 @@ vars = { # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. @@ -95,7 +95,7 @@ diff --git a/DEPS b/DEPS 'highway_revision': '00fe003dac355b979f36157f9407c7c46448958e', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling ffmpeg -@@ -1846,6 +1850,9 @@ deps = { +@@ -1886,6 +1890,9 @@ deps = { 'src/third_party/dawn': Var('dawn_git') + '/dawn.git' + '@' + Var('dawn_revision'), @@ -329,7 +329,7 @@ diff --git a/media/media_options.gni b/media/media_options.gni diff --git a/net/base/mime_util.cc b/net/base/mime_util.cc --- a/net/base/mime_util.cc +++ b/net/base/mime_util.cc -@@ -178,6 +178,7 @@ static const MimeInfo kPrimaryMappings[] = { +@@ -181,6 +181,7 @@ static const MimeInfo kPrimaryMappings[] = { {"image/avif", "avif"}, {"image/gif", "gif"}, {"image/jpeg", "jpeg,jpg"}, @@ -337,7 +337,7 @@ diff --git a/net/base/mime_util.cc b/net/base/mime_util.cc {"image/png", "png"}, {"image/apng", "png,apng"}, {"image/svg+xml", "svg,svgz"}, -@@ -682,6 +683,7 @@ static const char* const kStandardImageTypes[] = {"image/avif", +@@ -699,6 +700,7 @@ static const char* const kStandardImageTypes[] = {"image/avif", "image/heif", "image/ief", "image/jpeg", @@ -364,7 +364,7 @@ diff --git a/net/base/mime_util_unittest.cc b/net/base/mime_util_unittest.cc #if BUILDFLAG(IS_CHROMEOS) // These are test cases for testing platform mime types on ChromeOS. {FILE_PATH_LITERAL("epub"), {"application/epub+zip"}}, -@@ -496,6 +498,7 @@ TEST(MimeUtilTest, TestGetExtensionsForMimeType) { +@@ -504,6 +506,7 @@ TEST(MimeUtilTest, TestGetExtensionsForMimeType) { {"MeSsAge/*", 1, "eml"}, {"message/", 0, nullptr, true}, {"image/avif", 1, "avif"}, @@ -464,7 +464,7 @@ diff --git a/third_party/blink/common/mime_util/mime_util_unittest.cc b/third_pa diff --git a/third_party/blink/public/devtools_protocol/browser_protocol.pdl b/third_party/blink/public/devtools_protocol/browser_protocol.pdl --- a/third_party/blink/public/devtools_protocol/browser_protocol.pdl +++ b/third_party/blink/public/devtools_protocol/browser_protocol.pdl -@@ -4747,6 +4747,7 @@ domain Emulation +@@ -4809,6 +4809,7 @@ domain Emulation experimental type DisabledImageType extends string enum avif @@ -475,7 +475,7 @@ diff --git a/third_party/blink/public/devtools_protocol/browser_protocol.pdl b/t 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 -@@ -498,10 +498,10 @@ AtomicString InspectorEmulationAgent::OverrideAcceptImageHeader( +@@ -557,10 +557,10 @@ AtomicString InspectorEmulationAgent::OverrideAcceptImageHeader( String header(network_utils::ImageAcceptHeader()); for (String type : *disabled_image_types) { // The header string is expected to be like @@ -489,7 +489,7 @@ diff --git a/third_party/blink/renderer/core/inspector/inspector_emulation_agent header.Replace(String(type + ","), ""); } return AtomicString(header); -@@ -845,6 +845,7 @@ protocol::Response InspectorEmulationAgent::setDisabledImageTypes( +@@ -931,6 +931,7 @@ protocol::Response InspectorEmulationAgent::setDisabledImageTypes( namespace DisabledImageTypeEnum = protocol::Emulation::DisabledImageTypeEnum; for (protocol::Emulation::DisabledImageType type : *disabled_types) { if (DisabledImageTypeEnum::Avif == type || @@ -605,7 +605,7 @@ diff --git a/third_party/blink/renderer/modules/webcodecs/image_decoder_fuzzer.c diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn --- a/third_party/blink/renderer/platform/BUILD.gn +++ b/third_party/blink/renderer/platform/BUILD.gn -@@ -2403,6 +2403,10 @@ source_set("blink_platform_unittests_sources") { +@@ -2414,6 +2414,10 @@ source_set("blink_platform_unittests_sources") { sources += [ "text/locale_icu_test.cc" ] } @@ -616,7 +616,7 @@ diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/re sources += [ "testing/run_all_tests.cc" ] configs += [ -@@ -2448,6 +2452,7 @@ source_set("blink_platform_unittests_sources") { +@@ -2459,6 +2463,7 @@ source_set("blink_platform_unittests_sources") { "//third_party/blink/renderer/platform/wtf", "//third_party/dawn/src/dawn/native", "//third_party/dawn/src/dawn/wire", @@ -2215,7 +2215,7 @@ diff --git a/third_party/blink/tools/commit_stats/git-dirs.txt b/third_party/bli diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations --- a/third_party/blink/web_tests/TestExpectations +++ b/third_party/blink/web_tests/TestExpectations -@@ -5432,6 +5432,12 @@ crbug.com/1199522 http/tests/devtools/layers/layers-3d-view-hit-testing.js [ Fai +@@ -5405,6 +5405,12 @@ crbug.com/1199522 http/tests/devtools/layers/layers-3d-view-hit-testing.js [ Fai # Started failing after rolling new version of check-layout-th.js css3/flexbox/perpendicular-writing-modes-inside-flex-item.html [ Failure ] @@ -2231,7 +2231,7 @@ diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/we diff --git a/third_party/blink/web_tests/VirtualTestSuites b/third_party/blink/web_tests/VirtualTestSuites --- a/third_party/blink/web_tests/VirtualTestSuites +++ b/third_party/blink/web_tests/VirtualTestSuites -@@ -409,6 +409,15 @@ +@@ -429,6 +429,15 @@ "args": ["--enable-blink-features=FractionalScrollOffsets"], "expires": "Jun 1, 2025" }, @@ -2646,7 +2646,7 @@ new file mode 100644 diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml --- a/tools/metrics/histograms/enums.xml +++ b/tools/metrics/histograms/enums.xml -@@ -14717,6 +14717,7 @@ from previous Chrome versions. +@@ -14724,6 +14724,7 @@ from previous Chrome versions. @@ -2657,7 +2657,7 @@ diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums diff --git a/tools/metrics/histograms/metadata/blink/enums.xml b/tools/metrics/histograms/metadata/blink/enums.xml --- a/tools/metrics/histograms/metadata/blink/enums.xml +++ b/tools/metrics/histograms/metadata/blink/enums.xml -@@ -239,7 +239,7 @@ chromium-metrics-reviews@google.com. +@@ -240,7 +240,7 @@ chromium-metrics-reviews@google.com. diff --git a/build/patches/Add-webGL-site-setting.patch b/build/patches/Add-webGL-site-setting.patch index ee7d0d32..17998c63 100644 --- a/build/patches/Add-webGL-site-setting.patch +++ b/build/patches/Add-webGL-site-setting.patch @@ -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 -@@ -299,6 +299,13 @@ void WebGLRenderingContextBase::InitializeWebGLContextLimits( +@@ -305,6 +305,13 @@ void WebGLRenderingContextBase::InitializeWebGLContextLimits( } } @@ -232,7 +232,7 @@ diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_ba unsigned WebGLRenderingContextBase::CurrentMaxGLContexts() { base::AutoLock locker(WebGLContextLimitLock()); DCHECK(webgl_context_limits_initialized_); -@@ -568,25 +575,6 @@ static String ExtractWebGLContextCreationError( +@@ -574,25 +581,6 @@ static String ExtractWebGLContextCreationError( const Platform::GraphicsInfo& info) { StringBuilder builder; builder.Append("Could not create a WebGL context"); @@ -258,7 +258,7 @@ diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_ba FormatWebGLStatusString("ErrorMessage", info.error_message.Utf8().c_str(), builder); builder.Append('.'); -@@ -646,6 +634,12 @@ WebGLRenderingContextBase::CreateWebGraphicsContext3DProvider( +@@ -652,6 +640,12 @@ WebGLRenderingContextBase::CreateWebGraphicsContext3DProvider( const CanvasContextCreationAttributesCore& attributes, Platform::ContextType context_type, Platform::GraphicsInfo* graphics_info) { @@ -274,7 +274,7 @@ diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_ba diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h --- a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h +++ b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h -@@ -1931,6 +1931,8 @@ class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext, +@@ -1933,6 +1933,8 @@ class MODULES_EXPORT WebGLRenderingContextBase : public ScriptWrappable, DOMArrayBufferView* pixels, int64_t offset); diff --git a/build/patches/Allow-DocumentPiP-if-PopupsAndRedirects-are-active.patch b/build/patches/Allow-DocumentPiP-if-PopupsAndRedirects-are-active.patch index 4835c399..72df7385 100644 --- a/build/patches/Allow-DocumentPiP-if-PopupsAndRedirects-are-active.patch +++ b/build/patches/Allow-DocumentPiP-if-PopupsAndRedirects-are-active.patch @@ -20,7 +20,7 @@ diff --git a/third_party/blink/renderer/modules/document_picture_in_picture/pict #include "third_party/blink/renderer/modules/picture_in_picture/picture_in_picture_event.h" #include "third_party/blink/renderer/platform/heap/garbage_collected.h" #include "third_party/blink/renderer/platform/runtime_enabled_features.h" -@@ -377,6 +378,12 @@ void PictureInPictureControllerImpl::CreateDocumentPictureInPictureWindow( +@@ -390,6 +391,12 @@ void PictureInPictureControllerImpl::CreateDocumentPictureInPictureWindow( return; } diff --git a/build/patches/Allow-building-without-enable_reporting.patch b/build/patches/Allow-building-without-enable_reporting.patch index e5589892..cc5b90a5 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 -@@ -1474,6 +1474,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) { +@@ -1481,6 +1481,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( -@@ -1487,6 +1488,7 @@ std::vector ComputeReportingURLs(RenderFrameHostImpl* frame_host) { +@@ -1494,6 +1495,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 -@@ -15759,12 +15759,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport( +@@ -15823,12 +15823,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport( } } } @@ -300,7 +300,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 -@@ -475,14 +475,14 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -481,14 +481,14 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext const GURL& url, const std::optional& reporting_source, const net::NetworkAnonymizationKey& network_anonymization_key, @@ -332,7 +332,7 @@ diff --git a/services/network/public/cpp/parsed_headers.cc b/services/network/pu diff --git a/services/network/public/mojom/BUILD.gn b/services/network/public/mojom/BUILD.gn --- a/services/network/public/mojom/BUILD.gn +++ b/services/network/public/mojom/BUILD.gn -@@ -1668,7 +1668,6 @@ mojom("mojom") { +@@ -1761,7 +1761,6 @@ mojom("mojom") { export_define_blink = "BLINK_PLATFORM_IMPLEMENTATION=1" export_header_blink = "third_party/blink/public/platform/web_common.h" if (enable_reporting) { @@ -343,7 +343,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 -@@ -1208,6 +1208,7 @@ interface NetworkContext { +@@ -1227,6 +1227,7 @@ interface NetworkContext { // provided `network_anonymization_key`. // // Spec: https://w3c.github.io/reporting/#concept-reports @@ -351,7 +351,7 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw QueueReport(string type, string group, url.mojom.Url url, -@@ -1215,6 +1216,7 @@ interface NetworkContext { +@@ -1234,6 +1235,7 @@ interface NetworkContext { NetworkAnonymizationKey network_anonymization_key, mojo_base.mojom.DictionaryValue body); @@ -359,7 +359,7 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw QueueEnterpriseReport(string type, string group, url.mojom.Url url, -@@ -1225,6 +1227,7 @@ interface NetworkContext { +@@ -1244,6 +1246,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`. @@ -405,7 +405,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" -@@ -2752,9 +2753,11 @@ DocumentResourceCoordinator* LocalFrame::GetDocumentResourceCoordinator() { +@@ -2761,9 +2762,11 @@ DocumentResourceCoordinator* LocalFrame::GetDocumentResourceCoordinator() { return CHECK_DEREF(GetDocument()).GetResourceCoordinator(); } @@ -428,7 +428,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 "services/metrics/public/cpp/ukm_source_id.h" -@@ -650,7 +651,9 @@ class CORE_EXPORT LocalFrame final +@@ -659,7 +660,9 @@ class CORE_EXPORT LocalFrame final return client_hints_preferences_; } @@ -512,7 +512,7 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_context.h b/third_p #include "third_party/blink/public/mojom/frame/reporting_observer.mojom-blink.h" #include "third_party/blink/public/mojom/reporting/reporting.mojom-blink.h" #include "third_party/blink/renderer/core/core_export.h" -@@ -55,10 +56,10 @@ class CORE_EXPORT ReportingContext : public GarbageCollected, +@@ -56,10 +57,10 @@ class CORE_EXPORT ReportingContext : public GarbageCollected, private: // Counts the use of a report type via UseCounter. void CountReport(Report*); @@ -525,7 +525,7 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_context.h b/third_p void NotifyInternal(Report* report); // Send |report| via the Reporting API to |endpoint|. void SendToReportingAPI(Report* report, const String& endpoint) const; -@@ -69,8 +70,10 @@ class CORE_EXPORT ReportingContext : public GarbageCollected, +@@ -71,8 +72,10 @@ class CORE_EXPORT ReportingContext : public GarbageCollected, // This is declared mutable so that the service endpoint can be cached by // const methods. diff --git a/build/patches/Allow-building-without-supervised-users.patch b/build/patches/Allow-building-without-supervised-users.patch index 2fe30d8e..7fa1fbe2 100644 --- a/build/patches/Allow-building-without-supervised-users.patch +++ b/build/patches/Allow-building-without-supervised-users.patch @@ -17,13 +17,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../core/browser/supervised_user_preferences.cc | 6 +++++- .../core/browser/supervised_user_service.cc | 5 +---- .../supervised_user/core/browser/supervised_user_utils.cc | 1 + - components/supervised_user/core/common/features.cc | 6 ++++++ - 14 files changed, 17 insertions(+), 30 deletions(-) + components/supervised_user/core/common/features.cc | 5 ++++- + 14 files changed, 15 insertions(+), 31 deletions(-) diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -786,7 +786,6 @@ if (current_toolchain == default_toolchain) { +@@ -787,7 +787,6 @@ if (current_toolchain == 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", @@ -99,7 +99,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() { +@@ -1624,6 +1620,7 @@ GURL ProfileImpl::GetHomePage() { } void ProfileImpl::UpdateSupervisedUserIdInStorage() { @@ -110,7 +110,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 -@@ -1191,10 +1191,6 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) { +@@ -1192,10 +1192,6 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) { profile->GetPrefs()->SetString(prefs::kProfileName, profile_name); } @@ -121,7 +121,7 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile #if !BUILDFLAG(IS_ANDROID) if (profile->IsNewProfile()) { profile->GetPrefs()->SetBoolean(prefs::kHasSeenWelcomePage, false); -@@ -1976,9 +1972,6 @@ void ProfileManager::AddProfileToStorage(Profile* profile) { +@@ -1977,9 +1973,6 @@ void ProfileManager::AddProfileToStorage(Profile* profile) { init_params.icon_index = profile->GetPrefs()->GetInteger(prefs::kProfileAvatarIndex); @@ -173,7 +173,7 @@ diff --git a/components/supervised_user/core/browser/supervised_user_pref_store. diff --git a/components/supervised_user/core/browser/supervised_user_preferences.cc b/components/supervised_user/core/browser/supervised_user_preferences.cc --- a/components/supervised_user/core/browser/supervised_user_preferences.cc +++ b/components/supervised_user/core/browser/supervised_user_preferences.cc -@@ -155,6 +155,10 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { +@@ -158,6 +158,10 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { } void EnableParentalControls(PrefService& pref_service) { @@ -183,8 +183,8 @@ diff --git a/components/supervised_user/core/browser/supervised_user_preferences + } pref_service.SetString(prefs::kSupervisedUserId, supervised_user::kChildAccountSUID); - SetIsChildAccountStatusKnown(pref_service); -@@ -177,7 +181,7 @@ bool IsSafeSitesEnabled(const PrefService& pref_service) { + #if BUILDFLAG(IS_CHROMEOS) +@@ -186,7 +190,7 @@ bool IsSafeSitesEnabled(const PrefService& pref_service) { } bool IsSubjectToParentalControls(const PrefService& pref_service) { @@ -192,11 +192,11 @@ diff --git a/components/supervised_user/core/browser/supervised_user_preferences + return false; } - } // namespace supervised_user + bool IsGoogleSafeSearchEnforced(const PrefService& pref_service) { diff --git a/components/supervised_user/core/browser/supervised_user_service.cc b/components/supervised_user/core/browser/supervised_user_service.cc --- a/components/supervised_user/core/browser/supervised_user_service.cc +++ b/components/supervised_user/core/browser/supervised_user_service.cc -@@ -50,10 +50,6 @@ void SupervisedUserService::Init() { +@@ -91,10 +91,6 @@ void SupervisedUserService::Init() { DCHECK(settings_service_->IsReady()); pref_change_registrar_.Init(&user_prefs_.get()); @@ -207,7 +207,7 @@ diff --git a/components/supervised_user/core/browser/supervised_user_service.cc SetActive(supervised_user::IsSubjectToParentalControls(user_prefs_.get())); } -@@ -139,6 +135,7 @@ SupervisedUserService::SupervisedUserService( +@@ -161,6 +157,7 @@ SupervisedUserService::SupervisedUserService( } void SupervisedUserService::SetActive(bool active) { @@ -218,7 +218,7 @@ diff --git a/components/supervised_user/core/browser/supervised_user_service.cc diff --git a/components/supervised_user/core/browser/supervised_user_utils.cc b/components/supervised_user/core/browser/supervised_user_utils.cc --- a/components/supervised_user/core/browser/supervised_user_utils.cc +++ b/components/supervised_user/core/browser/supervised_user_utils.cc -@@ -308,6 +308,7 @@ GURL NormalizeUrl(const GURL& url) { +@@ -314,6 +314,7 @@ GURL NormalizeUrl(const GURL& url) { } bool AreWebFilterPrefsDefault(const PrefService& pref_service) { @@ -229,15 +229,21 @@ diff --git a/components/supervised_user/core/browser/supervised_user_utils.cc b/ 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 -@@ -185,4 +185,10 @@ BASE_FEATURE(kReplaceSupervisionSystemCapabilitiesWithAccountCapabilitiesOnIOS, - "ReplaceSupervisionSystemCapabilitiesWithAccountCapabilitiesOnIOS", +@@ -102,7 +102,6 @@ BASE_FEATURE(kEnableExtensionsPermissionsForSupervisedUsersOnDesktop, + "EnableExtensionsPermissionsForSupervisedUsersOnDesktop", base::FEATURE_ENABLED_BY_DEFAULT); #endif -+ +- + #if BUILDFLAG(ENABLE_EXTENSIONS) + BASE_FEATURE(kExposedParentalControlNeededForExtensionInstallation, + "ExposedParentalControlNeededForExtensionInstallation", +@@ -191,4 +190,8 @@ BASE_FEATURE(kWaitUntilAccessTokenAvailableForClassifyUrl, + #endif + ); + +SET_CROMITE_FEATURE_DISABLED(kLocalWebApprovals); +#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) +SET_CROMITE_FEATURE_DISABLED(kEnableExtensionsPermissionsForSupervisedUsersOnDesktop); +#endif -+ } // namespace supervised_user -- diff --git a/build/patches/Allow-playing-audio-in-background.patch b/build/patches/Allow-playing-audio-in-background.patch index 1f07a677..14e3596d 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 -@@ -1343,6 +1343,12 @@ void WebMediaPlayerImpl::OnSelectedVideoTrackChanged( +@@ -1346,6 +1346,12 @@ void WebMediaPlayerImpl::OnSelectedVideoTrackChanged( pipeline_controller_->OnSelectedVideoTrackChanged(selected); } @@ -24,7 +24,7 @@ diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc void WebMediaPlayerImpl::EnabledAudioTracksChanged( const std::vector& enabled_track_ids) { DCHECK(main_task_runner_->BelongsToCurrentThread()); -@@ -3749,7 +3755,10 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const { +@@ -3752,7 +3758,10 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const { : HasAudio(); // 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 54355353..b5573de3 100644 --- a/build/patches/Always-open-browser-controls-in-new-tab.patch +++ b/build/patches/Always-open-browser-controls-in-new-tab.patch @@ -17,16 +17,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM +import org.chromium.cc.input.BrowserControlsState; import org.chromium.chrome.browser.DefaultBrowserInfo; import org.chromium.chrome.browser.IntentHandler; - import org.chromium.chrome.browser.bookmarks.BookmarkModel; -@@ -34,6 +35,7 @@ import org.chromium.chrome.browser.multiwindow.MultiWindowUtils; - import org.chromium.chrome.browser.offlinepages.OfflinePageBridge; - import org.chromium.chrome.browser.offlinepages.RequestCoordinatorBridge; + import org.chromium.chrome.browser.bookmarks.BookmarkManagerOpenerImpl; +@@ -38,6 +39,7 @@ import org.chromium.chrome.browser.preferences.Pref; + import org.chromium.chrome.browser.price_tracking.PriceDropNotificationManagerFactory; + import org.chromium.chrome.browser.printing.TabPrinter; import org.chromium.chrome.browser.profiles.Profile; +import org.chromium.chrome.browser.tab.TabBrowserControlsConstraintsHelper; import org.chromium.chrome.browser.tabmodel.TabModelSelector; import org.chromium.chrome.browser.tabmodel.document.ChromeAsyncTabLauncher; import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; -@@ -235,6 +237,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { +@@ -257,6 +259,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { 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()); -@@ -255,6 +258,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { +@@ -277,6 +280,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { * @param url The URL to open. */ public void onOpenInNewTabInGroup(GURL url, Referrer referrer) { diff --git a/build/patches/Always-use-new-tab-page-for-default-home-page.patch b/build/patches/Always-use-new-tab-page-for-default-home-page.patch index 6237297f..677181e1 100644 --- a/build/patches/Always-use-new-tab-page-for-default-home-page.patch +++ b/build/patches/Always-use-new-tab-page-for-default-home-page.patch @@ -32,7 +32,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/Homepa diff --git a/chrome/browser/partnerbookmarks/android/java/src/org/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksProviderIterator.java b/chrome/browser/partnerbookmarks/android/java/src/org/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksProviderIterator.java --- a/chrome/browser/partnerbookmarks/android/java/src/org/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksProviderIterator.java +++ b/chrome/browser/partnerbookmarks/android/java/src/org/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksProviderIterator.java -@@ -68,6 +68,7 @@ public class PartnerBookmarksProviderIterator implements PartnerBookmark.Bookmar +@@ -70,6 +70,7 @@ public class PartnerBookmarksProviderIterator implements PartnerBookmark.Bookmar new AsyncTask<@Nullable Cursor>() { @Override protected @Nullable Cursor doInBackground() { diff --git a/build/patches/Android-fonts-fingerprinting-mitigation.patch b/build/patches/Android-fonts-fingerprinting-mitigation.patch index d8a9b8f0..459319b8 100644 --- a/build/patches/Android-fonts-fingerprinting-mitigation.patch +++ b/build/patches/Android-fonts-fingerprinting-mitigation.patch @@ -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 -@@ -1056,6 +1056,9 @@ public final class ProductionSupportedFlagList { +@@ -1073,6 +1073,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."), @@ -106,7 +106,7 @@ diff --git a/chrome/android/java/res/xml/developer_preferences.xml b/chrome/andr diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -7698,6 +7698,13 @@ static_library("browser") { +@@ -7745,6 +7745,13 @@ static_library("browser") { } } @@ -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 -@@ -293,6 +293,9 @@ static_library("renderer") { +@@ -294,6 +294,9 @@ static_library("renderer") { "//ppapi/shared_impl", ] @@ -614,7 +614,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 -@@ -2543,6 +2543,17 @@ source_set("browser") { +@@ -2561,6 +2561,17 @@ source_set("browser") { ] } @@ -632,7 +632,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" ] -@@ -2585,6 +2596,13 @@ source_set("browser") { +@@ -2603,6 +2614,13 @@ source_set("browser") { ] } @@ -644,8 +644,8 @@ diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn + } + if (allow_oop_video_decoder) { - sources += [ "media/stable_video_decoder_factory.cc" ] - deps += [ "//media/mojo/mojom/stable:stable_video_decoder" ] + sources += [ "media/oop_video_decoder_factory.cc" ] + deps += [ "//media/mojo/mojom" ] diff --git a/content/browser/renderer_host/render_process_host_impl_receiver_bindings.cc b/content/browser/renderer_host/render_process_host_impl_receiver_bindings.cc --- a/content/browser/renderer_host/render_process_host_impl_receiver_bindings.cc +++ b/content/browser/renderer_host/render_process_host_impl_receiver_bindings.cc @@ -709,7 +709,7 @@ diff --git a/content/renderer/BUILD.gn b/content/renderer/BUILD.gn diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer/renderer_blink_platform_impl.cc --- a/content/renderer/renderer_blink_platform_impl.cc +++ b/content/renderer/renderer_blink_platform_impl.cc -@@ -142,6 +142,23 @@ +@@ -137,6 +137,23 @@ #include "content/common/android/sync_compositor_statics.h" #endif @@ -733,7 +733,7 @@ diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer using blink::Platform; using blink::WebAudioDevice; using blink::WebAudioLatencyHint; -@@ -184,6 +201,37 @@ gpu::ContextType ToGpuContextType(blink::Platform::ContextType type) { +@@ -179,6 +196,37 @@ gpu::ContextType ToGpuContextType(blink::Platform::ContextType type) { NOTREACHED(); } @@ -771,7 +771,7 @@ diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer } // namespace //------------------------------------------------------------------------------ -@@ -197,18 +245,21 @@ RendererBlinkPlatformImpl::RendererBlinkPlatformImpl( +@@ -192,18 +240,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) { @@ -837,7 +837,7 @@ new file mode 100644 diff --git a/skia/BUILD.gn b/skia/BUILD.gn --- a/skia/BUILD.gn +++ b/skia/BUILD.gn -@@ -440,6 +440,18 @@ component("skia") { +@@ -441,6 +441,18 @@ component("skia") { sources += skia_ports_fci_sources } diff --git a/build/patches/Ask-for-restart-on-connection-change.patch b/build/patches/Ask-for-restart-on-connection-change.patch index 3fcf5538..f7f9f4bf 100644 --- a/build/patches/Ask-for-restart-on-connection-change.patch +++ b/build/patches/Ask-for-restart-on-connection-change.patch @@ -281,7 +281,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 -@@ -1309,7 +1309,10 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1335,7 +1335,10 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { mActivity, mStatusIndicatorCoordinator, isUrlBarFocusedSupplier, @@ -403,8 +403,8 @@ diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browse diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManager.java b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManager.java --- a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManager.java +++ b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManager.java -@@ -110,6 +110,8 @@ public interface TabWindowManager { - */ +@@ -108,6 +108,8 @@ public interface TabWindowManager { + /** Returns the total number of incognito tabs across all tab model selectors. */ int getIncognitoTabCount(); + void setPagesFrozen(boolean frozen); @@ -415,8 +415,8 @@ diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browse diff --git a/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManagerImpl.java b/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManagerImpl.java --- a/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManagerImpl.java +++ b/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManagerImpl.java -@@ -476,6 +476,16 @@ public class TabWindowManagerImpl implements ActivityStateListener, TabWindowMan - return tabGroupModelFilter.getRelatedTabListForRootId(rootId); +@@ -490,6 +490,16 @@ public class TabWindowManagerImpl implements TabWindowManager { + return tabGroupModelFilter.getTabsInGroup(tabGroupId); } + @Override @@ -430,8 +430,8 @@ diff --git a/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chro + } + @Override - public @Nullable TabModelSelector getTabModelSelectorById(int index) { - return mSelectors.get(index); + public @Nullable TabModelSelector getTabModelSelectorById(@WindowId int windowId) { + return mWindowIdToSelectors.get(windowId); diff --git a/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Ask-for-restart-on-connection-change.grdp b/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Ask-for-restart-on-connection-change.grdp new file mode 100644 --- /dev/null @@ -562,7 +562,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro mProfileImageView = (ImageView) mContainerView.findViewById(R.id.snackbar_profile_image); mEdgeToEdgeSupplier = edgeToEdgeSupplier; if (SnackbarManager.isFloatingSnackbarEnabled()) { -@@ -408,6 +413,12 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { +@@ -404,6 +409,12 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { mActionButtonView.setVisibility(View.VISIBLE); mActionButtonView.setContentDescription(snackbar.getActionText()); setViewText(mActionButtonView, snackbar.getActionText(), animate); @@ -615,7 +615,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 -@@ -3779,8 +3779,10 @@ void WebContentsImpl::Stop() { +@@ -3840,8 +3840,10 @@ void WebContentsImpl::Stop() { void WebContentsImpl::SetPageFrozen(bool frozen) { TRACE_EVENT1("content", "WebContentsImpl::SetPageFrozen", "frozen", frozen); @@ -629,7 +629,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 -@@ -1161,6 +1161,12 @@ public class WebContentsImpl +@@ -1128,6 +1128,12 @@ public class WebContentsImpl WebContentsImplJni.get().setFocus(mNativeWebContentsAndroid, hasFocus); } @@ -642,7 +642,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/webcon @Override public void setDisplayCutoutSafeArea(Rect insets) { if (mNativeWebContentsAndroid == 0) return; -@@ -1453,6 +1459,8 @@ public class WebContentsImpl +@@ -1432,6 +1438,8 @@ public class WebContentsImpl void setFocus(long nativeWebContentsAndroid, boolean focused); @@ -654,7 +654,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/webcon diff --git a/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java b/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java --- a/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java +++ b/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java -@@ -289,6 +289,8 @@ public interface WebContents extends Parcelable { +@@ -290,6 +290,8 @@ public interface WebContents extends Parcelable { */ void setFocus(boolean hasFocus); @@ -666,7 +666,7 @@ diff --git a/content/public/android/java/src/org/chromium/content_public/browser diff --git a/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java b/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java --- a/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java +++ b/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java -@@ -187,6 +187,9 @@ public class MockWebContents implements WebContents, WebContentsObserver.Observa +@@ -188,6 +188,9 @@ public class MockWebContents implements WebContents, WebContentsObserver.Observa @Override public void setFocus(boolean hasFocus) {} @@ -711,7 +711,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 -@@ -4308,6 +4308,7 @@ void Document::DispatchUnloadEvents(UnloadEventTimingInfo* unload_timing_info) { +@@ -4309,6 +4309,7 @@ void Document::DispatchUnloadEvents(UnloadEventTimingInfo* unload_timing_info) { } void Document::DispatchFreezeEvent() { @@ -722,7 +722,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 -@@ -3187,6 +3187,7 @@ void LocalFrame::DidFreeze() { +@@ -3196,6 +3196,7 @@ void LocalFrame::DidFreeze() { LoaderFreezeMode freeze_mode = GetLoaderFreezeMode(); GetDocument()->Fetcher()->SetDefersLoading(freeze_mode); Loader().SetDefersLoading(freeze_mode); @@ -730,7 +730,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ } void LocalFrame::DidResume() { -@@ -3201,6 +3202,7 @@ void LocalFrame::DidResume() { +@@ -3210,6 +3211,7 @@ void LocalFrame::DidResume() { GetDocument()->Fetcher()->SetDefersLoading(LoaderFreezeMode::kNone); Loader().SetDefersLoading(LoaderFreezeMode::kNone); @@ -741,7 +741,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 -@@ -986,7 +986,9 @@ SchedulingLifecycleState FrameSchedulerImpl::CalculateLifecycleState( +@@ -998,7 +998,9 @@ SchedulingLifecycleState FrameSchedulerImpl::CalculateLifecycleState( if (!parent_page_scheduler_) return SchedulingLifecycleState::kNotThrottled; if (parent_page_scheduler_->IsFrozen()) { @@ -767,7 +767,7 @@ diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/page_sche PolicyUpdater policy_updater; SetPageFrozenImpl(frozen, policy_updater); } -@@ -799,7 +801,12 @@ bool PageSchedulerImpl::IsBackgrounded() const { +@@ -801,7 +803,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 27974571..f977da70 100644 --- a/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch +++ b/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch @@ -52,7 +52,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer.cc b/third_party/blink/renderer/modules/webaudio/audio_buffer.cc --- a/third_party/blink/renderer/modules/webaudio/audio_buffer.cc +++ b/third_party/blink/renderer/modules/webaudio/audio_buffer.cc -@@ -202,6 +202,20 @@ AudioBuffer::AudioBuffer(AudioBus* bus) +@@ -203,6 +203,20 @@ AudioBuffer::AudioBuffer(AudioBus* bus) } } @@ -76,7 +76,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer.cc b/third diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer.h b/third_party/blink/renderer/modules/webaudio/audio_buffer.h --- a/third_party/blink/renderer/modules/webaudio/audio_buffer.h +++ b/third_party/blink/renderer/modules/webaudio/audio_buffer.h -@@ -115,6 +115,8 @@ class MODULES_EXPORT AudioBuffer final : public ScriptWrappable { +@@ -116,6 +116,8 @@ class MODULES_EXPORT AudioBuffer final : public ScriptWrappable { std::unique_ptr CreateSharedAudioBuffer(); @@ -118,7 +118,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/base_audio_context.cc b #include "third_party/blink/public/mojom/devtools/console_message.mojom-blink.h" #include "third_party/blink/public/mojom/frame/lifecycle.mojom-shared.h" #include "third_party/blink/public/platform/platform.h" -@@ -709,6 +710,17 @@ LocalDOMWindow* BaseAudioContext::GetWindow() const { +@@ -715,6 +716,17 @@ LocalDOMWindow* BaseAudioContext::GetWindow() const { return To(GetExecutionContext()); } @@ -146,7 +146,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/base_audio_context.h b/ + static float ShuffleAudioData(float data, unsigned index); + protected: - enum ContextType { kRealtimeContext, kOfflineContext }; + enum class ContextType { kRealtimeContext, kOfflineContext }; diff --git a/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc b/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc --- a/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc @@ -207,7 +207,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 -@@ -479,9 +479,8 @@ +@@ -495,9 +495,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 46d6aba4..29ea5a43 100644 --- a/build/patches/Block-gateway-attacks-via-websockets.patch +++ b/build/patches/Block-gateway-attacks-via-websockets.patch @@ -60,7 +60,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.h b/third_party/blink/renderer/core/loader/base_fetch_context.h --- a/third_party/blink/renderer/core/loader/base_fetch_context.h +++ b/third_party/blink/renderer/core/loader/base_fetch_context.h -@@ -86,6 +86,7 @@ class CORE_EXPORT BaseFetchContext : public FetchContext { +@@ -88,6 +88,7 @@ class CORE_EXPORT BaseFetchContext : public FetchContext { virtual SubresourceFilter* GetSubresourceFilter() const = 0; virtual bool ShouldBlockWebSocketByMixedContentCheck(const KURL&) const = 0; @@ -71,7 +71,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 -@@ -1000,6 +1000,26 @@ bool FrameFetchContext::ShouldBlockRequestByInspector(const KURL& url) const { +@@ -1015,6 +1015,26 @@ bool FrameFetchContext::ShouldBlockRequestByInspector(const KURL& url) const { return should_block_request; } @@ -101,7 +101,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 -@@ -183,6 +183,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext, +@@ -186,6 +186,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext, bool ShouldBlockWebSocketByMixedContentCheck(const KURL&) const override; std::unique_ptr CreateWebSocketHandshakeThrottle() override; @@ -224,7 +224,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 -@@ -288,6 +288,11 @@ bool WebSocketChannelImpl::Connect(const KURL& url, const String& protocol) { +@@ -284,6 +284,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 493d470a..fe53f1f9 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 -@@ -4971,7 +4971,17 @@ void RenderFrameHostImpl::SetLastCommittedOrigin( +@@ -4982,7 +4982,17 @@ void RenderFrameHostImpl::SetLastCommittedOrigin( } void RenderFrameHostImpl::SetInheritedBaseUrl(const GURL& inherited_base_url) { @@ -118,7 +118,7 @@ diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_p return referrer_; } -@@ -2940,6 +2945,13 @@ void DocumentLoader::CommitNavigation() { +@@ -2939,6 +2944,13 @@ void DocumentLoader::CommitNavigation() { response_.HttpHeaderField(http_names::kDocumentPolicyReportOnly)); } diff --git a/build/patches/Block-qjz9zk-or-trk-requests.patch b/build/patches/Block-qjz9zk-or-trk-requests.patch index d2ebe964..327e0e29 100644 --- a/build/patches/Block-qjz9zk-or-trk-requests.patch +++ b/build/patches/Block-qjz9zk-or-trk-requests.patch @@ -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 -@@ -1087,6 +1087,8 @@ component("net") { +@@ -1095,6 +1095,8 @@ component("net") { "url_request/url_request_http_job.cc", "url_request/url_request_http_job.h", "url_request/url_request_interceptor.cc", @@ -203,7 +203,7 @@ diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc #include "base/synchronization/lock.h" #include "base/task/single_thread_task_runner.h" #include "base/types/optional_util.h" -@@ -54,6 +55,7 @@ +@@ -55,6 +56,7 @@ #include "net/url_request/url_request_redirect_job.h" #include "url/gurl.h" #include "url/origin.h" @@ -211,7 +211,7 @@ diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc namespace net { -@@ -642,6 +644,12 @@ URLRequest::URLRequest(base::PassKey pass_key, +@@ -653,6 +655,12 @@ URLRequest::URLRequest(base::PassKey pass_key, // Sanity check out environment. DCHECK(base::SingleThreadTaskRunner::HasCurrentDefault()); @@ -227,7 +227,7 @@ diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc diff --git a/net/url_request/url_request_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 -@@ -49,6 +49,7 @@ +@@ -50,6 +50,7 @@ #include "net/socket/network_binding_client_socket_factory.h" #include "net/ssl/ssl_config_service_defaults.h" #include "net/url_request/static_http_user_agent_settings.h" @@ -235,7 +235,7 @@ diff --git a/net/url_request/url_request_context_builder.cc b/net/url_request/ur #include "net/url_request/url_request_context.h" #include "net/url_request/url_request_job_factory.h" #include "url/url_constants.h" -@@ -594,6 +595,8 @@ std::unique_ptr URLRequestContextBuilder::Build() { +@@ -595,6 +596,8 @@ std::unique_ptr URLRequestContextBuilder::Build() { job_factory->SetProtocolHandler(scheme_handler.first, std::move(scheme_handler.second)); } diff --git a/build/patches/Bookmarks-select-all-menu-entry.patch b/build/patches/Bookmarks-select-all-menu-entry.patch index 6165bbc2..5e1a26ec 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 -@@ -246,6 +246,9 @@ CHAR_LIMIT guidelines: +@@ -249,6 +249,9 @@ CHAR_LIMIT guidelines: Sites diff --git a/build/patches/Bromite-auto-updater.patch b/build/patches/Bromite-auto-updater.patch index 0e4bf002..3e82cb84 100644 --- a/build/patches/Bromite-auto-updater.patch +++ b/build/patches/Bromite-auto-updater.patch @@ -70,7 +70,7 @@ diff --git a/build/android/java/templates/BuildConfig.template b/build/android/j diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni --- a/build/config/android/rules.gni +++ b/build/config/android/rules.gni -@@ -1928,6 +1928,9 @@ if (!is_robolectric && enable_java_templates) { +@@ -1935,6 +1935,9 @@ if (!is_robolectric && enable_java_templates) { sources = [ "//build/android/java/templates/BuildConfig.template" ] defines = [] @@ -674,7 +674,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 -@@ -2546,6 +2546,12 @@ static_library("browser") { +@@ -2578,6 +2578,12 @@ static_library("browser") { } if (is_android) { @@ -1087,7 +1087,7 @@ new file mode 100644 diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -303,6 +303,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -308,6 +308,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kPriceChangeModule, &kPwaRestoreUi, &kPwaRestoreUiAtStartup, @@ -1098,14 +1098,14 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -381,6 +381,7 @@ public abstract class ChromeFeatureList { +@@ -388,6 +388,7 @@ public abstract class ChromeFeatureList { public static final String HISTORY_PANE_ANDROID = "HistoryPaneAndroid"; public static final String HTTPS_FIRST_BALANCED_MODE = "HttpsFirstBalancedMode"; public static final String INCOGNITO_SCREENSHOT = "IncognitoScreenshot"; + public static final String INLINE_UPDATE_FLOW = "InlineUpdateFlow"; - public static final String INSTALL_MESSAGE_THROTTLE = "InstallMessageThrottle"; - public static final String IP_PROTECTION_V1 = "IpProtectionV1"; public static final String IP_PROTECTION_UX = "IpProtectionUx"; + public static final String LEGACY_TAB_STATE_DEPRECATION = "LegacyTabStateDeprecation"; + public static final String LENS_ON_QUICK_ACTION_SEARCH_WIDGET = "LensOnQuickActionSearchWidget"; 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 @@ -1676,7 +1676,7 @@ diff --git a/chrome/browser/safety_hub/android/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 -@@ -2397,6 +2397,12 @@ Your Google account may have other forms of browsing history like searches and a +@@ -2405,6 +2405,12 @@ Your Google account may have other forms of browsing history like searches and a Chrome updates are no longer supported for this version of Android @@ -1689,7 +1689,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro -@@ -4332,7 +4338,10 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4333,7 +4339,10 @@ To change this setting, BEGIN_LINKdelete the Chrome d @@ -1701,7 +1701,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro Newer version is available -@@ -4343,6 +4352,18 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4344,6 +4353,18 @@ To change this setting, BEGIN_LINKdelete the Chrome d Android version is unsupported @@ -1723,7 +1723,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/browser/ui/lens/lens_overlay_query_controller.cc b/chrome/browser/ui/lens/lens_overlay_query_controller.cc --- a/chrome/browser/ui/lens/lens_overlay_query_controller.cc +++ b/chrome/browser/ui/lens/lens_overlay_query_controller.cc -@@ -771,6 +771,7 @@ LensOverlayQueryController::CreateEndpointFetcher( +@@ -883,6 +883,7 @@ LensOverlayQueryController::CreateEndpointFetcher( /*post_data=*/request_string, /*headers=*/request_headers, /*cors_exempt_headers=*/cors_exempt_headers, chrome::GetChannel(), diff --git a/build/patches/Bromite-subresource-adblocker.patch b/build/patches/Bromite-subresource-adblocker.patch index afecc126..30968f71 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 -@@ -443,6 +443,7 @@ chrome_java_resources = [ +@@ -441,6 +441,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", -@@ -631,6 +632,7 @@ chrome_java_resources = [ +@@ -633,6 +634,7 @@ chrome_java_resources = [ "java/res/xml/account_management_preferences.xml", "java/res/xml/ad_services_config.xml", "java/res/xml/appearance_preferences.xml", @@ -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 -@@ -874,6 +874,8 @@ chrome_java_sources = [ +@@ -875,6 +875,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", @@ -426,7 +426,7 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java -@@ -916,9 +916,7 @@ public class TabModelImpl extends TabModelJniBridge { +@@ -925,9 +925,7 @@ public class TabModelImpl extends TabModelJniBridge { .createTabWithWebContents( parent, webContents, @@ -440,7 +440,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabMod 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 -@@ -16534,6 +16534,16 @@ Please help our engineers fix this problem. Tell us what happened right before y +@@ -16585,6 +16585,16 @@ Please help our engineers fix this problem. Tell us what happened right before y Never show this again. @@ -511,7 +511,7 @@ diff --git a/chrome/browser/browser_process.h b/chrome/browser/browser_process.h diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc --- a/chrome/browser/browser_process_impl.cc +++ b/chrome/browser/browser_process_impl.cc -@@ -1236,6 +1236,34 @@ BrowserProcessImpl::component_updater() { +@@ -1248,6 +1248,34 @@ BrowserProcessImpl::component_updater() { return component_updater_.get(); } @@ -679,7 +679,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 -@@ -639,6 +639,10 @@ void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) { +@@ -642,6 +642,10 @@ void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) { StubResolverConfigReader::RegisterPrefs(registry); DefaultDnsOverHttpsConfigSource::RegisterPrefs(registry); @@ -710,8 +710,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 -@@ -218,6 +218,20 @@ CHAR_LIMIT guidelines: - Advanced +@@ -221,6 +221,20 @@ CHAR_LIMIT guidelines: + %1$s <new>New</new> + @@ -734,7 +734,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 -@@ -2851,6 +2851,11 @@ inline constexpr char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled"; +@@ -2860,6 +2860,11 @@ inline constexpr char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled"; inline constexpr char kAudioCaptureAllowedUrls[] = "hardware.audio_capture_allowed_urls"; diff --git a/build/patches/Bubble-Locking-on-UI-DevTools.patch b/build/patches/Bubble-Locking-on-UI-DevTools.patch index 55056986..d80fd02f 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 -@@ -1361,6 +1361,19 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, +@@ -1386,6 +1386,19 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, void UpdateAccessibleNameForRootView(); void UpdateAccessibleURLForRootView(const GURL& url); @@ -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. -@@ -1399,13 +1412,6 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, +@@ -1424,13 +1437,6 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, ui::ColorProviderKey GetColorProviderKey() const override; private: @@ -67,7 +67,7 @@ diff --git a/ui/views/widget/widget.h b/ui/views/widget/widget.h class PaintAsActiveLockImpl; friend class ButtonTest; -@@ -1416,11 +1422,6 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, +@@ -1441,11 +1447,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 882c44fe..980c98e0 100644 --- a/build/patches/Chrome-web-store-protection.patch +++ b/build/patches/Chrome-web-store-protection.patch @@ -37,7 +37,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../resources/extensions/toolbar.html.ts | 7 +++ .../browser/resources/extensions/toolbar.ts | 17 ++++++ .../resources/webstore_app/manifest.json | 7 +-- - .../ui/webui/extensions/extensions_ui.cc | 8 +++ + .../ui/webui/extensions/extensions_ui.cc | 7 +++ .../chrome_update_query_params_delegate.cc | 13 ++-- .../extensions/api/developer_private.idl | 2 + .../update_client/update_query_params.cc | 7 +-- @@ -50,7 +50,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html extensions/common/extension_features.cc | 14 +++++ extensions/common/extension_features.h | 2 + .../definitions/developer_private.d.ts | 2 + - 37 files changed, 253 insertions(+), 108 deletions(-) + 37 files changed, 252 insertions(+), 108 deletions(-) create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Webstore-protection.inc diff --git a/chrome/app/extensions_strings.grdp b/chrome/app/extensions_strings.grdp @@ -72,7 +72,7 @@ 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 -@@ -20,6 +20,12 @@ +@@ -21,6 +21,12 @@ #include "extensions/browser/permissions_manager.h" #endif // !BUILDFLAG(IS_ANDROID) @@ -85,7 +85,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_a namespace extensions { namespace developer = api::developer_private; -@@ -61,6 +67,28 @@ DeveloperPrivateAPI::GetFactoryInstance() { +@@ -62,6 +68,28 @@ DeveloperPrivateAPI::GetFactoryInstance() { return g_developer_private_api_factory.Pointer(); } @@ -117,7 +117,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 -@@ -32,6 +32,9 @@ class DeveloperPrivateAPI : public BrowserContextKeyedAPI, +@@ -33,6 +33,9 @@ class DeveloperPrivateAPI : public BrowserContextKeyedAPI, static BrowserContextKeyedAPIFactory* GetFactoryInstance(); @@ -130,7 +130,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_desktop.cc b/chrome/browser/extensions/api/developer_private/developer_private_functions_desktop.cc --- a/chrome/browser/extensions/api/developer_private/developer_private_functions_desktop.cc +++ b/chrome/browser/extensions/api/developer_private/developer_private_functions_desktop.cc -@@ -209,6 +209,7 @@ ExtensionFunction::ResponseAction DeveloperPrivateAutoUpdateFunction::Run() { +@@ -210,6 +210,7 @@ ExtensionFunction::ResponseAction DeveloperPrivateAutoUpdateFunction::Run() { ExtensionUpdater::CheckParams params; params.fetch_priority = DownloadFetchPriority::kForeground; params.install_immediately = true; @@ -141,7 +141,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_f 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 -@@ -311,7 +311,7 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() { +@@ -360,7 +360,7 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() { const developer::ProfileConfigurationUpdate& update = params->update; @@ -150,7 +150,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)) { -@@ -328,6 +328,11 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() { +@@ -377,6 +377,11 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() { } #endif // !BUILDFLAG(IS_ANDROID) @@ -247,7 +247,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 -@@ -84,6 +84,7 @@ UninstallPingSender::FilterResult ShouldSendUninstallPing( +@@ -85,6 +85,7 @@ UninstallPingSender::FilterResult ShouldSendUninstallPing( Profile* profile, const Extension* extension, UninstallReason reason) { @@ -271,7 +271,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 -@@ -387,6 +387,7 @@ bool ExtensionManagement::IsExemptFromMV2DeprecationByPolicy( +@@ -386,6 +386,7 @@ bool ExtensionManagement::IsExemptFromMV2DeprecationByPolicy( bool ExtensionManagement::IsAllowedByUnpublishedAvailabilityPolicy( const Extension* extension) { @@ -295,7 +295,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 -@@ -435,8 +435,6 @@ ExtensionService::ExtensionService( +@@ -248,8 +248,6 @@ ExtensionService::ExtensionService( UpgradeDetector::GetInstance()->AddObserver(this); @@ -303,8 +303,8 @@ diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/ext - ExtensionManagementFactory::GetForBrowserContext(profile_)->AddObserver(this); - // Set up the ExtensionUpdater. -@@ -1463,7 +1461,7 @@ void ExtensionService::OnExtensionManagementSettingsChanged() { + if (autoupdate_enabled) { +@@ -1020,7 +1018,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. @@ -327,7 +327,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 -@@ -50,6 +50,7 @@ +@@ -53,6 +53,7 @@ #include "extensions/browser/updater/extension_update_data.h" #include "extensions/common/constants.h" #include "extensions/common/extension.h" @@ -335,7 +335,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" -@@ -205,6 +206,10 @@ void ExtensionUpdater::Start() { +@@ -223,6 +224,10 @@ void ExtensionUpdater::Start() { DCHECK(!weak_ptr_factory_.HasWeakPtrs()); DCHECK(registry_); alive_ = true; @@ -346,7 +346,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) { if (g_should_immediately_update) -@@ -338,7 +343,8 @@ void ExtensionUpdater::AddToDownloader( +@@ -359,7 +364,8 @@ void ExtensionUpdater::AddToDownloader( const Extension& extension = **extension_iter; const ExtensionId& extension_id = extension.id(); if (!Manifest::IsAutoUpdateableLocation(extension.location())) { @@ -356,7 +356,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 -@@ -352,7 +358,7 @@ void ExtensionUpdater::AddToDownloader( +@@ -373,7 +379,7 @@ void ExtensionUpdater::AddToDownloader( continue; } @@ -365,7 +365,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, -@@ -391,6 +397,12 @@ bool ExtensionUpdater::AddExtensionToDownloader( +@@ -412,6 +418,12 @@ bool ExtensionUpdater::AddExtensionToDownloader( } void ExtensionUpdater::CheckNow(CheckParams params) { @@ -375,10 +375,10 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro + LOG(INFO) << "Extensions autoupdate is disabled."; + return; + } + CHECK(enabled_); if (params.ids.empty()) { // Checking all extensions. Cancel pending DoCheckSoon() call if there's - // one, as it would be redundant. -@@ -399,7 +411,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -421,7 +433,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { int request_id = next_request_id_++; @@ -387,7 +387,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro if (params.ids.empty()) NotifyStarted(); -@@ -472,7 +484,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -494,7 +506,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { update_check_params.update_info[pending_id] = GetExtensionUpdateData(pending_id); } else if (!Manifest::IsAutoUpdateableLocation(info->install_source())) { @@ -396,7 +396,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 -@@ -482,7 +494,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -504,7 +516,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(); @@ -405,7 +405,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 = -@@ -505,6 +517,8 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -527,6 +539,8 @@ void ExtensionUpdater::CheckNow(CheckParams params) { LOG(WARNING) << "Corrupt extension with id " << pending_id << " will be reinstalled with ExtensionDownloader."; } @@ -414,7 +414,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro } else { InstallStageTracker::Get(profile_)->ReportFailure( pending_id, -@@ -517,13 +531,6 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -539,13 +553,6 @@ void ExtensionUpdater::CheckNow(CheckParams params) { AddToDownloader(®istry_->disabled_extensions(), pending_ids, request_id, params.fetch_priority, &update_check_params); ExtensionSet remotely_disabled_extensions; @@ -428,7 +428,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 { -@@ -531,7 +538,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -553,7 +560,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { const Extension* extension = registry_->GetExtensionById(id, ExtensionRegistry::EVERYTHING); if (extension) { @@ -437,7 +437,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)) { -@@ -672,7 +679,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished( +@@ -697,7 +704,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished( file.extension_id, InstallStageTracker::Stage::INSTALLING); UpdatePingData(file.extension_id, ping); @@ -446,7 +446,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)); -@@ -683,6 +690,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished( +@@ -708,6 +715,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished( bool ExtensionUpdater::GetPingDataForExtension(const ExtensionId& id, DownloadPingData* ping_data) { @@ -454,7 +454,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)); -@@ -796,7 +804,7 @@ bool ExtensionUpdater::CanUseUpdateService( +@@ -823,7 +831,7 @@ bool ExtensionUpdater::CanUseUpdateService( void ExtensionUpdater::InstallCRXFile(FetchedCRXFile crx_file) { std::set request_ids; @@ -462,8 +462,8 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro + LOG(INFO) << "Updating " << crx_file.info.extension_id << " with " << crx_file.info.path.value(); - // The ExtensionService is now responsible for cleaning up the temp file -@@ -905,7 +913,7 @@ void ExtensionUpdater::NotifyIfFinished(int request_id) { + // The delegate is now responsible for cleaning up the temp file at +@@ -1031,7 +1039,7 @@ void ExtensionUpdater::NotifyIfFinished(int request_id) { InProgressCheck& request = requests_in_progress_[request_id]; if (!request.in_progress_ids.empty() || request.awaiting_update_service) return; // This request is not done yet. @@ -475,7 +475,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro diff --git a/chrome/browser/extensions/updater/extension_updater.h b/chrome/browser/extensions/updater/extension_updater.h --- a/chrome/browser/extensions/updater/extension_updater.h +++ b/chrome/browser/extensions/updater/extension_updater.h -@@ -83,6 +83,8 @@ class ExtensionUpdater : public ExtensionDownloaderDelegate { +@@ -82,6 +82,8 @@ class ExtensionUpdater : public KeyedService, // right away. bool install_immediately = false; @@ -484,15 +484,15 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.h b/chrome/brow // An extension update check can be originated by a user or by a scheduled // task. When the value of |fetch_priority| is FOREGROUND, the update // request was initiated by a user. -@@ -334,6 +336,8 @@ class ExtensionUpdater : public ExtensionDownloaderDelegate { +@@ -371,6 +373,8 @@ class ExtensionUpdater : public KeyedService, base::TimeDelta frequency_; bool will_check_soon_ = false; + bool first_start_ = true; + - raw_ptr extension_prefs_ = nullptr; - raw_ptr prefs_ = nullptr; - raw_ptr profile_ = nullptr; + raw_ptr extension_prefs_ = nullptr; + raw_ptr prefs_ = nullptr; + raw_ptr profile_ = nullptr; 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 @@ -508,7 +508,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()); @@ -541,15 +541,15 @@ diff --git a/chrome/browser/resources/extensions/manager.ts b/chrome/browser/res showDrawer_: {type: Boolean}, @@ -167,6 +169,8 @@ export class ExtensionsManagerElement extends ExtensionsManagerElementBase { - inDevMode: boolean = loadTimeData.getBoolean('inDevMode'); - isMv2DeprecationNoticeDismissed: boolean = + accessor inDevMode: boolean = loadTimeData.getBoolean('inDevMode'); + accessor isMv2DeprecationNoticeDismissed: boolean = loadTimeData.getBoolean('MV2DeprecationNoticeDismissed'); + isExtUpdateEnabled: boolean = + loadTimeData.getBoolean('isExtUpdateEnabled'); - showActivityLog: boolean = loadTimeData.getBoolean('showActivityLog'); - enableEnhancedSiteControls: boolean = - loadTimeData.getBoolean('enableEnhancedSiteControls'); -@@ -228,6 +232,7 @@ export class ExtensionsManagerElement extends ExtensionsManagerElementBase { + accessor showActivityLog: boolean = + loadTimeData.getBoolean('showActivityLog'); + accessor enableEnhancedSiteControls: boolean = +@@ -231,6 +235,7 @@ export class ExtensionsManagerElement extends ExtensionsManagerElementBase { this.canLoadUnpacked = profileInfo.canLoadUnpacked; this.isMv2DeprecationNoticeDismissed = profileInfo.isMv2DeprecationNoticeDismissed; @@ -560,7 +560,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 -@@ -306,6 +306,11 @@ export class Service implements ServiceInterface { +@@ -311,6 +311,11 @@ export class Service implements ServiceInterface { {inDeveloperMode: inDevMode}); } @@ -590,10 +590,10 @@ diff --git a/chrome/browser/resources/extensions/toolbar.css b/chrome/browser/re diff --git a/chrome/browser/resources/extensions/toolbar.html.ts b/chrome/browser/resources/extensions/toolbar.html.ts --- a/chrome/browser/resources/extensions/toolbar.html.ts +++ b/chrome/browser/resources/extensions/toolbar.html.ts -@@ -25,6 +25,13 @@ export function getHtml(this: ToolbarElement) { - aria-labelledby="devModeLabel"> - - +@@ -32,6 +32,13 @@ export function getHtml(this: ToolbarElement) { + + + +
+ $i18n{toolbarExtensionUpdateEnabled} + $i18n{toolbarExtensionUpdateEnabledNeedRestart} @@ -645,13 +645,13 @@ diff --git a/chrome/browser/resources/extensions/toolbar.ts b/chrome/browser/res /** * Prevents initiating update while update is in progress. @@ -103,6 +112,8 @@ export class ExtensionsToolbarElement extends ExtensionsToolbarElementBase { - extensions: chrome.developerPrivate.ExtensionInfo[] = []; - delegate: ToolbarDelegate = new DummyToolbarDelegate(); - inDevMode: boolean = false; + accessor extensions: chrome.developerPrivate.ExtensionInfo[] = []; + accessor delegate: ToolbarDelegate = new DummyToolbarDelegate(); + accessor inDevMode: boolean = false; + isExtUpdateEnabled: boolean = false; + shouldShowRelaunchDialog: boolean = false; - devModeControlledByPolicy: boolean = false; - isChildAccount: boolean = false; + accessor devModeControlledByPolicy: boolean = false; + accessor isChildAccount: boolean = false; @@ -155,6 +166,12 @@ export class ExtensionsToolbarElement extends ExtensionsToolbarElementBase { 'Options_ToggleDeveloperMode_' + (e.detail ? 'Enabled' : 'Disabled')); @@ -685,16 +685,15 @@ diff --git a/chrome/browser/resources/webstore_app/manifest.json b/chrome/browse diff --git a/chrome/browser/ui/webui/extensions/extensions_ui.cc b/chrome/browser/ui/webui/extensions/extensions_ui.cc --- a/chrome/browser/ui/webui/extensions/extensions_ui.cc +++ b/chrome/browser/ui/webui/extensions/extensions_ui.cc -@@ -53,6 +53,8 @@ - #include "ui/base/webui/web_ui_util.h" - #include "ui/webui/webui_util.h" - +@@ -17,6 +17,7 @@ + #include "base/values.h" + #include "build/build_config.h" + #include "chrome/browser/browser_process.h" +#include "chrome/browser/extensions/api/developer_private/developer_private_api.h" -+ - namespace extensions { - - namespace { -@@ -375,6 +377,8 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile, + #include "chrome/browser/extensions/manifest_v2_experiment_manager.h" + #include "chrome/browser/extensions/mv2_experiment_stage.h" + #include "chrome/browser/extensions/permissions_url_constants.h" +@@ -379,6 +380,8 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile, {"itemSuspiciousInstallLearnMore", IDS_EXTENSIONS_ADDED_WITHOUT_KNOWLEDGE_LEARN_MORE}, {"toolbarDevMode", IDS_EXTENSIONS_DEVELOPER_MODE}, @@ -703,7 +702,7 @@ diff --git a/chrome/browser/ui/webui/extensions/extensions_ui.cc b/chrome/browse {"toolbarLoadUnpacked", IDS_EXTENSIONS_TOOLBAR_LOAD_UNPACKED}, {"toolbarLoadUnpackedDone", IDS_EXTENSIONS_TOOLBAR_LOAD_UNPACKED_DONE}, {"toolbarPack", IDS_EXTENSIONS_TOOLBAR_PACK}, -@@ -459,6 +463,10 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile, +@@ -463,6 +466,10 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile, "hostPermissionsLearnMoreLink", extension_permissions_constants::kRuntimeHostPermissionsHelpURL); source->AddBoolean(kInDevModeKey, in_dev_mode); @@ -740,15 +739,15 @@ diff --git a/chrome/browser/update_client/chrome_update_query_params_delegate.cc diff --git a/chrome/common/extensions/api/developer_private.idl b/chrome/common/extensions/api/developer_private.idl --- a/chrome/common/extensions/api/developer_private.idl +++ b/chrome/common/extensions/api/developer_private.idl -@@ -300,6 +300,7 @@ namespace developerPrivate { +@@ -272,6 +272,7 @@ namespace developerPrivate { boolean isIncognitoAvailable; boolean isChildAccount; boolean isMv2DeprecationNoticeDismissed; + boolean isExtensionAutoupdateEnabled; }; - // DEPRECATED: Prefer ExtensionInfo. -@@ -360,6 +361,7 @@ namespace developerPrivate { + dictionary GetExtensionsInfoOptions { +@@ -295,6 +296,7 @@ namespace developerPrivate { dictionary ProfileConfigurationUpdate { boolean? inDeveloperMode; boolean? isMv2DeprecationNoticeDismissed; @@ -807,7 +806,7 @@ new file mode 100644 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 -@@ -25,6 +25,9 @@ +@@ -26,6 +26,9 @@ #include "components/supervised_user/core/common/buildflags.h" #include "components/supervised_user/core/common/features.h" #include "content/public/browser/browser_context.h" @@ -817,7 +816,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" -@@ -40,6 +43,7 @@ +@@ -41,6 +44,7 @@ #include "extensions/common/api/management.h" #include "extensions/common/error_utils.h" #include "extensions/common/extension.h" @@ -825,7 +824,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" -@@ -91,6 +95,27 @@ std::vector CreateWarningsList(const Extension* extension) { +@@ -92,6 +96,27 @@ std::vector CreateWarningsList(const Extension* extension) { return warnings_list; } @@ -853,7 +852,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br std::vector GetAvailableLaunchTypes( const Extension& extension, const ManagementAPIDelegate* delegate) { -@@ -268,6 +293,8 @@ void AddExtensionInfo(const Extension* source_extension, +@@ -269,6 +294,8 @@ void AddExtensionInfo(const Extension* source_extension, const ExtensionSet& extensions, ExtensionInfoList* extension_list, content::BrowserContext* context) { @@ -862,7 +861,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; -@@ -313,10 +340,9 @@ ExtensionFunction::ResponseAction ManagementGetFunction::Run() { +@@ -314,10 +341,9 @@ ExtensionFunction::ResponseAction ManagementGetFunction::Run() { std::optional params = management::Get::Params::Create(args()); EXTENSION_FUNCTION_VALIDATE(params); @@ -874,7 +873,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br if (!target_extension) { return RespondNow(Error(keys::kNoExtensionError, params->id)); } -@@ -337,8 +363,7 @@ ManagementGetPermissionWarningsByIdFunction::Run() { +@@ -338,8 +364,7 @@ ManagementGetPermissionWarningsByIdFunction::Run() { EXTENSION_FUNCTION_VALIDATE(params); const Extension* extension = @@ -884,7 +883,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br if (!extension) { return RespondNow(Error(keys::kNoExtensionError, params->id)); } -@@ -406,8 +431,7 @@ ExtensionFunction::ResponseAction ManagementLaunchAppFunction::Run() { +@@ -407,8 +432,7 @@ ExtensionFunction::ResponseAction ManagementLaunchAppFunction::Run() { } const Extension* extension = @@ -894,7 +893,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br if (!extension) { return RespondNow(Error(keys::kNoExtensionError, params->id)); } -@@ -547,8 +571,8 @@ void ManagementSetEnabledFunction::CheckPermissionsIncrease() { +@@ -550,8 +574,8 @@ void ManagementSetEnabledFunction::CheckPermissionsIncrease() { // Extension could have been uninstalled externally while previous check was // happening. const Extension* extension = @@ -905,7 +904,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br if (!extension) { FinishEnable(Error(keys::kNoExtensionError)); return; -@@ -591,8 +615,8 @@ void ManagementSetEnabledFunction::CheckManifestV2Deprecation() { +@@ -594,8 +618,8 @@ void ManagementSetEnabledFunction::CheckManifestV2Deprecation() { // Extension can be uninstalled externally while the previous check was // happening async. const Extension* extension = @@ -916,7 +915,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br if (!extension) { FinishEnable(Error(keys::kNoExtensionError)); return; -@@ -736,8 +760,8 @@ void ManagementSetEnabledFunction::OnSupervisedExtensionApprovalDone( +@@ -739,8 +763,8 @@ void ManagementSetEnabledFunction::OnSupervisedExtensionApprovalDone( } const Extension* ManagementSetEnabledFunction::GetExtension() { @@ -927,7 +926,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br } ManagementUninstallFunctionBase::ManagementUninstallFunctionBase() = default; -@@ -762,8 +786,7 @@ ExtensionFunction::ResponseAction ManagementUninstallFunctionBase::Uninstall( +@@ -765,8 +789,7 @@ ExtensionFunction::ResponseAction ManagementUninstallFunctionBase::Uninstall( ->GetDelegate(); target_extension_id_ = target_extension_id; const Extension* target_extension = @@ -937,7 +936,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_)); -@@ -828,8 +851,7 @@ void ManagementUninstallFunctionBase::UninstallExtension() { +@@ -831,8 +854,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 = @@ -947,7 +946,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br ExtensionRegistry::EVERYTHING); std::string error; bool success = false; -@@ -906,8 +928,7 @@ ExtensionFunction::ResponseAction ManagementCreateAppShortcutFunction::Run() { +@@ -912,8 +934,7 @@ ExtensionFunction::ResponseAction ManagementCreateAppShortcutFunction::Run() { management::CreateAppShortcut::Params::Create(args()); EXTENSION_FUNCTION_VALIDATE(params); const Extension* extension = @@ -957,7 +956,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))); -@@ -960,8 +981,7 @@ ExtensionFunction::ResponseAction ManagementSetLaunchTypeFunction::Run() { +@@ -967,8 +988,7 @@ ExtensionFunction::ResponseAction ManagementSetLaunchTypeFunction::Run() { management::SetLaunchType::Params::Create(args()); EXTENSION_FUNCTION_VALIDATE(params); const Extension* extension = @@ -1206,8 +1205,8 @@ diff --git a/extensions/browser/updater/safe_manifest_parser.cc b/extensions/bro diff --git a/extensions/common/extension_features.cc b/extensions/common/extension_features.cc --- a/extensions/common/extension_features.cc +++ b/extensions/common/extension_features.cc -@@ -200,4 +200,18 @@ BASE_FEATURE(kDebuggerAPIRestrictedToDevMode, - "DebuggerAPIRestrictedToDevMode", +@@ -209,4 +209,18 @@ BASE_FEATURE(kExtensionBrowserNamespaceAlternative, + "ExtensionBrowserNamespaceAlternative", base::FEATURE_DISABLED_BY_DEFAULT); +// Activates the auto update of extensions. @@ -1228,9 +1227,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 -@@ -242,6 +242,8 @@ BASE_DECLARE_FEATURE(kUserScriptUserExtensionToggle); - // capability, even when no other API/feature might be restricted by it. - BASE_DECLARE_FEATURE(kDebuggerAPIRestrictedToDevMode); +@@ -252,6 +252,8 @@ BASE_DECLARE_FEATURE(kDebuggerAPIRestrictedToDevMode); + // `loadTimes` , `csi`, etc. or deprecated APIs (e.g. `app`). + BASE_DECLARE_FEATURE(kExtensionBrowserNamespaceAlternative); +BASE_DECLARE_FEATURE(kEnableExtensionAutoupdate); +BASE_DECLARE_FEATURE(kEnableExtensionManagementToChromeStore); @@ -1240,7 +1239,7 @@ diff --git a/extensions/common/extension_features.h b/extensions/common/extensio diff --git a/tools/typescript/definitions/developer_private.d.ts b/tools/typescript/definitions/developer_private.d.ts --- a/tools/typescript/definitions/developer_private.d.ts +++ b/tools/typescript/definitions/developer_private.d.ts -@@ -284,6 +284,7 @@ declare global { +@@ -264,6 +264,7 @@ declare global { isIncognitoAvailable: boolean; isChildAccount: boolean; isMv2DeprecationNoticeDismissed: boolean; @@ -1248,7 +1247,7 @@ diff --git a/tools/typescript/definitions/developer_private.d.ts b/tools/typescr } export interface ExtensionConfigurationUpdate { -@@ -301,6 +302,7 @@ declare global { +@@ -281,6 +282,7 @@ declare global { export interface ProfileConfigurationUpdate { inDeveloperMode?: boolean; isMv2DeprecationNoticeDismissed?: boolean; diff --git a/build/patches/Clear-CORS-Preflight-Cache-on-clearing-data.patch b/build/patches/Clear-CORS-Preflight-Cache-on-clearing-data.patch index a48970fa..93c4b172 100644 --- a/build/patches/Clear-CORS-Preflight-Cache-on-clearing-data.patch +++ b/build/patches/Clear-CORS-Preflight-Cache-on-clearing-data.patch @@ -15,7 +15,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/services/network/cors/preflight_cache.cc b/services/network/cors/preflight_cache.cc --- a/services/network/cors/preflight_cache.cc +++ b/services/network/cors/preflight_cache.cc -@@ -200,6 +200,10 @@ void PreflightCache::MayPurgeForTesting(size_t max_entries, size_t purge_unit) { +@@ -204,6 +204,10 @@ void PreflightCache::MayPurgeForTesting(size_t max_entries, size_t purge_unit) { MayPurge(max_entries, purge_unit); } @@ -79,7 +79,7 @@ diff --git a/services/network/cors/preflight_result.cc b/services/network/cors/p diff --git a/services/network/network_context.cc b/services/network/network_context.cc --- a/services/network/network_context.cc +++ b/services/network/network_context.cc -@@ -1324,6 +1324,7 @@ void NetworkContext::ClearHttpCache(base::Time start_time, +@@ -1328,6 +1328,7 @@ void NetworkContext::ClearHttpCache(base::Time start_time, base::Time end_time, mojom::ClearDataFilterPtr filter, ClearHttpCacheCallback callback) { diff --git a/build/patches/Client-hints-overrides.patch b/build/patches/Client-hints-overrides.patch index 5dfefd8b..646d747d 100644 --- a/build/patches/Client-hints-overrides.patch +++ b/build/patches/Client-hints-overrides.patch @@ -30,7 +30,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/components/embedder_support/user_agent_utils.cc b/components/embedder_support/user_agent_utils.cc --- a/components/embedder_support/user_agent_utils.cc +++ b/components/embedder_support/user_agent_utils.cc -@@ -185,9 +185,7 @@ const blink::UserAgentBrandList GetUserAgentBrandList( +@@ -203,9 +203,7 @@ const blink::UserAgentBrandList GetUserAgentBrandList( bool parse_result = base::StringToInt(major_version, &major_version_number); DCHECK(parse_result); std::optional brand; @@ -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 -@@ -62,6 +62,7 @@ +@@ -57,6 +57,7 @@ #include "third_party/blink/public/common/features.h" #include "third_party/blink/public/common/page/page_zoom.h" #include "third_party/blink/public/common/user_agent/user_agent_metadata.h" @@ -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" -@@ -708,7 +709,8 @@ void UpdateNavigationRequestClientUaHeadersImpl( +@@ -703,7 +704,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(); -@@ -890,10 +892,12 @@ void AddRequestClientHintsHeaders( +@@ -885,10 +887,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); -@@ -974,6 +978,7 @@ ParseAndPersistAcceptCHForNavigation( +@@ -969,6 +973,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 -@@ -1305,6 +1305,11 @@ void NavigationURLLoaderImpl::OnAcceptCHFrameReceived( +@@ -1345,6 +1345,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 -@@ -105,6 +105,7 @@ const size_t kMaxRestarts = 32; +@@ -107,6 +107,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 -@@ -224,6 +224,8 @@ bool ShouldSendClientHint(const network::PermissionsPolicy& policy, +@@ -226,6 +226,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( -@@ -604,7 +606,7 @@ void FrameFetchContext::AddClientHintsIfNecessary( +@@ -606,7 +608,7 @@ void FrameFetchContext::AddClientHintsIfNecessary( } // Only send User Agent hints if the info is available @@ -255,9 +255,9 @@ 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 -@@ -439,6 +439,11 @@ +@@ -450,6 +450,11 @@ name: "AriaNotifyV2", - status: "test", + status: {"Android": "test", "Win": "test", "Mac": "test", "Linux": "test"}, }, + { + name: "UserAgentClientHint", @@ -267,7 +267,7 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 { name: "AriaRowColIndexText", status: "stable", -@@ -804,8 +809,7 @@ +@@ -818,8 +823,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 @@ -276,5 +276,5 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 + name: "ClientHintUAHighEntropyValuesPermissionPolicy", // disabled by default }, { - // Enables the API for getting a unique token of the system clipboard's + // Enables clipboardchange event API for listening for changes to the -- diff --git a/build/patches/Close-Sessions-On-Ip-Change.patch b/build/patches/Close-Sessions-On-Ip-Change.patch index b0d3afec..6770b493 100644 --- a/build/patches/Close-Sessions-On-Ip-Change.patch +++ b/build/patches/Close-Sessions-On-Ip-Change.patch @@ -87,7 +87,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 -@@ -485,7 +485,7 @@ BASE_FEATURE_PARAM(size_t, +@@ -484,7 +484,7 @@ BASE_FEATURE_PARAM(size_t, // NetworkChangeNotifier::AreNetworkHandlesSupported). #if BUILDFLAG(IS_ANDROID) inline constexpr auto kMigrateSessionsOnNetworkChangeV2Default = diff --git a/build/patches/Content-settings-infrastructure.patch b/build/patches/Content-settings-infrastructure.patch index a138928e..2968d8fc 100644 --- a/build/patches/Content-settings-infrastructure.patch +++ b/build/patches/Content-settings-infrastructure.patch @@ -44,12 +44,12 @@ Require: bromite-build-utils.patch .../BromiteCustomContentSettingImpl.java | 412 ++++++++++++++++++ ...tomTriStateSiteSettingsPreferenceImpl.java | 24 + .../ContentSettingsResources.java | 16 +- - .../site_settings/SingleCategorySettings.java | 56 ++- + .../site_settings/SingleCategorySettings.java | 54 ++- .../site_settings/SingleWebsiteSettings.java | 58 ++- .../site_settings/SiteSettings.java | 33 +- .../site_settings/SiteSettingsCategory.java | 18 +- .../site_settings/SiteSettingsDelegate.java | 2 + - .../TriStateSiteSettingsPreference.java | 13 +- + .../TriStateSiteSettingsPreference.java | 11 + .../browser_ui/site_settings/Website.java | 6 +- .../WebsitePermissionsFetcher.java | 2 +- .../WebsitePreferenceBridge.java | 3 +- @@ -76,7 +76,7 @@ Require: bromite-build-utils.patch .../renderer/content_settings_agent_impl.cc | 74 ++++ .../renderer/content_settings_agent_impl.h | 9 + .../PageInfoPermissionsController.java | 9 + - .../PermissionParamsListBuilder.java | 8 +- + .../PermissionParamsListBuilder.java | 8 + .../android/page_info_controller_android.cc | 18 + components/page_info/page_info.cc | 23 +- components/page_info/page_info_ui.cc | 25 ++ @@ -84,7 +84,7 @@ Require: bromite-build-utils.patch .../platform/web_content_settings_client.h | 13 + .../execution_context/execution_context.cc | 16 + .../execution_context/execution_context.h | 5 + - 73 files changed, 1942 insertions(+), 106 deletions(-) + 73 files changed, 1942 insertions(+), 102 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 @@ -98,7 +98,7 @@ Require: bromite-build-utils.patch 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 -@@ -67,6 +67,10 @@ import org.chromium.url.GURL; +@@ -69,6 +69,10 @@ import org.chromium.url.GURL; import java.util.List; import java.util.Set; @@ -108,8 +108,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/C + /** A SiteSettingsDelegate instance that contains Chrome-specific Site Settings logic. */ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { - public static final String EMBEDDED_CONTENT_HELP_CENTER_URL = -@@ -236,7 +240,7 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { + private final Context mContext; +@@ -232,7 +236,7 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { @Override public boolean isHelpAndFeedbackEnabled() { @@ -118,7 +118,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/C } @Override -@@ -393,6 +397,17 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { +@@ -389,6 +393,17 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { return mPrivacySandboxBridge.getRelatedWebsiteSetOwner(memberOrigin); } @@ -151,7 +151,7 @@ diff --git a/chrome/browser/content_settings/page_specific_content_settings_dele diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.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 -@@ -1526,4 +1526,5 @@ +@@ -1574,4 +1574,5 @@ @@ -263,9 +263,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, -@@ -166,6 +167,7 @@ function addPrivacyChildRoutes(r: Partial) { - r.SITE_SETTINGS_WEB_APP_INSTALLATION = - r.SITE_SETTINGS.createChild('webApplications'); +@@ -170,6 +171,7 @@ function addPrivacyChildRoutes(r: Partial) { + r.SITE_SETTINGS_LOCAL_NETWORK_ACCESS = + r.SITE_SETTINGS.createChild('localNetworkAccess'); } + setupContentSettingsRoutes(r); } @@ -322,9 +322,9 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d + askOptionSubLabel: string; + askOptionIcon: string; private pref_: chrome.settingsPrivate.PrefObject; + selected: boolean; - override ready() { -@@ -124,6 +132,13 @@ export class SettingsCategoryDefaultRadioGroupElement extends +@@ -125,6 +133,13 @@ export class SettingsCategoryDefaultRadioGroupElement extends (category: ContentSettingsTypes) => this.onCategoryChanged_(category)); } @@ -336,9 +336,9 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d + } + private getAllowOptionForCategory_(): ContentSetting { + // Keep elements in alphabetical order within their groups. switch (this.category) { - case ContentSettingsTypes.ADS: -@@ -172,6 +187,8 @@ export class SettingsCategoryDefaultRadioGroupElement extends +@@ -175,6 +190,8 @@ export class SettingsCategoryDefaultRadioGroupElement extends // "Ask" vs "Blocked". return ContentSetting.ASK; default: @@ -347,15 +347,15 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d assertNotReached('Invalid category: ' + this.category); } } -@@ -196,6 +213,7 @@ export class SettingsCategoryDefaultRadioGroupElement extends +@@ -199,6 +216,7 @@ export class SettingsCategoryDefaultRadioGroupElement extends /** @type {!ContentSetting} */ (this.getAllowOptionForCategory_()); this.browserProxy.setDefaultValueForContentType( this.category, + this.pref_.value === SiteContentRadioSetting.ASK ? "ask" : this.categoryEnabled_ ? allowOption : ContentSetting.BLOCK); - } - -@@ -227,7 +245,10 @@ export class SettingsCategoryDefaultRadioGroupElement extends + if (this.selected !== this.categoryEnabled_) { + this.selected = this.categoryEnabled_; +@@ -235,7 +253,10 @@ export class SettingsCategoryDefaultRadioGroupElement extends } const enabled = this.computeIsSettingEnabled(update.setting); @@ -365,13 +365,13 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d + const prefValue = ask ? SiteContentRadioSetting.ASK : + enabled ? SiteContentRadioSetting.ENABLED : SiteContentRadioSetting.DISABLED; - + this.selected = enabled; this.set('pref_.value', prefValue); diff --git a/chrome/browser/resources/settings/site_settings/site_details.html b/chrome/browser/resources/settings/site_settings/site_details.html --- a/chrome/browser/resources/settings/site_settings/site_details.html +++ b/chrome/browser/resources/settings/site_settings/site_details.html -@@ -326,4 +326,5 @@ - label="$i18n{siteSettingsWebAppInstallation}"> +@@ -333,4 +333,5 @@ + label="$i18n{siteSettingsLocalNetworkAccess}"> +
@@ -589,7 +589,7 @@ diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_ { route: routes.SITE_SETTINGS_ADS, id: Id.ADS, -@@ -440,10 +440,36 @@ function getCategoryItemMap(): Map { +@@ -450,10 +450,36 @@ function getCategoryItemMap(): Map { icon: 'privacy:cookie', }, ]; @@ -626,7 +626,7 @@ diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_ function buildItemListFromIds(orderedIdList: ContentSettingsTypes[]): CategoryListItem[] { const map = getCategoryItemMap(); -@@ -532,7 +558,7 @@ export class SettingsSiteSettingsPageElement extends +@@ -543,7 +569,7 @@ export class SettingsSiteSettingsPageElement extends Id.IMAGES, Id.POPUPS, ]), @@ -693,7 +693,7 @@ diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_ /** * Determine localization string for i18n for a given content settings type. * Sorted alphabetically by |ContentSettingsType|. -@@ -108,6 +156,13 @@ export function getLocalizationStringForContentType( +@@ -110,6 +158,13 @@ export function getLocalizationStringForContentType( case ContentSettingsTypes.SMART_CARD_READERS: return null; default: @@ -710,7 +710,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 -@@ -1789,6 +1789,7 @@ static_library("ui") { +@@ -1802,6 +1802,7 @@ static_library("ui") { "//components/commerce/core/mojom:mojo_bindings", "//components/commerce/core/webui", "//components/endpoint_fetcher:endpoint_fetcher", @@ -718,7 +718,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/policy", -@@ -5001,6 +5002,7 @@ static_library("ui") { +@@ -5028,6 +5029,7 @@ static_library("ui") { "//components/power_bookmarks/storage", "//components/prefs", "//components/reading_list/features:flags", @@ -841,7 +841,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.cc b/chrom // For guard content settings and Automatic Picture-in-Picture, ASK is treated // as an "on" state. const bool show_blocked_badge = -@@ -576,6 +585,17 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon( +@@ -580,6 +589,17 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon( icon = &vector_icons::kPrinterIcon; break; default: @@ -862,7 +862,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.cc b/chrom diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.h b/chrome/browser/ui/views/page_info/page_info_view_factory.h --- a/chrome/browser/ui/views/page_info/page_info_view_factory.h +++ b/chrome/browser/ui/views/page_info/page_info_view_factory.h -@@ -95,6 +95,11 @@ class PageInfoViewFactory { +@@ -96,6 +96,11 @@ class PageInfoViewFactory { const PageInfo::PermissionInfo& info, bool blocked_on_system_level = false); @@ -1177,7 +1177,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide #include "build/branding_buildflags.h" #include "build/build_config.h" #include "build/buildflag.h" -@@ -74,6 +75,9 @@ +@@ -76,6 +77,9 @@ #include "components/dom_distiller/core/dom_distiller_features.h" #include "components/google/core/common/google_util.h" #include "components/history/core/common/pref_names.h" @@ -1187,7 +1187,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" -@@ -3812,6 +3816,56 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, +@@ -3822,6 +3826,56 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, policy_indicator::AddLocalizedStrings(html_source); AddSecurityKeysStrings(html_source); @@ -1256,7 +1256,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b #include "components/content_settings/core/common/content_settings.h" #include "components/content_settings/core/common/content_settings_pattern.h" #include "components/content_settings/core/common/content_settings_types.h" -@@ -250,13 +252,13 @@ constexpr auto kContentSettingsTypeGroupNames = std::to_array< +@@ -251,13 +253,13 @@ constexpr auto kContentSettingsTypeGroupNames = std::to_array< {ContentSettingsType::REVOKED_DISRUPTIVE_NOTIFICATION_PERMISSIONS, nullptr}, }); @@ -1277,7 +1277,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b struct SiteSettingSourceStringMapping { SiteSettingSource source; -@@ -504,6 +506,13 @@ bool HasRegisteredGroupName(ContentSettingsType type) { +@@ -505,6 +507,13 @@ bool HasRegisteredGroupName(ContentSettingsType type) { return true; } } @@ -1291,7 +1291,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b return false; } -@@ -517,11 +526,24 @@ ContentSettingsType ContentSettingsTypeFromGroupName(std::string_view name) { +@@ -518,11 +527,24 @@ ContentSettingsType ContentSettingsTypeFromGroupName(std::string_view name) { return entry.type; } } @@ -1317,7 +1317,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 -@@ -536,7 +558,6 @@ std::string_view ContentSettingsTypeToGroupName(ContentSettingsType type) { +@@ -537,7 +559,6 @@ std::string_view ContentSettingsTypeToGroupName(ContentSettingsType type) { return entry.name ? entry.name : std::string_view(); } } @@ -1325,8 +1325,8 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b NOTREACHED() << static_cast(type) << " is not a recognized content settings type."; } -@@ -645,6 +666,13 @@ std::vector GetVisiblePermissionCategories( - base_types->push_back(ContentSettingsType::WEB_APP_INSTALLATION); +@@ -649,6 +670,13 @@ std::vector GetVisiblePermissionCategories( + base_types->push_back(ContentSettingsType::LOCAL_NETWORK_ACCESS); } + content_settings::WebsiteSettingsRegistry* website_settings = @@ -1499,13 +1499,13 @@ diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium + holder.setDividerAllowedAbove(true); + holder.setDividerAllowedBelow(true); + } - ((TextView) assumeNonNull(holder.findViewById(R.id.title))).setText(getTitle()); + ((TextView) holder.findViewById(R.id.title)).setText(getTitle()); CharSequence summary = getSummary(); TextView summaryView = ((TextView) holder.findViewById(R.id.summary)); 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 -@@ -148,6 +148,23 @@ android_library("java") { +@@ -151,6 +151,23 @@ android_library("java") { ":site_settings_jni_headers", "//components/content_settings/android:java_pref_names_srcjar", ] @@ -1529,7 +1529,7 @@ diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/b } android_library("javatests") { -@@ -196,6 +213,7 @@ robolectric_library("junit") { +@@ -200,6 +217,7 @@ robolectric_library("junit") { } android_resources("java_resources") { @@ -1540,7 +1540,7 @@ diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/b diff --git a/components/browser_ui/site_settings/android/java/res/xml/site_settings_preferences.xml b/components/browser_ui/site_settings/android/java/res/xml/site_settings_preferences.xml --- a/components/browser_ui/site_settings/android/java/res/xml/site_settings_preferences.xml +++ b/components/browser_ui/site_settings/android/java/res/xml/site_settings_preferences.xml -@@ -181,4 +181,11 @@ The order of the following items is from: http://crbug.com/610358. +@@ -185,4 +185,11 @@ The order of the following items is from: http://crbug.com/610358. android:title="@string/safety_hub_autorevocation_toggle_title" android:summary="@string/safety_hub_autorevocation_toggle_summary" /> @@ -1555,7 +1555,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 -@@ -397,7 +397,8 @@ public class AllSiteSettings extends BaseSiteSettingsFragment +@@ -389,7 +389,8 @@ public class AllSiteSettings extends BaseSiteSettingsFragment if (queryHasChanged) getInfoForOrigins(); }); @@ -1565,7 +1565,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c MenuItem help = menu.add( Menu.NONE, -@@ -409,6 +410,8 @@ public class AllSiteSettings extends BaseSiteSettingsFragment +@@ -401,6 +402,8 @@ public class AllSiteSettings extends BaseSiteSettingsFragment getResources(), R.drawable.ic_help_and_feedback, getContext().getTheme())); @@ -2190,27 +2190,27 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c - private static class ResourceItem { + public static class ResourceItem { private final int mIcon; + private final int mIconBlocked; private final int mTitle; - private final @ContentSettingValues @Nullable Integer mDefaultEnabledValue; -@@ -49,7 +49,7 @@ public class ContentSettingsResources { - private final int mDisabledSummary; - private final int mSummaryOverrideForScreenReader; +@@ -54,7 +54,7 @@ public class ContentSettingsResources { + private int mEnabledDescriptionText; + private int mDisabledDescriptionText; - ResourceItem( + public ResourceItem( int icon, int title, @ContentSettingValues @Nullable Integer defaultEnabledValue, -@@ -450,6 +450,8 @@ public class ContentSettingsResources { - R.string.website_settings_category_vr_blocked, - R.string.website_settings_category_vr_a11y); +@@ -641,6 +641,8 @@ public class ContentSettingsResources { + R.string.website_settings_vr_ask, + R.string.website_settings_vr_block); } + ResourceItem ri = BromiteCustomContentSettingImpl.getResourceItem(contentType); + if (ri != null) return ri; assert false; // NOTREACHED return assumeNonNull(null); } -@@ -608,6 +610,14 @@ public class ContentSettingsResources { +@@ -799,6 +801,14 @@ public class ContentSettingsResources { return getResourceItem(contentType).getDefaultDisabledValue(); } @@ -2225,19 +2225,19 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c /** * Returns the string resource id for a given ContentSetting to show with a permission category. * -@@ -781,6 +791,8 @@ public class ContentSettingsResources { - * Blocked states, in that order. +@@ -973,6 +983,8 @@ public class ContentSettingsResources { */ - public static int @Nullable [] getTriStateSettingDescriptionIDs(int contentType) { + public static int @Nullable [] getTriStateSettingDescriptionIDs( + int contentType, boolean isPermissionSiteSettingsRadioButtonFeatureEnabled) { + int[] value = BromiteCustomContentSettingImpl.getTriStateSettingDescriptionIDs(contentType); + if (value != null) return value; if (contentType == ContentSettingsType.PROTECTED_MEDIA_IDENTIFIER) { - int[] descriptionIDs = { - R.string.website_settings_category_protected_content_allowed_recommended, + if (isPermissionSiteSettingsRadioButtonFeatureEnabled) { + int[] descriptionIDs = { 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 -@@ -334,6 +334,10 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -341,6 +341,10 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment website.site() .getContentSetting( browserContextHandle, mCategory.getContentSettingsType()); @@ -2248,7 +2248,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c if (contentSetting != null) { return ContentSettingValues.BLOCK == contentSetting; } -@@ -519,6 +523,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -529,6 +533,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment ? new HashSet<>(getArguments().getStringArrayList(EXTRA_SELECTED_DOMAINS)) : null; @@ -2256,7 +2256,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"); -@@ -554,7 +559,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -564,7 +569,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment if (queryHasChanged) getInfoForOrigins(); }); @@ -2266,7 +2266,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c MenuItem help = menu.add( Menu.NONE, -@@ -566,12 +572,20 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -576,12 +582,20 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment getResources(), R.drawable.ic_help_and_feedback, getContext().getTheme())); @@ -2287,7 +2287,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()); -@@ -644,6 +658,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -657,6 +671,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment BrowserContextHandle browserContextHandle = getSiteSettingsDelegate().getBrowserContextHandle(); PrefService prefService = UserPrefs.get(browserContextHandle); @@ -2296,10 +2296,10 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c + getInfoForOrigins(); + return true; + } - if (BINARY_TOGGLE_KEY.equals(preference.getKey())) { + if (BINARY_RADIO_BUTTON_KEY.equals(preference.getKey()) + || BINARY_TOGGLE_KEY.equals(preference.getKey())) { assert !mCategory.isManaged(); - boolean toggleValue = (boolean) newValue; -@@ -827,7 +846,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -841,7 +860,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; } @@ -2308,7 +2308,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } // OnPreferenceClickListener: -@@ -947,10 +966,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -962,10 +981,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment default: break; } @@ -2323,7 +2323,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c getPreferenceScreen() .addPreference( new AddExceptionPreference( -@@ -1138,9 +1158,16 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1150,8 +1170,16 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment private boolean isBlocked() { switch (mGlobalToggleLayout) { case GlobalToggleLayout.TRI_STATE_TOGGLE: @@ -2336,12 +2336,11 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c + } TriStateSiteSettingsPreference triStateToggle = getPreferenceScreen().findPreference(TRI_STATE_TOGGLE_KEY); -- assumeNonNull(triStateToggle); + if (triStateToggle == null) return true; return (triStateToggle.getCheckedSetting() == ContentSettingValues.BLOCK); case GlobalToggleLayout.TRI_STATE_COOKIE_TOGGLE: TriStateCookieSettingsPreference triStateCookieToggle = -@@ -1269,7 +1296,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1298,7 +1326,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment } else if (res_id != -1) { infoText.setSummary(res_id); } else { @@ -2354,7 +2353,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } // Hide the anti-abuse text preferences, as needed. -@@ -1314,6 +1345,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1337,6 +1369,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment } else { screen.removePreference(mLocationTriStatePref); } @@ -2362,16 +2361,15 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c if (permissionBlockedByOs) { maybeShowOsWarning(screen); -@@ -1491,7 +1523,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment - getSiteSettingsDelegate().getBrowserContextHandle(), contentType); - int[] descriptionIds = - ContentSettingsResources.getTriStateSettingDescriptionIDs(contentType); -- triStateToggle.initialize(setting, descriptionIds); -+ triStateToggle.initialize(contentType, setting, descriptionIds); - } - - private void configureBinaryToggle(ChromeSwitchPreference binaryToggle, int contentType) { -@@ -1615,6 +1647,14 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1526,6 +1559,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment + iconIds = ContentSettingsResources.getTriStateSettingIconIDs(contentType); + } + triStateToggle.initialize( ++ contentType, + setting, + descriptionIds, + iconIds, +@@ -1685,6 +1719,14 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment @ContentSettingValues Integer value = site.getContentSetting(browserContextHandle, contentSettingsType); @@ -2389,7 +2387,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 -@@ -54,6 +54,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; @@ -2397,7 +2395,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 -@@ -181,7 +182,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -185,7 +186,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment case ContentSettingsType.FILE_SYSTEM_WRITE_GUARD: return "file_system_write_guard_permission_list"; default: @@ -2406,9 +2404,9 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } } -@@ -577,8 +578,21 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -591,8 +592,21 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment private void setupContentSettingsPreferences() { - Preference permissionsHeaderPref = assumeNonNull(findPreference(PREF_PERMISSIONS_HEADER)); + Preference permissionsHeaderPref = findPreference(PREF_PERMISSIONS_HEADER); mMaxPermissionOrder = permissionsHeaderPref.getOrder(); - for (@ContentSettingsType.EnumType int type : SiteSettingsUtil.SETTINGS_ORDER) { - Preference preference = new ChromeSwitchPreference(getStyledContext()); @@ -2430,7 +2428,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c preference.setKey(getPreferenceKey(type)); if (type == ContentSettingsType.ADS) { -@@ -1183,20 +1197,32 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1273,20 +1287,32 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment @ContentSettingValues @Nullable Integer value, boolean isEmbargoed, boolean isOneTime) { @@ -2471,7 +2469,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c AppCompatResources.getColorStateList(getContext(), mHighlightColor) .getDefaultColor()); } -@@ -1413,14 +1439,20 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1507,14 +1533,20 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment if (newValue instanceof Boolean) { permission = (Boolean) newValue ? getEnabledValue(type) : ContentSettingValues.BLOCK; } else { @@ -2513,7 +2511,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c + type < BromiteCustomContentSettingImpl.NUM_ENTRIES(); type++) { if (!getSiteSettingsDelegate().isCategoryVisible(type)) { - Preference pref = assumeNonNull(findPreference(type)); + Preference pref = findPreference(type); @@ -113,7 +114,7 @@ public class SiteSettings extends BaseSiteSettingsFragment @CookieControlsMode int cookieControlsMode = @@ -2562,25 +2560,25 @@ 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/SiteSettingsCategory.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java -@@ -77,7 +77,7 @@ public class SiteSettingsCategory { - Type.TRACKING_PROTECTION, +@@ -78,7 +78,7 @@ public class SiteSettingsCategory { Type.FILE_EDITING, Type.JAVASCRIPT_OPTIMIZER, + Type.SERIAL_PORT, - Type.NUM_ENTRIES + Type.NUM_ENTRIES_CHROMIUM }) @Retention(RetentionPolicy.SOURCE) public @interface Type { -@@ -119,7 +119,7 @@ public class SiteSettingsCategory { - int JAVASCRIPT_OPTIMIZER = 33; +@@ -121,7 +121,7 @@ public class SiteSettingsCategory { + int SERIAL_PORT = 34; /** Number of handled categories used for calculating array sizes. */ -- int NUM_ENTRIES = 34; -+ int NUM_ENTRIES_CHROMIUM = 34; +- int NUM_ENTRIES = 35; ++ int NUM_ENTRIES_CHROMIUM = 35; } private final BrowserContextHandle mBrowserContextHandle; -@@ -170,6 +170,9 @@ public class SiteSettingsCategory { +@@ -172,6 +172,9 @@ public class SiteSettingsCategory { } else { permission = ""; } @@ -2590,7 +2588,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c return new SiteSettingsCategory(browserContextHandle, type, permission); } -@@ -178,7 +181,7 @@ public class SiteSettingsCategory { +@@ -180,7 +183,7 @@ public class SiteSettingsCategory { @ContentSettingsType.EnumType int contentSettingsType) { assert contentSettingsType != -1; assert Type.ALL_SITES == 0; @@ -2599,7 +2597,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c if (contentSettingsType(i) == contentSettingsType) { return createFromType(browserContextHandle, i); } -@@ -189,7 +192,7 @@ public class SiteSettingsCategory { +@@ -191,7 +194,7 @@ public class SiteSettingsCategory { public static @Nullable SiteSettingsCategory createFromPreferenceKey( BrowserContextHandle browserContextHandle, String preferenceKey) { assert Type.ALL_SITES == 0; @@ -2608,7 +2606,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c if (preferenceKey(i).equals(preferenceKey)) { return createFromType(browserContextHandle, i); } -@@ -266,8 +269,7 @@ public class SiteSettingsCategory { +@@ -270,8 +273,7 @@ public class SiteSettingsCategory { case Type.TRACKING_PROTECTION: return ContentSettingsType.DEFAULT; // Conversion unavailable. } @@ -2618,7 +2616,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } /** -@@ -358,8 +360,12 @@ public class SiteSettingsCategory { +@@ -366,8 +368,12 @@ public class SiteSettingsCategory { case Type.ZOOM: return "zoom"; default: @@ -2634,7 +2632,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsDelegate.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsDelegate.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsDelegate.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsDelegate.java -@@ -218,6 +218,8 @@ public interface SiteSettingsDelegate { +@@ -213,6 +213,8 @@ public interface SiteSettingsDelegate { */ String getRelatedWebsiteSetOwner(String memberOrigin); @@ -2646,7 +2644,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/TriStateSiteSettingsPreference.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/TriStateSiteSettingsPreference.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/TriStateSiteSettingsPreference.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/TriStateSiteSettingsPreference.java -@@ -18,6 +18,7 @@ import org.chromium.build.annotations.NullMarked; +@@ -16,6 +16,7 @@ import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; import org.chromium.components.browser_ui.widget.RadioButtonWithDescription; import org.chromium.components.content_settings.ContentSettingValues; @@ -2654,27 +2652,30 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c /** A 3-state Allowed/Ask/Blocked radio group Preference used for SiteSettings. */ @NullMarked -@@ -29,6 +30,7 @@ public class TriStateSiteSettingsPreference extends Preference - private RadioButtonWithDescription mAsk; - private RadioButtonWithDescription mBlocked; +@@ -30,6 +31,7 @@ public class TriStateSiteSettingsPreference extends Preference private RadioGroup mRadioGroup; + private boolean mIsPermissionSiteSettingsRadioButtonFeatureEnabled; + private int mIconMarginEnd; + private @ContentSettingsType.EnumType int mContentType; public TriStateSiteSettingsPreference(Context context, AttributeSet attrs) { super(context, attrs); -@@ -48,7 +50,9 @@ public class TriStateSiteSettingsPreference extends Preference - * @param descriptionIds An array of 3 resource IDs for descriptions for - * Allowed, Ask and Blocked states, in that order. +@@ -50,11 +52,13 @@ public class TriStateSiteSettingsPreference extends Preference + * Blocked states, in that order. */ -- public void initialize(@ContentSettingValues int setting, int @Nullable [] descriptionIds) { -+ public void initialize(@ContentSettingsType.EnumType int contentType, -+ @ContentSettingValues int setting, int @Nullable [] descriptionIds) { + public void initialize( ++ @ContentSettingsType.EnumType int contentType, + @ContentSettingValues int setting, + int @Nullable [] descriptionIds, + int @Nullable [] iconIds, + boolean isPermissionSiteSettingsRadioButtonFeatureEnabled, + int iconMarginEnd) { + mContentType = contentType; mSetting = setting; mDescriptionIds = descriptionIds; - } -@@ -86,6 +90,13 @@ public class TriStateSiteSettingsPreference extends Preference - mRadioGroup = assumeNonNull(radioGroup); + mIconIds = iconIds; +@@ -92,6 +96,13 @@ public class TriStateSiteSettingsPreference extends Preference + mRadioGroup = (RadioGroup) holder.findViewById(R.id.radio_button_layout); mRadioGroup.setOnCheckedChangeListener(this); + BromiteCustomContentSetting cs = @@ -2685,12 +2686,12 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c + mBlocked.setPrimaryText(getContext().getText(mDescriptionIds[2])); + } else if (mDescriptionIds != null) { - mAllowed.setDescriptionText(getContext().getText(mDescriptionIds[0])); - mAsk.setDescriptionText(getContext().getText(mDescriptionIds[1])); + if (mIsPermissionSiteSettingsRadioButtonFeatureEnabled) { + mAllowed.setPrimaryText(getContext().getText(mDescriptionIds[0])); diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java -@@ -331,7 +331,11 @@ public final class Website implements WebsiteEntry { +@@ -336,7 +336,11 @@ public final class Website implements WebsiteEntry { RecordUserAction.record("SoundContentSetting.UnmuteBy.SiteSettings"); } } @@ -2706,7 +2707,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 -@@ -111,7 +111,7 @@ public class WebsitePermissionsFetcher { +@@ -115,7 +115,7 @@ public class WebsitePermissionsFetcher { case ContentSettingsType.USB_GUARD: return WebsitePermissionsType.CHOSEN_OBJECT_INFO; default: @@ -2845,9 +2846,9 @@ diff --git a/components/content_settings/core/browser/content_settings_registry. namespace content_settings { -@@ -859,6 +860,7 @@ void ContentSettingsRegistry::Init() { - WebsiteSettingsRegistry::DESKTOP, - ContentSettingsInfo::INHERIT_IN_INCOGNITO, +@@ -871,6 +872,7 @@ void ContentSettingsRegistry::Init() { + WebsiteSettingsRegistry::PLATFORM_ANDROID, + ContentSettingsInfo::INHERIT_IF_LESS_PERMISSIVE, ContentSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY); +#include "components/content_settings/core/browser/bromite_content_settings.inc" } @@ -2856,7 +2857,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 -@@ -215,11 +215,7 @@ void RecordContentSettingsHistogram(const std::string& name, +@@ -216,11 +216,7 @@ void RecordContentSettingsHistogram(const std::string& name, } int ContentSettingTypeToHistogramValue(ContentSettingsType content_setting) { @@ -3053,7 +3054,7 @@ diff --git a/components/content_settings/core/common/content_settings.cc b/compo } RendererContentSettingRules::RendererContentSettingRules() = default; -@@ -127,4 +138,17 @@ RendererContentSettingRules& RendererContentSettingRules::operator=( +@@ -127,7 +138,20 @@ RendererContentSettingRules& RendererContentSettingRules::operator=( RendererContentSettingRules&& rules) = default; bool RendererContentSettingRules::operator==( @@ -3072,6 +3073,9 @@ diff --git a/components/content_settings/core/common/content_settings.cc b/compo + +bool ContentSettingRuleSource::operator==( + const ContentSettingRuleSource& other) const = default; + + content_settings::SettingInfo::SettingInfo() = default; + content_settings::SettingInfo& content_settings::SettingInfo::operator=( diff --git a/components/content_settings/core/common/content_settings.h b/components/content_settings/core/common/content_settings.h --- a/components/content_settings/core/common/content_settings.h +++ b/components/content_settings/core/common/content_settings.h @@ -3101,8 +3105,8 @@ diff --git a/components/content_settings/core/common/content_settings.h b/compon diff --git a/components/content_settings/core/common/content_settings.mojom b/components/content_settings/core/common/content_settings.mojom --- a/components/content_settings/core/common/content_settings.mojom +++ b/components/content_settings/core/common/content_settings.mojom -@@ -73,6 +73,11 @@ struct RuleMetaData { - bool decided_by_related_website_sets; +@@ -74,6 +74,11 @@ struct RuleMetaData { + mojo_base.mojom.Value rule_options; }; +struct ContentSettingRuleSource { @@ -3113,7 +3117,7 @@ diff --git a/components/content_settings/core/common/content_settings.mojom b/co // This mirrors the C++ type in content_settings.h. struct ContentSettingPatternSource { ContentSettingsPattern primary_pattern; -@@ -86,5 +91,6 @@ struct ContentSettingPatternSource { +@@ -87,5 +92,6 @@ struct ContentSettingPatternSource { // This mirrors the C++ type in content_settings.h. // TODO(crbug.com/40282541): This should be removed. struct RendererContentSettingRules { @@ -3123,7 +3127,7 @@ diff --git a/components/content_settings/core/common/content_settings.mojom b/co diff --git a/components/content_settings/core/common/content_settings_mojom_traits.cc b/components/content_settings/core/common/content_settings_mojom_traits.cc --- a/components/content_settings/core/common/content_settings_mojom_traits.cc +++ b/components/content_settings/core/common/content_settings_mojom_traits.cc -@@ -119,12 +119,22 @@ bool StructTraitsmetadata) && data.ReadSource(&out->source); } @@ -3150,7 +3154,7 @@ diff --git a/components/content_settings/core/common/content_settings_mojom_trai diff --git a/components/content_settings/core/common/content_settings_mojom_traits.h b/components/content_settings/core/common/content_settings_mojom_traits.h --- a/components/content_settings/core/common/content_settings_mojom_traits.h +++ b/components/content_settings/core/common/content_settings_mojom_traits.h -@@ -176,10 +176,34 @@ struct StructTraits< +@@ -181,10 +181,34 @@ struct StructTraits< ContentSettingPatternSource* out); }; @@ -3188,10 +3192,10 @@ 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 -@@ -479,5 +479,7 @@ enum ContentSettingsType { - // Website setting which is used for UnusedSitePermissionsService to - // store revoked notification permissions of disruptive sites. - REVOKED_DISRUPTIVE_NOTIFICATION_PERMISSIONS, +@@ -483,5 +483,7 @@ enum ContentSettingsType { + // Content setting for whether the site is allowed to make local network + // requests. + LOCAL_NETWORK_ACCESS, + +#include "components/content_settings/core/common/bromite_content_settings.inc" }; @@ -3309,7 +3313,7 @@ diff --git a/components/content_settings/renderer/content_settings_agent_impl.h diff --git a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoPermissionsController.java b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoPermissionsController.java --- a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoPermissionsController.java +++ b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoPermissionsController.java -@@ -177,6 +177,15 @@ public class PageInfoPermissionsController extends PageInfoPreferenceSubpageCont +@@ -193,6 +193,15 @@ public class PageInfoPermissionsController extends PageInfoPreferenceSubpageCont : perm1.nameMidSentence.toString()); } @@ -3328,31 +3332,21 @@ diff --git a/components/page_info/android/java/src/org/chromium/components/page_ diff --git a/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java b/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java --- a/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java +++ b/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java -@@ -106,10 +106,10 @@ public class PermissionParamsListBuilder { - - switch (permission.setting) { - case ContentSettingValues.ALLOW: -- case ContentSettingValues.ASK: - permissionParams.allowed = true; - break; - case ContentSettingValues.BLOCK: -+ case ContentSettingValues.ASK: - permissionParams.allowed = false; - break; - default: -@@ -120,6 +120,12 @@ public class PermissionParamsListBuilder { - + permission.type; - } +@@ -109,6 +109,14 @@ public class PermissionParamsListBuilder { + span, 0, nameStringMidSentence.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE); + boolean allowed = permission.setting != ContentSettingValues.BLOCK; ++ if (permission.setting == ContentSettingValues.ASK) { ++ allowed = false; ++ } + if (permission.type == ContentSettingsType.FILE_SYSTEM_WRITE_GUARD + && permission.setting == ContentSettingValues.ASK) { + // see https://source.chromium.org/chromium/chromium/src/+/e3e48613de29440ae1cf11b0ff7fa7c613d9f416 -+ permissionParams.allowed = true; ++ allowed = true; + } -+ - return permissionParams; - } - + return new PermissionObject( + /* type= */ permission.type, + /* name= */ nameString, diff --git a/components/page_info/android/page_info_controller_android.cc b/components/page_info/android/page_info_controller_android.cc --- a/components/page_info/android/page_info_controller_android.cc +++ b/components/page_info/android/page_info_controller_android.cc @@ -3406,7 +3400,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" -@@ -1258,6 +1259,14 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, +@@ -1271,6 +1272,14 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, // applies to permissions listed in |kPermissionType|. bool PageInfo::ShouldShowPermission( const PageInfo::PermissionInfo& info) const { @@ -3421,7 +3415,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) { -@@ -1374,7 +1383,19 @@ void PageInfo::PresentSitePermissions() { +@@ -1387,7 +1396,19 @@ void PageInfo::PresentSitePermissions() { HostContentSettingsMap* content_settings = GetContentSettings(); DCHECK(web_contents_); @@ -3453,7 +3447,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_delegate.h" -@@ -330,6 +331,13 @@ void CreateOppositeToDefaultSiteException( +@@ -333,6 +334,13 @@ void CreateOppositeToDefaultSiteException( std::u16string GetPermissionAskStateString(ContentSettingsType type) { int message_id = kInvalidResourceID; @@ -3467,7 +3461,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; -@@ -628,6 +636,12 @@ PageInfoUI::~PageInfoUI() = default; +@@ -626,6 +634,12 @@ PageInfoUI::~PageInfoUI() = default; // static std::u16string PageInfoUI::PermissionTypeToUIString(ContentSettingsType type) { @@ -3480,7 +3474,7 @@ diff --git a/components/page_info/page_info_ui.cc b/components/page_info/page_in for (const PermissionUIInfo& info : GetContentSettingsUIInfo()) { if (info.type == type) return l10n_util::GetStringUTF16(info.string_id); -@@ -638,6 +652,12 @@ std::u16string PageInfoUI::PermissionTypeToUIString(ContentSettingsType type) { +@@ -636,6 +650,12 @@ std::u16string PageInfoUI::PermissionTypeToUIString(ContentSettingsType type) { // static std::u16string PageInfoUI::PermissionTypeToUIStringMidSentence( ContentSettingsType type) { @@ -3493,7 +3487,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); -@@ -1079,6 +1099,11 @@ bool PageInfoUI::ContentSettingsTypeInPageInfo(ContentSettingsType type) { +@@ -1077,6 +1097,11 @@ bool PageInfoUI::ContentSettingsTypeInPageInfo(ContentSettingsType type) { if (info.type == type) return true; } diff --git a/build/patches/Cromite-Branding--improve-settings-ui.patch b/build/patches/Cromite-Branding--improve-settings-ui.patch index 0fba8fb0..de3ea353 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 -@@ -650,7 +650,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", @@ -253,7 +253,7 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -147,7 +147,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -144,7 +144,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment public void onCreatePreferencesCromite(Bundle savedInstanceState, String rootKey) { mPageTitle.set(getString(R.string.prefs_privacy_security)); @@ -262,7 +262,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting Preference fpProtectionPreference = findPreference(PREF_FP_PROTECTION); fpProtectionPreference.setVisible(shouldShowFpProtectionUi()); -@@ -244,7 +244,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -241,7 +241,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment (ChromeSwitchPreference) findPreference(PREF_PASSWORD_LEAK_DETECTION); if (ChromeFeatureList.isEnabled(ChromeFeatureList.PASSWORD_LEAK_TOGGLE_MOVE)) { passwordLeakTogglePref.setOnPreferenceChangeListener(this); diff --git a/build/patches/Cromite-Branding.patch b/build/patches/Cromite-Branding.patch index 06adab72..eb6b46d8 100644 --- a/build/patches/Cromite-Branding.patch +++ b/build/patches/Cromite-Branding.patch @@ -64,7 +64,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/build/BUILD.gn b/build/BUILD.gn --- a/build/BUILD.gn +++ b/build/BUILD.gn -@@ -55,6 +55,14 @@ buildflag_header("branding_buildflags") { +@@ -54,6 +54,14 @@ buildflag_header("branding_buildflags") { } } @@ -82,8 +82,8 @@ diff --git a/build/BUILD.gn b/build/BUILD.gn diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn --- a/build/config/BUILDCONFIG.gn +++ b/build/config/BUILDCONFIG.gn -@@ -186,6 +186,10 @@ declare_args() { - clang_unsafe_buffers_paths = "" +@@ -187,6 +187,10 @@ declare_args() { + clang_warning_suppression_file = "" } +declare_args() { @@ -13155,7 +13155,7 @@ e)fqMZZ`3a)Ds&5H @@ -13299,7 +13299,7 @@ diff --git a/chrome/common/url_constants.h b/chrome/common/url_constants.h diff --git a/chrome/install_static/chromium_install_modes.cc b/chrome/install_static/chromium_install_modes.cc --- a/chrome/install_static/chromium_install_modes.cc +++ b/chrome/install_static/chromium_install_modes.cc -@@ -16,7 +16,7 @@ namespace install_static { +@@ -14,7 +14,7 @@ namespace install_static { const wchar_t kCompanyPathName[] = L""; @@ -13311,7 +13311,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 -@@ -975,7 +975,7 @@ +@@ -984,7 +984,7 @@ @@ -18957,7 +18957,7 @@ diff --git a/components/webui/version/resources/about_version_mobile.css b/compo diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc --- a/content/child/runtime_features.cc +++ b/content/child/runtime_features.cc -@@ -571,19 +571,22 @@ void ResolveInvalidConfigurations() { +@@ -568,19 +568,22 @@ void ResolveInvalidConfigurations() { base::FeatureList::IsEnabled( features::kPrivacySandboxAdsAPIsM1Override)) && !base::FeatureList::IsEnabled(blink::features::kFencedFrames)) { @@ -18984,7 +18984,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. << "Fenced frames must be enabled in order to enable local " "unpartitioned " << "data access. Use --" << switches::kEnableFeatures << "=" -@@ -591,12 +594,14 @@ void ResolveInvalidConfigurations() { +@@ -588,12 +591,14 @@ void ResolveInvalidConfigurations() { WebRuntimeFeatures::EnableFeatureFromString( "FencedFramesLocalUnpartitionedDataAccess", false); } @@ -19000,7 +19000,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. << "Topics cannot be enabled in this configuration. Use --" << switches::kEnableFeatures << "=" << network::features::kBrowsingTopics.name << " in addition."; -@@ -604,30 +609,23 @@ void ResolveInvalidConfigurations() { +@@ -601,30 +606,23 @@ void ResolveInvalidConfigurations() { WebRuntimeFeatures::EnableTopicsDocumentAPI(false); WebRuntimeFeatures::EnableTopicsImgAPI(false); } else { @@ -19037,7 +19037,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. << "AttributionReporting cannot be enabled in this " "configuration. Use --" << switches::kEnableFeatures << "=" -@@ -635,23 +633,25 @@ void ResolveInvalidConfigurations() { +@@ -632,23 +630,25 @@ void ResolveInvalidConfigurations() { << " in addition."; WebRuntimeFeatures::EnableAttributionReporting(false); } diff --git a/build/patches/Customize-selection-popup.patch b/build/patches/Customize-selection-popup.patch index 09511685..4e042d5e 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 -@@ -798,10 +798,17 @@ public class ChromeTabbedActivity extends ChromeActivity implements MismatchedIn +@@ -782,10 +782,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 -@@ -196,12 +196,20 @@ public class ActivityTabWebContentsDelegateAndroid extends TabWebContentsDelegat +@@ -198,12 +198,20 @@ public class ActivityTabWebContentsDelegateAndroid extends TabWebContentsDelegat // Skip opening a new Tab if it doesn't make sense. if (mTab.isClosing()) return false; @@ -95,7 +95,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo import org.chromium.base.ObserverList; import org.chromium.base.TraceEvent; import org.chromium.base.supplier.ObservableSupplier; -@@ -238,6 +239,13 @@ public class LayoutManagerImpl +@@ -245,6 +246,13 @@ public class LayoutManagerImpl != TabLaunchType .FROM_COLLABORATION_BACKGROUND_IN_GROUP) || (!getTabModelSelector().isIncognitoSelected() && incognito); @@ -112,7 +112,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 -@@ -317,8 +317,13 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { +@@ -339,8 +339,13 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { public void onOpenImageInNewTab(GURL url, Referrer referrer) { LoadUrlParams loadUrlParams = new LoadUrlParams(url.getSpec()); loadUrlParams.setReferrer(referrer); @@ -463,7 +463,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select import org.chromium.base.ObserverList; import org.chromium.base.UserData; import org.chromium.build.annotations.Initializer; -@@ -85,6 +86,9 @@ public class SmartSelectionClient implements SelectionClient, UserData { +@@ -84,6 +85,9 @@ public class SmartSelectionClient implements SelectionClient, UserData { return null; } @@ -472,5 +472,5 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select + SmartSelectionClient client = assumeNonNull( - ((WebContentsImpl) webContents) + webContents.getOrSetUserData( -- diff --git a/build/patches/Dictionary-suggestions-for-the-Omnibox.patch b/build/patches/Dictionary-suggestions-for-the-Omnibox.patch index 2d7f7429..6f906993 100644 --- a/build/patches/Dictionary-suggestions-for-the-Omnibox.patch +++ b/build/patches/Dictionary-suggestions-for-the-Omnibox.patch @@ -27,7 +27,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 -@@ -297,8 +297,17 @@ class LocationBarMediator +@@ -298,8 +298,17 @@ class LocationBarMediator if (!mUrlFocusedWithPastedText && !shouldRetainOmniboxOnFocus && mLocationBarLayout.shouldClearTextOnFocus()) { diff --git a/build/patches/Disable-Accessibility-service-by-default.patch b/build/patches/Disable-Accessibility-service-by-default.patch index a5113b1b..9693b04c 100644 --- a/build/patches/Disable-Accessibility-service-by-default.patch +++ b/build/patches/Disable-Accessibility-service-by-default.patch @@ -42,7 +42,7 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil diff --git a/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java b/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java --- a/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java +++ b/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java -@@ -1100,6 +1100,11 @@ public class WebContentsAccessibilityImpl extends AccessibilityNodeProviderCompa +@@ -1098,6 +1098,11 @@ public class WebContentsAccessibilityImpl extends AccessibilityNodeProviderCompa structure.setChildCount(0); return; } diff --git a/build/patches/Disable-Android-AppRestrictions.patch b/build/patches/Disable-Android-AppRestrictions.patch index 954a0c22..2ae32571 100644 --- a/build/patches/Disable-Android-AppRestrictions.patch +++ b/build/patches/Disable-Android-AppRestrictions.patch @@ -32,15 +32,15 @@ diff --git a/chrome/browser/enterprise/util/BUILD.gn b/chrome/browser/enterprise diff --git a/chrome/browser/enterprise/util/android/java/src/org/chromium/chrome/browser/enterprise/util/EnterpriseInfoImpl.java b/chrome/browser/enterprise/util/android/java/src/org/chromium/chrome/browser/enterprise/util/EnterpriseInfoImpl.java --- a/chrome/browser/enterprise/util/android/java/src/org/chromium/chrome/browser/enterprise/util/EnterpriseInfoImpl.java +++ b/chrome/browser/enterprise/util/android/java/src/org/chromium/chrome/browser/enterprise/util/EnterpriseInfoImpl.java -@@ -23,6 +23,7 @@ import org.chromium.base.metrics.RecordHistogram; - import org.chromium.base.task.AsyncTask; - import org.chromium.base.task.TaskTraits; +@@ -27,6 +27,7 @@ import org.chromium.base.task.TaskTraits; + import org.chromium.build.annotations.NullMarked; + import org.chromium.build.annotations.Nullable; import org.chromium.chrome.browser.flags.ChromeSwitches; +import org.chromium.components.policy.AppRestrictionsProvider; import java.util.LinkedList; import java.util.Queue; -@@ -104,6 +105,10 @@ public class EnterpriseInfoImpl extends EnterpriseInfo { +@@ -109,6 +110,10 @@ public class EnterpriseInfoImpl extends EnterpriseInfo { new AsyncTask() { // TODO: Unit test this function. https://crbug.com/1099262 private OwnedState calculateIsRunningOnManagedProfile(Context context) { diff --git a/build/patches/Disable-Android-Tab-Declutter.patch b/build/patches/Disable-Android-Tab-Declutter.patch index 2abdaf78..d529b7a7 100644 --- a/build/patches/Disable-Android-Tab-Declutter.patch +++ b/build/patches/Disable-Android-Tab-Declutter.patch @@ -13,7 +13,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html 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 -@@ -1033,7 +1033,7 @@ public abstract class ChromeFeatureList { +@@ -1009,7 +1009,7 @@ public abstract class ChromeFeatureList { public static final MutableFlagWithSafeDefault sAndroidDumpOnScrollWithoutResource = newMutableFlagWithSafeDefault(ANDROID_DUMP_ON_SCROLL_WITHOUT_RESOURCE, false); public static final MutableFlagWithSafeDefault sAndroidTabDeclutter = @@ -22,9 +22,9 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final MutableFlagWithSafeDefault sAndroidTabDeclutterArchiveAllButActiveTab = newMutableFlagWithSafeDefault(ANDROID_TAB_DECLUTTER_ARCHIVE_ALL_BUT_ACTIVE, false); public static final MutableFlagWithSafeDefault sAndroidTabDeclutterArchiveDuplicateTabs = -@@ -1515,7 +1515,7 @@ public abstract class ChromeFeatureList { - public static final MutableBooleanParamWithSafeDefault sShouldBlockCapturesForFullscreenParam = - sSuppressionToolbarCaptures.newBooleanParam("block_for_fullscreen", false); +@@ -1473,7 +1473,7 @@ public abstract class ChromeFeatureList { + // Mutable*ParamWithSafeDefault instances. + /* Alphabetical: */ public static final MutableBooleanParamWithSafeDefault sAndroidTabDeclutterArchiveEnabled = - sAndroidTabDeclutter.newBooleanParam("android_tab_declutter_archive_enabled", true); + sAndroidTabDeclutter.newBooleanParam("android_tab_declutter_archive_enabled", false); diff --git a/build/patches/Disable-Compose-feature.patch b/build/patches/Disable-Compose-feature.patch index f7312a6d..0f6d06d0 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 -@@ -8180,6 +8180,12 @@ static_library("browser") { +@@ -8226,6 +8226,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", -@@ -8195,7 +8201,6 @@ static_library("browser") { +@@ -8241,7 +8247,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:browser", -@@ -8640,7 +8645,7 @@ source_set("font_pref") { +@@ -8687,7 +8692,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 -@@ -382,7 +382,7 @@ SettingsUI::SettingsUI(content::WebUI* web_ui) +@@ -384,7 +384,7 @@ SettingsUI::SettingsUI(content::WebUI* web_ui) base::FeatureList::IsEnabled(features::kLinkedServicesSetting)); #if BUILDFLAG(ENABLE_COMPOSE) diff --git a/build/patches/Disable-Compression-Dictionary-Transport.patch b/build/patches/Disable-Compression-Dictionary-Transport.patch index fd37d28f..7e23e43f 100644 --- a/build/patches/Disable-Compression-Dictionary-Transport.patch +++ b/build/patches/Disable-Compression-Dictionary-Transport.patch @@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -889,12 +889,14 @@ +@@ -910,12 +910,14 @@ } }, { diff --git a/build/patches/Disable-FedCm.patch b/build/patches/Disable-FedCm.patch index c0df0888..1c79090b 100644 --- a/build/patches/Disable-FedCm.patch +++ b/build/patches/Disable-FedCm.patch @@ -26,7 +26,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 -@@ -1914,7 +1914,7 @@ +@@ -1924,7 +1924,7 @@ { name: "FedCm", public: true, diff --git a/build/patches/Disable-GSA-by-default.patch b/build/patches/Disable-GSA-by-default.patch index e4b3dcdf..e5cc513a 100644 --- a/build/patches/Disable-GSA-by-default.patch +++ b/build/patches/Disable-GSA-by-default.patch @@ -4,14 +4,14 @@ Subject: Disable GSA by default License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- - .../chrome/browser/IntentHandler.java | 6 ------ - .../provider/PageContentProviderImpl.java | 6 ------ - .../chrome/browser/share/LensUtils.java | 14 ++------------ - .../chromium/chrome/browser/gsa/GSAUtils.java | 10 +++------- - .../GoogleBottomBarActionsHandler.java | 19 ++----------------- - .../chrome/browser/pdf/PdfCoordinator.java | 4 +--- + .../chrome/browser/IntentHandler.java | 6 ---- + .../provider/PageContentProviderImpl.java | 6 ---- + .../chrome/browser/share/LensUtils.java | 14 ++------- + .../chromium/chrome/browser/gsa/GSAUtils.java | 29 ++++--------------- + .../GoogleBottomBarActionsHandler.java | 19 ++---------- + .../chrome/browser/pdf/PdfCoordinator.java | 4 +-- .../Disable-GSA-by-default.inc | 1 + - 7 files changed, 9 insertions(+), 51 deletions(-) + 7 files changed, 11 insertions(+), 68 deletions(-) create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-GSA-by-default.inc diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java @@ -112,15 +112,18 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/share/LensUtils diff --git a/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAUtils.java b/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAUtils.java --- a/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAUtils.java +++ b/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAUtils.java -@@ -14,16 +14,11 @@ import org.chromium.build.annotations.Nullable; +@@ -14,19 +14,12 @@ import org.chromium.build.annotations.Nullable; /** This class provides utilities for the state of Google Search App. */ @NullMarked public class GSAUtils { +- private static final Object sPackageInfoLock = new Object(); +- @Nullable private static volatile PackageInfo sPackageInfo; +- - public static final String GSA_PACKAGE_NAME = "com.google.android.googlequicksearchbox"; - public static final String GSA_CLASS_NAME = - "com.google.android.apps.search.googleapp.activity.GoogleAppActivity"; - public static final String VOICE_SEARCH_INTENT_ACTION = "android.intent.action.VOICE_ASSIST"; -- + /** * @return Whether the given package name is the package name for Google Search App. */ @@ -130,7 +133,7 @@ diff --git a/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAUtil } /** -@@ -35,6 +30,7 @@ public class GSAUtils { +@@ -38,6 +31,7 @@ public class GSAUtils { */ public static boolean isAgsaVersionBelowMinimum( @Nullable String installedVersionName, @Nullable String minimumVersionName) { @@ -138,13 +141,36 @@ diff --git a/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAUtil if (TextUtils.isEmpty(installedVersionName) || TextUtils.isEmpty(minimumVersionName)) { return true; } -@@ -65,7 +61,7 @@ public class GSAUtils { +@@ -68,8 +62,8 @@ public class GSAUtils { * @return The version name of the Agsa package or null if it can't be found. */ public static @Nullable String getAgsaVersionName() { -- PackageInfo packageInfo = PackageUtils.getPackageInfo(GSA_PACKAGE_NAME, 0); +- PackageInfo info = getAgsaPackageInfo(); +- return info == null ? null : info.versionName; + PackageInfo packageInfo = null; - return packageInfo == null ? null : packageInfo.versionName; ++ return packageInfo == null ? null : packageInfo.versionName; + } + + /** +@@ -78,19 +72,6 @@ public class GSAUtils { + * @return Whether the AGSA is enabled + */ + public static boolean isAgsaEnabled() { +- PackageInfo info = getAgsaPackageInfo(); +- return info != null && info.applicationInfo != null && info.applicationInfo.enabled; +- } +- +- @Nullable +- private static PackageInfo getAgsaPackageInfo() { +- if (sPackageInfo == null) { +- synchronized (sPackageInfoLock) { +- if (sPackageInfo == null) { +- sPackageInfo = PackageUtils.getPackageInfo(GSA_PACKAGE_NAME, 0); +- } +- } +- } +- return sPackageInfo; ++ return false; } } diff --git a/chrome/browser/ui/android/google_bottom_bar/java/src/org/chromium/chrome/browser/ui/google_bottom_bar/GoogleBottomBarActionsHandler.java b/chrome/browser/ui/android/google_bottom_bar/java/src/org/chromium/chrome/browser/ui/google_bottom_bar/GoogleBottomBarActionsHandler.java @@ -206,7 +232,7 @@ diff --git a/chrome/browser/ui/android/google_bottom_bar/java/src/org/chromium/c diff --git a/chrome/browser/ui/android/pdf/java/src/org/chromium/chrome/browser/pdf/PdfCoordinator.java b/chrome/browser/ui/android/pdf/java/src/org/chromium/chrome/browser/pdf/PdfCoordinator.java --- a/chrome/browser/ui/android/pdf/java/src/org/chromium/chrome/browser/pdf/PdfCoordinator.java +++ b/chrome/browser/ui/android/pdf/java/src/org/chromium/chrome/browser/pdf/PdfCoordinator.java -@@ -249,7 +249,7 @@ public class PdfCoordinator { +@@ -253,7 +253,7 @@ public class PdfCoordinator { } @Nullable String requestAssistContent(String filename, boolean isWorkProfile) { @@ -215,7 +241,7 @@ diff --git a/chrome/browser/ui/android/pdf/java/src/org/chromium/chrome/browser/ return null; } String structuredData; -@@ -267,8 +267,6 @@ public class PdfCoordinator { +@@ -271,8 +271,6 @@ public class PdfCoordinator { } catch (JSONException e) { return null; } diff --git a/build/patches/Disable-GetInstalledRelatedApps-API.patch b/build/patches/Disable-GetInstalledRelatedApps-API.patch index 89d604d8..88a43be8 100644 --- a/build/patches/Disable-GetInstalledRelatedApps-API.patch +++ b/build/patches/Disable-GetInstalledRelatedApps-API.patch @@ -16,9 +16,9 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/components/installedapp/android/java/src/org/chromium/components/installedapp/InstalledAppProviderImpl.java b/components/installedapp/android/java/src/org/chromium/components/installedapp/InstalledAppProviderImpl.java --- a/components/installedapp/android/java/src/org/chromium/components/installedapp/InstalledAppProviderImpl.java +++ b/components/installedapp/android/java/src/org/chromium/components/installedapp/InstalledAppProviderImpl.java -@@ -161,6 +161,7 @@ public class InstalledAppProviderImpl implements InstalledAppProvider { - final RelatedApplication[] relatedApps, +@@ -162,6 +162,7 @@ public class InstalledAppProviderImpl implements InstalledAppProvider { final Url manifestUrl, + final boolean addSavedRelatedApplications, final FilterInstalledApps_Response callback) { + assert false; GURL url = mRenderFrameHost.getLastCommittedURL(); @@ -27,8 +27,8 @@ diff --git a/components/installedapp/android/java/src/org/chromium/components/in diff --git a/content/browser/installedapp/installed_app_provider_impl.cc b/content/browser/installedapp/installed_app_provider_impl.cc --- a/content/browser/installedapp/installed_app_provider_impl.cc +++ b/content/browser/installedapp/installed_app_provider_impl.cc -@@ -60,7 +60,7 @@ void InstalledAppProviderImpl::FilterInstalledApps( - const GURL& manifest_url, +@@ -62,7 +62,7 @@ void InstalledAppProviderImpl::FilterInstalledApps( + bool add_saved_related_applications, FilterInstalledAppsCallback callback) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - if (!base::FeatureList::IsEnabled(features::kInstalledAppProvider)) { @@ -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 -@@ -2538,9 +2538,8 @@ +@@ -2556,9 +2556,8 @@ name: "InspectorGhostRules", }, { diff --git a/build/patches/Disable-Paint-Preview-by-default.patch b/build/patches/Disable-Paint-Preview-by-default.patch index 34862332..b5229a41 100644 --- a/build/patches/Disable-Paint-Preview-by-default.patch +++ b/build/patches/Disable-Paint-Preview-by-default.patch @@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/paint_preview/StartupPaintPreviewHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/paint_preview/StartupPaintPreviewHelper.java --- a/chrome/android/java/src/org/chromium/chrome/browser/paint_preview/StartupPaintPreviewHelper.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/paint_preview/StartupPaintPreviewHelper.java -@@ -107,7 +107,7 @@ public class StartupPaintPreviewHelper { +@@ -114,7 +114,7 @@ public class StartupPaintPreviewHelper implements Destroyable { /** Enables Paint Preview show attempt on restoration of a tab. */ public static void enableShowOnRestore() { diff --git a/build/patches/Disable-PrivacyGuide.patch b/build/patches/Disable-PrivacyGuide.patch index 5bf041d5..efc6f066 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 -@@ -352,8 +352,7 @@ SettingsUI::SettingsUI(content::WebUI* web_ui) +@@ -354,8 +354,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 620f8cac..dfe2cf4a 100644 --- a/build/patches/Disable-Real-Box.patch +++ b/build/patches/Disable-Real-Box.patch @@ -13,7 +13,7 @@ Real-box is search box in ntp diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc -@@ -2217,7 +2217,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -2218,7 +2218,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, registry->RegisterBooleanPref( prefs::kLensRegionSearchEnabled, true, user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); @@ -54,7 +54,7 @@ diff --git a/chrome/browser/ui/webui/searchbox/searchbox_handler.cc b/chrome/bro 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 -@@ -121,7 +121,7 @@ BASE_FEATURE(kNtpDriveModuleShowSixFiles, +@@ -127,7 +127,7 @@ BASE_FEATURE(kNtpDriveModuleShowSixFiles, // If enabled, logo will be shown. // This is a kill switch. Keep indefinitely. @@ -63,7 +63,7 @@ diff --git a/components/search/ntp_features.cc b/components/search/ntp_features. // If enabled, middle slot promo will be shown. // This is a kill switch. Keep indefinitely. -@@ -174,8 +174,8 @@ BASE_FEATURE(kNtpModulesLoad, +@@ -180,8 +180,8 @@ BASE_FEATURE(kNtpModulesLoad, // If enabled, OneGoogleBar will be shown. // This is a kill switch. Keep indefinitely. BASE_FEATURE(kNtpOneGoogleBar, diff --git a/build/patches/Disable-WebGPU.patch b/build/patches/Disable-WebGPU.patch index 125cff8e..3ff6911a 100644 --- a/build/patches/Disable-WebGPU.patch +++ b/build/patches/Disable-WebGPU.patch @@ -12,7 +12,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc --- a/content/child/runtime_features.cc +++ b/content/child/runtime_features.cc -@@ -556,6 +556,8 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs( +@@ -553,6 +553,8 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs( WebRuntimeFeatures::EnableRemotePlayback(false); diff --git a/build/patches/Disable-all-predictors-code.patch b/build/patches/Disable-all-predictors-code.patch index f97efcd7..2543a0c2 100644 --- a/build/patches/Disable-all-predictors-code.patch +++ b/build/patches/Disable-all-predictors-code.patch @@ -25,7 +25,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../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 | 6 ++++++ + .../read_anything/read_anything_app_controller.h | 4 ++++ chrome/utility/BUILD.gn | 2 +- chrome/utility/services.cc | 8 -------- .../integrators/autofill_optimization_guide.cc | 5 +++-- @@ -53,7 +53,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 +- - 48 files changed, 124 insertions(+), 47 deletions(-) + 48 files changed, 122 insertions(+), 47 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 @@ -65,7 +65,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 -@@ -755,8 +755,6 @@ static_library("browser") { +@@ -765,8 +765,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", @@ -74,7 +74,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", -@@ -2281,7 +2279,7 @@ static_library("browser") { +@@ -2310,7 +2308,7 @@ static_library("browser") { "//components/resources", "//components/safe_browsing/content/browser", "//components/safe_browsing/content/browser:safe_browsing_service", @@ -82,7 +82,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn + "//components/safe_browsing/content/browser/notification_content_detection:constants", "//components/safe_browsing/content/browser/password_protection", "//components/safe_browsing/content/browser/web_ui", - "//components/safe_browsing/core/browser", + "//components/safe_browsing/content/common/proto:download_file_types_proto", diff --git a/chrome/browser/navigation_predictor/preloading_model_keyed_service.cc b/chrome/browser/navigation_predictor/preloading_model_keyed_service.cc --- a/chrome/browser/navigation_predictor/preloading_model_keyed_service.cc +++ b/chrome/browser/navigation_predictor/preloading_model_keyed_service.cc @@ -209,7 +209,7 @@ diff --git a/chrome/browser/permissions/BUILD.gn b/chrome/browser/permissions/BU diff --git a/chrome/browser/permissions/chrome_permissions_client.cc b/chrome/browser/permissions/chrome_permissions_client.cc --- a/chrome/browser/permissions/chrome_permissions_client.cc +++ b/chrome/browser/permissions/chrome_permissions_client.cc -@@ -418,8 +418,6 @@ ChromePermissionsClient::CreatePermissionUiSelectors( +@@ -423,8 +423,6 @@ ChromePermissionsClient::CreatePermissionUiSelectors( #endif selectors.emplace_back(std::make_unique( Profile::FromBrowserContext(browser_context))); @@ -282,7 +282,7 @@ diff --git a/chrome/browser/preloading/prefetch/search_prefetch/search_prefetch_ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc -@@ -1122,7 +1122,6 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -1132,7 +1132,6 @@ void ChromeBrowserMainExtraPartsProfiles:: base::FeatureList::IsEnabled( permissions::features::kPermissionOnDeviceGeolocationPredictions) || base::FeatureList::IsEnabled(permissions::features::kPermissionsAIv1)) { @@ -293,17 +293,17 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc diff --git a/chrome/browser/safe_browsing/BUILD.gn b/chrome/browser/safe_browsing/BUILD.gn --- a/chrome/browser/safe_browsing/BUILD.gn +++ b/chrome/browser/safe_browsing/BUILD.gn -@@ -49,7 +49,6 @@ static_library("safe_browsing") { +@@ -47,7 +47,6 @@ static_library("safe_browsing") { + "//components/resources:components_resources_grit", "//components/safe_browsing:buildflags", "//components/safe_browsing/content/browser", - "//components/safe_browsing/content/browser:client_side_detection_service", - "//components/safe_browsing/content/browser/notification_content_detection:notification_content_detection", "//components/safe_browsing/content/browser/triggers:suspicious_site_trigger", "//components/safe_browsing/content/browser/web_ui", "//components/safe_browsing/core/browser", -diff --git a/chrome/browser/safe_browsing/notification_content_detection_service_factory.cc b/chrome/browser/safe_browsing/notification_content_detection_service_factory.cc ---- a/chrome/browser/safe_browsing/notification_content_detection_service_factory.cc -+++ b/chrome/browser/safe_browsing/notification_content_detection_service_factory.cc +diff --git a/chrome/browser/safe_browsing/notification_content_detection/notification_content_detection_service_factory.cc b/chrome/browser/safe_browsing/notification_content_detection/notification_content_detection_service_factory.cc +--- a/chrome/browser/safe_browsing/notification_content_detection/notification_content_detection_service_factory.cc ++++ b/chrome/browser/safe_browsing/notification_content_detection/notification_content_detection_service_factory.cc @@ -15,6 +15,7 @@ #include "components/safe_browsing/content/browser/notification_content_detection/notification_content_detection_service.h" #include "components/safe_browsing/core/browser/db/database_manager.h" @@ -333,7 +333,7 @@ diff --git a/chrome/browser/safe_browsing/notification_content_detection_service 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 -@@ -430,7 +430,6 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -440,7 +440,6 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { } MixedContentSettingsTabHelper::CreateForWebContents(web_contents); NavigationMetricsRecorder::CreateForWebContents(web_contents); @@ -443,7 +443,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 -@@ -269,9 +274,11 @@ class ReadAloudAppModel { +@@ -270,9 +275,11 @@ class ReadAloudAppModel { // still needs to be read. bool NoValidTextRemainingInCurrentNode(bool is_pdf, bool is_docs) const; @@ -455,7 +455,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 -@@ -333,7 +340,7 @@ class ReadAloudAppModel { +@@ -334,7 +341,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.) @@ -467,8 +467,8 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_aloud_app_model.h diff --git a/chrome/renderer/accessibility/read_anything/read_anything_app_controller.cc b/chrome/renderer/accessibility/read_anything/read_anything_app_controller.cc --- a/chrome/renderer/accessibility/read_anything/read_anything_app_controller.cc +++ b/chrome/renderer/accessibility/read_anything/read_anything_app_controller.cc -@@ -27,7 +27,9 @@ - #include "base/strings/utf_string_conversions.h" +@@ -31,7 +31,9 @@ + #include "build/build_config.h" #include "chrome/common/read_anything/read_anything_util.h" #include "chrome/renderer/accessibility/ax_tree_distiller.h" +#if BUILDFLAG(BUILD_WITH_TFLITE_LIB) @@ -477,7 +477,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" -@@ -1462,6 +1464,7 @@ void ReadAnythingAppController::OnConnected() { +@@ -1577,6 +1579,7 @@ void ReadAnythingAppController::OnConnected() { render_frame()->GetBrowserInterfaceBroker().GetInterface( std::move(page_handler_factory_receiver)); @@ -485,7 +485,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; -@@ -1470,6 +1473,7 @@ void ReadAnythingAppController::OnConnected() { +@@ -1585,6 +1588,7 @@ void ReadAnythingAppController::OnConnected() { page_handler_->GetDependencyParserModel( base::BindOnce(&ReadAnythingAppController::UpdateDependencyParserModel, weak_ptr_factory_.GetWeakPtr())); @@ -493,7 +493,7 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_anything_app_contr } void ReadAnythingAppController::OnCopy() const { -@@ -1674,11 +1678,13 @@ std::vector ReadAnythingAppController::GetCurrentText() { +@@ -1794,11 +1798,13 @@ std::vector ReadAnythingAppController::GetCurrentText() { } void ReadAnythingAppController::PreprocessTextForSpeech() { @@ -507,7 +507,7 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_anything_app_contr } void ReadAnythingAppController::MovePositionToNextGranularity() { -@@ -1856,14 +1862,18 @@ bool ReadAnythingAppController::IsDocsLoadMoreButtonVisible() const { +@@ -2011,14 +2017,18 @@ bool ReadAnythingAppController::IsDocsLoadMoreButtonVisible() const { void ReadAnythingAppController::UpdateDependencyParserModel( base::File model_file) { @@ -539,7 +539,7 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_anything_app_contr class ReadAnythingAppControllerTest; class ReadAnythingAppControllerScreen2xDataCollectionModeTest; -@@ -275,7 +277,9 @@ class ReadAnythingAppController +@@ -283,7 +285,9 @@ class ReadAnythingAppController // available. void UpdateDependencyParserModel(base::File model_file); @@ -549,20 +549,10 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_anything_app_contr // Called when distillation has completed. void OnAXTreeDistilled(const ui::AXTreeID& tree_id, -@@ -376,7 +380,9 @@ class ReadAnythingAppController - - // Helpers for logging UmaHistograms based on times recorded in WebUI. - void IncrementMetricCount(const std::string& metric); -+#if BUILDFLAG(BUILD_WITH_TFLITE_LIB) - void LogSpeechEventCounts(); -+#endif - - // Stores a screenshot of the page and triggers distillation to record protos. - // This function is not used in production and is behind the disabled diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn --- a/chrome/utility/BUILD.gn +++ b/chrome/utility/BUILD.gn -@@ -65,7 +65,7 @@ static_library("utility") { +@@ -64,7 +64,7 @@ static_library("utility") { "//printing/buildflags", "//services/data_decoder:lib", "//services/network:network_service", @@ -574,7 +564,7 @@ diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn diff --git a/chrome/utility/services.cc b/chrome/utility/services.cc --- a/chrome/utility/services.cc +++ b/chrome/utility/services.cc -@@ -245,13 +245,6 @@ auto RunMirroringService( +@@ -241,13 +241,6 @@ auto RunMirroringService( std::move(receiver), content::UtilityThread::Get()->GetIOTaskRunner()); } @@ -588,7 +578,7 @@ diff --git a/chrome/utility/services.cc b/chrome/utility/services.cc #endif // !BUILDFLAG(IS_ANDROID) #if BUILDFLAG(ENABLE_BROWSER_SPEECH_SERVICE) -@@ -470,7 +463,6 @@ void RegisterMainThreadServices(mojo::ServiceFactory& services) { +@@ -464,7 +457,6 @@ void RegisterMainThreadServices(mojo::ServiceFactory& services) { #if !BUILDFLAG(IS_ANDROID) services.Add(RunProfileImporter); services.Add(RunMirroringService); @@ -628,7 +618,7 @@ diff --git a/components/autofill/core/browser/integrators/autofill_optimization_ 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 -@@ -48,7 +48,9 @@ +@@ -49,7 +49,9 @@ #include "components/omnibox/browser/autocomplete_input.h" #include "components/omnibox/browser/autocomplete_match_type.h" #include "components/omnibox/browser/autocomplete_provider.h" @@ -638,7 +628,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" -@@ -118,6 +120,7 @@ using ProviderType = AutocompleteProvider::Type; +@@ -121,6 +123,7 @@ using ProviderType = AutocompleteProvider::Type; constexpr bool is_android = !!BUILDFLAG(IS_ANDROID); @@ -646,7 +636,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 = -@@ -226,6 +229,7 @@ void RecordTotalMatchesScored(size_t num_scored) { +@@ -229,6 +232,7 @@ void RecordTotalMatchesScored(size_t num_scored) { base::UmaHistogramCounts1000("Omnibox.URLScoringModelExecuted.Matches", num_scored); } @@ -729,7 +719,7 @@ diff --git a/components/optimization_guide/core/optimization_guide_features.cc b } // namespace -@@ -445,8 +441,7 @@ size_t MaxURLKeyedHintCacheSize() { +@@ -449,8 +445,7 @@ size_t MaxURLKeyedHintCacheSize() { } bool ShouldPersistHintsToDisk() { @@ -739,7 +729,7 @@ diff --git a/components/optimization_guide/core/optimization_guide_features.cc b } RequestContextSet GetAllowedContextsForPersonalizedMetadata() { -@@ -888,5 +883,13 @@ bool IsPrivacyGuideAiSettingsEnabled() { +@@ -899,5 +894,13 @@ bool IsPrivacyGuideAiSettingsEnabled() { return base::FeatureList::IsEnabled(kPrivacyGuideAiSettings); } @@ -817,7 +807,7 @@ diff --git a/components/optimization_guide/features.gni b/components/optimizatio diff --git a/components/page_content_annotations/core/page_content_annotations_features.cc b/components/page_content_annotations/core/page_content_annotations_features.cc --- a/components/page_content_annotations/core/page_content_annotations_features.cc +++ b/components/page_content_annotations/core/page_content_annotations_features.cc -@@ -295,4 +295,8 @@ bool ShouldIncludeHiddenButSearchableContent() { +@@ -302,4 +302,8 @@ bool ShouldIncludeHiddenButSearchableContent() { return kIncludeHiddenButSearchableContent.Get(); } @@ -857,7 +847,7 @@ diff --git a/components/safe_browsing/content/browser/notification_content_detec diff --git a/components/safe_browsing/core/common/features.cc b/components/safe_browsing/core/common/features.cc --- a/components/safe_browsing/core/common/features.cc +++ b/components/safe_browsing/core/common/features.cc -@@ -250,6 +250,7 @@ constexpr base::FeatureParam kMaliciousApkDownloadCheckTelemetryOnly{ +@@ -260,6 +260,7 @@ constexpr base::FeatureParam BASE_FEATURE(kOnDeviceNotificationContentDetectionModel, "OnDeviceNotificationContentDetectionModel", base::FEATURE_ENABLED_BY_DEFAULT); @@ -937,7 +927,7 @@ diff --git a/services/webnn/features.gni b/services/webnn/features.gni 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 -@@ -1752,6 +1752,7 @@ ALWAYS_INLINE bool HTMLDocumentParser::ShouldCheckTimeBudget( +@@ -1757,6 +1757,7 @@ ALWAYS_INLINE bool HTMLDocumentParser::ShouldCheckTimeBudget( } bool HTMLDocumentParser::ShouldSkipPreloadScan() { @@ -948,18 +938,18 @@ diff --git a/third_party/blink/renderer/core/html/parser/html_document_parser.cc diff --git a/third_party/blink/renderer/core/speculation_rules/document_speculation_rules.cc b/third_party/blink/renderer/core/speculation_rules/document_speculation_rules.cc --- a/third_party/blink/renderer/core/speculation_rules/document_speculation_rules.cc +++ b/third_party/blink/renderer/core/speculation_rules/document_speculation_rules.cc -@@ -642,6 +642,7 @@ void DocumentSpeculationRules::UpdateSpeculationCandidates() { +@@ -644,6 +644,7 @@ void DocumentSpeculationRules::UpdateSpeculationCandidates() { return; } + if ((true)) return; HeapVector> candidates; - auto push_candidates = [&candidates, &document]( + auto push_candidates = [&candidates, &document, this]( mojom::blink::SpeculationAction action, 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 -@@ -3440,7 +3440,7 @@ +@@ -3447,7 +3447,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 b1a676b0..5e379bc2 100644 --- a/build/patches/Disable-all-promo-dialogs.patch +++ b/build/patches/Disable-all-promo-dialogs.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/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 -@@ -1597,6 +1597,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1632,6 +1632,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { } private boolean maybeShowPromo(Profile profile) { @@ -28,7 +28,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 -@@ -150,7 +150,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -151,7 +151,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref(prefs::kEnterpriseHardwarePlatformAPIEnabled, false); @@ -40,29 +40,29 @@ diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_u diff --git a/chrome/browser/ui/views/profiles/profile_picker_feature_promo_controller.cc b/chrome/browser/ui/views/profiles/profile_picker_feature_promo_controller.cc --- a/chrome/browser/ui/views/profiles/profile_picker_feature_promo_controller.cc +++ b/chrome/browser/ui/views/profiles/profile_picker_feature_promo_controller.cc -@@ -38,6 +38,7 @@ ui::ElementContext ProfilePickerFeaturePromoController::GetAnchorContext() - - bool ProfilePickerFeaturePromoController::CanShowPromoForElement( +@@ -40,6 +40,7 @@ ui::ElementContext ProfilePickerFeaturePromoController::GetAnchorContext() + user_education::FeaturePromoResult + ProfilePickerFeaturePromoController::CanShowPromoForElement( ui::TrackedElement* anchor_element) const { + if ((true)) return false; - return ProfilePicker::IsOpen(); - } - + return ProfilePicker::IsOpen() + ? user_education::FeaturePromoResult::Success() + : user_education::FeaturePromoResult::kBlockedByUi; diff --git a/chrome/browser/ui/views/user_education/impl/browser_feature_promo_controller_20.cc b/chrome/browser/ui/views/user_education/impl/browser_feature_promo_controller_20.cc --- a/chrome/browser/ui/views/user_education/impl/browser_feature_promo_controller_20.cc +++ b/chrome/browser/ui/views/user_education/impl/browser_feature_promo_controller_20.cc -@@ -59,6 +59,7 @@ ui::ElementContext BrowserFeaturePromoController20::GetAnchorContext() const { - - bool BrowserFeaturePromoController20::CanShowPromoForElement( +@@ -61,6 +61,7 @@ ui::ElementContext BrowserFeaturePromoController20::GetAnchorContext() const { + user_education::FeaturePromoResult + BrowserFeaturePromoController20::CanShowPromoForElement( ui::TrackedElement* anchor_element) const { + if ((true)) return false; // Trying to show an IPH while the browser is closing can cause problems; - // see crbug.com/346461762 for an example. This can also crash unit_tests that - // use a BrowserWindow but not a browser, so also check if the browser view's + // see https://crbug.com/346461762 for an example. This can also crash + // unit_tests that use a BrowserWindow but not a browser, so also check if 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 -@@ -117,6 +117,7 @@ public class UserEducationHelper { +@@ -119,6 +119,7 @@ public class UserEducationHelper { } private void showIph(Tracker tracker, IphCommand iphCommand) { @@ -92,7 +92,7 @@ diff --git a/components/user_education/common/feature_promo/feature_promo_regist diff --git a/components/user_education/common/feature_promo/impl/feature_promo_controller_20.cc b/components/user_education/common/feature_promo/impl/feature_promo_controller_20.cc --- a/components/user_education/common/feature_promo/impl/feature_promo_controller_20.cc +++ b/components/user_education/common/feature_promo/impl/feature_promo_controller_20.cc -@@ -99,6 +99,7 @@ FeaturePromoResult FeaturePromoController20::CanShowPromoCommon( +@@ -100,6 +100,7 @@ FeaturePromoResult FeaturePromoController20::CanShowPromoCommon( const FeaturePromoParams& params, ShowSource source, CanShowPromoOutputs* outputs) const { diff --git a/build/patches/Disable-conversion-measurement-api.patch b/build/patches/Disable-conversion-measurement-api.patch index ca2f0001..c8097be9 100644 --- a/build/patches/Disable-conversion-measurement-api.patch +++ b/build/patches/Disable-conversion-measurement-api.patch @@ -54,7 +54,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/android_webview/browser/aw_content_browser_client.cc b/android_webview/browser/aw_content_browser_client.cc --- a/android_webview/browser/aw_content_browser_client.cc +++ b/android_webview/browser/aw_content_browser_client.cc -@@ -1302,6 +1302,7 @@ network::mojom::AttributionSupport +@@ -1377,6 +1377,7 @@ network::mojom::AttributionSupport AwContentBrowserClient::GetAttributionSupport( AttributionReportingOsApiState state, bool client_os_disabled) { @@ -62,7 +62,7 @@ diff --git a/android_webview/browser/aw_content_browser_client.cc b/android_webv // WebView only supports OS-level attribution and not web-attribution. switch (state) { case AttributionReportingOsApiState::kDisabled: -@@ -1320,6 +1321,8 @@ bool AwContentBrowserClient::IsAttributionReportingOperationAllowed( +@@ -1395,6 +1396,8 @@ bool AwContentBrowserClient::IsAttributionReportingOperationAllowed( const url::Origin* destination_origin, const url::Origin* reporting_origin, bool* can_bypass) { @@ -94,7 +94,7 @@ diff --git a/android_webview/java/src/org/chromium/android_webview/AwSettings.ja @SpeculativeLoadingAllowedFlags private int mSpeculativeLoadingAllowedFlags = -@@ -1778,7 +1778,7 @@ public class AwSettings { +@@ -1813,7 +1813,7 @@ public class AwSettings { public void setAttributionBehavior(@AttributionBehavior int behavior) { synchronized (mAwSettingsLock) { if (mAttributionBehavior != behavior) { @@ -114,7 +114,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro @@ -348,7 +355,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -@@ -1019,15 +984,6 @@ by a child template that "extends" this file. +@@ -1014,15 +979,6 @@ by a child template that "extends" this file. android:exported="false" android:permission="android.permission.BIND_JOB_SERVICE"/> @@ -364,7 +371,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -@@ -1294,12 +1250,6 @@ by a child template that "extends" this file. +@@ -1289,12 +1245,6 @@ by a child template that "extends" this file. {% endif %} @@ -451,220 +458,6 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/background_task case TaskIds.OFFLINE_PAGES_BACKGROUND_JOB_ID: return new OfflineBackgroundTask(); case TaskIds.DOWNLOAD_SERVICE_JOB_ID: -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gcore/ChromeGoogleApiClientImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/gcore/ChromeGoogleApiClientImpl.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/gcore/ChromeGoogleApiClientImpl.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/gcore/ChromeGoogleApiClientImpl.java -@@ -6,9 +6,6 @@ package org.chromium.chrome.browser.gcore; - - import android.content.Context; - --import com.google.android.gms.common.ConnectionResult; --import com.google.android.gms.common.api.GoogleApiClient; -- - import org.chromium.base.Log; - import org.chromium.base.TraceEvent; - import org.chromium.components.externalauth.ExternalAuthUtils; -@@ -20,7 +17,6 @@ public class ChromeGoogleApiClientImpl implements ChromeGoogleApiClient { - private static final String TAG = "Icing"; - - private final Context mApplicationContext; -- private final GoogleApiClient mClient; - private final ExternalAuthUtils mExternalAuthUtils; - - /** -@@ -31,9 +27,8 @@ public class ChromeGoogleApiClientImpl implements ChromeGoogleApiClient { - * build. - */ - public ChromeGoogleApiClientImpl( -- Context context, GoogleApiClient client, boolean requireFirstPartyBuild) { -+ Context context, boolean requireFirstPartyBuild) { - mApplicationContext = context.getApplicationContext(); -- mClient = client; - mExternalAuthUtils = ExternalAuthUtils.getInstance(); - if (requireFirstPartyBuild && !mExternalAuthUtils.isChromeGoogleSigned()) { - throw new IllegalStateException("GoogleApiClient requires first-party build"); -@@ -42,7 +37,6 @@ public class ChromeGoogleApiClientImpl implements ChromeGoogleApiClient { - - @Override - public void disconnect() { -- mClient.disconnect(); - } - - @Override -@@ -58,24 +52,11 @@ public class ChromeGoogleApiClientImpl implements ChromeGoogleApiClient { - @Override - public boolean connectWithTimeout(long timeout) { - TraceEvent.begin("ChromeGoogleApiClientImpl:connectWithTimeout"); -- try { -- ConnectionResult result = mClient.blockingConnect(timeout, TimeUnit.MILLISECONDS); -- if (!result.isSuccess()) { -- Log.e(TAG, "Connection to GmsCore unsuccessful. Error %d", result.getErrorCode()); -- } else { -- Log.d(TAG, "Connection to GmsCore successful."); -- } -- return result.isSuccess(); -- } finally { -- TraceEvent.end("ChromeGoogleApiClientImpl:connectWithTimeout"); -- } -+ TraceEvent.end("ChromeGoogleApiClientImpl:connectWithTimeout"); -+ return false; - } - - public Context getApplicationContext() { - return mApplicationContext; - } -- -- public GoogleApiClient getApiClient() { -- return mClient; -- } - } -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gcore/GoogleApiClientHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/gcore/GoogleApiClientHelper.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/gcore/GoogleApiClientHelper.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/gcore/GoogleApiClientHelper.java -@@ -7,11 +7,6 @@ package org.chromium.chrome.browser.gcore; - import android.os.Bundle; - import android.os.Handler; - --import com.google.android.gms.common.ConnectionResult; --import com.google.android.gms.common.api.GoogleApiClient; --import com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks; --import com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener; -- - import org.chromium.base.ApplicationStatus; - import org.chromium.base.ApplicationStatus.ApplicationStateListener; - import org.chromium.base.Log; -@@ -67,28 +62,15 @@ import org.chromium.base.ThreadUtils; - * } - * - */ --public class GoogleApiClientHelper implements OnConnectionFailedListener, ConnectionCallbacks { -+public class GoogleApiClientHelper { - private static final String TAG = "GCore"; - - private int mResolutionAttempts; - private boolean mWasConnectedBefore; - private final Handler mHandler = new Handler(ThreadUtils.getUiThreadLooper()); -- private final GoogleApiClient mClient; - private long mDisconnectionDelayMs; - private Runnable mPendingDisconnect; - -- /** -- * Creates a helper and enrolls it in the various connection management features. -- * See the class documentation for {@link GoogleApiClientHelper} for more information. -- * -- * @param client The client to wrap. -- */ -- public GoogleApiClientHelper(GoogleApiClient client) { -- mClient = client; -- enableConnectionRetrying(true); -- enableLifecycleManagement(true); -- } -- - /** - * Opts in or out of lifecycle management. The client's connection will be closed and reopened - * when Chrome goes in and out of background. -@@ -115,13 +97,6 @@ public class GoogleApiClientHelper implements OnConnectionFailedListener, Connec - * Enabling or disabling it while it is already enabled or disabled has no effect. - */ - public void enableConnectionRetrying(boolean enabled) { -- if (enabled) { -- mClient.registerConnectionCallbacks(this); -- mClient.registerConnectionFailedListener(this); -- } else { -- mClient.unregisterConnectionCallbacks(this); -- mClient.unregisterConnectionFailedListener(this); -- } - } - - /** -@@ -154,21 +129,11 @@ public class GoogleApiClientHelper implements OnConnectionFailedListener, Connec - // Cancel and reschedule the disconnection if we are in the background. We do it early to - // avoid race conditions between a disconnect on the UI thread and the connect below. - if (!ApplicationStatus.hasVisibleActivities()) scheduleDisconnection(); -- -- // The client might be disconnected if we were idle in the background for too long. -- if (!mClient.isConnected() && !mClient.isConnecting()) { -- Log.d(TAG, "Reconnecting the client."); -- mClient.connect(); -- } - } - - void restoreConnectedState() { - // If we go back to the foreground before a delayed disconnect happens, cancel it. - cancelPendingDisconnection(); -- -- if (mWasConnectedBefore) { -- mClient.connect(); -- } - } - - /** -@@ -192,12 +157,6 @@ public class GoogleApiClientHelper implements OnConnectionFailedListener, Connec - } - - private void disconnect() { -- if (mClient.isConnected() || mClient.isConnecting()) { -- mWasConnectedBefore = true; -- } -- -- // We always call disconnect to abort possibly pending connection requests. -- mClient.disconnect(); - } - - private void cancelPendingDisconnection() { -@@ -207,51 +166,7 @@ public class GoogleApiClientHelper implements OnConnectionFailedListener, Connec - mPendingDisconnect = null; - } - -- @Override -- public void onConnectionFailed(ConnectionResult result) { -- if (!isErrorRecoverableByRetrying(result.getErrorCode())) { -- Log.d( -- TAG, -- "Not retrying managed client connection. Unrecoverable error: %d", -- result.getErrorCode()); -- return; -- } -- -- if (mResolutionAttempts < ConnectedTask.RETRY_NUMBER_LIMIT) { -- Log.d( -- TAG, -- "Retrying managed client connection. attempt %d/%d - errorCode: %d", -- mResolutionAttempts, -- ConnectedTask.RETRY_NUMBER_LIMIT, -- result.getErrorCode()); -- mResolutionAttempts += 1; -- -- mHandler.postDelayed( -- new Runnable() { -- @Override -- public void run() { -- mClient.connect(); -- } -- }, -- ConnectedTask.CONNECTION_RETRY_TIME_MS); -- } -- } -- -- @Override -- public void onConnected(Bundle connectionHint) { -- mResolutionAttempts = 0; -- } -- -- @Override -- public void onConnectionSuspended(int cause) { -- // GoogleApiClient handles retrying on suspension itself. Logging in case it didn't succeed -- // for some reason. -- Log.w(TAG, "Managed client connection suspended. Cause: %d", cause); -- } -- - private static boolean isErrorRecoverableByRetrying(int errorCode) { -- return errorCode == ConnectionResult.INTERNAL_ERROR -- || errorCode == ConnectionResult.NETWORK_ERROR -- || errorCode == ConnectionResult.SERVICE_UPDATING; -+ return false; - } - } diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java @@ -725,7 +518,7 @@ diff --git a/chrome/android/javatests/BUILD.gn b/chrome/android/javatests/BUILD. diff --git a/chrome/android/junit/BUILD.gn b/chrome/android/junit/BUILD.gn --- a/chrome/android/junit/BUILD.gn +++ b/chrome/android/junit/BUILD.gn -@@ -35,12 +35,6 @@ shared_library_with_jni("libchrome_junit_tests") { +@@ -35,13 +35,6 @@ shared_library_with_jni("libchrome_junit_tests") { if (is_android) { # Partition tests into one target per-package to keep incremental build times down. chrome_junit_tests_helper_deps = [ @@ -734,6 +527,7 @@ diff --git a/chrome/android/junit/BUILD.gn b/chrome/android/junit/BUILD.gn - "$google_play_services_package:google_play_services_cast_framework_java", - "$google_play_services_package:google_play_services_cast_java", - "$google_play_services_package:google_play_services_gcm_java", +- "$google_play_services_package:google_play_services_identity_credentials_java", - "$google_play_services_package:google_play_services_tasks_java", "//base:base_java", "//base:base_java_test_support", @@ -851,15 +645,15 @@ diff --git a/chrome/browser/password_manager/android/BUILD.gn b/chrome/browser/p "account_storage_notice:java", "//base:base_java", "//build/android:build_java", -@@ -262,7 +260,6 @@ android_library("utils_java") { - ] +@@ -267,7 +265,6 @@ android_library("utils_java") { deps = [ + ":java_resources", - "$google_play_services_package:google_play_services_base_java", - "//chrome/browser/settings:factory_java", - "//components/browser_ui/settings/android:java", - ] -@@ -318,8 +315,6 @@ robolectric_binary("password_manager_junit_tests") { + "//base:base_java", + "//base:resetters_java", + "//base:tasks_java", +@@ -353,8 +350,6 @@ robolectric_binary("password_manager_junit_tests") { ":test_support_java", ":unified_password_manager_proto_java", ":utils_java", @@ -983,16 +777,16 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerHelper.java b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerHelper.java --- a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerHelper.java +++ b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerHelper.java -@@ -20,8 +20,6 @@ import androidx.annotation.IntDef; - import androidx.annotation.Nullable; +@@ -23,8 +23,6 @@ import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; + import androidx.fragment.app.FragmentActivity; -import com.google.android.gms.common.api.ApiException; - import org.jni_zero.JniType; import org.jni_zero.NativeMethods; -@@ -604,13 +602,6 @@ public class PasswordManagerHelper { +@@ -731,13 +729,6 @@ public class PasswordManagerHelper { // If the exception is not a Chrome-defined one, it means that the call failed at the // API call level. It could have either failed with a known ApiException or because of a // different error (e.g. a different exception thrown by the implementation of the API). @@ -1051,7 +845,7 @@ diff --git a/chrome/browser/push_messaging/push_messaging_service_factory.cc b/c 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 -@@ -196,8 +196,6 @@ static_library("ui") { +@@ -197,8 +197,6 @@ static_library("ui") { "webui/flags/flags_ui.h", "webui/flags/flags_ui_handler.cc", "webui/flags/flags_ui_handler.h", @@ -1060,10 +854,10 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn "webui/history_clusters/history_clusters_internals_ui_config.cc", "webui/history_clusters/history_clusters_internals_ui_config.h", "webui/interstitials/interstitial_ui.cc", -@@ -491,7 +489,6 @@ static_library("ui") { - "//components/feedback/redaction_tool", - "//components/find_in_page", +@@ -497,7 +495,6 @@ static_library("ui") { "//components/fingerprinting_protection_filter/browser", + "//components/fingerprinting_protection_filter/interventions/browser", + "//components/fingerprinting_protection_filter/interventions/common:features", - "//components/gcm_driver", "//components/google/core/common", "//components/heap_profiling/multi_process", @@ -1071,7 +865,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/android/omnibox/BUILD.gn --- a/chrome/browser/ui/android/omnibox/BUILD.gn +++ b/chrome/browser/ui/android/omnibox/BUILD.gn -@@ -155,8 +155,6 @@ android_library("java") { +@@ -154,8 +154,6 @@ android_library("java") { deps = [ ":java_resources", @@ -1080,7 +874,7 @@ diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/andr "//base:base_java", "//base/version_info/android:version_constants_java", "//build/android:build_java", -@@ -473,8 +471,6 @@ robolectric_library("junit") { +@@ -469,8 +467,6 @@ robolectric_library("junit") { deps = [ ":java", ":java_resources", @@ -1092,29 +886,16 @@ diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/andr diff --git a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fullscreen_signin/FullscreenSigninMediator.java b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fullscreen_signin/FullscreenSigninMediator.java --- a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fullscreen_signin/FullscreenSigninMediator.java +++ b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fullscreen_signin/FullscreenSigninMediator.java -@@ -226,21 +226,17 @@ public class FullscreenSigninMediator - * also means that native has been initialized. +@@ -229,11 +229,9 @@ public class FullscreenSigninMediator + * also means that native has been initialized. */ void onInitialLoadCompleted(boolean hasPolicies) { -- boolean isSigninDisabledByPolicy = false; - boolean isMetricsReportingDisabledByPolicy = false; -+ boolean isSigninDisabledByPolicy = true; + boolean isMetricsReportingDisabledByPolicy = true; Log.i(TAG, "#onInitialLoadCompleted() hasPolicies:" + hasPolicies); - Profile profile = mDelegate.getProfileSupplier().get().getOriginalProfile(); if (hasPolicies) { -- isSigninDisabledByPolicy = -- IdentityServicesProvider.get() -- .getSigninManager(profile) -- .isSigninDisabledByPolicy(); -+ isSigninDisabledByPolicy = true; - Log.i( - TAG, - "#onInitialLoadCompleted() isSigninDisabledByPolicy:" - + isSigninDisabledByPolicy); - isMetricsReportingDisabledByPolicy = - !mPrivacyPreferencesManager.isUsageAndCrashReportingPermittedByPolicy(); -+ isMetricsReportingDisabledByPolicy = true; mModel.set( FullscreenSigninProperties.SHOW_ENTERPRISE_MANAGEMENT_NOTICE, mDelegate.shouldDisplayManagementNoticeOnManagedDevices()); @@ -1130,9 +911,9 @@ diff --git a/chrome/browser/ui/webauthn/sheet_models.cc b/chrome/browser/ui/weba // that goes to the settings page to manage them. - return std::ranges::any_of( - dialog_model()->mechanisms, [](const Mechanism& mech) { -- return absl::holds_alternative(mech.type) || -- (absl::holds_alternative(mech.type) && -- absl::get(mech.type).value().source == +- return std::holds_alternative(mech.type) || +- (std::holds_alternative(mech.type) && +- std::get(mech.type).value().source == - device::AuthenticatorType::kPhone); - }); + return false; @@ -1142,7 +923,7 @@ diff --git a/chrome/browser/ui/webauthn/sheet_models.cc b/chrome/browser/ui/weba diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/ui/webui/chrome_web_ui_configs.cc --- a/chrome/browser/ui/webui/chrome_web_ui_configs.cc +++ b/chrome/browser/ui/webui/chrome_web_ui_configs.cc -@@ -221,7 +221,6 @@ void RegisterChromeWebUIConfigs() { +@@ -223,7 +223,6 @@ void RegisterChromeWebUIConfigs() { map.AddWebUIConfig(std::make_unique()); map.AddWebUIConfig(std::make_unique()); map.AddWebUIConfig(std::make_unique()); @@ -1153,7 +934,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/u diff --git a/chrome/browser/webauthn/android/BUILD.gn b/chrome/browser/webauthn/android/BUILD.gn --- a/chrome/browser/webauthn/android/BUILD.gn +++ b/chrome/browser/webauthn/android/BUILD.gn -@@ -17,7 +17,6 @@ android_library("java") { +@@ -16,7 +16,6 @@ android_library("java") { deps = [ ":java_resources", @@ -1236,7 +1017,7 @@ diff --git a/chrome/browser/webauthn/cablev2_devices.cc b/chrome/browser/webauth diff --git a/chrome/test/android/BUILD.gn b/chrome/test/android/BUILD.gn --- a/chrome/test/android/BUILD.gn +++ b/chrome/test/android/BUILD.gn -@@ -382,8 +382,6 @@ android_library("chrome_java_integration_test_support") { +@@ -390,8 +390,6 @@ android_library("chrome_java_integration_test_support") { deps = [ ":chrome_java_test_support_common", @@ -1248,7 +1029,7 @@ diff --git a/chrome/test/android/BUILD.gn b/chrome/test/android/BUILD.gn diff --git a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java --- a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java +++ b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java -@@ -2554,14 +2554,6 @@ public class ExternalNavigationHandler { +@@ -2568,14 +2568,6 @@ public class ExternalNavigationHandler { * @return Whether the given intent is going to open an Instant App. */ private static boolean isIntentToInstantApp(Intent intent) { @@ -1649,7 +1430,7 @@ diff --git a/components/media_router/browser/android/BUILD.gn b/components/media diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/BrowserMediaRouter.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/BrowserMediaRouter.java --- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/BrowserMediaRouter.java +++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/BrowserMediaRouter.java -@@ -10,9 +10,6 @@ import androidx.annotation.Nullable; +@@ -9,9 +9,6 @@ import static org.chromium.build.NullUtil.assumeNonNull; import androidx.annotation.VisibleForTesting; import androidx.mediarouter.media.MediaRouter; @@ -1659,7 +1440,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo import org.jni_zero.CalledByNative; import org.jni_zero.JNINamespace; import org.jni_zero.NativeMethods; -@@ -44,23 +41,7 @@ public class BrowserMediaRouter implements MediaRouteManager { +@@ -46,23 +43,7 @@ public class BrowserMediaRouter implements MediaRouteManager { new MediaRouteProvider.Factory() { @Override public void addProviders(MediaRouteManager manager) { @@ -1687,18 +1468,22 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/MediaSink.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/MediaSink.java --- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/MediaSink.java +++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/MediaSink.java -@@ -8,35 +8,18 @@ import androidx.annotation.Nullable; +@@ -7,8 +7,6 @@ package org.chromium.components.media_router; import androidx.mediarouter.media.MediaRouter; import androidx.mediarouter.media.MediaRouter.RouteInfo; -import com.google.android.gms.cast.CastDevice; - - /** A common descriptor of a device that can present some URI. */ + import org.chromium.build.annotations.NullMarked; + import org.chromium.build.annotations.Nullable; + +@@ -16,30 +14,15 @@ import org.chromium.build.annotations.Nullable; + @NullMarked public class MediaSink { private static final String CAST_SINK_URN_PREFIX = "urn:x-org.chromium:media:sink:cast-"; - private final String mId; - private final String mName; -- private final CastDevice mDevice; +- private final @Nullable CastDevice mDevice; - - /** - * Constructor. @@ -1706,7 +1491,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo - * @param name A user friendly name of the sink. - * @param device {@link CastDevice} corresponding to this sink. - */ -- public MediaSink(String id, String name, CastDevice device) { +- public MediaSink(String id, String name, @Nullable CastDevice device) { - mId = id; - mName = name; - mDevice = device; @@ -1725,11 +1510,11 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo } /** @return The valid URN representing the sink. */ -@@ -44,17 +27,8 @@ public class MediaSink { +@@ -47,17 +30,8 @@ public class MediaSink { return CAST_SINK_URN_PREFIX + getId(); } -- public CastDevice getDevice() { +- public @Nullable CastDevice getDevice() { - return mDevice; - } - @@ -1743,7 +1528,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo return false; } -@@ -62,23 +36,15 @@ public class MediaSink { +@@ -65,23 +39,15 @@ public class MediaSink { public int hashCode() { final int prime = 31; int result = 1; @@ -1768,10 +1553,10 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo } /** -@@ -89,10 +55,6 @@ public class MediaSink { +@@ -91,10 +57,6 @@ public class MediaSink { + * found, null otherwise. */ - @Nullable - public static MediaSink fromSinkId(String sinkId, MediaRouter router) { + public static @Nullable MediaSink fromSinkId(String sinkId, MediaRouter router) { - for (MediaRouter.RouteInfo route : router.getRoutes()) { - MediaSink sink = MediaSink.fromRoute(route); - if (sink.getId().equals(sinkId)) return sink; @@ -1793,9 +1578,9 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo import org.jni_zero.CalledByNative; import org.jni_zero.JNINamespace; -@@ -17,11 +13,6 @@ import org.jni_zero.JNINamespace; - */ +@@ -21,11 +17,6 @@ import org.chromium.build.annotations.Nullable; @JNINamespace("media_router") + @NullMarked public class MediaStatusBridge { - private MediaStatus mStatus; - @@ -1805,7 +1590,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo /** * Gets the play state of the stream. Return values are defined as such: -@@ -34,7 +25,7 @@ public class MediaStatusBridge { +@@ -38,7 +29,7 @@ public class MediaStatusBridge { */ @CalledByNative public int playerState() { @@ -1814,7 +1599,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo } /** -@@ -48,7 +39,7 @@ public class MediaStatusBridge { +@@ -52,7 +43,7 @@ public class MediaStatusBridge { */ @CalledByNative public int idleReason() { @@ -1823,10 +1608,10 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo } /** -@@ -57,43 +48,37 @@ public class MediaStatusBridge { +@@ -61,43 +52,37 @@ public class MediaStatusBridge { */ @CalledByNative - public String title() { + public @Nullable String title() { - MediaInfo info = mStatus.getMediaInfo(); - if (info == null) return ""; - @@ -1873,7 +1658,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo } /** -@@ -103,7 +88,7 @@ public class MediaStatusBridge { +@@ -107,7 +92,7 @@ public class MediaStatusBridge { */ @CalledByNative public double volume() { @@ -1882,7 +1667,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo } /** -@@ -112,15 +97,12 @@ public class MediaStatusBridge { +@@ -116,15 +101,12 @@ public class MediaStatusBridge { */ @CalledByNative public long duration() { @@ -1903,7 +1688,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/BaseNotificationController.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/BaseNotificationController.java --- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/BaseNotificationController.java +++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/BaseNotificationController.java -@@ -6,10 +6,6 @@ package org.chromium.components.media_router.caf; +@@ -8,10 +8,6 @@ import static org.chromium.build.NullUtil.assumeNonNull; import android.content.Intent; @@ -1911,13 +1696,14 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo -import com.google.android.gms.cast.MediaStatus; -import com.google.android.gms.cast.framework.media.RemoteMediaClient; - - import org.chromium.components.browser_ui.media.MediaNotificationInfo; - import org.chromium.components.browser_ui.media.MediaNotificationListener; - import org.chromium.components.browser_ui.media.MediaNotificationManager; -@@ -61,20 +57,6 @@ public abstract class BaseNotificationController + import org.chromium.build.annotations.NullMarked; + import org.chromium.build.annotations.Nullable; + import org.chromium.build.annotations.RequiresNonNull; +@@ -68,22 +64,6 @@ public abstract class BaseNotificationController public void onStatusUpdated() { if (mNotificationBuilder == null) return; if (!mSessionController.isConnected()) return; +- assumeNonNull(mSessionController.getRemoteMediaClient()); - - MediaStatus mediaStatus = mSessionController.getRemoteMediaClient().getMediaStatus(); - if (mediaStatus == null) return; @@ -1931,14 +1717,16 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo - } else { - mNotificationBuilder.setActions(MediaNotificationInfo.ACTION_STOP); - } +- assumeNonNull(MediaRouterClient.getInstance()); - MediaRouterClient.getInstance().showNotification(mNotificationBuilder.build()); } /** Called when media metadata updated. */ -@@ -92,35 +74,6 @@ public abstract class BaseNotificationController +@@ -103,37 +83,6 @@ public abstract class BaseNotificationController mNotificationBuilder.setMetadata(notificationMetadata); if (!mSessionController.isConnected()) return; +- assumeNonNull(mSessionController.getSession()); - - CastDevice castDevice = mSessionController.getSession().getCastDevice(); - if (castDevice != null) { @@ -1949,6 +1737,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo - } - - RemoteMediaClient remoteMediaClient = mSessionController.getRemoteMediaClient(); +- assumeNonNull(remoteMediaClient); - - com.google.android.gms.cast.MediaInfo info = remoteMediaClient.getMediaInfo(); - if (info == null) return; @@ -1971,11 +1760,12 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo } ///////////////////////////////////////////////////////////////////////////////////////////// -@@ -128,16 +81,10 @@ public abstract class BaseNotificationController +@@ -141,18 +90,10 @@ public abstract class BaseNotificationController @Override public void onPlay(int actionSource) { - if (!mSessionController.isConnected()) return; +- assumeNonNull(mSessionController.getRemoteMediaClient()); - - mSessionController.getRemoteMediaClient().play(); } @@ -1983,6 +1773,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo @Override public void onPause(int actionSource) { - if (!mSessionController.isConnected()) return; +- assumeNonNull(mSessionController.getRemoteMediaClient()); - - mSessionController.getRemoteMediaClient().pause(); } @@ -1991,26 +1782,29 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/BaseSessionController.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/BaseSessionController.java --- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/BaseSessionController.java +++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/BaseSessionController.java -@@ -6,12 +6,7 @@ package org.chromium.components.media_router.caf; +@@ -6,15 +6,10 @@ package org.chromium.components.media_router.caf; - import androidx.annotation.Nullable; + import static org.chromium.build.NullUtil.assumeNonNull; -import com.google.android.gms.cast.CastDevice; -import com.google.android.gms.cast.framework.CastSession; -import com.google.android.gms.cast.framework.media.RemoteMediaClient; - import org.chromium.base.Log; + import org.chromium.build.annotations.EnsuresNonNullIf; + import org.chromium.build.annotations.NullMarked; + import org.chromium.build.annotations.Nullable; -import org.chromium.components.media_router.CastSessionUtil; import org.chromium.components.media_router.FlingingController; import org.chromium.components.media_router.MediaSink; import org.chromium.components.media_router.MediaSource; -@@ -42,15 +37,12 @@ public abstract class BaseSessionController { +@@ -47,15 +42,12 @@ public abstract class BaseSessionController { void onMetadataUpdated(); } -- private CastSession mCastSession; +- private @Nullable CastSession mCastSession; private final CafBaseMediaRouteProvider mProvider; - private CreateRouteRequestInfo mRouteCreationInfo; + private @Nullable CreateRouteRequestInfo mRouteCreationInfo; - private final RemoteMediaClient.Callback mRemoteMediaClientCallback; private final List mCallbacks = new ArrayList<>(); @@ -2020,25 +1814,26 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo } public void addCallback(Callback callback) { -@@ -63,9 +55,6 @@ public abstract class BaseSessionController { +@@ -68,10 +60,6 @@ public abstract class BaseSessionController { public void requestSessionLaunch() { mRouteCreationInfo = mProvider.getPendingCreateRouteRequestInfo(); +- assumeNonNull(mRouteCreationInfo); - CastUtils.getCastContext() - .setReceiverApplicationId(mRouteCreationInfo.getMediaSource().getApplicationId()); - // When the user clicks a route on the MediaRouteChooserDialog, we intercept the click event // and do not select the route. Instead the route selection is postponed to here. This will // trigger CAF to launch the session. -@@ -84,71 +73,22 @@ public abstract class BaseSessionController { +@@ -90,137 +78,43 @@ public abstract class BaseSessionController { return mRouteCreationInfo; } -- public CastSession getSession() { +- public @Nullable CastSession getSession() { - return mCastSession; - } - -- public RemoteMediaClient getRemoteMediaClient() { +- public @Nullable RemoteMediaClient getRemoteMediaClient() { - return isConnected() ? mCastSession.getRemoteMediaClient() : null; - } - @@ -2053,6 +1848,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo List capabilities = new ArrayList<>(); - if (mCastSession == null || !mCastSession.isConnected()) return capabilities; - CastDevice device = mCastSession.getCastDevice(); +- assumeNonNull(device); - if (device.hasCapability(CastDevice.CAPABILITY_AUDIO_IN)) { - capabilities.add("audio_in"); - } @@ -2068,6 +1864,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo return capabilities; } + @EnsuresNonNullIf("mCastSession") public boolean isConnected() { - return mCastSession != null && mCastSession.isConnected(); + return false; @@ -2075,6 +1872,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo private void updateRemoteMediaClient(String message) { if (!isConnected()) return; +- assumeNonNull(mCastSession.getRemoteMediaClient()); - - mCastSession - .getRemoteMediaClient() @@ -2103,7 +1901,16 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo } /** Called when session started. */ -@@ -165,54 +105,12 @@ public abstract class BaseSessionController { + public void onSessionStarted() { +- notifyCallback((Callback callback) -> callback.onSessionStarted()); + } + + /** Called when session ended. */ + public void onSessionEnded() { +- notifyCallback((Callback callback) -> callback.onSessionEnded()); + } + + protected final CafBaseMediaRouteProvider getProvider() { return mProvider; } @@ -2144,8 +1951,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo - notifyCallback((Callback callback) -> callback.onMetadataUpdated()); - } - -- @Nullable -- public FlingingController getFlingingController() { +- public @Nullable FlingingController getFlingingController() { - return null; - } - @@ -2153,8 +1959,9 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo * Helper message to get the session ID of the attached session. For stubbing in tests as * {@link CastSession#getSessionId()} is final. */ - public String getSessionId() { -- return isConnected() ? getSession().getSessionId() : null; +- public @Nullable String getSessionId() { +- return isConnected() ? mCastSession.getSessionId() : null; ++ public String getSessionId() { + return null; } @@ -2170,18 +1977,18 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo -import com.google.android.gms.cast.framework.SessionManagerListener; - import org.chromium.base.Log; - import org.chromium.components.media_router.DiscoveryCallback; - import org.chromium.components.media_router.DiscoveryDelegate; -@@ -36,7 +33,7 @@ import java.util.Set; - + import org.chromium.build.annotations.NullMarked; + import org.chromium.build.annotations.Nullable; +@@ -39,7 +36,7 @@ import java.util.Set; /** A base provider containing common implementation for CAF-based {@link MediaRouteProvider}s. */ + @NullMarked public abstract class CafBaseMediaRouteProvider - implements MediaRouteProvider, DiscoveryDelegate, SessionManagerListener { + implements MediaRouteProvider, DiscoveryDelegate { private static final String TAG = "CafMR"; protected static final List NO_SINKS = Collections.emptyList(); -@@ -174,7 +171,6 @@ public abstract class CafBaseMediaRouteProvider +@@ -176,7 +173,6 @@ public abstract class CafBaseMediaRouteProvider // current session and clean up the routes (can't wait for session ending as the signal // might be delayed). sessionController().endSession(); @@ -2189,7 +1996,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo } if (mPendingCreateRouteRequestInfo != null) { cancelPendingRequest("Request replaced"); -@@ -203,10 +199,6 @@ public abstract class CafBaseMediaRouteProvider +@@ -205,10 +201,6 @@ public abstract class CafBaseMediaRouteProvider mManager.onCreateRouteRequestError("The sink does not exist", nativeRequestId); } @@ -2200,7 +2007,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo mPendingCreateRouteRequestInfo = new CreateRouteRequestInfo( source, -@@ -241,108 +233,6 @@ public abstract class CafBaseMediaRouteProvider +@@ -243,109 +235,6 @@ public abstract class CafBaseMediaRouteProvider removeRoute(routeId, /* error= */ null); } @@ -2271,6 +2078,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo - protected void handleSessionStart(CastSession session, String sessionId) { - sessionController().attachToCastSession(session); - sessionController().onSessionStarted(); +- assumeNonNull(mPendingCreateRouteRequestInfo); - - MediaSink sink = mPendingCreateRouteRequestInfo.sink; - MediaSource source = mPendingCreateRouteRequestInfo.getMediaSource(); @@ -2299,7 +2107,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo - } - sessionController().onSessionEnded(); - sessionController().detachFromCastSession(); -- getAndroidMediaRouter().selectRoute(getAndroidMediaRouter().getDefaultRoute()); +- mAndroidMediaRouter.selectRoute(mAndroidMediaRouter.getDefaultRoute()); - terminateAllRoutes(); - CastUtils.getCastContext() - .getSessionManager() @@ -2312,16 +2120,16 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CafMediaRouteProvider.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CafMediaRouteProvider.java --- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CafMediaRouteProvider.java +++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CafMediaRouteProvider.java -@@ -11,8 +11,6 @@ import androidx.annotation.Nullable; +@@ -10,8 +10,6 @@ import static org.chromium.components.media_router.caf.CastUtils.isSameOrigin; import androidx.annotation.VisibleForTesting; import androidx.mediarouter.media.MediaRouter; -import com.google.android.gms.cast.framework.CastSession; - import org.chromium.base.Log; - import org.chromium.components.media_router.BrowserMediaRouter; - import org.chromium.components.media_router.ClientRecord; -@@ -144,23 +142,6 @@ public class CafMediaRouteProvider extends CafBaseMediaRouteProvider { + import org.chromium.build.annotations.NullMarked; + import org.chromium.build.annotations.Nullable; +@@ -147,25 +145,6 @@ public class CafMediaRouteProvider extends CafBaseMediaRouteProvider { return mMessageHandler; } @@ -2331,6 +2139,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo - - for (ClientRecord clientRecord : mClientIdToRecords.values()) { - // Should be exactly one instance of MediaRoute/ClientRecord at this moment. +- assert sessionController().getSink() != null; - mMessageHandler.sendReceiverActionToClient( - clientRecord.routeId, - sessionController().getSink(), @@ -2339,7 +2148,8 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo - } - - mMessageHandler.onSessionStarted(); -- sessionController().getSession().getRemoteMediaClient().requestStatus(); +- assumeNonNull(assumeNonNull(sessionController().getSession()).getRemoteMediaClient()) +- .requestStatus(); - } - @Override @@ -2348,7 +2158,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CafMessageHandler.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CafMessageHandler.java --- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CafMessageHandler.java +++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CafMessageHandler.java -@@ -13,10 +13,6 @@ import android.util.SparseArray; +@@ -14,10 +14,6 @@ import android.util.SparseArray; import androidx.annotation.VisibleForTesting; import androidx.collection.ArrayMap; @@ -2359,10 +2169,10 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; -@@ -338,50 +334,7 @@ public class CafMessageHandler { - throws JSONException { +@@ -336,50 +332,7 @@ public class CafMessageHandler { if (volumeMessage == null) return false; if (!mSessionController.isConnected()) return false; + assumeNonNull(mSessionController.getSession()); - boolean shouldWaitForVolumeChange = false; - try { - if (!volumeMessage.isNull("muted")) { @@ -2411,7 +2221,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo } @VisibleForTesting -@@ -680,20 +633,11 @@ public class CafMessageHandler { +@@ -678,21 +631,11 @@ public class CafMessageHandler { try { // "volume" is a part of "receiver" initialized below. JSONObject jsonVolume = new JSONObject(); @@ -2421,7 +2231,8 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo // "receiver" is a part of "message" initialized below. JSONObject jsonReceiver = new JSONObject(); - jsonReceiver.put( -- "label", mSessionController.getSession().getCastDevice().getDeviceId()); +- "label", +- assumeNonNull(mSessionController.getSession().getCastDevice()).getDeviceId()); - jsonReceiver.put( - "friendlyName", - mSessionController.getSession().getCastDevice().getFriendlyName()); @@ -2432,7 +2243,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo jsonReceiver.put("displayStatus", null); jsonReceiver.put("receiverType", "cast"); -@@ -706,28 +650,16 @@ public class CafMessageHandler { +@@ -705,28 +648,12 @@ public class CafMessageHandler { JSONObject jsonMessage = new JSONObject(); jsonMessage.put("sessionId", mSessionController.getSessionId()); @@ -2450,23 +2261,22 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo - } else { - jsonMessage.put( - "appId", -- mSessionController -- .getRouteCreationInfo() -+ jsonMessage.put("appId", -+ mSessionController.getRouteCreationInfo() - .getMediaSource() - .getApplicationId()); +- assumeNonNull(mSessionController.getRouteCreationInfo()) +- .getMediaSource() +- .getApplicationId()); - } - jsonMessage.put( - "displayName", - mSessionController.getSession().getCastDevice().getFriendlyName()); - +- return jsonMessage.toString(); } catch (JSONException e) { -@@ -806,32 +738,6 @@ public class CafMessageHandler { + Log.w(TAG, "Building session message failed", e); +@@ -804,33 +731,6 @@ public class CafMessageHandler { boolean sendStringCastMessage( String message, String namespace, String clientId, int sequenceNumber) { if (!mSessionController.isConnected()) return false; +- assumeNonNull(mSessionController.getSession()); - - PendingResult pendingResult = - mSessionController.getSession().sendMessage(namespace, message); @@ -2500,19 +2310,19 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastMediaSource.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastMediaSource.java --- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastMediaSource.java +++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastMediaSource.java -@@ -9,8 +9,6 @@ import android.net.Uri; - import androidx.annotation.Nullable; +@@ -8,8 +8,6 @@ import android.net.Uri; + import androidx.mediarouter.media.MediaRouteSelector; -import com.google.android.gms.cast.CastMediaControlIntent; - + import org.chromium.build.annotations.NullMarked; + import org.chromium.build.annotations.Nullable; import org.chromium.components.media_router.MediaSource; - - import java.util.Arrays; -@@ -96,13 +94,7 @@ public class CastMediaSource implements MediaSource { +@@ -97,13 +95,7 @@ public class CastMediaSource implements MediaSource { */ @Override - public MediaRouteSelector buildRouteSelector() { + public @Nullable MediaRouteSelector buildRouteSelector() { - try { - return new MediaRouteSelector.Builder() - .addControlCategory(CastMediaControlIntent.categoryForCast(mApplicationId)) @@ -2539,7 +2349,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; -@@ -18,20 +13,5 @@ import java.util.List; +@@ -18,19 +13,5 @@ import java.util.List; /** {@link OptionsProvider} implementation for Chrome MR. */ @NullMarked @@ -2547,7 +2357,6 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo - @Override - public CastOptions getCastOptions(Context context) { - return new CastOptions.Builder() -- .setCastMediaOptions(null) - .setEnableReconnectionService(false) - .setLaunchOptions(new LaunchOptions.Builder().setRelaunchIfRunning(true).build()) - .setResumeSavedSession(false) @@ -2564,8 +2373,8 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastSessionController.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastSessionController.java --- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastSessionController.java +++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastSessionController.java -@@ -7,11 +7,6 @@ package org.chromium.components.media_router.caf; - import androidx.annotation.NonNull; +@@ -8,11 +8,6 @@ import static org.chromium.build.NullUtil.assumeNonNull; + import androidx.annotation.VisibleForTesting; -import com.google.android.gms.cast.ApplicationMetadata; @@ -2574,9 +2383,9 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo -import com.google.android.gms.cast.framework.CastSession; - import org.chromium.base.Log; - - import java.util.ArrayList; -@@ -24,12 +19,10 @@ public class CastSessionController extends BaseSessionController { + import org.chromium.build.annotations.NullMarked; + import org.chromium.build.annotations.Nullable; +@@ -28,12 +23,10 @@ public class CastSessionController extends BaseSessionController { private static final String TAG = "CafSessionCtrl"; private List mNamespaces = new ArrayList(); @@ -2589,7 +2398,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo mNotificationController = new CafNotificationController(this); } -@@ -37,30 +30,6 @@ public class CastSessionController extends BaseSessionController { +@@ -41,31 +34,6 @@ public class CastSessionController extends BaseSessionController { return mNamespaces; } @@ -2604,6 +2413,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo - @Override - public void attachToCastSession(CastSession session) { - super.attachToCastSession(session); +- assumeNonNull(getSession()); - getSession().addCastListener(mCastListener); - updateNamespaces(); - } @@ -2620,7 +2430,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo @Override public void onSessionEnded() { getMessageHandler().onSessionEnded(); -@@ -72,24 +41,6 @@ public class CastSessionController extends BaseSessionController { +@@ -77,24 +45,6 @@ public class CastSessionController extends BaseSessionController { return mNotificationController; } @@ -2631,7 +2441,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo - } - - @Override -- public void onApplicationMetadataChanged(ApplicationMetadata metadata) { +- public void onApplicationMetadataChanged(@Nullable ApplicationMetadata metadata) { - CastSessionController.this.onApplicationStatusChanged(); - } - @@ -2645,10 +2455,11 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo private void onApplicationStatusChanged() { updateNamespaces(); -@@ -101,53 +52,18 @@ public class CastSessionController extends BaseSessionController { +@@ -106,55 +56,18 @@ public class CastSessionController extends BaseSessionController { @VisibleForTesting void updateNamespaces() { if (!isConnected()) return; +- assumeNonNull(getSession()); - - if (getSession().getApplicationMetadata() == null - || getSession().getApplicationMetadata().getSupportedNamespaces() == null) { @@ -2672,7 +2483,8 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo if (!isConnected()) return; - - try { -- getSession().setMessageReceivedCallbacks(namespace, this::onMessageReceived); +- assumeNonNull(getSession()) +- .setMessageReceivedCallbacks(namespace, this::onMessageReceived); - mNamespaces.add(namespace); - } catch (Exception e) { - Log.e(TAG, "Failed to register namespace listener for %s", namespace, e); @@ -2685,7 +2497,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo if (!isConnected()) return; - - try { -- getSession().removeMessageReceivedCallbacks(namespace); +- assumeNonNull(getSession()).removeMessageReceivedCallbacks(namespace); - mNamespaces.remove(namespace); - } catch (Exception e) { - Log.e(TAG, "Failed to remove the namespace listener for %s", namespace, e); @@ -2698,24 +2510,26 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo - getMessageHandler().onMessageReceived(namespace, message); } - @NonNull + private CafMessageHandler getMessageHandler() { diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastUtils.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastUtils.java --- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastUtils.java +++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastUtils.java -@@ -4,18 +4,10 @@ +@@ -6,20 +6,12 @@ package org.chromium.components.media_router.caf; - package org.chromium.components.media_router.caf; + import static org.chromium.build.NullUtil.assumeNonNull; -import com.google.android.gms.cast.framework.CastContext; - + import org.chromium.build.annotations.NullMarked; import org.chromium.components.media_router.MediaRouterClient; /** Utility methods for Cast. */ + @NullMarked public class CastUtils { - /** Helper method to return the {@link CastContext} instance. */ - public static CastContext getCastContext() { - return CastContext.getSharedInstance( -- MediaRouterClient.getInstance().getContextForRemoting()); +- assumeNonNull(MediaRouterClient.getInstance()).getContextForRemoting()); - } - /** @@ -2724,33 +2538,34 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/CafExpandedControllerActivity.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/CafExpandedControllerActivity.java --- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/CafExpandedControllerActivity.java +++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/CafExpandedControllerActivity.java -@@ -40,42 +40,29 @@ public class CafExpandedControllerActivity extends FragmentActivity +@@ -55,43 +55,29 @@ public class CafExpandedControllerActivity extends FragmentActivity new MediaController.Delegate() { @Override public void play() { - if (!mSessionController.isConnected()) return; - -- mSessionController.getSession().getRemoteMediaClient().play(); +- getRemoteMediaClient().play(); } @Override public void pause() { - if (!mSessionController.isConnected()) return; - -- mSessionController.getSession().getRemoteMediaClient().pause(); +- getRemoteMediaClient().pause(); } @Override public long getDuration() { - if (!mSessionController.isConnected()) return 0; -- return mSessionController.getFlingingController().getDuration(); +- return assumeNonNull(mSessionController.getFlingingController()).getDuration(); + return 0; } @Override public long getPosition() { - if (!mSessionController.isConnected()) return 0; -- return mSessionController.getFlingingController().getApproximateCurrentTime(); +- return assumeNonNull(mSessionController.getFlingingController()) +- .getApproximateCurrentTime(); + return 0; } @@ -2758,24 +2573,23 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo public void seekTo(long pos) { - if (!mSessionController.isConnected()) return; - -- mSessionController.getSession().getRemoteMediaClient().seek(pos); +- getRemoteMediaClient().seek(pos); } @Override public boolean isPlaying() { - if (!mSessionController.isConnected()) return false; - -- return mSessionController.getSession().getRemoteMediaClient().isPlaying(); +- return getRemoteMediaClient().isPlaying(); + return false; } @Override -@@ -83,12 +70,6 @@ public class CafExpandedControllerActivity extends FragmentActivity +@@ -99,11 +85,6 @@ public class CafExpandedControllerActivity extends FragmentActivity long flags = PlaybackStateCompat.ACTION_REWIND | PlaybackStateCompat.ACTION_FAST_FORWARD; -- if (mSessionController.isConnected() -- && mSessionController.getSession().getRemoteMediaClient().isPlaying()) { +- if (mSessionController.isConnected() && getRemoteMediaClient().isPlaying()) { - flags |= PlaybackStateCompat.ACTION_PAUSE; - } else { - flags |= PlaybackStateCompat.ACTION_PLAY; @@ -2783,14 +2597,16 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo return flags; } }; -@@ -178,20 +159,10 @@ public class CafExpandedControllerActivity extends FragmentActivity +@@ -203,22 +184,10 @@ public class CafExpandedControllerActivity extends FragmentActivity private void updateUi() { if (!mSessionController.isConnected()) return; -- String deviceName = mSessionController.getSession().getCastDevice().getFriendlyName(); +- String deviceName = +- assumeNonNull(assumeNonNull(mSessionController.getSession()).getCastDevice()) +- .getFriendlyName(); - String titleText = ""; - if (deviceName != null) { -- titleText = getResources().getString(R.string.cast_casting_video, deviceName); +- titleText = getString(R.string.cast_casting_video, deviceName); - } - mTitleView.setText(titleText); - @@ -2798,7 +2614,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo mMediaController.updateProgress(); cancelProgressUpdateTask(); -- if (mSessionController.getSession().getRemoteMediaClient().isPlaying()) { +- if (getRemoteMediaClient().isPlaying()) { - scheduleProgressUpdateTask(); - } } @@ -2807,7 +2623,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/CafRemotingMediaRouteProvider.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/CafRemotingMediaRouteProvider.java --- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/CafRemotingMediaRouteProvider.java +++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/CafRemotingMediaRouteProvider.java -@@ -69,7 +69,7 @@ public class CafRemotingMediaRouteProvider extends CafBaseMediaRouteProvider { +@@ -72,7 +72,7 @@ public class CafRemotingMediaRouteProvider extends CafBaseMediaRouteProvider { if (!mRoutes.containsKey(routeId)) return null; @@ -2816,7 +2632,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo } @Override -@@ -78,7 +78,7 @@ public class CafRemotingMediaRouteProvider extends CafBaseMediaRouteProvider { +@@ -81,7 +81,7 @@ public class CafRemotingMediaRouteProvider extends CafBaseMediaRouteProvider { var controller = sessionController(); // There is no active remote playback media route. @@ -2824,13 +2640,13 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo + if (!hasSession() || (true)) return; // Do not update media source for a detached session. - if (!mRoutes.containsKey(controller.getRouteCreationInfo().routeId)) return; + if (!mRoutes.containsKey(assumeNonNull(controller.getRouteCreationInfo()).routeId)) return; diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/FlingingControllerAdapter.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/FlingingControllerAdapter.java --- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/FlingingControllerAdapter.java +++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/FlingingControllerAdapter.java -@@ -4,11 +4,6 @@ +@@ -6,11 +6,6 @@ package org.chromium.components.media_router.caf.remoting; - package org.chromium.components.media_router.caf.remoting; + import static org.chromium.build.NullUtil.assumeNonNull; -import com.google.android.gms.cast.MediaInfo; -import com.google.android.gms.cast.MediaStatus; @@ -2838,12 +2654,13 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo -import com.google.android.gms.common.api.Result; - import org.chromium.base.Log; - import org.chromium.components.media_router.FlingingController; - import org.chromium.components.media_router.MediaController; -@@ -80,15 +75,6 @@ public class FlingingControllerAdapter implements FlingingController, MediaContr + import org.chromium.build.annotations.NullMarked; + import org.chromium.build.annotations.Nullable; +@@ -85,16 +80,6 @@ public class FlingingControllerAdapter implements FlingingController, MediaContr /** Starts loading the media URL, from the given position. */ public void load(long position, boolean autoplay) { if (!mSessionController.isConnected()) return; +- assumeNonNull(mSessionController.getRemoteMediaClient()); - - mLoaded = true; - @@ -2856,7 +2673,13 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo } //////////////////////////////////////////// -@@ -103,103 +89,28 @@ public class FlingingControllerAdapter implements FlingingController, MediaContr +@@ -104,114 +89,33 @@ public class FlingingControllerAdapter implements FlingingController, MediaContr + @Override + public void play() { + if (!mSessionController.isConnected()) return; +- assumeNonNull(mSessionController.getRemoteMediaClient()); + + if (!mLoaded) { load(/* position= */ 0, /* autoplay= */ true); return; } @@ -2870,6 +2693,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo @Override public void pause() { if (!mSessionController.isConnected()) return; +- assumeNonNull(mSessionController.getRemoteMediaClient()); - mSessionController - .getRemoteMediaClient() - .pause() @@ -2879,6 +2703,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo @Override public void setMute(boolean mute) { if (!mSessionController.isConnected()) return; +- assumeNonNull(mSessionController.getRemoteMediaClient()); - mSessionController - .getRemoteMediaClient() - .setStreamMute(mute) @@ -2888,6 +2713,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo @Override public void setVolume(double volume) { if (!mSessionController.isConnected()) return; +- assumeNonNull(mSessionController.getRemoteMediaClient()); - mSessionController - .getRemoteMediaClient() - .setStreamVolume(volume) @@ -2897,6 +2723,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo @Override public void seek(long position) { - if (!mSessionController.isConnected()) return; +- assumeNonNull(mSessionController.getRemoteMediaClient()); - - if (!mLoaded) { - load(position, /* autoplay= */ true); @@ -2918,6 +2745,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo - if (mMediaStatusObserver == null) return; - - RemoteMediaClient remoteMediaClient = mSessionController.getRemoteMediaClient(); +- assumeNonNull(remoteMediaClient); - - MediaStatus mediaStatus = remoteMediaClient.getMediaStatus(); - if (mediaStatus != null) { @@ -2963,16 +2791,16 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/RemotingMediaSource.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/RemotingMediaSource.java --- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/RemotingMediaSource.java +++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/RemotingMediaSource.java -@@ -14,8 +14,6 @@ import android.util.Base64; - import androidx.annotation.Nullable; +@@ -13,8 +13,6 @@ import android.util.Base64; + import androidx.mediarouter.media.MediaRouteSelector; -import com.google.android.gms.cast.CastMediaControlIntent; - import org.chromium.base.ContextUtils; import org.chromium.base.Log; - import org.chromium.components.media_router.MediaSource; -@@ -84,9 +82,7 @@ public class RemotingMediaSource implements MediaSource { + import org.chromium.build.annotations.NullMarked; +@@ -85,9 +83,7 @@ public class RemotingMediaSource implements MediaSource { */ @Override public MediaRouteSelector buildRouteSelector() { @@ -2983,7 +2811,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo } /** -@@ -116,7 +112,7 @@ public class RemotingMediaSource implements MediaSource { +@@ -117,7 +113,7 @@ public class RemotingMediaSource implements MediaSource { sApplicationId = (customAppId != null && !customAppId.isEmpty()) ? customAppId @@ -2995,16 +2823,16 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/RemotingSessionController.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/RemotingSessionController.java --- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/RemotingSessionController.java +++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/RemotingSessionController.java -@@ -4,8 +4,6 @@ +@@ -6,8 +6,6 @@ package org.chromium.components.media_router.caf.remoting; - package org.chromium.components.media_router.caf.remoting; + import static org.chromium.build.NullUtil.assumeNonNull; -import com.google.android.gms.cast.framework.CastSession; - import org.chromium.base.Log; - import org.chromium.components.media_router.CastSessionUtil; - import org.chromium.components.media_router.MediaSource; -@@ -45,23 +43,6 @@ public class RemotingSessionController extends BaseSessionController { + import org.chromium.build.annotations.NullMarked; + import org.chromium.build.annotations.Nullable; +@@ -51,23 +49,6 @@ public class RemotingSessionController extends BaseSessionController { getProvider().updateRouteMediaSource(getRouteCreationInfo().routeId, source.getSourceId()); } @@ -3013,7 +2841,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo - super.attachToCastSession(session); - - try { -- getSession() +- assumeNonNull(getSession()) - .setMessageReceivedCallbacks( - CastSessionUtil.MEDIA_NAMESPACE, this::onMessageReceived); - } catch (Exception e) { @@ -3028,18 +2856,19 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo @Override public void onSessionStarted() { super.onSessionStarted(); -@@ -73,17 +54,6 @@ public class RemotingSessionController extends BaseSessionController { +@@ -79,18 +60,6 @@ public class RemotingSessionController extends BaseSessionController { } } - @Override - protected void onStatusUpdated() { +- assumeNonNull(mFlingingControllerAdapter); - mFlingingControllerAdapter.onStatusUpdated(); - super.onStatusUpdated(); - } - - @Override -- public FlingingControllerAdapter getFlingingController() { +- public @Nullable FlingingControllerAdapter getFlingingController() { - return mFlingingControllerAdapter; - } - @@ -3086,7 +2915,7 @@ diff --git a/components/module_installer/android/BUILD.gn b/components/module_in diff --git a/components/omnibox/common/BUILD.gn b/components/omnibox/common/BUILD.gn --- a/components/omnibox/common/BUILD.gn +++ b/components/omnibox/common/BUILD.gn -@@ -49,7 +49,6 @@ if (is_android) { +@@ -54,7 +54,6 @@ if (is_android) { ":jni_headers", ] deps = [ @@ -3106,7 +2935,7 @@ diff --git a/components/omnibox/common/android/java/src/org/chromium/components/ import org.chromium.base.BaseSwitches; import org.chromium.base.CommandLine; import org.chromium.base.ContextUtils; -@@ -146,12 +144,6 @@ public class OmniboxFeatures { +@@ -143,12 +141,6 @@ public class OmniboxFeatures { "geolocation_request_min_update_interval_millis", (int) (9 * DateUtils.MINUTE_IN_MILLIS)); @@ -3131,7 +2960,7 @@ diff --git a/components/signin/public/android/BUILD.gn b/components/signin/publi "//base:base_java", "//base:service_loader_java", "//build/android:build_java", -@@ -197,7 +195,6 @@ robolectric_library("junit") { +@@ -195,7 +193,6 @@ robolectric_library("junit") { deps = [ ":java", ":signin_java_test_support", @@ -3175,7 +3004,7 @@ diff --git a/components/webauthn/android/BUILD.gn b/components/webauthn/android/ "//base:base_java", "//base:service_loader_java", "//base/version_info/android:version_constants_java", -@@ -140,8 +130,6 @@ android_library("test_support_java") { +@@ -141,8 +131,6 @@ android_library("test_support_java") { source_set("android") { sources = [ "cred_man_support.h", @@ -3184,7 +3013,7 @@ diff --git a/components/webauthn/android/BUILD.gn b/components/webauthn/android/ "internal_authenticator_android.cc", "internal_authenticator_android.h", "webauthn_browser_bridge.cc", -@@ -211,7 +199,6 @@ robolectric_library("junit") { +@@ -212,7 +200,6 @@ robolectric_library("junit") { deps = [ ":java", ":test_support_java", @@ -3566,9 +3395,9 @@ diff --git a/content/public/android/BUILD.gn b/content/public/android/BUILD.gn diff --git a/content/public/android/java/src/org/chromium/content/browser/webid/IdentityCredentialsDelegate.java b/content/public/android/java/src/org/chromium/content/browser/webid/IdentityCredentialsDelegate.java --- a/content/public/android/java/src/org/chromium/content/browser/webid/IdentityCredentialsDelegate.java +++ b/content/public/android/java/src/org/chromium/content/browser/webid/IdentityCredentialsDelegate.java -@@ -14,13 +14,6 @@ import android.os.Handler; - import android.os.Looper; - import android.os.ResultReceiver; +@@ -19,13 +19,6 @@ import android.os.ResultReceiver; + import androidx.annotation.RequiresApi; + import androidx.annotation.VisibleForTesting; -import com.google.android.gms.identitycredentials.CredentialOption; -import com.google.android.gms.identitycredentials.GetCredentialException; @@ -3577,13 +3406,13 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/webid/ -import com.google.android.gms.identitycredentials.IdentityCredentialManager; -import com.google.android.gms.identitycredentials.IntentHelper; - - import org.chromium.base.Log; - import org.chromium.base.Promise; - import org.chromium.base.ServiceLoaderUtil; -@@ -43,82 +36,7 @@ public class IdentityCredentialsDelegate { + import org.json.JSONException; + import org.json.JSONObject; + +@@ -87,77 +80,7 @@ public class IdentityCredentialsDelegate { } - public Promise get(Activity window, String origin, String request) { + public Promise get(Activity window, String origin, String request) { - final IdentityCredentialClient client; - try { - client = IdentityCredentialManager.Companion.getClient(window); @@ -3593,7 +3422,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/webid/ - return Promise.rejected(); - } - -- final Promise result = new Promise(); +- final Promise result = new Promise(); - - ResultReceiver resultReceiver = - new ResultReceiver(new Handler(Looper.getMainLooper())) { @@ -3603,12 +3432,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/webid/ - protected void onReceiveResult(int code, Bundle data) { - Log.d(TAG, "Received a response"); - try { -- var response = IntentHelper.extractGetCredentialResponse(code, data); -- var token = -- response.getCredential() -- .getData() -- .getByteArray("identityToken"); -- result.fulfill(Objects.requireNonNull(token)); +- result.fulfill(extractDigitalCredentialFromResponseBundle(code, data)); - } catch (Exception e) { - Log.e(TAG, e.toString()); - @@ -3667,7 +3491,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/webid/ diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn --- a/content/test/BUILD.gn +++ b/content/test/BUILD.gn -@@ -3653,10 +3653,6 @@ if (is_android) { +@@ -3675,10 +3675,6 @@ if (is_android) { testonly = true sources = content_java_sources_needing_jni deps = [ @@ -3681,23 +3505,23 @@ diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn diff --git a/device/BUILD.gn b/device/BUILD.gn --- a/device/BUILD.gn +++ b/device/BUILD.gn -@@ -520,9 +520,6 @@ if (is_android) { - "gamepad/android/junit/src/org/chromium/device/gamepad/GamepadMappingsTest.java", +@@ -522,9 +522,6 @@ if (is_android) { + "vr/public/junit/src/org/chromium/device/vr/XrFeatureStatusTest.java", ] deps = [ - "$google_play_services_package:google_play_services_base_java", - "$google_play_services_package:google_play_services_basement_java", - "$google_play_services_package:google_play_services_location_java", + "//base:base_java", "//base:base_java_test_support", "//base:base_junit_test_support", - "//device/gamepad:java", diff --git a/device/fido/features.cc b/device/fido/features.cc --- a/device/fido/features.cc +++ b/device/fido/features.cc -@@ -113,6 +113,7 @@ BASE_FEATURE(kWebAuthniCloudKeychainPrf, +@@ -96,6 +96,7 @@ BASE_FEATURE(kWebAuthnAmbientSignin, BASE_FEATURE(kWebAuthnHybridLinking, "WebAuthenticationHybridLinking", - base::FEATURE_ENABLED_BY_DEFAULT); + base::FEATURE_DISABLED_BY_DEFAULT); +SET_CROMITE_FEATURE_DISABLED(kWebAuthnHybridLinking); // This is a deprecation flag. It is now enabled by default, but we want to @@ -3705,7 +3529,7 @@ diff --git a/device/fido/features.cc b/device/fido/features.cc diff --git a/services/BUILD.gn b/services/BUILD.gn --- a/services/BUILD.gn +++ b/services/BUILD.gn -@@ -157,11 +157,6 @@ if (is_android) { +@@ -158,11 +158,6 @@ if (is_android) { "shape_detection/android/junit/src/org/chromium/shape_detection/BitmapUtilsTest.java", ] deps = [ @@ -3717,7 +3541,7 @@ diff --git a/services/BUILD.gn b/services/BUILD.gn "//base:base_java", "//base:base_java_test_support", "//base:base_junit_test_support", -@@ -191,10 +186,6 @@ if (is_android) { +@@ -193,10 +188,6 @@ if (is_android) { "shape_detection/android/javatests/src/org/chromium/shape_detection/TextDetectionImplTest.java", ] deps = [ @@ -3757,7 +3581,7 @@ diff --git a/services/shape_detection/BUILD.gn b/services/shape_detection/BUILD. diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD.gn --- a/third_party/android_deps/BUILD.gn +++ b/third_party/android_deps/BUILD.gn -@@ -89,22 +89,13 @@ if (!limit_android_deps) { +@@ -95,22 +95,13 @@ if (!limit_android_deps) { android_library("chromium_play_services_availability_java") { sources = [ "util/org/chromium/gms/ChromiumPlayServicesAvailability.java" ] @@ -3781,118 +3605,77 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. } # The section below is generated by running -@@ -318,295 +309,6 @@ if (!limit_android_deps) { - [ "local_modifications/accessibility_test_framework.pcfg" ] - } +@@ -154,221 +145,6 @@ java_prebuilt("com_android_tools_sdk_common_java") { + visibility = [ "//build/android/unused_resources:*" ] + } +-# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +-java_prebuilt("com_google_code_gson_gson_java") { +- jar_path = "cipd/libs/com_google_code_gson_gson/gson-2.8.0.jar" +- output_name = "com_google_code_gson_gson" +- enable_bytecode_checks = false +-} +- +-# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +-java_prebuilt("com_squareup_javapoet_java") { +- jar_path = "cipd/libs/com_squareup_javapoet/javapoet-1.13.0.jar" +- output_name = "com_squareup_javapoet" +- enable_bytecode_checks = false +-} +-if (!limit_android_deps) { - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. -- if (google_play_services_package == "//third_party/android_deps") { -- android_aar_prebuilt("google_play_services_auth_java") { -- aar_path = "cipd/libs/com_google_android_gms_play_services_auth/play-services-auth-21.1.1.aar" -- info_path = "libs/com_google_android_gms_play_services_auth/com_google_android_gms_play_services_auth.info" -- enable_bytecode_checks = false -- deps = [ -- "$google_play_services_package:google_play_services_auth_api_phone_java", -- "$google_play_services_package:google_play_services_auth_base_java", -- "$google_play_services_package:google_play_services_base_java", -- "$google_play_services_package:google_play_services_basement_java", -- "$google_play_services_package:google_play_services_fido_java", -- "$google_play_services_package:google_play_services_tasks_java", -- "//third_party/androidx:androidx_fragment_fragment_java", -- "//third_party/androidx:androidx_loader_loader_java", -- ] -- } +- java_prebuilt("com_android_support_support_annotations_java") { +- jar_path = "cipd/libs/com_android_support_support_annotations/support-annotations-28.0.0.jar" +- output_name = "com_android_support_support_annotations" +- supports_android = true +- requires_android = true +- enable_bytecode_checks = false +- } +- +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +- android_aar_prebuilt( +- "com_google_android_apps_common_testing_accessibility_framework_accessibility_test_framework_java") { +- aar_path = "cipd/libs/com_google_android_apps_common_testing_accessibility_framework_accessibility_test_framework/accessibility-test-framework-4.0.0.aar" +- info_path = "libs/com_google_android_apps_common_testing_accessibility_framework_accessibility_test_framework/com_google_android_accessibility_test_framework.info" +- enable_bytecode_checks = false +- testonly = true +- deps = [ +- ":com_google_errorprone_error_prone_annotations_java", +- ":org_checkerframework_checker_qual_java", +- ":org_jsoup_jsoup_java", +- "//third_party/android_deps:guava_android_java", +- "//third_party/android_deps:material_design_java", +- "//third_party/android_deps:protobuf_lite_runtime_java", +- "//third_party/androidx:androidx_core_core_java", +- "//third_party/androidx:androidx_test_services_storage_java", +- "//third_party/hamcrest:hamcrest_core_java", +- "//third_party/hamcrest:hamcrest_library_java", +- ] +- proguard_configs = +- [ "local_modifications/accessibility_test_framework.pcfg" ] - } - - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { -- android_aar_prebuilt("google_play_services_auth_api_phone_java") { -- aar_path = "cipd/libs/com_google_android_gms_play_services_auth_api_phone/play-services-auth-api-phone-18.0.2.aar" -- info_path = "libs/com_google_android_gms_play_services_auth_api_phone/com_google_android_gms_play_services_auth_api_phone.info" +- android_aar_prebuilt( +- "google_android_datatransport_transport_backend_cct_java") { +- aar_path = "cipd/libs/com_google_android_datatransport_transport_backend_cct/transport-backend-cct-4.0.0.aar" +- info_path = "libs/com_google_android_datatransport_transport_backend_cct/com_google_android_datatransport_transport_backend_cct.info" - enable_bytecode_checks = false - deps = [ -- "$google_play_services_package:google_play_services_base_java", -- "$google_play_services_package:google_play_services_basement_java", -- "$google_play_services_package:google_play_services_tasks_java", +- ":google_android_datatransport_transport_api_java", +- ":google_android_datatransport_transport_runtime_java", +- "$google_play_services_package:google_firebase_firebase_encoders_java", +- "$google_play_services_package:google_firebase_firebase_encoders_json_java", +- "//third_party/androidx:androidx_annotation_annotation_java", - ] - } - } - - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { -- android_aar_prebuilt("google_play_services_auth_base_java") { -- aar_path = "cipd/libs/com_google_android_gms_play_services_auth_base/play-services-auth-base-18.0.10.aar" -- info_path = "libs/com_google_android_gms_play_services_auth_base/com_google_android_gms_play_services_auth_base.info" -- enable_bytecode_checks = false -- deps = [ -- "$google_play_services_package:google_play_services_base_java", -- "$google_play_services_package:google_play_services_basement_java", -- "$google_play_services_package:google_play_services_tasks_java", -- "//third_party/androidx:androidx_collection_collection_java", -- ] -- } -- } -- -- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. -- if (google_play_services_package == "//third_party/android_deps") { -- android_aar_prebuilt("google_play_services_auth_blockstore_java") { -- aar_path = "cipd/libs/com_google_android_gms_play_services_auth_blockstore/play-services-auth-blockstore-16.4.0.aar" -- info_path = "libs/com_google_android_gms_play_services_auth_blockstore/com_google_android_gms_play_services_auth_blockstore.info" -- enable_bytecode_checks = false -- deps = [ -- "$google_play_services_package:google_play_services_base_java", -- "$google_play_services_package:google_play_services_basement_java", -- "$google_play_services_package:google_play_services_tasks_java", -- "//third_party/kotlin_stdlib:kotlin_stdlib_java", -- ] -- } -- } -- -- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. -- if (google_play_services_package == "//third_party/android_deps") { -- android_aar_prebuilt("google_play_services_base_java") { -- aar_path = "cipd/libs/com_google_android_gms_play_services_base/play-services-base-18.5.0.aar" -- info_path = "libs/com_google_android_gms_play_services_base/com_google_android_gms_play_services_base.info" -- enable_bytecode_checks = false -- deps = [ -- "$google_play_services_package:google_play_services_basement_java", -- "$google_play_services_package:google_play_services_tasks_java", -- "//third_party/androidx:androidx_collection_collection_java", -- "//third_party/androidx:androidx_core_core_java", -- "//third_party/androidx:androidx_fragment_fragment_java", -- ] -- } -- } -- -- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. -- if (google_play_services_package == "//third_party/android_deps") { -- android_aar_prebuilt("google_play_services_basement_java") { -- aar_path = "cipd/libs/com_google_android_gms_play_services_basement/play-services-basement-18.5.0.aar" -- info_path = "libs/com_google_android_gms_play_services_basement/com_google_android_gms_play_services_basement.info" -- enable_bytecode_checks = false -- deps = [ -- "//third_party/androidx:androidx_collection_collection_java", -- "//third_party/androidx:androidx_fragment_fragment_java", -- ] -- -- jar_excluded_patterns = [] -- if (!enable_java_asserts) { -- # Omit the file since we use our own copy. -- jar_excluded_patterns += -- [ "com/google/android/gms/common/internal/Preconditions.class" ] -- deps += [ "//third_party/android_deps/local_modifications/preconditions:gms_stub_preconditions_java" ] -- } -- -- # https://crbug.com/989505 -- jar_excluded_patterns += [ "META-INF/proguard/*" ] -- input_jars_paths = [ "$android_sdk/optional/org.apache.http.legacy.jar" ] -- } -- } -- -- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. -- if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_play_services_cast_java") { -- aar_path = "cipd/libs/com_google_android_gms_play_services_cast/play-services-cast-17.0.0.aar" +- aar_path = "cipd/libs/com_google_android_gms_play_services_cast/play-services-cast-22.0.0.aar" - info_path = "libs/com_google_android_gms_play_services_cast/com_google_android_gms_play_services_cast.info" - enable_bytecode_checks = false - deps = [ @@ -3909,15 +3692,21 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_play_services_cast_framework_java") { -- aar_path = "cipd/libs/com_google_android_gms_play_services_cast_framework/play-services-cast-framework-17.0.0.aar" +- aar_path = "cipd/libs/com_google_android_gms_play_services_cast_framework/play-services-cast-framework-22.0.0.aar" - info_path = "libs/com_google_android_gms_play_services_cast_framework/com_google_android_gms_play_services_cast_framework.info" - enable_bytecode_checks = false - deps = [ +- ":google_android_datatransport_transport_api_java", +- ":google_android_datatransport_transport_backend_cct_java", +- ":google_android_datatransport_transport_runtime_java", - "$google_play_services_package:google_play_services_base_java", - "$google_play_services_package:google_play_services_basement_java", - "$google_play_services_package:google_play_services_cast_java", +- "$google_play_services_package:google_play_services_tasks_java", +- "//third_party/android_deps:guava_android_java", - "//third_party/androidx:androidx_appcompat_appcompat_java", - "//third_party/androidx:androidx_collection_collection_java", +- "//third_party/androidx:androidx_concurrent_concurrent_futures_java", - "//third_party/androidx:androidx_core_core_java", - "//third_party/androidx:androidx_fragment_fragment_java", - "//third_party/androidx:androidx_media_media_java", @@ -3929,22 +3718,6 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { -- android_aar_prebuilt("google_play_services_fido_java") { -- aar_path = "cipd/libs/com_google_android_gms_play_services_fido/play-services-fido-21.1.0.aar" -- info_path = "libs/com_google_android_gms_play_services_fido/com_google_android_gms_play_services_fido.info" -- enable_bytecode_checks = false -- deps = [ -- ":org_jetbrains_kotlinx_kotlinx_coroutines_core_java", -- "$google_play_services_package:google_play_services_base_java", -- "$google_play_services_package:google_play_services_basement_java", -- "$google_play_services_package:google_play_services_tasks_java", -- "//third_party/kotlin_stdlib:kotlin_stdlib_java", -- ] -- } -- } -- -- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. -- if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_play_services_gcm_java") { - aar_path = "cipd/libs/com_google_android_gms_play_services_gcm/play-services-gcm-17.0.0.aar" - info_path = "libs/com_google_android_gms_play_services_gcm/com_google_android_gms_play_services_gcm.info" @@ -3963,21 +3736,6 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { -- android_aar_prebuilt("google_play_services_identity_credentials_java") { -- aar_path = "cipd/libs/com_google_android_gms_play_services_identity_credentials/play-services-identity-credentials-16.0.0-alpha05.aar" -- info_path = "libs/com_google_android_gms_play_services_identity_credentials/com_google_android_gms_play_services_identity_credentials.info" -- enable_bytecode_checks = false -- deps = [ -- "$google_play_services_package:google_play_services_base_java", -- "$google_play_services_package:google_play_services_basement_java", -- "$google_play_services_package:google_play_services_tasks_java", -- "//third_party/kotlin_stdlib:kotlin_stdlib_java", -- ] -- } -- } -- -- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. -- if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_play_services_iid_java") { - aar_path = "cipd/libs/com_google_android_gms_play_services_iid/play-services-iid-17.0.0.aar" - info_path = "libs/com_google_android_gms_play_services_iid/com_google_android_gms_play_services_iid.info" @@ -3996,7 +3754,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_play_services_instantapps_java") { -- aar_path = "cipd/libs/com_google_android_gms_play_services_instantapps/play-services-instantapps-18.0.1.aar" +- aar_path = "cipd/libs/com_google_android_gms_play_services_instantapps/play-services-instantapps-18.1.0.aar" - info_path = "libs/com_google_android_gms_play_services_instantapps/com_google_android_gms_play_services_instantapps.info" - enable_bytecode_checks = false - deps = [ @@ -4010,25 +3768,30 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_play_services_location_java") { -- aar_path = "cipd/libs/com_google_android_gms_play_services_location/play-services-location-21.0.1.aar" +- aar_path = "cipd/libs/com_google_android_gms_play_services_location/play-services-location-21.3.0.aar" - info_path = "libs/com_google_android_gms_play_services_location/com_google_android_gms_play_services_location.info" - enable_bytecode_checks = false - deps = [ +- ":org_jetbrains_kotlinx_kotlinx_coroutines_android_java", +- ":org_jetbrains_kotlinx_kotlinx_coroutines_core_java", - "$google_play_services_package:google_play_services_base_java", - "$google_play_services_package:google_play_services_basement_java", - "$google_play_services_package:google_play_services_tasks_java", +- "//third_party/kotlin_stdlib:kotlin_stdlib_java", - ] - } - } - - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { -- android_aar_prebuilt("google_play_services_tasks_java") { -- aar_path = "cipd/libs/com_google_android_gms_play_services_tasks/play-services-tasks-18.2.0.aar" -- info_path = "libs/com_google_android_gms_play_services_tasks/com_google_android_gms_play_services_tasks.info" +- android_aar_prebuilt("google_play_services_stats_java") { +- aar_path = "cipd/libs/com_google_android_gms_play_services_stats/play-services-stats-17.1.0.aar" +- info_path = "libs/com_google_android_gms_play_services_stats/com_google_android_gms_play_services_stats.info" - enable_bytecode_checks = false -- deps = -- [ "$google_play_services_package:google_play_services_basement_java" ] +- deps = [ +- "$google_play_services_package:google_play_services_basement_java", +- "//third_party/androidx:androidx_legacy_legacy_support_core_utils_java", +- ] - } - } - @@ -4061,30 +3824,17 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - ] - } - } -- -- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. -- android_aar_prebuilt( -- "com_google_android_libraries_identity_googleid_googleid_java") { -- aar_path = "cipd/libs/com_google_android_libraries_identity_googleid_googleid/googleid-1.1.1.aar" -- info_path = "libs/com_google_android_libraries_identity_googleid_googleid/com_google_android_libraries_identity_googleid_googleid.info" -- enable_bytecode_checks = false -- deps = [ -- "//third_party/androidx:androidx_credentials_credentials_java", -- "//third_party/kotlin_stdlib:kotlin_stdlib_java", -- ] -- } -- + # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. if (!defined(material_design_target)) { - android_aar_prebuilt("com_google_android_material_material_java") { -@@ -655,24 +357,6 @@ if (!limit_android_deps) { +@@ -417,24 +193,6 @@ if (!limit_android_deps) { } } - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (!defined(playcore_target)) { - android_aar_prebuilt("com_google_android_play_feature_delivery_java") { -- aar_path = "cipd/libs/com_google_android_play_feature_delivery/feature-delivery-2.0.1.aar" +- aar_path = "cipd/libs/com_google_android_play_feature_delivery/feature-delivery-2.1.0.aar" - info_path = "libs/com_google_android_play_feature_delivery/com_google_android_play_feature_delivery.info" - enable_bytecode_checks = false - @@ -4102,15 +3852,32 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. android_aar_prebuilt("com_google_ar_impress_java") { aar_path = "cipd/libs/com_google_ar_impress/impress-0.0.2.aar" -@@ -706,56 +390,6 @@ if (!limit_android_deps) { - } +@@ -470,93 +228,6 @@ if (!limit_android_deps) { } + # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +- if (google_play_services_package == "//third_party/android_deps") { +- android_aar_prebuilt("google_firebase_firebase_datatransport_java") { +- aar_path = "cipd/libs/com_google_firebase_firebase_datatransport/firebase-datatransport-19.0.0.aar" +- info_path = "libs/com_google_firebase_firebase_datatransport/com_google_firebase_firebase_datatransport.info" +- enable_bytecode_checks = false +- deps = [ +- ":google_android_datatransport_transport_api_java", +- ":google_android_datatransport_transport_backend_cct_java", +- ":google_android_datatransport_transport_runtime_java", +- "$google_play_services_package:google_firebase_firebase_common_java", +- "$google_play_services_package:google_firebase_firebase_components_java", +- "//third_party/androidx:androidx_annotation_annotation_java", +- "//third_party/kotlin_stdlib:kotlin_stdlib_java", +- ] +- } +- } +- - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_firebase_firebase_iid_java") { - aar_path = -- "cipd/libs/com_google_firebase_firebase_iid/firebase-iid-21.0.1.aar" +- "cipd/libs/com_google_firebase_firebase_iid/firebase-iid-21.1.0.aar" - info_path = "libs/com_google_firebase_firebase_iid/com_google_firebase_firebase_iid.info" - enable_bytecode_checks = false - deps = [ @@ -4132,41 +3899,82 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { -- android_aar_prebuilt("google_firebase_firebase_messaging_java") { -- aar_path = "cipd/libs/com_google_firebase_firebase_messaging/firebase-messaging-21.0.1.aar" -- info_path = "libs/com_google_firebase_firebase_messaging/com_google_firebase_firebase_messaging.info" +- android_aar_prebuilt( +- "google_firebase_firebase_measurement_connector_java") { +- aar_path = "cipd/libs/com_google_firebase_firebase_measurement_connector/firebase-measurement-connector-20.0.1.aar" +- info_path = "libs/com_google_firebase_firebase_measurement_connector/com_google_firebase_firebase_measurement_connector.info" - enable_bytecode_checks = false - deps = [ -- ":google_android_datatransport_transport_api_java", -- "$google_play_services_package:google_firebase_firebase_common_java", -- "$google_play_services_package:google_firebase_firebase_components_java", -- "$google_play_services_package:google_firebase_firebase_encoders_java", -- "$google_play_services_package:google_firebase_firebase_encoders_json_java", -- "$google_play_services_package:google_firebase_firebase_iid_java", -- "$google_play_services_package:google_firebase_firebase_installations_interop_java", -- "$google_play_services_package:google_firebase_firebase_installations_java", -- "$google_play_services_package:google_firebase_firebase_measurement_connector_java", +- "$google_play_services_package:google_firebase_firebase_annotations_java", - "$google_play_services_package:google_play_services_basement_java", -- "$google_play_services_package:google_play_services_cloud_messaging_java", -- "$google_play_services_package:google_play_services_stats_java", -- "$google_play_services_package:google_play_services_tasks_java", -- "//third_party/androidx:androidx_collection_collection_java", -- "//third_party/androidx:androidx_core_core_java", - ] - } - } - +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +- if (google_play_services_package == "//third_party/android_deps") { +- android_aar_prebuilt("google_firebase_firebase_messaging_java") { +- aar_path = "cipd/libs/com_google_firebase_firebase_messaging/firebase-messaging-24.1.0.aar" +- info_path = "libs/com_google_firebase_firebase_messaging/com_google_firebase_firebase_messaging.info" +- enable_bytecode_checks = false +- deps = [ +- ":com_google_errorprone_error_prone_annotations_java", +- ":google_android_datatransport_transport_api_java", +- ":google_android_datatransport_transport_backend_cct_java", +- ":google_android_datatransport_transport_runtime_java", +- "$google_play_services_package:google_firebase_firebase_common_java", +- "$google_play_services_package:google_firebase_firebase_common_ktx_java", +- "$google_play_services_package:google_firebase_firebase_components_java", +- "$google_play_services_package:google_firebase_firebase_datatransport_java", +- "$google_play_services_package:google_firebase_firebase_encoders_java", +- "$google_play_services_package:google_firebase_firebase_encoders_json_java", +- "$google_play_services_package:google_firebase_firebase_encoders_proto_java", +- "$google_play_services_package:google_firebase_firebase_iid_interop_java", +- "$google_play_services_package:google_firebase_firebase_installations_interop_java", +- "$google_play_services_package:google_firebase_firebase_installations_java", +- "$google_play_services_package:google_firebase_firebase_measurement_connector_java", +- "$google_play_services_package:google_play_services_base_java", +- "$google_play_services_package:google_play_services_basement_java", +- "$google_play_services_package:google_play_services_cloud_messaging_java", +- "$google_play_services_package:google_play_services_stats_java", +- "$google_play_services_package:google_play_services_tasks_java", +- "//third_party/androidx:androidx_annotation_annotation_java", +- "//third_party/kotlin_stdlib:kotlin_stdlib_java", +- ] +- } +- } + # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. if (!defined(guava_android_target)) { - java_prebuilt("com_google_guava_guava_android_java") { -@@ -1107,339 +741,6 @@ if (!limit_android_deps) { - is_robolectric = true +@@ -736,20 +407,6 @@ if (!limit_android_deps) { + ] + } + +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +- java_prebuilt("org_jetbrains_kotlinx_kotlinx_coroutines_play_services_java") { +- jar_path = "cipd/libs/org_jetbrains_kotlinx_kotlinx_coroutines_play_services/kotlinx-coroutines-play-services-1.10.1.jar" +- output_name = "org_jetbrains_kotlinx_kotlinx_coroutines_play_services" +- supports_android = true +- requires_android = true +- enable_bytecode_checks = false +- deps = [ +- ":org_jetbrains_kotlinx_kotlinx_coroutines_core_java", +- "$google_play_services_package:google_play_services_tasks_java", +- "//third_party/kotlin_stdlib:kotlin_stdlib_java", +- ] +- } +- + # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. + java_prebuilt("org_jsoup_jsoup_java") { + jar_path = "cipd/libs/org_jsoup_jsoup/jsoup-1.15.1.jar" +@@ -812,362 +469,6 @@ if (!limit_android_deps) { + deps = [ ":org_mockito_mockito_core_java" ] } - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_android_datatransport_transport_api_java") { -- aar_path = "cipd/libs/com_google_android_datatransport_transport_api/transport-api-2.2.1.aar" +- aar_path = "cipd/libs/com_google_android_datatransport_transport_api/transport-api-4.0.0.aar" - info_path = "libs/com_google_android_datatransport_transport_api/com_google_android_datatransport_transport_api.info" - enable_bytecode_checks = false - @@ -4182,6 +3990,30 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { +- android_aar_prebuilt( +- "google_android_datatransport_transport_runtime_java") { +- aar_path = "cipd/libs/com_google_android_datatransport_transport_runtime/transport-runtime-4.0.0.aar" +- info_path = "libs/com_google_android_datatransport_transport_runtime/com_google_android_datatransport_transport_runtime.info" +- enable_bytecode_checks = false +- +- # To remove visibility constraint, add this dependency to +- # //third_party/android_deps/build.gradle. +- visibility = [ +- ":*", +- "//third_party/androidx:*", +- ] +- deps = [ +- ":google_android_datatransport_transport_api_java", +- ":javax_inject_javax_inject_java", +- "$google_play_services_package:google_firebase_firebase_encoders_java", +- "$google_play_services_package:google_firebase_firebase_encoders_proto_java", +- "//third_party/androidx:androidx_annotation_annotation_java", +- ] +- } +- } +- +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +- if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_play_services_clearcut_java") { - aar_path = "cipd/libs/com_google_android_gms_play_services_clearcut/play-services-clearcut-17.0.0.aar" - info_path = "libs/com_google_android_gms_play_services_clearcut/com_google_android_gms_play_services_clearcut.info" @@ -4206,7 +4038,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_play_services_cloud_messaging_java") { -- aar_path = "cipd/libs/com_google_android_gms_play_services_cloud_messaging/play-services-cloud-messaging-16.0.0.aar" +- aar_path = "cipd/libs/com_google_android_gms_play_services_cloud_messaging/play-services-cloud-messaging-17.2.0.aar" - info_path = "libs/com_google_android_gms_play_services_cloud_messaging/com_google_android_gms_play_services_cloud_messaging.info" - enable_bytecode_checks = false - @@ -4226,7 +4058,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_play_services_flags_java") { -- aar_path = "cipd/libs/com_google_android_gms_play_services_flags/play-services-flags-17.0.0.aar" +- aar_path = "cipd/libs/com_google_android_gms_play_services_flags/play-services-flags-18.1.0.aar" - info_path = "libs/com_google_android_gms_play_services_flags/com_google_android_gms_play_services_flags.info" - enable_bytecode_checks = false - @@ -4266,29 +4098,9 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - } - - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. -- if (google_play_services_package == "//third_party/android_deps") { -- android_aar_prebuilt("google_play_services_stats_java") { -- aar_path = "cipd/libs/com_google_android_gms_play_services_stats/play-services-stats-17.0.0.aar" -- info_path = "libs/com_google_android_gms_play_services_stats/com_google_android_gms_play_services_stats.info" -- enable_bytecode_checks = false -- -- # To remove visibility constraint, add this dependency to -- # //third_party/android_deps/build.gradle. -- visibility = [ -- ":*", -- "//third_party/androidx:*", -- ] -- deps = [ -- "$google_play_services_package:google_play_services_basement_java", -- "//third_party/androidx:androidx_legacy_legacy_support_core_utils_java", -- ] -- } -- } -- -- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - android_aar_prebuilt("com_google_android_play_core_common_java") { - aar_path = -- "cipd/libs/com_google_android_play_core_common/core-common-2.0.2.aar" +- "cipd/libs/com_google_android_play_core_common/core-common-2.0.3.aar" - info_path = "libs/com_google_android_play_core_common/com_google_android_play_core_common.info" - enable_bytecode_checks = false - @@ -4301,26 +4113,12 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - } - - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. -- java_prebuilt("com_google_auto_value_auto_value_annotations_java") { -- jar_path = "cipd/libs/com_google_auto_value_auto_value_annotations/auto-value-annotations-1.11.0.jar" -- output_name = "com_google_auto_value_auto_value_annotations" -- enable_bytecode_checks = false -- -- # To remove visibility constraint, add this dependency to -- # //third_party/android_deps/build.gradle. -- visibility = [ -- ":*", -- "//third_party/androidx:*", -- ] -- testonly = true -- } -- -- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { - java_prebuilt("google_firebase_firebase_annotations_java") { -- jar_path = "cipd/libs/com_google_firebase_firebase_annotations/firebase-annotations-16.0.0.jar" +- jar_path = "cipd/libs/com_google_firebase_firebase_annotations/firebase-annotations-16.2.0.jar" - output_name = "com_google_firebase_firebase_annotations" - supports_android = true +- requires_android = true - enable_bytecode_checks = false - - # To remove visibility constraint, add this dependency to @@ -4329,13 +4127,14 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - ":*", - "//third_party/androidx:*", - ] +- deps = [ ":javax_inject_javax_inject_java" ] - } - } - - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_firebase_firebase_common_java") { -- aar_path = "cipd/libs/com_google_firebase_firebase_common/firebase-common-19.5.0.aar" +- aar_path = "cipd/libs/com_google_firebase_firebase_common/firebase-common-21.0.0.aar" - info_path = "libs/com_google_firebase_firebase_common/com_google_firebase_firebase_common.info" - enable_bytecode_checks = false - @@ -4346,18 +4145,23 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - "//third_party/androidx:*", - ] - deps = [ +- ":org_jetbrains_kotlinx_kotlinx_coroutines_play_services_java", +- "$google_play_services_package:google_firebase_firebase_annotations_java", - "$google_play_services_package:google_firebase_firebase_components_java", - "$google_play_services_package:google_play_services_basement_java", - "$google_play_services_package:google_play_services_tasks_java", +- "//third_party/androidx:androidx_annotation_annotation_java", +- "//third_party/androidx:androidx_concurrent_concurrent_futures_java", +- "//third_party/kotlin_stdlib:kotlin_stdlib_java", - ] - } - } - - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { -- android_aar_prebuilt("google_firebase_firebase_components_java") { -- aar_path = "cipd/libs/com_google_firebase_firebase_components/firebase-components-16.1.0.aar" -- info_path = "libs/com_google_firebase_firebase_components/com_google_firebase_firebase_components.info" +- android_aar_prebuilt("google_firebase_firebase_common_ktx_java") { +- aar_path = "cipd/libs/com_google_firebase_firebase_common_ktx/firebase-common-ktx-21.0.0.aar" +- info_path = "libs/com_google_firebase_firebase_common_ktx/com_google_firebase_firebase_common_ktx.info" - enable_bytecode_checks = false - - # To remove visibility constraint, add this dependency to @@ -4368,6 +4172,29 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - ] - deps = [ - "$google_play_services_package:google_firebase_firebase_annotations_java", +- "$google_play_services_package:google_firebase_firebase_common_java", +- "$google_play_services_package:google_firebase_firebase_components_java", +- "//third_party/kotlin_stdlib:kotlin_stdlib_java", +- ] +- } +- } +- +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +- if (google_play_services_package == "//third_party/android_deps") { +- android_aar_prebuilt("google_firebase_firebase_components_java") { +- aar_path = "cipd/libs/com_google_firebase_firebase_components/firebase-components-18.0.0.aar" +- info_path = "libs/com_google_firebase_firebase_components/com_google_firebase_firebase_components.info" +- enable_bytecode_checks = false +- +- # To remove visibility constraint, add this dependency to +- # //third_party/android_deps/build.gradle. +- visibility = [ +- ":*", +- "//third_party/androidx:*", +- ] +- deps = [ +- ":com_google_errorprone_error_prone_annotations_java", +- "$google_play_services_package:google_firebase_firebase_annotations_java", - "//third_party/androidx:androidx_annotation_annotation_java", - ] - } @@ -4376,9 +4203,10 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { - java_prebuilt("google_firebase_firebase_encoders_java") { -- jar_path = "cipd/libs/com_google_firebase_firebase_encoders/firebase-encoders-16.1.0.jar" +- jar_path = "cipd/libs/com_google_firebase_firebase_encoders/firebase-encoders-17.0.0.jar" - output_name = "com_google_firebase_firebase_encoders" - supports_android = true +- requires_android = true - enable_bytecode_checks = false - - # To remove visibility constraint, add this dependency to @@ -4388,16 +4216,13 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - "//third_party/androidx:*", - ] - deps = [ "//third_party/androidx:androidx_annotation_annotation_java" ] -- -- # https://crbug.com/1412551 -- requires_android = true - } - } - - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_firebase_firebase_encoders_json_java") { -- aar_path = "cipd/libs/com_google_firebase_firebase_encoders_json/firebase-encoders-json-17.1.0.aar" +- aar_path = "cipd/libs/com_google_firebase_firebase_encoders_json/firebase-encoders-json-18.0.0.aar" - info_path = "libs/com_google_firebase_firebase_encoders_json/com_google_firebase_firebase_encoders_json.info" - enable_bytecode_checks = false - @@ -4416,8 +4241,30 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { +- java_prebuilt("google_firebase_firebase_encoders_proto_java") { +- jar_path = "cipd/libs/com_google_firebase_firebase_encoders_proto/firebase-encoders-proto-16.0.0.jar" +- output_name = "com_google_firebase_firebase_encoders_proto" +- supports_android = true +- requires_android = true +- enable_bytecode_checks = false +- +- # To remove visibility constraint, add this dependency to +- # //third_party/android_deps/build.gradle. +- visibility = [ +- ":*", +- "//third_party/androidx:*", +- ] +- deps = [ +- "$google_play_services_package:google_firebase_firebase_encoders_java", +- "//third_party/androidx:androidx_annotation_annotation_java", +- ] +- } +- } +- +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +- if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_firebase_firebase_iid_interop_java") { -- aar_path = "cipd/libs/com_google_firebase_firebase_iid_interop/firebase-iid-interop-17.0.0.aar" +- aar_path = "cipd/libs/com_google_firebase_firebase_iid_interop/firebase-iid-interop-17.1.0.aar" - info_path = "libs/com_google_firebase_firebase_iid_interop/com_google_firebase_firebase_iid_interop.info" - enable_bytecode_checks = false - @@ -4428,8 +4275,8 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - "//third_party/androidx:*", - ] - deps = [ -- "$google_play_services_package:google_play_services_base_java", - "$google_play_services_package:google_play_services_basement_java", +- "$google_play_services_package:google_play_services_tasks_java", - ] - } - } @@ -4437,7 +4284,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_firebase_firebase_installations_java") { -- aar_path = "cipd/libs/com_google_firebase_firebase_installations/firebase-installations-16.3.5.aar" +- aar_path = "cipd/libs/com_google_firebase_firebase_installations/firebase-installations-17.2.0.aar" - info_path = "libs/com_google_firebase_firebase_installations/com_google_firebase_firebase_installations.info" - enable_bytecode_checks = false - @@ -4448,10 +4295,13 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - "//third_party/androidx:*", - ] - deps = [ +- "$google_play_services_package:google_firebase_firebase_annotations_java", - "$google_play_services_package:google_firebase_firebase_common_java", +- "$google_play_services_package:google_firebase_firebase_common_ktx_java", - "$google_play_services_package:google_firebase_firebase_components_java", - "$google_play_services_package:google_firebase_firebase_installations_interop_java", - "$google_play_services_package:google_play_services_tasks_java", +- "//third_party/kotlin_stdlib:kotlin_stdlib_java", - ] - } - } @@ -4460,7 +4310,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt( - "google_firebase_firebase_installations_interop_java") { -- aar_path = "cipd/libs/com_google_firebase_firebase_installations_interop/firebase-installations-interop-16.0.1.aar" +- aar_path = "cipd/libs/com_google_firebase_firebase_installations_interop/firebase-installations-interop-17.1.1.aar" - info_path = "libs/com_google_firebase_firebase_installations_interop/com_google_firebase_firebase_installations_interop.info" - enable_bytecode_checks = false - @@ -4476,53 +4326,10 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - ] - } - } -- -- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. -- if (google_play_services_package == "//third_party/android_deps") { -- android_aar_prebuilt( -- "google_firebase_firebase_measurement_connector_java") { -- aar_path = "cipd/libs/com_google_firebase_firebase_measurement_connector/firebase-measurement-connector-18.0.0.aar" -- info_path = "libs/com_google_firebase_firebase_measurement_connector/com_google_firebase_firebase_measurement_connector.info" -- enable_bytecode_checks = false -- -- # To remove visibility constraint, add this dependency to -- # //third_party/android_deps/build.gradle. -- visibility = [ -- ":*", -- "//third_party/androidx:*", -- ] -- deps = -- [ "$google_play_services_package:google_play_services_basement_java" ] -- } -- } - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - java_prebuilt( - "com_google_testparameterinjector_test_parameter_injector_java") { -@@ -1835,7 +1136,6 @@ if (!limit_android_deps) { - ] - testonly = true - deps = [ -- ":com_google_auto_value_auto_value_annotations_java", - ":org_robolectric_pluginapi_java", - ":org_robolectric_utils_java", - "//third_party/android_deps:guava_android_java", -@@ -1857,7 +1157,6 @@ if (!limit_android_deps) { - ] - testonly = true - deps = [ -- ":com_google_auto_value_auto_value_annotations_java", - ":org_robolectric_annotations_java", - ":org_robolectric_pluginapi_java", - ":org_robolectric_utils_java", -@@ -1927,7 +1226,6 @@ if (!limit_android_deps) { - ] - testonly = true - deps = [ -- ":com_google_auto_value_auto_value_annotations_java", - ":org_robolectric_annotations_java", - ":org_robolectric_nativeruntime_java", - ":org_robolectric_pluginapi_java", + java_prebuilt("jakarta_inject_jakarta_inject_api_java") { + jar_path = "cipd/libs/jakarta_inject_jakarta_inject_api/jakarta.inject-api-2.0.1.jar" diff --git a/third_party/android_deps/local_modifications/preconditions/javatests/BUILD.gn b/third_party/android_deps/local_modifications/preconditions/javatests/BUILD.gn --- a/third_party/android_deps/local_modifications/preconditions/javatests/BUILD.gn +++ b/third_party/android_deps/local_modifications/preconditions/javatests/BUILD.gn diff --git a/build/patches/Remove-blocklisted-URLs-upon-bookmark-creation.patch b/build/patches/Remove-blocklisted-URLs-upon-bookmark-creation.patch index d7b9c066..33bdc9bc 100644 --- a/build/patches/Remove-blocklisted-URLs-upon-bookmark-creation.patch +++ b/build/patches/Remove-blocklisted-URLs-upon-bookmark-creation.patch @@ -10,9 +10,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/TabBookmarker.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/TabBookmarker.java --- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/TabBookmarker.java +++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/TabBookmarker.java -@@ -19,6 +19,12 @@ import org.chromium.components.bookmarks.BookmarkItem; - import org.chromium.components.bookmarks.BookmarkType; - import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; +@@ -23,6 +23,12 @@ import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; + + import java.util.Objects; +import org.chromium.chrome.browser.profiles.Profile; +import org.chromium.chrome.browser.profiles.ProfileManager; @@ -23,15 +23,15 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows /** * Helper class for managing the UI flow for bookmarking the active tab and kicking off the backend. * Shows a snackbar if a new bookmark was added. If the bookmark already exists, kicks off edit -@@ -29,6 +35,7 @@ public class TabBookmarker { - private final Supplier mBookmarkModelSupplier; - private final Supplier mBottomSheetControllerSupplier; +@@ -36,6 +42,7 @@ public class TabBookmarker { private final Supplier mSnackbarManagerSupplier; + private final BookmarkManagerOpener mBookmarkManagerOpener; + private final Supplier mPriceDropNotificationManagerSupplier; + private MostVisitedSites mMostVisitedSites; /** * Constructor. -@@ -103,6 +110,13 @@ public class TabBookmarker { +@@ -117,6 +124,13 @@ public class TabBookmarker { return; } diff --git a/build/patches/Remove-detection-of-captive-portals.patch b/build/patches/Remove-detection-of-captive-portals.patch index c1db53c5..1b63e4e8 100644 --- a/build/patches/Remove-detection-of-captive-portals.patch +++ b/build/patches/Remove-detection-of-captive-portals.patch @@ -12,7 +12,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/net/profile_network_context_service.cc b/chrome/browser/net/profile_network_context_service.cc --- a/chrome/browser/net/profile_network_context_service.cc +++ b/chrome/browser/net/profile_network_context_service.cc -@@ -504,7 +504,7 @@ void ProfileNetworkContextService::ConfigureNetworkContextParams( +@@ -530,7 +530,7 @@ void ProfileNetworkContextService::ConfigureNetworkContextParams( void ProfileNetworkContextService::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref(embedder_support::kAlternateErrorPagesEnabled, @@ -24,7 +24,7 @@ diff --git a/chrome/browser/net/profile_network_context_service.cc b/chrome/brow diff --git a/chrome/browser/ssl/chrome_security_blocking_page_factory.cc b/chrome/browser/ssl/chrome_security_blocking_page_factory.cc --- a/chrome/browser/ssl/chrome_security_blocking_page_factory.cc +++ b/chrome/browser/ssl/chrome_security_blocking_page_factory.cc -@@ -81,20 +81,6 @@ EnterpriseManaged g_is_enterprise_managed_for_testing = +@@ -79,20 +79,6 @@ EnterpriseManaged g_is_enterprise_managed_for_testing = // CaptivePortalBlockingPage to be invoked when the user has pressed the // connect button. void OpenLoginPage(content::WebContents* web_contents) { diff --git a/build/patches/Remove-help-menu-item.patch b/build/patches/Remove-help-menu-item.patch index 71cb482a..7280e8e2 100644 --- a/build/patches/Remove-help-menu-item.patch +++ b/build/patches/Remove-help-menu-item.patch @@ -30,7 +30,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml --- a/chrome/android/java/res/menu/main_menu.xml +++ b/chrome/android/java/res/menu/main_menu.xml -@@ -167,9 +167,6 @@ found in the LICENSE file. +@@ -170,9 +170,6 @@ found in the LICENSE file. @@ -54,20 +54,20 @@ diff --git a/chrome/android/java/res/menu/save_password_preferences_action_bar_m 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 -@@ -722,9 +722,6 @@ public class KeyboardShortcuts { - case KeyboardShortcutsSemanticMeaning.GO_FORWARD: +@@ -909,9 +909,6 @@ public class KeyboardShortcuts { + case KeyboardShortcutsSemanticMeaning.HISTORY_GO_FORWARD: if (currentTab != null && currentTab.canGoForward()) currentTab.goForward(); return true; - case KeyboardShortcutsSemanticMeaning.OPEN_HELP: - menuOrKeyboardActionController.onMenuOrKeyboardAction(R.id.help_id, false); - return true; - } - } - + case KeyboardShortcutsSemanticMeaning + .NOT_IMPLEMENTED_KEYBOARD_FOCUS_SWITCH_ROW_OF_TOP_ELEMENTS: + if (ChromeFeatureList.isEnabled(ChromeFeatureList.ANDROID_KEYBOARD_A11Y)) { 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 -@@ -2390,15 +2390,6 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -2414,15 +2414,6 @@ public abstract class ChromeActivity extends AsyncInitializationActivity final Tab currentTab = getActivityTab(); @@ -119,7 +119,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 -@@ -1029,7 +1029,6 @@ public abstract class BaseCustomTabActivity extends ChromeActivity { +@@ -1033,7 +1033,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 @@ -141,7 +141,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -496,6 +496,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -489,6 +489,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment help.setIcon( TraceEventVectorDrawableCompat.create( getResources(), R.drawable.ic_help_and_feedback, getActivity().getTheme())); @@ -152,7 +152,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 -@@ -419,6 +419,7 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -418,6 +418,7 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity help.setIcon( TraceEventVectorDrawableCompat.create( getResources(), R.drawable.ic_help_and_feedback, getTheme())); @@ -230,7 +230,7 @@ diff --git a/chrome/browser/password_entry_edit/android/java/res/menu/credential diff --git a/chrome/browser/prefetch/android/java/src/org/chromium/chrome/browser/prefetch/settings/PreloadPagesSettingsFragmentBase.java b/chrome/browser/prefetch/android/java/src/org/chromium/chrome/browser/prefetch/settings/PreloadPagesSettingsFragmentBase.java --- a/chrome/browser/prefetch/android/java/src/org/chromium/chrome/browser/prefetch/settings/PreloadPagesSettingsFragmentBase.java +++ b/chrome/browser/prefetch/android/java/src/org/chromium/chrome/browser/prefetch/settings/PreloadPagesSettingsFragmentBase.java -@@ -42,6 +42,7 @@ public abstract class PreloadPagesSettingsFragmentBase extends ChromeBaseSetting +@@ -46,6 +46,7 @@ public abstract class PreloadPagesSettingsFragmentBase extends ChromeBaseSetting help.setIcon( TraceEventVectorDrawableCompat.create( getResources(), R.drawable.ic_help_and_feedback, getActivity().getTheme())); @@ -252,7 +252,7 @@ diff --git a/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome diff --git a/chrome/browser/safe_browsing/android/java/src/org/chromium/chrome/browser/safe_browsing/settings/SafeBrowsingSettingsFragmentBase.java b/chrome/browser/safe_browsing/android/java/src/org/chromium/chrome/browser/safe_browsing/settings/SafeBrowsingSettingsFragmentBase.java --- a/chrome/browser/safe_browsing/android/java/src/org/chromium/chrome/browser/safe_browsing/settings/SafeBrowsingSettingsFragmentBase.java +++ b/chrome/browser/safe_browsing/android/java/src/org/chromium/chrome/browser/safe_browsing/settings/SafeBrowsingSettingsFragmentBase.java -@@ -61,6 +61,7 @@ public abstract class SafeBrowsingSettingsFragmentBase extends ChromeBaseSetting +@@ -64,6 +64,7 @@ public abstract class SafeBrowsingSettingsFragmentBase extends ChromeBaseSetting help.setIcon( TraceEventVectorDrawableCompat.create( getResources(), R.drawable.ic_help_and_feedback, getActivity().getTheme())); @@ -263,7 +263,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 -@@ -138,6 +138,15 @@ void LaunchReleaseNotesImpl(Profile* profile, apps::LaunchSource source) { +@@ -137,6 +137,15 @@ void LaunchReleaseNotesImpl(Profile* profile, apps::LaunchSource source) { // shown in the last active browser. If there is no such browser, a new browser // is created. void ShowHelpImpl(Browser* browser, Profile* profile, HelpSource source) { diff --git a/build/patches/Remove-segmentation-platform.patch b/build/patches/Remove-segmentation-platform.patch index efc82253..19b52714 100644 --- a/build/patches/Remove-segmentation-platform.patch +++ b/build/patches/Remove-segmentation-platform.patch @@ -47,7 +47,7 @@ diff --git a/chrome/browser/segmentation_platform/chrome_browser_main_extra_part diff --git a/components/segmentation_platform/public/features.cc b/components/segmentation_platform/public/features.cc --- a/components/segmentation_platform/public/features.cc +++ b/components/segmentation_platform/public/features.cc -@@ -266,4 +266,7 @@ BASE_FEATURE(kSegmentationPlatformFedCmUser, +@@ -264,4 +264,7 @@ BASE_FEATURE(kSegmentationPlatformFedCmUser, "SegmentationPlatformFedCmUser", base::FEATURE_DISABLED_BY_DEFAULT); diff --git a/build/patches/Remove-support-for-device-memory-and-cpu-recovery.patch b/build/patches/Remove-support-for-device-memory-and-cpu-recovery.patch index 62bbc45c..feee0080 100644 --- a/build/patches/Remove-support-for-device-memory-and-cpu-recovery.patch +++ b/build/patches/Remove-support-for-device-memory-and-cpu-recovery.patch @@ -59,7 +59,7 @@ new file mode 100644 diff --git a/storage/browser/blob/blob_memory_controller.cc b/storage/browser/blob/blob_memory_controller.cc --- a/storage/browser/blob/blob_memory_controller.cc +++ b/storage/browser/blob/blob_memory_controller.cc -@@ -55,6 +55,15 @@ using MemoryAllocation = BlobMemoryController::MemoryAllocation; +@@ -54,6 +54,15 @@ using MemoryAllocation = BlobMemoryController::MemoryAllocation; using QuotaAllocationTask = BlobMemoryController::QuotaAllocationTask; using DiskSpaceFuncPtr = BlobMemoryController::DiskSpaceFuncPtr; @@ -75,7 +75,7 @@ diff --git a/storage/browser/blob/blob_memory_controller.cc b/storage/browser/bl File::Error CreateBlobDirectory(const FilePath& blob_storage_dir) { File::Error error = File::FILE_OK; base::CreateDirectoryAndGetError(blob_storage_dir, &error); -@@ -84,23 +93,16 @@ BlobStorageLimits CalculateBlobStorageLimitsImpl( +@@ -83,23 +92,16 @@ BlobStorageLimits CalculateBlobStorageLimitsImpl( int64_t disk_size = 0ull; uint64_t memory_size = optional_memory_size_for_testing ? optional_memory_size_for_testing.value() @@ -89,7 +89,7 @@ diff --git a/storage/browser/blob/blob_memory_controller.cc b/storage/browser/bl // Don't do specialty configuration for error size (-1). if (memory_size > 0) { --#if !BUILDFLAG(IS_CHROMEOS_ASH) && !BUILDFLAG(IS_ANDROID) && \ +-#if !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_ANDROID) && \ - defined(ARCH_CPU_64_BITS) constexpr size_t kTwoGigabytes = 2ull * 1024 * 1024 * 1024; limits.max_blob_in_memory_space = kTwoGigabytes; @@ -245,7 +245,7 @@ diff --git a/third_party/blink/renderer/core/timing/memory_info.cc b/third_party diff --git a/third_party/blink/renderer/core/timing/window_performance.cc b/third_party/blink/renderer/core/timing/window_performance.cc --- a/third_party/blink/renderer/core/timing/window_performance.cc +++ b/third_party/blink/renderer/core/timing/window_performance.cc -@@ -320,7 +320,7 @@ MemoryInfo* WindowPerformance::memory(ScriptState* script_state) const { +@@ -322,7 +322,7 @@ MemoryInfo* WindowPerformance::memory(ScriptState* script_state) const { const bool is_locked_to_site = Platform::Current()->IsLockedToSite(); auto* memory_info = MakeGarbageCollected( is_locked_to_site ? MemoryInfo::Precision::kPrecise diff --git a/build/patches/Remove-voice-recognition-integration.patch b/build/patches/Remove-voice-recognition-integration.patch index 0fcf1f97..3b0791fa 100644 --- a/build/patches/Remove-voice-recognition-integration.patch +++ b/build/patches/Remove-voice-recognition-integration.patch @@ -29,10 +29,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabRootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabRootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabRootUiCoordinator.java -@@ -419,7 +419,7 @@ public class BaseCustomTabRootUiCoordinator extends RootUiCoordinator { - protected AdaptiveToolbarBehavior createAdaptiveToolbarBehavior( - Supplier trackerSupplier) { - return new CustomTabAdaptiveToolbarBehavior( +@@ -455,7 +455,7 @@ public class BaseCustomTabRootUiCoordinator extends RootUiCoordinator { + mIntentDataProvider.get().getCustomButtonsOnToolbar(), + AppCompatResources.getDrawable(mActivity, R.drawable.ic_open_in_new_white_24dp), + mOpenInBrowserRunnable, - () -> addVoiceSearchAdaptiveButton(trackerSupplier)); + () -> {}); } @@ -41,7 +41,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Base diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java -@@ -70,7 +70,6 @@ import org.chromium.chrome.browser.metrics.StartupMetricsTracker; +@@ -71,7 +71,6 @@ import org.chromium.chrome.browser.metrics.StartupMetricsTracker; import org.chromium.chrome.browser.native_page.ContextMenuManager; import org.chromium.chrome.browser.omnibox.OmniboxFocusReason; import org.chromium.chrome.browser.omnibox.OmniboxStub; @@ -100,7 +100,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. } @Override -@@ -950,12 +928,6 @@ public class NewTabPage +@@ -949,12 +927,6 @@ public class NewTabPage mOmniboxStub.addUrlFocusChangeListener(feedReliabilityLogger); } } @@ -113,7 +113,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. } @Override -@@ -966,11 +938,6 @@ public class NewTabPage +@@ -965,11 +937,6 @@ public class NewTabPage } } @@ -125,7 +125,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. /** Adds an observer to be notified on most visited tile clicks. */ public void addMostVisitedTileClickObserver(MostVisitedTileClickObserver observer) { mMostVisitedTileClickObservers.addObserver(observer); -@@ -1057,9 +1024,6 @@ public class NewTabPage +@@ -1056,9 +1023,6 @@ public class NewTabPage } mFeedSurfaceProvider.destroy(); mTab.getWindowAndroid().removeContextMenuCloseListener(mContextMenuManager); @@ -157,7 +157,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarManageable; import org.chromium.chrome.browser.ui.native_page.NativePage; -@@ -323,7 +322,7 @@ public class SearchActivity extends AsyncInitializationActivity +@@ -324,7 +323,7 @@ public class SearchActivity extends AsyncInitializationActivity /*omniboxUma*/ (url, transition, isNtp) -> {}, TabWindowManagerSingleton::getInstance, /* bookmarkState= */ (url) -> false, @@ -169,7 +169,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivityLocationBarLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivityLocationBarLayout.java --- a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivityLocationBarLayout.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivityLocationBarLayout.java -@@ -28,7 +28,6 @@ import org.chromium.chrome.browser.omnibox.UrlBarData; +@@ -29,7 +29,6 @@ import org.chromium.chrome.browser.omnibox.UrlBarData; import org.chromium.chrome.browser.omnibox.status.StatusCoordinator; import org.chromium.chrome.browser.omnibox.styles.OmniboxResourceProvider; import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteCoordinator; @@ -177,7 +177,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se import org.chromium.chrome.browser.toolbar.top.ToolbarPhone; import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityExtras.IntentOrigin; import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityExtras.SearchType; -@@ -215,13 +214,6 @@ public class SearchActivityLocationBarLayout extends LocationBarLayout { +@@ -214,13 +213,6 @@ public class SearchActivityLocationBarLayout extends LocationBarLayout { return false; } @@ -194,7 +194,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java -@@ -886,7 +886,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -902,7 +902,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { mActivityLifecycleDispatcher, mTabCreatorManagerSupplier, mActivityTabProvider, @@ -206,7 +206,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java -@@ -96,7 +96,6 @@ import org.chromium.chrome.browser.omnibox.OmniboxStub; +@@ -99,7 +99,6 @@ import org.chromium.chrome.browser.omnibox.OmniboxStub; import org.chromium.chrome.browser.omnibox.OverrideUrlLoadingDelegateImpl; import org.chromium.chrome.browser.omnibox.UrlFocusChangeListener; import org.chromium.chrome.browser.omnibox.suggestions.OmniboxSuggestionsDropdownScrollListener; @@ -214,7 +214,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar import org.chromium.chrome.browser.page_info.ChromePageInfo; import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations; import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; -@@ -2669,10 +2668,6 @@ public class ToolbarManager +@@ -2734,10 +2733,6 @@ public class ToolbarManager return mLocationBar.getOmniboxStub(); } @@ -228,16 +228,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveToolbarUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveToolbarUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveToolbarUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveToolbarUiCoordinator.java -@@ -26,8 +26,6 @@ import org.chromium.chrome.browser.dom_distiller.ReaderModeToolbarButtonControll +@@ -28,8 +28,6 @@ import org.chromium.chrome.browser.dom_distiller.ReaderModeToolbarButtonControll import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.identity_disc.IdentityDiscController; import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher; -import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; -import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler.VoiceInteractionSource; + import org.chromium.chrome.browser.price_history.PriceHistoryBottomSheetContentCoordinator; import org.chromium.chrome.browser.price_insights.PriceInsightsButtonController; import org.chromium.chrome.browser.price_tracking.CurrentTabPriceTrackingStateSupplier; - import org.chromium.chrome.browser.price_tracking.PriceTrackingBottomSheetContentCoordinator; -@@ -40,7 +38,6 @@ import org.chromium.chrome.browser.share.ShareButtonController; +@@ -43,7 +41,6 @@ import org.chromium.chrome.browser.share.ShareButtonController; import org.chromium.chrome.browser.share.ShareDelegate; import org.chromium.chrome.browser.tabmodel.TabModelSelector; import org.chromium.chrome.browser.toolbar.ButtonDataProvider; @@ -245,7 +245,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveTool import org.chromium.chrome.browser.toolbar.adaptive.AdaptiveButtonActionMenuCoordinator; import org.chromium.chrome.browser.toolbar.adaptive.AdaptiveToolbarBehavior; import org.chromium.chrome.browser.toolbar.adaptive.AdaptiveToolbarButtonController; -@@ -68,7 +65,6 @@ public class AdaptiveToolbarUiCoordinator { +@@ -72,7 +69,6 @@ public class AdaptiveToolbarUiCoordinator { private CurrentTabPriceTrackingStateSupplier mCurrentTabPriceTrackingStateSupplier; private ContextualPageActionController mContextualPageActionController; private AdaptiveToolbarButtonController mAdaptiveToolbarButtonController; @@ -253,7 +253,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveTool private BottomSheetController mBottomSheetController; private ObservableSupplier mProfileSupplier; private Supplier mScrimSupplier; -@@ -232,45 +228,6 @@ public class AdaptiveToolbarUiCoordinator { +@@ -239,45 +235,6 @@ public class AdaptiveToolbarUiCoordinator { mButtonDataProviders = List.of(identityDiscController, adaptiveToolbarButtonController); } @@ -299,7 +299,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveTool /** * Returns the list of {@link ButtonDataProvider}. The order in which the providers determines * which one will be shown first. -@@ -279,11 +236,6 @@ public class AdaptiveToolbarUiCoordinator { +@@ -286,11 +243,6 @@ public class AdaptiveToolbarUiCoordinator { return mButtonDataProviders; } @@ -367,7 +367,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/android/omnibox/BUILD.gn --- a/chrome/browser/ui/android/omnibox/BUILD.gn +++ b/chrome/browser/ui/android/omnibox/BUILD.gn -@@ -145,7 +145,6 @@ android_library("java") { +@@ -144,7 +144,6 @@ android_library("java") { "java/src/org/chromium/chrome/browser/omnibox/suggestions/tail/TailSuggestionView.java", "java/src/org/chromium/chrome/browser/omnibox/suggestions/tail/TailSuggestionViewBinder.java", "java/src/org/chromium/chrome/browser/omnibox/suggestions/tail/TailSuggestionViewProperties.java", @@ -401,7 +401,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow 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 -@@ -42,7 +42,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.OmniboxLoadUrlParams; +@@ -43,7 +43,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.OmniboxLoadUrlParams; import org.chromium.chrome.browser.omnibox.suggestions.OmniboxSuggestionsDropdownScrollListener; import org.chromium.chrome.browser.omnibox.suggestions.OmniboxSuggestionsVisualState; import org.chromium.chrome.browser.omnibox.suggestions.basic.BasicSuggestionProcessor.BookmarkState; @@ -409,7 +409,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; import org.chromium.chrome.browser.share.ShareDelegate; -@@ -455,13 +454,6 @@ public class LocationBarCoordinator +@@ -456,13 +455,6 @@ public class LocationBarCoordinator return mLocationBarLayout.getSecurityIconView(); } @@ -423,7 +423,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow @Nullable @Override public OmniboxStub getOmniboxStub() { -@@ -783,11 +775,6 @@ public class LocationBarCoordinator +@@ -784,11 +776,6 @@ public class LocationBarCoordinator // End tablet-specific methods. @@ -438,7 +438,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarLayout.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarLayout.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarLayout.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarLayout.java -@@ -29,7 +29,6 @@ import org.chromium.chrome.browser.omnibox.status.StatusCoordinator; +@@ -30,7 +30,6 @@ import org.chromium.chrome.browser.omnibox.status.StatusCoordinator; import org.chromium.chrome.browser.omnibox.status.StatusView; import org.chromium.chrome.browser.omnibox.styles.OmniboxResourceProvider; import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteCoordinator; @@ -446,7 +446,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.components.browser_ui.widget.CompositeTouchDelegate; import org.chromium.components.embedder_support.util.UrlUtilities; import org.chromium.ui.base.DeviceFormFactor; -@@ -544,11 +543,6 @@ public class LocationBarLayout extends FrameLayout { +@@ -549,11 +548,6 @@ public class LocationBarLayout extends FrameLayout { mSearchEngineUtils = searchEngineUtils; } @@ -461,7 +461,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java -@@ -57,7 +57,6 @@ import org.chromium.chrome.browser.omnibox.status.StatusCoordinator; +@@ -58,7 +58,6 @@ import org.chromium.chrome.browser.omnibox.status.StatusCoordinator; import org.chromium.chrome.browser.omnibox.styles.OmniboxResourceProvider; import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteCoordinator; import org.chromium.chrome.browser.omnibox.suggestions.OmniboxLoadUrlParams; @@ -469,7 +469,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.prefetch.settings.PreloadPagesSettingsBridge; import org.chromium.chrome.browser.prefetch.settings.PreloadPagesState; import org.chromium.chrome.browser.profiles.Profile; -@@ -98,8 +97,6 @@ import java.util.function.BooleanSupplier; +@@ -99,8 +98,6 @@ import java.util.function.BooleanSupplier; class LocationBarMediator implements LocationBarDataProvider.Observer, OmniboxStub, @@ -478,7 +478,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow UrlBarDelegate, OnKeyListener, ComponentCallbacks, -@@ -164,7 +161,6 @@ class LocationBarMediator +@@ -165,7 +162,6 @@ class LocationBarMediator }; private final LocationBarLayout mLocationBarLayout; @@ -486,7 +486,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow private final LocationBarDataProvider mLocationBarDataProvider; private final @Nullable BrowserControlsStateProvider mBrowserControlsStateProvider; private final LocationBarEmbedderUiOverrides mEmbedderUiOverrides; -@@ -239,8 +235,6 @@ class LocationBarMediator +@@ -240,8 +236,6 @@ class LocationBarMediator mEmbedderUiOverrides = embedderUiOverrides; mOverrideUrlLoadingDelegate = overrideUrlLoadingDelegate; mLocaleManager = localeManager; @@ -495,7 +495,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow mProfileSupplier = profileSupplier; mProfileSupplier.addObserver(mCallbackController.makeCancelable(this::setProfile)); mTemplateUrlServiceSupplier = templateUrlServiceSupplier; -@@ -284,9 +278,6 @@ class LocationBarMediator +@@ -285,9 +279,6 @@ class LocationBarMediator mStatusCoordinator = null; mAutocompleteCoordinator = null; mUrlCoordinator = null; @@ -505,7 +505,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow mLocationBarDataProvider.removeObserver(this); mDeferredNativeRunnables.clear(); mUrlFocusChangeListeners.clear(); -@@ -418,11 +409,6 @@ class LocationBarMediator +@@ -419,11 +410,6 @@ class LocationBarMediator mLocationBarLayout.setUnfocusedWidth(unfocusedWidth); } @@ -517,7 +517,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow /* package */ void setLensControllerForTesting(LensController lensController) { mLensController = lensController; } -@@ -692,10 +678,6 @@ class LocationBarMediator +@@ -694,10 +680,6 @@ class LocationBarMediator // Hide keyboard before launch voice search to avoid keyboard action announcement in // TalkBack to be picked up by voice search. mUrlCoordinator.setKeyboardVisibility(false, false); @@ -528,7 +528,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow } /** package */ -@@ -1178,10 +1160,7 @@ class LocationBarMediator +@@ -1180,10 +1162,7 @@ class LocationBarMediator private boolean shouldShowMicButton() { if (shouldShowDeleteButton()) return false; @@ -540,7 +540,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow return false; } boolean isToolbarMicEnabled = mIsToolbarMicEnabledSupplier.getAsBoolean(); -@@ -1198,6 +1177,7 @@ class LocationBarMediator +@@ -1200,6 +1179,7 @@ class LocationBarMediator } private boolean shouldShowLensButton() { @@ -548,7 +548,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow if (shouldShowDeleteButton()) return false; // When this method is called on UI inflation, return false as the native is not ready. -@@ -1422,11 +1402,6 @@ class LocationBarMediator +@@ -1425,11 +1405,6 @@ class LocationBarMediator } } @@ -560,7 +560,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow @Override public void addUrlFocusChangeListener(UrlFocusChangeListener listener) { mUrlFocusChangeListeners.addObserver(listener); -@@ -1442,31 +1417,13 @@ class LocationBarMediator +@@ -1445,31 +1420,13 @@ class LocationBarMediator return mUrlHasFocus; } @@ -594,7 +594,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow public void setSearchQuery(String query) { if (TextUtils.isEmpty(query)) return; -@@ -1489,20 +1446,6 @@ class LocationBarMediator +@@ -1492,20 +1449,6 @@ class LocationBarMediator mUrlCoordinator.setKeyboardVisibility(true, false); } @@ -701,7 +701,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.share.ShareDelegate; import org.chromium.chrome.browser.tab.Tab; -@@ -293,13 +292,6 @@ public class AutocompleteCoordinator +@@ -294,13 +293,6 @@ public class AutocompleteCoordinator mRecycledViewPool.ifPresent(p -> p.onNativeInitialized()); } @@ -718,7 +718,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java -@@ -42,7 +42,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteDelegate.Auto +@@ -40,7 +40,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteDelegate.Auto import org.chromium.chrome.browser.omnibox.suggestions.action.OmniboxActionFactoryImpl; import org.chromium.chrome.browser.omnibox.suggestions.action.OmniboxAnswerAction; import org.chromium.chrome.browser.omnibox.suggestions.basic.BasicSuggestionProcessor.BookmarkState; @@ -743,7 +743,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/voice/VoiceRecognitionUtil.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/voice/VoiceRecognitionUtil.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/voice/VoiceRecognitionUtil.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/voice/VoiceRecognitionUtil.java -@@ -122,6 +122,7 @@ public class VoiceRecognitionUtil { +@@ -118,6 +118,7 @@ public class VoiceRecognitionUtil { * @return {@code true} if recognition is supported. {@code false} otherwise. */ public static boolean isRecognitionIntentPresent(boolean useCachedValue) { @@ -754,7 +754,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/toolbar/BUILD.gn b/chrome/browser/ui/android/toolbar/BUILD.gn --- a/chrome/browser/ui/android/toolbar/BUILD.gn +++ b/chrome/browser/ui/android/toolbar/BUILD.gn -@@ -37,7 +37,6 @@ android_library("java") { +@@ -36,7 +36,6 @@ android_library("java") { "java/src/org/chromium/chrome/browser/toolbar/ToolbarProgressBarAnimatingView.java", "java/src/org/chromium/chrome/browser/toolbar/ToolbarTabController.java", "java/src/org/chromium/chrome/browser/toolbar/ToolbarTabControllerImpl.java", diff --git a/build/patches/Remove-window-name-on-cross-origin-navigation.patch b/build/patches/Remove-window-name-on-cross-origin-navigation.patch index 9531dc75..33bb1bf1 100644 --- a/build/patches/Remove-window-name-on-cross-origin-navigation.patch +++ b/build/patches/Remove-window-name-on-cross-origin-navigation.patch @@ -21,7 +21,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc --- a/third_party/blink/renderer/core/loader/document_loader.cc +++ b/third_party/blink/renderer/core/loader/document_loader.cc -@@ -3014,7 +3014,7 @@ void DocumentLoader::CommitNavigation() { +@@ -3010,7 +3010,7 @@ void DocumentLoader::CommitNavigation() { // that the name would be nulled and if the name is accessed after we will // fire a UseCounter. If we decide to move forward with this change, we'd // actually clean the name here. @@ -30,7 +30,7 @@ diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_p frame_->Tree().ExperimentalSetNulledName(); } -@@ -3025,6 +3025,7 @@ void DocumentLoader::CommitNavigation() { +@@ -3021,6 +3021,7 @@ void DocumentLoader::CommitNavigation() { // TODO(shuuran): CrossSiteCrossBrowsingContextGroupSetNulledName will just // record the fact that the name would be nulled and if the name is accessed // after we will fire a UseCounter. diff --git a/build/patches/Restore-BookmarkToolbar-setCurrentFolder.patch b/build/patches/Restore-BookmarkToolbar-setCurrentFolder.patch index ac22d56b..5c594cd9 100644 --- a/build/patches/Restore-BookmarkToolbar-setCurrentFolder.patch +++ b/build/patches/Restore-BookmarkToolbar-setCurrentFolder.patch @@ -66,7 +66,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarCoordinator.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarCoordinator.java --- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarCoordinator.java +++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarCoordinator.java -@@ -55,6 +55,7 @@ public class BookmarkToolbarCoordinator { +@@ -56,6 +56,7 @@ public class BookmarkToolbarCoordinator { searchDelegate, R.string.bookmark_toolbar_search, R.id.search_menu_id); mModel = new PropertyModel.Builder(BookmarkToolbarProperties.ALL_KEYS).build(); @@ -77,7 +77,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java --- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java +++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java -@@ -293,6 +293,7 @@ class BookmarkToolbarMediator +@@ -296,6 +296,7 @@ class BookmarkToolbarMediator @Override public void onFolderStateSet(BookmarkId folder) { mCurrentFolder = folder; diff --git a/build/patches/Restore-LastTabStandingTracker.patch b/build/patches/Restore-LastTabStandingTracker.patch index d30b1ef9..813f12cc 100644 --- a/build/patches/Restore-LastTabStandingTracker.patch +++ b/build/patches/Restore-LastTabStandingTracker.patch @@ -27,7 +27,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -1713,6 +1713,16 @@ static_library("browser") { +@@ -1735,6 +1735,16 @@ static_library("browser") { ] } @@ -382,7 +382,7 @@ new file mode 100644 diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc -@@ -124,6 +124,7 @@ +@@ -130,6 +130,7 @@ #include "chrome/browser/password_manager/password_manager_settings_service_factory.h" #include "chrome/browser/password_manager/password_reuse_manager_factory.h" #include "chrome/browser/password_manager/profile_password_store_factory.h" @@ -390,7 +390,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc #include "chrome/browser/permissions/notifications_engagement_service_factory.h" #include "chrome/browser/permissions/one_time_permissions_tracker_factory.h" #include "chrome/browser/permissions/origin_keyed_permission_action_service_factory.h" -@@ -1046,6 +1047,7 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -1056,6 +1057,7 @@ void ChromeBrowserMainExtraPartsProfiles:: #if BUILDFLAG(BUILD_WITH_TFLITE_LIB) OnDeviceTailModelServiceFactory::GetInstance(); #endif @@ -409,7 +409,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc #include "chrome/browser/permissions/one_time_permissions_tracker_helper.h" #include "chrome/browser/predictors/loading_predictor_factory.h" #include "chrome/browser/predictors/loading_predictor_tab_helper.h" -@@ -416,6 +417,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -426,6 +427,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { HistoryEmbeddingsTabHelper::CreateForWebContents(web_contents); HttpsOnlyModeTabHelper::CreateForWebContents(web_contents); webapps::InstallableManager::CreateForWebContents(web_contents); diff --git a/build/patches/Restore-Search-Ready-Omnibox-flag.patch b/build/patches/Restore-Search-Ready-Omnibox-flag.patch index a3ab825b..9c5d556f 100644 --- a/build/patches/Restore-Search-Ready-Omnibox-flag.patch +++ b/build/patches/Restore-Search-Ready-Omnibox-flag.patch @@ -23,18 +23,18 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -317,6 +317,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -323,6 +323,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kReadAloudIPHMenuButtonHighlightCCT, &kRecordSuppressionMetrics, &kReengagementNotification, + &kSearchReadyOmniboxFeature, &kRelatedSearchesAllLanguage, &kRelatedSearchesSwitch, - &kReportParentalControlSitesChild, + &kRemoveTabFocusOnShowingAndSelect, 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 -@@ -398,6 +398,7 @@ public abstract class ChromeFeatureList { +@@ -401,6 +401,7 @@ public abstract class ChromeFeatureList { public static final String MAYLAUNCHURL_USES_SEPARATE_STORAGE_PARTITION = "MayLaunchUrlUsesSeparateStoragePartition"; public static final String MOST_VISITED_TILES_CUSTOMIZATION = "MostVisitedTilesCustomization"; diff --git a/build/patches/Restore-Simplified-NTP-launch.patch b/build/patches/Restore-Simplified-NTP-launch.patch index 1e024663..f5b8bfdd 100644 --- a/build/patches/Restore-Simplified-NTP-launch.patch +++ b/build/patches/Restore-Simplified-NTP-launch.patch @@ -48,7 +48,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 -@@ -553,6 +553,7 @@ chrome_java_resources = [ +@@ -556,6 +556,7 @@ chrome_java_resources = [ "java/res/layout/new_tab_page_tile_grid_placeholder.xml", "java/res/layout/one_line_list_item.xml", "java/res/layout/open_full_chrome_history_header.xml", @@ -59,7 +59,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 -@@ -573,6 +573,7 @@ chrome_java_sources = [ +@@ -579,6 +579,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", @@ -67,7 +67,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", -@@ -984,6 +985,7 @@ chrome_java_sources = [ +@@ -983,6 +984,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", @@ -112,7 +112,7 @@ diff --git a/chrome/android/java/res/layout/mv_tiles_layout.xml b/chrome/android diff --git a/chrome/android/java/res/layout/new_tab_page_layout.xml b/chrome/android/java/res/layout/new_tab_page_layout.xml --- a/chrome/android/java/res/layout/new_tab_page_layout.xml +++ b/chrome/android/java/res/layout/new_tab_page_layout.xml -@@ -38,6 +38,13 @@ found in the LICENSE file. +@@ -37,6 +37,13 @@ found in the LICENSE file. android:layout_marginTop="16dp" android:visibility="gone"/> @@ -260,7 +260,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/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 -@@ -2780,7 +2780,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements MismatchedIn +@@ -2899,7 +2899,8 @@ public class ChromeTabbedActivity extends ChromeActivity { getToolbarManager().getTabStripHeightSupplier(), mModuleRegistrySupplier, mEdgeToEdgeControllerSupplier, @@ -374,7 +374,7 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/IdentityDiscController.java b/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/IdentityDiscController.java --- a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/IdentityDiscController.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/IdentityDiscController.java -@@ -167,7 +167,10 @@ public class IdentityDiscController +@@ -168,7 +168,10 @@ public class IdentityDiscController mButtonData.setButtonSpec( buttonSpecWithDrawableAndDescription(mButtonData.getButtonSpec(), email)); @@ -536,7 +536,7 @@ 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; -@@ -85,6 +87,8 @@ public class NewTabPageLayout extends LinearLayout { +@@ -86,6 +88,8 @@ public class NewTabPageLayout extends LinearLayout { private @Nullable DisplayStyleObserver mDisplayStyleObserver; private CallbackController mCallbackController = new CallbackController(); @@ -545,7 +545,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. -@@ -97,7 +101,7 @@ public class NewTabPageLayout extends LinearLayout { +@@ -98,7 +102,7 @@ public class NewTabPageLayout extends LinearLayout { */ private boolean mHasShownView; @@ -554,7 +554,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL private boolean mSearchProviderIsGoogle; private boolean mShowingNonStandardGoogleLogo; -@@ -250,6 +254,7 @@ public class NewTabPageLayout extends LinearLayout { +@@ -247,6 +251,7 @@ public class NewTabPageLayout extends LinearLayout { initializeLogoCoordinator(searchProviderHasLogo, searchProviderIsGoogle); initializeMostVisitedTilesCoordinator( mProfile, lifecycleDispatcher, tileGroupDelegate, touchEnabledDelegate); @@ -562,7 +562,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL initializeSearchBoxTextView(); initializeVoiceSearchButton(); initializeLensButton(); -@@ -584,7 +589,7 @@ public class NewTabPageLayout extends LinearLayout { +@@ -574,7 +579,7 @@ public class NewTabPageLayout extends LinearLayout { && mInitialized) { return; } @@ -571,7 +571,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL mSearchProviderIsGoogle = isGoogle; if (!mSearchProviderIsGoogle) { -@@ -917,6 +922,22 @@ public class NewTabPageLayout extends LinearLayout { +@@ -905,6 +910,22 @@ public class NewTabPageLayout extends LinearLayout { return mMostVisitedTilesCoordinator; } @@ -643,7 +643,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/Sug diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesBridge.java --- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesBridge.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesBridge.java -@@ -21,7 +21,7 @@ public class MostVisitedSitesBridge implements MostVisitedSites { +@@ -25,7 +25,7 @@ public class MostVisitedSitesBridge implements MostVisitedSites { * Maximum number of tiles that is explicitly supported. UMA relies on this value, so even if * the UI supports it, getting more can raise unexpected issues. */ @@ -933,18 +933,18 @@ 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 -@@ -280,6 +280,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -286,6 +286,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kLegacyTabStateDeprecation, &kLockBackPressHandlerAtStart, &kIncognitoScreenshot, + &kSimplifiedNTP, &kLensOnQuickActionSearchWidget, - &kLogoPolish, - &kLogoPolishAnimationKillSwitch, + &kMagicStackAndroid, + &kMayLaunchUrlUsesSeparateStoragePartition, 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 -@@ -399,6 +399,7 @@ public abstract class ChromeFeatureList { +@@ -402,6 +402,7 @@ public abstract class ChromeFeatureList { public static final String MAYLAUNCHURL_USES_SEPARATE_STORAGE_PARTITION = "MayLaunchUrlUsesSeparateStoragePartition"; public static final String MOST_VISITED_TILES_CUSTOMIZATION = "MostVisitedTilesCustomization"; @@ -952,10 +952,10 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final String SEARCH_READY_OMNIBOX = "SearchReadyOmnibox"; public static final String MOST_VISITED_TILES_RESELECT = "MostVisitedTilesReselect"; public static final String MUlTI_INSTANCE_APPLICATION_STATUS_CLEANUP = -@@ -767,7 +768,7 @@ public abstract class ChromeFeatureList { - public static final CachedFlag sLogoPolish = newCachedFlag(LOGO_POLISH, true); - public static final CachedFlag sLogoPolishAnimationKillSwitch = - newCachedFlag(LOGO_POLISH_ANIMATION_KILL_SWITCH, true); +@@ -768,7 +769,7 @@ public abstract class ChromeFeatureList { + /* defaultValueInTests= */ true); + public static final CachedFlag sLockBackPressHandlerAtStart = + newCachedFlag(LOCK_BACK_PRESS_HANDLER_AT_START, true); - public static final CachedFlag sMagicStackAndroid = newCachedFlag(MAGIC_STACK_ANDROID, true); + public static final CachedFlag sMagicStackAndroid = newCachedFlag(MAGIC_STACK_ANDROID, false); public static final CachedFlag sMostVisitedTilesCustomization = @@ -964,10 +964,10 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f diff --git a/chrome/browser/segmentation_platform/android/java/src/org/chromium/chrome/browser/segmentation_platform/client_util/HomeModulesRankingHelper.java b/chrome/browser/segmentation_platform/android/java/src/org/chromium/chrome/browser/segmentation_platform/client_util/HomeModulesRankingHelper.java --- a/chrome/browser/segmentation_platform/android/java/src/org/chromium/chrome/browser/segmentation_platform/client_util/HomeModulesRankingHelper.java +++ b/chrome/browser/segmentation_platform/android/java/src/org/chromium/chrome/browser/segmentation_platform/client_util/HomeModulesRankingHelper.java -@@ -32,6 +32,7 @@ public final class HomeModulesRankingHelper { - @NonNull Profile profile, - @NonNull InputContext freshnessAndEphemeralInputs, - @NonNull Callback> callback) { +@@ -33,6 +33,7 @@ public final class HomeModulesRankingHelper { + Profile profile, + InputContext freshnessAndEphemeralInputs, + Callback<@Nullable List> callback) { + if ((true)) return; HomeModulesRankingHelperJni.get() .getClassificationResult( diff --git a/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch b/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch index e6bf3a8e..dff27c1e 100644 --- a/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch +++ b/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch @@ -9,17 +9,17 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- .../ReaderModeToolbarButtonController.java | 6 +++--- .../ContextualPageActionController.java | 4 ++++ - .../chrome/browser/settings/MainSettings.java | 9 +------- + .../chrome/browser/settings/MainSettings.java | 9 +-------- .../segmentation_platform_config.cc | 1 + - ...tton_group_adaptive_toolbar_preference.xml | 9 ++++++++ + ...tton_group_adaptive_toolbar_preference.xml | 9 +++++++++ .../AdaptiveToolbarButtonController.java | 2 +- .../adaptive/AdaptiveToolbarFeatures.java | 2 +- .../adaptive/AdaptiveToolbarPrefs.java | 2 +- .../AdaptiveToolbarStatePredictor.java | 6 +++++- .../adaptive/AdaptiveToolbarStats.java | 2 ++ - ...oButtonGroupAdaptiveToolbarPreference.java | 21 +++++++++++-------- + ...oButtonGroupAdaptiveToolbarPreference.java | 19 ++++++++++++------- ...ve-button-in-top-toolbar-customization.inc | 1 + - 12 files changed, 41 insertions(+), 24 deletions(-) + 12 files changed, 41 insertions(+), 22 deletions(-) create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Restore-adaptive-button-in-top-toolbar-customization.inc diff --git a/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeToolbarButtonController.java b/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeToolbarButtonController.java @@ -35,16 +35,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/R /* iphCommandBuilder= */ null, AdaptiveToolbarButtonVariant.READER_MODE, - /* tooltipTextResId= */ Resources.ID_NULL, -- /* showHoverHighlight= */ false); +- /* showBackgroundHighlight= */ false); + /* tooltipTextResId= */ R.string.reader_mode_action_chip_label_simplify_page, -+ /* showHoverHighlight= */ true); ++ /* showBackgroundHighlight= */ true); } @Override diff --git a/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java b/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java --- a/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java -@@ -188,6 +188,10 @@ public class ContextualPageActionController { +@@ -202,6 +202,10 @@ public class ContextualPageActionController { && mTabSupplier.get().getId() == tab.getId(); if (!isSameTab) return; @@ -58,7 +58,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/segmentation_pl 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 -@@ -293,14 +293,7 @@ public class MainSettings extends ChromeBaseSettingsFragment +@@ -304,14 +304,7 @@ public class MainSettings extends ChromeBaseSettingsFragment getContext(), getProfile(), /* androidPermissionDelegate= */ null, @@ -88,9 +88,9 @@ diff --git a/chrome/browser/segmentation_platform/segmentation_platform_config.c diff --git a/chrome/browser/ui/android/toolbar/java/res/layout/radio_button_group_adaptive_toolbar_preference.xml b/chrome/browser/ui/android/toolbar/java/res/layout/radio_button_group_adaptive_toolbar_preference.xml --- a/chrome/browser/ui/android/toolbar/java/res/layout/radio_button_group_adaptive_toolbar_preference.xml +++ b/chrome/browser/ui/android/toolbar/java/res/layout/radio_button_group_adaptive_toolbar_preference.xml -@@ -90,6 +90,15 @@ found in the LICENSE file. - app:iconSrc="@drawable/summarize_auto" - app:primaryText="@string/adaptive_toolbar_button_preference_page_summary" /> +@@ -100,6 +100,15 @@ found in the LICENSE file. + app:iconSrc="@drawable/ic_open_in_new_white_24dp" + app:primaryText="@string/menu_open_in_product_default" /> + > callback) { @@ -173,10 +173,10 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStats.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStats.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStats.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStats.java -@@ -117,6 +117,8 @@ public class AdaptiveToolbarStats { - return AdaptiveToolbarRadioButtonState.READ_ALOUD; - case AdaptiveToolbarButtonVariant.PAGE_SUMMARY: +@@ -120,6 +120,8 @@ public class AdaptiveToolbarStats { return AdaptiveToolbarRadioButtonState.PAGE_SUMMARY; + case AdaptiveToolbarButtonVariant.OPEN_IN_BROWSER: + return AdaptiveToolbarRadioButtonState.OPEN_IN_BROWSER; + case AdaptiveToolbarButtonVariant.READER_MODE: + return AdaptiveToolbarRadioButtonState.UNKNOWN; case AdaptiveToolbarButtonVariant.AUTO: @@ -185,15 +185,15 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/settings/RadioButtonGroupAdaptiveToolbarPreference.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/settings/RadioButtonGroupAdaptiveToolbarPreference.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/settings/RadioButtonGroupAdaptiveToolbarPreference.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/settings/RadioButtonGroupAdaptiveToolbarPreference.java -@@ -36,6 +36,7 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends Preference - private @NonNull RadioButtonWithDescription mAddToBookmarksButton; +@@ -39,6 +39,7 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends Preference private @NonNull RadioButtonWithDescription mReadAloudButton; private @NonNull RadioButtonWithDescription mPageSummaryButton; + private @NonNull RadioButtonWithDescription mOpenInBrowserButton; + private @NonNull RadioButtonWithDescription mReaderMode; private @AdaptiveToolbarButtonVariant int mSelected; + private @AdaptiveToolbarButtonVariant int mAutoButtonCaption; private @Nullable AdaptiveToolbarStatePredictor mStatePredictor; - private boolean mCanUseVoiceSearch = true; -@@ -57,6 +58,7 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends Preference +@@ -63,6 +64,7 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends Preference mAutoButton = (RadioButtonWithDescription) holder.findViewById(R.id.adaptive_option_based_on_usage); @@ -201,7 +201,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow mNewTabButton = (RadioButtonWithDescription) holder.findViewById(R.id.adaptive_option_new_tab); mShareButton = (RadioButtonWithDescription) holder.findViewById(R.id.adaptive_option_share); -@@ -64,6 +66,7 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends Preference +@@ -70,6 +72,7 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends Preference (RadioButtonWithDescription) holder.findViewById(R.id.adaptive_option_voice_search); mTranslateButton = (RadioButtonWithDescription) holder.findViewById(R.id.adaptive_option_translate); @@ -209,52 +209,50 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow mAddToBookmarksButton = (RadioButtonWithDescription) holder.findViewById(R.id.adaptive_option_add_to_bookmarks); -@@ -71,6 +74,8 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends Preference +@@ -77,6 +80,8 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends Preference (RadioButtonWithDescription) holder.findViewById(R.id.adaptive_option_read_aloud); mPageSummaryButton = (RadioButtonWithDescription) holder.findViewById(R.id.adaptive_option_page_summary); + mReaderMode = + (RadioButtonWithDescription) holder.findViewById(R.id.adaptive_option_reader_mode); - initializeRadioButtonSelection(); - RecordUserAction.record("Mobile.AdaptiveToolbarButton.SettingsPage.Opened"); - } -@@ -101,15 +106,6 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends Preference - R.string - .adaptive_toolbar_button_preference_based_on_your_usage_description, - getButtonString(uiState.autoButtonCaption))); -- // Description to indicate these buttons only appear on small windows, -- // as large windows (tablets) show them elsewhere on UI (strip, omnibox). -- String basedOnWindowDesc = -- getContext() -- .getString( -- R.string -- .adaptive_toolbar_button_preference_based_on_window_width_description); -- mNewTabButton.setDescriptionText(basedOnWindowDesc); -- mAddToBookmarksButton.setDescriptionText(basedOnWindowDesc); - updateVoiceButtonVisibility(); - updateReadAloudButtonVisibility(); - updatePageSummaryButtonVisibility(); -@@ -136,6 +132,8 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends Preference - mSelected = AdaptiveToolbarButtonVariant.READ_ALOUD; - } else if (mPageSummaryButton.isChecked()) { + mOpenInBrowserButton = + (RadioButtonWithDescription) + holder.findViewById(R.id.adaptive_option_open_in_browser); +@@ -141,13 +146,6 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends Preference + mAutoButton.setDescriptionText( + getContext().getString(resId, getButtonString(uiState.autoButtonCaption))); + +- // Description to indicate these buttons only appear on small windows, +- // as large windows (tablets) show them elsewhere on UI (strip, omnibox). +- resId = R.string.adaptive_toolbar_button_preference_based_on_window_width_description; +- String basedOnWindowDesc = getContext().getString(resId); +- mNewTabButton.setDescriptionText(basedOnWindowDesc); +- mAddToBookmarksButton.setDescriptionText(basedOnWindowDesc); +- + updateVoiceButtonVisibility(); + updateReadAloudButtonVisibility(); + updatePageSummaryButtonVisibility(); +@@ -176,6 +174,8 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends Preference mSelected = AdaptiveToolbarButtonVariant.PAGE_SUMMARY; + } else if (mOpenInBrowserButton.isChecked()) { + mSelected = AdaptiveToolbarButtonVariant.OPEN_IN_BROWSER; + } else if (mReaderMode.isChecked()) { + mSelected = AdaptiveToolbarButtonVariant.READER_MODE; } else { assert false : "No matching setting found."; } -@@ -176,6 +174,8 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends Preference - return mReadAloudButton; - case AdaptiveToolbarButtonVariant.PAGE_SUMMARY: +@@ -218,6 +218,8 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends Preference return mPageSummaryButton; + case AdaptiveToolbarButtonVariant.OPEN_IN_BROWSER: + return mOpenInBrowserButton; + case AdaptiveToolbarButtonVariant.READER_MODE: + return mReaderMode; } return null; } -@@ -204,6 +204,9 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends Preference - case AdaptiveToolbarButtonVariant.PAGE_SUMMARY: - stringRes = R.string.adaptive_toolbar_button_preference_page_summary; +@@ -249,6 +251,9 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends Preference + case AdaptiveToolbarButtonVariant.OPEN_IN_BROWSER: + stringRes = R.string.menu_open_in_product_default; break; + case AdaptiveToolbarButtonVariant.READER_MODE: + stringRes = R.string.adaptive_toolbar_button_preference_page_summary; diff --git a/build/patches/Restore-chrome-password-store.patch b/build/patches/Restore-chrome-password-store.patch index 98fb3812..e276552d 100644 --- a/build/patches/Restore-chrome-password-store.patch +++ b/build/patches/Restore-chrome-password-store.patch @@ -59,7 +59,7 @@ diff --git a/chrome/browser/password_manager/android/login_db_deprecation_runner 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 -@@ -730,7 +730,7 @@ For more settings that use data to improve your Chrome experience, go to @@ -97,7 +97,7 @@ diff --git a/chrome/browser/ui/autofill/autofill_client_provider.cc b/chrome/bro 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 -@@ -772,6 +772,7 @@ BASE_FEATURE(kUseSettingsAddressEditorInPaymentsRequest, +@@ -822,6 +822,7 @@ BASE_FEATURE(kUseSettingsAddressEditorInPaymentsRequest, BASE_FEATURE(kAutofillDeepLinkAutofillOptions, "AutofillDeepLinkAutofillOptions", base::FEATURE_ENABLED_BY_DEFAULT); @@ -120,8 +120,8 @@ diff --git a/components/password_manager/core/browser/buildflags.gni b/component 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 -@@ -63,6 +63,7 @@ bool CanAccountStorageBeEnabled(const PrefService* pref_service, - // no way to enter the passphrase yet). +@@ -29,6 +29,7 @@ namespace { + bool IsUserEligibleForAccountStorage(const PrefService* pref_service, const syncer::SyncService* sync_service) { + if ((true)) return false; @@ -131,7 +131,7 @@ diff --git a/components/password_manager/core/browser/features/password_manager_ 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 -@@ -752,7 +752,7 @@ bool SyncPrefs::IsTypeSupportedInTransportMode(UserSelectableType type) { +@@ -771,7 +771,7 @@ bool SyncPrefs::IsTypeSupportedInTransportMode(UserSelectableType type) { kSeparateLocalAndAccountSearchEngines); #endif case UserSelectableType::kPasswords: diff --git a/build/patches/Restore-offline-indicator-v2-flag.patch b/build/patches/Restore-offline-indicator-v2-flag.patch index 448e2feb..aff26143 100644 --- a/build/patches/Restore-offline-indicator-v2-flag.patch +++ b/build/patches/Restore-offline-indicator-v2-flag.patch @@ -92,7 +92,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java -@@ -1244,7 +1244,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1270,7 +1270,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { private void initStatusIndicatorCoordinator(LayoutManagerImpl layoutManager) { // TODO(crbug.com/40112282): Disable on tablets for now as we need to do one or two extra // things for tablets. @@ -102,7 +102,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab return; } -@@ -1277,6 +1278,11 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1303,6 +1304,11 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { hubManager.setStatusIndicatorHeight(mStatusIndicatorHeight); }); @@ -117,7 +117,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -299,6 +299,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -304,6 +304,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kNotificationPermissionVariant, &kNotificationPermissionBottomSheet, &kNotificationTrampoline, @@ -128,7 +128,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -419,6 +419,7 @@ public abstract class ChromeFeatureList { +@@ -423,6 +423,7 @@ public abstract class ChromeFeatureList { public static final String NOTIFICATION_PERMISSION_BOTTOM_SHEET = "NotificationPermissionBottomSheet"; public static final String NOTIFICATION_TRAMPOLINE = "NotificationTrampoline"; diff --git a/build/patches/Revert-Permit-blocking-of-view-source.patch b/build/patches/Revert-Permit-blocking-of-view-source.patch index 1676aaa9..08a2d8c4 100644 --- a/build/patches/Revert-Permit-blocking-of-view-source.patch +++ b/build/patches/Revert-Permit-blocking-of-view-source.patch @@ -12,8 +12,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/components/policy/content/policy_blocklist_navigation_throttle.cc b/components/policy/content/policy_blocklist_navigation_throttle.cc --- a/components/policy/content/policy_blocklist_navigation_throttle.cc +++ b/components/policy/content/policy_blocklist_navigation_throttle.cc -@@ -64,6 +64,7 @@ PolicyBlocklistNavigationThrottle::~PolicyBlocklistNavigationThrottle() { - } +@@ -56,6 +56,7 @@ PolicyBlocklistNavigationThrottle::~PolicyBlocklistNavigationThrottle() = + default; bool PolicyBlocklistNavigationThrottle::IsBlockedViewSourceNavigation() { + if ((true)) return false; diff --git a/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch b/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch index 7ed0c9d1..1642ac49 100644 --- a/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch +++ b/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch @@ -21,7 +21,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -2095,6 +2095,10 @@ +@@ -2109,6 +2109,10 @@ "yangsharon@google.com", "alexmos@google.com", "creis@google.com" ], "expiry_milestone": 140 }, @@ -63,7 +63,7 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil diff --git a/content/browser/android/overscroll_controller_android.cc b/content/browser/android/overscroll_controller_android.cc --- a/content/browser/android/overscroll_controller_android.cc +++ b/content/browser/android/overscroll_controller_android.cc -@@ -62,14 +62,15 @@ std::unique_ptr CreateGlowEffect(OverscrollGlowClient* client) { +@@ -63,14 +63,15 @@ std::unique_ptr CreateGlowEffect(OverscrollGlowClient* client) { std::unique_ptr CreateRefreshEffect( ui::OverscrollRefreshHandler* overscroll_refresh_handler, float dpi_scale) { @@ -113,7 +113,7 @@ diff --git a/ui/android/overscroll_refresh.cc b/ui/android/overscroll_refresh.cc top_at_scroll_start_(true), bottom_at_scroll_start_(false), overflow_y_hidden_(false), -@@ -92,7 +93,7 @@ void OverscrollRefresh::OnOverscrolled(const cc::OverscrollBehavior& behavior) { +@@ -95,7 +96,7 @@ void OverscrollRefresh::OnOverscrolled(const cc::OverscrollBehavior& behavior, } // Pull-to-refresh. Check overscroll-behavior-y if (ydelta > 0) { @@ -134,7 +134,7 @@ diff --git a/ui/android/overscroll_refresh.h b/ui/android/overscroll_refresh.h OverscrollRefresh(const OverscrollRefresh&) = delete; OverscrollRefresh& operator=(const OverscrollRefresh&) = delete; -@@ -102,6 +102,7 @@ class UI_ANDROID_EXPORT OverscrollRefresh { +@@ -105,6 +105,7 @@ class UI_ANDROID_EXPORT OverscrollRefresh { bool scrolled_to_top_; bool scrolled_to_bottom_; diff --git a/build/patches/Revert-removal-of-execution-context-address-space.patch b/build/patches/Revert-removal-of-execution-context-address-space.patch index 4a5d171f..bbc49be9 100644 --- a/build/patches/Revert-removal-of-execution-context-address-space.patch +++ b/build/patches/Revert-removal-of-execution-context-address-space.patch @@ -28,7 +28,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html ...ed_service_worker_module_script_fetcher.cc | 1 + .../modulescript/module_script_loader_test.cc | 1 + .../worker_module_script_fetcher.cc | 3 +- - .../renderer/core/workers/dedicated_worker.cc | 10 ++++++ + .../renderer/core/workers/dedicated_worker.cc | 9 +++++ .../renderer/core/workers/dedicated_worker.h | 3 ++ .../workers/dedicated_worker_global_scope.cc | 9 ++++- .../workers/dedicated_worker_global_scope.h | 1 + @@ -53,7 +53,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../audio_worklet_global_scope_test.cc | 1 + .../webaudio/audio_worklet_thread_test.cc | 1 + .../worklet/worklet_thread_test_common.cc | 2 +- - 36 files changed, 188 insertions(+), 15 deletions(-) + 36 files changed, 187 insertions(+), 15 deletions(-) create mode 100644 cromite_flags/content/public/common/content_features_cc/Revert-removal-of-execution-context-address-space.inc diff --git a/cromite_flags/content/public/common/content_features_cc/Revert-removal-of-execution-context-address-space.inc b/cromite_flags/content/public/common/content_features_cc/Revert-removal-of-execution-context-address-space.inc @@ -171,7 +171,7 @@ diff --git a/third_party/blink/renderer/core/frame/policy_container.h b/third_pa diff --git a/third_party/blink/renderer/core/frame/web_frame_test.cc b/third_party/blink/renderer/core/frame/web_frame_test.cc --- a/third_party/blink/renderer/core/frame/web_frame_test.cc +++ b/third_party/blink/renderer/core/frame/web_frame_test.cc -@@ -8067,6 +8067,40 @@ TEST_F(WebFrameTest, PushStateStartsAndStops) { +@@ -8068,6 +8068,40 @@ TEST_F(WebFrameTest, PushStateStartsAndStops) { EXPECT_EQ(client.StopLoadingCount(), 2); } @@ -268,15 +268,7 @@ diff --git a/third_party/blink/renderer/core/loader/modulescript/worker_module_s diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third_party/blink/renderer/core/workers/dedicated_worker.cc --- a/third_party/blink/renderer/core/workers/dedicated_worker.cc +++ b/third_party/blink/renderer/core/workers/dedicated_worker.cc -@@ -371,6 +371,7 @@ void DedicatedWorker::OnHostCreated( - nullptr /* worker_main_script_load_params */, - network::mojom::ReferrerPolicy::kDefault, - Vector(), -+ std::nullopt /* response_address_space */, - String() /* source_code */, reject_coep_unsafe_none, - std::move(back_forward_cache_controller_host), - /*coep_reporting_observer=*/mojo::NullReceiver(), -@@ -435,6 +436,7 @@ void DedicatedWorker::OnScriptLoadStarted( +@@ -350,6 +350,7 @@ void DedicatedWorker::OnScriptLoadStarted( ContinueStart(script_request_url_, std::move(worker_main_script_load_params), network::mojom::ReferrerPolicy::kDefault, Vector(), @@ -284,7 +276,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third String() /* source_code */, RejectCoepUnsafeNone(false), std::move(back_forward_cache_controller_host), std::move(coep_reporting_observer), -@@ -509,6 +511,7 @@ void DedicatedWorker::OnFinished( +@@ -420,6 +421,7 @@ void DedicatedWorker::OnFinished( ? mojo::Clone(classic_script_loader_->GetContentSecurityPolicy() ->GetParsedPolicies()) : Vector(), @@ -292,7 +284,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third classic_script_loader_->SourceText(), RejectCoepUnsafeNone(false), std::move(back_forward_cache_controller_host), /*coep_reporting_observer=*/mojo::NullReceiver(), -@@ -527,6 +530,7 @@ void DedicatedWorker::ContinueStart( +@@ -438,6 +440,7 @@ void DedicatedWorker::ContinueStart( network::mojom::ReferrerPolicy referrer_policy, Vector response_content_security_policies, @@ -300,7 +292,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third const String& source_code, RejectCoepUnsafeNone reject_coep_unsafe_none, mojo::PendingRemote -@@ -553,6 +557,7 @@ void DedicatedWorker::ContinueStart( +@@ -464,6 +467,7 @@ void DedicatedWorker::ContinueStart( std::move(worker_main_script_load_params), std::move(referrer_policy), std::move(response_content_security_policies), @@ -308,7 +300,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third source_code, reject_coep_unsafe_none, std::move(back_forward_cache_controller_host), std::move(coep_reporting_observer), -@@ -563,6 +568,7 @@ void DedicatedWorker::ContinueStart( +@@ -474,6 +478,7 @@ void DedicatedWorker::ContinueStart( ContinueStartInternal( script_url, std::move(worker_main_script_load_params), std::move(referrer_policy), std::move(response_content_security_policies), @@ -316,7 +308,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third source_code, reject_coep_unsafe_none, std::move(back_forward_cache_controller_host), std::move(coep_reporting_observer), std::move(dip_reporting_observer)); -@@ -575,6 +581,7 @@ void DedicatedWorker::ContinueStartInternal( +@@ -486,6 +491,7 @@ void DedicatedWorker::ContinueStartInternal( network::mojom::ReferrerPolicy referrer_policy, Vector response_content_security_policies, @@ -324,7 +316,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third const String& source_code, RejectCoepUnsafeNone reject_coep_unsafe_none, mojo::PendingRemote -@@ -591,6 +598,7 @@ void DedicatedWorker::ContinueStartInternal( +@@ -502,6 +508,7 @@ void DedicatedWorker::ContinueStartInternal( CreateGlobalScopeCreationParams( script_url, referrer_policy, std::move(response_content_security_policies), @@ -332,7 +324,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third std::move(coep_reporting_observer), std::move(dip_reporting_observer)), std::move(worker_main_script_load_params), options_, script_url, -@@ -630,6 +638,7 @@ DedicatedWorker::CreateGlobalScopeCreationParams( +@@ -541,6 +548,7 @@ DedicatedWorker::CreateGlobalScopeCreationParams( network::mojom::ReferrerPolicy referrer_policy, Vector response_content_security_policies, @@ -340,7 +332,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third mojo::PendingReceiver coep_reporting_observer, mojo::PendingReceiver -@@ -682,6 +691,7 @@ DedicatedWorker::CreateGlobalScopeCreationParams( +@@ -593,6 +601,7 @@ DedicatedWorker::CreateGlobalScopeCreationParams( execution_context->GetSecurityOrigin(), execution_context->IsSecureContext(), execution_context->GetHttpsState(), MakeGarbageCollected(), CreateWebContentSettingsClient(), @@ -351,7 +343,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.h b/third_party/blink/renderer/core/workers/dedicated_worker.h --- a/third_party/blink/renderer/core/workers/dedicated_worker.h +++ b/third_party/blink/renderer/core/workers/dedicated_worker.h -@@ -157,6 +157,7 @@ class CORE_EXPORT DedicatedWorker final +@@ -156,6 +156,7 @@ class CORE_EXPORT DedicatedWorker final network::mojom::ReferrerPolicy, Vector response_content_security_policies, @@ -359,7 +351,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.h b/third_ const String& source_code, RejectCoepUnsafeNone reject_coep_unsafe_none, mojo::PendingRemote -@@ -172,6 +173,7 @@ class CORE_EXPORT DedicatedWorker final +@@ -171,6 +172,7 @@ class CORE_EXPORT DedicatedWorker final network::mojom::ReferrerPolicy, Vector response_content_security_policies, @@ -367,7 +359,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.h b/third_ const String& source_code, RejectCoepUnsafeNone reject_coep_unsafe_none, mojo::PendingRemote -@@ -185,6 +187,7 @@ class CORE_EXPORT DedicatedWorker final +@@ -184,6 +186,7 @@ class CORE_EXPORT DedicatedWorker final network::mojom::ReferrerPolicy, Vector response_content_security_policies, @@ -378,7 +370,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.h b/third_ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.cc b/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.cc --- a/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.cc +++ b/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.cc -@@ -92,6 +92,8 @@ DedicatedWorkerGlobalScope* DedicatedWorkerGlobalScope::Create( +@@ -91,6 +91,8 @@ DedicatedWorkerGlobalScope* DedicatedWorkerGlobalScope::Create( KURL response_script_url = creation_params->script_url; network::mojom::ReferrerPolicy response_referrer_policy = creation_params->referrer_policy; @@ -387,7 +379,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_sco const bool parent_cross_origin_isolated_capability = creation_params->parent_cross_origin_isolated_capability; const bool parent_is_isolated_context = -@@ -120,7 +122,7 @@ DedicatedWorkerGlobalScope* DedicatedWorkerGlobalScope::Create( +@@ -119,7 +121,7 @@ DedicatedWorkerGlobalScope* DedicatedWorkerGlobalScope::Create( // Pass dummy origin trial tokens here as it is already set to outside's // origin trial tokens in DedicatedWorkerGlobalScope's constructor. global_scope->Initialize(response_script_url, response_referrer_policy, @@ -396,7 +388,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_sco nullptr /* response_origin_trial_tokens */); return global_scope; } else { -@@ -247,6 +249,7 @@ const AtomicString& DedicatedWorkerGlobalScope::InterfaceName() const { +@@ -246,6 +248,7 @@ const AtomicString& DedicatedWorkerGlobalScope::InterfaceName() const { void DedicatedWorkerGlobalScope::Initialize( const KURL& response_url, network::mojom::ReferrerPolicy response_referrer_policy, @@ -404,7 +396,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_sco Vector response_csp, const Vector* /* response_origin_trial_tokens */) { TRACE_EVENT("blink.worker", "DedicatedWorkerGlobalScope::Initialize", -@@ -262,6 +265,9 @@ void DedicatedWorkerGlobalScope::Initialize( +@@ -261,6 +264,9 @@ void DedicatedWorkerGlobalScope::Initialize( // parsing the `Referrer-Policy` header of response." SetReferrerPolicy(response_referrer_policy); @@ -414,7 +406,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_sco // The following is the Content-Security-Policy part of "Initialize worker // global scope's policy container" // https://html.spec.whatwg.org/#initialize-worker-policy-container -@@ -501,6 +507,7 @@ void DedicatedWorkerGlobalScope::DidFetchClassicScript( +@@ -493,6 +499,7 @@ void DedicatedWorkerGlobalScope::DidFetchClassicScript( // Pass dummy origin trial tokens here as it is already set to outside's // origin trial tokens in DedicatedWorkerGlobalScope's constructor. Initialize(classic_script_loader->ResponseURL(), response_referrer_policy, @@ -799,7 +791,7 @@ diff --git a/third_party/blink/renderer/modules/exported/web_embedded_worker_imp diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc --- a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc +++ b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc -@@ -475,6 +475,7 @@ void ServiceWorkerGlobalScope::DidFetchClassicScript( +@@ -473,6 +473,7 @@ void ServiceWorkerGlobalScope::DidFetchClassicScript( // is set, and with the following callback steps given evaluationStatus:" RunClassicScript( classic_script_loader->ResponseURL(), referrer_policy, @@ -807,7 +799,7 @@ diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_gl classic_script_loader->GetContentSecurityPolicy() ? mojo::Clone(classic_script_loader->GetContentSecurityPolicy() ->GetParsedPolicies()) -@@ -488,6 +489,7 @@ void ServiceWorkerGlobalScope::DidFetchClassicScript( +@@ -486,6 +487,7 @@ void ServiceWorkerGlobalScope::DidFetchClassicScript( void ServiceWorkerGlobalScope::Initialize( const KURL& response_url, network::mojom::ReferrerPolicy response_referrer_policy, @@ -815,7 +807,7 @@ diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_gl Vector response_csp, const Vector* response_origin_trial_tokens) { // Step 4.5. "Set workerGlobalScope's url to serviceWorker's script url." -@@ -501,6 +503,9 @@ void ServiceWorkerGlobalScope::Initialize( +@@ -499,6 +501,9 @@ void ServiceWorkerGlobalScope::Initialize( // script resource's referrer policy." SetReferrerPolicy(response_referrer_policy); @@ -825,7 +817,7 @@ diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_gl // This is quoted from the "Content Security Policy" algorithm in the service // workers spec: // "Whenever a user agent invokes Run Service Worker algorithm with a service -@@ -511,6 +516,9 @@ void ServiceWorkerGlobalScope::Initialize( +@@ -509,6 +514,9 @@ void ServiceWorkerGlobalScope::Initialize( // - If serviceWorker's script resource was delivered with a // Content-Security-Policy-Report-Only HTTP header containing the value // policy, the user agent must monitor policy for serviceWorker." @@ -835,7 +827,7 @@ diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_gl InitContentSecurityPolicyFromVector(std::move(response_csp)); BindContentSecurityPolicyToExecutionContext(); -@@ -551,26 +559,27 @@ void ServiceWorkerGlobalScope::LoadAndRunInstalledClassicScript( +@@ -549,26 +557,27 @@ void ServiceWorkerGlobalScope::LoadAndRunInstalledClassicScript( kDoNotSupportReferrerPolicyLegacyKeywords, &referrer_policy); } diff --git a/build/patches/Revert-remove-allowscript-content-setting-secondary-url.patch b/build/patches/Revert-remove-allowscript-content-setting-secondary-url.patch index 3dfb7876..da72aadd 100644 --- a/build/patches/Revert-remove-allowscript-content-setting-secondary-url.patch +++ b/build/patches/Revert-remove-allowscript-content-setting-secondary-url.patch @@ -211,7 +211,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc -@@ -4021,19 +4021,6 @@ bool LocalFrame::IsSameOrigin() { +@@ -4051,19 +4051,6 @@ bool LocalFrame::IsSameOrigin() { return security_origin->IsSameOriginWith(top_security_origin); } @@ -234,7 +234,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h --- a/third_party/blink/renderer/core/frame/local_frame.h +++ b/third_party/blink/renderer/core/frame/local_frame.h -@@ -919,12 +919,6 @@ class CORE_EXPORT LocalFrame final +@@ -928,12 +928,6 @@ class CORE_EXPORT LocalFrame final return *v8_local_compile_hints_producer_; } @@ -264,7 +264,7 @@ diff --git a/third_party/blink/renderer/core/html/html_meta_element.cc b/third_p diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.cc b/third_party/blink/renderer/core/loader/base_fetch_context.cc --- a/third_party/blink/renderer/core/loader/base_fetch_context.cc +++ b/third_party/blink/renderer/core/loader/base_fetch_context.cc -@@ -258,7 +258,7 @@ BaseFetchContext::CanRequestInternal( +@@ -270,7 +270,7 @@ BaseFetchContext::CanRequestInternal( } if (type == ResourceType::kScript) { @@ -276,7 +276,7 @@ diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.cc b/thir diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.h b/third_party/blink/renderer/core/loader/base_fetch_context.h --- a/third_party/blink/renderer/core/loader/base_fetch_context.h +++ b/third_party/blink/renderer/core/loader/base_fetch_context.h -@@ -105,7 +105,7 @@ class CORE_EXPORT BaseFetchContext : public FetchContext { +@@ -107,7 +107,7 @@ class CORE_EXPORT BaseFetchContext : public FetchContext { : fetcher_properties_(properties), console_logger_(logger) {} // Used for security checks. @@ -288,7 +288,7 @@ diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.h b/third diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/third_party/blink/renderer/core/loader/frame_fetch_context.cc --- a/third_party/blink/renderer/core/loader/frame_fetch_context.cc +++ b/third_party/blink/renderer/core/loader/frame_fetch_context.cc -@@ -514,7 +514,8 @@ void FrameFetchContext::AddClientHintsIfNecessary( +@@ -516,7 +516,8 @@ void FrameFetchContext::AddClientHintsIfNecessary( // Check if |url| is allowed to run JavaScript. If not, client hints are not // attached to the requests that initiate on the render side. @@ -298,7 +298,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/thi return; } -@@ -968,15 +969,26 @@ void FrameFetchContext::SetFirstPartyCookie(ResourceRequest& request) { +@@ -983,15 +984,26 @@ void FrameFetchContext::SetFirstPartyCookie(ResourceRequest& request) { } } @@ -354,7 +354,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.h b/thir static ResourceFetcher* CreateFetcherForCommittedDocument(DocumentLoader&, Document&); FrameFetchContext(DocumentLoader& document_loader, -@@ -169,7 +180,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext, +@@ -172,7 +183,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext, // BaseFetchContext overrides: net::SiteForCookies GetSiteForCookies() const override; SubresourceFilter* GetSubresourceFilter() const override; diff --git a/build/patches/Samsung-Note-9-SDK27-crazylinker-workaround.patch b/build/patches/Samsung-Note-9-SDK27-crazylinker-workaround.patch index 7bf0b3d1..5ffe1049 100644 --- a/build/patches/Samsung-Note-9-SDK27-crazylinker-workaround.patch +++ b/build/patches/Samsung-Note-9-SDK27-crazylinker-workaround.patch @@ -19,7 +19,7 @@ diff --git a/base/android/java/src/org/chromium/base/library_loader/LibraryLoade import javax.annotation.concurrent.GuardedBy; -@@ -276,7 +277,21 @@ public class LibraryLoader { +@@ -272,7 +273,21 @@ public class LibraryLoader { */ public void initInAppZygote() { assert !mInitDone; diff --git a/build/patches/Show-NTP-at-startup.patch b/build/patches/Show-NTP-at-startup.patch index 81db6616..deaec8e9 100644 --- a/build/patches/Show-NTP-at-startup.patch +++ b/build/patches/Show-NTP-at-startup.patch @@ -98,7 +98,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeInactivit diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -2460,6 +2460,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements MismatchedIn +@@ -2588,6 +2588,8 @@ public class ChromeTabbedActivity extends ChromeActivity { mInactivityTracker = new ChromeInactivityTracker( ChromePreferenceKeys.TABBED_ACTIVITY_LAST_BACKGROUNDED_TIME_MS_PREF); @@ -153,7 +153,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToC diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp --- a/chrome/app/settings_strings.grdp +++ b/chrome/app/settings_strings.grdp -@@ -1079,7 +1079,7 @@ +@@ -1107,7 +1107,7 @@ Open a specific page or set of pages @@ -165,7 +165,7 @@ diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -335,6 +335,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -342,6 +342,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kSearchInCCT, &kSearchInCCTAlternateTapHandling, &kSearchResumptionModuleAndroid, @@ -214,7 +214,7 @@ new file mode 100644 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 -@@ -813,6 +813,8 @@ public final class ChromePreferenceKeys { +@@ -837,6 +837,8 @@ public final class ChromePreferenceKeys { public static final String TABBED_ACTIVITY_LAST_BACKGROUNDED_TIME_MS_PREF = "ChromeTabbedActivity.BackgroundTimeMs"; @@ -363,7 +363,7 @@ new file mode 100644 diff --git a/chrome/browser/ui/startup/startup_browser_creator_impl.cc b/chrome/browser/ui/startup/startup_browser_creator_impl.cc --- a/chrome/browser/ui/startup/startup_browser_creator_impl.cc +++ b/chrome/browser/ui/startup/startup_browser_creator_impl.cc -@@ -536,6 +536,14 @@ StartupBrowserCreatorImpl::DetermineStartupTabs( +@@ -552,6 +552,14 @@ StartupBrowserCreatorImpl::DetermineStartupTabs( AppendTabs(provider.GetNewTabPageTabs(*command_line_, profile_), &tabs); } diff --git a/build/patches/Show-site-settings-for-cookies-javascript-and-ads.patch b/build/patches/Show-site-settings-for-cookies-javascript-and-ads.patch index 423b8b1a..529e4d40 100644 --- a/build/patches/Show-site-settings-for-cookies-javascript-and-ads.patch +++ b/build/patches/Show-site-settings-for-cookies-javascript-and-ads.patch @@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java -@@ -601,6 +601,8 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -615,6 +615,8 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment setUpSoundPreference(preference); } else if (type == ContentSettingsType.JAVASCRIPT) { setUpJavascriptPreference(preference); @@ -24,7 +24,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } else if (type == ContentSettingsType.GEOLOCATION) { setUpLocationPreference(preference); } else if (type == ContentSettingsType.NOTIFICATIONS) { -@@ -1105,18 +1107,8 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1195,18 +1197,8 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment private void setUpAdsInformationalBanner() { // Add the informational banner which shows at the top of the UI if ad blocking is // activated on this site. @@ -43,7 +43,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } @RequiresNonNull({"mSite"}) -@@ -1323,12 +1315,13 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1413,12 +1405,13 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment @ContentSettingValues @Nullable Integer currentValue = mSite.getContentSetting(browserContextHandle, ContentSettingsType.JAVASCRIPT); @@ -63,7 +63,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } // Not possible to embargo JAVASCRIPT. setupContentSettingsPreference( -@@ -1338,6 +1331,29 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1428,6 +1421,29 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment isOneTime(ContentSettingsType.JAVASCRIPT)); } @@ -93,7 +93,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c /** * Updates the ads list preference based on whether the site is a candidate for blocking. This * has some custom behavior. -@@ -1357,9 +1373,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1447,9 +1463,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment } // If the ad blocker is activated, then this site will have ads blocked unless there is an // explicit permission disallowing the blocking. @@ -107,7 +107,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/Website.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java -@@ -286,7 +286,19 @@ public final class Website implements WebsiteEntry { +@@ -291,7 +291,19 @@ public final class Website implements WebsiteEntry { new ContentSettingException( ContentSettingsType.ADS, getAddress().getOrigin(), diff --git a/build/patches/Site-setting-for-images.patch b/build/patches/Site-setting-for-images.patch index c2669e2e..3fbfc4b6 100644 --- a/build/patches/Site-setting-for-images.patch +++ b/build/patches/Site-setting-for-images.patch @@ -323,7 +323,7 @@ diff --git a/third_party/blink/public/platform/web_content_settings_client.h b/t diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc -@@ -4008,19 +4008,6 @@ bool LocalFrame::IsSameOrigin() { +@@ -4038,19 +4038,6 @@ bool LocalFrame::IsSameOrigin() { return security_origin->IsSameOriginWith(top_security_origin); } @@ -346,7 +346,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h --- a/third_party/blink/renderer/core/frame/local_frame.h +++ b/third_party/blink/renderer/core/frame/local_frame.h -@@ -918,12 +918,6 @@ class CORE_EXPORT LocalFrame final +@@ -927,12 +927,6 @@ class CORE_EXPORT LocalFrame final return *v8_local_compile_hints_producer_; } @@ -381,7 +381,7 @@ diff --git a/third_party/blink/renderer/core/html/image_document.cc b/third_part diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/third_party/blink/renderer/core/loader/frame_fetch_context.cc --- a/third_party/blink/renderer/core/loader/frame_fetch_context.cc +++ b/third_party/blink/renderer/core/loader/frame_fetch_context.cc -@@ -312,6 +312,7 @@ ResourceFetcher* FrameFetchContext::CreateFetcherForCommittedDocument( +@@ -314,6 +314,7 @@ ResourceFetcher* FrameFetchContext::CreateFetcherForCommittedDocument( fetcher->SetResourceLoadObserver( MakeGarbageCollected( loader, document, fetcher->GetProperties())); @@ -389,7 +389,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/thi fetcher->SetAutoLoadImages( frame->GetSettings()->GetLoadsImagesAutomatically()); fetcher->SetEarlyHintsPreloadedResources( -@@ -475,16 +476,13 @@ void FrameFetchContext::AddResourceTiming( +@@ -477,16 +478,13 @@ void FrameFetchContext::AddResourceTiming( ->AddResourceTiming(std::move(info), initiator_type); } @@ -414,7 +414,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 -@@ -94,7 +94,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext, +@@ -95,7 +95,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext, void AddResourceTiming(mojom::blink::ResourceTimingInfoPtr, const AtomicString& initiator_type) override; @@ -426,7 +426,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.h b/thir diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/renderer/core/page/page.cc --- a/third_party/blink/renderer/core/page/page.cc +++ b/third_party/blink/renderer/core/page/page.cc -@@ -1060,9 +1060,8 @@ void Page::SettingsChanged(ChangeType change_type) { +@@ -1070,9 +1070,8 @@ void Page::SettingsChanged(ChangeType change_type) { for (Frame* frame = MainFrame(); frame; frame = frame->Tree().TraverseNext()) { if (auto* local_frame = DynamicTo(frame)) { @@ -453,7 +453,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/fetch_context.h b/ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc --- a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc +++ b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc -@@ -819,6 +819,7 @@ ResourceFetcher::ResourceFetcher(const ResourceFetcherInit& init) +@@ -820,6 +820,7 @@ ResourceFetcher::ResourceFetcher(const ResourceFetcherInit& init) blob_registry_remote_(init.context_lifecycle_notifier), context_lifecycle_notifier_(init.context_lifecycle_notifier), auto_load_images_(true), @@ -461,7 +461,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c allow_stale_resources_(false), image_fetched_(false), transparent_image_optimization_enabled_(base::FeatureList::IsEnabled( -@@ -2025,7 +2026,7 @@ bool ResourceFetcher::IsImageResourceDisallowedToBeReused( +@@ -2026,7 +2027,7 @@ bool ResourceFetcher::IsImageResourceDisallowedToBeReused( return false; } @@ -470,7 +470,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c } ResourceFetcher::RevalidationPolicy -@@ -2270,8 +2271,20 @@ void ResourceFetcher::SetAutoLoadImages(bool enable) { +@@ -2271,8 +2272,20 @@ void ResourceFetcher::SetAutoLoadImages(bool enable) { ReloadImagesIfNotDeferred(); } @@ -503,7 +503,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h FetchContext& Context() const; void ClearContext(); -@@ -700,6 +701,7 @@ class PLATFORM_EXPORT ResourceFetcher +@@ -705,6 +706,7 @@ class PLATFORM_EXPORT ResourceFetcher bool is_in_request_resource_ = false; bool auto_load_images_ : 1; diff --git a/build/patches/TEMP-Add-a-log-to-track-strange-behavior.patch b/build/patches/TEMP-Add-a-log-to-track-strange-behavior.patch index bfe5e2f9..ce974233 100644 --- a/build/patches/TEMP-Add-a-log-to-track-strange-behavior.patch +++ b/build/patches/TEMP-Add-a-log-to-track-strange-behavior.patch @@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc --- a/net/spdy/spdy_session.cc +++ b/net/spdy/spdy_session.cc -@@ -2980,6 +2980,7 @@ void SpdySession::OnHeaders(spdy::SpdyStreamId stream_id, +@@ -2997,6 +2997,7 @@ void SpdySession::OnHeaders(spdy::SpdyStreamId stream_id, if (it == active_streams_.end()) { // NOTE: it may just be that the stream was cancelled. LOG(WARNING) << "Received HEADERS for invalid stream " << stream_id; diff --git a/build/patches/Temp-disable-experimental-web-platform-features.patch b/build/patches/Temp-disable-experimental-web-platform-features.patch index 1c8acb50..243489ec 100644 --- a/build/patches/Temp-disable-experimental-web-platform-features.patch +++ b/build/patches/Temp-disable-experimental-web-platform-features.patch @@ -9,7 +9,7 @@ Subject: Temp disable experimental-web-platform-features diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -4669,10 +4669,10 @@ const FeatureEntry kFeatureEntries[] = { +@@ -4660,10 +4660,10 @@ const FeatureEntry kFeatureEntries[] = { {"enable-fontations-backend", flag_descriptions::kFontationsFontBackendName, flag_descriptions::kFontationsFontBackendDescription, kOsAll, FEATURE_VALUE_TYPE(blink::features::kFontationsFontBackend)}, diff --git a/build/patches/Temporarily-disable-Tab-Group-Sync-Android.patch b/build/patches/Temporarily-disable-Tab-Group-Sync-Android.patch index dd746697..4afb1874 100644 --- a/build/patches/Temporarily-disable-Tab-Group-Sync-Android.patch +++ b/build/patches/Temporarily-disable-Tab-Group-Sync-Android.patch @@ -10,19 +10,19 @@ Subject: Temporarily disable Tab Group Sync Android 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 -@@ -848,7 +848,7 @@ public abstract class ChromeFeatureList { +@@ -841,7 +841,7 @@ public abstract class ChromeFeatureList { public static final CachedFlag sTabClosureMethodRefactor = newCachedFlag(TAB_CLOSURE_METHOD_REFACTOR, false); public static final CachedFlag sTabGroupPaneAndroid = - newCachedFlag(TAB_GROUP_PANE_ANDROID, /* defaultValue= */ true); + newCachedFlag(TAB_GROUP_PANE_ANDROID, /* defaultValue= */ false); - public static final CachedFlag sTabResumptionModuleAndroid = + public static final CachedFlag sTabStateFlatBuffer = newCachedFlag( - TAB_RESUMPTION_MODULE_ANDROID, + TAB_STATE_FLAT_BUFFER, diff --git a/components/saved_tab_groups/public/features.cc b/components/saved_tab_groups/public/features.cc --- a/components/saved_tab_groups/public/features.cc +++ b/components/saved_tab_groups/public/features.cc -@@ -170,4 +170,7 @@ base::TimeDelta GetOriginatingSavedGroupCleanUpTimeInterval() { +@@ -140,4 +140,7 @@ base::TimeDelta GetOriginatingSavedGroupCleanUpTimeInterval() { return base::Seconds(time_in_seconds); } diff --git a/build/patches/Timezone-customization.patch b/build/patches/Timezone-customization.patch index b926200b..5090100e 100644 --- a/build/patches/Timezone-customization.patch +++ b/build/patches/Timezone-customization.patch @@ -50,7 +50,7 @@ Require: Content-settings-infrastructure.patch 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 -@@ -100,6 +100,7 @@ android_library("java") { +@@ -103,6 +103,7 @@ android_library("java") { "java/src/org/chromium/components/browser_ui/site_settings/WebsitePreference.java", "java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java", "java/src/org/chromium/components/browser_ui/site_settings/WebsiteRowPreference.java", @@ -401,7 +401,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c @NativeMethods public interface Natives { boolean isNotificationEmbargoedForOrigin( -@@ -650,5 +658,7 @@ public class WebsitePreferenceBridge { +@@ -647,5 +655,7 @@ public class WebsitePreferenceBridge { String toDomainWildcardPattern(String pattern); String toHostOnlyPattern(String pattern); @@ -565,7 +565,7 @@ new file mode 100644 diff --git a/components/browser_ui/site_settings/android/website_preference_bridge.cc b/components/browser_ui/site_settings/android/website_preference_bridge.cc --- a/components/browser_ui/site_settings/android/website_preference_bridge.cc +++ b/components/browser_ui/site_settings/android/website_preference_bridge.cc -@@ -1123,3 +1123,19 @@ JNI_WebsitePreferenceBridge_ToHostOnlyPattern( +@@ -1122,3 +1122,19 @@ JNI_WebsitePreferenceBridge_ToHostOnlyPattern( ContentSettingsPattern::FromString(pattern_string)); return ConvertUTF8ToJavaString(env, host_only_pattern.ToString()); } @@ -681,7 +681,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov } PrefProvider::~PrefProvider() { -@@ -464,4 +470,14 @@ void PrefProvider::SetClockForTesting(const base::Clock* clock) { +@@ -465,4 +471,14 @@ void PrefProvider::SetClockForTesting(const base::Clock* clock) { } } @@ -784,7 +784,7 @@ diff --git a/components/content_settings/core/common/content_settings.h b/compon diff --git a/components/content_settings/core/common/content_settings.mojom b/components/content_settings/core/common/content_settings.mojom --- a/components/content_settings/core/common/content_settings.mojom +++ b/components/content_settings/core/common/content_settings.mojom -@@ -93,4 +93,5 @@ struct ContentSettingPatternSource { +@@ -94,4 +94,5 @@ struct ContentSettingPatternSource { struct RendererContentSettingRules { array settings_rules; array mixed_content_rules; @@ -793,7 +793,7 @@ diff --git a/components/content_settings/core/common/content_settings.mojom b/co diff --git a/components/content_settings/core/common/content_settings_mojom_traits.cc b/components/content_settings/core/common/content_settings_mojom_traits.cc --- a/components/content_settings/core/common/content_settings_mojom_traits.cc +++ b/components/content_settings/core/common/content_settings_mojom_traits.cc -@@ -134,7 +134,8 @@ bool StructTraitssettings_rules) && @@ -806,7 +806,7 @@ diff --git a/components/content_settings/core/common/content_settings_mojom_trai diff --git a/components/content_settings/core/common/content_settings_mojom_traits.h b/components/content_settings/core/common/content_settings_mojom_traits.h --- a/components/content_settings/core/common/content_settings_mojom_traits.h +++ b/components/content_settings/core/common/content_settings_mojom_traits.h -@@ -209,6 +209,11 @@ struct StructTraits< +@@ -214,6 +214,11 @@ struct StructTraits< return r.mixed_content_rules; } diff --git a/build/patches/Use-BoringSSL-for-RandBytes.patch b/build/patches/Use-BoringSSL-for-RandBytes.patch index 8acc3793..834f1838 100644 --- a/build/patches/Use-BoringSSL-for-RandBytes.patch +++ b/build/patches/Use-BoringSSL-for-RandBytes.patch @@ -24,7 +24,7 @@ diff --git a/base/rand_util_fuchsia.cc b/base/rand_util_fuchsia.cc diff --git a/base/rand_util_posix.cc b/base/rand_util_posix.cc --- a/base/rand_util_posix.cc +++ b/base/rand_util_posix.cc -@@ -137,7 +137,7 @@ std::atomic g_use_boringssl; +@@ -110,7 +110,7 @@ std::atomic g_use_boringssl; BASE_FEATURE(kUseBoringSSLForRandBytes, "UseBoringSSLForRandBytes", diff --git a/build/patches/Use-browser-navigation-handler.patch b/build/patches/Use-browser-navigation-handler.patch index 3b627e80..b910a46f 100644 --- a/build/patches/Use-browser-navigation-handler.patch +++ b/build/patches/Use-browser-navigation-handler.patch @@ -227,7 +227,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/Side diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java -@@ -73,6 +73,7 @@ import org.chromium.chrome.browser.firstrun.FirstRunStatus; +@@ -80,6 +80,7 @@ import org.chromium.chrome.browser.firstrun.FirstRunStatus; import org.chromium.chrome.browser.flags.ActivityType; import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.flags.ChromeSwitches; @@ -235,7 +235,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab import org.chromium.chrome.browser.fullscreen.BrowserControlsManager; import org.chromium.chrome.browser.fullscreen.FullscreenManager; import org.chromium.chrome.browser.gesturenav.BackActionDelegate; -@@ -722,7 +723,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -751,7 +752,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { @Override public void onInflationComplete() { mCoordinator = mActivity.findViewById(R.id.coordinator); diff --git a/build/patches/Use-list-mode-for-tab-switcher.patch b/build/patches/Use-list-mode-for-tab-switcher.patch index 2810598b..973d8f9a 100644 --- a/build/patches/Use-list-mode-for-tab-switcher.patch +++ b/build/patches/Use-list-mode-for-tab-switcher.patch @@ -21,15 +21,15 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiFeatureUtilities.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiFeatureUtilities.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiFeatureUtilities.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiFeatureUtilities.java -@@ -9,6 +9,7 @@ import android.os.Build; - import org.chromium.base.ResettersForTesting; +@@ -8,6 +8,7 @@ import android.os.Build; + import org.chromium.base.SysUtils; import org.chromium.chrome.browser.flags.ChromeFeatureList; +import org.chromium.chrome.browser.flags.cromite.sTabSwitcherListMode; import org.chromium.ui.util.XrUtils; import java.util.Locale; -@@ -35,11 +36,7 @@ public class TabUiFeatureUtilities { +@@ -19,11 +20,7 @@ public class TabUiFeatureUtilities { /** Returns whether the Grid Tab Switcher UI should use list mode. */ public static boolean shouldUseListMode() { @@ -113,7 +113,7 @@ new file mode 100644 diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java -@@ -50,6 +50,7 @@ import org.chromium.base.MathUtils; +@@ -53,6 +53,7 @@ import org.chromium.base.MathUtils; import org.chromium.base.TraceEvent; import org.chromium.base.supplier.ObservableSupplier; import org.chromium.chrome.browser.omnibox.LocationBar; @@ -121,7 +121,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.omnibox.LocationBarCoordinator; import org.chromium.chrome.browser.omnibox.NewTabPageDelegate; import org.chromium.chrome.browser.omnibox.SearchEngineUtils; -@@ -1811,7 +1812,7 @@ public class ToolbarPhone extends ToolbarLayout +@@ -1805,7 +1806,7 @@ public class ToolbarPhone extends ToolbarLayout // On entering the tab switcher, set the focusability of the url bar to be false. This will // occur at the start of the enter event, and will later be reset to true upon finishing the // exit event. @@ -130,7 +130,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow mLocationBar.setUrlBarFocusable(false); } -@@ -2004,7 +2005,8 @@ public class ToolbarPhone extends ToolbarLayout +@@ -1998,7 +1999,8 @@ public class ToolbarPhone extends ToolbarLayout updateLocationBarForNtp(mVisualState, urlHasFocus()); diff --git a/build/patches/User-agent-customization.patch b/build/patches/User-agent-customization.patch index 09b28b27..5cba73f1 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 -@@ -208,7 +208,7 @@ base::WeakPtr GetAsyncCheckTracker( +@@ -217,7 +217,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 -@@ -651,4 +651,6 @@ chrome_java_resources = [ +@@ -653,4 +653,6 @@ chrome_java_resources = [ "java/res/xml/search_widget_info.xml", "java/res/xml/tracing_preferences.xml", "java/res/xml/unified_account_settings_preferences.xml", @@ -269,7 +269,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 -@@ -2550,6 +2550,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -2575,6 +2575,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity TabUtils.switchUserAgent( currentTab, usingDesktopUserAgent, @@ -582,7 +582,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. -@@ -2082,9 +2088,6 @@ class TabImpl implements Tab { +@@ -2085,9 +2091,6 @@ class TabImpl implements Tab { } if (mWebContents != null) { @@ -592,7 +592,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav mWebContents.getNavigationController().loadIfNecessary(); } mIsBeingRestored = true; -@@ -2461,6 +2464,11 @@ class TabImpl implements Tab { +@@ -2471,6 +2474,11 @@ class TabImpl implements Tab { url = webContents.getVisibleUrl(); } @@ -604,7 +604,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav // Do not override UA if there is a tab level setting. if (tabUserAgent != TabUserAgent.DEFAULT) { recordHistogramUseDesktopUserAgent(currentRequestDesktopSite); -@@ -2506,7 +2514,7 @@ class TabImpl implements Tab { +@@ -2516,7 +2524,7 @@ class TabImpl implements Tab { } boolean usingDesktopUserAgent = getWebContents().getNavigationController().getUseDesktopUserAgent(); @@ -613,7 +613,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. */ -@@ -2570,6 +2578,54 @@ class TabImpl implements Tab { +@@ -2580,6 +2588,54 @@ class TabImpl implements Tab { } } @@ -699,8 +699,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.ja diff --git a/chrome/browser/android/content/content_utils.cc b/chrome/browser/android/content/content_utils.cc --- a/chrome/browser/android/content/content_utils.cc +++ b/chrome/browser/android/content/content_utils.cc -@@ -9,9 +9,23 @@ - #include "content/public/common/user_agent.h" +@@ -8,9 +8,23 @@ + #include "content/public/browser/web_contents.h" #include "third_party/blink/public/common/user_agent/user_agent_metadata.h" +#include "base/android/jni_android.h" @@ -723,7 +723,7 @@ diff --git a/chrome/browser/android/content/content_utils.cc b/chrome/browser/an static std::string JNI_ContentUtils_GetBrowserUserAgent(JNIEnv* env) { return embedder_support::GetUserAgent(); } -@@ -20,6 +34,22 @@ static void JNI_ContentUtils_SetUserAgentOverride( +@@ -19,6 +33,22 @@ static void JNI_ContentUtils_SetUserAgentOverride( JNIEnv* env, const base::android::JavaParamRef& jweb_contents, jboolean j_override_in_new_tabs) { @@ -747,11 +747,11 @@ diff --git a/chrome/browser/android/content/content_utils.cc b/chrome/browser/an const blink::UserAgentMetadata metadata = @@ -27,7 +57,7 @@ static void JNI_ContentUtils_SetUserAgentOverride( - blink::UserAgentOverride spoofed_ua; - spoofed_ua.ua_string_override = content::BuildUserAgentFromOSAndProduct( -- kLinuxInfoStr, embedder_support::GetProductAndVersion()); -+ kLinuxInfoStr, embedder_support::GetProductAndVersion(embedder_support::UserAgentReductionEnterprisePolicyState::kForceEnabled)); + spoofed_ua.ua_string_override = + embedder_support::BuildUserAgentFromOSAndProduct( +- kLinuxInfoStr, embedder_support::GetProductAndVersion()); ++ kLinuxInfoStr, embedder_support::GetProductAndVersion(embedder_support::UserAgentReductionEnterprisePolicyState::kForceEnabled)); spoofed_ua.ua_metadata_override = metadata; spoofed_ua.ua_metadata_override->platform = "Linux"; spoofed_ua.ua_metadata_override->platform_version = @@ -979,7 +979,7 @@ diff --git a/chrome/browser/content_settings/request_desktop_site_web_contents_o diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java -@@ -1080,8 +1080,6 @@ public final class ChromePreferenceKeys { +@@ -1111,8 +1111,6 @@ public final class ChromePreferenceKeys { SIGNIN_PROMO_NTP_LAST_SHOWN_TIME, SYNC_PROMO_TOTAL_SHOW_COUNT, SEARCH_RESUMPTION_MODULE_COLLAPSE_ON_NTP, @@ -1009,7 +1009,7 @@ diff --git a/chrome/browser/privacy/settings/java/src/org/chromium/chrome/browse diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.java b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.java --- a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.java +++ b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.java -@@ -328,6 +328,8 @@ public interface Tab extends TabLifecycle { +@@ -326,6 +326,8 @@ public interface Tab extends TabLifecycle { /** Goes to the navigation entry after the current one. */ void goForward(); @@ -1021,19 +1021,19 @@ diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.jav diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManager.java b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManager.java --- a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManager.java +++ b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManager.java -@@ -139,6 +139,8 @@ public interface TabWindowManager { +@@ -137,6 +137,8 @@ public interface TabWindowManager { */ - List getGroupedTabsByWindow(int windowId, int rootId, boolean isIncognito); + List getGroupedTabsByWindow(@WindowId int windowId, Token tabGroupId, boolean isIncognito); + void SetOverrideUserAgentForAllTabs(boolean usingDesktopUserAgent); + /** - * Finds the {@link TabModelSelector} bound to an Activity instance of a given index. + * Finds the {@link TabModelSelector} bound to an Activity instance of a given id. * diff --git a/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManagerImpl.java b/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManagerImpl.java --- a/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManagerImpl.java +++ b/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManagerImpl.java -@@ -35,6 +35,7 @@ import org.chromium.ui.modaldialog.ModalDialogManager; +@@ -38,6 +38,7 @@ import org.chromium.ui.modaldialog.ModalDialogManager; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -1041,7 +1041,7 @@ diff --git a/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chro import java.util.Collection; import java.util.HashMap; import java.util.List; -@@ -423,6 +424,24 @@ public class TabWindowManagerImpl implements ActivityStateListener, TabWindowMan +@@ -436,6 +437,24 @@ public class TabWindowManagerImpl implements TabWindowManager { return null; } @@ -1064,12 +1064,12 @@ diff --git a/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chro + } + @Override - public Tab getTabById(int tabId) { + public Tab getTabById(@TabId int tabId) { for (TabModelSelector selector : getAllTabModelSelectors()) { 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 -@@ -232,6 +232,32 @@ CHAR_LIMIT guidelines: +@@ -235,6 +235,32 @@ CHAR_LIMIT guidelines: Visit help page @@ -1280,7 +1280,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 -@@ -3535,6 +3535,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( +@@ -3616,6 +3616,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( #if BUILDFLAG(IS_CHROMEOS) switches::kSchedulerBoostUrgent, #endif @@ -1299,7 +1299,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" -@@ -2339,8 +2340,6 @@ void WebContentsImpl::SetUserAgentOverride( +@@ -2384,8 +2385,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); @@ -1308,7 +1308,7 @@ diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser if (GetUserAgentOverride() == ua_override) { return; -@@ -3510,6 +3509,9 @@ const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences( +@@ -3560,6 +3559,9 @@ const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences( #else prefs.viewport_meta_enabled = false; #endif @@ -1341,7 +1341,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 -@@ -909,7 +909,6 @@ void RenderThreadImpl::InitializeRenderer( +@@ -928,7 +928,6 @@ void RenderThreadImpl::InitializeRenderer( uint64_t trace_id) { TRACE_EVENT("navigation", "RenderThreadImpl::InitializeRenderer", perfetto::TerminatingFlow::Global(trace_id)); diff --git a/build/patches/Viewport-Protection-flag.patch b/build/patches/Viewport-Protection-flag.patch index 211ea505..5afed998 100644 --- a/build/patches/Viewport-Protection-flag.patch +++ b/build/patches/Viewport-Protection-flag.patch @@ -211,7 +211,7 @@ new file mode 100644 diff --git a/components/guest_view/browser/guest_view_base.cc b/components/guest_view/browser/guest_view_base.cc --- a/components/guest_view/browser/guest_view_base.cc +++ b/components/guest_view/browser/guest_view_base.cc -@@ -662,6 +662,14 @@ void GuestViewBase::AttachToOuterWebContentsFrame( +@@ -670,6 +670,14 @@ void GuestViewBase::AttachToOuterWebContentsFrame( if (attachment_callback) std::move(attachment_callback).Run(); @@ -282,7 +282,7 @@ diff --git a/third_party/blink/public/common/widget/device_emulation_params.h b/ diff --git a/third_party/blink/renderer/core/css/css_properties.json5 b/third_party/blink/renderer/core/css/css_properties.json5 --- a/third_party/blink/renderer/core/css/css_properties.json5 +++ b/third_party/blink/renderer/core/css/css_properties.json5 -@@ -4293,6 +4293,7 @@ +@@ -4305,6 +4305,7 @@ }, { name: "opacity", @@ -290,7 +290,7 @@ diff --git a/third_party/blink/renderer/core/css/css_properties.json5 b/third_pa property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], interpolable: true, compositable: true, -@@ -4300,7 +4301,6 @@ +@@ -4312,7 +4313,6 @@ field_template: "primitive", default_value: "1.0", type_name: "float", @@ -313,7 +313,7 @@ diff --git a/third_party/blink/renderer/core/css/media_values.cc b/third_party/b diff --git a/third_party/blink/renderer/core/css/resolver/style_resolver.cc b/third_party/blink/renderer/core/css/resolver/style_resolver.cc --- a/third_party/blink/renderer/core/css/resolver/style_resolver.cc +++ b/third_party/blink/renderer/core/css/resolver/style_resolver.cc -@@ -2223,7 +2223,12 @@ ComputedStyleBuilder StyleResolver::InitialStyleBuilderForElement() const { +@@ -2236,7 +2236,12 @@ ComputedStyleBuilder StyleResolver::InitialStyleBuilderForElement() const { ComputedStyleBuilder builder = CreateComputedStyleBuilder(); builder.SetRtlOrdering(GetDocument().VisuallyOrdered() ? EOrder::kVisual : EOrder::kLogical); @@ -399,7 +399,7 @@ diff --git a/third_party/blink/renderer/core/events/pointer_event.h b/third_part diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_party/blink/renderer/core/exported/web_view_impl.cc --- a/third_party/blink/renderer/core/exported/web_view_impl.cc +++ b/third_party/blink/renderer/core/exported/web_view_impl.cc -@@ -1081,7 +1081,7 @@ WebPagePopupImpl* WebViewImpl::OpenPagePopup(PagePopupClient* client) { +@@ -1083,7 +1083,7 @@ WebPagePopupImpl* WebViewImpl::OpenPagePopup(PagePopupClient* client) { page_popup_ = WebPagePopupImpl::Create( std::move(popup_widget_host), std::move(widget_host), std::move(widget_receiver), this, agent_group_scheduler, @@ -439,7 +439,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p Page* page = frame->GetPage(); if (!page) return 0; -@@ -1777,7 +1787,8 @@ double LocalDOMWindow::devicePixelRatio() const { +@@ -1779,7 +1789,8 @@ double LocalDOMWindow::devicePixelRatio() const { if (!GetFrame()) return 0.0; @@ -449,7 +449,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p } void LocalDOMWindow::scrollBy(double x, double y) const { -@@ -2395,6 +2406,23 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate, +@@ -2401,6 +2412,23 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate, if (!completed_url.IsEmpty() || result.new_window) result.frame->Navigate(frame_request, WebFrameLoadType::kStandard); @@ -473,7 +473,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p // TODO(japhet): window-open-noopener.html?_top and several tests in // html/browsers/windows/browsing-context-names/ appear to require that // the special case target names (_top, _parent, _self) ignore opener -@@ -2446,6 +2474,15 @@ DOMWindow* LocalDOMWindow::openPictureInPictureWindow( +@@ -2452,6 +2480,15 @@ DOMWindow* LocalDOMWindow::openPictureInPictureWindow( DCHECK(result.new_window); result.frame->Navigate(frame_request, WebFrameLoadType::kStandard); @@ -492,7 +492,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc -@@ -1591,6 +1591,10 @@ void LocalFrame::RestoreScrollOffsets() { +@@ -1595,6 +1595,10 @@ void LocalFrame::RestoreScrollOffsets() { saved_scroll_offsets_ = nullptr; } @@ -503,7 +503,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ void LocalFrame::SetLayoutZoomFactor(float factor) { SetLayoutAndTextZoomFactors(factor, text_zoom_factor_); } -@@ -1772,12 +1776,16 @@ mojom::blink::DevicePostureType LocalFrame::GetDevicePosture() { +@@ -1776,12 +1780,16 @@ mojom::blink::DevicePostureType LocalFrame::GetDevicePosture() { return mojo_handler_->GetDevicePosture(); } @@ -522,7 +522,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ return ratio; } -@@ -3324,6 +3332,11 @@ void LocalFrame::SetScaleFactor(float scale_factor) { +@@ -3332,6 +3340,11 @@ void LocalFrame::SetScaleFactor(float scale_factor) { DCHECK(!GetDocument() || !GetDocument()->Printing()); DCHECK(IsMainFrame()); @@ -537,7 +537,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h --- a/third_party/blink/renderer/core/frame/local_frame.h +++ b/third_party/blink/renderer/core/frame/local_frame.h -@@ -427,13 +427,14 @@ class CORE_EXPORT LocalFrame final +@@ -435,13 +435,14 @@ class CORE_EXPORT LocalFrame final void SetInViewSourceMode(bool = true); void SetLayoutZoomFactor(float); @@ -554,7 +554,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/b // Informs the local root's document and its local descendant subtree that a // media query value changed. -@@ -1078,6 +1079,7 @@ class CORE_EXPORT LocalFrame final +@@ -1091,6 +1092,7 @@ class CORE_EXPORT LocalFrame final unsigned did_run_detach_impl_ : 1 = false; float layout_zoom_factor_; @@ -660,7 +660,7 @@ diff --git a/third_party/blink/renderer/core/frame/screen_metrics_emulator.h b/t diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc --- a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc +++ b/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc -@@ -1993,6 +1993,14 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( +@@ -1998,6 +1998,14 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( if (auto* device_emulator = DeviceEmulator()) { device_emulator->UpdateVisualProperties(visual_properties); @@ -732,7 +732,7 @@ diff --git a/third_party/blink/renderer/core/input/touch.cc b/third_party/blink/ diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/renderer/core/page/page.cc --- a/third_party/blink/renderer/core/page/page.cc +++ b/third_party/blink/renderer/core/page/page.cc -@@ -107,6 +107,12 @@ +@@ -108,6 +108,12 @@ #include "ui/color/color_provider_utils.h" #include "ui/gfx/geometry/insets_conversions.h" @@ -745,7 +745,7 @@ diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/re namespace blink { namespace { -@@ -1294,7 +1300,94 @@ void Page::UpdateAcceleratedCompositingSettings() { +@@ -1304,7 +1310,94 @@ void Page::UpdateAcceleratedCompositingSettings() { } } @@ -869,7 +869,7 @@ diff --git a/third_party/blink/renderer/core/page/page.h b/third_party/blink/ren diff --git a/third_party/blink/renderer/core/style/computed_style.h b/third_party/blink/renderer/core/style/computed_style.h --- a/third_party/blink/renderer/core/style/computed_style.h +++ b/third_party/blink/renderer/core/style/computed_style.h -@@ -1931,6 +1931,12 @@ class ComputedStyle final : public ComputedStyleBase { +@@ -1958,6 +1958,12 @@ class ComputedStyle final : public ComputedStyleBase { IsRunningBackdropFilterAnimationOnCompositor(); } diff --git a/build/patches/WIN-Disable-updater.patch b/build/patches/WIN-Disable-updater.patch index 053587d3..0778fb59 100644 --- a/build/patches/WIN-Disable-updater.patch +++ b/build/patches/WIN-Disable-updater.patch @@ -22,7 +22,7 @@ diff --git a/chrome/browser/active_use_util.h b/chrome/browser/active_use_util.h diff --git a/chrome/browser/updater/BUILD.gn b/chrome/browser/updater/BUILD.gn --- a/chrome/browser/updater/BUILD.gn +++ b/chrome/browser/updater/BUILD.gn -@@ -23,22 +23,6 @@ if (is_win || is_mac) { +@@ -30,22 +30,6 @@ if (is_win || is_mac) { "//components/version_info", ] diff --git a/build/patches/WIN-enable-pdf-plugin.patch b/build/patches/WIN-enable-pdf-plugin.patch index dd6d00e9..449c305a 100644 --- a/build/patches/WIN-enable-pdf-plugin.patch +++ b/build/patches/WIN-enable-pdf-plugin.patch @@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc -@@ -2289,7 +2289,9 @@ WebContentSettingsClient* LocalFrame::GetContentSettingsClient() { +@@ -2298,7 +2298,9 @@ const mojom::RendererContentSettingsPtr& LocalFrame::GetContentSettings() } PluginData* LocalFrame::GetPluginData() const { diff --git a/build/patches/Warning-message-for-unsupported-hardware-aes.patch b/build/patches/Warning-message-for-unsupported-hardware-aes.patch index 3607b43a..cfd919f5 100644 --- a/build/patches/Warning-message-for-unsupported-hardware-aes.patch +++ b/build/patches/Warning-message-for-unsupported-hardware-aes.patch @@ -51,7 +51,7 @@ diff --git a/base/base_switches.h b/base/base_switches.h diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn --- a/chrome/BUILD.gn +++ b/chrome/BUILD.gn -@@ -428,6 +428,7 @@ if (is_win) { +@@ -432,6 +432,7 @@ if (is_win) { "//components/policy:generated", "//content/public/app", "//crypto", @@ -59,7 +59,7 @@ diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn "//headless:headless_non_renderer", "//headless:headless_shell_browser_lib", "//net:net_resources", -@@ -1644,6 +1645,8 @@ if (is_android) { +@@ -1648,6 +1649,8 @@ if (is_android) { "//chrome/common/profiler", "//chrome/gpu", "//chrome/renderer", @@ -97,7 +97,7 @@ diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegat diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd -@@ -7235,6 +7235,10 @@ Keep your key file in a safe place. You will need it to create new versions of y +@@ -7259,6 +7259,10 @@ Keep your key file in a safe place. You will need it to create new versions of y You are using an unsupported feature flag: $1SignedHTTPExchange. Stability and security will suffer. @@ -111,7 +111,7 @@ diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources diff --git a/chrome/browser/ui/startup/bad_flags_prompt.cc b/chrome/browser/ui/startup/bad_flags_prompt.cc --- a/chrome/browser/ui/startup/bad_flags_prompt.cc +++ b/chrome/browser/ui/startup/bad_flags_prompt.cc -@@ -229,6 +229,15 @@ void ShowBadFlagsPrompt(content::WebContents* web_contents) { +@@ -236,6 +236,15 @@ void ShowBadFlagsPrompt(content::WebContents* web_contents) { return; } } @@ -130,7 +130,7 @@ diff --git a/chrome/browser/ui/startup/bad_flags_prompt.cc b/chrome/browser/ui/s diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc -@@ -3540,6 +3540,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( +@@ -3621,6 +3621,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( switches::kSchedulerBoostUrgent, #endif switches::kDesktopModeViewportMetaEnabled, diff --git a/build/patches/add-browser-policy.patch b/build/patches/add-browser-policy.patch index 881e3e9d..8834e53a 100644 --- a/build/patches/add-browser-policy.patch +++ b/build/patches/add-browser-policy.patch @@ -42,7 +42,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/base/win/win_util.cc b/base/win/win_util.cc --- a/base/win/win_util.cc +++ b/base/win/win_util.cc -@@ -156,80 +156,18 @@ bool EnablePerMonitorV2() { +@@ -158,80 +158,18 @@ bool EnablePerMonitorV2() { } bool* GetDomainEnrollmentStateStorage() { @@ -202,7 +202,7 @@ diff --git a/chrome/browser/metrics/chrome_feature_list_creator.cc b/chrome/brow diff --git a/chrome/browser/navigation_predictor/search_engine_preconnector.cc b/chrome/browser/navigation_predictor/search_engine_preconnector.cc --- a/chrome/browser/navigation_predictor/search_engine_preconnector.cc +++ b/chrome/browser/navigation_predictor/search_engine_preconnector.cc -@@ -43,6 +43,8 @@ BASE_FEATURE(kPreconnectToSearch, +@@ -48,6 +48,8 @@ BASE_FEATURE(kPreconnectToSearch, BASE_FEATURE(kPreconnectToSearchWithPrivacyModeEnabled, "PreconnectToSearchWithPrivacyModeEnabled", base::FEATURE_DISABLED_BY_DEFAULT); @@ -210,7 +210,7 @@ diff --git a/chrome/browser/navigation_predictor/search_engine_preconnector.cc b +SET_CROMITE_FEATURE_DISABLED(kPreconnectToSearchWithPrivacyModeEnabled); } // namespace features - SearchEnginePreconnector::SearchEnginePreconnector( + WebContentVisibilityManager::WebContentVisibilityManager() diff --git a/chrome/browser/policy/chrome_browser_policy_connector.cc b/chrome/browser/policy/chrome_browser_policy_connector.cc --- a/chrome/browser/policy/chrome_browser_policy_connector.cc +++ b/chrome/browser/policy/chrome_browser_policy_connector.cc @@ -227,7 +227,7 @@ diff --git a/chrome/browser/policy/chrome_browser_policy_connector.cc b/chrome/b diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc b/chrome/browser/policy/configuration_policy_handler_list_factory.cc --- a/chrome/browser/policy/configuration_policy_handler_list_factory.cc +++ b/chrome/browser/policy/configuration_policy_handler_list_factory.cc -@@ -2403,9 +2403,9 @@ bool AreFuturePoliciesEnabledByDefault() { +@@ -2433,9 +2433,9 @@ bool AreFuturePoliciesEnabledByDefault() { if (base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kTestType)) { return true; } @@ -380,7 +380,7 @@ diff --git a/chrome/browser/ui/webui/policy/policy_ui_handler.cc b/chrome/browse #include "base/strings/utf_string_conversions.h" #include "base/task/task_traits.h" #include "base/task/thread_pool.h" -@@ -71,6 +72,7 @@ +@@ -72,6 +73,7 @@ #include "components/policy/core/common/policy_details.h" #include "components/policy/core/common/policy_logger.h" #include "components/policy/core/common/policy_pref_names.h" @@ -388,7 +388,7 @@ diff --git a/chrome/browser/ui/webui/policy/policy_ui_handler.cc b/chrome/browse #include "components/policy/core/common/policy_scheduler.h" #include "components/policy/core/common/policy_types.h" #include "components/policy/core/common/policy_utils.h" -@@ -209,6 +211,10 @@ void PolicyUIHandler::RegisterMessages() { +@@ -215,6 +217,10 @@ void PolicyUIHandler::RegisterMessages() { "exportPoliciesJSON", base::BindRepeating(&PolicyUIHandler::HandleExportPoliciesJson, base::Unretained(this))); @@ -399,7 +399,7 @@ diff --git a/chrome/browser/ui/webui/policy/policy_ui_handler.cc b/chrome/browse web_ui()->RegisterMessageCallback( "listenPoliciesUpdates", base::BindRepeating(&PolicyUIHandler::HandleListenPoliciesUpdates, -@@ -489,8 +495,102 @@ void PolicyUIHandler::SendPolicies() { +@@ -495,8 +501,102 @@ void PolicyUIHandler::SendPolicies() { "policies-updated", base::Value( policy_value_and_status_aggregator_->GetAggregatedPolicyNames()), @@ -507,7 +507,7 @@ diff --git a/chrome/browser/ui/webui/policy/policy_ui_handler.cc b/chrome/browse diff --git a/chrome/browser/ui/webui/policy/policy_ui_handler.h b/chrome/browser/ui/webui/policy/policy_ui_handler.h --- a/chrome/browser/ui/webui/policy/policy_ui_handler.h +++ b/chrome/browser/ui/webui/policy/policy_ui_handler.h -@@ -53,6 +53,8 @@ class PolicyUIHandler : public content::WebUIMessageHandler, +@@ -68,6 +68,8 @@ class PolicyUIHandler : public content::WebUIMessageHandler, private: void HandleExportPoliciesJson(const base::Value::List& args); @@ -519,7 +519,7 @@ diff --git a/chrome/browser/ui/webui/policy/policy_ui_handler.h b/chrome/browser 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 -@@ -374,7 +374,7 @@ +@@ -383,7 +383,7 @@ @@ -531,7 +531,7 @@ diff --git a/components/browser_ui/strings/android/browser_ui_strings.grd b/comp diff --git a/components/commerce/core/commerce_feature_list.cc b/components/commerce/core/commerce_feature_list.cc --- a/components/commerce/core/commerce_feature_list.cc +++ b/components/commerce/core/commerce_feature_list.cc -@@ -62,56 +62,6 @@ const CountryLocaleMap& GetAllowedCountryToLocaleMap() { +@@ -61,56 +61,6 @@ const CountryLocaleMap& GetAllowedCountryToLocaleMap() { return *allowed_map; } @@ -588,7 +588,7 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm } // namespace BASE_FEATURE(kCommerceAllowLocalImages, -@@ -396,16 +346,15 @@ const base::FeatureParam kRevertIconOnFailure{ +@@ -400,16 +350,15 @@ const base::FeatureParam kRevertIconOnFailure{ &kShoppingList, kRevertIconOnFailureParam, false}; bool IsPartnerMerchant(const GURL& url) { @@ -608,7 +608,7 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm } bool IsCartDiscountFeatureEnabled() { -@@ -458,6 +407,7 @@ bool IsRegionLockedFeatureEnabled(const base::Feature& feature, +@@ -462,6 +411,7 @@ bool IsRegionLockedFeatureEnabled(const base::Feature& feature, const base::Feature& feature_region_launched, const std::string& country_code, const std::string& locale) { @@ -616,7 +616,7 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm bool flag_enabled = base::FeatureList::IsEnabled(feature); bool region_launched = base::FeatureList::IsEnabled(feature_region_launched) && -@@ -480,6 +430,7 @@ base::TimeDelta GetDiscountFetchDelay() { +@@ -484,6 +434,7 @@ base::TimeDelta GetDiscountFetchDelay() { } bool IsNoDiscountMerchant(const GURL& url) { @@ -624,7 +624,7 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm auto* pattern_from_component = commerce_heuristics::CommerceHeuristicsData::GetInstance() .GetNoDiscountMerchantPattern(); -@@ -491,4 +442,12 @@ bool IsNoDiscountMerchant(const GURL& url) { +@@ -495,4 +446,12 @@ bool IsNoDiscountMerchant(const GURL& url) { return RE2::PartialMatch(url.host_piece(), *pattern_from_component); } #endif @@ -970,7 +970,7 @@ diff --git a/components/policy_strings.grdp b/components/policy_strings.grdp 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 -@@ -92,6 +92,7 @@ BASE_FEATURE(kNtpCalendarModule, +@@ -93,6 +93,7 @@ BASE_FEATURE(kNtpCalendarModule, BASE_FEATURE(kNtpChromeCartModule, "NtpChromeCartModule", base::FEATURE_ENABLED_BY_DEFAULT); @@ -1014,7 +1014,7 @@ diff --git a/components/signin/internal/identity_manager/gaia_cookie_manager_ser diff --git a/google_apis/gaia/gaia_auth_fetcher.cc b/google_apis/gaia/gaia_auth_fetcher.cc --- a/google_apis/gaia/gaia_auth_fetcher.cc +++ b/google_apis/gaia/gaia_auth_fetcher.cc -@@ -479,6 +479,7 @@ void GaiaAuthFetcher::StartListAccounts() { +@@ -482,6 +482,7 @@ void GaiaAuthFetcher::StartListAccounts() { } } })"); diff --git a/build/patches/autofill-miscellaneous.patch b/build/patches/autofill-miscellaneous.patch index 9b16b243..971cb602 100644 --- a/build/patches/autofill-miscellaneous.patch +++ b/build/patches/autofill-miscellaneous.patch @@ -15,20 +15,20 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../ui/autofill/chrome_autofill_client.h | 1 - .../browser/android_autofill_client.cc | 11 ---- .../browser/android_autofill_client.h | 1 - - .../autofill_crowdsourcing_manager.cc | 66 ++----------------- + .../autofill_crowdsourcing_manager.cc | 63 ++----------------- .../autofill_crowdsourcing_manager.h | 2 - - .../browser/crowdsourcing/votes_uploader.cc | 6 -- + .../browser/crowdsourcing/votes_uploader.cc | 3 - .../browser/foundations/autofill_client.h | 4 -- .../browser/foundations/autofill_manager.cc | 11 ---- .../autofill/core/common/autofill_features.cc | 2 + - .../autofill/core/common/autofill_prefs.cc | 10 +-- + .../autofill/core/common/autofill_prefs.cc | 8 +-- .../password_generation_frame_helper.cc | 5 -- - 13 files changed, 12 insertions(+), 120 deletions(-) + 13 files changed, 11 insertions(+), 113 deletions(-) diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b/chrome/browser/password_manager/chrome_password_manager_client.cc --- a/chrome/browser/password_manager/chrome_password_manager_client.cc +++ b/chrome/browser/password_manager/chrome_password_manager_client.cc -@@ -1058,10 +1058,6 @@ ChromePasswordManagerClient::GetHttpAuthManager() { +@@ -1054,10 +1054,6 @@ ChromePasswordManagerClient::GetHttpAuthManager() { autofill::AutofillCrowdsourcingManager* ChromePasswordManagerClient::GetAutofillCrowdsourcingManager() { @@ -42,7 +42,7 @@ diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.cc b/chrome/browser/ui/autofill/chrome_autofill_client.cc --- a/chrome/browser/ui/autofill/chrome_autofill_client.cc +++ b/chrome/browser/ui/autofill/chrome_autofill_client.cc -@@ -378,15 +378,6 @@ ChromeAutofillClient::GetURLLoaderFactory() { +@@ -390,15 +390,6 @@ ChromeAutofillClient::GetURLLoaderFactory() { ->GetURLLoaderFactoryForBrowserProcess(); } @@ -61,7 +61,7 @@ diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.cc b/chrome/brows diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.h b/chrome/browser/ui/autofill/chrome_autofill_client.h --- a/chrome/browser/ui/autofill/chrome_autofill_client.h +++ b/chrome/browser/ui/autofill/chrome_autofill_client.h -@@ -106,7 +106,6 @@ class ChromeAutofillClient : public ContentAutofillClient, +@@ -107,7 +107,6 @@ class ChromeAutofillClient : public ContentAutofillClient, version_info::Channel GetChannel() const final; bool IsOffTheRecord() const final; scoped_refptr GetURLLoaderFactory() final; @@ -104,7 +104,7 @@ diff --git a/components/android_autofill/browser/android_autofill_client.h b/com diff --git a/components/autofill/core/browser/crowdsourcing/autofill_crowdsourcing_manager.cc b/components/autofill/core/browser/crowdsourcing/autofill_crowdsourcing_manager.cc --- a/components/autofill/core/browser/crowdsourcing/autofill_crowdsourcing_manager.cc +++ b/components/autofill/core/browser/crowdsourcing/autofill_crowdsourcing_manager.cc -@@ -487,33 +487,6 @@ std::optional GetUploadPayloadForApi( +@@ -492,33 +492,6 @@ std::optional GetUploadPayloadForApi( return std::move(payload); } @@ -138,7 +138,7 @@ diff --git a/components/autofill/core/browser/crowdsourcing/autofill_crowdsourci // Gets HTTP body payload for API POST request. std::optional GetAPIBodyPayload(std::string payload, RequestType type) { -@@ -545,15 +518,7 @@ std::optional GetAPIQueryPayload( +@@ -550,15 +523,7 @@ std::optional GetAPIQueryPayload( } std::string GetAPIKeyForUrl(version_info::Channel channel) { @@ -155,7 +155,7 @@ diff --git a/components/autofill/core/browser/crowdsourcing/autofill_crowdsourci } std::optional>& GetActiveExperiments() { -@@ -860,34 +825,13 @@ size_t AutofillCrowdsourcingManager::GetPayloadLength( +@@ -865,31 +830,13 @@ size_t AutofillCrowdsourcingManager::GetPayloadLength( std::tuple AutofillCrowdsourcingManager::GetRequestURLAndMethod( const FormRequestData& request_data) const { @@ -168,9 +168,6 @@ diff --git a/components/autofill/core/browser/crowdsourcing/autofill_crowdsourci - if (GetPayloadLength(request_data.payload) <= kMaxQueryGetSize) { - resource_id = request_data.payload; - method = "GET"; -- base::UmaHistogramBoolean(kUmaApiUrlIsTooLong, false); -- } else { -- base::UmaHistogramBoolean(kUmaApiUrlIsTooLong, true); - } - base::UmaHistogramBoolean(kUmaMethod, method != "GET"); - } @@ -209,15 +206,12 @@ diff --git a/components/autofill/core/browser/crowdsourcing/autofill_crowdsourci diff --git a/components/autofill/core/browser/crowdsourcing/votes_uploader.cc b/components/autofill/core/browser/crowdsourcing/votes_uploader.cc --- a/components/autofill/core/browser/crowdsourcing/votes_uploader.cc +++ b/components/autofill/core/browser/crowdsourcing/votes_uploader.cc -@@ -396,12 +396,6 @@ void VotesUploader::UploadVote( - non_empty_types.contains(CREDIT_CARD_NUMBER)) { - non_empty_types.insert(CREDIT_CARD_VERIFICATION_CODE); +@@ -403,9 +403,6 @@ void VotesUploader::UploadVote( + client_->GetUkmRecorder(), ukm_source_id, *submitted_form, + submission_timestamp); } - client_->GetCrowdsourcingManager().StartUploadRequest( -- /*upload_contents=*/EncodeUploadRequest(*submitted_form, non_empty_types, -- /*login_form_signature=*/{}, -- observed_submission), -- submitted_form->submission_source(), +- std::move(upload_contents), submitted_form->submission_source(), - /*is_password_manager_upload=*/false); } @@ -225,7 +219,7 @@ diff --git a/components/autofill/core/browser/crowdsourcing/votes_uploader.cc b/ diff --git a/components/autofill/core/browser/foundations/autofill_client.h b/components/autofill/core/browser/foundations/autofill_client.h --- a/components/autofill/core/browser/foundations/autofill_client.h +++ b/components/autofill/core/browser/foundations/autofill_client.h -@@ -243,10 +243,6 @@ class AutofillClient { +@@ -248,10 +248,6 @@ class AutofillClient { // Returns the VotesUploader. virtual VotesUploader& GetVotesUploader() = 0; @@ -239,7 +233,7 @@ diff --git a/components/autofill/core/browser/foundations/autofill_client.h b/co diff --git a/components/autofill/core/browser/foundations/autofill_manager.cc b/components/autofill/core/browser/foundations/autofill_manager.cc --- a/components/autofill/core/browser/foundations/autofill_manager.cc +++ b/components/autofill/core/browser/foundations/autofill_manager.cc -@@ -326,17 +326,6 @@ void AutofillManager::OnFormsParsed(const std::vector& forms) { +@@ -327,17 +327,6 @@ void AutofillManager::OnFormsParsed(const std::vector& forms) { driver().SendTypePredictionsToRenderer(queryable_forms); LogTypePredictionsAvailable(log_manager(), non_queryable_forms); LogTypePredictionsAvailable(log_manager(), queryable_forms); @@ -260,7 +254,7 @@ diff --git a/components/autofill/core/browser/foundations/autofill_manager.cc b/ diff --git a/components/autofill/core/common/autofill_features.cc b/components/autofill/core/common/autofill_features.cc --- a/components/autofill/core/common/autofill_features.cc +++ b/components/autofill/core/common/autofill_features.cc -@@ -909,6 +909,8 @@ BASE_FEATURE(kAutofillUploadThrottling, +@@ -959,6 +959,8 @@ BASE_FEATURE(kAutofillUploadThrottling, "AutofillUploadThrottling", base::FEATURE_ENABLED_BY_DEFAULT); @@ -272,40 +266,37 @@ diff --git a/components/autofill/core/common/autofill_features.cc b/components/a diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/autofill/core/common/autofill_prefs.cc --- a/components/autofill/core/common/autofill_prefs.cc +++ b/components/autofill/core/common/autofill_prefs.cc -@@ -21,7 +21,7 @@ namespace prefs { +@@ -29,7 +29,7 @@ constexpr char kAutofillRanQuasiDuplicateExtraDeduplication[] = void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { // Synced prefs. Used for cross-device choices, e.g., credit card Autofill. registry->RegisterBooleanPref( -- prefs::kAutofillProfileEnabled, true, -+ prefs::kAutofillProfileEnabled, false, +- kAutofillProfileEnabled, true, ++ kAutofillProfileEnabled, false, user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); registry->RegisterIntegerPref( - prefs::kAutofillLastVersionDeduped, 0, -@@ -30,10 +30,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { - prefs::kAutofillHasSeenIban, false, + kAutofillLastVersionDeduped, 0, +@@ -38,10 +38,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { + kAutofillHasSeenIban, false, user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); registry->RegisterBooleanPref( -- prefs::kAutofillCreditCardEnabled, true, -+ prefs::kAutofillCreditCardEnabled, false, +- kAutofillCreditCardEnabled, true, ++ kAutofillCreditCardEnabled, false, user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); registry->RegisterBooleanPref( -- prefs::kAutofillPaymentCvcStorage, true, -+ prefs::kAutofillPaymentCvcStorage, false, +- kAutofillPaymentCvcStorage, true, ++ kAutofillPaymentCvcStorage, false, user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); registry->RegisterBooleanPref( kAutofillPaymentCardBenefits, true, -@@ -77,9 +77,9 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -80,7 +80,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { #endif // Deprecated prefs registered for migration. -- registry->RegisterBooleanPref(prefs::kAutofillEnabledDeprecated, true); -+ registry->RegisterBooleanPref(prefs::kAutofillEnabledDeprecated, false); - registry->RegisterBooleanPref(prefs::kAutofillOrphanRowsRemoved, false); -- registry->RegisterBooleanPref(prefs::kAutofillIbanEnabled, true); -+ registry->RegisterBooleanPref(prefs::kAutofillIbanEnabled, false); - registry->RegisterIntegerPref( - prefs::kAutofillLastVersionDisusedAddressesDeleted, 0); - registry->RegisterIntegerPref( +- registry->RegisterBooleanPref(kAutofillEnabledDeprecated, true); ++ registry->RegisterBooleanPref(kAutofillEnabledDeprecated, false); + registry->RegisterStringPref(kAutofillAblationSeedPref, ""); + registry->RegisterBooleanPref(kAutofillRanQuasiDuplicateExtraDeduplication, + false); diff --git a/components/password_manager/core/browser/password_generation_frame_helper.cc b/components/password_manager/core/browser/password_generation_frame_helper.cc --- a/components/password_manager/core/browser/password_generation_frame_helper.cc +++ b/components/password_manager/core/browser/password_generation_frame_helper.cc diff --git a/build/patches/bromite-build-utils.patch b/build/patches/bromite-build-utils.patch index b9648a8e..ceca2aff 100644 --- a/build/patches/bromite-build-utils.patch +++ b/build/patches/bromite-build-utils.patch @@ -426,7 +426,7 @@ new file mode 100644 diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn --- a/build/config/BUILDCONFIG.gn +++ b/build/config/BUILDCONFIG.gn -@@ -764,3 +764,5 @@ if (is_component_build) { +@@ -792,3 +792,5 @@ if (is_component_build) { set_defaults("component") { configs = default_component_configs } diff --git a/build/patches/disable-WebView-variations-support.patch b/build/patches/disable-WebView-variations-support.patch index e8329174..05b1a4c3 100644 --- a/build/patches/disable-WebView-variations-support.patch +++ b/build/patches/disable-WebView-variations-support.patch @@ -5,32 +5,33 @@ Subject: disable WebView variations support Original License: MIT - https://spdx.org/licenses/MIT.html License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../com/android/webview/chromium/WebViewChromiumAwInit.java | 6 ------ - .../webview/chromium/WebViewChromiumFactoryProvider.java | 4 ---- - 2 files changed, 10 deletions(-) + .../android/webview/chromium/WebViewChromiumAwInit.java | 7 ------- + .../webview/chromium/WebViewChromiumFactoryProvider.java | 4 ---- + 2 files changed, 11 deletions(-) diff --git a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumAwInit.java b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumAwInit.java --- a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumAwInit.java +++ b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumAwInit.java -@@ -342,12 +342,6 @@ public class WebViewChromiumAwInit { +@@ -400,13 +400,6 @@ public class WebViewChromiumAwInit { + } - AwBrowserProcess.configureChildProcessLauncher(); - -- // finishVariationsInitLocked() must precede native initialization so the seed is -- // available when AwFeatureListCreator::SetUpFieldTrials() runs. -- if (!FastVariationsSeedSafeModeAction.hasRun()) { -- finishVariationsInitLocked(); -- } + AwBrowserProcess.configureChildProcessLauncher(); - - AwBrowserProcess.start(); - - // TODO(crbug.com/332706093): See if this can be moved before loading native. +- // finishVariationsInitLocked() must precede native initialization so +- // the seed is available when AwFeatureListCreator::SetUpFieldTrials() +- // runs. +- if (!FastVariationsSeedSafeModeAction.hasRun()) { +- finishVariationsInitLocked(); +- } + }); + tasks.addLast(AwBrowserProcess::start); + tasks.addLast( diff --git a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java --- a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java +++ b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java -@@ -591,10 +591,6 @@ public class WebViewChromiumFactoryProvider implements WebViewFactoryProvider { - } - } +@@ -626,10 +626,6 @@ public class WebViewChromiumFactoryProvider implements WebViewFactoryProvider { + mAwInit.setStartupTaskExperimentEnabled(enableStartupTasksExperiment); + AwBrowserMainParts.setWebViewStartupTasksLogicIsEnabled(enableStartupTasksExperiment); - if (!FastVariationsSeedSafeModeAction.hasRun()) { - mAwInit.startVariationsInit(); diff --git a/build/patches/do-not-block-build-incompatible-profiles.patch b/build/patches/do-not-block-build-incompatible-profiles.patch index 3db85b51..fc30ba05 100644 --- a/build/patches/do-not-block-build-incompatible-profiles.patch +++ b/build/patches/do-not-block-build-incompatible-profiles.patch @@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/v8/BUILD.gn b/v8/BUILD.gn --- a/v8/BUILD.gn +++ b/v8/BUILD.gn -@@ -2473,7 +2473,7 @@ template("run_mksnapshot") { +@@ -2531,7 +2531,7 @@ template("run_mksnapshot") { # Replace this with --warn-about-builtin-profile-data to see the full # list of builtins with incompatible profiles. diff --git a/build/patches/exit-on-failure-of-inclusion.patch b/build/patches/exit-on-failure-of-inclusion.patch index 631cad9c..8df2c7f9 100644 --- a/build/patches/exit-on-failure-of-inclusion.patch +++ b/build/patches/exit-on-failure-of-inclusion.patch @@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/installer/linux/debian/build.sh b/chrome/installer/linux/debian/build.sh --- a/chrome/installer/linux/debian/build.sh +++ b/chrome/installer/linux/debian/build.sh -@@ -246,15 +246,15 @@ DEB_CHANGELOG="${TMPFILEDIR}/changelog" +@@ -250,15 +250,15 @@ DEB_CHANGELOG="${TMPFILEDIR}/changelog" DEB_FILES="${TMPFILEDIR}/files" DEB_CONTROL="${TMPFILEDIR}/control" 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 3a2de062..d6cd722f 100644 --- a/build/patches/eyeo-133.0.6943.49-android_api.patch +++ b/build/patches/eyeo-133.0.6943.49-android_api.patch @@ -105,7 +105,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn } android_resources("java_overlay_resources") { -@@ -532,6 +536,7 @@ if (current_toolchain == default_toolchain) { +@@ -533,6 +537,7 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/xsurface:java", "//chrome/browser/xsurface_provider:dependency_provider_impl_java", "//chrome/browser/xsurface_provider:java", @@ -113,7 +113,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//components/android_autofill/browser:java", "//components/autofill/android:autofill_features_java", "//components/autofill/android:autofill_java", -@@ -1331,6 +1336,7 @@ if (current_toolchain == default_toolchain) { +@@ -1336,6 +1341,7 @@ if (current_toolchain == default_toolchain) { "javatests:chrome_test_java_org.chromium.chrome.browser.toolbar", "javatests:chrome_test_java_org.chromium.chrome.browser.webapps", "javatests:chrome_test_java_various", @@ -121,7 +121,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/android/browserservices/verification:javatests", "//chrome/browser/android/httpclient:javatests", "//chrome/browser/android/metrics:ukm_javatests", -@@ -1399,6 +1405,7 @@ if (current_toolchain == default_toolchain) { +@@ -1405,6 +1411,7 @@ if (current_toolchain == default_toolchain) { "//chrome/test/data/translate/", "//chrome/test/data/webauthn/", "//chrome/test/media_router/resources/", @@ -142,7 +142,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn # Used for testing only, should not be shipped to end users. if (enable_offline_pages_harness) { sources += [ "java/src/org/chromium/chrome/browser/offlinepages/evaluation/OfflinePageEvaluationBridge.java" ] -@@ -3290,6 +3303,7 @@ group("jni_headers") { +@@ -3291,6 +3304,7 @@ group("jni_headers") { "//chrome/browser/ui/messages/android:jni_headers", "//chrome/browser/util:jni_headers", "//chrome/browser/webauthn/android:jni_headers", @@ -163,7 +163,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java import("//content/public/common/features.gni") -@@ -54,6 +57,7 @@ chrome_java_sources = [ +@@ -55,6 +58,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/accessibility/AccessibilityTabHelper.java", "java/src/org/chromium/chrome/browser/accessibility/PageZoomIphController.java", "java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java", @@ -215,7 +215,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 -@@ -3251,6 +3251,10 @@ static_library("browser") { +@@ -3282,6 +3282,10 @@ static_library("browser") { "touch_to_fill/password_manager/touch_to_fill_controller_webauthn_delegate.h", ] @@ -275,7 +275,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 -@@ -1003,6 +1003,12 @@ static_library("ui") { +@@ -1011,6 +1011,12 @@ static_library("ui") { deps += [ "//chrome/browser/search/background:ntp_background_proto", ] diff --git a/build/patches/eyeo-133.0.6943.49-android_settings.patch b/build/patches/eyeo-133.0.6943.49-android_settings.patch index 9d7ae27b..e1542357 100644 --- a/build/patches/eyeo-133.0.6943.49-android_settings.patch +++ b/build/patches/eyeo-133.0.6943.49-android_settings.patch @@ -250,7 +250,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn } android_resources("java_overlay_resources") { -@@ -776,6 +780,10 @@ if (current_toolchain == default_toolchain) { +@@ -777,6 +781,10 @@ if (current_toolchain == default_toolchain) { "//url/mojom:url_mojom_origin_java", ] diff --git a/build/patches/eyeo-133.0.6943.49-base.patch b/build/patches/eyeo-133.0.6943.49-base.patch index 3ab554e1..84c030e4 100644 --- a/build/patches/eyeo-133.0.6943.49-base.patch +++ b/build/patches/eyeo-133.0.6943.49-base.patch @@ -4,8 +4,7 @@ Subject: eyeo Browser Ad filtering Solution: Base Module Based on Chromium 133.0.6943.49 --- - BUILD.gn | 4 + - DEPS | 12 + + DEPS | 10 + LICENSE | 15 + README.md | 12 + base/threading/thread_restrictions.h | 9 + @@ -366,7 +365,7 @@ Based on Chromium 133.0.6943.49 tools/eyeo/update_git_grafts.py | 138 ++ tools/gritsettings/resource_ids.spec | 12 + .../histograms/metadata/extensions/enums.xml | 8 +- - 362 files changed, 48854 insertions(+), 8 deletions(-) + 361 files changed, 48848 insertions(+), 8 deletions(-) create mode 100644 components/adblock/BUILD.gn create mode 100644 components/adblock/CHANGELOG.md create mode 100644 components/adblock/LICENSE @@ -698,39 +697,10 @@ Based on Chromium 133.0.6943.49 create mode 100644 tools/eyeo/git-grafts.txt create mode 100755 tools/eyeo/update_git_grafts.py -diff --git a/BUILD.gn b/BUILD.gn ---- a/BUILD.gn -+++ b/BUILD.gn -@@ -1,6 +1,9 @@ - # Copyright 2013 The Chromium Authors - # Use of this source code is governed by a BSD-style license that can be - # found in the LICENSE file. -+# -+# This source code is a part of eyeo Chromium SDK. -+# Use of this source code is governed by the GPLv3 that can be found in the components/adblock/LICENSE file. - - # This is the root build file for GN. GN will start processing by loading this - # file, and recursively load all dependencies until all dependencies are either -@@ -440,6 +443,7 @@ group("gn_all") { - "//chrome/browser/android/examples/partner_browser_customizations_provider:partner_browser_customizations_example_apk", - "//content/shell/android:content_shell_test_apk", - ] -+ - } - - if (enable_chrome_android_internal) { diff --git a/DEPS b/DEPS --- a/DEPS +++ b/DEPS -@@ -168,6 +168,7 @@ vars = { - # flag is set True. - 'checkout_wpr_archives': False, - -+ - # By default, do not check out WebKit for iOS, as it is not needed unless - # running against ToT WebKit rather than system WebKit. This can be overridden - # e.g. with custom_vars. -@@ -262,6 +263,7 @@ vars = { +@@ -277,6 +277,7 @@ vars = { 'download_libvpx_testdata': False, 'android_git': 'https://android.googlesource.com', @@ -738,9 +708,9 @@ diff --git a/DEPS b/DEPS 'aomedia_git': 'https://aomedia.googlesource.com', 'boringssl_git': 'https://boringssl.googlesource.com', 'chrome_git': 'https://chrome-internal.googlesource.com', -@@ -502,6 +504,11 @@ vars = { +@@ -529,6 +530,11 @@ vars = { # and whatever else without interference from each other. - 'llvm_libc_revision': 'a02de4d0d992b110c8b180fdec91258e7b60265f', + 'compiler_rt_revision': 'bc2b30185219a2defe3c8a3b45f95a11386a7f6f', + # Three lines of non-changing comments so that + # the commit queue can handle CLs rolling feed @@ -749,8 +719,8 @@ diff --git a/DEPS b/DEPS + # If you change this, also update the libc++ revision in # //buildtools/deps_revisions.gni. - 'libcxx_revision': '7f8b68f91ca8b192375f5e71cd81fb3ed9650ef3', -@@ -1460,6 +1467,10 @@ deps = { + 'libcxx_revision': '449310fe2e37834a7e62972d2a690cade2ef596b', +@@ -1500,6 +1506,10 @@ deps = { 'condition': 'checkout_android and checkout_src_internal', }, @@ -759,16 +729,8 @@ diff --git a/DEPS b/DEPS + }, + 'src/docs/website': { - 'url': Var('chromium_git') + '/website.git' + '@' + '441c86221443f48e818335d51f84cf1880c35aa4', + 'url': Var('chromium_git') + '/website.git' + '@' + '929dd3e6d02aac1f46653d03b2a644e2873a3bbb', }, -@@ -1589,6 +1600,7 @@ deps = { - 'url': Var('chromium_git') + '/external/github.com/google/Accessibility-Test-Framework-for-Android.git' + '@' + '4a764c690353ea136c82f1a696a70bf38d1ef5fe', - }, - -+ - 'src/third_party/android_build_tools/protoc/cipd': { - 'packages': [ - { diff --git a/LICENSE b/LICENSE --- a/LICENSE +++ b/LICENSE @@ -832,9 +794,9 @@ diff --git a/base/threading/thread_restrictions.h b/base/threading/thread_restri +class SubscriptionServiceFactory; +} // namespace adblock namespace ash { - class BrowserDataBackMigrator; class LoginEventRecorder; -@@ -660,6 +667,8 @@ class BASE_EXPORT ScopedAllowBlocking { + class StartupCustomizationDocument; +@@ -659,6 +666,8 @@ class BASE_EXPORT ScopedAllowBlocking { friend class ::BrowserStateDirectoryBuilder; #endif @@ -875,7 +837,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn "//components/affiliations/core/browser:unit_tests", "//components/aggregation_service:unit_tests", "//components/apdu:unit_tests", -@@ -893,6 +897,7 @@ test("components_unittests") { +@@ -907,6 +911,7 @@ test("components_unittests") { repack("components_tests_pak") { sources = [ @@ -883,7 +845,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn "$root_gen_dir/components/arc/input_overlay_resources.pak", "$root_gen_dir/components/autofill/core/browser/geo/autofill_address_rewriter_resources.pak", "$root_gen_dir/components/components_resources.pak", -@@ -909,6 +914,7 @@ repack("components_tests_pak") { +@@ -923,6 +928,7 @@ repack("components_tests_pak") { # TODO(b/207518736): Input overlay resources will be changed to proto soon, # thus not going to move this resource pak to under ash. "//chromeos/ash/experiences/arc/input_overlay/resources:resources_grit", @@ -891,7 +853,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn "//components/autofill/core/browser:autofill_address_rewriter_resources", "//components/metrics:server_urls_grd", "//components/omnibox/resources:omnibox_pedal_synonyms", -@@ -1010,6 +1016,7 @@ if (use_blink) { +@@ -1024,6 +1030,7 @@ if (use_blink) { deps = [ "//base", "//base/test:test_support", @@ -899,7 +861,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn "//components/autofill/content/browser", "//components/autofill/content/browser:browser_tests", "//components/autofill/content/renderer", -@@ -1219,6 +1226,9 @@ if (use_blink) { +@@ -1233,6 +1240,9 @@ if (use_blink) { deps = [ "//base", @@ -50302,7 +50264,7 @@ diff --git a/content/browser/loader/navigation_url_loader_impl.cc b/content/brow #include "content/browser/loader/navigation_url_loader_impl.h" #include -@@ -1212,7 +1216,7 @@ void NavigationURLLoaderImpl::OnReceiveRedirect( +@@ -1247,7 +1251,7 @@ void NavigationURLLoaderImpl::OnReceiveRedirect( LogQueueTimeHistogram("Navigation.QueueTime.OnReceiveRedirect", resource_request_->is_outermost_main_frame); net::Error error = net::OK; @@ -50325,7 +50287,7 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/b #include "content/browser/renderer_host/render_frame_host_impl.h" -@@ -3464,6 +3468,12 @@ void RenderFrameHostImpl::ExecuteJavaScriptMethod( +@@ -3476,6 +3480,12 @@ void RenderFrameHostImpl::ExecuteJavaScriptMethod( std::move(callback)); } @@ -50352,7 +50314,7 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.h b/content/br #ifndef CONTENT_BROWSER_RENDERER_HOST_RENDER_FRAME_HOST_IMPL_H_ #define CONTENT_BROWSER_RENDERER_HOST_RENDER_FRAME_HOST_IMPL_H_ -@@ -495,6 +499,10 @@ class CONTENT_EXPORT RenderFrameHostImpl +@@ -499,6 +503,10 @@ class CONTENT_EXPORT RenderFrameHostImpl const std::u16string& method_name, base::Value::List arguments, JavaScriptResultCallback callback) override; @@ -50377,7 +50339,7 @@ diff --git a/content/public/browser/render_frame_host.h b/content/public/browser #ifndef CONTENT_PUBLIC_BROWSER_RENDER_FRAME_HOST_H_ #define CONTENT_PUBLIC_BROWSER_RENDER_FRAME_HOST_H_ -@@ -552,6 +556,9 @@ class CONTENT_EXPORT RenderFrameHost : public IPC::Listener, +@@ -550,6 +554,9 @@ class CONTENT_EXPORT RenderFrameHost : public IPC::Listener, virtual void AddMessageToConsole(blink::mojom::ConsoleMessageLevel level, const std::string& message) = 0; @@ -50426,7 +50388,7 @@ diff --git a/content/public/test/fake_local_frame.cc b/content/public/test/fake_ #include "content/public/test/fake_local_frame.h" -@@ -95,6 +99,9 @@ void FakeLocalFrame::RequestVideoFrameAtWithBoundsHint( +@@ -97,6 +101,9 @@ void FakeLocalFrame::RequestVideoFrameAtWithBoundsHint( void FakeLocalFrame::PluginActionAt(const gfx::Point& location, blink::mojom::PluginActionType action) {} @@ -50450,7 +50412,7 @@ diff --git a/content/public/test/fake_local_frame.h b/content/public/test/fake_l #ifndef CONTENT_PUBLIC_TEST_FAKE_LOCAL_FRAME_H_ #define CONTENT_PUBLIC_TEST_FAKE_LOCAL_FRAME_H_ -@@ -78,6 +82,7 @@ class FakeLocalFrame : public blink::mojom::LocalFrame { +@@ -79,6 +83,7 @@ class FakeLocalFrame : public blink::mojom::LocalFrame { RequestVideoFrameAtWithBoundsHintCallback callback) override; void PluginActionAt(const gfx::Point& location, blink::mojom::PluginActionType action) override; @@ -50547,7 +50509,7 @@ diff --git a/content/shell/app/shell_main_delegate.cc b/content/shell/app/shell_ #include "content/shell/app/shell_main_delegate.h" -@@ -30,7 +34,7 @@ +@@ -31,7 +35,7 @@ #include "content/public/common/main_function_params.h" #include "content/public/common/url_constants.h" #include "content/shell/app/shell_crash_reporter_client.h" @@ -50952,7 +50914,7 @@ diff --git a/third_party/blink/public/mojom/frame/frame.mojom b/third_party/blin module blink.mojom; -@@ -968,6 +972,10 @@ interface LocalFrame { +@@ -972,6 +976,10 @@ interface LocalFrame { // the given point in the view coordinate space. PluginActionAt(gfx.mojom.Point location, blink.mojom.PluginActionType action); @@ -51006,7 +50968,7 @@ diff --git a/third_party/blink/renderer/core/dom/events/event_target.cc b/third_ #include "third_party/blink/renderer/core/dom/events/event_target.h" #include -@@ -867,7 +871,10 @@ bool EventTarget::dispatchEventForBindings(Event* event, +@@ -881,7 +885,10 @@ bool EventTarget::dispatchEventForBindings(Event* event, if (!GetExecutionContext()) return false; @@ -51121,7 +51083,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame_mojo_handler.h b/ #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_FRAME_LOCAL_FRAME_MOJO_HANDLER_H_ #define THIRD_PARTY_BLINK_RENDERER_CORE_FRAME_LOCAL_FRAME_MOJO_HANDLER_H_ -@@ -112,6 +116,7 @@ class LocalFrameMojoHandler +@@ -113,6 +117,7 @@ class LocalFrameMojoHandler void AddMessageToConsole(mojom::blink::ConsoleMessageLevel level, const WTF::String& message, bool discard_duplicates) final; @@ -51143,7 +51105,7 @@ diff --git a/third_party/blink/renderer/core/html/html_element.cc b/third_party/ #include "third_party/blink/renderer/core/html/html_element.h" #include "base/containers/enum_set.h" -@@ -2414,7 +2418,13 @@ void HTMLElement::setSpellcheck(bool enable) { +@@ -2419,7 +2423,13 @@ void HTMLElement::setSpellcheck(bool enable) { } void HTMLElement::click() { @@ -51822,7 +51784,7 @@ diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ # This file is used to assign starting resource ids for resources and strings # used by Chromium. This is done to ensure that resource ids are unique # across all the grd files. If you are adding a new grd file, please add -@@ -1109,6 +1113,14 @@ +@@ -1137,6 +1141,14 @@ "components/user_scripts/browser/resources/browser_resources.grd": { "includes": [7620], }, @@ -51860,7 +51822,7 @@ diff --git a/tools/metrics/histograms/metadata/extensions/enums.xml b/tools/metr -@@ -3196,6 +3200,8 @@ Called by update_extension_permission.py.--> +@@ -3202,6 +3206,8 @@ Called by update_extension_permission.py.--> diff --git a/build/patches/eyeo-133.0.6943.49-chrome_integration.patch b/build/patches/eyeo-133.0.6943.49-chrome_integration.patch index 270c03f0..96c468c6 100644 --- a/build/patches/eyeo-133.0.6943.49-chrome_integration.patch +++ b/build/patches/eyeo-133.0.6943.49-chrome_integration.patch @@ -106,7 +106,7 @@ diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegat #ifdef UNSAFE_BUFFERS_BUILD // TODO(crbug.com/40285824): Remove this and convert code to safer constructs. -@@ -42,6 +46,7 @@ +@@ -43,6 +47,7 @@ #include "base/timer/timer.h" #include "base/trace_event/trace_event_impl.h" #include "build/build_config.h" @@ -145,7 +145,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "affiliations/affiliation_service_factory.cc", "affiliations/affiliation_service_factory.h", "after_startup_task_utils.cc", -@@ -2024,6 +2029,7 @@ static_library("browser") { +@@ -2050,6 +2055,7 @@ static_library("browser") { "//chrome/common/notifications", "//chrome/installer/util:with_no_strings", "//chrome/services/speech/buildflags", @@ -153,7 +153,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "//components/assist_ranker", "//components/autofill/core/browser", "//components/back_forward_cache", -@@ -3245,6 +3251,7 @@ static_library("browser") { +@@ -3276,6 +3282,7 @@ static_library("browser") { "touch_to_fill/password_manager/touch_to_fill_controller_webauthn_delegate.h", ] @@ -161,7 +161,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn deps += [ ":delta_file_proto", ":profile_token", -@@ -8313,6 +8320,7 @@ static_library("browser_public_dependencies") { +@@ -8359,6 +8366,7 @@ static_library("browser_public_dependencies") { "//chrome/services/file_util/public/mojom", "//components/account_id", "//components/autofill/content/browser", @@ -3473,7 +3473,7 @@ diff --git a/chrome/browser/client_hints/client_hints_browsertest.cc b/chrome/br #include "components/client_hints/common/client_hints.h" -@@ -661,7 +665,12 @@ class ClientHintsBrowserTest : public policy::PolicyTest { +@@ -660,7 +664,12 @@ class ClientHintsBrowserTest : public policy::PolicyTest { std::unique_ptr feature_list(new base::FeatureList); // Force-enable the ClientHintsFormFactors feature, so that the header is // represented in the various header counts. @@ -3500,7 +3500,7 @@ diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUIL import("//build/config/chromebox_for_meetings/buildflags.gni") import("//build/config/chromeos/ui_mode.gni") -@@ -271,6 +274,7 @@ source_set("extensions") { +@@ -300,6 +303,7 @@ source_set("extensions") { "window_controller_list.h", "window_controller_list_observer.h", ] @@ -3508,7 +3508,7 @@ diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUIL configs += [ "//build/config:precompiled_headers", "//build/config/compiler:wexit_time_destructors", -@@ -725,6 +729,7 @@ source_set("extensions") { +@@ -753,6 +757,7 @@ source_set("extensions") { ] } @@ -3562,15 +3562,15 @@ diff --git a/chrome/browser/page_load_metrics/observers/ad_metrics/ads_page_load #include "components/page_load_metrics/browser/observers/ad_metrics/ads_page_load_metrics_observer.h" -@@ -21,6 +25,7 @@ - #include "chrome/browser/ui/browser.h" +@@ -22,6 +26,7 @@ + #include "chrome/browser/ui/views/frame/browser_view.h" #include "chrome/test/base/in_process_browser_test.h" #include "chrome/test/base/ui_test_utils.h" +#include "components/adblock/core/features.h" #include "components/heavy_ad_intervention/heavy_ad_features.h" #include "components/page_load_metrics/browser/ads_page_load_metrics_test_waiter.h" #include "components/page_load_metrics/browser/observers/ad_metrics/ad_intervention_browser_test_utils.h" -@@ -1499,7 +1504,7 @@ class AdsPageLoadMetricsObserverResourceBrowserTest +@@ -1501,7 +1506,7 @@ class AdsPageLoadMetricsObserverResourceBrowserTest {heavy_ad_intervention::features::kHeavyAdIntervention, {}}, {heavy_ad_intervention::features::kHeavyAdPrivacyMitigations, {{"host-threshold", "3"}}}}, @@ -3598,8 +3598,8 @@ diff --git a/chrome/browser/preferences/BUILD.gn b/chrome/browser/preferences/BU "//chrome/common/pref_names.h", + "//components/adblock/core/common/adblock_prefs.cc", "//components/autofill/core/common/autofill_prefs.h", + "//components/bookmarks/common/bookmark_pref_names.h", "//components/commerce/core/pref_names.h", - "//components/dom_distiller/core/pref_names.h", 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 @@ -3649,7 +3649,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc #include "chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.h" -@@ -230,6 +234,15 @@ +@@ -236,6 +240,15 @@ #include "chrome/browser/webid/federated_identity_permission_context_factory.h" #include "chrome/common/buildflags.h" #include "chrome/common/chrome_features.h" @@ -3665,7 +3665,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc #include "components/autofill/content/browser/autofill_log_router_factory.h" #include "components/breadcrumbs/core/breadcrumbs_status.h" #include "components/captive_portal/core/buildflags.h" -@@ -874,6 +887,15 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -883,6 +896,15 @@ void ChromeBrowserMainExtraPartsProfiles:: // Makes manual testing possible. FakeSmartCardDeviceServiceFactory::GetInstance(); #endif @@ -3702,7 +3702,7 @@ diff --git a/chrome/browser/profiles/profile_keyed_service_browsertest.cc b/chro }; // clang-format on -@@ -829,6 +840,13 @@ IN_PROC_BROWSER_TEST_F(ProfileKeyedServiceGuestBrowserTest, +@@ -845,6 +856,13 @@ IN_PROC_BROWSER_TEST_F(ProfileKeyedServiceGuestBrowserTest, "ZeroSuggestCacheServiceFactory", #endif // !BUILDFLAG(IS_CHROMEOS) @@ -3727,24 +3727,24 @@ diff --git a/chrome/browser/resources/BUILD.gn b/chrome/browser/resources/BUILD. +# This source code is a part of eyeo Chromium SDK. +# Use of this source code is governed by the GPLv3 that can be found in the components/adblock/LICENSE file. - import("//build/config/chromeos/ui_mode.gni") import("//chrome/browser/buildflags.gni") -@@ -270,6 +273,7 @@ group("dev_ui_resources") { + import("//chrome/common/features.gni") +@@ -278,6 +281,7 @@ group("dev_ui_resources") { "predictors:resources", "privacy_sandbox/internals:resources", "usb_internals:resources", + "//components/adblock/content/resources/adblock_internals:resources", "//components/commerce/core/internals/resources", + "//components/data_sharing/data_sharing_internals/resources", "//components/download/resources/download_internals:resources", - "//components/history_clusters/history_clusters_internals/resources", -@@ -335,6 +339,7 @@ repack("dev_ui_paks") { +@@ -344,6 +348,7 @@ repack("dev_ui_paks") { "$root_gen_dir/chrome/predictors_resources.pak", "$root_gen_dir/chrome/privacy_sandbox_internals_resources.pak", "$root_gen_dir/chrome/usb_internals_resources.pak", + "$root_gen_dir/components/adblock_internals_resources.pak", "$root_gen_dir/components/commerce_internals_resources.pak", + "$root_gen_dir/components/data_sharing_internals_resources.pak", "$root_gen_dir/components/dev_ui_components_resources.pak", - "$root_gen_dir/components/download_internals_resources.pak", diff --git a/chrome/browser/safe_browsing/safe_browsing_blocking_page_test.cc b/chrome/browser/safe_browsing/safe_browsing_blocking_page_test.cc --- a/chrome/browser/safe_browsing/safe_browsing_blocking_page_test.cc +++ b/chrome/browser/safe_browsing/safe_browsing_blocking_page_test.cc @@ -3759,7 +3759,7 @@ diff --git a/chrome/browser/safe_browsing/safe_browsing_blocking_page_test.cc b/ #include "components/safe_browsing/content/browser/safe_browsing_blocking_page.h" -@@ -70,6 +74,7 @@ +@@ -68,6 +72,7 @@ #include "chrome/common/url_constants.h" #include "chrome/test/base/in_process_browser_test.h" #include "chrome/test/base/ui_test_utils.h" @@ -3767,7 +3767,7 @@ diff --git a/chrome/browser/safe_browsing/safe_browsing_blocking_page_test.cc b/ #include "components/enterprise/connectors/core/common.h" #include "components/enterprise/connectors/core/connectors_prefs.h" #include "components/google/core/common/google_util.h" -@@ -682,7 +687,7 @@ class SafeBrowsingBlockingPageBrowserTest +@@ -357,7 +362,7 @@ class SafeBrowsingBlockingPageBrowserTest scoped_feature_list_.InitWithFeaturesAndParameters( {tag_and_attribute, add_warning_shown_timestamp_csbrrs, create_warning_shown_csbrrs, abusive_notification_revocation}, @@ -3790,7 +3790,7 @@ diff --git a/chrome/browser/sessions/session_restore_browsertest.cc b/chrome/bro #ifdef UNSAFE_BUFFERS_BUILD // TODO(crbug.com/40285824): Remove this and convert code to safer constructs. -@@ -4445,8 +4449,10 @@ INSTANTIATE_TEST_SUITE_P( +@@ -4400,8 +4404,10 @@ INSTANTIATE_TEST_SUITE_P( SessionRestoreStaleSessionCookieDeletionTest, testing::Bool()); @@ -3847,7 +3847,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn import("//build/config/buildflags_paint_preview.gni") import("//build/config/compiler/compiler.gni") -@@ -432,6 +435,7 @@ static_library("ui") { +@@ -434,6 +437,7 @@ static_library("ui") { "//chrome/services/media_gallery_util/public/mojom", "//components/access_code_cast/common:metrics", "//components/account_id", @@ -3915,7 +3915,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc #include "components/autofill/content/browser/content_autofill_client.h" #include "components/autofill/content/browser/content_autofill_driver_factory.h" #include "components/autofill/core/browser/foundations/browser_autofill_manager.h" -@@ -336,6 +342,12 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -339,6 +345,12 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { optimization_guide_decider); } } @@ -3928,7 +3928,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc autofill::AutofillClientProvider& autofill_client_provider = autofill::AutofillClientProviderFactory::GetForProfile(profile); autofill_client_provider.CreateClientForWebContents(web_contents); -@@ -366,6 +378,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -376,6 +388,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { ip_protection::IpProtectionStatus::CreateForWebContents(web_contents); } #endif // BUILDFLAG(IS_ANDROID) @@ -3949,15 +3949,15 @@ diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni import("//ash/ambient/resources/resources.gni") import("//build/config/chrome_build.gni") -@@ -115,6 +118,7 @@ template("chrome_extra_paks") { - "$root_gen_dir/chrome/data_sharing_internals_resources.pak", +@@ -113,6 +116,7 @@ template("chrome_extra_paks") { + "$root_gen_dir/chrome/common_resources.pak", "$root_gen_dir/chrome/saved_tab_groups_unsupported_resources.pak", "$root_gen_dir/chrome/segmentation_internals_resources.pak", + "$root_gen_dir/components/adblock/core/resources/adblock_resources.pak", "$root_gen_dir/components/autofill/core/browser/geo/autofill_address_rewriter_resources.pak", "$root_gen_dir/components/autofill_and_password_manager_internals_resources.pak", "$root_gen_dir/components/chrome_urls_resources.pak", -@@ -150,6 +154,7 @@ template("chrome_extra_paks") { +@@ -148,6 +152,7 @@ template("chrome_extra_paks") { "//chrome/browser/resources:resources", "//chrome/browser/resources/saved_tab_groups_unsupported:resources", "//chrome/common:resources", @@ -3991,7 +3991,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn import("//build/cipd/cipd.gni") import("//build/config/buildflags_paint_preview.gni") -@@ -1641,6 +1644,7 @@ if (is_android) { +@@ -1689,6 +1692,7 @@ if (is_android) { "//chrome/test/data/webui:browser_tests", "//chrome/test/data/webui:interactive_ui_tests", "//chrome/test/data/webui:resources", @@ -3999,7 +3999,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn "//components/autofill/content/browser:test_support", "//components/autofill/content/renderer:test_support", "//components/autofill/core/common:common", -@@ -2231,6 +2235,7 @@ if (!is_android) { +@@ -2282,6 +2286,7 @@ if (!is_android) { "//chrome/test/media_router/access_code_cast:access_code_cast_integration_base", "//chrome/test/payments:test_support", "//chrome/test/supervised_user:test_support", @@ -4007,7 +4007,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn "//components/affiliations/core/browser:affiliation_proto", "//components/affiliations/core/browser:test_support", "//components/autofill/content/browser:autofill_shared_storage_proto", -@@ -2734,6 +2739,7 @@ if (!is_android) { +@@ -2783,6 +2788,7 @@ if (!is_android) { "//chrome/renderer/resources/extensions/", "//chrome/test/data/cart/", "//components/test/data/ad_tagging/", @@ -4015,8 +4015,8 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn "//components/test/data/ads_observer/", "//components/test/data/autofill/", "//components/test/data/custom_handlers", -@@ -2822,6 +2828,9 @@ if (!is_android) { - "../browser/accessibility/interstitial_accessibility_browsertest.cc", +@@ -2871,6 +2877,9 @@ if (!is_android) { + "../browser/accessibility/live_translate_controller_browsertest.cc", "../browser/accessibility/page_colors_browsertest.cc", "../browser/accessibility/phrase_segmentation/dependency_parser_model_loader_browsertest.cc", + "../browser/adblock/test/adblock_frame_hierarchy_builder_browsertest.cc", @@ -4025,7 +4025,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn "../browser/ai/ai_data_keyed_service_browsertest.cc", "../browser/attribution_reporting/chrome_attribution_browsertest.cc", "../browser/autocomplete/autocomplete_browsertest.cc", -@@ -4374,6 +4383,7 @@ if (!is_android) { +@@ -4422,6 +4431,7 @@ if (!is_android) { ] } @@ -4033,7 +4033,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn if (is_chromeos) { deps += [ "//chromeos/ash/components/network/portal_detector:test_support" ] -@@ -5856,6 +5866,7 @@ test("unit_tests") { +@@ -5917,6 +5927,7 @@ test("unit_tests") { sources = [ # All unittests in browser, common, renderer and service. "../browser/about_flags_unittest.cc", @@ -4041,7 +4041,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn "../browser/after_startup_task_utils_unittest.cc", "../browser/apps/icon_standardizer_unittest.cc", "../browser/apps/user_type_filter_unittest.cc", -@@ -6515,6 +6526,8 @@ test("unit_tests") { +@@ -6589,6 +6600,8 @@ test("unit_tests") { "//chrome/common/themes:unit_tests", "//chrome/services/file_util:unit_tests", "//components/account_id", @@ -4050,7 +4050,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn "//components/affiliations/core/browser:test_support", "//components/assist_ranker/proto", "//components/autofill/content/browser:test_support", -@@ -10319,6 +10332,7 @@ if (!is_android) { +@@ -10409,6 +10422,7 @@ if (!is_android) { "//chrome/browser:test_support_ui", "//chrome/browser/ui/exclusive_access", "//chrome/browser/ui/views/side_panel", @@ -4072,7 +4072,7 @@ diff --git a/chrome/test/base/in_process_browser_test.cc b/chrome/test/base/in_p #include "chrome/test/base/in_process_browser_test.h" #include -@@ -156,6 +160,10 @@ +@@ -155,6 +159,10 @@ #include "ui/views/widget/widget.h" #endif @@ -4083,7 +4083,7 @@ diff --git a/chrome/test/base/in_process_browser_test.cc b/chrome/test/base/in_p namespace { #if BUILDFLAG(IS_CHROMEOS) -@@ -615,8 +623,22 @@ void InProcessBrowserTest::CreatedBrowserMainParts( +@@ -595,8 +603,22 @@ void InProcessBrowserTest::CreatedBrowserMainParts( void InProcessBrowserTest::SelectFirstBrowser() { const BrowserList* browser_list = BrowserList::GetInstance(); diff --git a/build/patches/eyeo-133.0.6943.49-extension_api.patch b/build/patches/eyeo-133.0.6943.49-extension_api.patch index 86b3ae2e..3a5decf2 100644 --- a/build/patches/eyeo-133.0.6943.49-extension_api.patch +++ b/build/patches/eyeo-133.0.6943.49-extension_api.patch @@ -72,7 +72,7 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUILD.gn --- a/chrome/browser/extensions/BUILD.gn +++ b/chrome/browser/extensions/BUILD.gn -@@ -729,6 +729,17 @@ source_set("extensions") { +@@ -757,6 +757,17 @@ source_set("extensions") { ] } @@ -103,7 +103,7 @@ diff --git a/chrome/browser/extensions/api/BUILD.gn b/chrome/browser/extensions/ import("//chrome/common/extensions/api/api_sources.gni") import("//chrome/common/features.gni") -@@ -133,6 +136,7 @@ function_registration("api_registration") { +@@ -134,6 +137,7 @@ function_registration("api_registration") { # include generated headers from these targets. # TODO(brettw) this should be made unnecessary if possible. "//chrome/common/extensions/api", @@ -2138,7 +2138,7 @@ diff --git a/chrome/browser/extensions/api/api_browser_context_keyed_service_fac #include "chrome/browser/extensions/api/cookies/cookies_api.h" #include "chrome/browser/extensions/api/developer_private/developer_private_api.h" -@@ -15,11 +19,13 @@ +@@ -15,12 +19,14 @@ #include "build/build_config.h" #include "build/chromeos_buildflags.h" #include "chrome/browser/extensions/api/activity_log_private/activity_log_private_api.h" @@ -2148,11 +2148,12 @@ diff --git a/chrome/browser/extensions/api/api_browser_context_keyed_service_fac #include "chrome/browser/extensions/api/bookmarks/bookmarks_api.h" #include "chrome/browser/extensions/api/bookmarks/bookmarks_api_watcher.h" // nogncheck #include "chrome/browser/extensions/api/braille_display_private/braille_display_private_api.h" + #include "chrome/browser/extensions/api/enterprise_reporting_private/enterprise_reporting_private_event_router.h" +#include "chrome/browser/extensions/api/eyeo_filtering_private/eyeo_filtering_private_api.h" #include "chrome/browser/extensions/api/font_settings/font_settings_api.h" #include "chrome/browser/extensions/api/history/history_api.h" #include "chrome/browser/extensions/api/identity/identity_api.h" -@@ -83,6 +89,7 @@ void EnsureApiBrowserContextKeyedServiceFactoriesBuilt() { +@@ -84,6 +90,7 @@ void EnsureApiBrowserContextKeyedServiceFactoriesBuilt() { #if BUILDFLAG(ENABLE_EXTENSIONS) extensions::ActivityLogAPI::GetFactoryInstance(); @@ -2160,10 +2161,10 @@ diff --git a/chrome/browser/extensions/api/api_browser_context_keyed_service_fac extensions::AutofillPrivateEventRouterFactory::GetInstance(); extensions::BluetoothLowEnergyAPI::GetFactoryInstance(); extensions::BookmarksAPI::GetFactoryInstance(); -@@ -93,6 +100,7 @@ void EnsureApiBrowserContextKeyedServiceFactoriesBuilt() { - #if BUILDFLAG(IS_CHROMEOS) +@@ -95,6 +102,7 @@ void EnsureApiBrowserContextKeyedServiceFactoriesBuilt() { extensions::DocumentScanAPIHandler::GetFactoryInstance(); #endif + extensions::EnterpriseReportingPrivateEventRouterFactory::GetInstance(); + extensions::EyeoFilteringPrivateAPI::GetFactoryInstance(); extensions::FontSettingsAPI::GetFactoryInstance(); extensions::HistoryAPI::GetFactoryInstance(); @@ -3610,7 +3611,7 @@ diff --git a/chrome/common/extensions/api/_api_features.json b/chrome/common/ext // See chrome/common/extensions/api/_features.md to understand this file, as @@ -65,6 +69,16 @@ "dependencies": ["permission:experimentalAiData"], - "channel": "dev" + "channel": "beta" }, + "adblockPrivate": [{ + "dependencies": ["permission:adblockPrivate"], @@ -3625,7 +3626,7 @@ diff --git a/chrome/common/extensions/api/_api_features.json b/chrome/common/ext "app": { "blocklist": [ "2FC374607C2DF285634B67C64A2E356C607091C3", // Quickoffice -@@ -526,6 +540,14 @@ +@@ -529,6 +543,14 @@ "channel": "stable", "contexts": [] }, @@ -4162,7 +4163,7 @@ diff --git a/chrome/common/extensions/permissions/permission_set_unittest.cc b/c diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn -@@ -3762,6 +3762,20 @@ if (!is_android) { +@@ -3815,6 +3815,20 @@ if (!is_android) { ] } diff --git a/build/patches/kill-Location-fall-back-to-system.patch b/build/patches/kill-Location-fall-back-to-system.patch index 49994eb8..f13284e0 100644 --- a/build/patches/kill-Location-fall-back-to-system.patch +++ b/build/patches/kill-Location-fall-back-to-system.patch @@ -48,21 +48,21 @@ diff --git a/services/device/geolocation/android/java/src/org/chromium/device/ge diff --git a/services/device/public/cpp/device_features.cc b/services/device/public/cpp/device_features.cc --- a/services/device/public/cpp/device_features.cc +++ b/services/device/public/cpp/device_features.cc -@@ -64,6 +64,7 @@ const base::FeatureParam kWinSystemLocationPermissionPollingParam{ - BASE_FEATURE(kLocationProviderManager, +@@ -71,6 +71,7 @@ BASE_FEATURE(kLocationProviderManager, "LocationProviderManager", base::FEATURE_DISABLED_BY_DEFAULT); + #endif // BUILDFLAG(IS_MAC) +SET_CROMITE_FEATURE_DISABLED(kLocationProviderManager); #if BUILDFLAG(IS_CHROMEOS) // Enables crash key logging for USB device open operations on ChromeOS. See -@@ -105,7 +106,7 @@ const base::FeatureParam::Option +@@ -119,7 +120,7 @@ const base::FeatureParam const base::FeatureParam kLocationProviderManagerParam{ &kLocationProviderManager, "LocationProviderManagerMode", - device::mojom::LocationProviderManagerMode::kNetworkOnly, + device::mojom::LocationProviderManagerMode::kPlatformOnly, &location_provider_manager_mode_options}; + #endif // BUILDFLAG(IS_MAC) - bool IsOsLevelGeolocationPermissionSupportEnabled() { -- diff --git a/build/patches/ungoogled-chromium-Disable-profile-avatar.patch b/build/patches/ungoogled-chromium-Disable-profile-avatar.patch index 82648b0a..d984ccbb 100644 --- a/build/patches/ungoogled-chromium-Disable-profile-avatar.patch +++ b/build/patches/ungoogled-chromium-Disable-profile-avatar.patch @@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -1295,8 +1295,6 @@ static_library("browser") { +@@ -1313,8 +1313,6 @@ static_library("browser") { "profiles/keep_alive/scoped_profile_keep_alive.h", "profiles/off_the_record_profile_impl.cc", "profiles/off_the_record_profile_impl.h", diff --git a/build/patches/ungoogled-chromium-Disable-translate-integration.patch b/build/patches/ungoogled-chromium-Disable-translate-integration.patch index d1023b7e..81a7646b 100644 --- a/build/patches/ungoogled-chromium-Disable-translate-integration.patch +++ b/build/patches/ungoogled-chromium-Disable-translate-integration.patch @@ -173,7 +173,7 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -2096,9 +2096,6 @@ Your Google account may have other forms of browsing history like searches and a +@@ -2104,9 +2104,6 @@ Your Google account may have other forms of browsing history like searches and a Let websites know the languages you speak. They’ll show content in those languages, when possible. diff --git a/build/patches/ungoogled-chromium-Disable-untraceable-URLs.patch b/build/patches/ungoogled-chromium-Disable-untraceable-URLs.patch index 46d8da58..2c9cdf5d 100644 --- a/build/patches/ungoogled-chromium-Disable-untraceable-URLs.patch +++ b/build/patches/ungoogled-chromium-Disable-untraceable-URLs.patch @@ -54,7 +54,7 @@ diff --git a/rlz/lib/financial_ping.cc b/rlz/lib/financial_ping.cc diff --git a/rlz/lib/lib_values.cc b/rlz/lib/lib_values.cc --- a/rlz/lib/lib_values.cc +++ b/rlz/lib/lib_values.cc -@@ -40,7 +40,6 @@ const char kSetDccResponseVariable[] = "set_dcc"; +@@ -45,7 +45,6 @@ const char kSetDccResponseVariable[] = "set_dcc"; // const char kFinancialPingPath[] = "/tools/pso/ping"; diff --git a/build/patches/ungoogled-chromium-Disable-webRTC-log-uploader.patch b/build/patches/ungoogled-chromium-Disable-webRTC-log-uploader.patch index ce8ec860..69dc5cff 100644 --- a/build/patches/ungoogled-chromium-Disable-webRTC-log-uploader.patch +++ b/build/patches/ungoogled-chromium-Disable-webRTC-log-uploader.patch @@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc --- a/chrome/browser/ui/browser_ui_prefs.cc +++ b/chrome/browser/ui/browser_ui_prefs.cc -@@ -113,7 +113,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -114,7 +114,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { registry->RegisterStringPref(prefs::kWebRTCUDPPortRange, std::string()); registry->RegisterBooleanPref(prefs::kWebRtcEventLogCollectionAllowed, false); registry->RegisterListPref(prefs::kWebRtcLocalIpsAllowedUrls); diff --git a/build/patches/ungoogled-chromium-no-special-hosts-domains.patch b/build/patches/ungoogled-chromium-no-special-hosts-domains.patch index 288d2bc9..0ee71968 100644 --- a/build/patches/ungoogled-chromium-no-special-hosts-domains.patch +++ b/build/patches/ungoogled-chromium-no-special-hosts-domains.patch @@ -93,7 +93,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -896,10 +896,6 @@ static_library("browser") { +@@ -908,10 +908,6 @@ static_library("browser") { "page_info/privacy_policy_insights_service_factory.h", "page_load_metrics/observers/bookmark_bar_page_load_metrics_observer.cc", "page_load_metrics/observers/bookmark_bar_page_load_metrics_observer.h", @@ -104,7 +104,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "page_load_metrics/observers/core/amp_page_load_metrics_observer.cc", "page_load_metrics/observers/core/amp_page_load_metrics_observer.h", "page_load_metrics/observers/core/ukm_page_load_metrics_observer.cc", -@@ -908,10 +904,6 @@ static_library("browser") { +@@ -920,10 +916,6 @@ static_library("browser") { "page_load_metrics/observers/document_write_page_load_metrics_observer.h", "page_load_metrics/observers/foreground_duration_ukm_observer.cc", "page_load_metrics/observers/foreground_duration_ukm_observer.h", @@ -115,7 +115,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "page_load_metrics/observers/histogram_suffixes.cc", "page_load_metrics/observers/histogram_suffixes.h", "page_load_metrics/observers/https_engagement_metrics/https_engagement_page_load_metrics_observer.cc", -@@ -1563,8 +1555,6 @@ static_library("browser") { +@@ -1579,8 +1571,6 @@ static_library("browser") { "supervised_user/classify_url_navigation_throttle.h", "supervised_user/supervised_user_browser_utils.cc", "supervised_user/supervised_user_browser_utils.h", @@ -124,7 +124,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "supervised_user/supervised_user_interstitial_tab_closer.cc", "supervised_user/supervised_user_interstitial_tab_closer.h", "supervised_user/supervised_user_metrics_service_factory.cc", -@@ -1747,10 +1737,7 @@ static_library("browser") { +@@ -1769,10 +1759,7 @@ static_library("browser") { "//chrome/browser/content_settings:impl", "//chrome/browser/devtools", "//chrome/browser/favicon", @@ -135,14 +135,14 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "//chrome/browser/ip_protection", "//chrome/browser/media/webrtc", "//chrome/browser/navigation_predictor:impl", -@@ -1829,7 +1816,6 @@ static_library("browser") { +@@ -1855,7 +1842,6 @@ static_library("browser") { # New dependencies inside of //chrome/browser that generate header files # should be added to browser_generated_files. ":browser_public_dependencies", - "//chrome/browser/google", "//chrome/browser/headless", "//chrome/browser/profiles", - "//chrome/browser/resource_coordinator:tab_lifecycle_observer", + "//chrome/browser/ui/tabs:tab_enums", diff --git a/chrome/browser/android/metrics/uma_session_stats.cc b/chrome/browser/android/metrics/uma_session_stats.cc --- a/chrome/browser/android/metrics/uma_session_stats.cc +++ b/chrome/browser/android/metrics/uma_session_stats.cc @@ -166,7 +166,7 @@ diff --git a/chrome/browser/android/metrics/uma_session_stats.cc b/chrome/browse diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc --- a/chrome/browser/browser_process_impl.cc +++ b/chrome/browser/browser_process_impl.cc -@@ -1227,7 +1227,6 @@ BrowserProcessImpl::component_updater() { +@@ -1239,7 +1239,6 @@ BrowserProcessImpl::component_updater() { std::make_unique(); std::string brand; @@ -204,7 +204,7 @@ diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_brows diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -2979,7 +2979,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( +@@ -2990,7 +2990,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( switches::kForcePNaClSubzero, #endif switches::kForceUIDirection, @@ -212,7 +212,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch switches::kJavaScriptHarmony, switches::kEnableExperimentalWebAssemblyFeatures, embedder_support::kOriginTrialDisabledFeatures, -@@ -5358,9 +5357,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( +@@ -5420,9 +5419,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( &throttles); #endif @@ -222,7 +222,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch MaybeAddThrottle( supervised_user::MaybeCreateClassifyUrlNavigationThrottleFor(handle), -@@ -5973,7 +5969,8 @@ GetClientDataHeader(content::FrameTreeNodeId frame_tree_node_id) { +@@ -6041,7 +6037,8 @@ GetClientDataHeader(content::FrameTreeNodeId frame_tree_node_id) { } #endif @@ -232,7 +232,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch #if BUILDFLAG(IS_ANDROID) const std::string& client_data_header, #endif -@@ -6013,7 +6010,7 @@ std::unique_ptr CreateGoogleURLLoaderThrottle( +@@ -6081,7 +6078,7 @@ std::unique_ptr CreateGoogleURLLoaderThrottle( std::move(bound_session_request_throttled_handler), #endif std::move(dynamic_params)); @@ -241,7 +241,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch std::vector> ChromeContentBrowserClient::CreateURLLoaderThrottles( -@@ -6070,15 +6067,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottles( +@@ -6138,15 +6135,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottles( GetClientDataHeader(frame_tree_node_id); #endif @@ -257,7 +257,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch { auto* factory = ProtocolHandlerRegistryFactory::GetForBrowserContext(browser_context); -@@ -6133,20 +6121,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottlesForKeepAlive( +@@ -6201,20 +6189,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottlesForKeepAlive( } #endif @@ -327,7 +327,7 @@ diff --git a/chrome/browser/domain_reliability/service_factory.cc b/chrome/brows diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUILD.gn --- a/chrome/browser/extensions/BUILD.gn +++ b/chrome/browser/extensions/BUILD.gn -@@ -284,7 +284,6 @@ source_set("extensions") { +@@ -313,7 +313,6 @@ source_set("extensions") { "//chrome/browser/extensions:cws_item_service_proto", "//chrome/browser/extensions/api:api_registration", "//chrome/browser/favicon", @@ -349,7 +349,7 @@ diff --git a/chrome/browser/feedback/BUILD.gn b/chrome/browser/feedback/BUILD.gn diff --git a/chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc b/chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc --- a/chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc +++ b/chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc -@@ -124,7 +124,6 @@ constexpr char kOsVersionTag[] = "OS VERSION"; +@@ -123,7 +123,6 @@ constexpr char kOsVersionTag[] = "OS VERSION"; #if BUILDFLAG(IS_WIN) constexpr char kUsbKeyboardDetected[] = "usb_keyboard_detected"; constexpr char kIsEnrolledToDomain[] = "enrolled_to_domain"; @@ -357,7 +357,7 @@ diff --git a/chrome/browser/feedback/system_logs/log_sources/chrome_internal_log #if BUILDFLAG(GOOGLE_CHROME_BRANDING) constexpr char kInstallResultCode[] = "install_result_code"; constexpr char kInstallLocation[] = "install_location"; -@@ -656,10 +655,6 @@ void ChromeInternalLogSource::PopulateEnrolledToDomain( +@@ -655,10 +654,6 @@ void ChromeInternalLogSource::PopulateEnrolledToDomain( void ChromeInternalLogSource::PopulateInstallerBrandCode( SystemLogsResponse* response) { @@ -389,7 +389,7 @@ diff --git a/chrome/browser/first_run/first_run.cc b/chrome/browser/first_run/fi diff --git a/chrome/browser/google/BUILD.gn b/chrome/browser/google/BUILD.gn --- a/chrome/browser/google/BUILD.gn +++ b/chrome/browser/google/BUILD.gn -@@ -7,7 +7,7 @@ import("//build/config/chromeos/ui_mode.gni") +@@ -6,7 +6,7 @@ import("//build/config/chrome_build.gni") assert(!is_fuchsia, "Fuchsia shouldn't use anything in //chrome") @@ -398,7 +398,7 @@ diff --git a/chrome/browser/google/BUILD.gn b/chrome/browser/google/BUILD.gn sources = [ "google_brand.cc", "google_brand.h", -@@ -87,7 +87,7 @@ source_set("unit_tests") { +@@ -86,7 +86,7 @@ source_set("unit_tests") { sources = [ "google_update_settings_unittest.cc" ] deps = [ @@ -584,7 +584,7 @@ diff --git a/chrome/browser/metrics/metrics_reporting_state.cc b/chrome/browser/ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc --- a/chrome/browser/net/system_network_context_manager.cc +++ b/chrome/browser/net/system_network_context_manager.cc -@@ -848,7 +848,6 @@ void SystemNetworkContextManager::AddSSLConfigToNetworkContextParams( +@@ -851,7 +851,6 @@ void SystemNetworkContextManager::AddSSLConfigToNetworkContextParams( void SystemNetworkContextManager::ConfigureDefaultNetworkContextParams( network::mojom::NetworkContextParams* network_context_params) { variations::UpdateCorsExemptHeaderForVariations(network_context_params); @@ -595,7 +595,7 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows diff --git a/chrome/browser/new_tab_page/one_google_bar/one_google_bar_loader_impl.cc b/chrome/browser/new_tab_page/one_google_bar/one_google_bar_loader_impl.cc --- a/chrome/browser/new_tab_page/one_google_bar/one_google_bar_loader_impl.cc +++ b/chrome/browser/new_tab_page/one_google_bar/one_google_bar_loader_impl.cc -@@ -344,10 +344,11 @@ bool OneGoogleBarLoaderImpl::SetAdditionalQueryParams( +@@ -329,10 +329,11 @@ void OneGoogleBarLoaderImpl::SetAdditionalQueryParams( } GURL OneGoogleBarLoaderImpl::GetApiUrl() const { @@ -681,7 +681,7 @@ diff --git a/chrome/browser/profile_resetter/profile_resetter.cc b/chrome/browse diff --git a/chrome/browser/safe_browsing/BUILD.gn b/chrome/browser/safe_browsing/BUILD.gn --- a/chrome/browser/safe_browsing/BUILD.gn +++ b/chrome/browser/safe_browsing/BUILD.gn -@@ -25,7 +25,6 @@ static_library("safe_browsing") { +@@ -24,7 +24,6 @@ static_library("safe_browsing") { "//build:branding_buildflags", "//chrome/app:generated_resources", "//chrome/browser:browser_process", @@ -717,7 +717,7 @@ diff --git a/chrome/browser/search_engines/ui_thread_search_terms_data.cc b/chro diff --git a/chrome/browser/signin/android/signin_manager_android.cc b/chrome/browser/signin/android/signin_manager_android.cc --- a/chrome/browser/signin/android/signin_manager_android.cc +++ b/chrome/browser/signin/android/signin_manager_android.cc -@@ -71,6 +71,7 @@ class ProfileDataRemover : public content::BrowsingDataRemover::Observer { +@@ -70,6 +70,7 @@ class ProfileDataRemover : public content::BrowsingDataRemover::Observer { remover_(profile->GetBrowsingDataRemover()) { remover_->AddObserver(this); @@ -725,7 +725,7 @@ diff --git a/chrome/browser/signin/android/signin_manager_android.cc b/chrome/br if (all_data) { chrome_browsing_data_remover::DataType removed_types = chrome_browsing_data_remover::ALL_DATA_TYPES; -@@ -94,10 +95,6 @@ class ProfileDataRemover : public content::BrowsingDataRemover::Observer { +@@ -93,10 +94,6 @@ class ProfileDataRemover : public content::BrowsingDataRemover::Observer { // TODO(msramek): BrowsingDataFilterBuilder was not designed for // large filters. Optimize it. @@ -739,7 +739,7 @@ diff --git a/chrome/browser/signin/android/signin_manager_android.cc b/chrome/br diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -354,7 +354,6 @@ static_library("ui") { +@@ -356,7 +356,6 @@ static_library("ui") { "//chrome/browser/feedback:feedback_impl", "//chrome/browser/file_system_access", "//chrome/browser/fingerprinting_protection", @@ -762,7 +762,7 @@ diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/andr diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java -@@ -32,7 +32,6 @@ import org.chromium.chrome.browser.locale.LocaleManager; +@@ -33,7 +33,6 @@ import org.chromium.chrome.browser.locale.LocaleManager; import org.chromium.chrome.browser.merchant_viewer.MerchantTrustSignalsCoordinator; import org.chromium.chrome.browser.omnibox.LocationBarMediator.OmniboxUma; import org.chromium.chrome.browser.omnibox.LocationBarMediator.SaveOfflineButtonState; @@ -770,7 +770,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.omnibox.status.StatusCoordinator; import org.chromium.chrome.browser.omnibox.status.StatusCoordinator.PageInfoAction; import org.chromium.chrome.browser.omnibox.status.StatusView; -@@ -380,7 +379,6 @@ public class LocationBarCoordinator +@@ -381,7 +380,6 @@ public class LocationBarCoordinator mLocationBarMediator.destroy(); mLocationBarMediator = null; @@ -781,7 +781,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java -@@ -52,7 +52,6 @@ import org.chromium.chrome.browser.lifecycle.PauseResumeWithNativeObserver; +@@ -53,7 +53,6 @@ import org.chromium.chrome.browser.lifecycle.PauseResumeWithNativeObserver; import org.chromium.chrome.browser.locale.LocaleManager; import org.chromium.chrome.browser.omnibox.UrlBar.UrlBarDelegate; import org.chromium.chrome.browser.omnibox.UrlBarCoordinator.SelectionState; @@ -789,7 +789,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.omnibox.status.StatusCoordinator; import org.chromium.chrome.browser.omnibox.styles.OmniboxResourceProvider; import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteCoordinator; -@@ -312,24 +311,6 @@ class LocationBarMediator +@@ -313,24 +312,6 @@ class LocationBarMediator if (!mUrlFocusedWithoutAnimations) handleUrlFocusAnimation(hasFocus); @@ -814,7 +814,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow if (!hasFocus && mLocationBarDataProvider.hasTab()) { setUrl( mLocationBarDataProvider.getCurrentGurl(), -@@ -345,8 +326,6 @@ class LocationBarMediator +@@ -346,8 +327,6 @@ class LocationBarMediator templateUrlService.addObserver(this); if (OmniboxFeatures.sUseFusedLocationProvider.isEnabled() && templateUrlService.isDefaultSearchEngineGoogle()) { @@ -823,7 +823,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow } }); -@@ -579,7 +558,6 @@ class LocationBarMediator +@@ -580,7 +559,6 @@ class LocationBarMediator LoadUrlParams loadUrlParams = new LoadUrlParams(url); try (TimingMetric record = TimingMetric.shortUptime("Android.Omnibox.SetGeolocationHeadersTime")) { @@ -831,7 +831,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow } loadUrlParams.setTransitionType( omniboxLoadUrlParams.transitionType | PageTransition.FROM_ADDRESS_BAR); -@@ -1576,8 +1554,6 @@ class LocationBarMediator +@@ -1579,8 +1557,6 @@ class LocationBarMediator if (OmniboxFeatures.sUseFusedLocationProvider.isEnabled() && mProfileSupplier.hasValue() && mTemplateUrlServiceSupplier.hasValue()) { @@ -840,7 +840,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow } } -@@ -1585,7 +1561,6 @@ class LocationBarMediator +@@ -1588,7 +1564,6 @@ class LocationBarMediator public void onPauseWithNative() { OmniboxFeatures.updateLastExitTimestamp(); if (OmniboxFeatures.sUseFusedLocationProvider.isEnabled()) { @@ -908,7 +908,7 @@ diff --git a/chrome/renderer/google_accounts_private_api_util.cc b/chrome/render diff --git a/chrome/renderer/url_loader_throttle_provider_impl.cc b/chrome/renderer/url_loader_throttle_provider_impl.cc --- a/chrome/renderer/url_loader_throttle_provider_impl.cc +++ b/chrome/renderer/url_loader_throttle_provider_impl.cc -@@ -257,17 +257,6 @@ URLLoaderThrottleProviderImpl::CreateThrottles( +@@ -269,17 +269,6 @@ URLLoaderThrottleProviderImpl::CreateThrottles( } #endif @@ -923,13 +923,13 @@ diff --git a/chrome/renderer/url_loader_throttle_provider_impl.cc b/chrome/rende - chrome_content_renderer_client_->GetChromeObserver() - ->GetDynamicParams())); - - #if BUILDFLAG(IS_CHROMEOS_ASH) + #if BUILDFLAG(IS_CHROMEOS) throttles.emplace_back(std::make_unique( chrome_content_renderer_client_->GetChromeObserver() diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn -@@ -6431,7 +6431,6 @@ test("unit_tests") { +@@ -6504,7 +6504,6 @@ test("unit_tests") { "//chrome/browser/file_system_access:unit_tests", "//chrome/browser/fingerprinting_protection", "//chrome/browser/first_party_sets", @@ -1585,7 +1585,7 @@ diff --git a/components/google/core/common/google_util.h b/components/google/cor diff --git a/components/page_load_metrics/browser/page_load_metrics_util.cc b/components/page_load_metrics/browser/page_load_metrics_util.cc --- a/components/page_load_metrics/browser/page_load_metrics_util.cc +++ b/components/page_load_metrics/browser/page_load_metrics_util.cc -@@ -285,8 +285,7 @@ bool DidObserveLoadingBehaviorInAnyFrame( +@@ -303,8 +303,7 @@ bool DidObserveLoadingBehaviorInAnyFrame( } bool IsZstdUrl(const GURL& url) { @@ -1641,7 +1641,7 @@ diff --git a/components/search_engines/search_terms_data.cc b/components/search_ diff --git a/components/search_engines/template_url.cc b/components/search_engines/template_url.cc --- a/components/search_engines/template_url.cc +++ b/components/search_engines/template_url.cc -@@ -613,11 +613,7 @@ std::u16string TemplateURLRef::SearchTermToString16( +@@ -614,11 +614,7 @@ std::u16string TemplateURLRef::SearchTermToString16( bool TemplateURLRef::HasGoogleBaseURLs( const SearchTermsData& search_terms_data) const { @@ -1882,7 +1882,7 @@ diff --git a/net/base/url_util.cc b/net/base/url_util.cc diff --git a/services/network/network_context.cc b/services/network/network_context.cc --- a/services/network/network_context.cc +++ b/services/network/network_context.cc -@@ -3015,7 +3015,7 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( +@@ -3025,7 +3025,7 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( } #endif // BUILDFLAG(IS_CT_SUPPORTED) diff --git a/build/patches/webRTC-do-not-expose-local-IP-addresses.patch b/build/patches/webRTC-do-not-expose-local-IP-addresses.patch index ff2a7e28..bb19b145 100644 --- a/build/patches/webRTC-do-not-expose-local-IP-addresses.patch +++ b/build/patches/webRTC-do-not-expose-local-IP-addresses.patch @@ -18,7 +18,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc --- a/chrome/browser/ui/browser_ui_prefs.cc +++ b/chrome/browser/ui/browser_ui_prefs.cc -@@ -108,7 +108,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -109,7 +109,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { false); #endif registry->RegisterStringPref(prefs::kWebRTCIPHandlingPolicy, diff --git a/build/patches/webview-Hard-no-to-persistent-histograms.patch b/build/patches/webview-Hard-no-to-persistent-histograms.patch index 0d7ea00b..5dd5a19d 100644 --- a/build/patches/webview-Hard-no-to-persistent-histograms.patch +++ b/build/patches/webview-Hard-no-to-persistent-histograms.patch @@ -18,7 +18,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/android_webview/browser/aw_field_trials.cc b/android_webview/browser/aw_field_trials.cc --- a/android_webview/browser/aw_field_trials.cc +++ b/android_webview/browser/aw_field_trials.cc -@@ -79,13 +79,6 @@ void AwFeatureOverrides::OverrideFeatureWithFieldTrial( +@@ -73,13 +73,6 @@ void AwFeatureOverrides::OverrideFeatureWithFieldTrial( } // namespace internal void AwFieldTrials::OnVariationsSetupComplete() { From 184a1e7fade663f9498752a2cfe1189bb10f6fd0 Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Sun, 27 Apr 2025 15:43:30 +0200 Subject: [PATCH 02/10] Patches for v136 (need some work) --- .../Add-an-always-incognito-mode.patch | 132 ++++++------- ...Add-lifetime-options-for-permissions.patch | 64 +++---- .../Add-menu-item-to-bookmark-all-tabs.patch | 52 ++--- build/patches/Add-search-engine.patch | 84 ++++----- .../Add-setting-to-clear-data-on-exit.patch | 37 ++-- .../Follow-only-system-dark-mode.patch | 2 +- .../patches/Override-Navigator-Language.patch | 2 +- .../Partition-Blink-memory-cache.patch | 14 +- .../Partition-blobs-by-top-frame-URL.patch | 178 +++++++++++------- build/patches/Welcome-screen.patch | 46 +++-- 10 files changed, 325 insertions(+), 286 deletions(-) diff --git a/build/patches/Add-an-always-incognito-mode.patch b/build/patches/Add-an-always-incognito-mode.patch index 3b970c9b..edf675ce 100644 --- a/build/patches/Add-an-always-incognito-mode.patch +++ b/build/patches/Add-an-always-incognito-mode.patch @@ -99,7 +99,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 -@@ -643,6 +643,7 @@ chrome_java_resources = [ +@@ -645,6 +645,7 @@ chrome_java_resources = [ "java/res/xml/main_preferences_legacy.xml", "java/res/xml/manage_sync_preferences.xml", "java/res/xml/personalize_google_services_preferences.xml", @@ -118,7 +118,7 @@ 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", -@@ -879,6 +880,7 @@ chrome_java_sources = [ +@@ -880,6 +881,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/privacy/settings/IncognitoLockSettings.java", "java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl.java", "java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java", @@ -245,7 +245,7 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -71,6 +71,10 @@ import org.chromium.base.task.TaskTraits; +@@ -72,6 +72,10 @@ import org.chromium.base.task.TaskTraits; import org.chromium.build.annotations.UsedByReflection; import org.chromium.cc.input.BrowserControlsState; import org.chromium.chrome.R; @@ -253,10 +253,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct +import org.chromium.components.user_prefs.UserPrefs; +import org.chromium.chrome.browser.preferences.Pref; +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; + import org.chromium.chrome.browser.IntentHandler.ExternalAppId; import org.chromium.chrome.browser.IntentHandler.TabOpenType; import org.chromium.chrome.browser.app.ChromeActivity; - import org.chromium.chrome.browser.app.metrics.LaunchCauseMetrics; -@@ -727,14 +731,19 @@ public class ChromeTabbedActivity extends ChromeActivity implements MismatchedIn +@@ -705,14 +709,19 @@ public class ChromeTabbedActivity extends ChromeActivity { Profile profile = mTabModelSelector.getCurrentModel().getProfile(); // For saving non-incognito tab closures for Recent Tabs. @@ -273,17 +273,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct + mTabModelSelector .getTabGroupModelFilterProvider() - .getTabGroupModelFilter(false)); -- mHistoricalTabModelObserver.addSecodaryTabModelSupplier( +- mHistoricalTabModelObserver.addSecondaryTabModelSupplier( - ArchivedTabModelOrchestrator.getForProfile(profile)::getTabModel); - + .getTabGroupModelFilter(alwaysIncognito)); -+ mHistoricalTabModelObserver.addSecodaryTabModelSupplier( ++ mHistoricalTabModelObserver.addSecondaryTabModelSupplier( + ArchivedTabModelOrchestrator.getForProfile(profile)::getTabModel); + } // Defer creation of this helper so it triggers after TabGroupModelFilter observers. mUndoRefocusHelper = new UndoRefocusHelper( -@@ -2614,8 +2623,9 @@ public class ChromeTabbedActivity extends ChromeActivity implements MismatchedIn +@@ -2733,8 +2742,9 @@ public class ChromeTabbedActivity extends ChromeActivity { // We determine the model as soon as possible so every systems get initialized coherently. boolean startIncognito = @@ -298,15 +298,15 @@ 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 -@@ -94,6 +94,7 @@ import org.chromium.chrome.browser.compositor.layouts.SceneChangeObserver; - import org.chromium.chrome.browser.compositor.layouts.content.TabContentManagerHandler; +@@ -95,6 +95,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; +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; import org.chromium.chrome.browser.dom_distiller.DomDistillerUiUtils; import org.chromium.chrome.browser.download.DownloadManagerService; import org.chromium.chrome.browser.download.DownloadUtils; -@@ -1953,6 +1954,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -1977,6 +1978,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity throw new IllegalStateException( "Attempting to access TabCreator before initialization"); } @@ -319,16 +319,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java -@@ -38,6 +38,8 @@ import org.chromium.base.supplier.Supplier; - import org.chromium.build.BuildConfig; +@@ -41,6 +41,8 @@ import org.chromium.build.BuildConfig; import org.chromium.chrome.R; import org.chromium.chrome.browser.ActivityTabProvider; + import org.chromium.chrome.browser.ai.AiAssistantService; +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; +import org.chromium.chrome.browser.profiles.ProfileManager; import org.chromium.chrome.browser.bookmarks.BookmarkModel; import org.chromium.chrome.browser.bookmarks.PowerBookmarkUtils; import org.chromium.chrome.browser.commerce.ShoppingServiceFactory; -@@ -102,6 +104,10 @@ import java.util.ArrayList; +@@ -106,6 +108,10 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; @@ -339,7 +339,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. -@@ -609,6 +615,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -617,6 +623,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate } private void prepareCommonMenuItems(Menu menu, @MenuGroup int menuGroup, boolean isIncognito) { @@ -353,7 +353,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App // We have to iterate all menu items since same menu item ID may be associated with more // than one menu items. boolean isOverviewModeMenu = menuGroup == MenuGroup.OVERVIEW_MODE_MENU; -@@ -672,7 +685,15 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -676,7 +689,15 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate } if (item.getItemId() == R.id.recent_tabs_menu_id) { @@ -370,7 +370,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App } if (item.getItemId() == R.id.menu_select_tabs) { item.setVisible(isMenuSelectTabsVisible); -@@ -877,8 +898,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -884,8 +905,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate && !isNativePage && !isFileScheme && !isContentScheme @@ -393,7 +393,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.ListItemType; -@@ -277,6 +278,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -293,6 +294,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { public List> buildContextMenu() { mShowEphemeralTabNewLabel = null; @@ -402,8 +402,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr + List> groupedItems = new ArrayList<>(); - if (mParams.isAnchor()) { -@@ -287,6 +291,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { + if (mParams.isPage() && shouldShowEmptySpaceContextMenu()) { +@@ -320,6 +324,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { if (mMode == ContextMenuMode.NORMAL) { linkGroup.add(createListItem(Item.OPEN_IN_NEW_TAB_IN_GROUP)); linkGroup.add(createListItem(Item.OPEN_IN_NEW_TAB)); @@ -411,7 +411,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr if (!mItemDelegate.isIncognito() && mItemDelegate.isIncognitoSupported()) { linkGroup.add(createListItem(Item.OPEN_IN_INCOGNITO_TAB)); } -@@ -317,7 +322,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -350,7 +355,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { } } if (FirstRunStatus.getFirstRunFlowComplete()) { @@ -503,7 +503,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; -@@ -1183,6 +1186,13 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid +@@ -1197,6 +1200,13 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid return getInitialActivityWidth() > 0; } @@ -539,7 +539,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo /** A class containing some utility static methods. */ public class DownloadUtils { private static final String TAG = "download"; -@@ -298,7 +303,16 @@ public class DownloadUtils { +@@ -302,7 +307,16 @@ public class DownloadUtils { // Offline pages isn't supported in Incognito. This should be checked before calling // OfflinePageBridge.getForProfile because OfflinePageBridge instance will not be found // for incognito profile. @@ -560,7 +560,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java -@@ -300,7 +300,9 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver +@@ -302,7 +302,9 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver mHistoryAdapter.generateFooterItems(); // Listen to changes in sign in state. @@ -571,7 +571,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History // Create PrefChangeRegistrar to receive notifications on preference changes. mPrefChangeRegistrar = PrefServiceUtil.createFor(profile); -@@ -376,7 +378,8 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver +@@ -378,7 +380,8 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver mHistoryAdapter.onDestroyed(); mLargeIconBridge.destroy(); mLargeIconBridge = null; @@ -584,7 +584,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java -@@ -55,6 +55,14 @@ import org.chromium.ui.base.Clipboard; +@@ -54,6 +54,14 @@ import org.chromium.ui.base.Clipboard; import java.util.List; @@ -599,7 +599,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History /** Combines and manages the different UI components of browsing history. */ public class HistoryManager implements OnMenuItemClickListener, -@@ -157,7 +165,7 @@ public class HistoryManager +@@ -156,7 +164,7 @@ public class HistoryManager mUmaRecorder.recordOpenHistory(); // If incognito placeholder is shown, we don't need to create History UI elements. @@ -608,7 +608,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History mSelectableListLayout = null; mRootView = getIncognitoHistoryPlaceholderView(); return; -@@ -425,9 +433,22 @@ public class HistoryManager +@@ -406,9 +414,22 @@ public class HistoryManager onBackPressStateChanged(); } @@ -632,7 +632,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History // If Incognito placeholder is shown no need to call any destroy method. return; } -@@ -487,7 +508,7 @@ public class HistoryManager +@@ -468,7 +489,7 @@ public class HistoryManager * @return True if manager handles this event, false if it decides to ignore. */ private boolean onBackPressed() { @@ -925,9 +925,9 @@ 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; -@@ -238,6 +239,9 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl - mModalDialogManagerSupplier, - SigninAndHistorySyncActivityLauncherImpl.get())); +@@ -239,6 +240,9 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl + SigninAndHistorySyncActivityLauncherImpl.get(), + new SettingsCustomTabLauncherImpl())); } + if (fragment instanceof INeedSnackbarManager) { + ((INeedSnackbarManager)fragment).setSnackbarManagerSupplier(mSnackbarManagerSupplier); @@ -1005,7 +1005,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore return; } -@@ -190,14 +192,15 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { +@@ -189,14 +191,15 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { CollectionUtil.integerCollectionToIntArray(savedStateVersions)); } @@ -1023,7 +1023,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore } /** -@@ -205,7 +208,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { +@@ -204,7 +207,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { * internal Chrome scheme, about:blank, or a native page and it cannot be incognito. */ private boolean shouldSave(Tab tab) { @@ -1032,7 +1032,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore // Check the secondary tab model to see if the tab was moved instead of deleted. if (tabIdExistsInSecondaryModel(tab.getId())) return false; -@@ -295,7 +298,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { +@@ -293,7 +296,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { @NativeMethods interface Natives { @@ -1044,7 +1044,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/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 -@@ -191,6 +191,8 @@ import org.chromium.ui.InsetObserver; +@@ -201,6 +201,8 @@ import org.chromium.ui.InsetObserver; import org.chromium.ui.UiUtils; import org.chromium.ui.base.ActivityWindowAndroid; import org.chromium.ui.base.DeviceFormFactor; @@ -1053,7 +1053,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.dragdrop.DragDropGlobalState; -@@ -1148,7 +1150,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1174,7 +1176,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { () -> { mTabCreatorManagerSupplier .get() @@ -1065,7 +1065,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 -@@ -46,6 +46,10 @@ import org.chromium.ui.base.PageTransition; +@@ -49,6 +49,10 @@ import org.chromium.ui.base.PageTransition; import org.chromium.ui.base.WindowAndroid; import org.chromium.url.GURL; @@ -1074,9 +1074,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome +import org.chromium.chrome.browser.tab.TabObserver; + /** This class creates various kinds of new tabs and adds them to the right {@link TabModel}. */ - public class ChromeTabCreator extends TabCreator { - private final Activity mActivity; -@@ -502,7 +506,6 @@ public class ChromeTabCreator extends TabCreator { + public class ChromeTabCreator extends TabCreator + implements NeedsTabModel, NeedsTabModelOrderController { +@@ -520,7 +524,6 @@ public class ChromeTabCreator extends TabCreator // TODO(crbug.com/40691614): Clean up the launches from SearchActivity/Chrome. public Tab launchUrlFromExternalApp( LoadUrlParams loadUrlParams, String appId, boolean forceNewTab, Intent intent) { @@ -1095,19 +1095,19 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabMod import org.chromium.chrome.browser.flags.ActivityType; import org.chromium.chrome.browser.ntp.RecentlyClosedBridge; import org.chromium.chrome.browser.profiles.ProfileProvider; -@@ -118,6 +119,8 @@ public class TabModelSelectorImpl extends TabModelSelectorBase implements TabMod +@@ -121,6 +122,8 @@ public class TabModelSelectorImpl extends TabModelSelectorBase implements TabMod ProfileProvider profileProvider = mProfileProviderSupplier.get(); assert profileProvider != null; + AlwaysIncognitoLinkInterceptor.migrateSettingToNative(); + - ChromeTabCreator regularTabCreator = - (ChromeTabCreator) getTabCreatorManager().getTabCreator(false); - ChromeTabCreator incognitoTabCreator = + TabCreator regularTabCreator = getTabCreatorManager().getTabCreator(false); + TabCreator incognitoTabCreator = getTabCreatorManager().getTabCreator(true); + mRecentlyClosedBridge = diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java -@@ -49,6 +49,8 @@ import org.chromium.chrome.browser.tabpersistence.TabStateFileManager; +@@ -50,6 +50,8 @@ import org.chromium.chrome.browser.tabpersistence.TabStateFileManager; import org.chromium.components.embedder_support.util.UrlUtilities; import org.chromium.content_public.browser.LoadUrlParams; @@ -1116,7 +1116,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPer import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.ByteArrayInputStream; -@@ -832,6 +834,13 @@ public class TabPersistentStore { +@@ -833,6 +835,13 @@ public class TabPersistentStore { } } } @@ -1133,7 +1133,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 -@@ -44,6 +44,7 @@ import org.chromium.base.supplier.Supplier; +@@ -47,6 +47,7 @@ import org.chromium.base.supplier.Supplier; import org.chromium.cc.input.BrowserControlsState; import org.chromium.chrome.R; import org.chromium.chrome.browser.ActivityTabProvider; @@ -1141,7 +1141,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.tabmodel.TabWindowManagerSingleton; import org.chromium.chrome.browser.back_press.BackPressManager; -@@ -748,7 +749,7 @@ public class ToolbarManager +@@ -754,7 +755,7 @@ public class ToolbarManager TraceEvent.end("isOfflinePage"); return ret; } @@ -1211,7 +1211,7 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and using base::android::JavaParamRef; using base::android::JavaRef; using base::android::ScopedJavaLocalRef; -@@ -107,7 +112,8 @@ std::vector> StringsToUuids( +@@ -104,7 +109,8 @@ std::vector> StringsToUuids( void CreateHistoricalTab( TabAndroid* tab_android, @@ -1221,7 +1221,7 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and if (!tab_android) { return; } -@@ -118,9 +124,14 @@ void CreateHistoricalTab( +@@ -115,9 +121,14 @@ void CreateHistoricalTab( return; } @@ -1238,16 +1238,16 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and if (!service) { return; } -@@ -186,7 +197,7 @@ void CreateHistoricalBulkClosure( - std::vector per_tab_root_id, +@@ -181,7 +192,7 @@ void CreateHistoricalBulkClosure( + per_tab_optional_tab_group_ids, std::vector> tabs, std::vector web_contents_state) { - DCHECK(model); + if (!model) return; - DCHECK_EQ(root_ids.size(), group_titles.size()); - DCHECK_EQ(root_ids.size(), group_colors.size()); - DCHECK_EQ(root_ids.size(), optional_tab_group_ids.size()); -@@ -318,11 +329,12 @@ static void JNI_HistoricalTabSaverImpl_CreateHistoricalTab( + DCHECK_EQ(tab_group_ids.size(), group_titles.size()); + DCHECK_EQ(tab_group_ids.size(), group_colors.size()); + DCHECK_EQ(tab_group_ids.size(), tab_group_ids.size()); +@@ -294,11 +305,12 @@ static void JNI_HistoricalTabSaverImpl_CreateHistoricalTab( JNIEnv* env, const JavaParamRef& jtab_android, const JavaParamRef& state, @@ -1265,7 +1265,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 -@@ -374,6 +374,15 @@ ChromeAutocompleteProviderClient::GetProviderStateService() const { +@@ -376,6 +376,15 @@ ChromeAutocompleteProviderClient::GetProviderStateService() const { return ProviderStateServiceFactory::GetForProfile(profile_); } @@ -1402,7 +1402,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" -@@ -511,6 +514,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) { +@@ -549,6 +552,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) { history::HistoryService* HistoryTabHelper::GetHistoryService() { Profile* profile = Profile::FromBrowserContext(web_contents()->GetBrowserContext()); @@ -1416,7 +1416,7 @@ diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/histo if (profile->IsOffTheRecord()) return nullptr; -@@ -518,6 +528,16 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() { +@@ -556,6 +566,16 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() { profile, ServiceAccessType::IMPLICIT_ACCESS); } @@ -1457,7 +1457,7 @@ diff --git a/chrome/browser/history/history_tab_helper.h b/chrome/browser/histor private: explicit HistoryTabHelper(content::WebContents* web_contents); friend class content::WebContentsUserData; -@@ -89,9 +96,6 @@ class HistoryTabHelper +@@ -91,9 +98,6 @@ class HistoryTabHelper void OnLanguageDetermined( const translate::LanguageDetectionDetails& details) override; @@ -1765,7 +1765,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 -@@ -245,6 +245,7 @@ +@@ -244,6 +244,7 @@ #if BUILDFLAG(IS_ANDROID) #include "chrome/browser/accessibility/accessibility_prefs/android/accessibility_prefs_controller.h" @@ -1773,7 +1773,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" -@@ -2010,6 +2011,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -2008,6 +2009,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, usage_stats::UsageStatsBridge::RegisterProfilePrefs(registry); variations::VariationsService::RegisterProfilePrefs(registry); webapps::InstallPromptPrefs::RegisterProfilePrefs(registry); @@ -1934,7 +1934,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -6528,6 +6528,31 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -6574,6 +6574,31 @@ To change this setting, BEGIN_LINKdelete the Chrome d Cookies, cache, and other site data @@ -1991,7 +1991,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/messages/android/BUILD.gn b/chrome/browser/ui/messages/android/BUILD.gn --- a/chrome/browser/ui/messages/android/BUILD.gn +++ b/chrome/browser/ui/messages/android/BUILD.gn -@@ -28,6 +28,7 @@ android_library("java") { +@@ -27,6 +27,7 @@ android_library("java") { srcjar_deps = [ ":jni_headers" ] sources = [ "java/src/org/chromium/chrome/browser/ui/messages/infobar/SimpleConfirmInfoBarBuilder.java", @@ -2058,7 +2058,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 -@@ -4071,6 +4071,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] = +@@ -4070,6 +4070,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] = "net.out_of_process_system_dns_resolution_enabled"; #endif // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) diff --git a/build/patches/Add-lifetime-options-for-permissions.patch b/build/patches/Add-lifetime-options-for-permissions.patch index d34bde28..ba504d15 100644 --- a/build/patches/Add-lifetime-options-for-permissions.patch +++ b/build/patches/Add-lifetime-options-for-permissions.patch @@ -256,7 +256,7 @@ diff --git a/chrome/browser/ui/views/permissions/exclusive_access_permission_pro diff --git a/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc b/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc --- a/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc +++ b/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc -@@ -269,7 +269,7 @@ void PermissionPromptBubbleBaseView::RunButtonCallback(int button_id) { +@@ -266,7 +266,7 @@ void PermissionPromptBubbleBaseView::RunButtonCallback(int button_id) { delegate_->Accept(); return; case PermissionDialogButton::kAcceptOnce: @@ -279,7 +279,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 -@@ -603,6 +603,11 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -617,6 +617,11 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment } @RequiresNonNull({"mSite"}) @@ -290,8 +290,8 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c + private void setUpClearDataPreference() { ClearWebsiteStorage preference = findPreference(PREF_CLEAR_DATA); - assumeNonNull(preference); -@@ -1195,6 +1200,10 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment + long usage = mSite.getTotalUsage(); +@@ -1285,6 +1290,10 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment AppCompatResources.getColorStateList(getContext(), mHighlightColor) .getDefaultColor()); } @@ -317,7 +317,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 -@@ -637,6 +637,11 @@ +@@ -646,6 +646,11 @@ URL truncated @@ -384,8 +384,8 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.cc - ContentSettingsType::MEDIASTREAM_CAMERA, ContentSettingsType::HAND_TRACKING, ContentSettingsType::SMART_CARD_DATA, - }}; -@@ -256,9 +289,6 @@ const std::vector& GetTypesWithTemporaryGrantsInHcsm() { + ContentSettingsType::AR, +@@ -258,9 +291,6 @@ const std::vector& GetTypesWithTemporaryGrantsInHcsm() { ContentSettingsType::CAPTURED_SURFACE_CONTROL, #endif ContentSettingsType::KEYBOARD_LOCK, @@ -393,8 +393,8 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.cc - ContentSettingsType::MEDIASTREAM_MIC, - ContentSettingsType::MEDIASTREAM_CAMERA, ContentSettingsType::HAND_TRACKING, - }}; - return *types; + ContentSettingsType::AR, + ContentSettingsType::VR, diff --git a/components/content_settings/core/browser/content_settings_utils.h b/components/content_settings/core/browser/content_settings_utils.h --- a/components/content_settings/core/browser/content_settings_utils.h +++ b/components/content_settings/core/browser/content_settings_utils.h @@ -433,7 +433,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 -@@ -385,9 +385,9 @@ public class PageInfoController +@@ -386,9 +386,9 @@ public class PageInfoController String name, String nameMidSentence, int type, @@ -448,7 +448,7 @@ diff --git a/components/page_info/android/java/src/org/chromium/components/page_ diff --git a/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java b/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java --- a/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java +++ b/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java -@@ -44,8 +44,9 @@ public class PermissionParamsListBuilder { +@@ -48,8 +48,9 @@ public class PermissionParamsListBuilder { } public void addPermissionEntry( @@ -460,18 +460,18 @@ diff --git a/components/page_info/android/java/src/org/chromium/components/page_ } public void clearPermissionEntries() { -@@ -86,6 +87,10 @@ public class PermissionParamsListBuilder { - permissionParams.warningTextResource = - R.string.page_info_android_permission_blocked; +@@ -85,6 +86,10 @@ public class PermissionParamsListBuilder { + } else { + warningTextResource = R.string.page_info_android_permission_blocked; } + if (permission.is_user_session) { + permissionParams.warningTextResource = + R.string.page_info_android_permission_session_permission; + } } - } - -@@ -127,13 +132,15 @@ public class PermissionParamsListBuilder { + } else { + assert permission.setting == ContentSettingValues.ASK +@@ -121,13 +126,15 @@ public class PermissionParamsListBuilder { public final String nameMidSentence; public final int type; public final @ContentSettingValues int setting; @@ -532,7 +532,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 -@@ -1197,6 +1197,8 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, +@@ -1210,6 +1210,8 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, permission_info.is_one_time = (info.metadata.session_model() == content_settings::mojom::SessionModel::ONE_TIME); @@ -544,7 +544,7 @@ diff --git a/components/page_info/page_info.cc b/components/page_info/page_info. diff --git a/components/page_info/page_info.h b/components/page_info/page_info.h --- a/components/page_info/page_info.h +++ b/components/page_info/page_info.h -@@ -150,6 +150,7 @@ class PageInfo : private content_settings::CookieControlsObserver, +@@ -149,6 +149,7 @@ class PageInfo : private content_settings::CookieControlsObserver, content_settings::SettingSource::kNone; // Whether the permission is a one-time grant. bool is_one_time = false; @@ -691,7 +691,7 @@ diff --git a/components/permissions/android/java/src/org/chromium/components/per diff --git a/components/permissions/android/permission_prompt/embedded_permission_prompt_android.cc b/components/permissions/android/permission_prompt/embedded_permission_prompt_android.cc --- a/components/permissions/android/permission_prompt/embedded_permission_prompt_android.cc +++ b/components/permissions/android/permission_prompt/embedded_permission_prompt_android.cc -@@ -109,7 +109,8 @@ void EmbeddedPermissionPromptAndroid::Acknowledge() { +@@ -117,7 +117,8 @@ void EmbeddedPermissionPromptAndroid::Acknowledge() { delegate()->FinalizeCurrentRequests(); } @@ -704,7 +704,7 @@ diff --git a/components/permissions/android/permission_prompt/embedded_permissio diff --git a/components/permissions/android/permission_prompt/embedded_permission_prompt_android.h b/components/permissions/android/permission_prompt/embedded_permission_prompt_android.h --- a/components/permissions/android/permission_prompt/embedded_permission_prompt_android.h +++ b/components/permissions/android/permission_prompt/embedded_permission_prompt_android.h -@@ -44,7 +44,7 @@ class EmbeddedPermissionPromptAndroid : public PermissionPromptAndroid { +@@ -45,7 +45,7 @@ class EmbeddedPermissionPromptAndroid : public PermissionPromptAndroid { const override; void Closing() override; void Accept() override; @@ -984,8 +984,8 @@ diff --git a/components/permissions/embedded_permission_prompt_flow_model.cc b/c diff --git a/components/permissions/permission_context_base.cc b/components/permissions/permission_context_base.cc --- a/components/permissions/permission_context_base.cc +++ b/components/permissions/permission_context_base.cc -@@ -267,6 +267,17 @@ const PermissionRequest* PermissionContextBase::FindPermissionRequest( - return request->second.first.get(); +@@ -271,6 +271,17 @@ GURL PermissionContextBase::GetEffectiveEmbedderOrigin( + return PermissionUtil::GetLastCommittedOriginAsURL(rfh->GetMainFrame()); } +std::unique_ptr @@ -1002,7 +1002,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm content::PermissionResult PermissionContextBase::GetPermissionStatus( content::RenderFrameHost* render_frame_host, const GURL& requesting_origin, -@@ -526,7 +537,8 @@ void PermissionContextBase::PermissionDecided(const PermissionRequestID& id, +@@ -530,7 +541,8 @@ void PermissionContextBase::PermissionDecided(const PermissionRequestID& id, const GURL& embedding_origin, ContentSetting content_setting, bool is_one_time, @@ -1012,7 +1012,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm DCHECK(content_setting == CONTENT_SETTING_ALLOW || content_setting == CONTENT_SETTING_BLOCK || content_setting == CONTENT_SETTING_DEFAULT); -@@ -541,13 +553,14 @@ void PermissionContextBase::PermissionDecided(const PermissionRequestID& id, +@@ -545,13 +557,14 @@ void PermissionContextBase::PermissionDecided(const PermissionRequestID& id, // missing if a permission prompt was preignored and we already notified an // origin about it. if (request->second.second) { @@ -1031,7 +1031,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm } } -@@ -628,11 +641,27 @@ void PermissionContextBase::NotifyPermissionSet( +@@ -632,11 +645,27 @@ void PermissionContextBase::NotifyPermissionSet( ContentSetting content_setting, bool is_one_time, bool is_final_decision) { @@ -1060,7 +1060,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm } if (is_final_decision) { -@@ -673,6 +702,15 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin, +@@ -677,6 +706,15 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin, const GURL& embedding_origin, ContentSetting content_setting, bool is_one_time) { @@ -1076,7 +1076,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm DCHECK_EQ(requesting_origin, requesting_origin.DeprecatedGetOriginAsURL()); DCHECK_EQ(embedding_origin, embedding_origin.DeprecatedGetOriginAsURL()); DCHECK(content_setting == CONTENT_SETTING_ALLOW || -@@ -682,6 +720,8 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin, +@@ -686,6 +724,8 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin, constraints.set_session_model( is_one_time ? content_settings::mojom::SessionModel::ONE_TIME : content_settings::mojom::SessionModel::DURABLE); @@ -1129,7 +1129,7 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi // Implementors can override this method to avoid using automatic embargo. virtual bool UsesAutomaticEmbargo() const; -@@ -249,7 +269,8 @@ class PermissionContextBase : public content_settings::Observer { +@@ -253,7 +273,8 @@ class PermissionContextBase : public content_settings::Observer { const GURL& embedding_origin, ContentSetting content_setting, bool is_one_time, @@ -1171,7 +1171,7 @@ diff --git a/components/permissions/permission_request.cc b/components/permissio PermissionRequest::~PermissionRequest() { DCHECK(delete_callback_.is_null()); } -@@ -404,19 +412,37 @@ bool PermissionRequest::ShouldUseTwoOriginPrompt() const { +@@ -423,19 +431,37 @@ bool PermissionRequest::ShouldUseTwoOriginPrompt() const { return request_type() == RequestType::kStorageAccess; } @@ -1237,7 +1237,7 @@ diff --git a/components/permissions/permission_request.h b/components/permission PermissionRequest(const PermissionRequest&) = delete; PermissionRequest& operator=(const PermissionRequest&) = delete; -@@ -162,10 +171,10 @@ class PermissionRequest { +@@ -169,10 +178,10 @@ class PermissionRequest { // If |is_one_time| is true the permission will last until all tabs of // |origin| are closed or navigated away from, and then the permission will // automatically expire after 1 day. @@ -1250,7 +1250,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 -@@ -221,6 +230,9 @@ class PermissionRequest { +@@ -228,6 +237,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 e39840c0..0e981b10 100644 --- a/build/patches/Add-menu-item-to-bookmark-all-tabs.patch +++ b/build/patches/Add-menu-item-to-bookmark-all-tabs.patch @@ -10,7 +10,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../bookmarks/android/bookmark_bridge.h | 8 ++++ .../browser/bookmarks/BookmarkBridge.java | 41 ++++++++++++++++++ .../browser/bookmarks/bookmark_html_writer.cc | 14 +++++- - .../bookmark_merged_surface_service.cc | 3 ++ + .../bookmark_merged_surface_service.cc | 2 + + .../bookmarks/bookmark_parent_folder.cc | 1 + .../permanent_folder_ordering_tracker.cc | 2 + .../dialogs/DownloadLocationCustomView.java | 4 +- .../strings/android_chrome_strings.grd | 3 ++ @@ -29,12 +30,12 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html components/bookmarks/browser/bookmark_uuids.h | 1 + components/bookmarks/browser/model_loader.cc | 8 +++- .../bookmark_specifics_conversions.cc | 1 + - 25 files changed, 243 insertions(+), 14 deletions(-) + 26 files changed, 243 insertions(+), 14 deletions(-) diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml --- a/chrome/android/java/res/menu/main_menu.xml +++ b/chrome/android/java/res/menu/main_menu.xml -@@ -74,6 +74,10 @@ found in the LICENSE file. +@@ -77,6 +77,10 @@ found in the LICENSE file. @@ -45,7 +46,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re -@@ -198,6 +202,9 @@ found in the LICENSE file. +@@ -204,6 +208,9 @@ found in the LICENSE file. @@ -58,15 +59,15 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re 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 -@@ -97,6 +97,7 @@ import org.chromium.chrome.browser.bookmarks.BookmarkPane; - import org.chromium.chrome.browser.bookmarks.BookmarkUtils; +@@ -101,6 +101,7 @@ import org.chromium.chrome.browser.bookmarks.BookmarkUtils; + import org.chromium.chrome.browser.bookmarks.bar.BookmarkBarUtils; import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.compositor.CompositorViewHolder; +import org.chromium.chrome.browser.bookmarks.BookmarkModel; import org.chromium.chrome.browser.compositor.layouts.Layout; import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChrome; import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromePhone; -@@ -253,12 +254,17 @@ import org.chromium.chrome.browser.ui.RootUiCoordinator; +@@ -263,12 +264,17 @@ import org.chromium.chrome.browser.ui.RootUiCoordinator; import org.chromium.chrome.browser.ui.appmenu.AppMenuPropertiesDelegate; import org.chromium.chrome.browser.ui.desktop_windowing.AppHeaderUtils; import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeUtils; @@ -84,7 +85,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.edge_to_edge.SystemBarColorHelper; import org.chromium.components.browser_ui.edge_to_edge.TabbedSystemBarColorHelper; -@@ -3103,6 +3109,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements MismatchedIn +@@ -3233,6 +3239,8 @@ public class ChromeTabbedActivity extends ChromeActivity { getTabModelSelectorSupplier().get(), closeAllTabsRunnable); RecordUserAction.record("MobileMenuCloseAllTabs"); @@ -93,7 +94,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct } else if (id == R.id.close_all_incognito_tabs_menu_id) { // Close only incognito tabs Runnable closeAllTabsRunnable = -@@ -3191,6 +3199,41 @@ public class ChromeTabbedActivity extends ChromeActivity implements MismatchedIn +@@ -3331,6 +3339,41 @@ public class ChromeTabbedActivity extends ChromeActivity { getTabModalLifetimeHandler().onOmniboxFocusChanged(hasFocus); } @@ -387,27 +388,30 @@ diff --git a/chrome/browser/bookmarks/bookmark_html_writer.cc b/chrome/browser/b diff --git a/chrome/browser/bookmarks/bookmark_merged_surface_service.cc b/chrome/browser/bookmarks/bookmark_merged_surface_service.cc --- a/chrome/browser/bookmarks/bookmark_merged_surface_service.cc +++ b/chrome/browser/bookmarks/bookmark_merged_surface_service.cc -@@ -32,6 +32,7 @@ BookmarkParentFolder GetBookmarkParentFolderFromPermanentType( - BookmarkNode::Type type) { - switch (type) { +@@ -108,6 +108,8 @@ BookmarkMergedSurfaceService::BookmarkMergedSurfaceService( + BookmarkMergedSurfaceService::~BookmarkMergedSurfaceService() { + for (auto& observer : observers_) { + observer.BookmarkMergedSurfaceServiceBeingDeleted(); ++ case BookmarkNode::Type::TABS_COLLECTION: ++ NOTREACHED(); + } + } + +diff --git a/chrome/browser/bookmarks/bookmark_parent_folder.cc b/chrome/browser/bookmarks/bookmark_parent_folder.cc +--- a/chrome/browser/bookmarks/bookmark_parent_folder.cc ++++ b/chrome/browser/bookmarks/bookmark_parent_folder.cc +@@ -18,6 +18,7 @@ BookmarkParentFolder GetBookmarkParentFolderFromPermanentNode( + CHECK(node->is_permanent_node()); + switch (node->type()) { case bookmarks::BookmarkNode::URL: + case bookmarks::BookmarkNode::TABS_COLLECTION: NOTREACHED(); case bookmarks::BookmarkNode::FOLDER: // TODO(crbug.com/381252292): Consider extending type with a value -@@ -70,6 +71,8 @@ std::optional GetIfPermanentFolderType( - - case BookmarkNode::Type::URL: - NOTREACHED(); -+ case BookmarkNode::Type::TABS_COLLECTION: -+ NOTREACHED(); - } - NOTREACHED(); - } diff --git a/chrome/browser/bookmarks/permanent_folder_ordering_tracker.cc b/chrome/browser/bookmarks/permanent_folder_ordering_tracker.cc --- a/chrome/browser/bookmarks/permanent_folder_ordering_tracker.cc +++ b/chrome/browser/bookmarks/permanent_folder_ordering_tracker.cc -@@ -23,6 +23,7 @@ bool IsValidTrackedType(BookmarkNode::Type type) { +@@ -26,6 +26,7 @@ bool IsValidTrackedType(BookmarkNode::Type type) { switch (type) { case bookmarks::BookmarkNode::URL: case bookmarks::BookmarkNode::FOLDER: @@ -415,7 +419,7 @@ diff --git a/chrome/browser/bookmarks/permanent_folder_ordering_tracker.cc b/chr NOTREACHED(); case bookmarks::BookmarkNode::BOOKMARK_BAR: -@@ -235,6 +236,7 @@ void PermanentFolderOrderingTracker::SetTrackedPermanentNodes() { +@@ -291,6 +292,7 @@ void PermanentFolderOrderingTracker::SetTrackedPermanentNodes() { switch (tracked_type_) { case bookmarks::BookmarkNode::URL: case bookmarks::BookmarkNode::FOLDER: @@ -447,7 +451,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 -@@ -4487,6 +4487,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4497,6 +4497,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d Select tabs diff --git a/build/patches/Add-search-engine.patch b/build/patches/Add-search-engine.patch index 26d7de69..9ebb08cf 100644 --- a/build/patches/Add-search-engine.patch +++ b/build/patches/Add-search-engine.patch @@ -14,15 +14,14 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html components/search_engines/cromite/BUILD.gn | 12 ++++++ .../cromite/cromite_prepopulated_engines.json | 37 ++++++++++++++++++ .../search_engine_choice_utils.cc | 5 +-- - .../search_engine_countries-inc.cc | 2 + .../search_engines/search_engine_type.h | 5 +++ - .../template_url_prepopulate_data.cc | 3 +- + .../template_url_prepopulate_data.cc | 5 ++- .../template_url_prepopulate_data.h | 7 ---- tools/json_to_struct/json_to_struct.gni | 9 +++++ tools/json_to_struct/json_to_struct.py | 26 ++++++++---- tools/json_to_struct/struct_generator.py | 10 +++-- tools/variations/fieldtrial_to_struct.py | 4 +- - 14 files changed, 99 insertions(+), 25 deletions(-) + 13 files changed, 99 insertions(+), 25 deletions(-) create mode 100644 components/resources/default_100_percent/search_engine_choice/default_favicon.png create mode 100644 components/search_engines/cromite/BUILD.gn create mode 100644 components/search_engines/cromite/cromite_prepopulated_engines.json @@ -68,15 +67,15 @@ diff --git a/components/resources/search_engine_choice_scaled_resources.grdp b/c diff --git a/components/search_engines/BUILD.gn b/components/search_engines/BUILD.gn --- a/components/search_engines/BUILD.gn +++ b/components/search_engines/BUILD.gn -@@ -72,6 +72,7 @@ static_library("search_engines") { - "//third_party/metrics_proto", +@@ -73,6 +73,7 @@ static_library("search_engines") { "//third_party/omnibox_proto", "//third_party/search_engines_data:prepopulated_engines", + "//third_party/search_engines_data:regional_settings", + "cromite:cromite_prepopulated_engines", ] deps = [ -@@ -157,6 +158,7 @@ source_set("search_engine_utils") { +@@ -159,6 +160,7 @@ source_set("search_engine_utils") { ":search_engine_type", "//components/google/core/common", "//third_party/search_engines_data:prepopulated_engines", @@ -84,7 +83,7 @@ diff --git a/components/search_engines/BUILD.gn b/components/search_engines/BUIL ] deps = [ "//url" ] -@@ -237,6 +239,7 @@ source_set("unit_tests") { +@@ -242,6 +244,7 @@ source_set("unit_tests") { "//testing/gmock", "//testing/gtest", "//third_party/search_engines_data:prepopulated_engines", @@ -154,7 +153,7 @@ new file mode 100644 diff --git a/components/search_engines/search_engine_choice/search_engine_choice_utils.cc b/components/search_engines/search_engine_choice/search_engine_choice_utils.cc --- a/components/search_engines/search_engine_choice/search_engine_choice_utils.cc +++ b/components/search_engines/search_engine_choice/search_engine_choice_utils.cc -@@ -182,10 +182,7 @@ void RecordChoiceScreenDefaultSearchProviderType( +@@ -183,10 +183,7 @@ void RecordChoiceScreenDefaultSearchProviderType( } void RecordChoiceScreenSelectedIndex(int selected_engine_index) { @@ -166,29 +165,19 @@ diff --git a/components/search_engines/search_engine_choice/search_engine_choice } void RecordChoiceScreenPositionsCountryMismatch(bool has_mismatch) { -diff --git a/components/search_engines/search_engine_countries-inc.cc b/components/search_engines/search_engine_countries-inc.cc ---- a/components/search_engines/search_engine_countries-inc.cc -+++ b/components/search_engines/search_engine_countries-inc.cc -@@ -1453,5 +1453,7 @@ const std::vector GetPrepopulationSetFromCountryID( - for (size_t i = 0; i < num_engines; i++) { - t_url.push_back(engines[i]); - } -+ t_url.push_back({SearchEngineTier::kTopEngines, &googleen}); -+ t_url.push_back({SearchEngineTier::kTopEngines, &duckduckgo_light}); - return t_url; - } diff --git a/components/search_engines/search_engine_type.h b/components/search_engines/search_engine_type.h --- a/components/search_engines/search_engine_type.h +++ b/components/search_engines/search_engine_type.h -@@ -94,10 +94,15 @@ enum SearchEngineType { - SEARCH_ENGINE_STARTPAGE = 75, - SEARCH_ENGINE_STARTER_PACK_PAGE = 76, +@@ -97,11 +97,16 @@ enum SearchEngineType { SEARCH_ENGINE_MCAFEE = 77, -+ SEARCH_ENGINE_GOOGLE_EN = 78, -+ SEARCH_ENGINE_DUCKDUCKGOLIGHT = 79, + SEARCH_ENGINE_FREESPOKE = 78, + SEARCH_ENGINE_KAGI = 79, ++ SEARCH_ENGINE_GOOGLE_EN = 80, ++ SEARCH_ENGINE_DUCKDUCKGOLIGHT = 81, SEARCH_ENGINE_MAX // Bounding value needed for UMA histogram macro. }; + // LINT.ThenChange(//tools/metrics/histograms/enums.xml:OmniboxSearchEngineType) +static_assert(SEARCH_ENGINE_DUCKDUCKGOLIGHT == (SEARCH_ENGINE_MAX - 1), + "Please check this patch"); @@ -199,16 +188,25 @@ diff --git a/components/search_engines/search_engine_type.h b/components/search_ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/components/search_engines/template_url_prepopulate_data.cc --- a/components/search_engines/template_url_prepopulate_data.cc +++ b/components/search_engines/template_url_prepopulate_data.cc -@@ -28,6 +28,8 @@ - #include "components/version_info/version_info.h" +@@ -30,6 +30,8 @@ #include "third_party/search_engines_data/resources/definitions/prepopulated_engines.h" + #include "third_party/search_engines_data/resources/definitions/regional_settings.h" +#include "components/search_engines/cromite/cromite_prepopulated_engines.h" + namespace TemplateURLPrepopulateData { // Helpers -------------------------------------------------------------------- -@@ -67,7 +69,6 @@ GetPrepopulatedEnginesForEeaRegionCountries(CountryID country_id, +@@ -53,6 +55,8 @@ const RegionalSettings& GetRegionalSettings(CountryId country_id) { + iter = kRegionalSettings.find(CountryId()); + } + ++ t_url.push_back({SearchEngineTier::kTopEngines, &googleen}); ++ t_url.push_back({SearchEngineTier::kTopEngines, &duckduckgo_light}); + return *iter->second; + } + +@@ -85,7 +89,6 @@ GetPrepopulatedEnginesForEeaRegionCountries(CountryId country_id, generator.seed(profile_seed); std::shuffle(t_urls.begin(), t_urls.end(), generator); @@ -219,7 +217,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon diff --git a/components/search_engines/template_url_prepopulate_data.h b/components/search_engines/template_url_prepopulate_data.h --- a/components/search_engines/template_url_prepopulate_data.h +++ b/components/search_engines/template_url_prepopulate_data.h -@@ -31,13 +31,6 @@ struct PrepopulatedEngine; +@@ -32,13 +32,6 @@ struct PrepopulatedEngine; extern const int kMaxPrepopulatedEngineID; @@ -236,7 +234,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.h b/compone diff --git a/tools/json_to_struct/json_to_struct.gni b/tools/json_to_struct/json_to_struct.gni --- a/tools/json_to_struct/json_to_struct.gni +++ b/tools/json_to_struct/json_to_struct.gni -@@ -25,6 +25,11 @@ template("json_to_struct") { +@@ -39,6 +39,11 @@ template("json_to_struct") { action_name = target_name + "_action" source_set_name = target_name @@ -248,7 +246,7 @@ diff --git a/tools/json_to_struct/json_to_struct.gni b/tools/json_to_struct/json action(action_name) { visibility = [ ":$source_set_name" ] script = "//tools/json_to_struct/json_to_struct.py" -@@ -49,6 +54,10 @@ template("json_to_struct") { +@@ -61,6 +66,10 @@ template("json_to_struct") { "--namespace=" + invoker.namespace, "--schema=" + rebase_path(invoker.schema_file, root_build_dir), ] @@ -262,7 +260,7 @@ diff --git a/tools/json_to_struct/json_to_struct.gni b/tools/json_to_struct/json diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_to_struct.py --- a/tools/json_to_struct/json_to_struct.py +++ b/tools/json_to_struct/json_to_struct.py -@@ -97,7 +97,7 @@ def _GenerateHeaderGuard(h_filename): +@@ -100,7 +100,7 @@ def _GenerateHeaderGuard(h_filename): return re.sub(u'^_*', '', result) + u'_' # Remove leading underscores. @@ -271,7 +269,7 @@ diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_ """Generates the .h file containing the definition of the structure specified by the schema. -@@ -133,11 +133,15 @@ def _GenerateH(basepath, fileroot, head, namespace, schema, description): +@@ -136,11 +136,15 @@ def _GenerateH(basepath, fileroot, head, namespace, schema, description): f.write(u'#include "%s"\n' % header) f.write(u'\n') @@ -288,7 +286,7 @@ diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_ schema['type_name'], schema['schema'])) f.write(u'\n') -@@ -162,7 +166,7 @@ def _GenerateH(basepath, fileroot, head, namespace, schema, description): +@@ -175,7 +179,7 @@ def _GenerateH(basepath, fileroot, head, namespace, schema, description): f.write(u'#endif // %s\n' % header_guard) @@ -297,16 +295,16 @@ diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_ """Generates the .cc file containing the static initializers for the of the elements specified in the description. -@@ -191,7 +195,7 @@ def _GenerateCC(basepath, fileroot, head, namespace, schema, description): +@@ -210,7 +214,7 @@ def _GenerateCC(basepath, fileroot, head, namespace, schema, description): f.write(element_generator.GenerateElements(schema['type_name'], schema['schema'], description)) -- if 'generate_array' in description: -+ if excludetype == False and 'generate_array' in description: - f.write(u'\n') - f.write( - u'const %s* const array_%s[] = {\n' % -@@ -283,7 +287,7 @@ def GenerateClass(basepath, +- if not aggregation.export_items: ++ if excludetype == False and not aggregation.export_items: + f.write('\n} // anonymous namespace \n\n') + + if aggregation.kind == AggregationKind.ARRAY: +@@ -315,7 +319,7 @@ def GenerateClass(basepath, def GenerateStruct(basepath, output_root, namespace, schema, description, @@ -315,7 +313,7 @@ diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_ """Generates a C++ struct from a JSON description. Args: -@@ -302,8 +306,8 @@ def GenerateStruct(basepath, output_root, namespace, schema, description, +@@ -334,8 +338,8 @@ def GenerateStruct(basepath, output_root, namespace, schema, description, """ year = int(year) if year else datetime.now().year head = HEAD % (year, schema_filename, description_filename) @@ -326,7 +324,7 @@ diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_ if __name__ == '__main__': parser = optparse.OptionParser( -@@ -318,11 +322,17 @@ if __name__ == '__main__': +@@ -350,11 +354,17 @@ if __name__ == '__main__': parser.add_option('-s', '--schema', help='path to the schema file, ' 'mandatory.') parser.add_option('-o', '--output', help='output filename, ') @@ -344,7 +342,7 @@ diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_ description_filename = os.path.normpath(args[0]) root, ext = os.path.splitext(description_filename) shortroot = opts.output if opts.output else os.path.split(root)[1] -@@ -339,4 +349,4 @@ if __name__ == '__main__': +@@ -371,4 +381,4 @@ if __name__ == '__main__': schema = _Load(opts.schema) description = _Load(description_filename) GenerateStruct(basepath, output_root, opts.namespace, schema, description, 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 4705a1e4..15a6fdec 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 -@@ -253,6 +253,7 @@ chrome_java_sources = [ +@@ -254,6 +254,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", @@ -74,7 +74,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 -@@ -186,6 +186,7 @@ import org.chromium.chrome.browser.profiles.ProfileProvider; +@@ -190,6 +190,7 @@ import org.chromium.chrome.browser.profiles.ProfileProvider; import org.chromium.chrome.browser.quick_delete.QuickDeleteController; import org.chromium.chrome.browser.quick_delete.QuickDeleteDelegateImpl; import org.chromium.chrome.browser.quick_delete.QuickDeleteMetricsDelegate; @@ -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; -@@ -1700,7 +1701,11 @@ public class ChromeTabbedActivity extends ChromeActivity implements MismatchedIn +@@ -1780,7 +1781,11 @@ public class ChromeTabbedActivity extends ChromeActivity { Intent intent = getIntent(); boolean hadCipherData = @@ -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 -@@ -2200,6 +2200,16 @@ +@@ -2228,6 +2228,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 -@@ -103,6 +103,7 @@ +@@ -104,6 +104,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" @@ -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 -@@ -538,6 +538,23 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { +@@ -541,6 +541,23 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { (*s_allowlist)[browsing_data::prefs::kLastClearBrowsingDataTab] = settings_api::PrefType::kNumber; @@ -542,7 +542,7 @@ diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chro diff --git a/chrome/browser/profiles/android/java/src/org/chromium/chrome/browser/profiles/ProfileManagerUtils.java b/chrome/browser/profiles/android/java/src/org/chromium/chrome/browser/profiles/ProfileManagerUtils.java --- a/chrome/browser/profiles/android/java/src/org/chromium/chrome/browser/profiles/ProfileManagerUtils.java +++ b/chrome/browser/profiles/android/java/src/org/chromium/chrome/browser/profiles/ProfileManagerUtils.java -@@ -54,10 +54,15 @@ public class ProfileManagerUtils { +@@ -56,11 +56,16 @@ public class ProfileManagerUtils { } } @@ -550,8 +550,9 @@ diff --git a/chrome/browser/profiles/android/java/src/org/chromium/chrome/browse + ProfileManagerUtilsJni.get().removeBrowsingDataAtStart(); + } + + @VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE) @NativeMethods - interface Natives { + public interface Natives { void flushPersistentDataForAllProfiles(); void removeSessionCookiesForAllProfiles(); @@ -573,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 -@@ -1441,6 +1441,19 @@ void ProfileManager::DoFinalInit(ProfileInfo* profile_info, +@@ -1442,6 +1442,19 @@ void ProfileManager::DoFinalInit(ProfileInfo* profile_info, } } @@ -593,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_ || -@@ -2114,7 +2127,7 @@ void ProfileManager::OnBrowserClosed(Browser* browser) { +@@ -2121,7 +2134,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()) { @@ -671,7 +672,7 @@ diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_ diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.ts b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.ts --- a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.ts +++ b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.ts -@@ -222,6 +222,7 @@ export class SettingsClearBrowsingDataDialogElement extends +@@ -214,6 +214,7 @@ export class SettingsClearBrowsingDataDialogElement extends value: () => [loadTimeData.getString('basicPageTitle'), loadTimeData.getString('advancedPageTitle'), @@ -679,7 +680,7 @@ diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_ ], }, -@@ -343,6 +344,7 @@ export class SettingsClearBrowsingDataDialogElement extends +@@ -335,6 +336,7 @@ export class SettingsClearBrowsingDataDialogElement extends } this.clearButtonDisabled_ = this.getSelectedDataTypes_(page as HTMLElement).length === 0; @@ -690,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 -@@ -1584,6 +1584,9 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1590,6 +1590,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>. @@ -717,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 -@@ -1919,6 +1919,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, +@@ -1910,6 +1910,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, {"clearedData", IDS_SETTINGS_CLEARED_DATA}, {"clearBrowsingData", IDS_SETTINGS_CLEAR_BROWSING_DATA}, {"clearBrowsingDataDescription", IDS_SETTINGS_CLEAR_DATA_DESCRIPTION}, @@ -825,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 -@@ -335,6 +335,37 @@ bool GetDeletionPreferenceFromDataType( +@@ -341,6 +341,37 @@ bool GetDeletionPreferenceFromDataType( BrowsingDataType data_type, ClearBrowsingDataTab clear_browsing_data_tab, std::string* out_pref) { @@ -937,7 +938,7 @@ diff --git a/components/favicon/core/favicon_database.cc b/components/favicon/co // Description of database tables: // // icon_mapping -@@ -507,6 +511,14 @@ bool FaviconDatabase::SetFaviconBitmapLastUpdateTime(FaviconBitmapID bitmap_id, +@@ -508,6 +512,14 @@ bool FaviconDatabase::SetFaviconBitmapLastUpdateTime(FaviconBitmapID bitmap_id, bool FaviconDatabase::SetFaviconsOutOfDateBetween(base::Time begin, base::Time end) { @@ -967,7 +968,7 @@ diff --git a/components/favicon/core/favicon_database.h b/components/favicon/cor diff --git a/components/search_engines/template_url_service.cc b/components/search_engines/template_url_service.cc --- a/components/search_engines/template_url_service.cc +++ b/components/search_engines/template_url_service.cc -@@ -862,6 +862,7 @@ void TemplateURLService::RemoveAutoGeneratedForUrlsBetween( +@@ -893,6 +893,7 @@ void TemplateURLService::RemoveAutoGeneratedForUrlsBetween( if (turl->date_created() >= created_after && (created_before.is_null() || turl->date_created() < created_before) && turl->safe_for_autoreplace() && turl->prepopulate_id() == 0 && @@ -990,7 +991,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 -@@ -1527,6 +1527,7 @@ void StoragePartitionImpl::Initialize( +@@ -1528,6 +1528,7 @@ void StoragePartitionImpl::Initialize( .AppendASCII("Code Cache"); } DCHECK_GE(settings.size_in_bytes(), 0); diff --git a/build/patches/Follow-only-system-dark-mode.patch b/build/patches/Follow-only-system-dark-mode.patch index d46556bf..8705cf7f 100644 --- a/build/patches/Follow-only-system-dark-mode.patch +++ b/build/patches/Follow-only-system-dark-mode.patch @@ -12,7 +12,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/ui/android/night_mode/java/src/org/chromium/chrome/browser/night_mode/GlobalNightModeStateController.java b/chrome/browser/ui/android/night_mode/java/src/org/chromium/chrome/browser/night_mode/GlobalNightModeStateController.java --- a/chrome/browser/ui/android/night_mode/java/src/org/chromium/chrome/browser/night_mode/GlobalNightModeStateController.java +++ b/chrome/browser/ui/android/night_mode/java/src/org/chromium/chrome/browser/night_mode/GlobalNightModeStateController.java -@@ -127,7 +127,7 @@ class GlobalNightModeStateController +@@ -128,7 +128,7 @@ class GlobalNightModeStateController } private void updateNightMode() { diff --git a/build/patches/Override-Navigator-Language.patch b/build/patches/Override-Navigator-Language.patch index d01044ec..c71f6902 100644 --- a/build/patches/Override-Navigator-Language.patch +++ b/build/patches/Override-Navigator-Language.patch @@ -69,7 +69,7 @@ diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content #include "components/metrics/single_sample_metrics.h" #include "components/services/storage/privileged/mojom/indexed_db_control.mojom.h" #include "components/services/storage/public/cpp/buckets/bucket_id.h" -@@ -3281,8 +3282,11 @@ void RenderProcessHostImpl::AppendRendererCommandLine( +@@ -3363,8 +3364,11 @@ void RenderProcessHostImpl::AppendRendererCommandLine( PropagateBrowserCommandLineToRenderer(browser_command_line, command_line); // Pass on the browser locale. diff --git a/build/patches/Partition-Blink-memory-cache.patch b/build/patches/Partition-Blink-memory-cache.patch index 219ef17a..0c39fbad 100644 --- a/build/patches/Partition-Blink-memory-cache.patch +++ b/build/patches/Partition-Blink-memory-cache.patch @@ -42,7 +42,7 @@ diff --git a/third_party/blink/renderer/core/html/parser/html_srcset_parser.cc b diff --git a/third_party/blink/renderer/core/inspector/inspector_network_agent.cc b/third_party/blink/renderer/core/inspector/inspector_network_agent.cc --- a/third_party/blink/renderer/core/inspector/inspector_network_agent.cc +++ b/third_party/blink/renderer/core/inspector/inspector_network_agent.cc -@@ -2436,7 +2436,7 @@ bool InspectorNetworkAgent::FetchResourceContent(Document* document, +@@ -2522,7 +2522,7 @@ bool InspectorNetworkAgent::FetchResourceContent(Document* document, if (!cached_resource) { cached_resource = MemoryCache::Get()->ResourceForURL( url, document->Fetcher()->GetCacheIdentifier( @@ -66,7 +66,7 @@ diff --git a/third_party/blink/renderer/core/inspector/inspector_page_agent.cc b 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 -@@ -851,6 +851,8 @@ void FrameFetchContext::PopulateResourceRequestBeforeCacheAccess( +@@ -866,6 +866,8 @@ void FrameFetchContext::PopulateResourceRequestBeforeCacheAccess( if (document_loader_->ForceFetchCacheMode()) { request.SetCacheMode(*document_loader_->ForceFetchCacheMode()); } @@ -154,7 +154,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/memory_cache.h b/t diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc --- a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc +++ b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc -@@ -1026,7 +1026,8 @@ Resource* ResourceFetcher::CreateResourceForStaticData( +@@ -1027,7 +1027,8 @@ Resource* ResourceFetcher::CreateResourceForStaticData( } const String cache_identifier = GetCacheIdentifier( @@ -164,7 +164,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c // Most off-main-thread resource fetches use Resource::kRaw and don't reach // this point, but off-main-thread module fetches might. if (IsMainThread()) { -@@ -1482,7 +1483,8 @@ Resource* ResourceFetcher::RequestResource(FetchParameters& params, +@@ -1483,7 +1484,8 @@ Resource* ResourceFetcher::RequestResource(FetchParameters& params, params.Url(), GetCacheIdentifier( params.Url(), @@ -174,7 +174,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c if (resource) { policy = DetermineRevalidationPolicy(resource_type, params, *resource, is_static_data); -@@ -1814,7 +1816,8 @@ Resource* ResourceFetcher::CreateResourceForLoading( +@@ -1815,7 +1817,8 @@ Resource* ResourceFetcher::CreateResourceForLoading( const ResourceFactory& factory) { const String cache_identifier = GetCacheIdentifier(params.GetResourceRequest().Url(), @@ -184,7 +184,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c DCHECK(!IsMainThread() || params.IsStaleRevalidation() || !MemoryCache::Get()->ResourceForURL(params.GetResourceRequest().Url(), cache_identifier)); -@@ -2927,11 +2930,47 @@ void ResourceFetcher::UpdateImagePrioritiesAndSpeculativeDecodes() { +@@ -2938,11 +2941,47 @@ void ResourceFetcher::UpdateImagePrioritiesAndSpeculativeDecodes() { } String ResourceFetcher::GetCacheIdentifier(const KURL& url, @@ -237,7 +237,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c } // Requests that can be satisfied via `archive_` (i.e. MHTML) or -@@ -2946,7 +2985,7 @@ String ResourceFetcher::GetCacheIdentifier(const KURL& url, +@@ -2957,7 +2996,7 @@ String ResourceFetcher::GetCacheIdentifier(const KURL& url, return bundle->GetCacheIdentifier(); } diff --git a/build/patches/Partition-blobs-by-top-frame-URL.patch b/build/patches/Partition-blobs-by-top-frame-URL.patch index db190a5c..68a5cdc1 100644 --- a/build/patches/Partition-blobs-by-top-frame-URL.patch +++ b/build/patches/Partition-blobs-by-top-frame-URL.patch @@ -8,15 +8,28 @@ or, if not defined, by the same agent cluster. 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 --- + .../renderer_host/render_frame_host_impl.cc | 2 + .../Partition-blobs-by-top-frame-URL.inc | 1 + - storage/browser/blob/blob_url_store_impl.cc | 51 +++++++++++++++++++ - storage/browser/blob/blob_url_store_impl.h | 11 ++++ + storage/browser/blob/blob_url_store_impl.cc | 71 ++++++++++++++++++- + storage/browser/blob/blob_url_store_impl.h | 13 ++++ storage/browser/blob/features.cc | 1 + - .../public/mojom/blob/blob_url_store.mojom | 12 +++-- - .../core/fileapi/public_url_manager.cc | 18 +++++++ - 6 files changed, 91 insertions(+), 3 deletions(-) + .../public/mojom/blob/blob_url_store.mojom | 8 ++- + .../core/fileapi/public_url_manager.cc | 17 +++++ + 7 files changed, 110 insertions(+), 3 deletions(-) create mode 100644 cromite_flags/third_party/blink/common/features_cc/Partition-blobs-by-top-frame-URL.inc +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 +@@ -12683,6 +12683,8 @@ void RenderFrameHostImpl::ReportBlockingCrossPartitionBlobURL( + } + + bool RenderFrameHostImpl::DoesDocumentHaveStorageAccess() { ++ // 6313600: [Blob URL] Allow contexts with a StorageAccessHandle ++ // to bypass Blob URL partitioning | https://chromium-review.googlesource.com/c/chromium/src/+/6313600 + return StorageAccessHandle::DoesDocumentHaveStorageAccess(this); + } + diff --git a/cromite_flags/third_party/blink/common/features_cc/Partition-blobs-by-top-frame-URL.inc b/cromite_flags/third_party/blink/common/features_cc/Partition-blobs-by-top-frame-URL.inc new file mode 100644 --- /dev/null @@ -26,7 +39,24 @@ new file mode 100644 diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/blob_url_store_impl.cc --- a/storage/browser/blob/blob_url_store_impl.cc +++ b/storage/browser/blob/blob_url_store_impl.cc -@@ -91,6 +91,30 @@ BlobURLStoreImpl::~BlobURLStoreImpl() { +@@ -21,6 +21,16 @@ + + namespace storage { + ++namespace { ++ ++// this code only serves to break the build in v137 ++// when https://chromium-review.googlesource.com/c/chromium/src/+/6430562 is inserted. ++// (UAZO) BlobURLStoreImpl::ShouldPartitionBlobUrlAccess => true ++[[maybe_unused]] bool IsBlobUrlAccessCrossPartitionSameOrigin( ++ BlobUrlRegistry::MappingStatus mapping_status) { ++ return false; ++} ++ + // Self deletes when the last binding to it is closed. + class BlobURLTokenImpl : public blink::mojom::BlobURLToken { + public: +@@ -93,6 +103,30 @@ BlobURLStoreImpl::~BlobURLStoreImpl() { } } @@ -57,7 +87,7 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/ void BlobURLStoreImpl::Register( mojo::PendingRemote blob, const GURL& url, -@@ -105,6 +129,14 @@ void BlobURLStoreImpl::Register( +@@ -107,6 +141,14 @@ void BlobURLStoreImpl::Register( return; } @@ -72,7 +102,7 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/ if (registry_) registry_->AddUrlMapping(url, std::move(blob), storage_key_, renderer_origin_, render_process_host_id_, -@@ -125,6 +157,8 @@ void BlobURLStoreImpl::Revoke(const GURL& url) { +@@ -127,21 +169,32 @@ void BlobURLStoreImpl::Revoke(const GURL& url) { void BlobURLStoreImpl::ResolveAsURLLoaderFactory( const GURL& url, mojo::PendingReceiver receiver, @@ -81,15 +111,40 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/ ResolveAsURLLoaderFactoryCallback callback) { if (!registry_) { BlobURLLoaderFactory::Create(mojo::NullRemote(), url, std::move(receiver)); -@@ -140,6 +174,7 @@ void BlobURLStoreImpl::ResolveAsURLLoaderFactory( + std::move(callback).Run(std::nullopt, std::nullopt); + return; + } +- FinishResolveAsURLLoaderFactory(url, std::move(receiver), std::move(callback), ++ FinishResolveAsURLLoaderFactory(url, std::move(receiver), ++ unsafe_agent_cluster_id, unsafe_top_level_site, ++ std::move(callback), + storage_access_check_callback_.Run()); + } + + void BlobURLStoreImpl::FinishResolveAsURLLoaderFactory( + const GURL& url, + mojo::PendingReceiver receiver, ++ const base::UnguessableToken& unsafe_agent_cluster_id, ++ const std::optional& unsafe_top_level_site, + ResolveAsURLLoaderFactoryCallback callback, + bool has_storage_access_handle) { ++ if (!IsSamePartition(url, unsafe_agent_cluster_id, unsafe_top_level_site)) { ++ BlobURLLoaderFactory::Create(mojo::NullRemote(), url, std::move(receiver)); ++ std::move(callback).Run(std::nullopt, std::nullopt); ++ return; ++ } + if (registry_->IsUrlMapped(BlobUrlUtils::ClearUrlFragment(url), + storage_key_) == + BlobUrlRegistry::MappingStatus::kNotMappedCrossPartitionSameOrigin) { +@@ -150,6 +203,7 @@ void BlobURLStoreImpl::FinishResolveAsURLLoaderFactory( features::kBlockCrossPartitionBlobUrlFetching) && !partitioning_disabled_by_policy_; - if (feature_and_policy_check) { + if (feature_and_policy_check && !has_storage_access_handle) { + // LOG(INFO) << "---ResolveAsURLLoaderFactory blocked" << url; partitioning_blob_url_closure_.Run(url, blink::mojom::PartitioningBlobURLInfo:: kBlockedCrossPartitionFetching); -@@ -152,6 +187,13 @@ void BlobURLStoreImpl::ResolveAsURLLoaderFactory( +@@ -162,6 +216,12 @@ void BlobURLStoreImpl::FinishResolveAsURLLoaderFactory( partitioning_blob_url_closure_.Run(url, std::nullopt); } @@ -98,23 +153,35 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/ + std::move(callback).Run(std::nullopt, std::nullopt); + return; + } -+ + // LOG(INFO) << "---ResolveAsURLLoaderFactory allowed " << url; BlobURLLoaderFactory::Create(registry_->GetBlobFromUrl(url), url, std::move(receiver)); // When a fragment URL is present, registry_->GetUnsafeAgentClusterID(url) and -@@ -166,12 +208,18 @@ void BlobURLStoreImpl::ResolveForNavigation( +@@ -175,6 +235,8 @@ void BlobURLStoreImpl::FinishResolveAsURLLoaderFactory( + void BlobURLStoreImpl::ResolveAsBlobURLToken( + const GURL& url, + mojo::PendingReceiver token, ++ const base::UnguessableToken& unsafe_agent_cluster_id, ++ const std::optional& unsafe_top_level_site, + bool is_top_level_navigation, + ResolveAsBlobURLTokenCallback callback) { + if (!registry_) { +@@ -182,6 +244,7 @@ void BlobURLStoreImpl::ResolveAsBlobURLToken( + return; + } + FinishResolveAsBlobURLToken(url, std::move(token), is_top_level_navigation, ++ unsafe_agent_cluster_id, unsafe_top_level_site, + std::move(callback), + storage_access_check_callback_.Run()); + } +@@ -190,8 +253,14 @@ void BlobURLStoreImpl::FinishResolveAsBlobURLToken( const GURL& url, mojo::PendingReceiver token, bool is_top_level_navigation, + const base::UnguessableToken& unsafe_agent_cluster_id, + const std::optional& unsafe_top_level_site, - ResolveForNavigationCallback callback) { - if (!registry_) { - std::move(callback).Run(std::nullopt); - return; - } - + ResolveAsBlobURLTokenCallback callback, + bool has_storage_access_handle) { + if (!IsSamePartition(url, unsafe_agent_cluster_id, unsafe_top_level_site)) { + std::move(callback).Run(std::nullopt); + return; @@ -122,50 +189,42 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/ if (!is_top_level_navigation && (registry_->IsUrlMapped(BlobUrlUtils::ClearUrlFragment(url), storage_key_) == -@@ -203,12 +251,15 @@ void BlobURLStoreImpl::ResolveForNavigation( - void BlobURLStoreImpl::ResolveForWorkerScriptFetch( - const GURL& url, - mojo::PendingReceiver token, -+ const base::UnguessableToken& unsafe_agent_cluster_id, -+ const std::optional& unsafe_top_level_site, - ResolveForNavigationCallback callback) { - if (!registry_) { - std::move(callback).Run(std::nullopt); - return; - } - ResolveForNavigation(url, std::move(token), /*is_top_level_navigation=*/false, -+ unsafe_agent_cluster_id, unsafe_top_level_site, - std::move(callback)); - } - diff --git a/storage/browser/blob/blob_url_store_impl.h b/storage/browser/blob/blob_url_store_impl.h --- a/storage/browser/blob/blob_url_store_impl.h +++ b/storage/browser/blob/blob_url_store_impl.h -@@ -57,15 +57,21 @@ class COMPONENT_EXPORT(STORAGE_BROWSER) BlobURLStoreImpl +@@ -60,11 +60,15 @@ class COMPONENT_EXPORT(STORAGE_BROWSER) BlobURLStoreImpl void ResolveAsURLLoaderFactory( const GURL& url, mojo::PendingReceiver receiver, + const base::UnguessableToken& unsafe_agent_cluster_id, + const std::optional& unsafe_top_level_site, ResolveAsURLLoaderFactoryCallback callback) override; - void ResolveForNavigation( + void ResolveAsBlobURLToken( const GURL& url, mojo::PendingReceiver token, bool is_top_level_navigation, + const base::UnguessableToken& unsafe_agent_cluster_id, + const std::optional& unsafe_top_level_site, - ResolveForNavigationCallback callback) override; - void ResolveForWorkerScriptFetch( - const GURL& url, - mojo::PendingReceiver token, -+ const base::UnguessableToken& unsafe_agent_cluster_id, -+ const std::optional& unsafe_top_level_site, - ResolveForNavigationCallback callback) override; + ResolveAsBlobURLTokenCallback callback) override; private: -@@ -75,6 +81,11 @@ class COMPONENT_EXPORT(STORAGE_BROWSER) BlobURLStoreImpl - // `Revoke()`. - bool BlobUrlIsValid(const GURL& url, const char* method) const; +@@ -77,6 +81,8 @@ class COMPONENT_EXPORT(STORAGE_BROWSER) BlobURLStoreImpl + void FinishResolveAsURLLoaderFactory( + const GURL& url, + mojo::PendingReceiver receiver, ++ const base::UnguessableToken& unsafe_agent_cluster_id, ++ const std::optional& unsafe_top_level_site, + ResolveAsURLLoaderFactoryCallback callback, + bool has_storage_access_handle); + +@@ -84,9 +90,16 @@ class COMPONENT_EXPORT(STORAGE_BROWSER) BlobURLStoreImpl + const GURL& url, + mojo::PendingReceiver token, + bool is_top_level_navigation, ++ const base::UnguessableToken& unsafe_agent_cluster_id, ++ const std::optional& unsafe_top_level_site, + ResolveAsBlobURLTokenCallback callback, + bool has_storage_access_handle); + bool IsSamePartition( + const GURL& blob_url, @@ -202,22 +261,11 @@ diff --git a/third_party/blink/public/mojom/blob/blob_url_store.mojom b/third_pa network.mojom.SchemefulSite? unsafe_top_level_site); @@ -48,7 +50,9 @@ interface BlobURLStore { // As long as the token is alive, the resolved blob will also be kept alive. - ResolveForNavigation(url.mojom.Url url, + ResolveAsBlobURLToken(url.mojom.Url url, pending_receiver token, - bool is_top_level_navigation) => ( + bool is_top_level_navigation, + mojo_base.mojom.UnguessableToken unsafe_agent_cluster_id, -+ network.mojom.SchemefulSite? unsafe_top_level_site) => ( - // TODO(https://crbug.com/1224926): Remove this once experiment is over. - mojo_base.mojom.UnguessableToken? unsafe_agent_cluster_id); - -@@ -59,7 +63,9 @@ interface BlobURLStore { - // currently intended for use when fetching a dedicated / shared worker - // script. - ResolveForWorkerScriptFetch(url.mojom.Url url, -- pending_receiver token) => ( -+ pending_receiver token, -+ mojo_base.mojom.UnguessableToken unsafe_agent_cluster_id, + network.mojom.SchemefulSite? unsafe_top_level_site) => ( // TODO(https://crbug.com/1224926): Remove this once experiment is over. mojo_base.mojom.UnguessableToken? unsafe_agent_cluster_id); @@ -255,20 +303,12 @@ diff --git a/third_party/blink/renderer/core/fileapi/public_url_manager.cc b/thi WTF::BindOnce(metrics_callback, WrapPersistent(GetExecutionContext()))); } -@@ -293,6 +309,7 @@ void PublicURLManager::ResolveForNavigation( +@@ -293,6 +309,7 @@ void PublicURLManager::ResolveAsBlobURLToken( - GetBlobURLStore().ResolveForNavigation( + GetBlobURLStore().ResolveAsBlobURLToken( url, std::move(token_receiver), is_top_level_navigation, + GetExecutionContext()->GetAgentClusterID(), GetInsecureTopLevelSite(GetExecutionContext()), WTF::BindOnce(metrics_callback, WrapPersistent(GetExecutionContext()))); } -@@ -319,6 +336,7 @@ void PublicURLManager::ResolveForWorkerScriptFetch( - - GetBlobURLStore().ResolveForWorkerScriptFetch( - url, std::move(token_receiver), -+ GetExecutionContext()->GetAgentClusterID(), GetInsecureTopLevelSite(GetExecutionContext()), - WTF::BindOnce(metrics_callback, WrapPersistent(GetExecutionContext()))); - } - -- diff --git a/build/patches/Welcome-screen.patch b/build/patches/Welcome-screen.patch index 790859a9..bcf8fe42 100644 --- a/build/patches/Welcome-screen.patch +++ b/build/patches/Welcome-screen.patch @@ -13,15 +13,15 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/android/java/res/values/styles.xml | 24 ++ .../DefaultSearchEngineFirstRunFragment.java | 3 - .../browser/firstrun/FirstRunActivity.java | 23 +- - .../firstrun/FirstRunFlowSequencer.java | 61 +--- + .../firstrun/FirstRunFlowSequencer.java | 60 +--- .../browser/firstrun/FirstRunUtils.java | 1 + .../firstrun/ToSAndUMAFirstRunFragment.java | 335 +++++++++++++++++ .../firstrun/TosAndUmaFragmentView.java | 336 ++++++++++++++++++ - .../signin/ChildAccountStatusSupplier.java | 3 + + .../signin/ChildAccountStatusSupplier.java | 4 + ...creenSigninAndHistorySyncActivityBase.java | 6 +- .../browser/locale/LocaleManagerDelegate.java | 5 +- .../Welcome-screen.grdp | 27 ++ - 15 files changed, 918 insertions(+), 80 deletions(-) + 15 files changed, 919 insertions(+), 79 deletions(-) create mode 100644 chrome/android/java/res/layout/fre_tosanduma.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/firstrun/TosAndUmaFragmentView.java @@ -30,7 +30,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 -@@ -514,6 +514,7 @@ chrome_java_resources = [ +@@ -516,6 +516,7 @@ chrome_java_resources = [ "java/res/layout/find_in_page.xml", "java/res/layout/find_toolbar.xml", "java/res/layout/fre_tos_privacy_disclaimer.xml", @@ -41,9 +41,9 @@ 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 -@@ -597,6 +597,8 @@ chrome_java_sources = [ +@@ -602,6 +602,8 @@ chrome_java_sources = [ + "java/src/org/chromium/chrome/browser/firstrun/LightweightFirstRunActivity.java", "java/src/org/chromium/chrome/browser/firstrun/SkipTosDialogPolicyListener.java", - "java/src/org/chromium/chrome/browser/firstrun/SyncConsentFirstRunFragment.java", "java/src/org/chromium/chrome/browser/firstrun/TosDialogBehaviorSharedPrefInvalidator.java", + "java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java", + "java/src/org/chromium/chrome/browser/firstrun/TosAndUmaFragmentView.java", @@ -302,7 +302,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeUtils; import org.chromium.chrome.browser.ui.signin.DialogWhenLargeContentLayout; import org.chromium.chrome.browser.ui.signin.SigninUtils; -@@ -234,7 +233,7 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa +@@ -235,7 +234,7 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa /** Creates first page and sets up adapter. Should result UI being shown on the screen. */ private void createFirstPage() { BooleanSupplier showWelcomePage = () -> !FirstRunStatus.shouldSkipWelcomePage(); @@ -311,7 +311,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR mFreProgressStates.add(MobileFreProgress.WELCOME_SHOWN); mPagerAdapter = new FirstRunPagerAdapter(FirstRunActivity.this, mPages); mPager.setAdapter(mPagerAdapter); -@@ -259,7 +258,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa +@@ -260,7 +259,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa // // TODO(b/245912657): explicitly sign in supervised users in {@link // FullscreenSigninMediator#handleContinueWithNative} rather than relying on SigninChecker. @@ -319,7 +319,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR mFirstRunFlowSequencer.updateFirstRunProperties(mFreProperties); -@@ -274,18 +272,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa +@@ -275,18 +273,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa mFreProgressStates.add(MobileFreProgress.DEFAULT_SEARCH_ENGINE_SHOWN); } @@ -338,7 +338,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR if (mPagerAdapter != null) { mPagerAdapter.notifyDataSetChanged(); } -@@ -697,11 +683,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa +@@ -707,11 +693,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa public void acceptTermsOfService(boolean allowMetricsAndCrashUploading) { assert mNativeInitializationPromise.isFulfilled(); @@ -422,7 +422,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR } @VisibleForTesting -@@ -167,14 +135,10 @@ public abstract class FirstRunFlowSequencer { +@@ -167,9 +135,6 @@ public abstract class FirstRunFlowSequencer { } private void maybeProcessFreEnvironmentPreNative() { @@ -431,13 +431,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR - if (mIsFlowKnown) return; mIsFlowKnown = true; - - Bundle freProperties = new Bundle(); -- freProperties.putBoolean(SyncConsentFirstRunFragment.IS_CHILD_ACCOUNT, mIsChild); - - onFlowIsKnown(freProperties); - } -@@ -185,8 +149,8 @@ public abstract class FirstRunFlowSequencer { + onFlowIsKnown(mIsChild); +@@ -181,8 +146,8 @@ public abstract class FirstRunFlowSequencer { * @param freProperties Resulting FRE properties bundle. */ public void updateFirstRunProperties(Bundle freProperties) { @@ -448,7 +443,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR assert freProperties != null; freProperties.putBoolean( FirstRunActivity.SHOW_HISTORY_SYNC_PAGE, shouldShowHistorySyncOptIn()); -@@ -205,8 +169,6 @@ public abstract class FirstRunFlowSequencer { +@@ -201,8 +166,6 @@ public abstract class FirstRunFlowSequencer { // Mark the FRE flow as complete. FirstRunStatus.setFirstRunFlowComplete(true); @@ -457,7 +452,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR } /** -@@ -305,9 +267,6 @@ public abstract class FirstRunFlowSequencer { +@@ -301,9 +264,6 @@ public abstract class FirstRunFlowSequencer { Log.d(TAG, "Redirecting user through FRE."); CrashKeys.getInstance().set(CrashKeyIndex.FIRST_RUN, "yes"); @@ -467,7 +462,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR if (inSameTask) { FreIntentCreator intentCreator = new FreIntentCreator(); Intent freIntent = -@@ -333,13 +292,17 @@ public abstract class FirstRunFlowSequencer { +@@ -329,13 +289,17 @@ public abstract class FirstRunFlowSequencer { if (!(caller instanceof Activity)) { freIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); } @@ -1182,13 +1177,14 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/ChildAccountStatusSupplier.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/ChildAccountStatusSupplier.java --- a/chrome/android/java/src/org/chromium/chrome/browser/signin/ChildAccountStatusSupplier.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/ChildAccountStatusSupplier.java -@@ -41,7 +41,10 @@ public class ChildAccountStatusSupplier implements OneshotSupplier { +@@ -41,7 +41,11 @@ public class ChildAccountStatusSupplier implements OneshotSupplier { */ public ChildAccountStatusSupplier( AccountManagerFacade accountManagerFacade, AppRestrictionSupplier appRestrictionInfo) { + mHasRestriction = false; + mChildAccountStatusFromAccountManagerFacade = false; mChildAccountStatusStartTime = SystemClock.elapsedRealtime(); ++ mValue.set(false); + if ((true)) return; appRestrictionInfo.getHasAppRestriction(this::onAppRestrictionDetected); @@ -1196,7 +1192,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/ChildAcc diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/FullscreenSigninAndHistorySyncActivityBase.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/FullscreenSigninAndHistorySyncActivityBase.java --- a/chrome/android/java/src/org/chromium/chrome/browser/signin/FullscreenSigninAndHistorySyncActivityBase.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/FullscreenSigninAndHistorySyncActivityBase.java -@@ -25,8 +25,6 @@ import org.chromium.chrome.browser.profiles.ProfileProvider; +@@ -24,8 +24,6 @@ import org.chromium.chrome.browser.profiles.ProfileProvider; import org.chromium.chrome.browser.ui.system.StatusBarColorController; import org.chromium.components.browser_ui.widget.gesture.BackPressHandler; import org.chromium.components.policy.PolicyService; @@ -1205,7 +1201,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/Fullscre /** Base class for First run experience and fullscreen signin and history sync promos. */ public abstract class FullscreenSigninAndHistorySyncActivityBase extends AsyncInitializationActivity -@@ -92,9 +90,7 @@ public abstract class FullscreenSigninAndHistorySyncActivityBase extends AsyncIn +@@ -91,9 +89,7 @@ public abstract class FullscreenSigninAndHistorySyncActivityBase extends AsyncIn @Override @CallSuper public void triggerLayoutInflation() { @@ -1219,7 +1215,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/Fullscre diff --git a/chrome/browser/locale/java/src/org/chromium/chrome/browser/locale/LocaleManagerDelegate.java b/chrome/browser/locale/java/src/org/chromium/chrome/browser/locale/LocaleManagerDelegate.java --- a/chrome/browser/locale/java/src/org/chromium/chrome/browser/locale/LocaleManagerDelegate.java +++ b/chrome/browser/locale/java/src/org/chromium/chrome/browser/locale/LocaleManagerDelegate.java -@@ -375,8 +375,9 @@ public class LocaleManagerDelegate { +@@ -384,8 +384,9 @@ public class LocaleManagerDelegate { /** @see LocaleManager#getSearchEnginesForPromoDialog */ public List getSearchEnginesForPromoDialog(@SearchEnginePromoType int promoType) { From f2122e2d4afe0744eec097411b5100966ac99bb2 Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Sun, 27 Apr 2025 15:44:00 +0200 Subject: [PATCH 03/10] Bump to 136.0.7103.48 --- build/RELEASE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/RELEASE b/build/RELEASE index 8713c626..770c8092 100644 --- a/build/RELEASE +++ b/build/RELEASE @@ -1 +1 @@ -135.0.7049.115 \ No newline at end of file +136.0.7103.48 \ No newline at end of file From 05c139d21bbb9ffad13d3f97066e436d0fce7f7e Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Fri, 2 May 2025 16:45:57 +0200 Subject: [PATCH 04/10] Patches for v136 (changed) --- .../Add-an-always-incognito-mode.patch | 14 +- .../Add-bookmark-import-export-actions.patch | 24 ++- ...Add-lifetime-options-for-permissions.patch | 2 +- .../Add-menu-item-to-bookmark-all-tabs.patch | 15 +- build/patches/Add-search-engine.patch | 41 ++-- .../Add-setting-to-clear-data-on-exit.patch | 9 +- ...Ask-for-restart-on-connection-change.patch | 4 +- .../patches/Chrome-web-store-protection.patch | 6 +- .../Content-settings-infrastructure.patch | 36 +++- ...romite-Branding--improve-settings-ui.patch | 31 +-- build/patches/Disable-all-promo-dialogs.patch | 4 +- ...Disable-fetching-of-all-field-trials.patch | 2 +- build/patches/Disable-privacy-sandbox.patch | 66 +++++- build/patches/Disable-safety-check.patch | 112 +++++++++- .../Enable-network-isolation-features.patch | 4 +- ...le-search-engine-settings-desktop-ui.patch | 12 +- build/patches/Enable-share-intent.patch | 4 +- .../Experimental-user-scripts-support.patch | 15 +- ...story-number-of-days-privacy-setting.patch | 12 +- .../Move-navigation-bar-to-bottom.patch | 2 +- .../Partition-Blink-memory-cache.patch | 29 +-- .../Partition-blobs-by-top-frame-URL.patch | 29 +-- ...referrals-in-cross-origin-navigation.patch | 14 +- .../Remove-binary-blob-integrations.patch | 161 +++++++------- .../Restore-Simplified-NTP-launch.patch | 198 ++++++++++++++---- build/patches/User-agent-customization.patch | 4 +- build/patches/Welcome-screen.patch | 18 +- build/patches/add-browser-policy.patch | 11 +- 28 files changed, 581 insertions(+), 298 deletions(-) diff --git a/build/patches/Add-an-always-incognito-mode.patch b/build/patches/Add-an-always-incognito-mode.patch index edf675ce..8cd14b20 100644 --- a/build/patches/Add-an-always-incognito-mode.patch +++ b/build/patches/Add-an-always-incognito-mode.patch @@ -27,7 +27,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../chrome/browser/ChromeTabbedActivity.java | 28 ++- .../chrome/browser/app/ChromeActivity.java | 4 + .../AppMenuPropertiesDelegateImpl.java | 28 ++- - .../ChromeContextMenuPopulator.java | 7 +- + .../ChromeContextMenuPopulator.java | 6 +- .../CustomTabActivityLifecycleUmaTracker.java | 39 ----- .../CustomTabAppMenuPropertiesDelegate.java | 4 + .../CustomTabIntentDataProvider.java | 10 ++ @@ -86,7 +86,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 + - 67 files changed, 797 insertions(+), 112 deletions(-) + 67 files changed, 796 insertions(+), 112 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 @@ -403,15 +403,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr List> groupedItems = new ArrayList<>(); if (mParams.isPage() && shouldShowEmptySpaceContextMenu()) { -@@ -320,6 +324,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { - if (mMode == ContextMenuMode.NORMAL) { - 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)); - } -@@ -350,7 +355,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -350,7 +354,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { } } if (FirstRunStatus.getFirstRunFlowComplete()) { diff --git a/build/patches/Add-bookmark-import-export-actions.patch b/build/patches/Add-bookmark-import-export-actions.patch index 83892bd3..c39db94b 100644 --- a/build/patches/Add-bookmark-import-export-actions.patch +++ b/build/patches/Add-bookmark-import-export-actions.patch @@ -44,7 +44,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../add-bookmark-import-export-actions.inc | 12 + .../add-bookmark-import-export-actions.inc | 4 + .../add-bookmark-import-export-actions.inc | 1 + - .../chromium/ui/base/SelectFileDialog.java | 18 +- + .../chromium/ui/base/SelectFileDialog.java | 24 +- .../java/strings/android_ui_strings.grd | 3 + ui/shell_dialogs/select_file_dialog.h | 2 + .../select_file_dialog_android.cc | 6 + @@ -52,7 +52,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 + - 41 files changed, 900 insertions(+), 29 deletions(-) + 41 files changed, 906 insertions(+), 29 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 @@ -1638,19 +1638,25 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui private static final String AUDIO_TYPE = "audio"; private static final String ALL_TYPES = "*/*"; private static final String GENERIC_TYPE = "application/octet-stream"; -@@ -323,6 +325,11 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -323,6 +325,17 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick mMimeTypes = convertToSupportedMimeTypes(mFileTypes); } + @CalledByNative + private void showToast(String message) { -+ Toast.makeText(ContextUtils.getApplicationContext(), message, Toast.LENGTH_LONG).show(); ++ ThreadUtils.runOnUiThread( ++ new Runnable() { ++ @Override ++ public void run() { ++ Toast.makeText(ContextUtils.getApplicationContext(), message, Toast.LENGTH_LONG).show(); ++ } ++ }); + } + /** * Creates and starts an intent based on the passed fileTypes and capture value. * -@@ -407,7 +414,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -407,7 +420,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick List missingPermissions = new ArrayList<>(); String storagePermission = Manifest.permission.READ_EXTERNAL_STORAGE; boolean shouldUsePhotoPicker = shouldUsePhotoPicker(); @@ -1659,7 +1665,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui // The permission scenario for accessing media has evolved a bit over the years: // Early on, READ_EXTERNAL_STORAGE was required to access media, but that permission was // later deprecated. In its place (starting with Android T) READ_MEDIA_IMAGES and -@@ -460,7 +467,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -460,7 +473,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick // TODO(finnur): Remove once we figure out the cause of // crbug.com/950024. @@ -1668,7 +1674,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui if (permissions.length != requestPermissions.length) { throw new RuntimeException( String.format( -@@ -477,7 +484,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -477,7 +490,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick } } @@ -1677,7 +1683,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui if (permissions[i].equals(storagePermission) || permissions[i].equals( Manifest.permission.READ_MEDIA_IMAGES) -@@ -783,6 +790,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -783,6 +796,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick mimeTypes.add(mimeType); } } @@ -1685,7 +1691,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui return mimeTypes; } -@@ -1156,6 +1164,10 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -1156,6 +1170,10 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick return countAcceptTypesFor(superType) == mMimeTypes.size(); } diff --git a/build/patches/Add-lifetime-options-for-permissions.patch b/build/patches/Add-lifetime-options-for-permissions.patch index ba504d15..1816c7fe 100644 --- a/build/patches/Add-lifetime-options-for-permissions.patch +++ b/build/patches/Add-lifetime-options-for-permissions.patch @@ -465,7 +465,7 @@ diff --git a/components/page_info/android/java/src/org/chromium/components/page_ warningTextResource = R.string.page_info_android_permission_blocked; } + if (permission.is_user_session) { -+ permissionParams.warningTextResource = ++ warningTextResource = + R.string.page_info_android_permission_session_permission; + } } 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 0e981b10..464cf7ed 100644 --- a/build/patches/Add-menu-item-to-bookmark-all-tabs.patch +++ b/build/patches/Add-menu-item-to-bookmark-all-tabs.patch @@ -10,7 +10,6 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../bookmarks/android/bookmark_bridge.h | 8 ++++ .../browser/bookmarks/BookmarkBridge.java | 41 ++++++++++++++++++ .../browser/bookmarks/bookmark_html_writer.cc | 14 +++++- - .../bookmark_merged_surface_service.cc | 2 + .../bookmarks/bookmark_parent_folder.cc | 1 + .../permanent_folder_ordering_tracker.cc | 2 + .../dialogs/DownloadLocationCustomView.java | 4 +- @@ -30,7 +29,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html components/bookmarks/browser/bookmark_uuids.h | 1 + components/bookmarks/browser/model_loader.cc | 8 +++- .../bookmark_specifics_conversions.cc | 1 + - 26 files changed, 243 insertions(+), 14 deletions(-) + 25 files changed, 241 insertions(+), 14 deletions(-) diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml --- a/chrome/android/java/res/menu/main_menu.xml @@ -385,18 +384,6 @@ diff --git a/chrome/browser/bookmarks/bookmark_html_writer.cc b/chrome/browser/b if (model->account_bookmark_bar_node()) { CHECK(model->account_other_node()); -diff --git a/chrome/browser/bookmarks/bookmark_merged_surface_service.cc b/chrome/browser/bookmarks/bookmark_merged_surface_service.cc ---- a/chrome/browser/bookmarks/bookmark_merged_surface_service.cc -+++ b/chrome/browser/bookmarks/bookmark_merged_surface_service.cc -@@ -108,6 +108,8 @@ BookmarkMergedSurfaceService::BookmarkMergedSurfaceService( - BookmarkMergedSurfaceService::~BookmarkMergedSurfaceService() { - for (auto& observer : observers_) { - observer.BookmarkMergedSurfaceServiceBeingDeleted(); -+ case BookmarkNode::Type::TABS_COLLECTION: -+ NOTREACHED(); - } - } - diff --git a/chrome/browser/bookmarks/bookmark_parent_folder.cc b/chrome/browser/bookmarks/bookmark_parent_folder.cc --- a/chrome/browser/bookmarks/bookmark_parent_folder.cc +++ b/chrome/browser/bookmarks/bookmark_parent_folder.cc diff --git a/build/patches/Add-search-engine.patch b/build/patches/Add-search-engine.patch index 9ebb08cf..c3684987 100644 --- a/build/patches/Add-search-engine.patch +++ b/build/patches/Add-search-engine.patch @@ -15,13 +15,13 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../cromite/cromite_prepopulated_engines.json | 37 ++++++++++++++++++ .../search_engine_choice_utils.cc | 5 +-- .../search_engines/search_engine_type.h | 5 +++ - .../template_url_prepopulate_data.cc | 5 ++- + .../template_url_prepopulate_data.cc | 15 ++++++- .../template_url_prepopulate_data.h | 7 ---- tools/json_to_struct/json_to_struct.gni | 9 +++++ tools/json_to_struct/json_to_struct.py | 26 ++++++++---- tools/json_to_struct/struct_generator.py | 10 +++-- tools/variations/fieldtrial_to_struct.py | 4 +- - 13 files changed, 99 insertions(+), 25 deletions(-) + 13 files changed, 108 insertions(+), 26 deletions(-) create mode 100644 components/resources/default_100_percent/search_engine_choice/default_favicon.png create mode 100644 components/search_engines/cromite/BUILD.gn create mode 100644 components/search_engines/cromite/cromite_prepopulated_engines.json @@ -197,16 +197,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon namespace TemplateURLPrepopulateData { // Helpers -------------------------------------------------------------------- -@@ -53,6 +55,8 @@ const RegionalSettings& GetRegionalSettings(CountryId country_id) { - iter = kRegionalSettings.find(CountryId()); - } - -+ t_url.push_back({SearchEngineTier::kTopEngines, &googleen}); -+ t_url.push_back({SearchEngineTier::kTopEngines, &duckduckgo_light}); - return *iter->second; - } - -@@ -85,7 +89,6 @@ GetPrepopulatedEnginesForEeaRegionCountries(CountryId country_id, +@@ -85,11 +87,10 @@ GetPrepopulatedEnginesForEeaRegionCountries(CountryId country_id, generator.seed(profile_seed); std::shuffle(t_urls.begin(), t_urls.end(), generator); @@ -214,6 +205,28 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon return t_urls; } +-std::vector> GetPrepopulatedTemplateURLData( ++std::vector> GetPrepopulatedTemplateURLDataChromium( + CountryId country_id, + PrefService& prefs) { + if (regional_capabilities::HasSearchEngineCountryListOverride()) { +@@ -115,6 +116,16 @@ std::vector> GetPrepopulatedTemplateURLData( + &PrepopulatedEngineToTemplateURLData); + } + ++std::vector> GetPrepopulatedTemplateURLData( ++ CountryId country_id, ++ PrefService& prefs) { ++ std::vector> t_urls = ++ GetPrepopulatedTemplateURLDataChromium(country_id, prefs); ++ t_urls.push_back(TemplateURLDataFromPrepopulatedEngine(googleen)); ++ t_urls.push_back(TemplateURLDataFromPrepopulatedEngine(duckduckgo_light)); ++ return t_urls; ++} ++ + // These values are persisted to logs. Entries should not be renumbered and + // numeric values should never be reused. + enum class SearchProviderOverrideStatus { diff --git a/components/search_engines/template_url_prepopulate_data.h b/components/search_engines/template_url_prepopulate_data.h --- a/components/search_engines/template_url_prepopulate_data.h +++ b/components/search_engines/template_url_prepopulate_data.h @@ -245,8 +258,8 @@ diff --git a/tools/json_to_struct/json_to_struct.gni b/tools/json_to_struct/json + action(action_name) { visibility = [ ":$source_set_name" ] - script = "//tools/json_to_struct/json_to_struct.py" -@@ -61,6 +66,10 @@ template("json_to_struct") { + script = "//build/gn_run_binary.py" +@@ -63,6 +68,10 @@ template("json_to_struct") { "--namespace=" + invoker.namespace, "--schema=" + rebase_path(invoker.schema_file, root_build_dir), ] diff --git a/build/patches/Add-setting-to-clear-data-on-exit.patch b/build/patches/Add-setting-to-clear-data-on-exit.patch index 15a6fdec..4edcf91b 100644 --- a/build/patches/Add-setting-to-clear-data-on-exit.patch +++ b/build/patches/Add-setting-to-clear-data-on-exit.patch @@ -33,14 +33,14 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../core/clear_browsing_data_tab.h | 3 +- components/browsing_data/core/pref_names.cc | 17 ++++ components/browsing_data/core/pref_names.h | 10 +++ - components/favicon/core/favicon_database.cc | 12 +++ + components/favicon/core/favicon_database.cc | 9 +++ components/favicon/core/favicon_database.h | 2 + .../search_engines/template_url_service.cc | 1 + content/browser/btm/btm_service_impl.cc | 2 +- content/browser/storage_partition_impl.cc | 1 + .../public/browser/browsing_data_remover.h | 7 +- .../Add-setting-to-clear-data-on-exit.inc | 8 ++ - 36 files changed, 409 insertions(+), 33 deletions(-) + 36 files changed, 406 insertions(+), 33 deletions(-) create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragmentAtStart.java create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-setting-to-clear-data-on-exit.grdp create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-setting-to-clear-data-on-exit.inc @@ -938,13 +938,10 @@ diff --git a/components/favicon/core/favicon_database.cc b/components/favicon/co // Description of database tables: // // icon_mapping -@@ -508,6 +512,14 @@ bool FaviconDatabase::SetFaviconBitmapLastUpdateTime(FaviconBitmapID bitmap_id, +@@ -508,6 +512,11 @@ bool FaviconDatabase::SetFaviconBitmapLastUpdateTime(FaviconBitmapID bitmap_id, bool FaviconDatabase::SetFaviconsOutOfDateBetween(base::Time begin, base::Time end) { -+ LOG(INFO) << "---FaviconDatabase::SetFaviconsOutOfDateBetween" -+ << " begin=" << begin << " " << begin.is_null() -+ << " end=" << end << " " << end.is_null(); + if (begin.is_null() && base::FeatureList::IsEnabled(kClearFaviconsData)) { + std::ignore = db_.Execute("DELETE FROM favicon_bitmaps"); + std::ignore = db_.Execute("DELETE FROM favicons"); diff --git a/build/patches/Ask-for-restart-on-connection-change.patch b/build/patches/Ask-for-restart-on-connection-change.patch index f7f9f4bf..532aba56 100644 --- a/build/patches/Ask-for-restart-on-connection-change.patch +++ b/build/patches/Ask-for-restart-on-connection-change.patch @@ -421,8 +421,8 @@ diff --git a/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chro + @Override + public void setPagesFrozen(boolean frozen) { -+ for (int i = 0; i < mSelectors.size(); i++) { -+ TabModelSelector selector = mSelectors.get(i); ++ for (int i : mWindowIdToSelectors.keySet()) { ++ TabModelSelector selector = mWindowIdToSelectors.get(i); + if (selector != null) { + selector.setPagesFrozen(frozen); + } diff --git a/build/patches/Chrome-web-store-protection.patch b/build/patches/Chrome-web-store-protection.patch index 980c98e0..a572be7d 100644 --- a/build/patches/Chrome-web-store-protection.patch +++ b/build/patches/Chrome-web-store-protection.patch @@ -544,7 +544,7 @@ diff --git a/chrome/browser/resources/extensions/manager.ts b/chrome/browser/res accessor inDevMode: boolean = loadTimeData.getBoolean('inDevMode'); accessor isMv2DeprecationNoticeDismissed: boolean = loadTimeData.getBoolean('MV2DeprecationNoticeDismissed'); -+ isExtUpdateEnabled: boolean = ++ accessor isExtUpdateEnabled: boolean = + loadTimeData.getBoolean('isExtUpdateEnabled'); accessor showActivityLog: boolean = loadTimeData.getBoolean('showActivityLog'); @@ -648,8 +648,8 @@ diff --git a/chrome/browser/resources/extensions/toolbar.ts b/chrome/browser/res accessor extensions: chrome.developerPrivate.ExtensionInfo[] = []; accessor delegate: ToolbarDelegate = new DummyToolbarDelegate(); accessor inDevMode: boolean = false; -+ isExtUpdateEnabled: boolean = false; -+ shouldShowRelaunchDialog: boolean = false; ++ accessor isExtUpdateEnabled: boolean = false; ++ accessor shouldShowRelaunchDialog: boolean = false; accessor devModeControlledByPolicy: boolean = false; accessor isChildAccount: boolean = false; diff --git a/build/patches/Content-settings-infrastructure.patch b/build/patches/Content-settings-infrastructure.patch index 2968d8fc..6e3ef83d 100644 --- a/build/patches/Content-settings-infrastructure.patch +++ b/build/patches/Content-settings-infrastructure.patch @@ -43,7 +43,7 @@ Require: bromite-build-utils.patch .../BromiteCustomContentSetting.java | 155 +++++++ .../BromiteCustomContentSettingImpl.java | 412 ++++++++++++++++++ ...tomTriStateSiteSettingsPreferenceImpl.java | 24 + - .../ContentSettingsResources.java | 16 +- + .../ContentSettingsResources.java | 38 +- .../site_settings/SingleCategorySettings.java | 54 ++- .../site_settings/SingleWebsiteSettings.java | 58 ++- .../site_settings/SiteSettings.java | 33 +- @@ -84,7 +84,7 @@ Require: bromite-build-utils.patch .../platform/web_content_settings_client.h | 13 + .../execution_context/execution_context.cc | 16 + .../execution_context/execution_context.h | 5 + - 73 files changed, 1942 insertions(+), 102 deletions(-) + 73 files changed, 1964 insertions(+), 102 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 @@ -175,7 +175,7 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.ts b/ch + 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("settings-animated-pages"); + + page.querySelectorAll("template")!.forEach( + (subTemplate: HTMLTemplateElement) => { @@ -2192,16 +2192,38 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c private final int mIcon; private final int mIconBlocked; private final int mTitle; -@@ -54,7 +54,7 @@ public class ContentSettingsResources { +@@ -54,7 +54,29 @@ public class ContentSettingsResources { private int mEnabledDescriptionText; private int mDisabledDescriptionText; - ResourceItem( ++ public ResourceItem( ++ int icon, ++ int title, ++ @ContentSettingValues @Nullable Integer defaultEnabledValue, ++ @ContentSettingValues @Nullable Integer defaultDisabledValue, ++ int enabledSummary, ++ int disabledSummary, ++ int summaryOverrideForScreenReader) { ++ mIcon = icon; ++ mIconBlocked = 0; ++ mTitle = title; ++ mDefaultEnabledValue = defaultEnabledValue; ++ mDefaultDisabledValue = defaultDisabledValue; ++ mEnabledSummary = enabledSummary; ++ mDisabledSummary = disabledSummary; ++ mSummaryOverrideForScreenReader = summaryOverrideForScreenReader; ++ mEnabledPrimaryText = 0; ++ mDisabledPrimaryText = 0; ++ mEnabledDescriptionText = 0; ++ mDisabledDescriptionText = 0; ++ } ++ + public ResourceItem( int icon, int title, @ContentSettingValues @Nullable Integer defaultEnabledValue, -@@ -641,6 +641,8 @@ public class ContentSettingsResources { +@@ -641,6 +663,8 @@ public class ContentSettingsResources { R.string.website_settings_vr_ask, R.string.website_settings_vr_block); } @@ -2210,7 +2232,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c assert false; // NOTREACHED return assumeNonNull(null); } -@@ -799,6 +801,14 @@ public class ContentSettingsResources { +@@ -799,6 +823,14 @@ public class ContentSettingsResources { return getResourceItem(contentType).getDefaultDisabledValue(); } @@ -2225,7 +2247,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c /** * Returns the string resource id for a given ContentSetting to show with a permission category. * -@@ -973,6 +983,8 @@ public class ContentSettingsResources { +@@ -973,6 +1005,8 @@ public class ContentSettingsResources { */ public static int @Nullable [] getTriStateSettingDescriptionIDs( int contentType, boolean isPermissionSiteSettingsRadioButtonFeatureEnabled) { diff --git a/build/patches/Cromite-Branding--improve-settings-ui.patch b/build/patches/Cromite-Branding--improve-settings-ui.patch index de3ea353..651db391 100644 --- a/build/patches/Cromite-Branding--improve-settings-ui.patch +++ b/build/patches/Cromite-Branding--improve-settings-ui.patch @@ -8,10 +8,10 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- chrome/android/chrome_java_resources.gni | 2 +- .../android/java/res/xml/main_preferences.xml | 4 +- - .../res/xml/privacy_preferences_cromite.xml | 197 ++++++++++++++++++ - .../privacy/settings/PrivacySettings.java | 4 +- + .../res/xml/privacy_preferences_cromite.xml | 192 ++++++++++++++++++ + .../privacy/settings/PrivacySettings.java | 12 +- .../Cromite-settings-ui.grdp | 15 ++ - 5 files changed, 217 insertions(+), 5 deletions(-) + 5 files changed, 217 insertions(+), 8 deletions(-) create mode 100644 chrome/android/java/res/xml/privacy_preferences_cromite.xml create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Cromite-settings-ui.grdp @@ -52,7 +52,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences_cromite.xml b/chrom new file mode 100644 --- /dev/null +++ b/chrome/android/java/res/xml/privacy_preferences_cromite.xml -@@ -0,0 +1,197 @@ +@@ -0,0 +1,192 @@ + + HasSwitch( + switches::kDisableComponentUpdate); + } diff --git a/chrome/browser/first_party_sets/first_party_sets_navigation_throttle.cc b/chrome/browser/first_party_sets/first_party_sets_navigation_throttle.cc --- a/chrome/browser/first_party_sets/first_party_sets_navigation_throttle.cc +++ b/chrome/browser/first_party_sets/first_party_sets_navigation_throttle.cc @@ -116,6 +128,18 @@ diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_settings_delegate.cc auto* identity_manager = IdentityManagerFactory::GetForProfile(profile_); if (!identity_manager || +diff --git a/chrome/browser/resources/settings/privacy_page/cookies_page.ts b/chrome/browser/resources/settings/privacy_page/cookies_page.ts +--- a/chrome/browser/resources/settings/privacy_page/cookies_page.ts ++++ b/chrome/browser/resources/settings/privacy_page/cookies_page.ts +@@ -272,7 +272,7 @@ export class SettingsCookiesPageElement extends SettingsCookiesPageElementBase { + } + + private relatedWebsiteSetsToggleDisabled_() { +- return this.getPref('profile.cookie_controls_mode').value !== ++ return ((true)) || this.getPref('profile.cookie_controls_mode').value !== + CookieControlsMode.BLOCK_THIRD_PARTY; + } + diff --git a/chrome/browser/ui/privacy_sandbox/privacy_sandbox_prompt.cc b/chrome/browser/ui/privacy_sandbox/privacy_sandbox_prompt.cc --- a/chrome/browser/ui/privacy_sandbox/privacy_sandbox_prompt.cc +++ b/chrome/browser/ui/privacy_sandbox/privacy_sandbox_prompt.cc @@ -126,6 +150,27 @@ diff --git a/chrome/browser/ui/privacy_sandbox/privacy_sandbox_prompt.cc b/chrom + if ((true)) return; ShowPrivacySandboxDialog(browser, prompt_type); } +diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/RwsCookieSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/RwsCookieSettings.java +--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/RwsCookieSettings.java ++++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/RwsCookieSettings.java +@@ -135,7 +135,7 @@ public class RwsCookieSettings extends BaseSiteSettingsFragment + mAllowRwsPreference.setChecked( + getSiteSettingsDelegate().isRelatedWebsiteSetsDataAccessEnabled()); + +- if (!isBlockThirdPartyCookieSelected()) { ++ if (((true)) || !isBlockThirdPartyCookieSelected()) { + mAllowRwsPreference.setEnabled(false); + } + mAllowRwsPreference.setOnPreferenceChangeListener(this); +@@ -151,7 +151,7 @@ public class RwsCookieSettings extends BaseSiteSettingsFragment + public boolean onPreferenceChange(Preference preference, Object newValue) { + String key = preference.getKey(); + if (ALLOW_RWS_COOKIE_PREFERENCE.equals(key)) { +- getSiteSettingsDelegate().setRelatedWebsiteSetsDataAccessEnabled((boolean) newValue); ++ getSiteSettingsDelegate().setRelatedWebsiteSetsDataAccessEnabled((boolean) false); + } else { + assert false : "Should not be reached"; + } diff --git a/components/history/core/browser/history_backend.cc b/components/history/core/browser/history_backend.cc --- a/components/history/core/browser/history_backend.cc +++ b/components/history/core/browser/history_backend.cc @@ -164,14 +209,13 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_attestations/privacy_san diff --git a/components/privacy_sandbox/privacy_sandbox_features.cc b/components/privacy_sandbox/privacy_sandbox_features.cc --- a/components/privacy_sandbox/privacy_sandbox_features.cc +++ b/components/privacy_sandbox/privacy_sandbox_features.cc -@@ -288,4 +288,8 @@ BASE_FEATURE(kPrivacySandboxMigratePrefsToSchemaV2, +@@ -288,4 +288,7 @@ BASE_FEATURE(kPrivacySandboxMigratePrefsToSchemaV2, BASE_FEATURE(kPrivacySandboxFirstTimeNoticeV2, "PrivacySandboxFirstTimeNoticeV2", base::FEATURE_DISABLED_BY_DEFAULT); +SET_CROMITE_FEATURE_DISABLED(kPrivacySandboxSettings4); +SET_CROMITE_FEATURE_ENABLED(kDisablePrivacySandboxPrompts); +SET_CROMITE_FEATURE_DISABLED(kEnforcePrivacySandboxAttestations); -+SET_CROMITE_FEATURE_DISABLED(kPrivacySandboxFirstPartySetsUI); } // namespace privacy_sandbox diff --git a/components/privacy_sandbox/privacy_sandbox_prefs.cc b/components/privacy_sandbox/privacy_sandbox_prefs.cc --- a/components/privacy_sandbox/privacy_sandbox_prefs.cc @@ -318,6 +362,18 @@ diff --git a/content/browser/shared_storage/shared_storage_document_service_impl // `CreateWorklet()` cannot differentiate between calls from addModule() and // createWorklet(). Hence, we skip the mojom validation for opaque origin // context for addModule(). +diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc +--- a/content/public/browser/content_browser_client.cc ++++ b/content/public/browser/content_browser_client.cc +@@ -1677,7 +1677,7 @@ bool ContentBrowserClient::ShouldPreconnectNavigation( + } + + bool ContentBrowserClient::IsFirstPartySetsEnabled() { +- return true; ++ return false; + } + + bool ContentBrowserClient::WillProvidePublicFirstPartySets() { diff --git a/cromite_flags/content/common/features_cc/Disable-privacy-sandbox.inc b/cromite_flags/content/common/features_cc/Disable-privacy-sandbox.inc new file mode 100644 --- /dev/null diff --git a/build/patches/Disable-safety-check.patch b/build/patches/Disable-safety-check.patch index c85c1ec5..ae1c83dc 100644 --- a/build/patches/Disable-safety-check.patch +++ b/build/patches/Disable-safety-check.patch @@ -4,18 +4,19 @@ Subject: Disable safety check License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - chrome/android/BUILD.gn | 5 --- + chrome/android/BUILD.gn | 5 -- chrome/android/chrome_java_sources.gni | 1 - .../android/java/res/xml/main_preferences.xml | 3 +- - .../settings/FragmentDependencyProvider.java | 32 ------------------- + .../PasswordCheckupLauncher.java | 57 +------------------ + .../settings/FragmentDependencyProvider.java | 32 ----------- .../chrome/browser/settings/MainSettings.java | 2 +- - .../settings/SettingsNavigationImpl.java | 13 ++------ + .../settings/SettingsNavigationImpl.java | 13 +---- chrome/browser/BUILD.gn | 1 - - .../suggestions/action/OmniboxPedal.java | 3 -- + .../suggestions/action/OmniboxPedal.java | 3 - chrome/browser/ui/tab_helpers.cc | 2 +- .../site_settings/SiteSettings.java | 2 +- .../Disable-safety-check.inc | 1 + - 11 files changed, 8 insertions(+), 57 deletions(-) + 12 files changed, 9 insertions(+), 113 deletions(-) create mode 100644 cromite_flags/chrome/common/chrome_features_cc/Disable-safety-check.inc diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn @@ -29,7 +30,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/safety_hub/android:java", "//chrome/browser/screenshot_monitor:java", "//chrome/browser/search_engines/android:java", -@@ -1090,8 +1089,6 @@ if (current_toolchain == default_toolchain) { +@@ -1092,8 +1091,6 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/recent_tabs:junit", "//chrome/browser/recent_tabs/internal:junit", "//chrome/browser/safe_browsing/android:junit", @@ -38,7 +39,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/search_engines/android:junit", "//chrome/browser/search_resumption:junit", "//chrome/browser/signin/services/android:junit", -@@ -1366,8 +1363,6 @@ if (current_toolchain == default_toolchain) { +@@ -1368,8 +1365,6 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/quick_delete:javatests", "//chrome/browser/renderer_host/android:javatests", "//chrome/browser/safe_browsing/android:javatests", @@ -71,6 +72,103 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j getModalDialogManagerSupplier( diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java diff --git a/build/patches/Enable-network-isolation-features.patch b/build/patches/Enable-network-isolation-features.patch index 5433a3d7..8cc29450 100644 --- a/build/patches/Enable-network-isolation-features.patch +++ b/build/patches/Enable-network-isolation-features.patch @@ -68,7 +68,7 @@ diff --git a/net/http/http_cache.cc b/net/http/http_cache.cc if (is_initiator_cross_site) { - is_cross_site_main_frame_navigation_prefix = - kCrossSiteMainFrameNavigationPrefix; -+ DLOG(INFO) << "---initiator_site cs=" << base::StrCat({"ni_", initiator_site.Serialize(), " "}); ++ // LOG(INFO) << "---initiator_site cs=" << base::StrCat({"ni_", initiator->Serialize(), " "}); + return ""; } } @@ -81,7 +81,7 @@ diff --git a/net/http/http_cache.cc b/net/http/http_cache.cc + auto key = base::StringPrintf("%c/%" PRId64 "/%s%s", credential_key, upload_data_identifier, isolation_key.c_str(), HttpUtil::SpecForRequest(url).c_str()); -+ DLOG(INFO) << "---key=" << key; ++ // LOG(INFO) << "---key=" << key; + return key; } diff --git a/build/patches/Enable-search-engine-settings-desktop-ui.patch b/build/patches/Enable-search-engine-settings-desktop-ui.patch index fcd63f9a..8fbb5330 100644 --- a/build/patches/Enable-search-engine-settings-desktop-ui.patch +++ b/build/patches/Enable-search-engine-settings-desktop-ui.patch @@ -16,7 +16,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../chrome_browser_interface_binders_webui.cc | 21 ++ chrome/browser/resources/BUILD.gn | 6 + chrome/browser/resources/settings/BUILD.gn | 2 +- - .../resources/settings/page_visibility.ts | 40 ++- + .../resources/settings/page_visibility.ts | 36 ++- .../search_engine_edit_dialog.html | 6 + .../search_engine_edit_dialog.ts | 6 +- .../search_engines_browser_proxy.ts | 8 +- @@ -77,7 +77,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 +- - 70 files changed, 1156 insertions(+), 69 deletions(-) + 70 files changed, 1152 insertions(+), 69 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 @@ -524,18 +524,14 @@ 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 -@@ -42,8 +42,46 @@ export interface PrivacyPageVisibility { +@@ -42,8 +42,42 @@ export interface PrivacyPageVisibility { searchPrediction: boolean; } +const isAndroid = (loadTimeData.getString('chromeAndroid') !== ""); +if (isAndroid) { + // @ts-expect-error -+ chrome.autofillPrivate = { -+ isUserEligibleForAutofillImprovements(): Promise { -+ return Promise.resolve(false); -+ } -+ }; ++ chrome.autofillPrivate = {}; + + // @ts-expect-error + chrome.languageSettingsPrivate = {}; diff --git a/build/patches/Enable-share-intent.patch b/build/patches/Enable-share-intent.patch index 8ba518cb..176de0e2 100644 --- a/build/patches/Enable-share-intent.patch +++ b/build/patches/Enable-share-intent.patch @@ -140,7 +140,7 @@ new file mode 100644 + android:layout_width ="match_parent" + app:cornerRadiusTopEnd="14dp" + app:cornerRadiusTopStart="14dp" -+ app:roundedfillColor="@color/sheet_bg_color_baseline" ++ app:roundedfillColor="@macro/sheet_container_bg_color" + app:srcCompat="@drawable/ic_launcher"/> + + ++ android:background="@macro/sheet_container_bg_color"> + + getBrowserControlsManager() ++ /*browserControlsManagerSupplier*/ () -> getBrowserControlsManager()); addSceneOverlay(mTabStripLayoutHelperManager); addObserver(mTabStripLayoutHelperManager.getTabSwitcherObserver()); mDesktopWindowStateManager = desktopWindowStateManager; diff --git a/build/patches/Partition-Blink-memory-cache.patch b/build/patches/Partition-Blink-memory-cache.patch index 0c39fbad..58ee8d3d 100644 --- a/build/patches/Partition-Blink-memory-cache.patch +++ b/build/patches/Partition-Blink-memory-cache.patch @@ -17,14 +17,12 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../core/html/parser/html_srcset_parser.cc | 3 +- .../core/inspector/inspector_network_agent.cc | 2 +- .../core/inspector/inspector_page_agent.cc | 2 +- - .../core/loader/frame_fetch_context.cc | 2 + .../renderer/core/loader/image_loader.cc | 3 +- - .../core/loader/worker_fetch_context.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 ++- - 10 files changed, 69 insertions(+), 23 deletions(-) + 8 files changed, 64 insertions(+), 23 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 @@ -63,18 +61,6 @@ diff --git a/third_party/blink/renderer/core/inspector/inspector_page_agent.cc b } if (!cached_resource) { cached_resource = loader->ResourceForURL(url); -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 -@@ -866,6 +866,8 @@ void FrameFetchContext::PopulateResourceRequestBeforeCacheAccess( - if (document_loader_->ForceFetchCacheMode()) { - request.SetCacheMode(*document_loader_->ForceFetchCacheMode()); - } -+ if (!request.TopFrameOrigin()) -+ request.SetTopFrameOrigin(GetTopFrameOrigin()); - // ResourceFetcher::DidLoadResourceFromMemoryCache() may call out in such a - // way that the AttributionSupport is needed. - if (const AttributionSrcLoader* attribution_src_loader = diff --git a/third_party/blink/renderer/core/loader/image_loader.cc b/third_party/blink/renderer/core/loader/image_loader.cc --- a/third_party/blink/renderer/core/loader/image_loader.cc +++ b/third_party/blink/renderer/core/loader/image_loader.cc @@ -88,19 +74,6 @@ diff --git a/third_party/blink/renderer/core/loader/image_loader.cc b/third_part if (resource && !resource->ErrorOccurred() && CanReuseFromListOfAvailableImages( -diff --git a/third_party/blink/renderer/core/loader/worker_fetch_context.cc b/third_party/blink/renderer/core/loader/worker_fetch_context.cc ---- a/third_party/blink/renderer/core/loader/worker_fetch_context.cc -+++ b/third_party/blink/renderer/core/loader/worker_fetch_context.cc -@@ -260,6 +260,9 @@ void WorkerFetchContext::AddResourceTiming( - - void WorkerFetchContext::ModifyRequestForMixedContentUpgrade( - ResourceRequest& request) { -+ if (!request.TopFrameOrigin()) -+ request.SetTopFrameOrigin(GetTopFrameOrigin()); -+ - MixedContentChecker::UpgradeInsecureRequest( - request, &GetResourceFetcherProperties().GetFetchClientSettingsObject(), - global_scope_, mojom::blink::RequestContextFrameType::kNone, diff --git a/third_party/blink/renderer/platform/loader/fetch/memory_cache.cc b/third_party/blink/renderer/platform/loader/fetch/memory_cache.cc --- a/third_party/blink/renderer/platform/loader/fetch/memory_cache.cc +++ b/third_party/blink/renderer/platform/loader/fetch/memory_cache.cc diff --git a/build/patches/Partition-blobs-by-top-frame-URL.patch b/build/patches/Partition-blobs-by-top-frame-URL.patch index 68a5cdc1..6ba74d16 100644 --- a/build/patches/Partition-blobs-by-top-frame-URL.patch +++ b/build/patches/Partition-blobs-by-top-frame-URL.patch @@ -10,12 +10,12 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- .../renderer_host/render_frame_host_impl.cc | 2 + .../Partition-blobs-by-top-frame-URL.inc | 1 + - storage/browser/blob/blob_url_store_impl.cc | 71 ++++++++++++++++++- + storage/browser/blob/blob_url_store_impl.cc | 73 ++++++++++++++++++- storage/browser/blob/blob_url_store_impl.h | 13 ++++ storage/browser/blob/features.cc | 1 + - .../public/mojom/blob/blob_url_store.mojom | 8 ++- + .../public/mojom/blob/blob_url_store.mojom | 8 +- .../core/fileapi/public_url_manager.cc | 17 +++++ - 7 files changed, 110 insertions(+), 3 deletions(-) + 7 files changed, 112 insertions(+), 3 deletions(-) create mode 100644 cromite_flags/third_party/blink/common/features_cc/Partition-blobs-by-top-frame-URL.inc diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc @@ -39,7 +39,7 @@ new file mode 100644 diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/blob_url_store_impl.cc --- a/storage/browser/blob/blob_url_store_impl.cc +++ b/storage/browser/blob/blob_url_store_impl.cc -@@ -21,6 +21,16 @@ +@@ -21,6 +21,18 @@ namespace storage { @@ -52,11 +52,13 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/ + BlobUrlRegistry::MappingStatus mapping_status) { + return false; +} ++ ++} + // Self deletes when the last binding to it is closed. class BlobURLTokenImpl : public blink::mojom::BlobURLToken { public: -@@ -93,6 +103,30 @@ BlobURLStoreImpl::~BlobURLStoreImpl() { +@@ -93,6 +105,30 @@ BlobURLStoreImpl::~BlobURLStoreImpl() { } } @@ -87,7 +89,7 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/ void BlobURLStoreImpl::Register( mojo::PendingRemote blob, const GURL& url, -@@ -107,6 +141,14 @@ void BlobURLStoreImpl::Register( +@@ -107,6 +143,14 @@ void BlobURLStoreImpl::Register( return; } @@ -102,7 +104,7 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/ if (registry_) registry_->AddUrlMapping(url, std::move(blob), storage_key_, renderer_origin_, render_process_host_id_, -@@ -127,21 +169,32 @@ void BlobURLStoreImpl::Revoke(const GURL& url) { +@@ -127,21 +171,32 @@ void BlobURLStoreImpl::Revoke(const GURL& url) { void BlobURLStoreImpl::ResolveAsURLLoaderFactory( const GURL& url, mojo::PendingReceiver receiver, @@ -136,7 +138,7 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/ if (registry_->IsUrlMapped(BlobUrlUtils::ClearUrlFragment(url), storage_key_) == BlobUrlRegistry::MappingStatus::kNotMappedCrossPartitionSameOrigin) { -@@ -150,6 +203,7 @@ void BlobURLStoreImpl::FinishResolveAsURLLoaderFactory( +@@ -150,6 +205,7 @@ void BlobURLStoreImpl::FinishResolveAsURLLoaderFactory( features::kBlockCrossPartitionBlobUrlFetching) && !partitioning_disabled_by_policy_; if (feature_and_policy_check && !has_storage_access_handle) { @@ -144,7 +146,7 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/ partitioning_blob_url_closure_.Run(url, blink::mojom::PartitioningBlobURLInfo:: kBlockedCrossPartitionFetching); -@@ -162,6 +216,12 @@ void BlobURLStoreImpl::FinishResolveAsURLLoaderFactory( +@@ -162,6 +218,12 @@ void BlobURLStoreImpl::FinishResolveAsURLLoaderFactory( partitioning_blob_url_closure_.Run(url, std::nullopt); } @@ -157,16 +159,15 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/ BlobURLLoaderFactory::Create(registry_->GetBlobFromUrl(url), url, std::move(receiver)); // When a fragment URL is present, registry_->GetUnsafeAgentClusterID(url) and -@@ -175,6 +235,8 @@ void BlobURLStoreImpl::FinishResolveAsURLLoaderFactory( - void BlobURLStoreImpl::ResolveAsBlobURLToken( +@@ -176,12 +238,15 @@ void BlobURLStoreImpl::ResolveAsBlobURLToken( const GURL& url, mojo::PendingReceiver token, + bool is_top_level_navigation, + const base::UnguessableToken& unsafe_agent_cluster_id, + const std::optional& unsafe_top_level_site, - bool is_top_level_navigation, ResolveAsBlobURLTokenCallback callback) { if (!registry_) { -@@ -182,6 +244,7 @@ void BlobURLStoreImpl::ResolveAsBlobURLToken( + std::move(callback).Run(std::nullopt); return; } FinishResolveAsBlobURLToken(url, std::move(token), is_top_level_navigation, @@ -174,7 +175,7 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/ std::move(callback), storage_access_check_callback_.Run()); } -@@ -190,8 +253,14 @@ void BlobURLStoreImpl::FinishResolveAsBlobURLToken( +@@ -190,8 +255,14 @@ void BlobURLStoreImpl::FinishResolveAsBlobURLToken( const GURL& url, mojo::PendingReceiver token, bool is_top_level_navigation, 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 1489f02a..de8aeb18 100644 --- a/build/patches/Remove-HTTP-referrals-in-cross-origin-navigation.patch +++ b/build/patches/Remove-HTTP-referrals-in-cross-origin-navigation.patch @@ -23,7 +23,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../net/system_network_context_manager.cc | 4 + chrome/browser/renderer_preferences_util.cc | 1 + .../settings/privacy_page/privacy_page.html | 10 +++ - .../settings/privacy_page/privacy_page.ts | 17 ++++ + .../settings/privacy_page/privacy_page.ts | 18 ++++ .../strings/android_chrome_strings.grd | 24 +++++ chrome/browser/ui/prefs/pref_watcher.cc | 2 + chrome/browser/ui/prefs/prefs_tab_helper.cc | 2 + @@ -34,7 +34,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../renderer_host/navigation_request.cc | 9 ++ .../network/public/cpp/resource_request.h | 2 +- .../renderer_preferences.h | 1 + - 23 files changed, 372 insertions(+), 1 deletion(-) + 23 files changed, 373 insertions(+), 1 deletion(-) create mode 100644 chrome/android/java/res/layout/radio_button_group_referer_policy_preference.xml create mode 100644 chrome/android/java/res/xml/referer_policy_preferences.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/RadioButtonGroupRefererSettings.java @@ -464,7 +464,15 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.ts b/ch isGuest_: { type: Boolean, value() { -@@ -518,6 +529,12 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase { +@@ -407,6 +418,7 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase { + private isPrivacySandboxRestrictedNoticeEnabled_: boolean; + private enableAutomaticFullscreenContentSetting_: boolean; + private enablePermissionSiteSettingsRadioButton_: boolean; ++ private referersPolicyOptions_: object[]; + private privateStateTokensEnabled_: boolean; + private autoPictureInPictureEnabled_: boolean; + private capturedSurfaceControlEnabled_: boolean; +@@ -519,6 +531,12 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase { Router.getInstance().navigateTo(routes.TRACKING_PROTECTION); } diff --git a/build/patches/Remove-binary-blob-integrations.patch b/build/patches/Remove-binary-blob-integrations.patch index 730bee2a..1b681f20 100644 --- a/build/patches/Remove-binary-blob-integrations.patch +++ b/build/patches/Remove-binary-blob-integrations.patch @@ -27,7 +27,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html ...em_webview_bundle.AndroidManifest.expected | 5 - build/android/gyp/proguard.py | 2 + build/config/android/config.gni | 4 +- - chrome/android/BUILD.gn | 34 +- + chrome/android/BUILD.gn | 32 +- chrome/android/chrome_java_sources.gni | 5 - chrome/android/java/AndroidManifest.xml | 50 -- .../browser/ChromeBackgroundService.java | 10 +- @@ -72,12 +72,12 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../caf/BaseSessionController.java | 112 +-- .../caf/CafBaseMediaRouteProvider.java | 113 +-- .../caf/CafMediaRouteProvider.java | 21 - - .../media_router/caf/CafMessageHandler.java | 104 +-- + .../media_router/caf/CafMessageHandler.java | 106 +-- .../media_router/caf/CastMediaSource.java | 10 +- .../media_router/caf/CastOptionsProvider.java | 21 +- .../caf/CastSessionController.java | 87 --- .../media_router/caf/CastUtils.java | 8 - - .../CafExpandedControllerActivity.java | 37 +- + .../CafExpandedControllerActivity.java | 46 +- .../CafRemotingMediaRouteProvider.java | 4 +- .../remoting/FlingingControllerAdapter.java | 96 --- .../caf/remoting/RemotingMediaSource.java | 8 +- @@ -88,7 +88,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../components/omnibox/OmniboxFeatures.java | 8 - components/signin/public/android/BUILD.gn | 3 - components/webauthn/android/BUILD.gn | 15 +- - .../webauthn/AuthenticatorImpl.java | 81 +- + .../webauthn/AuthenticatorImpl.java | 81 +-- .../webauthn/ConditionalUiState.java | 15 + .../components/webauthn/GmsCoreUtils.java | 28 +- .../webauthn/WebauthnModeProvider.java | 15 - @@ -96,19 +96,19 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../cred_man/CredManMetricsHelper.java | 2 +- .../push_messaging/push_messaging_manager.cc | 2 +- content/public/android/BUILD.gn | 5 - - .../webid/IdentityCredentialsDelegate.java | 79 +- + .../webid/IdentityCredentialsDelegate.java | 87 +-- content/test/BUILD.gn | 4 - device/BUILD.gn | 3 - device/fido/features.cc | 1 + services/BUILD.gn | 9 - services/device/geolocation/BUILD.gn | 4 - services/shape_detection/BUILD.gn | 2 - - third_party/android_deps/BUILD.gn | 701 +----------------- + third_party/android_deps/BUILD.gn | 663 +----------------- .../preconditions/javatests/BUILD.gn | 1 - .../gms/ChromiumPlayServicesAvailability.java | 10 +- third_party/androidx/customizations.gni | 14 +- third_party/cardboard/BUILD.gn | 4 - - 84 files changed, 118 insertions(+), 2202 deletions(-) + 84 files changed, 120 insertions(+), 2179 deletions(-) create mode 100644 components/webauthn/android/java/src/org/chromium/components/webauthn/ConditionalUiState.java diff --git a/android_webview/expectations/system_webview_bundle.AndroidManifest.expected b/android_webview/expectations/system_webview_bundle.AndroidManifest.expected @@ -177,16 +177,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//base:content_uri_utils_java", "//base:service_loader_java", "//base/version_info/android:version_constants_java", -@@ -610,8 +602,6 @@ if (current_toolchain == default_toolchain) { - "//components/feed/core/proto:proto_java_v2", - "//components/feed/core/v2:feedv2_core_java", - "//components/find_in_page/android:java", -- "//components/gcm_driver/android:gcm_driver_java", -- "//components/gcm_driver/instance_id/android:instance_id_driver_java", - "//components/image_fetcher:java", - "//components/infobars/android:infobar_android_enums_java", - "//components/infobars/android:java", -@@ -721,11 +711,20 @@ if (current_toolchain == default_toolchain) { +@@ -721,11 +713,20 @@ if (current_toolchain == default_toolchain) { "//services/shape_detection:shape_detection_java", "//services/shape_detection/public/mojom:mojom_java", "//skia/public/mojom:mojom_java", @@ -209,7 +200,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//third_party/android_deps:protobuf_lite_runtime_java", "//third_party/android_media:android_media_java", "//third_party/android_swipe_refresh:android_swipe_refresh_java", -@@ -1906,7 +1905,6 @@ if (current_toolchain == default_toolchain) { +@@ -1906,7 +1907,6 @@ if (current_toolchain == default_toolchain) { ] deps = [ ":chrome_java", @@ -217,7 +208,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//base:base_java", "//base:base_java_test_support", "//build/android:build_java", -@@ -2010,7 +2008,6 @@ if (current_toolchain == default_toolchain) { +@@ -2010,7 +2010,6 @@ if (current_toolchain == default_toolchain) { # is in a DFM. android_library("base_module_java") { sources = [ @@ -225,7 +216,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "java/src/org/chromium/chrome/app/TrichromeZygotePreload.java", "java/src/org/chromium/chrome/browser/ChromeBackgroundService.java", "java/src/org/chromium/chrome/browser/DeferredStartupHandler.java", -@@ -2027,8 +2024,6 @@ if (current_toolchain == default_toolchain) { +@@ -2027,8 +2026,6 @@ if (current_toolchain == default_toolchain) { "java/src/org/chromium/chrome/browser/base/SplitCompatBackupAgent.java", "java/src/org/chromium/chrome/browser/base/SplitCompatContentProvider.java", "java/src/org/chromium/chrome/browser/base/SplitCompatCustomTabsService.java", @@ -234,7 +225,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "java/src/org/chromium/chrome/browser/base/SplitCompatIntentService.java", "java/src/org/chromium/chrome/browser/base/SplitCompatJobService.java", "java/src/org/chromium/chrome/browser/base/SplitCompatMinidumpUploadJobService.java", -@@ -2054,15 +2049,10 @@ if (current_toolchain == default_toolchain) { +@@ -2054,15 +2051,10 @@ if (current_toolchain == default_toolchain) { "java/src/org/chromium/chrome/browser/photo_picker/DecoderService.java", "java/src/org/chromium/chrome/browser/provider/ChromeBrowserProvider.java", "java/src/org/chromium/chrome/browser/provider/PageContentProvider.java", @@ -250,7 +241,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//base:base_java", "//chrome/browser/autofill/android:third_party_provider_java", "//chrome/browser/download/android:file_provider_java", -@@ -2077,7 +2067,6 @@ if (current_toolchain == default_toolchain) { +@@ -2077,7 +2069,6 @@ if (current_toolchain == default_toolchain) { "//components/media_router/browser/android:cast_options_provider_java", "//components/minidump_uploader:minidump_uploader_java", "//components/module_installer/android:module_installer_java", @@ -258,7 +249,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//third_party/androidx:androidx_annotation_annotation_java", "//third_party/androidx:androidx_collection_collection_java", "//third_party/jni_zero:jni_zero_java", -@@ -2097,7 +2086,6 @@ if (current_toolchain == default_toolchain) { +@@ -2097,7 +2088,6 @@ if (current_toolchain == default_toolchain) { # Deps to pull services into base module. # TODO(crbug.com/40148088): Consider moving these to the chrome module to # reduce base dex size. @@ -2169,10 +2160,11 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; -@@ -336,50 +332,7 @@ public class CafMessageHandler { +@@ -335,51 +331,7 @@ public class CafMessageHandler { + throws JSONException { if (volumeMessage == null) return false; if (!mSessionController.isConnected()) return false; - assumeNonNull(mSessionController.getSession()); +- assumeNonNull(mSessionController.getSession()); - boolean shouldWaitForVolumeChange = false; - try { - if (!volumeMessage.isNull("muted")) { @@ -2221,7 +2213,12 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo } @VisibleForTesting -@@ -678,21 +631,11 @@ public class CafMessageHandler { +@@ -673,26 +625,15 @@ public class CafMessageHandler { + /** @return A message containing the information of the {@link CastSession}. */ + public String buildSessionMessage() { + if (!mSessionController.isConnected()) return "{}"; +- assumeNonNull(mSessionController.getSession()); + try { // "volume" is a part of "receiver" initialized below. JSONObject jsonVolume = new JSONObject(); @@ -2243,7 +2240,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo jsonReceiver.put("displayStatus", null); jsonReceiver.put("receiverType", "cast"); -@@ -705,28 +648,12 @@ public class CafMessageHandler { +@@ -705,28 +646,12 @@ public class CafMessageHandler { JSONObject jsonMessage = new JSONObject(); jsonMessage.put("sessionId", mSessionController.getSessionId()); @@ -2272,7 +2269,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo return jsonMessage.toString(); } catch (JSONException e) { Log.w(TAG, "Building session message failed", e); -@@ -804,33 +731,6 @@ public class CafMessageHandler { +@@ -804,33 +729,6 @@ public class CafMessageHandler { boolean sendStringCastMessage( String message, String namespace, String clientId, int sequenceNumber) { if (!mSessionController.isConnected()) return false; @@ -2538,7 +2535,28 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/CafExpandedControllerActivity.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/CafExpandedControllerActivity.java --- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/CafExpandedControllerActivity.java +++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/CafExpandedControllerActivity.java -@@ -55,43 +55,29 @@ public class CafExpandedControllerActivity extends FragmentActivity +@@ -19,8 +19,6 @@ import android.widget.TextView; + import androidx.fragment.app.FragmentActivity; + import androidx.mediarouter.app.MediaRouteButton; + +-import com.google.android.gms.cast.framework.media.RemoteMediaClient; +- + import org.chromium.build.annotations.NullMarked; + import org.chromium.build.annotations.Nullable; + import org.chromium.components.media_router.R; +@@ -43,55 +41,34 @@ public class CafExpandedControllerActivity extends FragmentActivity + private TextView mTitleView; + private Runnable mUpdateProgressRunnable; + +- private RemoteMediaClient getRemoteMediaClient() { +- RemoteMediaClient ret = +- assumeNonNull(mSessionController.getSession()).getRemoteMediaClient(); +- assert ret != null; +- return ret; +- } +- + /** Handle actions from on-screen media controls. */ + private MediaController.Delegate mControllerDelegate = new MediaController.Delegate() { @Override public void play() { @@ -2585,7 +2603,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo } @Override -@@ -99,11 +85,6 @@ public class CafExpandedControllerActivity extends FragmentActivity +@@ -99,11 +76,6 @@ public class CafExpandedControllerActivity extends FragmentActivity long flags = PlaybackStateCompat.ACTION_REWIND | PlaybackStateCompat.ACTION_FAST_FORWARD; @@ -2597,7 +2615,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo return flags; } }; -@@ -203,22 +184,10 @@ public class CafExpandedControllerActivity extends FragmentActivity +@@ -203,22 +175,10 @@ public class CafExpandedControllerActivity extends FragmentActivity private void updateUi() { if (!mSessionController.isConnected()) return; @@ -3488,6 +3506,28 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/webid/ } public Promise create(Activity window, String origin, String request) { +@@ -186,7 +109,7 @@ public class IdentityCredentialsDelegate { + @VisibleForTesting + public static DigitalCredential extractDigitalCredentialFromResponseBundle( + int code, Bundle bundle) +- throws JSONException, NullPointerException, GetCredentialException { ++ throws JSONException, NullPointerException { + // Try to read the new format. + var digitalCredential = extractDigitalCredentialFromModernResponse(bundle); + if (digitalCredential != null) { +@@ -195,11 +118,7 @@ public class IdentityCredentialsDelegate { + // TODO(crbug.com/336329411) Handle the case when the intent doesn't contain the modern + // response, but contains the modern exception. + +- // Fallback to the legacy format. +- var response = IntentHelper.extractGetCredentialResponse(code, bundle); +- var token = response.getCredential().getData().getByteArray(BUNDLE_KEY_IDENTITY_TOKEN); +- +- return new DigitalCredential(null, Objects.requireNonNull(token)); ++ throw new NullPointerException(); + } + + /** diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn --- a/content/test/BUILD.gn +++ b/content/test/BUILD.gn @@ -3605,7 +3645,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. } # The section below is generated by running -@@ -154,221 +145,6 @@ java_prebuilt("com_android_tools_sdk_common_java") { +@@ -154,13 +145,6 @@ java_prebuilt("com_android_tools_sdk_common_java") { visibility = [ "//build/android/unused_resources:*" ] } @@ -3616,45 +3656,13 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - enable_bytecode_checks = false -} - --# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. --java_prebuilt("com_squareup_javapoet_java") { -- jar_path = "cipd/libs/com_squareup_javapoet/javapoet-1.13.0.jar" -- output_name = "com_squareup_javapoet" -- enable_bytecode_checks = false --} --if (!limit_android_deps) { -- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. -- java_prebuilt("com_android_support_support_annotations_java") { -- jar_path = "cipd/libs/com_android_support_support_annotations/support-annotations-28.0.0.jar" -- output_name = "com_android_support_support_annotations" -- supports_android = true -- requires_android = true -- enable_bytecode_checks = false -- } -- -- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. -- android_aar_prebuilt( -- "com_google_android_apps_common_testing_accessibility_framework_accessibility_test_framework_java") { -- aar_path = "cipd/libs/com_google_android_apps_common_testing_accessibility_framework_accessibility_test_framework/accessibility-test-framework-4.0.0.aar" -- info_path = "libs/com_google_android_apps_common_testing_accessibility_framework_accessibility_test_framework/com_google_android_accessibility_test_framework.info" -- enable_bytecode_checks = false -- testonly = true -- deps = [ -- ":com_google_errorprone_error_prone_annotations_java", -- ":org_checkerframework_checker_qual_java", -- ":org_jsoup_jsoup_java", -- "//third_party/android_deps:guava_android_java", -- "//third_party/android_deps:material_design_java", -- "//third_party/android_deps:protobuf_lite_runtime_java", -- "//third_party/androidx:androidx_core_core_java", -- "//third_party/androidx:androidx_test_services_storage_java", -- "//third_party/hamcrest:hamcrest_core_java", -- "//third_party/hamcrest:hamcrest_library_java", -- ] -- proguard_configs = -- [ "local_modifications/accessibility_test_framework.pcfg" ] -- } -- + # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. + java_prebuilt("com_squareup_javapoet_java") { + jar_path = "cipd/libs/com_squareup_javapoet/javapoet-1.13.0.jar" +@@ -200,176 +184,6 @@ if (!limit_android_deps) { + [ "local_modifications/accessibility_test_framework.pcfg" ] + } + - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt( @@ -3824,10 +3832,11 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - ] - } - } - +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. if (!defined(material_design_target)) { -@@ -417,24 +193,6 @@ if (!limit_android_deps) { + android_aar_prebuilt("com_google_android_material_material_java") { +@@ -417,24 +231,6 @@ if (!limit_android_deps) { } } @@ -3852,7 +3861,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. android_aar_prebuilt("com_google_ar_impress_java") { aar_path = "cipd/libs/com_google_ar_impress/impress-0.0.2.aar" -@@ -470,93 +228,6 @@ if (!limit_android_deps) { +@@ -470,93 +266,6 @@ if (!limit_android_deps) { } # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. @@ -3946,7 +3955,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. if (!defined(guava_android_target)) { -@@ -736,20 +407,6 @@ if (!limit_android_deps) { +@@ -736,20 +445,6 @@ if (!limit_android_deps) { ] } @@ -3967,7 +3976,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. java_prebuilt("org_jsoup_jsoup_java") { jar_path = "cipd/libs/org_jsoup_jsoup/jsoup-1.15.1.jar" -@@ -812,362 +469,6 @@ if (!limit_android_deps) { +@@ -812,362 +507,6 @@ if (!limit_android_deps) { deps = [ ":org_mockito_mockito_core_java" ] } diff --git a/build/patches/Restore-Simplified-NTP-launch.patch b/build/patches/Restore-Simplified-NTP-launch.patch index f5b8bfdd..0d7b1061 100644 --- a/build/patches/Restore-Simplified-NTP-launch.patch +++ b/build/patches/Restore-Simplified-NTP-launch.patch @@ -12,32 +12,34 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../java/res/layout/mv_tiles_layout.xml | 13 +- .../java/res/layout/new_tab_page_layout.xml | 7 + .../new_tab_page_tile_grid_placeholder.xml | 8 +- - .../android/java/res/layout/ntp_shortcuts.xml | 65 ++++++ + .../android/java/res/layout/ntp_shortcuts.xml | 65 ++++ chrome/android/java/res/values/attrs.xml | 4 + chrome/android/java/res/values/dimens.xml | 2 + .../chrome/browser/ChromeTabbedActivity.java | 3 +- .../browser/TabbedModeTabDelegateFactory.java | 9 +- .../feedback/ChromeFeedbackCollector.java | 1 + - .../feedback/SimplifiedNtpFeedbackSource.java | 38 ++++ + .../feedback/SimplifiedNtpFeedbackSource.java | 38 +++ .../identity_disc/IdentityDiscController.java | 5 +- .../native_page/NativePageFactory.java | 19 +- .../NativePageNavigationDelegateImpl.java | 2 +- .../chrome/browser/ntp/NewTabPage.java | 8 +- - .../chrome/browser/ntp/NewTabPageLayout.java | 25 ++- - .../SuggestionsNavigationDelegate.java | 27 ++- + .../chrome/browser/ntp/NewTabPageLayout.java | 29 +- + .../SuggestionsNavigationDelegate.java | 27 +- .../mostvisited/MostVisitedSitesBridge.java | 2 +- - .../tile/MostVisitedTilesCoordinator.java | 7 +- - .../tile/MostVisitedTilesGridLayout.java | 193 ++++++++++++++++++ - .../tile/MostVisitedTilesMediator.java | 9 +- + .../tile/MostVisitedTilesCoordinator.java | 6 +- + .../tile/MostVisitedTilesGridLayout.java | 283 ++++++++++++++++++ + .../tile/MostVisitedTilesMediator.java | 4 +- + .../suggestions/tile/TileRenderer.java | 4 +- + .../suggestions/tile/TilesLinearLayout.java | 2 +- .../engagement/important_sites_util.cc | 2 +- .../flags/android/chrome_feature_list.cc | 1 + .../browser/flags/ChromeFeatureList.java | 3 +- .../client_util/HomeModulesRankingHelper.java | 1 + .../history/core/browser/top_sites_impl.h | 2 +- - .../Restore-Simplified-NTP-launch.inc | 12 ++ + .../Restore-Simplified-NTP-launch.inc | 12 + .../Restore-Simplified-NTP-launch.inc | 5 + .../Restore-Simplified-NTP-launch.inc | 1 + - 31 files changed, 437 insertions(+), 42 deletions(-) + 33 files changed, 528 insertions(+), 45 deletions(-) create mode 100644 chrome/android/java/res/layout/ntp_shortcuts.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/feedback/SimplifiedNtpFeedbackSource.java create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesGridLayout.java @@ -536,6 +538,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; +@@ -45,7 +47,7 @@ import org.chromium.chrome.browser.profiles.Profile; + import org.chromium.chrome.browser.suggestions.tile.MostVisitedTilesCoordinator; + import org.chromium.chrome.browser.suggestions.tile.TileGroup; + import org.chromium.chrome.browser.suggestions.tile.TileGroup.Delegate; +-import org.chromium.chrome.browser.suggestions.tile.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; @@ -86,6 +88,8 @@ public class NewTabPageLayout extends LinearLayout { private @Nullable DisplayStyleObserver mDisplayStyleObserver; private CallbackController mCallbackController = new CallbackController(); @@ -562,6 +573,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL initializeSearchBoxTextView(); initializeVoiceSearchButton(); initializeLensButton(); +@@ -506,7 +511,7 @@ public class NewTabPageLayout extends LinearLayout { + + 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; @@ -574,7 +579,7 @@ public class NewTabPageLayout extends LinearLayout { && mInitialized) { return; @@ -655,15 +675,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/mos diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesCoordinator.java -@@ -38,6 +38,7 @@ public class MostVisitedTilesCoordinator implements ConfigurationChangedObserver - private final MostVisitedTilesMediator mMediator; - private final WindowAndroid mWindowAndroid; - private final UiConfig mUiConfig; -+ private PropertyModelChangeProcessor mModelChangeProcessor; - private TileRenderer mRenderer; - private ContextMenuManager mContextMenuManager; - private OfflinePageBridge mOfflinePageBridge; -@@ -65,15 +66,11 @@ public class MostVisitedTilesCoordinator implements ConfigurationChangedObserver +@@ -65,15 +65,11 @@ public class MostVisitedTilesCoordinator implements ConfigurationChangedObserver mWindowAndroid = windowAndroid; ((ViewStub) mvTilesContainerLayout.findViewById(R.id.mv_tiles_layout_stub)).inflate(); @@ -684,7 +696,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til new file mode 100644 --- /dev/null +++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesGridLayout.java -@@ -0,0 +1,193 @@ +@@ -0,0 +1,283 @@ +// Copyright 2015 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. @@ -708,8 +720,12 @@ new file mode 100644 +import org.chromium.chrome.R; +import org.chromium.chrome.browser.flags.ChromeFeatureList; +import org.chromium.chrome.browser.suggestions.SiteSuggestion; ++import org.chromium.components.browser_ui.widget.tile.TileView; +import org.chromium.ui.base.DeviceFormFactor; + ++import java.util.ArrayList; ++import java.util.List; ++ +/** A layout that arranges tiles in a grid. */ +public class MostVisitedTilesGridLayout extends FrameLayout { + private final int mMinHorizontalSpacing; @@ -720,6 +736,8 @@ new file mode 100644 + private int mMaxRows = 4; + private int mMaxColumns = 4; + ++ private List mTileList = new ArrayList(); ++ + /** + * Constructor for inflating from XML. + * @@ -877,47 +895,145 @@ new file mode 100644 + private int getGridMVTVerticalSpacingResourcesId() { + return R.dimen.tile_grid_layout_vertical_spacing; + } ++ ++ @Override ++ public void removeAllViews() { ++ mTileList.clear(); ++ super.removeAllViews(); ++ } ++ ++ /** ++ * Updates the start margin of all children except the first, to control spacing between. ++ * ++ * @param margin The margin to set. ++ */ ++ void setIntervalMargins(int margin) { ++ int childCount = getChildCount(); ++ for (int i = 1; i < childCount; i++) { ++ updateViewStartMargin(getChildAt(i), margin); ++ } ++ } ++ ++ /** ++ * Updates the start (end) margin the first (last) child, to control spacing around content. ++ * ++ * @param margin The margin to set. ++ */ ++ void setEdgeMargins(int margin) { ++ int childCount = getChildCount(); ++ if (childCount > 0) { ++ updateViewStartMargin(getChildAt(0), margin); ++ updateViewEndMargin(getChildAt(childCount - 1), margin); ++ } ++ } ++ ++ /** ++ * Specialized addView() for tiles. ++ * ++ * @param tileView The tile View to add. ++ */ ++ public void addTile(TileView tileView) { ++ super.addView(tileView); ++ mTileList.add(tileView); ++ } ++ ++ /** ++ * Specialized getChildCount() for tiles. ++ * ++ * @return The count of TileView children, added from addTile(). ++ */ ++ public int getTileCount() { ++ return mTileList.size(); ++ } ++ ++ /** ++ * Specialized getChildAt() for tiles. ++ * ++ * @return The (index+1)-th TileView added via addTile(). ++ */ ++ public TileView getTileAt(int index) { ++ return mTileList.get(index); ++ } ++ ++ private void updateViewStartMargin(View view, int newStartMargin) { ++ MarginLayoutParams layoutParams = (MarginLayoutParams) view.getLayoutParams(); ++ if (newStartMargin != layoutParams.getMarginStart()) { ++ layoutParams.setMarginStart(newStartMargin); ++ view.setLayoutParams(layoutParams); ++ } ++ } ++ ++ private void updateViewEndMargin(View view, int newEndMargin) { ++ MarginLayoutParams layoutParams = (MarginLayoutParams) view.getLayoutParams(); ++ if (newEndMargin != layoutParams.getMarginEnd()) { ++ layoutParams.setMarginEnd(newEndMargin); ++ view.setLayoutParams(layoutParams); ++ } ++ } ++ ++ void destroy() { ++ for (int i = 0; i < getTileCount(); i++) { ++ TileView tileView = getTileAt(i); ++ tileView.setOnClickListener(null); ++ tileView.setOnCreateContextMenuListener(null); ++ } ++ removeAllViews(); ++ } +} diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesMediator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesMediator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesMediator.java -@@ -12,6 +12,7 @@ import static org.chromium.chrome.browser.suggestions.tile.MostVisitedTilesPrope - - import android.content.res.Configuration; - import android.content.res.Resources; -+import android.view.ViewGroup; - import android.view.ViewStub; - - import androidx.annotation.Nullable; -@@ -37,7 +38,7 @@ public class MostVisitedTilesMediator implements TileGroup.Observer, TemplateUrl +@@ -37,7 +37,7 @@ public class MostVisitedTilesMediator implements TileGroup.Observer, TemplateUrl private final Resources mResources; private final UiConfig mUiConfig; - private final MostVisitedTilesLayout mMvTilesLayout; -+ private final ViewGroup mMvTilesLayout; ++ private final MostVisitedTilesGridLayout mMvTilesLayout; private final ViewStub mNoMvPlaceholderStub; private final PropertyModel mModel; private final boolean mIsTablet; -@@ -59,7 +60,7 @@ public class MostVisitedTilesMediator implements TileGroup.Observer, TemplateUrl +@@ -59,7 +59,7 @@ public class MostVisitedTilesMediator implements TileGroup.Observer, TemplateUrl public MostVisitedTilesMediator( Resources resources, UiConfig uiConfig, - MostVisitedTilesLayout mvTilesLayout, -+ ViewGroup mvTilesLayout, ++ MostVisitedTilesGridLayout mvTilesLayout, ViewStub noMvPlaceholderStub, TileRenderer renderer, PropertyModel propertyModel, -@@ -166,8 +167,8 @@ public class MostVisitedTilesMediator implements TileGroup.Observer, TemplateUrl - } +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 +@@ -162,7 +162,7 @@ public class TileRenderer { + */ + public void renderTileSection( + List sectionTiles, +- TilesLinearLayout parent, ++ MostVisitedTilesGridLayout parent, + TileGroup.TileSetupDelegate setupDelegate) { + try (TraceEvent e = TraceEvent.scoped("TileRenderer.renderTileSection")) { + // Map the old tile views by url so they can be reused later. +@@ -216,7 +216,7 @@ public class TileRenderer { + */ + @VisibleForTesting + SuggestionsTileView buildTileView( +- Tile tile, TilesLinearLayout parent, TileGroup.TileSetupDelegate setupDelegate) { ++ Tile tile, MostVisitedTilesGridLayout parent, TileGroup.TileSetupDelegate setupDelegate) { + SuggestionsTileView tileView = + (SuggestionsTileView) + LayoutInflater.from(parent.getContext()).inflate(mLayout, parent, false); +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 +@@ -23,7 +23,7 @@ import java.util.List; + * #getChildCount()} and {@link #getChildAt()}. + */ + @NullMarked +-public class TilesLinearLayout extends LinearLayout { ++class TilesLinearLayout extends LinearLayout { + private List mTileList = new ArrayList(); - public void destroy() { -- if (mMvTilesLayout != null) { -- mMvTilesLayout.destroy(); -+ if (mMvTilesLayout instanceof MostVisitedTilesLayout) { -+ ((MostVisitedTilesLayout)mMvTilesLayout).destroy(); - } - - if (mTileGroup != null) { + public TilesLinearLayout(Context context, @Nullable AttributeSet attrs) { 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 diff --git a/build/patches/User-agent-customization.patch b/build/patches/User-agent-customization.patch index 5cba73f1..26637f83 100644 --- a/build/patches/User-agent-customization.patch +++ b/build/patches/User-agent-customization.patch @@ -1047,8 +1047,8 @@ diff --git a/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chro + @Override + public void SetOverrideUserAgentForAllTabs(boolean usingDesktopUserAgent) { -+ for (int selectorIndex = 0; selectorIndex < mSelectors.size(); selectorIndex++) { -+ TabModelSelector selector = mSelectors.get(selectorIndex); ++ for (int selectorIndex : mWindowIdToSelectors.keySet()) { ++ TabModelSelector selector = mWindowIdToSelectors.get(selectorIndex); + if (selector != null) { + List models = selector.getModels(); + for (int modelIndex = 0; modelIndex < models.size(); modelIndex++) { diff --git a/build/patches/Welcome-screen.patch b/build/patches/Welcome-screen.patch index bcf8fe42..b57119d8 100644 --- a/build/patches/Welcome-screen.patch +++ b/build/patches/Welcome-screen.patch @@ -13,7 +13,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/android/java/res/values/styles.xml | 24 ++ .../DefaultSearchEngineFirstRunFragment.java | 3 - .../browser/firstrun/FirstRunActivity.java | 23 +- - .../firstrun/FirstRunFlowSequencer.java | 60 +--- + .../firstrun/FirstRunFlowSequencer.java | 58 +-- .../browser/firstrun/FirstRunUtils.java | 1 + .../firstrun/ToSAndUMAFirstRunFragment.java | 335 +++++++++++++++++ .../firstrun/TosAndUmaFragmentView.java | 336 ++++++++++++++++++ @@ -21,7 +21,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html ...creenSigninAndHistorySyncActivityBase.java | 6 +- .../browser/locale/LocaleManagerDelegate.java | 5 +- .../Welcome-screen.grdp | 27 ++ - 15 files changed, 919 insertions(+), 79 deletions(-) + 15 files changed, 917 insertions(+), 79 deletions(-) create mode 100644 chrome/android/java/res/layout/fre_tosanduma.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/firstrun/TosAndUmaFragmentView.java @@ -401,7 +401,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR } } -@@ -137,18 +115,8 @@ public abstract class FirstRunFlowSequencer { +@@ -137,18 +115,6 @@ public abstract class FirstRunFlowSequencer { * method. */ void start() { @@ -417,12 +417,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR - mAccountsAvailable = true; - maybeProcessFreEnvironmentPreNative(); - }); -+ mIsChild = false; -+ maybeProcessFreEnvironmentPreNative(); } @VisibleForTesting -@@ -167,9 +135,6 @@ public abstract class FirstRunFlowSequencer { +@@ -167,9 +133,6 @@ public abstract class FirstRunFlowSequencer { } private void maybeProcessFreEnvironmentPreNative() { @@ -432,7 +430,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR if (mIsFlowKnown) return; mIsFlowKnown = true; onFlowIsKnown(mIsChild); -@@ -181,8 +146,8 @@ public abstract class FirstRunFlowSequencer { +@@ -181,8 +144,8 @@ public abstract class FirstRunFlowSequencer { * @param freProperties Resulting FRE properties bundle. */ public void updateFirstRunProperties(Bundle freProperties) { @@ -443,7 +441,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR assert freProperties != null; freProperties.putBoolean( FirstRunActivity.SHOW_HISTORY_SYNC_PAGE, shouldShowHistorySyncOptIn()); -@@ -201,8 +166,6 @@ public abstract class FirstRunFlowSequencer { +@@ -201,8 +164,6 @@ public abstract class FirstRunFlowSequencer { // Mark the FRE flow as complete. FirstRunStatus.setFirstRunFlowComplete(true); @@ -452,7 +450,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR } /** -@@ -301,9 +264,6 @@ public abstract class FirstRunFlowSequencer { +@@ -301,9 +262,6 @@ public abstract class FirstRunFlowSequencer { Log.d(TAG, "Redirecting user through FRE."); CrashKeys.getInstance().set(CrashKeyIndex.FIRST_RUN, "yes"); @@ -462,7 +460,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR if (inSameTask) { FreIntentCreator intentCreator = new FreIntentCreator(); Intent freIntent = -@@ -329,13 +289,17 @@ public abstract class FirstRunFlowSequencer { +@@ -329,13 +287,17 @@ public abstract class FirstRunFlowSequencer { if (!(caller instanceof Activity)) { freIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); } diff --git a/build/patches/add-browser-policy.patch b/build/patches/add-browser-policy.patch index 8834e53a..acb1c8ed 100644 --- a/build/patches/add-browser-policy.patch +++ b/build/patches/add-browser-policy.patch @@ -19,7 +19,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../ui/webui/policy/policy_ui_handler.cc | 104 ++++++++++++- .../ui/webui/policy/policy_ui_handler.h | 2 + .../strings/android/browser_ui_strings.grd | 2 +- - .../commerce/core/commerce_feature_list.cc | 67 ++------- + .../commerce/core/commerce_feature_list.cc | 64 ++------ .../core/browser/browser_policy_connector.cc | 3 + .../common/command_line_policy_provider.cc | 3 + .../core/common/policy_loader_command_line.cc | 137 ++++++++++++++++-- @@ -37,7 +37,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../gaia_cookie_manager_service.cc | 4 + google_apis/gaia/gaia_auth_fetcher.cc | 1 + net/socket/ssl_client_socket_impl.cc | 3 + - 33 files changed, 325 insertions(+), 158 deletions(-) + 33 files changed, 322 insertions(+), 158 deletions(-) diff --git a/base/win/win_util.cc b/base/win/win_util.cc --- a/base/win/win_util.cc @@ -624,16 +624,13 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm auto* pattern_from_component = commerce_heuristics::CommerceHeuristicsData::GetInstance() .GetNoDiscountMerchantPattern(); -@@ -495,4 +446,12 @@ bool IsNoDiscountMerchant(const GURL& url) { +@@ -495,4 +446,9 @@ bool IsNoDiscountMerchant(const GURL& url) { return RE2::PartialMatch(url.host_piece(), *pattern_from_component); } #endif + +SET_CROMITE_FEATURE_DISABLED(kShoppingListRegionLaunched); + -+SET_CROMITE_FEATURE_DISABLED(kParcelTracking); -+SET_CROMITE_FEATURE_DISABLED(kParcelTrackingRegionLaunched); -+ +SET_CROMITE_FEATURE_DISABLED(kEnableDiscountInfoApi); +SET_CROMITE_FEATURE_DISABLED(kEnableDiscountInfoApiRegionLaunched); } // namespace commerce @@ -936,7 +933,7 @@ diff --git a/components/policy/resources/webui/policy_row.ts b/components/policy } + const enabledBox = this.shadowRoot!.querySelector('.enabled_box'); -+ enabledBox!.checked = !policy.disabled; ++ enabledBox.checked = !policy.disabled; + // Populate the remaining columns with policy scope, level and value if a // value has been set. Otherwise, leave them blank. From e30c94bdd5768fd960895c84c8130963ef4b9778 Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Fri, 2 May 2025 16:46:59 +0200 Subject: [PATCH 05/10] Patches for v136 (no changes) --- .../patches/Add-setting-to-invert-tap-and-long-tap.patch | 2 +- .../patches/Allow-building-without-supervised-users.patch | 2 +- build/patches/Do-not-compile-QR-code-sharing.patch | 2 +- ...remove-allowscript-content-setting-secondary-url.patch | 2 +- build/patches/eyeo-133.0.6943.49-android_api.patch | 8 ++++---- build/patches/eyeo-133.0.6943.49-android_settings.patch | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) 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 c38d12d0..4fb409cb 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 @@ -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())) { -@@ -735,6 +738,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -734,6 +737,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { getProfile(), false); }); diff --git a/build/patches/Allow-building-without-supervised-users.patch b/build/patches/Allow-building-without-supervised-users.patch index 7fa1fbe2..49f350dc 100644 --- a/build/patches/Allow-building-without-supervised-users.patch +++ b/build/patches/Allow-building-without-supervised-users.patch @@ -23,7 +23,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -787,7 +787,6 @@ if (current_toolchain == default_toolchain) { +@@ -789,7 +789,6 @@ if (current_toolchain == 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", diff --git a/build/patches/Do-not-compile-QR-code-sharing.patch b/build/patches/Do-not-compile-QR-code-sharing.patch index 85627062..98d04959 100644 --- a/build/patches/Do-not-compile-QR-code-sharing.patch +++ b/build/patches/Do-not-compile-QR-code-sharing.patch @@ -19,7 +19,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -3013,7 +3013,6 @@ generate_jni("chrome_jni_headers") { +@@ -3015,7 +3015,6 @@ generate_jni("chrome_jni_headers") { "../browser/share/android/java/src/org/chromium/chrome/browser/share/link_to_text/LinkToTextBridge.java", "../browser/share/android/java/src/org/chromium/chrome/browser/share/long_screenshots/bitmap_generation/LongScreenshotsTabService.java", "../browser/share/android/java/src/org/chromium/chrome/browser/share/long_screenshots/bitmap_generation/LongScreenshotsTabServiceFactory.java", diff --git a/build/patches/Revert-remove-allowscript-content-setting-secondary-url.patch b/build/patches/Revert-remove-allowscript-content-setting-secondary-url.patch index da72aadd..5e0fc565 100644 --- a/build/patches/Revert-remove-allowscript-content-setting-secondary-url.patch +++ b/build/patches/Revert-remove-allowscript-content-setting-secondary-url.patch @@ -298,7 +298,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/thi return; } -@@ -983,15 +984,26 @@ void FrameFetchContext::SetFirstPartyCookie(ResourceRequest& request) { +@@ -981,15 +982,26 @@ void FrameFetchContext::SetFirstPartyCookie(ResourceRequest& request) { } } 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 d6cd722f..8e20cde8 100644 --- a/build/patches/eyeo-133.0.6943.49-android_api.patch +++ b/build/patches/eyeo-133.0.6943.49-android_api.patch @@ -113,7 +113,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//components/android_autofill/browser:java", "//components/autofill/android:autofill_features_java", "//components/autofill/android:autofill_java", -@@ -1336,6 +1341,7 @@ if (current_toolchain == default_toolchain) { +@@ -1338,6 +1343,7 @@ if (current_toolchain == default_toolchain) { "javatests:chrome_test_java_org.chromium.chrome.browser.toolbar", "javatests:chrome_test_java_org.chromium.chrome.browser.webapps", "javatests:chrome_test_java_various", @@ -121,7 +121,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/android/browserservices/verification:javatests", "//chrome/browser/android/httpclient:javatests", "//chrome/browser/android/metrics:ukm_javatests", -@@ -1405,6 +1411,7 @@ if (current_toolchain == default_toolchain) { +@@ -1407,6 +1413,7 @@ if (current_toolchain == default_toolchain) { "//chrome/test/data/translate/", "//chrome/test/data/webauthn/", "//chrome/test/media_router/resources/", @@ -129,7 +129,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//components/test/data/autofill/", "//components/test/data/payments/", "//content/test/data/browsing_data/", -@@ -3200,6 +3207,12 @@ generate_jni("chrome_jni_headers") { +@@ -3202,6 +3209,12 @@ generate_jni("chrome_jni_headers") { sources += [ "java/src/org/chromium/chrome/browser/media/MediaCapturePickerDialogBridge.java" ] } @@ -142,7 +142,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn # Used for testing only, should not be shipped to end users. if (enable_offline_pages_harness) { sources += [ "java/src/org/chromium/chrome/browser/offlinepages/evaluation/OfflinePageEvaluationBridge.java" ] -@@ -3291,6 +3304,7 @@ group("jni_headers") { +@@ -3293,6 +3306,7 @@ group("jni_headers") { "//chrome/browser/ui/messages/android:jni_headers", "//chrome/browser/util:jni_headers", "//chrome/browser/webauthn/android:jni_headers", diff --git a/build/patches/eyeo-133.0.6943.49-android_settings.patch b/build/patches/eyeo-133.0.6943.49-android_settings.patch index e1542357..bd9e73fd 100644 --- a/build/patches/eyeo-133.0.6943.49-android_settings.patch +++ b/build/patches/eyeo-133.0.6943.49-android_settings.patch @@ -250,7 +250,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn } android_resources("java_overlay_resources") { -@@ -777,6 +781,10 @@ if (current_toolchain == default_toolchain) { +@@ -779,6 +783,10 @@ if (current_toolchain == default_toolchain) { "//url/mojom:url_mojom_origin_java", ] From a58da99155a39b84b70ad6a7950889aa36aeba10 Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Fri, 2 May 2025 16:52:12 +0200 Subject: [PATCH 06/10] Disable CSSDynamicRangeLimit: Disables the ability for pages to limit the maximum brightness of HDR content since use as screen fingerprinting is possible. see https://www.github.com/w3ctag/design-reviews/issues/1027 --- build/cromite_patches_list.txt | 1 + .../Disable-CSSDynamicRangeLimit.patch | 27 +++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 build/patches/Disable-CSSDynamicRangeLimit.patch diff --git a/build/cromite_patches_list.txt b/build/cromite_patches_list.txt index fb0197e6..dc44397f 100644 --- a/build/cromite_patches_list.txt +++ b/build/cromite_patches_list.txt @@ -295,6 +295,7 @@ Prevent-mouse-wheel-fingerprinting-on-Windows.patch Enable-component-updater.patch Android-fonts-fingerprinting-mitigation.patch Disable-Android-Tab-Declutter.patch +Disable-CSSDynamicRangeLimit.patch # temporary or wip patches Temp-PerformanceNavigationTiming-privacy-fix.patch diff --git a/build/patches/Disable-CSSDynamicRangeLimit.patch b/build/patches/Disable-CSSDynamicRangeLimit.patch new file mode 100644 index 00000000..fb6f7d6b --- /dev/null +++ b/build/patches/Disable-CSSDynamicRangeLimit.patch @@ -0,0 +1,27 @@ +From: uazo +Date: Fri, 2 May 2025 14:20:38 +0000 +Subject: Disable CSSDynamicRangeLimit + +Disables the ability for pages to limit the maximum brightness of HDR content +since use as screen fingerprinting is possible. + +see https://www.github.com/w3ctag/design-reviews/issues/1027 + +License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html +--- + .../blink/renderer/platform/runtime_enabled_features.json5 | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +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 +@@ -1125,7 +1125,7 @@ + }, + { + name: "CSSDynamicRangeLimit", +- status: "stable", ++ status: "experimental", + }, + { + // Include custom properties in CSSComputedStyleDeclaration::item/length. +-- From 2efc363d37e63e67893e57e744fdb7b392ada4b6 Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Fri, 2 May 2025 16:52:57 +0200 Subject: [PATCH 07/10] Enable component updater: update to protocol version 4.0 --- build/components/query4_0.json | 32 ++++++++++++++++++++ build/patches/Enable-component-updater.patch | 24 +++++++++++++-- 2 files changed, 54 insertions(+), 2 deletions(-) create mode 100644 build/components/query4_0.json diff --git a/build/components/query4_0.json b/build/components/query4_0.json new file mode 100644 index 00000000..244237d3 --- /dev/null +++ b/build/components/query4_0.json @@ -0,0 +1,32 @@ +)]}' { + "response": { + "server": "prod", + "protocol": "4.0", + "apps": [ + { + "appid": "gcmjkmgdlgnkkcocmoeiminaijmmjnii", + "status": "ok", + "updatecheck": { + "status": "ok", + "nextversion": "1.0.0", + "pipelines": [ + { + "operations": [ + { + "type": "download", + "urls": [ { "url": "https://www.cromite.org/components/fonts_component.zip" } ], + "out": { "sha256": "22639FA1B21D9D95E6343A6A58028B224903D23BA404537584A22236FCFC3482" }, + "size": 60716451 + }, + { + "type": "crx3", + "in": { "sha256": "22639FA1B21D9D95E6343A6A58028B224903D23BA404537584A22236FCFC3482" } + } + ] + } + ] + } + } + ] + } +} diff --git a/build/patches/Enable-component-updater.patch b/build/patches/Enable-component-updater.patch index 659b74c6..39d515c0 100644 --- a/build/patches/Enable-component-updater.patch +++ b/build/patches/Enable-component-updater.patch @@ -24,12 +24,13 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html components/update_client/component.cc | 12 +++++ components/update_client/crx_downloader.cc | 5 ++ components/update_client/net/network_impl.cc | 2 + + components/update_client/protocol_parser.cc | 2 + .../update_client/protocol_parser_json.cc | 2 + components/update_client/request_sender.cc | 3 +- components/update_client/update_checker.cc | 6 ++- components/update_client/update_engine.cc | 9 ++++ components/update_client/utils.cc | 3 ++ - 21 files changed, 132 insertions(+), 49 deletions(-) + 22 files changed, 134 insertions(+), 49 deletions(-) diff --git a/android_webview/browser/aw_browser_main_parts.cc b/android_webview/browser/aw_browser_main_parts.cc --- a/android_webview/browser/aw_browser_main_parts.cc @@ -389,7 +390,7 @@ diff --git a/components/component_updater/component_updater_url_constants.cc b/c // --component-updater=url-source=someurl. const char kUpdaterJSONDefaultUrl[] = - "https://update.googleapis.com/service/update2/json"; -+ "https://www.cromite.org/components/query.json"; ++ "https://www.cromite.org/components/query4_0.json"; const char kUpdaterJSONFallbackUrl[] = - "http://update.googleapis.com/service/update2/json"; @@ -584,6 +585,25 @@ diff --git a/components/update_client/net/network_impl.cc b/components/update_cl simple_url_loader->SetOnResponseStartedCallback(base::BindOnce( &NetworkFetcherImpl::OnResponseStartedCallback, base::Unretained(this), std::move(response_started_callback))); +diff --git a/components/update_client/protocol_parser.cc b/components/update_client/protocol_parser.cc +--- a/components/update_client/protocol_parser.cc ++++ b/components/update_client/protocol_parser.cc +@@ -7,6 +7,7 @@ + #include + + #include "base/strings/stringprintf.h" ++#include "base/logging.h" + + namespace update_client { + +@@ -54,6 +55,7 @@ void ProtocolParser::ParseError(const char* details, ...) { + + base::StringAppendV(&errors_, details, args); + va_end(args); ++ LOG(INFO) << "ParseError " << errors_; + } + + bool ProtocolParser::Parse(const std::string& response) { diff --git a/components/update_client/protocol_parser_json.cc b/components/update_client/protocol_parser_json.cc --- a/components/update_client/protocol_parser_json.cc +++ b/components/update_client/protocol_parser_json.cc From 6cabcef0f6613f86f012a1d883a1c57389d2bd88 Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Fri, 2 May 2025 16:55:32 +0200 Subject: [PATCH 08/10] Force use vpython3 for some scripts: Some scripts need the latest version of python not available in the docker container. The patch forces the use of python in the virtual environment in the version required by the chromium build tools. --- build/cromite_patches_list.txt | 1 + .../Force-use-vpython3-for-some-scripts.patch | 79 +++++++++++++++++++ 2 files changed, 80 insertions(+) create mode 100644 build/patches/Force-use-vpython3-for-some-scripts.patch diff --git a/build/cromite_patches_list.txt b/build/cromite_patches_list.txt index dc44397f..b5326b92 100644 --- a/build/cromite_patches_list.txt +++ b/build/cromite_patches_list.txt @@ -2,6 +2,7 @@ Do-not-link-with-libatomic.patch Do-not-check-for-the-presence-of-use-remoteexec.patch bromite-build-utils.patch Add-cromite-flags-support.patch +Force-use-vpython3-for-some-scripts.patch Fix-chromium-vanilla.patch Final-patch-for-chromium-vanilla.patch diff --git a/build/patches/Force-use-vpython3-for-some-scripts.patch b/build/patches/Force-use-vpython3-for-some-scripts.patch new file mode 100644 index 00000000..46a144ff --- /dev/null +++ b/build/patches/Force-use-vpython3-for-some-scripts.patch @@ -0,0 +1,79 @@ +From: uazo +Date: Fri, 2 May 2025 14:16:01 +0000 +Subject: Force use vpython3 for some scripts + +Some scripts need the latest version of python not available in the docker container. +The patch forces the use of python in the virtual environment in the version +required by the chromium build tools. + +License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html +--- + components/search_engines/BUILD.gn | 4 +++- + components/variations/field_trial_config/BUILD.gn | 4 +++- + tools/json_to_struct/json_to_struct.gni | 4 +++- + 3 files changed, 9 insertions(+), 3 deletions(-) + +diff --git a/components/search_engines/BUILD.gn b/components/search_engines/BUILD.gn +--- a/components/search_engines/BUILD.gn ++++ b/components/search_engines/BUILD.gn +@@ -294,7 +294,7 @@ component("search_engines_switches") { + + if (!is_android) { + action("generate_search_engine_icons") { +- script = "//tools/search_engine_choice/generate_search_engine_icons.py" ++ script = "//build/gn_run_binary.py" + + inputs = [ + "//tools/search_engine_choice/generate_search_engine_icons_config.json", +@@ -311,6 +311,8 @@ if (!is_android) { + ] + + args = [ ++ rebase_path("//third_party/depot_tools/vpython3"), ++ rebase_path("//tools/search_engine_choice/generate_search_engine_icons.py"), + rebase_path("//", root_build_dir), + rebase_path("$target_gen_dir/generated_search_engine_resource_ids-inc.cc", + root_build_dir), +diff --git a/components/variations/field_trial_config/BUILD.gn b/components/variations/field_trial_config/BUILD.gn +--- a/components/variations/field_trial_config/BUILD.gn ++++ b/components/variations/field_trial_config/BUILD.gn +@@ -5,7 +5,7 @@ import("//tools/json_to_struct/json_to_struct.gni") + + action("field_trial_testing_config_action") { + visibility = [ ":field_trial_config" ] +- script = "//tools/variations/fieldtrial_to_struct.py" ++ script = "//build/gn_run_binary.py" + + source = "//testing/variations/fieldtrial_testing_config.json" + inputs = JSON_TO_STRUCT_FILES + [ source ] +@@ -22,6 +22,8 @@ action("field_trial_testing_config_action") { + } + + args = [ ++ rebase_path("//third_party/depot_tools/vpython3"), ++ rebase_path("//tools/variations/fieldtrial_to_struct.py"), + rebase_path(source, root_build_dir), + "--destbase=" + rebase_path(target_gen_dir, root_build_dir), + "--namespace=variations", +diff --git a/tools/json_to_struct/json_to_struct.gni b/tools/json_to_struct/json_to_struct.gni +--- a/tools/json_to_struct/json_to_struct.gni ++++ b/tools/json_to_struct/json_to_struct.gni +@@ -41,7 +41,7 @@ template("json_to_struct") { + + action(action_name) { + visibility = [ ":$source_set_name" ] +- script = "//tools/json_to_struct/json_to_struct.py" ++ script = "//build/gn_run_binary.py" + + inputs = JSON_TO_STRUCT_FILES + [ + invoker.source, +@@ -56,6 +56,8 @@ template("json_to_struct") { + ] + + args = [ ++ rebase_path("//third_party/depot_tools/vpython3"), ++ rebase_path("//tools/json_to_struct/json_to_struct.py"), + rebase_path(invoker.source, root_build_dir), + "--destbase=" + rebase_path(out_dir, root_build_dir), + "--namespace=" + invoker.namespace, +-- From 1e918644ff5097fc158fa45432ddd6531211b885 Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Fri, 2 May 2025 16:56:19 +0200 Subject: [PATCH 09/10] Bump to 136.0.7103.60 --- build/RELEASE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/RELEASE b/build/RELEASE index 770c8092..26102027 100644 --- a/build/RELEASE +++ b/build/RELEASE @@ -1 +1 @@ -136.0.7103.48 \ No newline at end of file +136.0.7103.60 \ No newline at end of file From 62b657905982b490c512fc1297aaa19f62b92e8d Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Fri, 2 May 2025 16:57:55 +0200 Subject: [PATCH 10/10] [TOOLS] Update windows sdk to 10.0.26100 --- .github/workflows/build_cromite.yaml | 6 +++--- tools/images/win-sdk/prepare.sh | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build_cromite.yaml b/.github/workflows/build_cromite.yaml index dc30c508..d023563e 100644 --- a/.github/workflows/build_cromite.yaml +++ b/.github/workflows/build_cromite.yaml @@ -182,9 +182,9 @@ jobs: KYTHE_ROOT_DIRECTORY: /home/lg/working_dir/chromium/src KYTHE_OUTPUT_DIRECTORY: /home/lg/working_dir/chromium/src/out/arm64/kythe # cross build - DEPOT_TOOLS_WIN_TOOLCHAIN_BASE_URL: /win_sdk/sdks/Win11SDK_10.0.22621.2428/ - WINDOWSSDKDIR: "/win_sdk/sdks/Win11SDK_10.0.22621.2428/Windows Kits/10/" - GYP_MSVS_OVERRIDE_PATH: /win_sdk/sdks/Win11SDK_10.0.22621.2428/ + DEPOT_TOOLS_WIN_TOOLCHAIN_BASE_URL: /win_sdk/sdks/Win11SDK_10.0.26100/ + WINDOWSSDKDIR: "/win_sdk/sdks/Win11SDK_10.0.26100/Windows Kits/10/" + GYP_MSVS_OVERRIDE_PATH: /win_sdk/sdks/Win11SDK_10.0.26100/ # compile in debug mode TARGET_ISDEBUG: ${{ github.event.inputs.debug }} TARGET_OS: ${{ github.event.inputs.target_os }} diff --git a/tools/images/win-sdk/prepare.sh b/tools/images/win-sdk/prepare.sh index 241610bb..f8e4adfb 100644 --- a/tools/images/win-sdk/prepare.sh +++ b/tools/images/win-sdk/prepare.sh @@ -8,9 +8,9 @@ msvc-wine/vsdownload.py \ --cache msvc-cache \ --dest ./out \ --save-manifest \ - Microsoft.VisualStudio.Component.VC.14.41.17.11.x86.x64 \ - Microsoft.VisualStudio.Component.VC.14.41.17.11.MFC \ - Win11SDK_10.0.22621 + Microsoft.VisualStudio.Component.VC.14.42.17.12.x86.x64 \ + Microsoft.VisualStudio.Component.VC.14.42.17.12.MFC \ + Win11SDK_10.0.26100 mv ./out/kits/ "./out/Windows Kits"