From 98a665e62abd1362eab82140820cbb66944e1894 Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Tue, 24 Jun 2025 16:26:13 +0200 Subject: [PATCH 1/9] Patches for v138 --- .../Add-AllowUserCertificates-flag.patch | 20 +- ...dd-Alt-D-hotkey-to-focus-address-bar.patch | 2 +- ...tialLowEndModeOnMidRangeDevices-flag.patch | 4 +- .../Add-a-flag-to-disable-GamePad-API.patch | 4 +- .../Add-a-proxy-configuration-page.patch | 16 +- .../Add-an-always-incognito-mode.patch | 124 +-- build/patches/Add-cromite-flags-support.patch | 120 +-- ...dd-custom-tab-intents-privacy-option.patch | 40 +- build/patches/Add-exit-menu-item.patch | 14 +- ...g-for-omnibox-autocomplete-filtering.patch | 6 +- .../Add-flag-to-disable-IPv6-probes.patch | 6 +- .../Add-flag-to-disable-vibration.patch | 2 +- ...-switch-for-unsupported-clangd-flags.patch | 20 +- .../Add-menu-item-to-view-source.patch | 31 +- .../Add-option-to-disable-snapshots.patch | 26 +- ...-to-not-persist-tabs-across-sessions.patch | 10 +- .../Add-option-to-use-home-page-as-NTP.patch | 34 +- .../Add-setting-to-clear-data-on-exit.patch | 58 +- build/patches/Add-site-engagement-flag.patch | 6 +- .../Add-support-for-writing-URIs.patch | 26 +- build/patches/Add-support-to-jxl.patch | 20 +- build/patches/Add-webGL-site-setting.patch | 10 +- ...ow-building-without-enable_reporting.patch | 54 +- ...ow-building-without-supervised-users.patch | 47 +- .../Allow-playing-audio-in-background.patch | 4 +- ...e-new-tab-page-for-default-home-page.patch | 8 +- build/patches/Android-Import-Passwords.patch | 6 +- ...roid-fonts-fingerprinting-mitigation.patch | 26 +- ...Ask-for-restart-on-connection-change.patch | 22 +- ...ioBuffer-AnalyserNode-fp-mitigations.patch | 2 +- ...Block-gateway-attacks-via-websockets.patch | 10 +- ...k-leakage-of-urls-in-sandbox-iframes.patch | 10 +- .../Block-qjz9zk-or-trk-requests.patch | 8 +- .../Bookmarks-select-all-menu-entry.patch | 10 +- .../Bromite-subresource-adblocker.patch | 58 +- .../Bubble-Locking-on-UI-DevTools.patch | 6 +- build/patches/Change-popup-site-setting.patch | 2 +- .../patches/Chrome-web-store-protection.patch | 56 +- ...ORS-Preflight-Cache-on-clearing-data.patch | 6 +- build/patches/Client-hints-overrides.patch | 8 +- .../patches/Close-Sessions-On-Ip-Change.patch | 2 +- ...romite-Branding--improve-settings-ui.patch | 24 +- build/patches/Cromite-Branding.patch | 26 +- build/patches/Customize-selection-popup.patch | 10 +- ...ctionary-suggestions-for-the-Omnibox.patch | 4 +- ...ble-Accessibility-service-by-default.patch | 2 +- .../Disable-Android-AppRestrictions.patch | 2 +- .../Disable-CSSDynamicRangeLimit.patch | 2 +- build/patches/Disable-Compose-feature.patch | 8 +- ...ble-Compression-Dictionary-Transport.patch | 2 +- build/patches/Disable-FedCm.patch | 2 +- .../Disable-GetInstalledRelatedApps-API.patch | 4 +- build/patches/Disable-PrivacyGuide.patch | 2 +- build/patches/Disable-Real-Box.patch | 24 +- ...vice-and-Shared-workers-on-3P-iframe.patch | 20 +- build/patches/Disable-TLS-resumption.patch | 12 +- build/patches/Disable-WebGPU.patch | 4 +- build/patches/Disable-all-promo-dialogs.patch | 6 +- .../Disable-conversion-measurement-api.patch | 72 +- build/patches/Disable-crash-reporting.patch | 8 +- .../Disable-feeds-support-by-default.patch | 2 +- ...Disable-fetching-of-all-field-trials.patch | 22 +- build/patches/Disable-idle-detection.patch | 2 +- ...media-router-and-remoting-by-default.patch | 6 +- .../Disable-minidump-upload-scheduling.patch | 2 +- .../patches/Disable-plugins-enumeration.patch | 2 +- .../Disable-prefers-reduced-motion.patch | 29 +- ...ers-reduced-transparency-media-query.patch | 6 +- ...e-privacy-issues-in-password-manager.patch | 8 +- build/patches/Disable-privacy-sandbox.patch | 46 +- build/patches/Disable-safety-check.patch | 16 +- .../Disable-smart-selection-by-default.patch | 12 +- ...isable-some-signed-exchange-features.patch | 2 +- ...isable-speechSynthesis-getVoices-API.patch | 4 +- .../Disable-text-fragments-by-default.patch | 8 +- .../Disable-third-party-origin-trials.patch | 14 +- build/patches/Disable-various-metrics.patch | 88 +- ...allow-Android-App-Scheme-as-referrer.patch | 2 +- .../Do-not-build-API-keys-infobar.patch | 20 +- .../Do-not-compile-QR-code-sharing.patch | 12 +- .../patches/Do-not-link-with-libatomic.patch | 2 +- build/patches/DoH-improvements.patch | 2 +- .../Enable-Certificate-Transparency.patch | 2 +- ...le-Document-Open-Inheritance-Removal.patch | 4 +- .../Enable-Global-Privacy-Control.patch | 26 +- build/patches/Enable-HEVC-by-default.patch | 2 +- ...Enable-HighEfficiencyMode-by-default.patch | 18 +- .../Enable-ImprovedBookmarks-by-default.patch | 4 +- ...ctOriginIsolation-and-SitePerProcess.patch | 4 +- build/patches/Enable-component-updater.patch | 26 +- ...e-darken-websites-checkbox-in-themes.patch | 2 +- ...fwrapv-in-Clang-for-non-UBSan-builds.patch | 2 +- .../patches/Enable-gwp-asan-on-Android.patch | 6 +- .../Enable-menu-on-reload-button.patch | 4 +- ...le-platform-aac-audio-and-h264-video.patch | 12 +- build/patches/Enable-share-intent.patch | 26 +- ...ivation-of-the-js-debugger-statement.patch | 30 +- .../Experimental-user-scripts-support.patch | 48 +- build/patches/Eyeo-Adblock-for-Cromite.patch | 44 +- build/patches/Fix-chromium-build-bugs.patch | 31 +- build/patches/Fix-chromium-vanilla.patch | 2 +- .../Fonts-fingerprinting-mitigation.patch | 6 +- .../Force-use-vpython3-for-some-scripts.patch | 24 +- .../Guard-for-user-agent-reduction.patch | 6 +- ...ing-against-incognito-mode-detection.patch | 2 +- ...story-number-of-days-privacy-setting.patch | 46 +- .../patches/Improve-the-browser-sandbox.patch | 2 +- build/patches/Internal-firewall.patch | 26 +- build/patches/JIT-site-settings.patch | 22 +- .../Keep-ComputePressure-disabled.patch | 4 +- .../patches/Keep-disabled-FetchLaterAPI.patch | 32 +- ...ep-disabled-WebViewMediaIntegrityApi.patch | 2 +- .../Keep-empty-tabs-between-sessions.patch | 4 +- ...-allow-screenshots-in-Incognito-mode.patch | 2 +- build/patches/Keyboard-protection-flag.patch | 2 +- .../Lock-Profile-Cookie-Database.patch | 2 +- ...ing-attributes-in-some-html-elements.patch | 28 +- build/patches/Logcat-crash-reports-UI.patch | 2 +- .../patches/Modify-default-preferences.patch | 10 +- .../Multiple-fingerprinting-mitigations.patch | 42 +- ...er-treat-Proguard-warnings-as-errors.patch | 2 +- build/patches/OpenSearch-miscellaneous.patch | 18 +- .../patches/Override-Navigator-Language.patch | 2 +- .../Override-the-MV2-deprecation.patch | 2 +- .../Partition-Blink-memory-cache.patch | 18 +- .../patches/Partition-HSTS-cache-by-NAK.patch | 50 +- .../Partition-MediaDeviceId-by-default.patch | 2 +- .../Partition-blobs-by-top-frame-URL.patch | 33 +- ...ning-all-cookies-by-top-frame-domain.patch | 26 +- .../patches/Permit-PGO-for-debug-builds.patch | 2 +- ...vate-network-access-content-settings.patch | 8 +- ...redential-fingerprinting-mitigations.patch | 6 +- ...-modal-dialog-flag-to-close-all-tabs.patch | 14 +- ...e-introduce-override_build_timestamp.patch | 29 +- ...ders-in-DoH-requests-to-bare-minimum.patch | 6 +- .../Remove-ChromiumNetworkAdapter.patch | 6 +- ...referrals-in-cross-origin-navigation.patch | 32 +- .../Remove-binary-blob-integrations.patch | 832 +++++------------- build/patches/Remove-help-menu-item.patch | 22 +- ...load-of-com.google.android.gms.fonts.patch | 2 +- .../Remove-segmentation-platform.patch | 2 +- ...Remove-voice-recognition-integration.patch | 88 +- ...ndow-name-on-cross-origin-navigation.patch | 4 +- ...ore-BookmarkToolbar-setCurrentFolder.patch | 40 +- .../Restore-LastTabStandingTracker.patch | 8 +- .../Restore-Search-Ready-Omnibox-flag.patch | 24 +- .../Restore-Simplified-NTP-launch.patch | 58 +- .../Restore-chrome-password-store.patch | 10 +- .../Restore-offline-indicator-v2-flag.patch | 8 +- ...emove-disable-pull-to-refresh-effect.patch | 2 +- ...l-of-execution-context-address-space.patch | 42 +- ...script-content-setting-secondary-url.patch | 18 +- build/patches/Show-NTP-at-startup.patch | 24 +- ...tings-for-cookies-javascript-and-ads.patch | 10 +- build/patches/Site-setting-for-images.patch | 20 +- .../Switch-to-fstack-protector-strong.patch | 2 +- ...e-experimental-web-platform-features.patch | 8 +- ...ileSystemAccessPersistentPermissions.patch | 22 +- ...arily-disable-Tab-Group-Sync-Android.patch | 4 +- build/patches/Timezone-customization.patch | 18 +- .../Use-browser-navigation-handler.patch | 28 +- .../Use-list-mode-for-tab-switcher.patch | 16 +- build/patches/User-agent-customization.patch | 42 +- build/patches/Viewport-Protection-flag.patch | 40 +- build/patches/WIN-Disable-updater.patch | 2 +- build/patches/WIN-Fix-log-to-file.patch | 2 +- build/patches/WIN-enable-pdf-plugin.patch | 2 +- ...message-for-unsupported-hardware-aes.patch | 10 +- build/patches/Welcome-screen.patch | 36 +- build/patches/add-browser-policy.patch | 32 +- build/patches/autofill-miscellaneous.patch | 18 +- build/patches/bromite-build-utils.patch | 6 +- build/patches/disable-AdsBlockedInfoBar.patch | 4 +- .../disable-WebView-variations-support.patch | 4 +- ...IPv6-connectivity-probes-to-RIPE-DNS.patch | 2 +- ...ot-block-build-incompatible-profiles.patch | 2 +- .../enable-ftrivial-auto-var-init-zero.patch | 2 +- .../eyeo-133.0.6943.49-android_api.patch | 16 +- .../eyeo-133.0.6943.49-android_settings.patch | 2 +- build/patches/eyeo-133.0.6943.49-base.patch | 66 +- ...yeo-133.0.6943.49-chrome_integration.patch | 70 +- .../eyeo-133.0.6943.49-extension_api.patch | 44 +- .../sharing-hub-always-use-visible-URL.patch | 2 +- ...d-chromium-Disable-intranet-detector.patch | 2 +- ...gled-chromium-Disable-profile-avatar.patch | 4 +- ...romium-Disable-translate-integration.patch | 4 +- ...chromium-Disable-webRTC-log-uploader.patch | 2 +- ...ed-chromium-no-special-hosts-domains.patch | 146 +-- ...RTC-do-not-expose-local-IP-addresses.patch | 2 +- ...iew-Hard-no-to-persistent-histograms.patch | 2 +- 190 files changed, 1870 insertions(+), 2306 deletions(-) diff --git a/build/patches/Add-AllowUserCertificates-flag.patch b/build/patches/Add-AllowUserCertificates-flag.patch index ceada304..a4e93a06 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 -@@ -229,6 +229,7 @@ import org.chromium.content_public.browser.LoadUrlParams; +@@ -233,6 +233,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; -@@ -977,6 +978,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -981,6 +982,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 -@@ -170,6 +170,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -169,6 +169,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &feed::kFeedPerformanceStudy, &feed::kFeedShowSignInCommand, &feed::kFeedSignedOutViewDemotion, @@ -51,15 +51,15 @@ 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 -@@ -160,6 +160,7 @@ public abstract class ChromeFeatureList { - public static final String ACT_USER_BYPASS_UX = "ActUserBypassUx"; +@@ -162,6 +162,7 @@ public abstract class ChromeFeatureList { + "AccountForSuppressedKeyboardInsets"; public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_CUSTOMIZATION_V2 = "AdaptiveButtonInTopToolbarCustomizationV2"; + public static final String ALLOW_USER_CERTIFICATES = "AllowUserCertificates"; public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_PAGE_SUMMARY = "AdaptiveButtonInTopToolbarPageSummary"; - public static final String ALLOW_NEW_INCOGNITO_TAB_INTENTS = "AllowNewIncognitoTabIntents"; -@@ -649,6 +650,8 @@ public abstract class ChromeFeatureList { + public static final String ALLOW_TAB_CLOSING_UPON_MINIMIZATION = +@@ -679,6 +680,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); @@ -68,9 +68,9 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final CachedFlag sAsyncNotificationManager = newCachedFlag(ASYNC_NOTIFICATION_MANAGER, false, true); public static final CachedFlag sAsyncNotificationManagerForDownload = -@@ -862,6 +865,7 @@ public abstract class ChromeFeatureList { - public static final List sFlagsCachedFullBrowserChromium = - List.of( +@@ -940,6 +943,7 @@ public abstract class ChromeFeatureList { + sAccountForSuppressedKeyboardInsets, + sAllowTabClosingUponMinimization, sAndroidAppIntegration, + sAllowUserCertificates, sAndroidAppIntegrationModule, 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 e4eae079..4ae4cb70 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 -@@ -830,6 +830,11 @@ public class KeyboardShortcuts { +@@ -839,6 +839,11 @@ public class KeyboardShortcuts { KeyEvent.KEYCODE_B, (KeyEvent.META_CTRL_ON | KeyEvent.META_SHIFT_ON)); } diff --git a/build/patches/Add-PartialLowEndModeOnMidRangeDevices-flag.patch b/build/patches/Add-PartialLowEndModeOnMidRangeDevices-flag.patch index 718d27e2..3fb10d4f 100644 --- a/build/patches/Add-PartialLowEndModeOnMidRangeDevices-flag.patch +++ b/build/patches/Add-PartialLowEndModeOnMidRangeDevices-flag.patch @@ -14,8 +14,8 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/base/features.cc b/base/features.cc --- a/base/features.cc +++ b/base/features.cc -@@ -133,6 +133,10 @@ BASE_FEATURE(kPostGetMyMemoryStateToBackground, - FEATURE_ENABLED_BY_DEFAULT); +@@ -126,6 +126,10 @@ BASE_FEATURE(kUseSharedRebindServiceConnection, + FEATURE_DISABLED_BY_DEFAULT); #endif // BUILDFLAG(IS_ANDROID) +#if BUILDFLAG(IS_ANDROID) 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 ff8140f8..8c9be8af 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 -@@ -8162,9 +8162,9 @@ +@@ -8356,9 +8356,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 -@@ -257,6 +257,8 @@ void SetRuntimeFeaturesFromChromiumFeatures() { +@@ -253,6 +253,8 @@ void SetRuntimeFeaturesFromChromiumFeatures() { {wf::EnablePaymentApp, raw_ref(features::kServiceWorkerPaymentApps)}, {wf::EnablePeriodicBackgroundSync, raw_ref(features::kPeriodicBackgroundSync)}, diff --git a/build/patches/Add-a-proxy-configuration-page.patch b/build/patches/Add-a-proxy-configuration-page.patch index b5245fdd..98224260 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 -@@ -100,6 +100,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -101,6 +101,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 -@@ -363,6 +363,7 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() { +@@ -372,6 +372,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 -@@ -202,6 +202,8 @@ +@@ -204,6 +204,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 -@@ -1578,6 +1580,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) { +@@ -1613,6 +1615,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 -@@ -226,6 +226,8 @@ static_library("ui") { +@@ -204,6 +204,8 @@ static_library("ui") { "webui/metrics_internals/metrics_internals_ui.h", "webui/net_export_ui.cc", "webui/net_export_ui.h", @@ -673,7 +673,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/ui/webui/chrome_web_ui_configs.cc --- a/chrome/browser/ui/webui/chrome_web_ui_configs.cc +++ b/chrome/browser/ui/webui/chrome_web_ui_configs.cc -@@ -55,6 +55,9 @@ +@@ -57,6 +57,9 @@ #include "extensions/buildflags/buildflags.h" #include "printing/buildflags/buildflags.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 -@@ -406,7 +409,7 @@ void RegisterChromeWebUIConfigs() { +@@ -422,7 +425,7 @@ void RegisterChromeWebUIConfigs() { map.AddWebUIConfig(std::make_unique()); map.AddWebUIConfig(std::make_unique()); #endif @@ -1154,7 +1154,7 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons diff --git a/chrome/common/webui_url_constants.h b/chrome/common/webui_url_constants.h --- a/chrome/common/webui_url_constants.h +++ b/chrome/common/webui_url_constants.h -@@ -163,6 +163,8 @@ inline constexpr char kChromeUINetInternalsHost[] = "net-internals"; +@@ -179,6 +179,8 @@ inline constexpr char kChromeUINetInternalsHost[] = "net-internals"; inline constexpr char kChromeUINetInternalsURL[] = "chrome://net-internals/"; inline constexpr char kChromeUINewTabHost[] = "newtab"; inline constexpr char kChromeUINewTabFooterHost[] = "newtab-footer"; diff --git a/build/patches/Add-an-always-incognito-mode.patch b/build/patches/Add-an-always-incognito-mode.patch index 2d32429c..b383bf23 100644 --- a/build/patches/Add-an-always-incognito-mode.patch +++ b/build/patches/Add-an-always-incognito-mode.patch @@ -101,7 +101,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni --- a/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni -@@ -648,6 +648,7 @@ chrome_java_resources = [ +@@ -646,6 +646,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", @@ -247,7 +247,7 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -73,6 +73,10 @@ import org.chromium.base.task.TaskTraits; +@@ -74,6 +74,10 @@ import org.chromium.base.task.TaskTraits; import org.chromium.build.annotations.UsedByReflection; import org.chromium.cc.input.BrowserControlsState; import org.chromium.chrome.R; @@ -258,7 +258,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.chrome.browser.IntentHandler.ExternalAppId; import org.chromium.chrome.browser.IntentHandler.TabOpenType; import org.chromium.chrome.browser.app.ChromeActivity; -@@ -720,14 +724,19 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -726,14 +730,19 @@ public class ChromeTabbedActivity extends ChromeActivity { Profile profile = mTabModelSelector.getCurrentModel().getProfile(); // For saving non-incognito tab closures for Recent Tabs. @@ -285,7 +285,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct // Defer creation of this helper so it triggers after TabGroupModelFilter observers. mUndoRefocusHelper = new UndoRefocusHelper( -@@ -2798,8 +2807,9 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -2876,8 +2885,9 @@ public class ChromeTabbedActivity extends ChromeActivity { // We determine the model as soon as possible so every systems get initialized coherently. boolean startIncognito = @@ -300,7 +300,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 -@@ -95,6 +95,7 @@ import org.chromium.chrome.browser.compositor.layouts.content.TabContentManagerH +@@ -96,6 +96,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; @@ -308,7 +308,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv import org.chromium.chrome.browser.dom_distiller.DomDistillerUiUtils; import org.chromium.chrome.browser.dom_distiller.ReaderModeManager; import org.chromium.chrome.browser.download.DownloadManagerService; -@@ -1967,6 +1968,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -1980,6 +1981,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity throw new IllegalStateException( "Attempting to access TabCreator before initialization"); } @@ -321,16 +321,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 -@@ -89,6 +89,8 @@ import java.util.ArrayList; +@@ -88,6 +88,8 @@ import java.lang.annotation.Retention; + import java.lang.annotation.RetentionPolicy; import java.util.Iterator; - import java.util.List; +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; + /** * Base implementation of {@link AppMenuPropertiesDelegate} that handles hiding and showing menu * items based on activity state. -@@ -494,8 +496,9 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties +@@ -496,8 +498,9 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties && !isNativePage && !isFileScheme && !isContentScheme @@ -363,7 +363,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr List> groupedItems = new ArrayList<>(); if (mParams.isPage() && shouldShowEmptySpaceContextMenu()) { -@@ -417,7 +421,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -415,7 +419,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { } } if (FirstRunStatus.getFirstRunFlowComplete()) { @@ -424,15 +424,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java -@@ -22,6 +22,7 @@ import org.chromium.base.supplier.ObservableSupplier; +@@ -21,6 +21,7 @@ import org.chromium.base.supplier.ObservableSupplier; import org.chromium.base.supplier.Supplier; import org.chromium.chrome.R; import org.chromium.chrome.browser.ActivityTabProvider; +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; import org.chromium.chrome.browser.DefaultBrowserInfo; import org.chromium.chrome.browser.app.appmenu.AppMenuPropertiesDelegateImpl; - import org.chromium.chrome.browser.app.appmenu.DividerLineMenuItemViewBinder; -@@ -224,6 +225,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat + import org.chromium.chrome.browser.bookmarks.BookmarkModel; +@@ -200,6 +201,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat openInChromeItemVisible = false; tryAddingReadAloud = false; } @@ -445,7 +445,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java -@@ -93,6 +93,9 @@ import org.chromium.components.embedder_support.util.UrlConstants; +@@ -98,6 +98,9 @@ import org.chromium.components.embedder_support.util.UrlConstants; import org.chromium.device.mojom.ScreenOrientationLockType; import org.chromium.net.NetId; @@ -455,7 +455,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; -@@ -1197,6 +1200,13 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid +@@ -1250,6 +1253,13 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid return getInitialActivityWidth() > 0; } @@ -491,7 +491,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"; -@@ -302,7 +307,13 @@ public class DownloadUtils { +@@ -303,7 +308,13 @@ public class DownloadUtils { public static boolean isAllowedToDownloadPage(Tab tab) { if (tab == null) return false; @@ -887,16 +887,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver.java -@@ -29,6 +29,8 @@ import java.util.HashMap; +@@ -32,6 +32,8 @@ import java.util.HashMap; import java.util.List; import java.util.Set; +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; + /** A tab model observer for managing bulk closures. */ + @NullMarked public class HistoricalTabModelObserver implements TabModelObserver { - private final TabGroupModelFilter mTabGroupModelFilter; -@@ -77,9 +79,10 @@ public class HistoricalTabModelObserver implements TabModelObserver { +@@ -81,9 +83,10 @@ public class HistoricalTabModelObserver implements TabModelObserver { if (tabs.isEmpty() || !canRestore) return; if (tabs.size() == 1) { @@ -911,7 +911,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/tab/tab_restore/HistoricalTabSaver.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaver.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaver.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaver.java -@@ -32,7 +32,7 @@ public interface HistoricalTabSaver { +@@ -34,7 +34,7 @@ public interface HistoricalTabSaver { * * @param tab The {@link Tab} to create an entry for. */ @@ -923,16 +923,16 @@ 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/tab/tab_restore/HistoricalTabSaverImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaverImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaverImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaverImpl.java -@@ -29,6 +29,8 @@ import java.util.Arrays; +@@ -30,6 +30,8 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; + /** Creates historical entries in TabRestoreService. */ + @NullMarked @JNINamespace("historical_tab_saver") - public class HistoricalTabSaverImpl implements HistoricalTabSaver { -@@ -85,10 +87,10 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { +@@ -87,10 +89,10 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { } @Override @@ -945,7 +945,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore } @Override -@@ -149,7 +151,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { +@@ -151,7 +153,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { // If there is only a single valid tab remaining save it individually. if (validEntries.size() == 1 && validEntries.get(0).isSingleTab()) { @@ -954,7 +954,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore return; } -@@ -189,14 +191,15 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { +@@ -191,14 +193,15 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { CollectionUtil.integerCollectionToIntArray(savedStateVersions)); } @@ -972,7 +972,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore } /** -@@ -204,7 +207,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { +@@ -206,7 +209,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) { @@ -993,7 +993,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java -@@ -24,6 +24,7 @@ import org.chromium.base.supplier.Supplier; +@@ -26,6 +26,7 @@ import org.chromium.base.supplier.Supplier; import org.chromium.build.BuildConfig; import org.chromium.build.annotations.Nullable; import org.chromium.chrome.R; @@ -1001,7 +1001,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab import org.chromium.chrome.browser.ActivityTabProvider; import org.chromium.chrome.browser.ai.AiAssistantService; import org.chromium.chrome.browser.app.appmenu.AppMenuPropertiesDelegateImpl; -@@ -316,6 +317,13 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm +@@ -371,6 +372,13 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm } private void prepareCommonMenuItems(Menu menu, @MenuGroup int menuGroup, boolean isIncognito) { @@ -1015,7 +1015,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab // 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; -@@ -375,7 +383,14 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm +@@ -430,7 +438,14 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm } if (item.getItemId() == R.id.recent_tabs_menu_id) { @@ -1034,7 +1034,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java -@@ -207,6 +207,8 @@ import org.chromium.ui.InsetObserver; +@@ -214,6 +214,8 @@ import org.chromium.ui.InsetObserver; import org.chromium.ui.UiUtils; import org.chromium.ui.base.ActivityWindowAndroid; import org.chromium.ui.base.DeviceFormFactor; @@ -1042,8 +1042,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; import org.chromium.ui.base.IntentRequestTracker; import org.chromium.ui.base.LocalizationUtils; - import org.chromium.ui.dragdrop.DragDropGlobalState; -@@ -1182,7 +1184,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { + import org.chromium.ui.display.DisplayUtil; +@@ -1212,7 +1214,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { () -> { mTabCreatorManagerSupplier .get() @@ -1055,7 +1055,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 -@@ -49,6 +49,10 @@ import org.chromium.ui.base.PageTransition; +@@ -48,6 +48,10 @@ import org.chromium.ui.base.PageTransition; import org.chromium.ui.base.WindowAndroid; import org.chromium.url.GURL; @@ -1066,7 +1066,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome /** This class creates various kinds of new tabs and adds them to the right {@link TabModel}. */ public class ChromeTabCreator extends TabCreator implements NeedsTabModel, NeedsTabModelOrderController { -@@ -523,7 +527,6 @@ public class ChromeTabCreator extends TabCreator +@@ -545,7 +549,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) { @@ -1123,7 +1123,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPer diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java -@@ -47,6 +47,7 @@ import org.chromium.base.supplier.Supplier; +@@ -49,6 +49,7 @@ import org.chromium.base.supplier.Supplier; import org.chromium.cc.input.BrowserControlsState; import org.chromium.chrome.R; import org.chromium.chrome.browser.ActivityTabProvider; @@ -1131,7 +1131,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar import org.chromium.chrome.browser.IntentHandler; import org.chromium.chrome.browser.app.tabwindow.TabWindowManagerSingleton; import org.chromium.chrome.browser.back_press.BackPressManager; -@@ -807,7 +808,7 @@ public class ToolbarManager +@@ -828,7 +829,7 @@ public class ToolbarManager TraceEvent.end("isOfflinePage"); return ret; } @@ -1152,16 +1152,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappI /** Stores info about a web app. */ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider { private final Drawable mCloseButtonIcon; -@@ -45,6 +47,8 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider - private final ColorProviderImpl mColorProvider; +@@ -46,6 +48,8 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider private final ColorProviderImpl mDarkColorProvider; + private @DisplayMode.EnumType int mResolvedDisplayMode = DisplayMode.UNDEFINED; + private boolean mIsIncognito = false; + /** Returns the toolbar color to use if a custom color is not specified by the webapp. */ public static int getDefaultToolbarColor() { return Color.WHITE; -@@ -80,6 +84,10 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider +@@ -81,6 +85,10 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider mWebappExtras = webappExtras; mWebApkExtras = webApkExtras; mActivityType = (webApkExtras != null) ? ActivityType.WEB_APK : ActivityType.WEBAPP; @@ -1172,7 +1172,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappI } @Override -@@ -175,6 +183,13 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider +@@ -176,6 +184,13 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider return mWebApkExtras; } @@ -1255,7 +1255,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 -@@ -409,6 +409,15 @@ ChromeAutocompleteProviderClient::GetTabGroupSyncService() const { +@@ -418,6 +418,15 @@ ChromeAutocompleteProviderClient::GetTabGroupSyncService() const { return tab_groups::TabGroupSyncServiceFactory::GetForProfile(profile_); } @@ -1310,15 +1310,15 @@ diff --git a/chrome/browser/autocomplete/remote_suggestions_service_factory.cc b diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browser/bookmarks/android/bookmark_bridge.cc --- a/chrome/browser/bookmarks/android/bookmark_bridge.cc +++ b/chrome/browser/bookmarks/android/bookmark_bridge.cc -@@ -35,6 +35,7 @@ - #include "base/numerics/safe_conversions.h" +@@ -37,6 +37,7 @@ + #include "base/strings/strcat.h" #include "base/strings/utf_string_conversions.h" #include "base/uuid.h" +#include "chrome/common/pref_names.h" #include "chrome/browser/bookmarks/bookmark_model_factory.h" #include "chrome/browser/bookmarks/managed_bookmark_service_factory.h" #include "chrome/browser/commerce/shopping_service_factory.h" -@@ -215,6 +216,12 @@ ScopedJavaLocalRef JNI_BookmarkBridge_NativeGetForProfile( +@@ -265,6 +266,12 @@ ScopedJavaLocalRef JNI_BookmarkBridge_NativeGetForProfile( if (!profile) return nullptr; @@ -1710,7 +1710,7 @@ diff --git a/chrome/browser/offline_pages/recent_tab_helper.cc b/chrome/browser/ diff --git a/chrome/browser/offline_pages/recent_tab_helper.h b/chrome/browser/offline_pages/recent_tab_helper.h --- a/chrome/browser/offline_pages/recent_tab_helper.h +++ b/chrome/browser/offline_pages/recent_tab_helper.h -@@ -106,8 +106,10 @@ class RecentTabHelper +@@ -105,8 +105,10 @@ class RecentTabHelper bool EnsureInitialized(); void ContinueSnapshotWithIdsToPurge(SnapshotProgressInfo* snapshot_info, @@ -1721,7 +1721,7 @@ diff --git a/chrome/browser/offline_pages/recent_tab_helper.h b/chrome/browser/o OfflinePageModel::DeletePageResult result); void SavePageCallback(SnapshotProgressInfo* snapshot_info, OfflinePageModel::SavePageResult result, -@@ -129,6 +131,9 @@ class RecentTabHelper +@@ -128,6 +130,9 @@ class RecentTabHelper // Not page-specific. bool snapshots_enabled_ = false; @@ -1755,7 +1755,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 -@@ -252,6 +252,7 @@ +@@ -254,6 +254,7 @@ #if BUILDFLAG(IS_ANDROID) #include "chrome/browser/accessibility/accessibility_prefs/android/accessibility_prefs_controller.h" @@ -1763,7 +1763,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" -@@ -2033,6 +2034,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -2068,6 +2069,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, usage_stats::UsageStatsBridge::RegisterProfilePrefs(registry); variations::VariationsService::RegisterProfilePrefs(registry); webapps::InstallPromptPrefs::RegisterProfilePrefs(registry); @@ -1936,7 +1936,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import java.util.ArrayList; import java.util.List; import java.util.function.BooleanSupplier; -@@ -1223,10 +1228,13 @@ class LocationBarMediator +@@ -1232,10 +1237,13 @@ class LocationBarMediator } Tab tab = mLocationBarDataProvider.getTab(); if (tab == null) return false; @@ -1954,7 +1954,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 -@@ -6647,6 +6647,31 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -6682,6 +6682,31 @@ To change this setting, BEGIN_LINKdelete the Chrome d Cookies, cache, and other site data @@ -1989,7 +1989,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java -@@ -163,6 +163,7 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro +@@ -164,6 +164,7 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro protected GURL mVisibleGurl = GURL.emptyGURL(); protected String mFormattedFullUrl; protected String mUrlForDisplay; @@ -1997,7 +1997,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow // notifyUrlChanged and notifySecurityStateChanged are usually called 3 times across a same // document navigation. The first call is usually necessary, which updates the UrlBar to reflect -@@ -186,7 +187,9 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro +@@ -187,7 +188,9 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro Context context, NewTabPageDelegate newTabPageDelegate, UrlFormatter urlFormatter, @@ -2078,7 +2078,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 -@@ -4102,6 +4102,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] = +@@ -4106,6 +4106,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] = "net.out_of_process_system_dns_resolution_enabled"; #endif // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) @@ -2094,7 +2094,7 @@ diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h diff --git a/components/content_settings/core/browser/content_settings_pref_provider.cc b/components/content_settings/core/browser/content_settings_pref_provider.cc --- a/components/content_settings/core/browser/content_settings_pref_provider.cc +++ b/components/content_settings/core/browser/content_settings_pref_provider.cc -@@ -114,10 +114,12 @@ void PrefProvider::RegisterProfilePrefs( +@@ -111,10 +111,12 @@ void PrefProvider::RegisterProfilePrefs( PrefProvider::PrefProvider(PrefService* prefs, bool off_the_record, @@ -2107,7 +2107,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov store_last_modified_(store_last_modified), clock_(base::DefaultClock::GetInstance()) { TRACE_EVENT_BEGIN("startup", "PrefProvider::PrefProvider"); -@@ -140,11 +142,13 @@ PrefProvider::PrefProvider(PrefService* prefs, +@@ -137,11 +139,13 @@ PrefProvider::PrefProvider(PrefService* prefs, WebsiteSettingsRegistry* website_settings = WebsiteSettingsRegistry::GetInstance(); for (const WebsiteSettingsInfo* info : *website_settings) { @@ -2144,7 +2144,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov diff --git a/components/content_settings/core/browser/host_content_settings_map.cc b/components/content_settings/core/browser/host_content_settings_map.cc --- a/components/content_settings/core/browser/host_content_settings_map.cc +++ b/components/content_settings/core/browser/host_content_settings_map.cc -@@ -268,6 +268,7 @@ struct ContentSettingEntry { +@@ -269,6 +269,7 @@ struct ContentSettingEntry { HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, bool is_off_the_record, @@ -2152,7 +2152,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map. bool store_last_modified, bool restore_session, bool should_record_metrics) -@@ -277,6 +278,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, +@@ -278,6 +279,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, #endif prefs_(prefs), is_off_the_record_(is_off_the_record), @@ -2160,7 +2160,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map. store_last_modified_(store_last_modified), allow_invalid_secondary_pattern_for_testing_(false), clock_(base::DefaultClock::GetInstance()) { -@@ -290,7 +292,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, +@@ -291,7 +293,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, policy_provider->AddObserver(this); auto pref_provider_ptr = std::make_unique( @@ -2180,7 +2180,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map. bool store_last_modified, bool restore_session, bool should_record_metrics); -@@ -505,6 +506,8 @@ class HostContentSettingsMap : public content_settings::Observer, +@@ -511,6 +512,8 @@ class HostContentSettingsMap : public content_settings::Observer, // Whether this settings map is for an incognito or guest session. bool is_off_the_record_; @@ -2192,7 +2192,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map. diff --git a/components/omnibox/browser/autocomplete_provider_client.cc b/components/omnibox/browser/autocomplete_provider_client.cc --- a/components/omnibox/browser/autocomplete_provider_client.cc +++ b/components/omnibox/browser/autocomplete_provider_client.cc -@@ -53,3 +53,7 @@ base::WeakPtr +@@ -65,3 +65,7 @@ base::WeakPtr AutocompleteProviderClient::GetWeakPtr() { return nullptr; } @@ -2214,7 +2214,7 @@ diff --git a/components/omnibox/browser/autocomplete_provider_client.h b/compone diff --git a/components/omnibox/browser/base_search_provider.cc b/components/omnibox/browser/base_search_provider.cc --- a/components/omnibox/browser/base_search_provider.cc +++ b/components/omnibox/browser/base_search_provider.cc -@@ -392,7 +392,7 @@ bool BaseSearchProvider::CanSendSuggestRequest( +@@ -413,7 +413,7 @@ bool BaseSearchProvider::CanSendSuggestRequest( // Don't make a suggest request if in incognito mode; unless for the Lens // searchboxes. @@ -2226,7 +2226,7 @@ diff --git a/components/omnibox/browser/base_search_provider.cc b/components/omn diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/browser/search_provider.cc --- a/components/omnibox/browser/search_provider.cc +++ b/components/omnibox/browser/search_provider.cc -@@ -913,7 +913,8 @@ std::unique_ptr SearchProvider::CreateSuggestLoader( +@@ -912,7 +912,8 @@ std::unique_ptr SearchProvider::CreateSuggestLoader( // is required. // Request for suggestions in OTR contexts is not allowed; except for the Lens // searchboxes. diff --git a/build/patches/Add-cromite-flags-support.patch b/build/patches/Add-cromite-flags-support.patch index e53aac19..6723bf82 100644 --- a/build/patches/Add-cromite-flags-support.patch +++ b/build/patches/Add-cromite-flags-support.patch @@ -144,7 +144,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 -@@ -177,6 +177,8 @@ use_epoll = is_linux || is_chromeos || is_android +@@ -178,6 +178,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") { @@ -153,7 +153,7 @@ diff --git a/base/BUILD.gn b/base/BUILD.gn sources = [ "allocator/allocator_check.cc", "allocator/allocator_check.h", -@@ -1033,7 +1035,7 @@ component("base") { +@@ -1036,7 +1038,7 @@ component("base") { "//build/config/compiler:wglobal_constructors", ] @@ -451,24 +451,24 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java -@@ -37,7 +37,7 @@ public class HomepageSettings extends ChromeBaseSettingsFragment { +@@ -38,7 +38,7 @@ public class HomepageSettings extends ChromeBaseSettingsFragment { private final ObservableSupplierImpl mPageTitle = new ObservableSupplierImpl<>(); @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) { mHomepageManager = HomepageManager.getInstance(); mPageTitle.set(getString(R.string.options_homepage_title)); 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 -@@ -126,7 +126,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -127,7 +127,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment } @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) { mPageTitle.set(getString(R.string.prefs_privacy_security)); SettingsUtils.addPreferencesFromResource(this, R.xml.privacy_preferences); @@ -553,10 +553,10 @@ 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; -@@ -87,6 +92,40 @@ import java.util.Locale; - */ - public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -89,6 +94,40 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity implements PreferenceFragmentCompat.OnPreferenceStartFragmentCallback, SnackbarManageable { + private static final String TAG = "SettingsActivity"; + + private static class RequestRestartDelegate implements ChromeBaseSettingsFragment.RequireRestartDelegate { + private OneshotSupplier mSnackbarManagerSupplier; + private Activity mActivity; @@ -594,7 +594,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"; -@@ -153,7 +192,8 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -155,7 +194,8 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity mProfile, mSnackbarManagerSupplier, mBottomSheetControllerSupplier, @@ -633,7 +633,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 -@@ -405,6 +405,10 @@ using flags_ui::kOsLinux; +@@ -406,6 +406,10 @@ using flags_ui::kOsLinux; using flags_ui::kOsMac; using flags_ui::kOsWin; @@ -644,9 +644,9 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc namespace about_flags { namespace { -@@ -4592,6 +4596,10 @@ const FeatureEntry::FeatureVariation - {"(retroactive)", kInvalidateChoiceOnRestoreIsRetroactiveOption, - std::size(kInvalidateChoiceOnRestoreIsRetroactiveOption), nullptr}}; +@@ -4705,6 +4709,10 @@ const FeatureEntry::FeatureVariation kHistorySyncOptinExpansionPillVariations[] + nullptr}}; + #endif // BUILDFLAG(ENABLE_DICE_SUPPORT) +#define FEATURE_PARAM_SECTION +#include "cromite_flags/chrome_browser_about_flags_cc.inc" @@ -655,7 +655,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. -@@ -4618,6 +4626,9 @@ const FeatureEntry::FeatureVariation +@@ -4731,6 +4739,9 @@ const FeatureEntry::FeatureVariation kHistorySyncOptinExpansionPillVariations[] const FeatureEntry kFeatureEntries[] = { // Include generated flags for flag unexpiry; see //docs/flag_expiry.md and // //tools/flags/generate_unexpire_flags.py. @@ -668,7 +668,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 -@@ -349,4 +349,5 @@ BASE_FEATURE(kRemovalOfIWAsFromTabCapture, +@@ -359,4 +359,5 @@ BASE_FEATURE(kRemovalOfIWAsFromTabCapture, "RemovalOfIWAsFromTabCapture", base::FEATURE_ENABLED_BY_DEFAULT); @@ -677,7 +677,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 -@@ -133,6 +133,7 @@ BASE_DECLARE_FEATURE(kRemovalOfIWAsFromTabCapture); +@@ -135,6 +135,7 @@ BASE_DECLARE_FEATURE(kRemovalOfIWAsFromTabCapture); // module, e.g. // //chrome/browser//features.h // @@ -727,7 +727,7 @@ diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -1262,5 +1262,6 @@ BASE_FEATURE(kWebOtpCrossDeviceSimpleString, +@@ -1345,5 +1345,6 @@ BASE_FEATURE(kWebOtpCrossDeviceSimpleString, "WebOtpCrossDeviceSimpleString", base::FEATURE_DISABLED_BY_DEFAULT); @@ -737,7 +737,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 -@@ -263,6 +263,7 @@ constexpr base::FeatureParam kQuickDeleteAndroidSurveyTriggerId( +@@ -285,6 +285,7 @@ constexpr base::FeatureParam kQuickDeleteAndroidSurveyTriggerId( "trigger_id", /*default_value=*/""); @@ -759,16 +759,16 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f import java.util.List; import java.util.Map; -@@ -847,7 +851,7 @@ public abstract class ChromeFeatureList { +@@ -923,7 +927,7 @@ public abstract class ChromeFeatureList { public static final CachedFlag sWebApkMinShellApkVersion = newCachedFlag(WEB_APK_MIN_SHELL_APK_VERSION, true); - public static final List sFlagsCachedFullBrowser = + public static final List sFlagsCachedFullBrowserChromium = List.of( - sAndroidAppIntegration, - sAndroidAppIntegrationModule, -@@ -952,6 +956,13 @@ public abstract class ChromeFeatureList { + sAccountForSuppressedKeyboardInsets, + sAllowTabClosingUponMinimization, +@@ -1047,6 +1051,13 @@ public abstract class ChromeFeatureList { sUseLibunwindstackNativeUnwinderAndroid, sWebApkMinShellApkVersion); @@ -958,9 +958,9 @@ 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 -@@ -397,4 +397,5 @@ BASE_FEATURE(kTabStripBrowserApi, - "TabStripBrowserApi", - base::FEATURE_DISABLED_BY_DEFAULT); +@@ -500,4 +500,5 @@ bool HasTabSearchToolbarButton() { + return has_tab_search_toolbar_button; + } +#include "cromite_flags/chrome_browser_ui_ui_features_cc.inc" } // namespace features @@ -999,7 +999,7 @@ diff --git a/chrome/browser/unexpire_flags.cc b/chrome/browser/unexpire_flags.cc diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc --- a/chrome/common/chrome_features.cc +++ b/chrome/common/chrome_features.cc -@@ -1733,4 +1733,5 @@ BASE_FEATURE(kDisableShortcutsEnableDiy, +@@ -1795,4 +1795,5 @@ BASE_FEATURE(kDisableShortcutsEnableDiy, "DisableShortcutsEnableDiy", base::FEATURE_ENABLED_BY_DEFAULT); @@ -1032,7 +1032,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 -@@ -29,9 +29,11 @@ import org.chromium.components.omnibox.OmniboxFeatures; +@@ -28,9 +28,11 @@ import org.chromium.components.omnibox.OmniboxFeatures; import org.chromium.content_public.browser.ContentFeatureList; import org.chromium.content_public.browser.ContentFeatureMap; @@ -1045,7 +1045,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c 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 = -@@ -70,7 +72,7 @@ public class AccessibilitySettings extends PreferenceFragmentCompat +@@ -69,7 +71,7 @@ public class AccessibilitySettings extends PreferenceFragmentCompat } @Override @@ -1150,8 +1150,8 @@ diff --git a/components/components_strings.grd b/components/components_strings.g diff --git a/components/content_settings/core/common/features.cc b/components/content_settings/core/common/features.cc --- a/components/content_settings/core/common/features.cc +++ b/components/content_settings/core/common/features.cc -@@ -163,5 +163,6 @@ BASE_FEATURE(kContentSettingsPartitioning, - "ContentSettingsPartitioning", +@@ -167,5 +167,6 @@ BASE_FEATURE(kForceAllowStorageAccess, + "ForceAllowStorageAccess", base::FEATURE_DISABLED_BY_DEFAULT); +#include "cromite_flags/components_content_settings_core_common_features_cc.inc" @@ -1186,7 +1186,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 -@@ -175,4 +175,5 @@ BASE_FEATURE(kImprovedPasswordChangeService, +@@ -183,4 +183,5 @@ BASE_FEATURE(kImprovedPasswordChangeService, "ImprovedPasswordChangeService", base::FEATURE_DISABLED_BY_DEFAULT); @@ -1195,7 +1195,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 -@@ -133,6 +133,8 @@ BASE_FEATURE(kOsAdditionalSecurityPermissionKillSwitch, +@@ -146,6 +146,8 @@ BASE_FEATURE(kOsAdditionalSecurityPermissionKillSwitch, "OsAdditionalSecurityPermissionKillSwitch", base::FEATURE_DISABLED_BY_DEFAULT); #endif @@ -1249,7 +1249,7 @@ diff --git a/components/variations/synthetic_trials_active_group_id_provider.h b diff --git a/components/webui/flags/flags_state.cc b/components/webui/flags/flags_state.cc --- a/components/webui/flags/flags_state.cc +++ b/components/webui/flags/flags_state.cc -@@ -377,6 +377,21 @@ void FlagsState::GetSwitchesAndFeaturesFromFlags( +@@ -376,6 +376,21 @@ void FlagsState::GetSwitchesAndFeaturesFromFlags( for (const std::string& entry_name : enabled_entries) { const auto& entry_it = name_to_switch_map.find(entry_name); @@ -1268,10 +1268,10 @@ diff --git a/components/webui/flags/flags_state.cc b/components/webui/flags/flag + } + NOTREACHED(); + } - CHECK(entry_it != name_to_switch_map.end(), base::NotFatalUntil::M130); + CHECK(entry_it != name_to_switch_map.end()); const SwitchEntry& entry = entry_it->second; -@@ -710,6 +725,27 @@ void FlagsState::GetFlagFeatureEntries( +@@ -709,6 +724,27 @@ void FlagsState::GetFlagFeatureEntries( data.Set("links", std::move(links)); } @@ -1299,7 +1299,7 @@ diff --git a/components/webui/flags/flags_state.cc b/components/webui/flags/flag switch (entry.type) { case FeatureEntry::SINGLE_VALUE: case FeatureEntry::SINGLE_DISABLE_VALUE: -@@ -837,6 +873,16 @@ void FlagsState::AddSwitchesToCommandLine( +@@ -836,6 +872,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()) { @@ -1316,7 +1316,7 @@ diff --git a/components/webui/flags/flags_state.cc b/components/webui/flags/flag NOTREACHED(); } -@@ -1093,6 +1139,14 @@ const FeatureEntry* FlagsState::FindFeatureEntryByName( +@@ -1092,6 +1138,14 @@ const FeatureEntry* FlagsState::FindFeatureEntryByName( bool FlagsState::IsSupportedFeature(const FlagsStorage* storage, const std::string& name, int platform_mask) const { @@ -1331,7 +1331,7 @@ diff --git a/components/webui/flags/flags_state.cc b/components/webui/flags/flag for (const auto& entry : feature_entries_) { DCHECK(entry.IsValid()); if (!(entry.supported_platforms & platform_mask)) { -@@ -1131,6 +1185,11 @@ void FlagsState::SetFlags( +@@ -1130,6 +1184,11 @@ void FlagsState::SetFlags( FindFeatureEntryByName(feature_internal_name); // Since this flag is currently enabled, we know for sure that we can find // its feature entry using its internal name. @@ -1628,7 +1628,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 -@@ -549,4 +549,5 @@ BASE_FEATURE(kLimitCrossOriginNonActivatedPaintHolding, +@@ -596,4 +596,5 @@ BASE_FEATURE(kDisallowRasterInterfaceWithoutSkiaBackend, // Please keep features in alphabetical order. @@ -1637,7 +1637,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 -@@ -1506,4 +1506,5 @@ bool IsPushSubscriptionChangeEventEnabled() { +@@ -1521,4 +1521,5 @@ bool IsPushSubscriptionChangeEventEnabled() { features::kPushSubscriptionChangeEventOnResubscribe); } @@ -1646,7 +1646,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 -@@ -357,6 +357,7 @@ CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForOutOfProcess(); +@@ -359,6 +359,7 @@ CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForOutOfProcess(); CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForBrowserProcess(); CONTENT_EXPORT bool IsPushSubscriptionChangeEventEnabled(); @@ -1992,7 +1992,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 -@@ -1830,5 +1830,5 @@ uint32_t GetPassthroughAudioFormats() { +@@ -1843,5 +1843,5 @@ uint32_t GetPassthroughAudioFormats() { return 0; #endif // BUILDFLAG(ENABLE_PASSTHROUGH_AUDIO_CODECS) } @@ -2002,7 +2002,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 -@@ -570,5 +570,5 @@ MEDIA_EXPORT bool IsOutOfProcessVideoDecodingEnabled(); +@@ -569,5 +569,5 @@ MEDIA_EXPORT bool IsOutOfProcessVideoDecodingEnabled(); MEDIA_EXPORT uint32_t GetPassthroughAudioFormats(); } // namespace media @@ -2012,7 +2012,7 @@ 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 -@@ -779,4 +779,5 @@ BASE_FEATURE(kRestrictAbusePortsOnLocalhost, +@@ -784,4 +784,5 @@ BASE_FEATURE(kRestrictAbusePortsOnLocalhost, "RestrictAbusePortsOnLocalhost", base::FEATURE_DISABLED_BY_DEFAULT); @@ -2032,18 +2032,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 -@@ -614,4 +614,5 @@ BASE_FEATURE(kDeviceBoundSessionAccessObserverSharedRemote, - - BASE_FEATURE(kCSPScriptSrcV2, "ScriptSrcV2", base::FEATURE_DISABLED_BY_DEFAULT); +@@ -617,4 +617,5 @@ BASE_FEATURE_PARAM(size_t, + /*name=*/"max_size", + 1'000'000); +#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 -@@ -329,6 +329,7 @@ BASE_DECLARE_FEATURE(kDeviceBoundSessionAccessObserverSharedRemote); +@@ -340,6 +340,7 @@ BASE_DECLARE_FEATURE_PARAM(size_t, kSharedDictionaryCacheSize); COMPONENT_EXPORT(NETWORK_CPP_FLAGS_AND_SWITCHES) - BASE_DECLARE_FEATURE(kCSPScriptSrcV2); + BASE_DECLARE_FEATURE_PARAM(size_t, kSharedDictionaryCacheMaxSizeBytes); +#include "cromite_flags/services_network_public_cpp_features_h.inc" } // namespace network::features @@ -2052,7 +2052,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 -@@ -2931,4 +2931,5 @@ bool IsLinkPreviewTriggerTypeEnabled(LinkPreviewTriggerType type) { +@@ -2912,4 +2912,5 @@ bool IsLinkPreviewTriggerTypeEnabled(LinkPreviewTriggerType type) { // // DO NOT ADD NEW FEATURES HERE. @@ -2061,7 +2061,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 -@@ -1910,6 +1910,7 @@ BLINK_COMMON_EXPORT bool IsUpdateComplexSafaAreaConstraintsEnabled(); +@@ -1896,6 +1896,7 @@ BLINK_COMMON_EXPORT bool IsUpdateComplexSafaAreaConstraintsEnabled(); // // DO NOT ADD NEW FEATURES HERE. @@ -2072,18 +2072,18 @@ diff --git a/third_party/blink/public/common/features.h b/third_party/blink/publ diff --git a/ui/base/ui_base_features.cc b/ui/base/ui_base_features.cc --- a/ui/base/ui_base_features.cc +++ b/ui/base/ui_base_features.cc -@@ -472,4 +472,5 @@ BASE_FEATURE(kClipboardChangeEvent, - "ClipboardChangeEvent", - base::FEATURE_DISABLED_BY_DEFAULT); +@@ -506,4 +506,5 @@ bool IsPixelCanvasRecordingEnabled() { + return base::FeatureList::IsEnabled(features::kEnablePixelCanvasRecording); + } +#include "cromite_flags/ui_base_features_cc.inc" } // namespace features diff --git a/ui/base/ui_base_features.h b/ui/base/ui_base_features.h --- a/ui/base/ui_base_features.h +++ b/ui/base/ui_base_features.h -@@ -240,6 +240,7 @@ BASE_DECLARE_FEATURE(kAsyncFullscreenWindowState); - COMPONENT_EXPORT(UI_BASE_FEATURES) - BASE_DECLARE_FEATURE(kClipboardChangeEvent); +@@ -252,6 +252,7 @@ BASE_DECLARE_FEATURE(kEnablePixelCanvasRecording); + + bool COMPONENT_EXPORT(UI_BASE_FEATURES) IsPixelCanvasRecordingEnabled(); +#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 0032d282..886e7f4b 100644 --- a/build/patches/Add-custom-tab-intents-privacy-option.patch +++ b/build/patches/Add-custom-tab-intents-privacy-option.patch @@ -57,7 +57,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java --- a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java -@@ -65,6 +65,9 @@ import java.lang.annotation.Retention; +@@ -61,6 +61,9 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.Set; @@ -67,7 +67,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis /** * Dispatches incoming intents to the appropriate activity based on the current configuration and * Intent fired. -@@ -306,6 +309,9 @@ public class LaunchIntentDispatcher { +@@ -263,6 +266,9 @@ public class LaunchIntentDispatcher { */ public static boolean isCustomTabIntent(Intent intent) { if (intent == null) return false; @@ -77,7 +77,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis Log.w( TAG, "CustomTabsIntent#shouldAlwaysUseBrowserUI() = " -@@ -334,6 +340,10 @@ public class LaunchIntentDispatcher { +@@ -291,6 +297,10 @@ public class LaunchIntentDispatcher { // Make sure the result of the CustomTabActivity is forwarded to the client. newIntent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT); @@ -88,7 +88,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis // Since configureIntentForResizableCustomTab() might change the componenet/class // associated with the passed intent, it needs to be called after #setClassName(context, // CustomTabActivity.class.getName()); -@@ -530,6 +540,17 @@ public class LaunchIntentDispatcher { +@@ -483,6 +493,17 @@ public class LaunchIntentDispatcher { if (Intent.ACTION_VIEW.equals(newIntent.getAction()) && !IntentHandler.wasIntentSenderChrome(newIntent)) { @@ -109,7 +109,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java -@@ -1204,7 +1204,9 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid +@@ -1257,7 +1257,9 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid public @CustomTabProfileType int getCustomTabMode() { return AlwaysIncognitoLinkInterceptor.isAlwaysIncognito() ? CustomTabProfileType.INCOGNITO @@ -123,7 +123,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 -@@ -979,6 +979,7 @@ public class CustomTabsConnection { +@@ -968,6 +968,7 @@ public class CustomTabsConnection { PostTask.postTask( TaskTraits.UI_DEFAULT, () -> { @@ -144,7 +144,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Inco /** * A model class that parses the incoming intent for incognito Custom Tabs specific customization * data. -@@ -118,6 +121,9 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD +@@ -121,6 +124,9 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD } private static boolean isIntentFromThirdPartyAllowed() { @@ -154,7 +154,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Inco return ChromeFeatureList.sCctIncognitoAvailableToThirdParty.isEnabled(); } -@@ -217,6 +223,10 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD +@@ -220,6 +226,10 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD } public static boolean isValidIncognitoIntent(Intent intent, boolean recordMetrics) { @@ -165,7 +165,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() -@@ -326,6 +336,10 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD +@@ -329,6 +339,10 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD @Override public @CustomTabProfileType int getCustomTabMode() { @@ -179,7 +179,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Inco diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -79,6 +79,15 @@ import org.chromium.ui.text.SpanApplier; +@@ -80,6 +80,15 @@ import org.chromium.ui.text.SpanApplier; import java.util.concurrent.TimeUnit; import java.util.function.Consumer; @@ -195,7 +195,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import androidx.preference.PreferenceCategory; import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager; import org.chromium.base.shared_preferences.SharedPreferencesManager; -@@ -148,6 +157,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -149,6 +158,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment startTag, endTag, new ChromeClickableSpan(context, onClickCallback)); } @@ -203,9 +203,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting + private ChromeSwitchPreference openExternalLinksPref; + @Override - public void onCreatePreferencesCromite(Bundle savedInstanceState, String rootKey) { + public void onCreatePreferencesCromite(@Nullable Bundle savedInstanceState, @Nullable String rootKey) { mPageTitle.set(getString(R.string.prefs_privacy_security)); -@@ -379,6 +391,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -376,6 +388,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment new SpanApplier.SpanInfo("", "", servicesLink)); } @@ -215,7 +215,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(); -@@ -399,6 +414,31 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -396,6 +411,31 @@ public class PrivacySettings extends ChromeBaseSettingsFragment } else if (PREF_SEARCH_SUGGESTIONS.equals(key)) { UserPrefs.get(getProfile()) .setBoolean(Pref.SEARCH_SUGGEST_ENABLED, (boolean) newValue); @@ -247,7 +247,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting } return true; } -@@ -431,6 +471,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -428,6 +468,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment UserPrefs.get(getProfile()).getBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED)); } @@ -267,7 +267,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -956,7 +956,7 @@ BASE_FEATURE(kMagicStackAndroid, +@@ -1017,7 +1017,7 @@ BASE_FEATURE(kMagicStackAndroid, // Enables an experimental feature which forces mayLaunchUrl to use a different // storage partition. This may reduce performance. This should not be enabled by // default. @@ -279,8 +279,8 @@ 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 -@@ -773,6 +773,8 @@ public abstract class ChromeFeatureList { - public static final CachedFlag sMiniOriginBar = newCachedFlag(MINI_ORIGIN_BAR, false); +@@ -824,6 +824,8 @@ public abstract class ChromeFeatureList { + public static final CachedFlag sMiniOriginBar = newCachedFlag(MINI_ORIGIN_BAR, false, true); public static final CachedFlag sMostVisitedTilesCustomization = newCachedFlag(MOST_VISITED_TILES_CUSTOMIZATION, false); + public static final CachedFlag sMayLaunchurlUsesSeparateStoragePartition = @@ -288,14 +288,14 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final CachedFlag sMostVisitedTilesReselect = newCachedFlag(MOST_VISITED_TILES_RESELECT, false); public static final CachedFlag sMultiInstanceApplicationStatusCleanup = -@@ -925,6 +927,7 @@ public abstract class ChromeFeatureList { +@@ -1012,6 +1014,7 @@ public abstract class ChromeFeatureList { sMagicStackAndroid, sMiniOriginBar, sMostVisitedTilesCustomization, + sMayLaunchurlUsesSeparateStoragePartition, sMostVisitedTilesReselect, sMultiInstanceApplicationStatusCleanup, - sNavBarColorAnimation, + sMvcUpdateViewWhenModelChanged, diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java --- a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java +++ b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java diff --git a/build/patches/Add-exit-menu-item.patch b/build/patches/Add-exit-menu-item.patch index f82f333e..f8007a65 100644 --- a/build/patches/Add-exit-menu-item.patch +++ b/build/patches/Add-exit-menu-item.patch @@ -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 -@@ -323,6 +323,8 @@ import java.util.Map; +@@ -326,6 +326,8 @@ import java.util.Map; import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; @@ -48,19 +48,19 @@ 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. -@@ -3283,6 +3285,8 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -3361,6 +3363,8 @@ public class ChromeTabbedActivity extends ChromeActivity { .closeTabs( TabClosureParams.closeTab(currentTab).build(), /* allowDialog= */ true); RecordUserAction.record("MobileTabClosed"); + } else if (id == R.id.exit_id) { + ApplicationLifetime.terminate(false); } else if (id == R.id.close_all_tabs_menu_id) { - // Close both incognito and normal tabs. - Runnable closeAllTabsRunnable = + boolean allowUndo = TabClosureParamsUtils.shouldAllowUndo(triggeringMotion); + 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 -@@ -59,6 +59,7 @@ import org.chromium.base.supplier.UnownedUserDataSupplier; +@@ -60,6 +60,7 @@ import org.chromium.base.supplier.UnownedUserDataSupplier; import org.chromium.chrome.R; import org.chromium.chrome.browser.ActivityTabProvider; import org.chromium.chrome.browser.ActivityUtils; @@ -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; -@@ -2406,6 +2407,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -2419,6 +2420,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 -@@ -4420,6 +4420,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4436,6 +4436,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 3d1ef6c2..11ef9097 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" -@@ -545,6 +546,15 @@ AutocompleteController::AutocompleteController( +@@ -565,6 +566,15 @@ AutocompleteController::AutocompleteController( provider_client_->GetOmniboxTriggeredFeatureService()), steady_state_omnibox_position_( metrics::OmniboxEventProto::UNKNOWN_POSITION) { @@ -45,7 +45,7 @@ diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/ diff --git a/components/omnibox/browser/history_url_provider.cc b/components/omnibox/browser/history_url_provider.cc --- a/components/omnibox/browser/history_url_provider.cc +++ b/components/omnibox/browser/history_url_provider.cc -@@ -489,6 +489,9 @@ void HistoryURLProvider::Start(const AutocompleteInput& input, +@@ -488,6 +488,9 @@ void HistoryURLProvider::Start(const AutocompleteInput& input, if (fixed_up_input.type() != metrics::OmniboxInputType::QUERY) matches_.push_back(what_you_typed_match); @@ -66,7 +66,7 @@ diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/ #include "base/functional/callback.h" #include "base/i18n/break_iterator.h" #include "base/i18n/case_conversion.h" -@@ -629,6 +630,9 @@ void SearchProvider::Run(bool query_is_private) { +@@ -628,6 +629,9 @@ void SearchProvider::Run(bool query_is_private) { } void SearchProvider::DoHistoryQuery(bool minimal_changes) { diff --git a/build/patches/Add-flag-to-disable-IPv6-probes.patch b/build/patches/Add-flag-to-disable-IPv6-probes.patch index 498f708b..a72f0690 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 -@@ -1138,6 +1138,7 @@ component("net") { +@@ -1145,6 +1145,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 -@@ -116,6 +116,7 @@ +@@ -115,6 +115,7 @@ #include "net/log/net_log_event_type.h" #include "net/log/net_log_source.h" #include "net/log/net_log_source_type.h" @@ -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" -@@ -1490,6 +1491,13 @@ int HostResolverManager::StartIPv6ReachabilityCheck( +@@ -1489,6 +1490,13 @@ int HostResolverManager::StartIPv6ReachabilityCheck( return OK; } diff --git a/build/patches/Add-flag-to-disable-vibration.patch b/build/patches/Add-flag-to-disable-vibration.patch index e63ab7d0..683ffdb2 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 -@@ -943,6 +943,10 @@ +@@ -987,6 +987,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 70a0f9ec..45abbddc 100644 --- a/build/patches/Add-kill-switch-for-unsupported-clangd-flags.patch +++ b/build/patches/Add-kill-switch-for-unsupported-clangd-flags.patch @@ -14,16 +14,16 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn -@@ -634,7 +634,7 @@ config("compiler") { - - # TODO(crbug.com/413427035): Remove once - # https://github.com/llvm/llvm-project/pull/136867/ is landed. -- if (!is_win && !llvm_android_mainline && -+ if (!is_win && !llvm_android_mainline && !skip_clangd_unsupported_options && +@@ -640,7 +640,7 @@ config("compiler") { + # Enable ELF CREL (see crbug.com/357878242) for all platforms that use ELF + # (excluding toolchains that use an older version of LLVM). + # TODO(crbug.com/376278218): This causes segfault on Linux ARM builds. +- if (is_linux && use_lld && !llvm_android_mainline && current_cpu != "arm" && ++ if (is_linux && !skip_clangd_unsupported_options && use_lld && !llvm_android_mainline && current_cpu != "arm" && default_toolchain != "//build/toolchain/cros:target") { - cflags += [ "-fextend-variable-liveness=none" ] + cflags += [ "-Wa,--crel,--allow-experimental-crel" ] } -@@ -1728,7 +1728,7 @@ config("clang_revision") { +@@ -1784,7 +1784,7 @@ config("clang_revision") { config("clang_warning_suppression") { # Some build configs use older versions of clang that don't support WSMs if (!is_nacl && default_toolchain != "//build/toolchain/cros:target" && @@ -32,7 +32,7 @@ diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn clang_warning_suppression_file != "") { from_build_root = rebase_path(clang_warning_suppression_file, root_build_dir) -@@ -2065,7 +2065,6 @@ config("default_warnings") { +@@ -2146,7 +2146,6 @@ config("default_warnings") { # TODO(crbug.com/376641662): Fix and re-enable. "-Wno-nontrivial-memcall", ] @@ -40,7 +40,7 @@ diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn cflags_cc += [ # TODO(crbug.com/328490295): Fix and re-enable for C flags. "-Wenum-compare-conditional", -@@ -2104,6 +2103,15 @@ config("default_warnings") { +@@ -2187,6 +2186,15 @@ config("default_warnings") { ] } diff --git a/build/patches/Add-menu-item-to-view-source.patch b/build/patches/Add-menu-item-to-view-source.patch index f2af3d95..037d6ca1 100644 --- a/build/patches/Add-menu-item-to-view-source.patch +++ b/build/patches/Add-menu-item-to-view-source.patch @@ -9,15 +9,15 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../chrome/browser/ChromeTabbedActivity.java | 2 ++ .../chrome/browser/app/ChromeActivity.java | 5 +++++ .../appmenu/AppMenuPropertiesDelegateImpl.java | 17 +++++++++++++++++ - .../CustomTabAppMenuPropertiesDelegate.java | 1 + + .../CustomTabAppMenuPropertiesDelegate.java | 2 +- .../TabbedAppMenuPropertiesDelegate.java | 6 +++--- .../android/strings/android_chrome_strings.grd | 4 ++++ - 8 files changed, 38 insertions(+), 3 deletions(-) + 8 files changed, 38 insertions(+), 4 deletions(-) diff --git a/chrome/android/java/res/menu/custom_tabs_menu.xml b/chrome/android/java/res/menu/custom_tabs_menu.xml --- a/chrome/android/java/res/menu/custom_tabs_menu.xml +++ b/chrome/android/java/res/menu/custom_tabs_menu.xml -@@ -69,6 +69,9 @@ found in the LICENSE file. +@@ -73,6 +73,9 @@ found in the LICENSE file. @@ -43,7 +43,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 -@@ -3356,6 +3356,8 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -3434,6 +3434,8 @@ public class ChromeTabbedActivity extends ChromeActivity { NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_DOWNLOADS_MANAGER); } RecordUserAction.record("MobileMenuDownloadManager"); @@ -55,7 +55,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 -@@ -2563,6 +2563,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -2576,6 +2576,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity return doOpenWebApk(currentTab); } @@ -70,7 +70,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 -@@ -862,6 +862,23 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties +@@ -864,6 +864,23 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties } } @@ -97,18 +97,19 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java -@@ -320,6 +320,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat - +@@ -331,7 +331,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat + // --- Request Desktop Site --- updateRequestDesktopSiteMenuItem( menu, currentTab, requestDesktopSiteVisible, isNativePage); +- + updateViewSourceMenuItem(menu, currentTab); - prepareAddToHomescreenMenuItem(menu, currentTab, addToHomeScreenVisible); - } - } + // --- Translate --- + prepareTranslateMenuItem(menu, currentTab); + diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java -@@ -133,7 +133,7 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm +@@ -173,7 +173,7 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm if (menuGroup == MenuGroup.PAGE_MENU) { preparePageMenu(menu, currentTab, handler, isIncognito); } @@ -117,7 +118,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab } private void setMenuGroupVisibility(@MenuGroup int menuGroup, Menu menu) { -@@ -296,7 +296,7 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm +@@ -338,7 +338,7 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm isNativePage, isFileScheme, isContentScheme, isIncognito, url)); updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */, isNativePage); @@ -126,8 +127,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab updateAutoDarkMenuItem(menu, currentTab, isNativePage); // Only display reader mode settings menu option if the current page is in reader mode. -@@ -316,7 +316,7 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm - .setVisible(ChromeFeatureList.sNewTabPageCustomization.isEnabled()); +@@ -371,7 +371,7 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm + && UrlUtilities.isNtpUrl(currentTab.getUrl()); } - private void prepareCommonMenuItems(Menu menu, @MenuGroup int menuGroup, boolean isIncognito) { diff --git a/build/patches/Add-option-to-disable-snapshots.patch b/build/patches/Add-option-to-disable-snapshots.patch index b037b0d1..621f12aa 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 -@@ -403,7 +403,12 @@ class TabGridViewBinder { +@@ -457,7 +457,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) { -@@ -444,6 +449,7 @@ class TabGridViewBinder { +@@ -498,6 +503,7 @@ class TabGridViewBinder { */ private static void setFavicon( ImageView faviconView, PropertyModel model, TabListFaviconProvider.TabFavicon favicon) { @@ -40,7 +40,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java -@@ -81,6 +81,9 @@ public class TabProperties { +@@ -85,6 +85,9 @@ public class TabProperties { public static final WritableBooleanPropertyKey FAVICON_FETCHED = new WritableBooleanPropertyKey(); @@ -50,7 +50,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser /** Property for lazily fetching favicons when required by an item in a UI. */ public static final WritableObjectPropertyKey FAVICON_FETCHER = new WritableObjectPropertyKey<>(); -@@ -165,6 +168,7 @@ public class TabProperties { +@@ -174,6 +177,7 @@ public class TabProperties { CARD_TYPE, CONTENT_DESCRIPTION_TEXT_RESOLVER, ACTION_BUTTON_DESCRIPTION_TEXT_RESOLVER, @@ -58,7 +58,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser QUICK_DELETE_ANIMATION_STATUS, TAB_GROUP_COLOR_VIEW_PROVIDER, VISIBILITY, -@@ -204,6 +208,7 @@ public class TabProperties { +@@ -210,6 +214,7 @@ public class TabProperties { TAB_ACTION_BUTTON_DATA, FAVICON_FETCHED, FAVICON_FETCHER, @@ -84,7 +84,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -144,6 +144,7 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; +@@ -145,6 +145,7 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; import org.chromium.chrome.browser.preferences.Pref; import org.chromium.chrome.browser.price_tracking.PriceDropNotificationManagerFactory; import org.chromium.chrome.browser.printing.TabPrinter; @@ -92,7 +92,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.ProfileManager; import org.chromium.chrome.browser.profiles.ProfileProvider; -@@ -633,7 +634,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -637,7 +638,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity new TabContentManager( this, mBrowserControlsManagerSupplier.get(), @@ -113,7 +113,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import org.chromium.base.supplier.ObservableSupplier; import org.chromium.base.supplier.ObservableSupplierImpl; import org.chromium.build.annotations.Nullable; -@@ -97,12 +98,26 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; +@@ -98,12 +99,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"; -@@ -205,6 +220,21 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -206,6 +221,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( -@@ -435,6 +465,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -432,6 +462,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) { -@@ -481,6 +512,13 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -478,6 +509,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; } -@@ -531,6 +569,10 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -528,6 +566,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 -@@ -6166,6 +6166,14 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -6198,6 +6198,14 @@ To change this setting, BEGIN_LINKdelete the Chrome d Your %1$swww.amazon.com timer ran out. It'll start again tomorrow. diff --git a/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch b/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch index c55d564d..d5caee1d 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 @@ -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; -@@ -1798,8 +1799,10 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -1849,8 +1850,10 @@ public class ChromeTabbedActivity extends ChromeActivity { boolean hadCipherData = CipherLazyHolder.sCipherInstance.restoreFromBundle(getSavedInstanceState()); @@ -69,7 +69,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import org.chromium.base.IntentUtils; import org.chromium.base.metrics.RecordHistogram; import org.chromium.base.metrics.RecordUserAction; -@@ -112,6 +115,8 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -113,6 +116,8 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private final SharedPreferencesManager mSharedPreferencesManager = ChromeSharedPreferences.getInstance(); @@ -78,7 +78,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting private ManagedPreferenceDelegate mManagedPreferenceDelegate; @VisibleForTesting static final String PREF_THIRD_PARTY_COOKIES = "third_party_cookies"; @VisibleForTesting static final String PREF_TRACKING_PROTECTION = "tracking_protection"; -@@ -376,7 +381,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -373,7 +378,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment @Override public boolean onPreferenceChange(Preference preference, Object newValue) { String key = preference.getKey(); @@ -91,7 +91,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)) { -@@ -436,6 +445,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -433,6 +442,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment getContext(), getProfile())); } @@ -106,7 +106,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 -@@ -5691,6 +5691,12 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -5714,6 +5714,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 a40fcabb..f61088a4 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 -@@ -112,6 +112,9 @@ import java.util.Objects; +@@ -114,6 +114,9 @@ import java.util.Objects; import java.util.Optional; import java.util.Set; @@ -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. -@@ -1030,9 +1033,15 @@ public class TabGridDialogMediator +@@ -1028,9 +1031,15 @@ public class TabGridDialogMediator return; } @@ -97,7 +97,7 @@ diff --git a/chrome/android/java/res/xml/homepage_preferences.xml b/chrome/andro diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/TabGroupContextMenuCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/TabGroupContextMenuCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/TabGroupContextMenuCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/TabGroupContextMenuCoordinator.java -@@ -66,6 +66,9 @@ import org.chromium.ui.text.EmptyTextWatcher; +@@ -71,6 +71,9 @@ import org.chromium.ui.text.EmptyTextWatcher; import org.chromium.ui.widget.AnchoredPopupWindow.HorizontalOrientation; import org.chromium.ui.widget.RectProvider; @@ -107,9 +107,9 @@ 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. -@@ -200,9 +203,15 @@ public class TabGroupContextMenuCoordinator extends TabGroupOverflowMenuCoordina +@@ -208,9 +211,15 @@ public class TabGroupContextMenuCoordinator extends TabGroupOverflowMenuCoordina /* didCloseCallback= */ null); - recordUserAction("DeleteGroup"); + RecordUserAction.record("MobileToolbarTabGroupMenu.DeleteGroup"); } else if (menuId == org.chromium.chrome.R.id.open_new_tab_in_group) { + String url = UrlConstants.NTP_URL; + if (UrlConstants.NTP_URL.equals(url) @@ -123,11 +123,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over + url, tabId, TabLaunchType.FROM_TAB_GROUP_UI); - recordUserAction("NewTabInGroup"); + RecordUserAction.record("MobileToolbarTabGroupMenu.NewTabInGroup"); diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java -@@ -237,6 +237,22 @@ public class HomepageManager +@@ -231,6 +231,22 @@ public class HomepageManager notifyHomepageUpdated(); } @@ -153,7 +153,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/Homepa diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java -@@ -24,6 +24,7 @@ import org.chromium.components.browser_ui.settings.SettingsUtils; +@@ -25,6 +25,7 @@ import org.chromium.components.browser_ui.settings.SettingsUtils; import org.chromium.components.embedder_support.util.UrlUtilities; import org.chromium.components.url_formatter.UrlFormatter; import org.chromium.url.GURL; @@ -161,7 +161,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settin /** Fragment that allows the user to configure homepage related preferences. */ public class HomepageSettings extends ChromeBaseSettingsFragment { -@@ -32,6 +33,8 @@ public class HomepageSettings extends ChromeBaseSettingsFragment { +@@ -33,6 +34,8 @@ public class HomepageSettings extends ChromeBaseSettingsFragment { @VisibleForTesting public static final String PREF_HOMEPAGE_RADIO_GROUP = "homepage_radio_group"; @@ -170,7 +170,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settin private HomepageManager mHomepageManager; private RadioButtonGroupHomepagePreference mRadioButtons; private final ObservableSupplierImpl mPageTitle = new ObservableSupplierImpl<>(); -@@ -67,6 +70,15 @@ public class HomepageSettings extends ChromeBaseSettingsFragment { +@@ -69,6 +72,15 @@ public class HomepageSettings extends ChromeBaseSettingsFragment { }); mRadioButtons.setupPreferenceValues(createPreferenceValuesForRadioGroup()); @@ -200,15 +200,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchM 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 -@@ -24,6 +24,7 @@ import org.chromium.chrome.browser.app.tab_activity_glue.ReparentingTask; +@@ -23,6 +23,7 @@ import org.chromium.chrome.browser.app.tab_activity_glue.ReparentingDelegateFact + import org.chromium.chrome.browser.app.tab_activity_glue.ReparentingTask; import org.chromium.chrome.browser.compositor.CompositorViewHolder; import org.chromium.chrome.browser.flags.ChromeFeatureList; - import org.chromium.chrome.browser.new_tab_url.DseNewTabUrlManager; +import org.chromium.chrome.browser.homepage.HomepageManager; import org.chromium.chrome.browser.prefetch.settings.PreloadPagesSettingsBridge; import org.chromium.chrome.browser.prefetch.settings.PreloadPagesState; import org.chromium.chrome.browser.profiles.Profile; -@@ -508,6 +509,13 @@ public class ChromeTabCreator extends TabCreator +@@ -530,6 +531,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 -@@ -327,6 +327,7 @@ public final class ChromePreferenceKeys { +@@ -326,6 +326,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"; @@ -236,7 +236,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java -@@ -61,6 +61,7 @@ public class LegacyChromePreferenceKeys { +@@ -60,6 +60,7 @@ public class LegacyChromePreferenceKeys { ChromePreferenceKeys.HISTORY_SHOW_HISTORY_INFO, ChromePreferenceKeys.HOMEPAGE_ENABLED, ChromePreferenceKeys.HOMEPAGE_USE_DEFAULT_URI, @@ -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 -@@ -1489,6 +1489,9 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1480,6 +1480,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 -@@ -91,6 +91,8 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -107,6 +107,8 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref(prefs::kPinSplitTabButton, false, pref_registration_flags); 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 4981bf60..0a62e14a 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 -@@ -260,6 +260,7 @@ chrome_java_sources = [ +@@ -257,6 +257,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataCheckBoxPreference.java", "java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFetcher.java", "java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java", @@ -82,7 +82,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.chrome.browser.read_later.ReadingListBackPressHandler; import org.chromium.chrome.browser.recent_tabs.CrossDevicePaneFactory; import org.chromium.chrome.browser.reengagement.ReengagementNotificationController; -@@ -1803,7 +1804,11 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -1854,7 +1855,11 @@ public class ChromeTabbedActivity extends ChromeActivity { Intent intent = getIntent(); boolean hadCipherData = @@ -136,10 +136,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/B diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java --- a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java -@@ -163,6 +163,12 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -161,6 +161,12 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment + assert mCheckbox == preference; mParent.updateButtonState(); - mShouldAnnounceCounterResult = true; + + BrowsingDataBridge.getForProfile(mParent.getProfile()) + .setBrowsingDataDeletionPreference( @@ -149,7 +149,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C return true; } -@@ -255,7 +261,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -242,7 +248,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment private @TimePeriod int mLastSelectedTimePeriod; private boolean mShouldShowPostDeleteFeedback; @@ -158,7 +158,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C /** * @return All available {@link DialogOption} entries. -@@ -361,7 +367,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -348,7 +354,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment } /** Called when browsing data is about to be cleared. */ @@ -167,7 +167,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C RecordUserAction.record("ClearBrowsingData_AdvancedTab"); if (ChromeFeatureList.sClearBrowsingDataAndroidSurvey.isEnabled()) { -@@ -451,6 +457,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -438,6 +444,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment BrowsingDataBridge.getForProfile(getProfile()) .setBrowsingDataDeletionPreference( ClearBrowsingDataFragment.getDataType(item.getOption()), @@ -175,7 +175,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C item.isSelected()); } -@@ -458,8 +465,12 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -445,8 +452,12 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment .setBrowsingDataDeletionTimePeriod(mLastSelectedTimePeriod); } @@ -189,7 +189,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C String referrer = fragmentArgs.getString( ClearBrowsingDataFragment.CLEAR_BROWSING_DATA_REFERRER, null); -@@ -485,6 +496,10 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -472,6 +483,10 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment DialogOption.CLEAR_SITE_SETTINGS); } @@ -200,7 +200,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C /** * Decides whether a given dialog option should be selected when the dialog is initialized. * -@@ -493,7 +508,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -480,7 +495,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment */ private boolean isOptionSelectedByDefault(@DialogOption int option) { return BrowsingDataBridge.getForProfile(getProfile()) @@ -209,7 +209,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C } /** -@@ -561,6 +576,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -548,6 +563,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment * options. */ private void onClearButtonClicked() { @@ -217,7 +217,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C if (shouldShowImportantSitesDialog()) { showImportantDialogThenClear(); return; -@@ -591,6 +607,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -577,6 +593,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment Button clearButton = (Button) getView().findViewById(R.id.clear_button); boolean isEnabled = !getSelectedOptions().isEmpty(); clearButton.setEnabled(isEnabled); @@ -225,7 +225,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C } private int getSpinnerIndex( -@@ -666,7 +683,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -652,7 +669,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment .getBoolean(Pref.ALLOW_DELETING_BROWSER_HISTORY)) { enabled = false; browsingDataBridge.setBrowsingDataDeletionPreference( @@ -234,7 +234,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C } // Disable tabs closure if the user is in multi-window mode. -@@ -696,8 +713,12 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -682,8 +699,12 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment mSigninManager.addSignInStateObserver(this); setHasOptionsMenu(true); @@ -334,7 +334,7 @@ new file mode 100644 diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp --- a/chrome/app/settings_strings.grdp +++ b/chrome/app/settings_strings.grdp -@@ -2227,6 +2227,16 @@ +@@ -1973,6 +1973,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 -@@ -104,6 +104,7 @@ +@@ -105,6 +105,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" @@ -459,7 +459,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager. diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc --- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc +++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc -@@ -358,6 +358,7 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -359,6 +359,7 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( uint64_t origin_type_mask, base::OnceCallback callback) { CHECK(((remove_mask & @@ -467,7 +467,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate. ~content::BrowsingDataRemover::DATA_TYPE_AVOID_CLOSING_CONNECTIONS & ~constants::FILTERABLE_DATA_TYPES) == 0) || filter_builder->MatchesAllOriginsAndDomains()); -@@ -465,6 +466,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -466,6 +467,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( CreateTaskCompletionClosure(TracingDataType::kHistory), &history_task_tracker_); } @@ -477,7 +477,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate. if (ClipboardRecentContent::GetInstance()) ClipboardRecentContent::GetInstance()->SuppressClipboardContent(); -@@ -573,6 +577,11 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -574,6 +578,11 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( // and SSL host state are scoped to hosts and represent them as std::string. // Rename the method to indicate its more general usage. if (profile_->GetSSLHostStateDelegate()) { @@ -489,7 +489,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate. profile_->GetSSLHostStateDelegate()->Clear( filter_builder->MatchesAllOriginsAndDomains() ? base::RepeatingCallback() -@@ -601,9 +610,13 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -602,9 +611,13 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( } device_event_log::Clear(delete_begin_, delete_end_); @@ -503,7 +503,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate. content::BackgroundTracingManager::GetInstance().DeleteTracesInDateRange( delete_begin_, delete_end_); -@@ -1308,6 +1321,8 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -1324,6 +1337,8 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( if (should_clear_zero_suggest_and_session_token && template_url_service) template_url_service->ClearSessionToken(); @@ -574,7 +574,7 @@ diff --git a/chrome/browser/profiles/android/profile_manager_utils.cc b/chrome/b diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc --- a/chrome/browser/profiles/profile_manager.cc +++ b/chrome/browser/profiles/profile_manager.cc -@@ -1442,6 +1442,19 @@ void ProfileManager::DoFinalInit(ProfileInfo* profile_info, +@@ -1441,6 +1441,19 @@ void ProfileManager::DoFinalInit(ProfileInfo* profile_info, } } @@ -594,7 +594,7 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile void ProfileManager::DoFinalInitForServices(Profile* profile, bool go_off_the_record) { if (!do_final_services_init_ || -@@ -2119,7 +2132,7 @@ void ProfileManager::OnBrowserClosed(Browser* browser) { +@@ -2117,7 +2130,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()) { @@ -680,7 +680,7 @@ diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_ ], }, -@@ -335,6 +336,7 @@ export class SettingsClearBrowsingDataDialogElement extends +@@ -336,6 +337,7 @@ export class SettingsClearBrowsingDataDialogElement extends } this.clearButtonDisabled_ = this.getSelectedDataTypes_(page as HTMLElement).length === 0; @@ -691,7 +691,7 @@ diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -1581,6 +1581,9 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1575,6 +1575,9 @@ Your Google account may have other forms of browsing history like searches and a Some of your history might not show up here. To see all your Chrome history, open full Chrome history. Also, your Google Account may have other forms of browsing history at <link>myactivity.google.com</link>. @@ -718,7 +718,7 @@ new file mode 100644 diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc --- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc +++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc -@@ -1945,6 +1945,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, +@@ -1922,6 +1922,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, {"clearedData", IDS_SETTINGS_CLEARED_DATA}, {"clearBrowsingData", IDS_SETTINGS_CLEAR_BROWSING_DATA}, {"clearBrowsingDataDescription", IDS_SETTINGS_CLEAR_DATA_DESCRIPTION}, @@ -938,7 +938,7 @@ diff --git a/components/favicon/core/favicon_database.cc b/components/favicon/co // Description of database tables: // // icon_mapping -@@ -508,6 +512,11 @@ bool FaviconDatabase::SetFaviconBitmapLastUpdateTime(FaviconBitmapID bitmap_id, +@@ -507,6 +511,11 @@ bool FaviconDatabase::SetFaviconBitmapLastUpdateTime(FaviconBitmapID bitmap_id, bool FaviconDatabase::SetFaviconsOutOfDateBetween(base::Time begin, base::Time end) { @@ -965,7 +965,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 -@@ -893,6 +893,7 @@ void TemplateURLService::RemoveAutoGeneratedForUrlsBetween( +@@ -885,6 +885,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 && @@ -988,7 +988,7 @@ diff --git a/content/browser/btm/btm_service_impl.cc b/content/browser/btm/btm_s diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage_partition_impl.cc --- a/content/browser/storage_partition_impl.cc +++ b/content/browser/storage_partition_impl.cc -@@ -1511,6 +1511,7 @@ void StoragePartitionImpl::Initialize( +@@ -1514,6 +1514,7 @@ void StoragePartitionImpl::Initialize( .AppendASCII("Code Cache"); } DCHECK_GE(settings.size_in_bytes(), 0); diff --git a/build/patches/Add-site-engagement-flag.patch b/build/patches/Add-site-engagement-flag.patch index b92919da..22444d6f 100644 --- a/build/patches/Add-site-engagement-flag.patch +++ b/build/patches/Add-site-engagement-flag.patch @@ -35,7 +35,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/engagement/important_sites_util.cc b/chrome/browser/engagement/important_sites_util.cc --- a/chrome/browser/engagement/important_sites_util.cc +++ b/chrome/browser/engagement/important_sites_util.cc -@@ -32,6 +32,7 @@ +@@ -31,6 +31,7 @@ #include "components/prefs/scoped_user_pref_update.h" #include "components/site_engagement/content/site_engagement_score.h" #include "components/site_engagement/content/site_engagement_service.h" @@ -43,7 +43,7 @@ diff --git a/chrome/browser/engagement/important_sites_util.cc b/chrome/browser/ #include "components/site_engagement/core/mojom/site_engagement_details.mojom.h" #include "components/webapps/browser/banners/app_banner_settings_helper.h" #include "net/base/registry_controlled_domains/registry_controlled_domain.h" -@@ -349,6 +350,10 @@ void ImportantSitesUtil::RegisterProfilePrefs( +@@ -344,6 +345,10 @@ void ImportantSitesUtil::RegisterProfilePrefs( // static std::set ImportantSitesUtil::GetInstalledRegisterableDomains( Profile* profile) { @@ -54,7 +54,7 @@ diff --git a/chrome/browser/engagement/important_sites_util.cc b/chrome/browser/ std::set installed_origins = GetOriginsWithInstalledWebApps(profile); std::set registerable_domains; -@@ -363,6 +368,10 @@ std::vector +@@ -358,6 +363,10 @@ std::vector ImportantSitesUtil::GetImportantRegisterableDomains(Profile* profile, size_t max_results) { SCOPED_UMA_HISTOGRAM_TIMER("Storage.ImportantSites.GenerationTime"); diff --git a/build/patches/Add-support-for-writing-URIs.patch b/build/patches/Add-support-for-writing-URIs.patch index 4b184814..e1041e0d 100644 --- a/build/patches/Add-support-for-writing-URIs.patch +++ b/build/patches/Add-support-for-writing-URIs.patch @@ -9,13 +9,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- base/android/content_uri_utils.cc | 10 ++++++ base/android/content_uri_utils.h | 4 +++ - .../org/chromium/base/ContentUriUtils.java | 34 +++++++++++++++++++ - 3 files changed, 48 insertions(+) + .../org/chromium/base/ContentUriUtils.java | 33 +++++++++++++++++++ + 3 files changed, 47 insertions(+) diff --git a/base/android/content_uri_utils.cc b/base/android/content_uri_utils.cc --- a/base/android/content_uri_utils.cc +++ b/base/android/content_uri_utils.cc -@@ -119,6 +119,16 @@ void JNI_ContentUriUtils_AddFileInfoToVector(JNIEnv* env, +@@ -134,6 +134,16 @@ void JNI_ContentUriUtils_AddFileInfoToVector(JNIEnv* env, Time::FromMillisecondsSinceUnixEpoch(last_modified)); } @@ -35,9 +35,9 @@ diff --git a/base/android/content_uri_utils.cc b/base/android/content_uri_utils. diff --git a/base/android/content_uri_utils.h b/base/android/content_uri_utils.h --- a/base/android/content_uri_utils.h +++ b/base/android/content_uri_utils.h -@@ -33,6 +33,10 @@ BASE_EXPORT std::optional TranslateOpenFlagsToJavaMode( - // Returns -1 if the URI is invalid. - int OpenContentUri(const FilePath& content_uri, uint32_t open_flags); +@@ -46,6 +46,10 @@ int ContentUriGetFd( + void ContentUriClose( + const base::android::JavaRef& java_parcel_file_descriptor); +// Opens a content URI for write and returns the file descriptor to the caller. +// Returns -1 if the URI is invalid. @@ -49,15 +49,7 @@ diff --git a/base/android/content_uri_utils.h b/base/android/content_uri_utils.h diff --git a/base/android/java/src/org/chromium/base/ContentUriUtils.java b/base/android/java/src/org/chromium/base/ContentUriUtils.java --- a/base/android/java/src/org/chromium/base/ContentUriUtils.java +++ b/base/android/java/src/org/chromium/base/ContentUriUtils.java -@@ -12,6 +12,7 @@ import android.content.res.AssetFileDescriptor; - import android.database.Cursor; - import android.net.Uri; - import android.os.Build; -+import android.os.ParcelFileDescriptor; - import android.provider.DocumentsContract; - import android.provider.MediaStore; - import android.text.TextUtils; -@@ -30,6 +31,9 @@ import org.chromium.build.annotations.Nullable; +@@ -31,6 +31,9 @@ import org.chromium.build.annotations.Nullable; import java.io.IOException; import java.util.List; @@ -67,8 +59,8 @@ diff --git a/base/android/java/src/org/chromium/base/ContentUriUtils.java b/base /** This class provides methods to access content URI schemes. */ @JNINamespace("base") @NullMarked -@@ -64,6 +68,36 @@ public abstract class ContentUriUtils { - return -1; +@@ -72,6 +75,36 @@ public abstract class ContentUriUtils { + StreamUtil.closeQuietly(parcelFileDescriptor); } + @CalledByNative diff --git a/build/patches/Add-support-to-jxl.patch b/build/patches/Add-support-to-jxl.patch index bf9482b4..83630bb5 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 -@@ -511,6 +511,10 @@ vars = { +@@ -507,6 +507,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 -@@ -1889,6 +1893,9 @@ deps = { +@@ -1902,6 +1906,9 @@ deps = { 'src/third_party/dawn': Var('dawn_git') + '/dawn.git' + '@' + Var('dawn_revision'), @@ -316,7 +316,7 @@ diff --git a/media/BUILD.gn b/media/BUILD.gn diff --git a/media/media_options.gni b/media/media_options.gni --- a/media/media_options.gni +++ b/media/media_options.gni -@@ -141,6 +141,9 @@ declare_args() { +@@ -140,6 +140,9 @@ declare_args() { # `enable_libaom` should likely also be overriddent to false. enable_av1_decoder = enable_dav1d_decoder @@ -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 -@@ -4823,6 +4823,7 @@ domain Emulation +@@ -4856,6 +4856,7 @@ domain Emulation experimental type DisabledImageType extends string enum avif @@ -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 -@@ -2431,6 +2431,10 @@ source_set("blink_platform_unittests_sources") { +@@ -2433,6 +2433,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 += [ -@@ -2476,6 +2480,7 @@ source_set("blink_platform_unittests_sources") { +@@ -2479,6 +2483,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 -@@ -5434,6 +5434,12 @@ crbug.com/1199522 http/tests/devtools/layers/layers-3d-view-hit-testing.js [ Fai +@@ -5720,6 +5720,12 @@ crbug.com/40761284 http/tests/devtools/layers/layers-3d-view-hit-testing.js [ Fa # Started failing after rolling new version of check-layout-th.js css3/flexbox/perpendicular-writing-modes-inside-flex-item.html [ Failure ] @@ -2226,12 +2226,12 @@ diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/we +crbug.com/1358616 virtual/jxl-enabled/images/jxl/progressive.html [ Crash Failure Pass Timeout ] + # Sheriff 2021-11-15 - crbug.com/1270362 http/tests/devtools/sources/debugger-ui/debugger-inline-values.js [ Failure Pass Timeout ] + crbug.com/40205355 http/tests/devtools/sources/debugger-ui/debugger-inline-values.js [ Failure Pass Timeout ] 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 -@@ -478,6 +478,15 @@ +@@ -491,6 +491,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 -@@ -14849,6 +14849,7 @@ from previous Chrome versions. +@@ -14410,6 +14410,7 @@ from previous Chrome versions. diff --git a/build/patches/Add-webGL-site-setting.patch b/build/patches/Add-webGL-site-setting.patch index 21a532b5..615e1671 100644 --- a/build/patches/Add-webGL-site-setting.patch +++ b/build/patches/Add-webGL-site-setting.patch @@ -189,7 +189,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/core/execution_context/execution_context.cc b/third_party/blink/renderer/core/execution_context/execution_context.cc --- a/third_party/blink/renderer/core/execution_context/execution_context.cc +++ b/third_party/blink/renderer/core/execution_context/execution_context.cc -@@ -85,6 +85,13 @@ blink::WebContentSettingsClient* GetContentSettingsClientFor( +@@ -86,6 +86,13 @@ blink::WebContentSettingsClient* GetContentSettingsClientFor( return settings; } @@ -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 -@@ -336,6 +336,13 @@ void WebGLRenderingContextBase::InitializeWebGLContextLimits( +@@ -339,6 +339,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_); -@@ -605,25 +612,6 @@ static String ExtractWebGLContextCreationError( +@@ -608,25 +615,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('.'); -@@ -683,6 +671,12 @@ WebGLRenderingContextBase::CreateWebGraphicsContext3DProvider( +@@ -686,6 +674,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 -@@ -1950,6 +1950,8 @@ class MODULES_EXPORT WebGLRenderingContextBase : public ScriptWrappable, +@@ -1932,6 +1932,8 @@ class MODULES_EXPORT WebGLRenderingContextBase DOMArrayBufferView* pixels, int64_t offset); diff --git a/build/patches/Allow-building-without-enable_reporting.patch b/build/patches/Allow-building-without-enable_reporting.patch index efe24a7d..9c00afe7 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 -@@ -1482,6 +1482,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) { +@@ -1484,6 +1484,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( -@@ -1495,6 +1496,7 @@ std::vector ComputeReportingURLs(RenderFrameHostImpl* frame_host) { +@@ -1497,6 +1498,7 @@ std::vector ComputeReportingURLs(RenderFrameHostImpl* frame_host) { }); return urls; } @@ -108,7 +108,7 @@ diff --git a/content/browser/network/reporting_service_proxy.cc b/content/browse #include "content/browser/service_worker/service_worker_host.h" #include "content/browser/worker_host/dedicated_worker_host.h" #include "content/browser/worker_host/shared_worker_host.h" -@@ -226,12 +227,14 @@ class ReportingServiceProxyImpl : public blink::mojom::ReportingServiceProxy { +@@ -240,12 +241,14 @@ class ReportingServiceProxyImpl : public blink::mojom::ReportingServiceProxy { const std::string& group, const std::string& type, base::Value::Dict body) { @@ -126,14 +126,14 @@ 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 -@@ -15967,12 +15967,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport( +@@ -15928,12 +15928,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport( } } } - - // Send the crash report to the Reporting API. - GetProcess()->GetStoragePartition()->GetNetworkContext()->QueueReport( -- /*type=*/"crash", /*group=*/"default", last_committed_url_, +- /*type=*/"crash", crash_reporting_group_, last_committed_url_, - GetReportingSource(), isolation_info_.network_anonymization_key(), - std::move(body)); } @@ -177,7 +177,7 @@ diff --git a/content/browser/security/coop/cross_origin_opener_policy_reporter.c std::string ToString(network::mojom::CrossOriginOpenerPolicyValue coop_value) { switch (coop_value) { case network::mojom::CrossOriginOpenerPolicyValue::kUnsafeNone: -@@ -64,6 +57,7 @@ std::string ToString(network::mojom::CrossOriginOpenerPolicyValue coop_value) { +@@ -59,6 +52,7 @@ std::string ToString(network::mojom::CrossOriginOpenerPolicyValue coop_value) { return "noopener-allow-popups"; } } @@ -185,7 +185,7 @@ diff --git a/content/browser/security/coop/cross_origin_opener_policy_reporter.c FrameTreeNode* TopLevelOpener(FrameTreeNode* frame) { FrameTreeNode* opener = -@@ -235,6 +229,7 @@ void CrossOriginOpenerPolicyReporter::QueueAccessReport( +@@ -230,6 +224,7 @@ void CrossOriginOpenerPolicyReporter::QueueAccessReport( network::mojom::SourceLocationPtr source_location, const std::string& reported_window_url, const std::string& initial_popup_url) const { @@ -193,7 +193,7 @@ diff --git a/content/browser/security/coop/cross_origin_opener_policy_reporter.c // Cross-Origin-Opener-Policy-Report-Only is not required to provide // endpoints. if (!coop_.report_only_reporting_endpoint) -@@ -282,12 +277,14 @@ void CrossOriginOpenerPolicyReporter::QueueAccessReport( +@@ -277,12 +272,14 @@ void CrossOriginOpenerPolicyReporter::QueueAccessReport( storage_partition_->GetNetworkContext()->QueueReport( "coop", endpoint, context_url_, reporting_source_, network_anonymization_key_, std::move(body)); @@ -208,7 +208,7 @@ diff --git a/content/browser/security/coop/cross_origin_opener_policy_reporter.c body.Set(kDisposition, is_report_only ? kDispositionReporting : kDispositionEnforce); body.Set(kEffectivePolicy, -@@ -295,6 +292,7 @@ void CrossOriginOpenerPolicyReporter::QueueNavigationReport( +@@ -290,6 +287,7 @@ void CrossOriginOpenerPolicyReporter::QueueNavigationReport( storage_partition_->GetNetworkContext()->QueueReport( "coop", endpoint, context_url_, reporting_source_, network_anonymization_key_, std::move(body)); @@ -303,12 +303,12 @@ diff --git a/net/reporting/reporting_service.cc b/net/reporting/reporting_servic +#error Attempting to build with enable_reporting +#endif DCHECK(initialized_); - context_->cache()->AddReport(reporting_source, network_anonymization_key, - sanitized_url, user_agent, group, type, + context_->cache()->AddReport( + reporting_source, network_anonymization_key, sanitized_url, user_agent, 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 -@@ -485,14 +485,14 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -486,14 +486,14 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext const GURL& url, const std::optional& reporting_source, const net::NetworkAnonymizationKey& network_anonymization_key, @@ -329,7 +329,7 @@ diff --git a/services/network/network_context.h b/services/network/network_conte diff --git a/services/network/public/cpp/parsed_headers.cc b/services/network/public/cpp/parsed_headers.cc --- a/services/network/public/cpp/parsed_headers.cc +++ b/services/network/public/cpp/parsed_headers.cc -@@ -115,6 +115,7 @@ mojom::ParsedHeadersPtr PopulateParsedHeaders( +@@ -125,6 +125,7 @@ mojom::ParsedHeadersPtr PopulateParsedHeaders( } #if BUILDFLAG(ENABLE_REPORTING) @@ -351,7 +351,7 @@ diff --git a/services/network/public/mojom/BUILD.gn b/services/network/public/mo diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom --- a/services/network/public/mojom/network_context.mojom +++ b/services/network/public/mojom/network_context.mojom -@@ -1230,6 +1230,7 @@ interface NetworkContext { +@@ -1234,6 +1234,7 @@ interface NetworkContext { // provided `network_anonymization_key`. // // Spec: https://w3c.github.io/reporting/#concept-reports @@ -359,7 +359,7 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw QueueReport(string type, string group, url.mojom.Url url, -@@ -1237,6 +1238,7 @@ interface NetworkContext { +@@ -1241,6 +1242,7 @@ interface NetworkContext { NetworkAnonymizationKey network_anonymization_key, mojo_base.mojom.DictionaryValue body); @@ -367,7 +367,7 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw QueueEnterpriseReport(string type, string group, url.mojom.Url url, -@@ -1247,6 +1249,7 @@ interface NetworkContext { +@@ -1251,6 +1253,7 @@ interface NetworkContext { // Note that this queued report will never be delivered if no reporting // endpoint matching is registered for with the provided // `network_anonymization_key`. @@ -386,7 +386,7 @@ diff --git a/third_party/blink/renderer/core/frame/csp/content_security_policy.c #include "base/containers/contains.h" #include "base/debug/dump_without_crashing.h" #include "base/feature_list.h" -@@ -1303,6 +1304,7 @@ void ContentSecurityPolicy::ReportViolation( +@@ -1260,6 +1261,7 @@ void ContentSecurityPolicy::ReportViolation( return; } @@ -394,7 +394,7 @@ diff --git a/third_party/blink/renderer/core/frame/csp/content_security_policy.c PostViolationReport(violation_data, context_frame, report_endpoints, use_reporting_api); -@@ -1310,6 +1312,7 @@ void ContentSecurityPolicy::ReportViolation( +@@ -1267,6 +1269,7 @@ void ContentSecurityPolicy::ReportViolation( // `context_frame` (i.e. we're not processing 'frame-ancestors'). if (delegate_ && !context_frame) delegate_->DispatchViolationEvent(*violation_data, element); @@ -413,7 +413,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ #include "services/network/public/cpp/features.h" #include "services/network/public/mojom/content_security_policy.mojom-blink.h" #include "services/network/public/mojom/source_location.mojom-blink.h" -@@ -2772,9 +2773,11 @@ DocumentResourceCoordinator* LocalFrame::GetDocumentResourceCoordinator() { +@@ -2740,9 +2741,11 @@ DocumentResourceCoordinator* LocalFrame::GetDocumentResourceCoordinator() { return CHECK_DEREF(GetDocument()).GetResourceCoordinator(); } @@ -435,8 +435,8 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/b +#include "net/net_buildflags.h" #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" -@@ -662,7 +663,9 @@ class CORE_EXPORT LocalFrame final + #include "net/storage_access_api/status.h" +@@ -667,7 +668,9 @@ class CORE_EXPORT LocalFrame final return client_hints_preferences_; } @@ -457,7 +457,7 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_context.cc b/third_ #include "third_party/blink/public/platform/browser_interface_broker_proxy.h" #include "third_party/blink/public/platform/platform.h" #include "third_party/blink/public/platform/task_type.h" -@@ -58,7 +59,9 @@ const char ReportingContext::kSupplementName[] = "ReportingContext"; +@@ -59,7 +60,9 @@ const char ReportingContext::kSupplementName[] = "ReportingContext"; ReportingContext::ReportingContext(ExecutionContext& context) : Supplement(context), execution_context_(context), @@ -467,7 +467,7 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_context.cc b/third_ receivers_(this, &context) {} // static -@@ -125,7 +128,9 @@ void ReportingContext::Trace(Visitor* visitor) const { +@@ -126,7 +129,9 @@ void ReportingContext::Trace(Visitor* visitor) const { visitor->Trace(observers_); visitor->Trace(report_buffer_); visitor->Trace(execution_context_); @@ -477,7 +477,7 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_context.cc b/third_ visitor->Trace(receivers_); Supplement::Trace(visitor); } -@@ -148,6 +153,7 @@ void ReportingContext::CountReport(Report* report) { +@@ -149,6 +154,7 @@ void ReportingContext::CountReport(Report* report) { UseCounter::Count(execution_context_, feature); } @@ -485,7 +485,7 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_context.cc b/third_ const HeapMojoRemote& ReportingContext::GetReportingService() const { if (!reporting_service_.is_bound()) { -@@ -157,6 +163,7 @@ ReportingContext::GetReportingService() const { +@@ -158,6 +164,7 @@ ReportingContext::GetReportingService() const { } return reporting_service_; } @@ -493,7 +493,7 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_context.cc b/third_ void ReportingContext::NotifyInternal(Report* report) { if (!ShouldReportBeVisibleToObservers(report)) { -@@ -183,6 +190,7 @@ void ReportingContext::NotifyInternal(Report* report) { +@@ -184,6 +191,7 @@ void ReportingContext::NotifyInternal(Report* report) { void ReportingContext::SendToReportingAPI(Report* report, const String& endpoint) const { @@ -501,7 +501,7 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_context.cc b/third_ const String& type = report->type(); if (!(type == ReportType::kCSPViolation || type == ReportType::kCSPHash || type == ReportType::kDeprecation || -@@ -255,6 +263,7 @@ void ReportingContext::SendToReportingAPI(Report* report, +@@ -263,6 +271,7 @@ void ReportingContext::SendToReportingAPI(Report* report, url, endpoint, body->featureId(), body->disposition(), body->message(), body->sourceFile(), line_number, column_number); } diff --git a/build/patches/Allow-building-without-supervised-users.patch b/build/patches/Allow-building-without-supervised-users.patch index 7417decf..bbe8ac98 100644 --- a/build/patches/Allow-building-without-supervised-users.patch +++ b/build/patches/Allow-building-without-supervised-users.patch @@ -16,15 +16,15 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/ui/webui/management/management_ui_handler.cc | 4 ---- .../core/browser/supervised_user_pref_store.cc | 1 + .../core/browser/supervised_user_preferences.cc | 6 +++++- - .../core/browser/supervised_user_service.cc | 5 +---- + .../core/browser/supervised_user_service.cc | 1 + components/supervised_user/core/common/features.cc | 2 +- extensions/browser/api/management/management_api.cc | 1 + - 15 files changed, 13 insertions(+), 31 deletions(-) + 15 files changed, 13 insertions(+), 27 deletions(-) diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -803,7 +803,6 @@ if (_is_default_toolchain) { +@@ -805,7 +805,6 @@ if (_is_default_toolchain) { "//components/offline_pages/core:offline_page_model_enums_java", "//components/sharing_message:sharing_dialog_type_generated_enum", "//components/sharing_message:sharing_send_message_result_generated_enum", @@ -89,7 +89,7 @@ diff --git a/chrome/browser/profiles/profile_attributes_entry.cc b/chrome/browse diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc --- a/chrome/browser/profiles/profile_impl.cc +++ b/chrome/browser/profiles/profile_impl.cc -@@ -675,10 +675,6 @@ void ProfileImpl::DoFinalInit(CreateMode create_mode) { +@@ -674,10 +674,6 @@ void ProfileImpl::DoFinalInit(CreateMode create_mode) { prefs->SetTime(prefs::kProfileCreationTime, path_creation_time_); pref_change_registrar_.Init(prefs); @@ -100,7 +100,7 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p // Changes in the profile avatar. pref_change_registrar_.Add( -@@ -1624,6 +1620,7 @@ GURL ProfileImpl::GetHomePage() { +@@ -1619,6 +1615,7 @@ GURL ProfileImpl::GetHomePage() { } void ProfileImpl::UpdateSupervisedUserIdInStorage() { @@ -111,7 +111,7 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc --- a/chrome/browser/profiles/profile_manager.cc +++ b/chrome/browser/profiles/profile_manager.cc -@@ -1192,10 +1192,6 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) { +@@ -1191,10 +1191,6 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) { profile->GetPrefs()->SetString(prefs::kProfileName, profile_name); } @@ -122,7 +122,7 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile #if !BUILDFLAG(IS_ANDROID) if (profile->IsNewProfile()) { profile->GetPrefs()->SetBoolean(prefs::kHasSeenWelcomePage, false); -@@ -1975,9 +1971,6 @@ void ProfileManager::AddProfileToStorage(Profile* profile) { +@@ -1973,9 +1969,6 @@ void ProfileManager::AddProfileToStorage(Profile* profile) { init_params.icon_index = profile->GetPrefs()->GetInteger(prefs::kProfileAvatarIndex); @@ -174,7 +174,7 @@ diff --git a/chrome/browser/ui/webui/management/management_ui_handler.cc b/chrom diff --git a/components/supervised_user/core/browser/supervised_user_pref_store.cc b/components/supervised_user/core/browser/supervised_user_pref_store.cc --- a/components/supervised_user/core/browser/supervised_user_pref_store.cc +++ b/components/supervised_user/core/browser/supervised_user_pref_store.cc -@@ -126,6 +126,7 @@ SupervisedUserPrefStore::~SupervisedUserPrefStore() = default; +@@ -142,6 +142,7 @@ SupervisedUserPrefStore::~SupervisedUserPrefStore() = default; void SupervisedUserPrefStore::OnNewSettingsAvailable( const base::Value::Dict& settings) { @@ -185,7 +185,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 -@@ -158,6 +158,10 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { +@@ -164,6 +164,10 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { } void EnableParentalControls(PrefService& pref_service) { @@ -196,7 +196,7 @@ diff --git a/components/supervised_user/core/browser/supervised_user_preferences pref_service.SetString(prefs::kSupervisedUserId, supervised_user::kChildAccountSUID); #if BUILDFLAG(IS_CHROMEOS) -@@ -186,7 +190,7 @@ bool IsSafeSitesEnabled(const PrefService& pref_service) { +@@ -197,7 +201,7 @@ bool IsSafeSitesEnabled(const PrefService& pref_service) { } bool IsSubjectToParentalControls(const PrefService& pref_service) { @@ -208,25 +208,14 @@ diff --git a/components/supervised_user/core/browser/supervised_user_preferences diff --git a/components/supervised_user/core/browser/supervised_user_service.cc b/components/supervised_user/core/browser/supervised_user_service.cc --- a/components/supervised_user/core/browser/supervised_user_service.cc +++ b/components/supervised_user/core/browser/supervised_user_service.cc -@@ -92,10 +92,6 @@ void SupervisedUserService::Init() { - DCHECK(settings_service_->IsReady()); - - pref_change_registrar_.Init(&user_prefs_.get()); -- pref_change_registrar_.Add( -- prefs::kSupervisedUserId, -- base::BindRepeating(&SupervisedUserService::OnSupervisedUserIdChanged, -- base::Unretained(this))); - pref_change_registrar_.Add( - policy::policy_prefs::kIncognitoModeAvailability, - base::BindRepeating( -@@ -183,6 +179,7 @@ void SupervisedUserService::SetSettingsServiceActive(bool active) { +@@ -168,6 +168,7 @@ SupervisedUserService::SupervisedUserService( } - void SupervisedUserService::SetActive(bool active) { + void SupervisedUserService::SetSettingsServiceActive(bool active) { + active = false; - if (active_ == active) { - return; - } + settings_service_->SetActive(active); + + // Trigger a sync reconfig to enable/disable the right SU data types. 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 @@ -238,9 +227,9 @@ diff --git a/components/supervised_user/core/common/features.cc b/components/sup #if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ BUILDFLAG(IS_WIN) const int kLocalWebApprovalBottomSheetLoadTimeoutDefaultValueMs = 5000; -@@ -141,4 +140,5 @@ BASE_FEATURE(kWaitUntilAccessTokenAvailableForClassifyUrl, - #endif - ); +@@ -148,4 +147,5 @@ BASE_FEATURE(kDecoupleSafeSitesFromMainSwitch, + "DecoupleSafeSitesFromMainSwitch", + base::FEATURE_ENABLED_BY_DEFAULT); +SET_CROMITE_FEATURE_DISABLED(kLocalWebApprovals); } // namespace supervised_user diff --git a/build/patches/Allow-playing-audio-in-background.patch b/build/patches/Allow-playing-audio-in-background.patch index 384a858e..16b671d4 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 -@@ -1336,6 +1336,12 @@ void WebMediaPlayerImpl::OnSelectedVideoTrackChanged( +@@ -1340,6 +1340,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()); -@@ -3697,7 +3703,10 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const { +@@ -3710,7 +3716,10 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const { : HasAudio(); // Audio only stream is allowed to play when in background. diff --git a/build/patches/Always-use-new-tab-page-for-default-home-page.patch b/build/patches/Always-use-new-tab-page-for-default-home-page.patch index f20ce291..4d4075a0 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 @@ -18,7 +18,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/homepage/HomepageManager.java b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java -@@ -155,10 +155,6 @@ public class HomepageManager +@@ -148,10 +148,6 @@ public class HomepageManager * tab page if the homepage button is force enabled via flag. */ public GURL getDefaultHomepageGurl() { @@ -55,7 +55,7 @@ diff --git a/chrome/browser/partnercustomizations/java/src/org/chromium/chrome/b diff --git a/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrl.java b/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrl.java --- a/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrl.java +++ b/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrl.java -@@ -72,6 +72,7 @@ public class TemplateUrl { +@@ -85,6 +85,7 @@ public class TemplateUrl { * prepopulated_engines.json. */ public String getNewTabURL() { @@ -66,14 +66,14 @@ diff --git a/components/search_engines/android/java/src/org/chromium/components/ diff --git a/components/search_engines/android/template_url_service_android.cc b/components/search_engines/android/template_url_service_android.cc --- a/components/search_engines/android/template_url_service_android.cc +++ b/components/search_engines/android/template_url_service_android.cc -@@ -404,6 +404,7 @@ jboolean TemplateUrlServiceAndroid::SetPlayAPISearchEngine( +@@ -403,6 +403,7 @@ jboolean TemplateUrlServiceAndroid::SetPlayAPISearchEngine( jimage_translate_source_language_param_key, const base::android::JavaParamRef& jimage_translate_target_language_param_key) { + if ((true)) return false; // The function is scheduled to run only when the service is loaded, see // `TemplateUrlService#runWhenLoaded()`. - CHECK(template_url_service_->loaded(), base::NotFatalUntil::M128); + CHECK(template_url_service_->loaded()); diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/always-use-new-tab-page-for-default-home-page.inc b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/always-use-new-tab-page-for-default-home-page.inc new file mode 100755 --- /dev/null diff --git a/build/patches/Android-Import-Passwords.patch b/build/patches/Android-Import-Passwords.patch index d5ea213f..a225d98d 100644 --- a/build/patches/Android-Import-Passwords.patch +++ b/build/patches/Android-Import-Passwords.patch @@ -50,7 +50,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage @@ -151,6 +154,8 @@ public class PasswordSettings extends ChromeBaseSettingsFragment /** For controlling the UX flow of exporting passwords. */ - private ExportFlow mExportFlow = new ExportFlow(PasswordAccessLossWarningType.NONE); + private final ExportFlow mExportFlow = new ExportFlow(PasswordAccessLossWarningType.NONE); + private ActivityWindowAndroid mWindowAndroid; + private IntentRequestTracker mIntentRequestTracker; @@ -89,7 +89,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage if (id == R.id.export_passwords) { RecordHistogram.recordEnumeratedHistogram( mExportFlow.getExportEventHistogramName(), -@@ -501,6 +525,7 @@ public class PasswordSettings extends ChromeBaseSettingsFragment +@@ -506,6 +530,7 @@ public class PasswordSettings extends ChromeBaseSettingsFragment @Override public void onActivityResult(int requestCode, int resultCode, Intent intent) { super.onActivityResult(requestCode, resultCode, intent); @@ -97,7 +97,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage if (requestCode != PASSWORD_EXPORT_INTENT_REQUEST_CODE) return; if (resultCode != Activity.RESULT_OK) return; if (intent == null || intent.getData() == null) return; -@@ -512,12 +537,21 @@ public class PasswordSettings extends ChromeBaseSettingsFragment +@@ -517,12 +542,21 @@ public class PasswordSettings extends ChromeBaseSettingsFragment public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); mExportFlow.onSaveInstanceState(outState); diff --git a/build/patches/Android-fonts-fingerprinting-mitigation.patch b/build/patches/Android-fonts-fingerprinting-mitigation.patch index 30d252b9..8a59c549 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 -@@ -1081,6 +1081,9 @@ public final class ProductionSupportedFlagList { +@@ -1046,6 +1046,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 -@@ -7790,6 +7790,13 @@ static_library("browser") { +@@ -7888,6 +7888,13 @@ static_library("browser") { } } @@ -123,7 +123,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/component_updater/registration.cc b/chrome/browser/component_updater/registration.cc --- a/chrome/browser/component_updater/registration.cc +++ b/chrome/browser/component_updater/registration.cc -@@ -122,10 +122,20 @@ +@@ -123,10 +123,20 @@ #include "chrome/browser/component_updater/file_type_policies_component_installer.h" #endif @@ -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 -@@ -294,6 +294,9 @@ static_library("renderer") { +@@ -292,6 +292,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 -@@ -2572,6 +2572,17 @@ source_set("browser") { +@@ -2581,6 +2581,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" ] -@@ -2614,6 +2625,13 @@ source_set("browser") { +@@ -2626,6 +2637,13 @@ source_set("browser") { ] } @@ -649,7 +649,7 @@ diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn diff --git a/content/browser/renderer_host/render_process_host_impl_receiver_bindings.cc b/content/browser/renderer_host/render_process_host_impl_receiver_bindings.cc --- a/content/browser/renderer_host/render_process_host_impl_receiver_bindings.cc +++ b/content/browser/renderer_host/render_process_host_impl_receiver_bindings.cc -@@ -50,6 +50,11 @@ +@@ -51,6 +51,11 @@ #include "third_party/blink/public/mojom/android_font_lookup/android_font_lookup.mojom.h" #endif @@ -661,7 +661,7 @@ diff --git a/content/browser/renderer_host/render_process_host_impl_receiver_bin #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) #include "components/services/font/public/mojom/font_service.mojom.h" // nogncheck #include "content/browser/font_service.h" // nogncheck -@@ -332,6 +337,13 @@ void RenderProcessHostImpl::IOThreadHostImpl::BindHostReceiver( +@@ -336,6 +341,13 @@ void RenderProcessHostImpl::IOThreadHostImpl::BindHostReceiver( } #endif @@ -695,7 +695,7 @@ diff --git a/content/child/BUILD.gn b/content/child/BUILD.gn diff --git a/content/renderer/BUILD.gn b/content/renderer/BUILD.gn --- a/content/renderer/BUILD.gn +++ b/content/renderer/BUILD.gn -@@ -353,6 +353,10 @@ target(link_target_type, "renderer") { +@@ -347,6 +347,10 @@ target(link_target_type, "renderer") { deps += [ "//services/screen_ai/public/mojom" ] } @@ -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 -@@ -137,6 +137,23 @@ +@@ -136,6 +136,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; -@@ -179,6 +196,37 @@ gpu::ContextType ToGpuContextType(blink::Platform::ContextType type) { +@@ -178,6 +195,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 //------------------------------------------------------------------------------ -@@ -192,18 +240,21 @@ RendererBlinkPlatformImpl::RendererBlinkPlatformImpl( +@@ -191,18 +239,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 -@@ -441,6 +441,18 @@ component("skia") { +@@ -457,6 +457,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 bbc84a9a..7420e89a 100644 --- a/build/patches/Ask-for-restart-on-connection-change.patch +++ b/build/patches/Ask-for-restart-on-connection-change.patch @@ -282,7 +282,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java -@@ -1343,7 +1343,10 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1373,7 +1373,10 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { mActivity, mStatusIndicatorCoordinator, isUrlBarFocusedSupplier, @@ -416,7 +416,7 @@ diff --git a/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/brows diff --git a/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManagerImpl.java b/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManagerImpl.java --- a/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManagerImpl.java +++ b/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManagerImpl.java -@@ -552,6 +552,16 @@ public class TabWindowManagerImpl implements TabWindowManager { +@@ -555,6 +555,16 @@ public class TabWindowManagerImpl implements TabWindowManager { return tabGroupModelFilter.getTabsInGroup(tabGroupId); } @@ -494,7 +494,7 @@ diff --git a/chrome/browser/ui/messages/android/java/res/layout/snackbar.xml b/c diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/Snackbar.java b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/Snackbar.java --- a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/Snackbar.java +++ b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/Snackbar.java -@@ -135,6 +135,8 @@ public class Snackbar { +@@ -136,6 +136,8 @@ public class Snackbar { private @Nullable String mTemplateText; private @Nullable String mActionText; private @Nullable Object mActionData; @@ -503,7 +503,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro private int mBackgroundColor; private int mTextApperanceResId; private boolean mSingleLine = true; -@@ -240,6 +242,20 @@ public class Snackbar { +@@ -241,6 +243,20 @@ public class Snackbar { return this; } @@ -635,7 +635,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 -@@ -3865,8 +3865,10 @@ void WebContentsImpl::Stop() { +@@ -3991,8 +3991,10 @@ void WebContentsImpl::Stop() { void WebContentsImpl::SetPageFrozen(bool frozen) { TRACE_EVENT1("content", "WebContentsImpl::SetPageFrozen", "frozen", frozen); @@ -649,7 +649,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 -@@ -1131,6 +1131,12 @@ public class WebContentsImpl +@@ -1130,6 +1130,12 @@ public class WebContentsImpl WebContentsImplJni.get().setFocus(mNativeWebContentsAndroid, hasFocus); } @@ -662,7 +662,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/webcon @Override public void setDisplayCutoutSafeArea(Rect insets) { if (mNativeWebContentsAndroid == 0) return; -@@ -1435,6 +1441,8 @@ public class WebContentsImpl +@@ -1450,6 +1456,8 @@ public class WebContentsImpl void setFocus(long nativeWebContentsAndroid, boolean focused); @@ -674,7 +674,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 -@@ -290,6 +290,8 @@ public interface WebContents extends Parcelable { +@@ -283,6 +283,8 @@ public interface WebContents extends Parcelable { */ void setFocus(boolean hasFocus); @@ -731,7 +731,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 -@@ -4380,6 +4380,7 @@ void Document::DispatchUnloadEvents(UnloadEventTimingInfo* unload_timing_info) { +@@ -4387,6 +4387,7 @@ void Document::DispatchUnloadEvents(UnloadEventTimingInfo* unload_timing_info) { } void Document::DispatchFreezeEvent() { @@ -742,7 +742,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 -@@ -3206,6 +3206,7 @@ void LocalFrame::DidFreeze() { +@@ -3178,6 +3178,7 @@ void LocalFrame::DidFreeze() { LoaderFreezeMode freeze_mode = GetLoaderFreezeMode(); GetDocument()->Fetcher()->SetDefersLoading(freeze_mode); Loader().SetDefersLoading(freeze_mode); @@ -750,7 +750,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ } void LocalFrame::DidResume() { -@@ -3220,6 +3221,7 @@ void LocalFrame::DidResume() { +@@ -3192,6 +3193,7 @@ void LocalFrame::DidResume() { GetDocument()->Fetcher()->SetDefersLoading(LoaderFreezeMode::kNone); Loader().SetDefersLoading(LoaderFreezeMode::kNone); diff --git a/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch b/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch index 995d638d..b28a2a8d 100644 --- a/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch +++ b/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch @@ -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 -@@ -545,9 +545,8 @@ +@@ -562,9 +562,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 aa2b0690..57389321 100644 --- a/build/patches/Block-gateway-attacks-via-websockets.patch +++ b/build/patches/Block-gateway-attacks-via-websockets.patch @@ -24,7 +24,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/third_party/blink/renderer/core/execution_context/execution_context.cc b/third_party/blink/renderer/core/execution_context/execution_context.cc --- a/third_party/blink/renderer/core/execution_context/execution_context.cc +++ b/third_party/blink/renderer/core/execution_context/execution_context.cc -@@ -707,6 +707,21 @@ void ExecutionContext::WriteIntoTrace( +@@ -713,6 +713,21 @@ void ExecutionContext::WriteIntoTrace( proto->set_world_type(GetWorldType(*this)); } @@ -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 -@@ -1007,6 +1007,26 @@ bool FrameFetchContext::ShouldBlockRequestByInspector(const KURL& url) const { +@@ -1033,6 +1033,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, +@@ -184,6 +184,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext, bool ShouldBlockWebSocketByMixedContentCheck(const KURL&) const override; std::unique_ptr CreateWebSocketHandshakeThrottle() override; @@ -176,7 +176,7 @@ diff --git a/third_party/blink/renderer/core/workers/installed_scripts_manager.c diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.cc b/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.cc --- a/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.cc +++ b/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.cc -@@ -102,6 +102,30 @@ bool ShouldBlockDanglingMarkup(const KURL& request_url) { +@@ -103,6 +103,30 @@ bool ShouldBlockDanglingMarkup(const KURL& request_url) { request_url.ProtocolIsInHTTPFamily(); } @@ -207,7 +207,7 @@ diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetc scoped_refptr ExtractBlobHandle( Request* request, ExceptionState& exception_state) { -@@ -189,6 +213,13 @@ ScriptPromise BackgroundFetchManager::fetch( +@@ -190,6 +214,13 @@ ScriptPromise BackgroundFetchManager::fetch( exception_state); } 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 052c3403..542b35f8 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 -@@ -5104,7 +5104,17 @@ void RenderFrameHostImpl::SetLastCommittedOrigin( +@@ -5023,7 +5023,17 @@ void RenderFrameHostImpl::SetLastCommittedOrigin( } void RenderFrameHostImpl::SetInheritedBaseUrl(const GURL& inherited_base_url) { @@ -82,7 +82,7 @@ diff --git a/third_party/blink/renderer/core/frame/location.cc b/third_party/bli #include "third_party/blink/renderer/bindings/core/v8/binding_security.h" #include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_core.h" #include "third_party/blink/renderer/core/dom/document.h" -@@ -125,8 +126,20 @@ DOMStringList* Location::ancestorOrigins() const { +@@ -126,8 +127,20 @@ DOMStringList* Location::ancestorOrigins() const { auto* origins = MakeGarbageCollected(); if (!IsAttached()) return origins; @@ -106,7 +106,7 @@ diff --git a/third_party/blink/renderer/core/frame/location.cc b/third_party/bli diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc --- a/third_party/blink/renderer/core/loader/document_loader.cc +++ b/third_party/blink/renderer/core/loader/document_loader.cc -@@ -834,6 +834,11 @@ WebString DocumentLoader::HttpMethod() const { +@@ -832,6 +832,11 @@ WebString DocumentLoader::HttpMethod() const { } const AtomicString& DocumentLoader::GetReferrer() const { @@ -118,7 +118,7 @@ diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_p return referrer_; } -@@ -2939,6 +2944,13 @@ void DocumentLoader::CommitNavigation() { +@@ -2897,6 +2902,13 @@ void DocumentLoader::CommitNavigation() { response_.HttpHeaderField(http_names::kDocumentPolicyReportOnly)); } @@ -135,7 +135,7 @@ diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_p diff --git a/third_party/blink/renderer/core/loader/document_loader.h b/third_party/blink/renderer/core/loader/document_loader.h --- a/third_party/blink/renderer/core/loader/document_loader.h +++ b/third_party/blink/renderer/core/loader/document_loader.h -@@ -782,7 +782,7 @@ class CORE_EXPORT DocumentLoader : public GarbageCollected, +@@ -775,7 +775,7 @@ class CORE_EXPORT DocumentLoader : public GarbageCollected, // |archive_|, but won't have |loading_main_document_from_mhtml_archive_| set. bool loading_main_document_from_mhtml_archive_ = false; const bool loading_srcdoc_ = false; diff --git a/build/patches/Block-qjz9zk-or-trk-requests.patch b/build/patches/Block-qjz9zk-or-trk-requests.patch index 0753c335..5ce968cc 100644 --- a/build/patches/Block-qjz9zk-or-trk-requests.patch +++ b/build/patches/Block-qjz9zk-or-trk-requests.patch @@ -64,7 +64,7 @@ diff --git a/chrome/browser/ui/singleton_tabs.cc b/chrome/browser/ui/singleton_t diff --git a/components/omnibox/browser/autocomplete_input.cc b/components/omnibox/browser/autocomplete_input.cc --- a/components/omnibox/browser/autocomplete_input.cc +++ b/components/omnibox/browser/autocomplete_input.cc -@@ -96,10 +96,15 @@ void OffsetComponentsExcludingScheme(url::Parsed* parts, int offset) { +@@ -92,10 +92,15 @@ void OffsetComponentsExcludingScheme(url::Parsed* parts, int offset) { bool HasScheme(const std::u16string& input, const char* scheme) { std::string utf8_input(base::UTF16ToUTF8(input)); url::Component view_source_scheme; @@ -80,7 +80,7 @@ diff --git a/components/omnibox/browser/autocomplete_input.cc b/components/omnib return url::FindAndCompareScheme(utf8_input, scheme, nullptr); } -@@ -582,7 +587,8 @@ void AutocompleteInput::ParseForEmphasizeComponents( +@@ -578,7 +583,8 @@ void AutocompleteInput::ParseForEmphasizeComponents( // For the view-source and blob schemes, we should emphasize the host of the // URL qualified by the view-source or blob prefix. if ((base::EqualsCaseInsensitiveASCII(scheme_str, kViewSourceScheme) || @@ -107,7 +107,7 @@ diff --git a/components/url_formatter/url_fixer.cc b/components/url_formatter/ur diff --git a/content/browser/child_process_security_policy_impl.cc b/content/browser/child_process_security_policy_impl.cc --- a/content/browser/child_process_security_policy_impl.cc +++ b/content/browser/child_process_security_policy_impl.cc -@@ -951,6 +951,7 @@ ChildProcessSecurityPolicyImpl::ChildProcessSecurityPolicyImpl() +@@ -950,6 +950,7 @@ ChildProcessSecurityPolicyImpl::ChildProcessSecurityPolicyImpl() RegisterPseudoScheme(url::kJavaScriptScheme); RegisterPseudoScheme(kViewSourceScheme); RegisterPseudoScheme(kGoogleChromeScheme); @@ -118,7 +118,7 @@ diff --git a/content/browser/child_process_security_policy_impl.cc b/content/bro diff --git a/net/BUILD.gn b/net/BUILD.gn --- a/net/BUILD.gn +++ b/net/BUILD.gn -@@ -1108,6 +1108,8 @@ component("net") { +@@ -1115,6 +1115,8 @@ component("net") { "url_request/url_request_http_job.cc", "url_request/url_request_http_job.h", "url_request/url_request_interceptor.cc", diff --git a/build/patches/Bookmarks-select-all-menu-entry.patch b/build/patches/Bookmarks-select-all-menu-entry.patch index faf57ee1..e66fb331 100644 --- a/build/patches/Bookmarks-select-all-menu-entry.patch +++ b/build/patches/Bookmarks-select-all-menu-entry.patch @@ -31,7 +31,7 @@ diff --git a/chrome/android/java/res/menu/bookmark_toolbar_menu_improved.xml b/c diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java --- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java +++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java -@@ -25,6 +25,7 @@ import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelega +@@ -29,6 +29,7 @@ import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelega import java.util.ArrayList; import java.util.List; import java.util.function.Function; @@ -39,7 +39,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows /** * Main toolbar of bookmark UI. It is responsible for displaying title and buttons associated with -@@ -186,6 +187,11 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -191,6 +192,11 @@ public class BookmarkToolbar extends SelectableListToolbar void setCurrentFolder(BookmarkId folder) { mCurrentFolder = mBookmarkModel.getBookmarkById(folder); enableImportExportMenu(); @@ -51,7 +51,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows } void enableImportExportMenu() { -@@ -221,6 +227,17 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -227,6 +233,17 @@ public class BookmarkToolbar extends SelectableListToolbar mExportBookmarkRunnable.run(); return true; } @@ -66,10 +66,10 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows + } + return true; + } - return mMenuIdClickedFunction.apply(menuItem.getItemId()); + return assumeNonNull(mMenuIdClickedFunction).apply(menuItem.getItemId()); } -@@ -243,6 +260,7 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -249,6 +266,7 @@ public class BookmarkToolbar extends SelectableListToolbar getMenu().findItem(R.id.import_menu_id).setVisible(mCurrentFolder != null); getMenu().findItem(R.id.export_menu_id).setVisible(mCurrentFolder != null); diff --git a/build/patches/Bromite-subresource-adblocker.patch b/build/patches/Bromite-subresource-adblocker.patch index 1424f0d0..e7378357 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 -@@ -441,6 +441,7 @@ chrome_java_resources = [ +@@ -440,6 +440,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", -@@ -636,6 +637,7 @@ chrome_java_resources = [ +@@ -634,6 +635,7 @@ chrome_java_resources = [ "java/res/xml/account_management_preferences.xml", "java/res/xml/ad_services_config.xml", "java/res/xml/appearance_preferences.xml", @@ -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 -@@ -928,9 +928,7 @@ public class TabModelImpl extends TabModelJniBridge { +@@ -942,9 +942,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 -@@ -16665,6 +16665,16 @@ Please help our engineers fix this problem. Tell us what happened right before y +@@ -16713,6 +16713,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 -@@ -1270,6 +1270,34 @@ BrowserProcessImpl::component_updater() { +@@ -1271,6 +1271,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 -@@ -642,6 +642,10 @@ void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) { +@@ -653,6 +653,10 @@ void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) { StubResolverConfigReader::RegisterPrefs(registry); DefaultDnsOverHttpsConfigSource::RegisterPrefs(registry); @@ -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 -@@ -2889,6 +2889,11 @@ inline constexpr char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled"; +@@ -2895,6 +2895,11 @@ inline constexpr char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled"; inline constexpr char kAudioCaptureAllowedUrls[] = "hardware.audio_capture_allowed_urls"; @@ -1573,7 +1573,7 @@ new file mode 100644 diff --git a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc --- a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc +++ b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc -@@ -19,6 +19,9 @@ +@@ -18,6 +18,9 @@ #include "base/trace_event/trace_event.h" #include "base/trace_event/traced_value.h" #include "base/tracing/protos/chrome_track_event.pbzero.h" @@ -1583,7 +1583,7 @@ diff --git a/components/subresource_filter/content/browser/content_subresource_f #include "components/subresource_filter/content/browser/ad_tagging_utils.h" #include "components/subresource_filter/content/browser/content_subresource_filter_web_contents_helper.h" #include "components/subresource_filter/content/browser/profile_interaction_manager.h" -@@ -115,6 +118,7 @@ ContentSubresourceFilterThrottleManager:: +@@ -114,6 +117,7 @@ ContentSubresourceFilterThrottleManager:: profile_interaction_manager_( std::make_unique( profile_context)), @@ -1591,7 +1591,7 @@ diff --git a/components/subresource_filter/content/browser/content_subresource_f web_contents_helper_(web_contents_helper) {} ContentSubresourceFilterThrottleManager:: -@@ -637,6 +641,17 @@ ContentSubresourceFilterThrottleManager:: +@@ -628,6 +632,17 @@ ContentSubresourceFilterThrottleManager:: throttle->NotifyPageActivationWithRuleset(EnsureRulesetHandle(), ad_tagging_state); } @@ -1612,7 +1612,7 @@ diff --git a/components/subresource_filter/content/browser/content_subresource_f diff --git a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.h b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.h --- a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.h +++ b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.h -@@ -405,6 +405,8 @@ class ContentSubresourceFilterThrottleManager +@@ -403,6 +403,8 @@ class ContentSubresourceFilterThrottleManager std::unique_ptr profile_interaction_manager_; @@ -1624,7 +1624,7 @@ diff --git a/components/subresource_filter/content/browser/content_subresource_f diff --git a/components/subresource_filter/content/shared/browser/ruleset_service.cc b/components/subresource_filter/content/shared/browser/ruleset_service.cc --- a/components/subresource_filter/content/shared/browser/ruleset_service.cc +++ b/components/subresource_filter/content/shared/browser/ruleset_service.cc -@@ -51,12 +51,7 @@ namespace { +@@ -50,12 +50,7 @@ namespace { void RecordIndexAndWriteRulesetResult( std::string_view uma_tag, RulesetService::IndexAndWriteRulesetResult result) { @@ -1638,7 +1638,7 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic } // Implements operations on a `sentinel file`, which is used as a safeguard to -@@ -240,11 +235,13 @@ RulesetService::RulesetService( +@@ -237,11 +232,13 @@ RulesetService::RulesetService( RulesetService::~RulesetService() = default; void RulesetService::IndexAndStoreAndPublishRulesetIfNeeded( @@ -1653,7 +1653,7 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic // Trying to store a ruleset with the same version for a second time would // not only be futile, but would fail on Windows due to "File System // Tunneling" as long as the previously stored copy of the rules is still -@@ -254,13 +251,16 @@ void RulesetService::IndexAndStoreAndPublishRulesetIfNeeded( +@@ -251,13 +248,16 @@ void RulesetService::IndexAndStoreAndPublishRulesetIfNeeded( if (most_recently_indexed_version.IsCurrentFormatVersion() && most_recently_indexed_version.content_version == unindexed_ruleset_info.content_version) { @@ -1670,7 +1670,7 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic return; } -@@ -280,6 +280,23 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( +@@ -277,6 +277,23 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( const RulesetConfig& config, const base::FilePath& indexed_ruleset_base_dir, const UnindexedRulesetInfo& unindexed_ruleset_info) { @@ -1694,7 +1694,7 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic base::ScopedBlockingCall scoped_blocking_call(FROM_HERE, base::BlockingType::MAY_BLOCK); -@@ -287,6 +304,7 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( +@@ -284,6 +301,7 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( unindexed_ruleset_info); if (!unindexed_ruleset_stream_generator.ruleset_stream()) { @@ -1702,7 +1702,7 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic RecordIndexAndWriteRulesetResult( config.uma_tag, IndexAndWriteRulesetResult::kFailedOpeningUnindexedRuleset); -@@ -301,6 +319,7 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( +@@ -298,6 +316,7 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( indexed_ruleset_base_dir, indexed_version); if (!base::CreateDirectory(indexed_ruleset_version_dir)) { @@ -1710,7 +1710,7 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic RecordIndexAndWriteRulesetResult( config.uma_tag, IndexAndWriteRulesetResult::kFailedCreatingVersionDir); return IndexedRulesetVersion(config.filter_tag); -@@ -308,13 +327,11 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( +@@ -305,13 +324,11 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( SentinelFile sentinel_file(indexed_ruleset_version_dir); if (sentinel_file.IsPresent()) { @@ -1726,7 +1726,7 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic RecordIndexAndWriteRulesetResult( config.uma_tag, IndexAndWriteRulesetResult::kFailedCreatingSentinelFile); -@@ -329,6 +346,7 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( +@@ -326,6 +343,7 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( RulesetIndexer indexer; if (!(*g_index_ruleset_func)(config, &unindexed_ruleset_stream_generator, &indexer)) { @@ -1734,7 +1734,7 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic RecordIndexAndWriteRulesetResult( config.uma_tag, IndexAndWriteRulesetResult::kFailedParsingUnindexedRuleset); -@@ -349,9 +367,12 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( +@@ -346,9 +364,12 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( unindexed_ruleset_info.license_path, indexer.data()); RecordIndexAndWriteRulesetResult(config.uma_tag, result); if (result != IndexAndWriteRulesetResult::kSuccess) { @@ -1744,13 +1744,13 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic + LOG(INFO) << "RulesetService: successful parsing."; + - CHECK(indexed_version.IsValid(), base::NotFatalUntil::M129); + CHECK(indexed_version.IsValid()); return indexed_version; } -@@ -477,6 +498,7 @@ void RulesetService::IndexAndStoreRuleset( +@@ -472,6 +493,7 @@ void RulesetService::IndexAndStoreRuleset( void RulesetService::OnWrittenRuleset(WriteRulesetCallback result_callback, const IndexedRulesetVersion& version) { - CHECK(!result_callback.is_null(), base::NotFatalUntil::M129); + CHECK(!result_callback.is_null()); + LOG(INFO) << "RulesetService: valid version: " << version.IsValid(); if (!version.IsValid()) { return; @@ -1783,7 +1783,7 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic diff --git a/components/subresource_filter/content/shared/browser/unindexed_ruleset_stream_generator.cc b/components/subresource_filter/content/shared/browser/unindexed_ruleset_stream_generator.cc --- a/components/subresource_filter/content/shared/browser/unindexed_ruleset_stream_generator.cc +++ b/components/subresource_filter/content/shared/browser/unindexed_ruleset_stream_generator.cc -@@ -13,6 +13,7 @@ +@@ -12,6 +12,7 @@ #include "third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl.h" #include "third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.h" #include "ui/base/resource/resource_bundle.h" @@ -1791,7 +1791,7 @@ diff --git a/components/subresource_filter/content/shared/browser/unindexed_rule namespace subresource_filter { -@@ -49,6 +50,8 @@ void UnindexedRulesetStreamGenerator::GenerateStreamFromFile( +@@ -46,6 +47,8 @@ void UnindexedRulesetStreamGenerator::GenerateStreamFromFile( ruleset_size_ = unindexed_ruleset_file.GetLength(); @@ -1978,10 +1978,10 @@ diff --git a/components/subresource_filter/core/browser/verified_ruleset_dealer. #include "base/functional/callback_helpers.h" #include "base/location.h" +#include "base/logging.h" - #include "base/not_fatal_until.h" #include "base/notreached.h" #include "base/task/sequenced_task_runner.h" -@@ -40,6 +41,9 @@ RulesetFilePtr VerifiedRulesetDealer::OpenAndSetRulesetFile( + #include "base/trace_event/trace_event.h" +@@ -39,6 +40,9 @@ RulesetFilePtr VerifiedRulesetDealer::OpenAndSetRulesetFile( TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("loading"), "VerifiedRulesetDealer::OpenAndSetRulesetFile", "file_valid", file->IsValid()); @@ -2000,9 +2000,9 @@ diff --git a/components/subresource_filter/core/common/indexed_ruleset.cc b/comp #include "base/hash/hash.h" +#include "base/logging.h" #include "base/metrics/histogram_functions.h" - #include "base/not_fatal_until.h" #include "base/strings/strcat.h" -@@ -38,7 +39,9 @@ VerifyStatus GetVerifyStatus(base::span buffer, + #include "base/trace_event/trace_event.h" +@@ -37,7 +38,9 @@ VerifyStatus GetVerifyStatus(base::span buffer, // least once. The verifier detects a subset of the errors detected by the // checksum, and is unneeded once expected_checksum is consistently nonzero. flatbuffers::Verifier verifier(buffer.data(), buffer.size()); diff --git a/build/patches/Bubble-Locking-on-UI-DevTools.patch b/build/patches/Bubble-Locking-on-UI-DevTools.patch index 1233d6d7..3f7fd8ad 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 -@@ -1402,6 +1402,19 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, +@@ -1406,6 +1406,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. -@@ -1440,13 +1453,6 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, +@@ -1444,13 +1457,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; -@@ -1457,11 +1463,6 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, +@@ -1461,11 +1467,6 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, friend class ui_devtools::BubbleLocking; friend void DisableActivationChangeHandlingForTests(); diff --git a/build/patches/Change-popup-site-setting.patch b/build/patches/Change-popup-site-setting.patch index d11b7553..56e74ffe 100644 --- a/build/patches/Change-popup-site-setting.patch +++ b/build/patches/Change-popup-site-setting.patch @@ -23,7 +23,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/ui/blocked_content/tab_under_navigation_throttle.cc b/chrome/browser/ui/blocked_content/tab_under_navigation_throttle.cc --- a/chrome/browser/ui/blocked_content/tab_under_navigation_throttle.cc +++ b/chrome/browser/ui/blocked_content/tab_under_navigation_throttle.cc -@@ -142,9 +142,14 @@ TabUnderNavigationThrottle::MaybeBlockNavigation() { +@@ -143,9 +143,14 @@ TabUnderNavigationThrottle::MaybeBlockNavigation() { LogTabUnderAttempt(navigation_handle()); diff --git a/build/patches/Chrome-web-store-protection.patch b/build/patches/Chrome-web-store-protection.patch index 0bd4b90e..60ba4ab9 100644 --- a/build/patches/Chrome-web-store-protection.patch +++ b/build/patches/Chrome-web-store-protection.patch @@ -129,7 +129,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_a diff --git a/chrome/browser/extensions/api/developer_private/developer_private_functions_shared.cc b/chrome/browser/extensions/api/developer_private/developer_private_functions_shared.cc --- a/chrome/browser/extensions/api/developer_private/developer_private_functions_shared.cc +++ b/chrome/browser/extensions/api/developer_private/developer_private_functions_shared.cc -@@ -300,6 +300,7 @@ ExtensionFunction::ResponseAction DeveloperPrivateAutoUpdateFunction::Run() { +@@ -301,6 +301,7 @@ ExtensionFunction::ResponseAction DeveloperPrivateAutoUpdateFunction::Run() { ExtensionUpdater::CheckParams params; params.fetch_priority = DownloadFetchPriority::kForeground; params.install_immediately = true; @@ -137,7 +137,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_f params.callback = base::BindOnce(&DeveloperPrivateAutoUpdateFunction::OnComplete, this); updater->CheckNow(std::move(params)); -@@ -438,7 +439,7 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() { +@@ -439,7 +440,7 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() { const developer::ProfileConfigurationUpdate& update = params->update; @@ -146,7 +146,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_f Profile* profile = Profile::FromBrowserContext(browser_context()); CHECK(profile); if (supervised_user::AreExtensionsPermissionsEnabled(profile)) { -@@ -455,6 +456,11 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() { +@@ -456,6 +457,11 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() { } #endif // !BUILDFLAG(IS_ANDROID) @@ -181,7 +181,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/profile_info_genera diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc b/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc --- a/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc +++ b/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc -@@ -61,6 +61,7 @@ +@@ -60,6 +60,7 @@ #include "extensions/browser/extension_util.h" #include "extensions/browser/extensions_browser_client.h" #include "extensions/common/extension.h" @@ -189,7 +189,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api #include "extensions/common/manifest.h" #include "extensions/common/manifest_constants.h" #include "extensions/common/manifest_handlers/permissions_parser.h" -@@ -224,6 +225,8 @@ WebstorePrivateApi::Delegate* test_delegate = nullptr; +@@ -223,6 +224,8 @@ WebstorePrivateApi::Delegate* test_delegate = nullptr; // there was previously stored data, or an empty string otherwise. The Set will // overwrite any previous login. std::string GetWebstoreLogin(Profile* profile) { @@ -198,7 +198,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api if (profile->GetPrefs()->HasPrefPath(kWebstoreLogin)) { return profile->GetPrefs()->GetString(kWebstoreLogin); } -@@ -231,11 +234,15 @@ std::string GetWebstoreLogin(Profile* profile) { +@@ -230,11 +233,15 @@ std::string GetWebstoreLogin(Profile* profile) { } void SetWebstoreLogin(Profile* profile, const std::string& login) { @@ -214,7 +214,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api switch (status) { case kCanRequest: return api::webstore_private::ExtensionInstallStatus::kCanRequest; -@@ -1160,7 +1167,8 @@ ExtensionFunction::ResponseAction +@@ -1157,7 +1164,8 @@ ExtensionFunction::ResponseAction WebstorePrivateIsInIncognitoModeFunction::Run() { Profile* profile = Profile::FromBrowserContext(browser_context()); return RespondNow(ArgumentList(IsInIncognitoMode::Results::Create( @@ -224,7 +224,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api } WebstorePrivateIsPendingCustodianApprovalFunction:: -@@ -1256,11 +1264,14 @@ WebstorePrivateGetReferrerChainFunction::Run() { +@@ -1253,11 +1261,14 @@ WebstorePrivateGetReferrerChainFunction::Run() { request.mutable_referrer_chain_options()->set_recent_navigations_to_collect( recent_navigations_to_collect); @@ -300,7 +300,7 @@ diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/ext ExtensionManagementFactory::GetForBrowserContext(profile_)->AddObserver(this); if (autoupdate_enabled) { -@@ -772,7 +770,7 @@ void ExtensionService::OnExtensionManagementSettingsChanged() { +@@ -756,7 +754,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. @@ -323,7 +323,7 @@ diff --git a/chrome/browser/extensions/updater/chrome_extension_downloader_facto diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/browser/extensions/updater/extension_updater.cc --- a/chrome/browser/extensions/updater/extension_updater.cc +++ b/chrome/browser/extensions/updater/extension_updater.cc -@@ -56,6 +56,7 @@ +@@ -55,6 +55,7 @@ #include "extensions/common/constants.h" #include "extensions/common/extension.h" #include "extensions/common/extension_id.h" @@ -331,7 +331,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro #include "extensions/common/extension_set.h" #include "extensions/common/extension_updater_uma.h" #include "extensions/common/extension_urls.h" -@@ -229,6 +230,10 @@ void ExtensionUpdater::Start() { +@@ -228,6 +229,10 @@ void ExtensionUpdater::Start() { DCHECK(!weak_ptr_factory_.HasWeakPtrs()); DCHECK(registry_); alive_ = true; @@ -342,7 +342,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro // Check soon, and set up the first delayed check. if (!g_skip_scheduled_checks_for_tests) { if (g_should_immediately_update) -@@ -386,7 +391,8 @@ void ExtensionUpdater::AddToDownloader( +@@ -385,7 +390,8 @@ void ExtensionUpdater::AddToDownloader( const Extension& extension = **extension_iter; const ExtensionId& extension_id = extension.id(); if (!Manifest::IsAutoUpdateableLocation(extension.location())) { @@ -352,7 +352,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro continue; } // An extension might be overwritten by policy, and have its update url -@@ -400,7 +406,7 @@ void ExtensionUpdater::AddToDownloader( +@@ -399,7 +405,7 @@ void ExtensionUpdater::AddToDownloader( continue; } @@ -361,7 +361,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro update_check_params->update_info[extension_id] = GetExtensionUpdateData(extension_id); } else if (AddExtensionToDownloader(extension, request_id, -@@ -437,6 +443,12 @@ bool ExtensionUpdater::AddExtensionToDownloader( +@@ -436,6 +442,12 @@ bool ExtensionUpdater::AddExtensionToDownloader( } void ExtensionUpdater::CheckNow(CheckParams params) { @@ -374,7 +374,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro CHECK(enabled_); if (params.ids.empty()) { // Checking all extensions. Cancel pending DoCheckSoon() call if there's -@@ -446,7 +458,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -445,7 +457,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { int request_id = next_request_id_++; @@ -383,7 +383,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro if (params.ids.empty()) NotifyStarted(); -@@ -514,7 +526,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -513,7 +525,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { update_check_params.update_info[pending_id] = GetExtensionUpdateData(pending_id); } else if (!Manifest::IsAutoUpdateableLocation(info->install_source())) { @@ -392,7 +392,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro continue; } // We have to mark high-priority extensions (such as policy-forced -@@ -524,7 +536,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -523,7 +535,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { // See https://crbug.com/904600 and https://crbug.com/965686. const bool is_high_priority_extension_pending = pending_extension_manager->HasHighPriorityPendingExtension(); @@ -401,7 +401,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro update_check_params.update_info[pending_id] = GetExtensionUpdateData(pending_id); update_check_params.update_info[pending_id].is_corrupt_reinstall = -@@ -547,6 +559,8 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -546,6 +558,8 @@ void ExtensionUpdater::CheckNow(CheckParams params) { LOG(WARNING) << "Corrupt extension with id " << pending_id << " will be reinstalled with ExtensionDownloader."; } @@ -410,7 +410,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro } else { InstallStageTracker::Get(profile_)->ReportFailure( pending_id, -@@ -559,13 +573,6 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -558,13 +572,6 @@ void ExtensionUpdater::CheckNow(CheckParams params) { AddToDownloader(®istry_->disabled_extensions(), pending_ids, request_id, params.fetch_priority, &update_check_params); ExtensionSet remotely_disabled_extensions; @@ -424,7 +424,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro AddToDownloader(&remotely_disabled_extensions, pending_ids, request_id, params.fetch_priority, &update_check_params); } else { -@@ -573,7 +580,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -572,7 +579,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { const Extension* extension = registry_->GetExtensionById(id, ExtensionRegistry::EVERYTHING); if (extension) { @@ -433,7 +433,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro update_check_params.update_info[id] = GetExtensionUpdateData(id); } else if (AddExtensionToDownloader(*extension, request_id, params.fetch_priority)) { -@@ -717,7 +724,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished( +@@ -716,7 +723,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished( file.extension_id, InstallStageTracker::Stage::INSTALLING); UpdatePingData(file.extension_id, ping); @@ -442,7 +442,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro FetchedCRXFile fetched(file, file_ownership_passed, request_ids, std::move(callback)); -@@ -728,6 +735,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished( +@@ -727,6 +734,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished( bool ExtensionUpdater::GetPingDataForExtension(const ExtensionId& id, DownloadPingData* ping_data) { @@ -450,7 +450,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro DCHECK(alive_); ping_data->rollcall_days = CalculatePingDaysForExtension(extension_prefs_->LastPingDay(id)); -@@ -840,7 +848,7 @@ bool ExtensionUpdater::CanUseUpdateService( +@@ -839,7 +847,7 @@ bool ExtensionUpdater::CanUseUpdateService( void ExtensionUpdater::InstallCRXFile(FetchedCRXFile crx_file) { std::set request_ids; @@ -459,7 +459,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro << crx_file.info.path.value(); // The delegate is now responsible for cleaning up the temp file at -@@ -1048,7 +1056,7 @@ void ExtensionUpdater::NotifyIfFinished(int request_id) { +@@ -1046,7 +1054,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. @@ -471,7 +471,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 -@@ -93,6 +93,8 @@ class ExtensionUpdater : public KeyedService, +@@ -92,6 +92,8 @@ class ExtensionUpdater : public KeyedService, // right away. bool install_immediately = false; @@ -480,7 +480,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.h b/chrome/brow // An extension update check can be originated by a user or by a scheduled // task. When the value of |fetch_priority| is FOREGROUND, the update // request was initiated by a user. -@@ -402,6 +404,8 @@ class ExtensionUpdater : public KeyedService, +@@ -401,6 +403,8 @@ class ExtensionUpdater : public KeyedService, base::TimeDelta frequency_; bool will_check_soon_ = false; @@ -1201,7 +1201,7 @@ diff --git a/extensions/browser/updater/safe_manifest_parser.cc b/extensions/bro diff --git a/extensions/common/extension_features.cc b/extensions/common/extension_features.cc --- a/extensions/common/extension_features.cc +++ b/extensions/common/extension_features.cc -@@ -231,4 +231,18 @@ BASE_FEATURE(kExtensionBrowserNamespaceAlternative, +@@ -233,4 +233,18 @@ BASE_FEATURE(kExtensionBrowserNamespaceAlternative, "ExtensionBrowserNamespaceAlternative", base::FEATURE_DISABLED_BY_DEFAULT); @@ -1223,7 +1223,7 @@ diff --git a/extensions/common/extension_features.cc b/extensions/common/extensi diff --git a/extensions/common/extension_features.h b/extensions/common/extension_features.h --- a/extensions/common/extension_features.h +++ b/extensions/common/extension_features.h -@@ -266,6 +266,8 @@ BASE_DECLARE_FEATURE(kDebuggerAPIRestrictedToDevMode); +@@ -273,6 +273,8 @@ BASE_DECLARE_FEATURE(kDebuggerAPIRestrictedToDevMode); // `loadTimes` , `csi`, etc. or deprecated APIs (e.g. `app`). BASE_DECLARE_FEATURE(kExtensionBrowserNamespaceAlternative); 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 13216d45..63d672f1 100644 --- a/build/patches/Clear-CORS-Preflight-Cache-on-clearing-data.patch +++ b/build/patches/Clear-CORS-Preflight-Cache-on-clearing-data.patch @@ -41,7 +41,7 @@ diff --git a/services/network/cors/preflight_cache.h b/services/network/cors/pre diff --git a/services/network/cors/preflight_controller.cc b/services/network/cors/preflight_controller.cc --- a/services/network/cors/preflight_controller.cc +++ b/services/network/cors/preflight_controller.cc -@@ -835,6 +835,10 @@ void PreflightController::ClearCorsPreflightCache( +@@ -834,6 +834,10 @@ void PreflightController::ClearCorsPreflightCache( cache_.ClearCache(std::move(url_filter)); } @@ -51,7 +51,7 @@ diff --git a/services/network/cors/preflight_controller.cc b/services/network/co + void PreflightController::RemoveLoader(PreflightLoader* loader) { auto it = loaders_.find(loader); - CHECK(it != loaders_.end(), base::NotFatalUntil::M130); + CHECK(it != loaders_.end()); diff --git a/services/network/cors/preflight_controller.h b/services/network/cors/preflight_controller.h --- a/services/network/cors/preflight_controller.h +++ b/services/network/cors/preflight_controller.h @@ -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 -@@ -1344,6 +1344,7 @@ void NetworkContext::ClearHttpCache(base::Time start_time, +@@ -1356,6 +1356,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 bd5d6081..0d3f407e 100644 --- a/build/patches/Client-hints-overrides.patch +++ b/build/patches/Client-hints-overrides.patch @@ -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 -@@ -1376,6 +1376,11 @@ void NavigationURLLoaderImpl::OnAcceptCHFrameReceived( +@@ -1380,6 +1380,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 -@@ -107,6 +107,7 @@ const size_t kMaxRestarts = 32; +@@ -111,6 +111,7 @@ const size_t kMaxRestarts = 32; // Returns true when Early Hints are allowed on the given protocol. bool EarlyHintsAreAllowedOn(HttpConnectionInfo connection_info) { @@ -255,7 +255,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/thi diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -500,6 +500,11 @@ +@@ -517,6 +517,11 @@ name: "AriaNotifyV2", status: {"Android": "test", "Win": "test", "Mac": "test", "Linux": "test"}, }, @@ -267,7 +267,7 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 { name: "AriaRowColIndexText", status: "stable", -@@ -871,8 +876,7 @@ +@@ -903,8 +908,7 @@ // Allows top-level sites to restrict collection of high-entropy UA client // hints (from 3Ps, or itself) via the getHighEntropyValues API. // crbug.com/385161047 diff --git a/build/patches/Close-Sessions-On-Ip-Change.patch b/build/patches/Close-Sessions-On-Ip-Change.patch index 49075951..a05f9b7a 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 -@@ -543,7 +543,7 @@ BASE_FEATURE(kRelatedWebsitePartitionAPI, +@@ -548,7 +548,7 @@ BASE_FEATURE(kRelatedWebsitePartitionAPI, // NetworkChangeNotifier::AreNetworkHandlesSupported). #if BUILDFLAG(IS_ANDROID) inline constexpr auto kMigrateSessionsOnNetworkChangeV2Default = diff --git a/build/patches/Cromite-Branding--improve-settings-ui.patch b/build/patches/Cromite-Branding--improve-settings-ui.patch index 0155b209..1df77f5c 100644 --- a/build/patches/Cromite-Branding--improve-settings-ui.patch +++ b/build/patches/Cromite-Branding--improve-settings-ui.patch @@ -9,16 +9,16 @@ 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 | 191 ++++++++++++++++++ - .../privacy/settings/PrivacySettings.java | 12 +- + .../privacy/settings/PrivacySettings.java | 6 +- .../Cromite-settings-ui.grdp | 15 ++ - 5 files changed, 216 insertions(+), 8 deletions(-) + 5 files changed, 213 insertions(+), 5 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 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 -@@ -655,7 +655,7 @@ chrome_java_resources = [ +@@ -653,7 +653,7 @@ chrome_java_resources = [ "java/res/xml/manage_sync_preferences.xml", "java/res/xml/personalize_google_services_preferences.xml", "java/res/xml/incognito_preferences.xml", @@ -247,8 +247,8 @@ 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 -@@ -188,7 +188,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment - public void onCreatePreferencesCromite(Bundle savedInstanceState, String rootKey) { +@@ -189,7 +189,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment + public void onCreatePreferencesCromite(@Nullable Bundle savedInstanceState, @Nullable String rootKey) { mPageTitle.set(getString(R.string.prefs_privacy_security)); - SettingsUtils.addPreferencesFromResource(this, R.xml.privacy_preferences); @@ -256,23 +256,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting Preference incognitoTrackingProtectionsPreference = findPreference(PREF_INCOGNITO_TRACKING_PROTECTIONS); -@@ -279,10 +279,12 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -280,7 +280,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment ChromeSwitchPreference passwordLeakTogglePref = (ChromeSwitchPreference) findPreference(PREF_PASSWORD_LEAK_DETECTION); -- if (ChromeFeatureList.isEnabled(ChromeFeatureList.PASSWORD_LEAK_TOGGLE_MOVE)) { -- passwordLeakTogglePref.setOnPreferenceChangeListener(this); -- } else { -- passwordLeakTogglePref.setVisible(false); +- passwordLeakTogglePref.setOnPreferenceChangeListener(this); + if (passwordLeakTogglePref != null) { -+ if (ChromeFeatureList.isEnabled(ChromeFeatureList.PASSWORD_LEAK_TOGGLE_MOVE)) { -+ passwordLeakTogglePref.setOnPreferenceChangeListener(this); -+ } else { + passwordLeakTogglePref.setVisible(false); -+ } - } ++ } mSearchSuggestions = (ChromeSwitchPreference) findPreference(PREF_SEARCH_SUGGESTIONS); + mSearchSuggestions.setOnPreferenceChangeListener(this); diff --git a/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Cromite-settings-ui.grdp b/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Cromite-settings-ui.grdp new file mode 100644 --- /dev/null diff --git a/build/patches/Cromite-Branding.patch b/build/patches/Cromite-Branding.patch index 138a7991..0f8b612e 100644 --- a/build/patches/Cromite-Branding.patch +++ b/build/patches/Cromite-Branding.patch @@ -67,8 +67,8 @@ 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 -@@ -54,6 +54,14 @@ buildflag_header("branding_buildflags") { - } +@@ -56,6 +56,14 @@ buildflag_header("branding_buildflags") { + flags += [ "ENABLE_BUILTIN_SEARCH_PROVIDER_ASSETS=$enable_builtin_search_provider_assets" ] } +buildflag_header("cromite_buildflags") { @@ -13158,7 +13158,7 @@ e)fqMZZ`3a)Ds&5H @@ -13270,7 +13270,7 @@ diff --git a/chrome/browser/resources/settings/settings_menu/settings_menu.html 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 -@@ -2475,7 +2475,7 @@ Your Google account may have other forms of browsing history like searches and a +@@ -2485,7 +2485,7 @@ Your Google account may have other forms of browsing history like searches and a About Chrome @@ -13282,7 +13282,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/browser/ui/toolbar/chrome_labs/chrome_labs_utils.cc b/chrome/browser/ui/toolbar/chrome_labs/chrome_labs_utils.cc --- a/chrome/browser/ui/toolbar/chrome_labs/chrome_labs_utils.cc +++ b/chrome/browser/ui/toolbar/chrome_labs/chrome_labs_utils.cc -@@ -144,6 +144,7 @@ bool AreNewChromeLabsExperimentsAvailable(const ChromeLabsModel* model, +@@ -140,6 +140,7 @@ bool AreNewChromeLabsExperimentsAvailable(const ChromeLabsModel* model, } bool IsChromeLabsEnabled() { @@ -13326,7 +13326,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 -@@ -998,7 +998,7 @@ +@@ -992,7 +992,7 @@ @@ -18972,7 +18972,7 @@ diff --git a/components/webui/version/resources/about_version_mobile.css b/compo diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc --- a/content/child/runtime_features.cc +++ b/content/child/runtime_features.cc -@@ -573,19 +573,22 @@ void ResolveInvalidConfigurations() { +@@ -570,19 +570,22 @@ void ResolveInvalidConfigurations() { base::FeatureList::IsEnabled( features::kPrivacySandboxAdsAPIsM1Override)) && !base::FeatureList::IsEnabled(blink::features::kFencedFrames)) { @@ -18999,7 +18999,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. << "Fenced frames must be enabled in order to enable local " "unpartitioned " << "data access. Use --" << switches::kEnableFeatures << "=" -@@ -593,12 +596,14 @@ void ResolveInvalidConfigurations() { +@@ -590,12 +593,14 @@ void ResolveInvalidConfigurations() { WebRuntimeFeatures::EnableFeatureFromString( "FencedFramesLocalUnpartitionedDataAccess", false); } @@ -19015,7 +19015,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. << "Topics cannot be enabled in this configuration. Use --" << switches::kEnableFeatures << "=" << network::features::kBrowsingTopics.name << " in addition."; -@@ -606,30 +611,23 @@ void ResolveInvalidConfigurations() { +@@ -603,30 +608,23 @@ void ResolveInvalidConfigurations() { WebRuntimeFeatures::EnableTopicsDocumentAPI(false); WebRuntimeFeatures::EnableTopicsImgAPI(false); } else { @@ -19052,7 +19052,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. << "AttributionReporting cannot be enabled in this " "configuration. Use --" << switches::kEnableFeatures << "=" -@@ -637,23 +635,25 @@ void ResolveInvalidConfigurations() { +@@ -634,23 +632,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 272a358f..3082751f 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 -@@ -797,10 +797,17 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -803,10 +803,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 -@@ -199,6 +199,14 @@ public class ActivityTabWebContentsDelegateAndroid extends TabWebContentsDelegat +@@ -202,6 +202,14 @@ public class ActivityTabWebContentsDelegateAndroid extends TabWebContentsDelegat // Skip opening a new Tab if it doesn't make sense. if (mTab.isClosing()) return false; @@ -77,14 +77,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/tab_activit boolean openingPopup = PopupCreator.arePopupsEnabled(mActivity) && (disposition == WindowOpenDisposition.NEW_POPUP); -@@ -207,7 +215,7 @@ public class ActivityTabWebContentsDelegateAndroid extends TabWebContentsDelegat +@@ -225,7 +233,7 @@ public class ActivityTabWebContentsDelegateAndroid extends TabWebContentsDelegat tabCreator.createTabWithWebContents( mTab, webContents, - TabLaunchType.FROM_LONGPRESS_FOREGROUND, + tabLaunchType, url, - !openingPopup); + !openingPopup && !willReparentTab); if (tab == null) return false; diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java @@ -140,7 +140,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi import org.chromium.base.TraceEvent; import org.chromium.base.lifetime.Destroyable; import org.chromium.base.metrics.RecordUserAction; -@@ -792,11 +793,16 @@ public class RootUiCoordinator +@@ -795,11 +796,16 @@ public class RootUiCoordinator TrackerFactory.getTrackerForProfile(tab.getProfile()) .notifyEvent(EventConstants.WEB_SEARCH_PERFORMED); diff --git a/build/patches/Dictionary-suggestions-for-the-Omnibox.patch b/build/patches/Dictionary-suggestions-for-the-Omnibox.patch index ec98a949..76633428 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 -@@ -313,8 +313,17 @@ class LocationBarMediator +@@ -318,8 +318,17 @@ class LocationBarMediator if (!mUrlFocusedWithPastedText && !shouldRetainOmniboxOnFocus && mLocationBarLayout.shouldClearTextOnFocus()) { @@ -66,7 +66,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow private boolean mPendingScroll; private boolean mIsInCct; -@@ -337,6 +339,28 @@ public class UrlBar extends AutocompleteEditText { +@@ -339,6 +341,28 @@ public class UrlBar extends AutocompleteEditText { fixupTextDirection(); mShouldSendTypingStartedEvent = focused; diff --git a/build/patches/Disable-Accessibility-service-by-default.patch b/build/patches/Disable-Accessibility-service-by-default.patch index 9693b04c..3547a73c 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 -@@ -1098,6 +1098,11 @@ public class WebContentsAccessibilityImpl extends AccessibilityNodeProviderCompa +@@ -1101,6 +1101,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 76d545e0..40eeaa67 100644 --- a/build/patches/Disable-Android-AppRestrictions.patch +++ b/build/patches/Disable-Android-AppRestrictions.patch @@ -32,7 +32,7 @@ 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 -@@ -27,6 +27,7 @@ import org.chromium.base.task.TaskTraits; +@@ -28,6 +28,7 @@ import org.chromium.build.annotations.MonotonicNonNull; import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; import org.chromium.chrome.browser.flags.ChromeSwitches; diff --git a/build/patches/Disable-CSSDynamicRangeLimit.patch b/build/patches/Disable-CSSDynamicRangeLimit.patch index 05dc3f16..43aa731b 100644 --- a/build/patches/Disable-CSSDynamicRangeLimit.patch +++ b/build/patches/Disable-CSSDynamicRangeLimit.patch @@ -15,7 +15,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -1183,7 +1183,7 @@ +@@ -1250,7 +1250,7 @@ }, { name: "CSSDynamicRangeLimit", diff --git a/build/patches/Disable-Compose-feature.patch b/build/patches/Disable-Compose-feature.patch index b32bc71d..1f7e6827 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 -@@ -8276,6 +8276,12 @@ static_library("browser") { +@@ -8372,6 +8372,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", -@@ -8291,7 +8297,6 @@ static_library("browser") { +@@ -8387,7 +8393,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", -@@ -8739,7 +8744,7 @@ source_set("font_pref") { +@@ -8848,7 +8853,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 -@@ -388,7 +388,7 @@ SettingsUI::SettingsUI(content::WebUI* web_ui) +@@ -364,7 +364,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 c3aef003..cf5e24bd 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 -@@ -963,12 +963,14 @@ +@@ -1007,12 +1007,14 @@ } }, { diff --git a/build/patches/Disable-FedCm.patch b/build/patches/Disable-FedCm.patch index 2781321a..55c352f8 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 -@@ -1991,7 +1991,7 @@ +@@ -2075,7 +2075,7 @@ { name: "FedCm", public: true, diff --git a/build/patches/Disable-GetInstalledRelatedApps-API.patch b/build/patches/Disable-GetInstalledRelatedApps-API.patch index 2b4a76e8..3db07aeb 100644 --- a/build/patches/Disable-GetInstalledRelatedApps-API.patch +++ b/build/patches/Disable-GetInstalledRelatedApps-API.patch @@ -58,8 +58,8 @@ 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 -@@ -2642,9 +2642,8 @@ - name: "InspectorGhostRules", +@@ -2766,9 +2766,8 @@ + status: "stable", }, { - name: "InstalledApp", diff --git a/build/patches/Disable-PrivacyGuide.patch b/build/patches/Disable-PrivacyGuide.patch index 7987995d..c7a54eba 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 -@@ -362,8 +362,7 @@ SettingsUI::SettingsUI(content::WebUI* web_ui) +@@ -338,8 +338,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 c77695d1..0e9b9744 100644 --- a/build/patches/Disable-Real-Box.patch +++ b/build/patches/Disable-Real-Box.patch @@ -4,16 +4,16 @@ Subject: Disable Real Box Real-box is search box in ntp --- - chrome/browser/prefs/browser_prefs.cc | 2 +- - chrome/browser/resources/new_tab_page/app.html | 8 -------- - chrome/browser/ui/webui/searchbox/searchbox_handler.cc | 1 + - components/search/ntp_features.cc | 6 +++--- - 4 files changed, 5 insertions(+), 12 deletions(-) + chrome/browser/prefs/browser_prefs.cc | 2 +- + chrome/browser/resources/new_tab_page/app.html | 10 ---------- + chrome/browser/ui/webui/searchbox/searchbox_handler.cc | 1 + + components/search/ntp_features.cc | 6 +++--- + 4 files changed, 5 insertions(+), 14 deletions(-) diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc -@@ -2241,7 +2241,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -2276,7 +2276,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, registry->RegisterBooleanPref( prefs::kLensRegionSearchEnabled, true, user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); @@ -25,7 +25,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse diff --git a/chrome/browser/resources/new_tab_page/app.html b/chrome/browser/resources/new_tab_page/app.html --- a/chrome/browser/resources/new_tab_page/app.html +++ b/chrome/browser/resources/new_tab_page/app.html -@@ -19,14 +19,6 @@ +@@ -19,16 +19,6 @@ ?hidden="${!this.logoEnabled_}">
@@ -35,7 +35,9 @@ diff --git a/chrome/browser/resources/new_tab_page/app.html b/chrome/browser/res - @open-voice-search="${this.onOpenVoiceSearch_}" ?shown="${this.realboxShown_}" - ?had-secondary-side="${this.realboxHadSecondarySide}" - @had-secondary-side-changed="${this.onRealboxHadSecondarySideChanged_}" -- ?can-show-secondary-side="${this.realboxCanShowSecondarySide}"> +- ?can-show-secondary-side="${this.realboxCanShowSecondarySide}" +- ?compose-button-enabled="${this.composeButtonEnabled}" +- ?composebox-enabled="${this.composeboxEnabled}"> - ${this.showLensUploadDialog_ ? html` SettingOverridesForStorage(), &cookie_settings_metadata); +@@ -126,19 +111,16 @@ content::AllowServiceWorkerResult AllowServiceWorker( + + &cookie_settings_metadata); - if (!allow_cookies && - PartitionedStorageByDefaultAllowed(cookie_settings_metadata)) { @@ -75,9 +75,9 @@ diff --git a/components/embedder_support/content_settings_utils.cc b/components/ return content::AllowServiceWorkerResult::FromPolicy(!allow_javascript, !allow_cookies); -@@ -143,17 +125,16 @@ bool AllowSharedWorker( - worker_url, site_for_cookies, top_frame_origin, - cookie_settings->SettingOverridesForStorage(), &cookie_settings_metadata); +@@ -174,17 +156,16 @@ bool AllowSharedWorker( + net::CookieSettingOverrides(), cookie_partition_key, + &cookie_settings_metadata); - if (!allow && PartitionedStorageByDefaultAllowed(cookie_settings_metadata)) { - allow = true; diff --git a/build/patches/Disable-TLS-resumption.patch b/build/patches/Disable-TLS-resumption.patch index 03d1f944..afcea751 100644 --- a/build/patches/Disable-TLS-resumption.patch +++ b/build/patches/Disable-TLS-resumption.patch @@ -79,7 +79,7 @@ new file mode 100644 diff --git a/net/http/http_network_session.cc b/net/http/http_network_session.cc --- a/net/http/http_network_session.cc +++ b/net/http/http_network_session.cc -@@ -221,6 +221,7 @@ HttpNetworkSession::HttpNetworkSession(const HttpNetworkSessionParams& params, +@@ -222,6 +222,7 @@ HttpNetworkSession::HttpNetworkSession(const HttpNetworkSessionParams& params, next_protos_.push_back(NextProto::kProtoHTTP11); @@ -137,7 +137,7 @@ diff --git a/net/quic/quic_session_pool.cc b/net/quic/quic_session_pool.cc QuicSessionRequest::QuicSessionRequest(QuicSessionPool* pool) : pool_(pool) {} QuicSessionRequest::~QuicSessionRequest() { -@@ -2363,7 +2396,7 @@ QuicSessionPool::CreateCryptoConfigHandle(QuicCryptoClientConfigKey key) { +@@ -2365,7 +2398,7 @@ QuicSessionPool::CreateCryptoConfigHandle(QuicCryptoClientConfigKey key) { cert_verifier_, transport_security_state_, sct_auditing_delegate_, HostsFromOrigins(params_.origins_to_force_quic_on), key.network_anonymization_key), @@ -149,7 +149,7 @@ diff --git a/net/quic/quic_session_pool.cc b/net/quic/quic_session_pool.cc diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket_impl.cc --- a/net/socket/ssl_client_socket_impl.cc +++ b/net/socket/ssl_client_socket_impl.cc -@@ -285,7 +285,33 @@ SSLClientSocketImpl::SSLClientSocketImpl( +@@ -290,7 +290,33 @@ SSLClientSocketImpl::SSLClientSocketImpl( CHECK(context_); } @@ -183,7 +183,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket Disconnect(); } -@@ -672,6 +698,8 @@ int SSLClientSocketImpl::Init() { +@@ -681,6 +707,8 @@ int SSLClientSocketImpl::Init() { } if (session) SSL_set_session(ssl_.get(), session.get()); @@ -192,7 +192,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket } transport_adapter_ = std::make_unique( -@@ -958,6 +986,35 @@ int SSLClientSocketImpl::DoHandshakeComplete(int result) { +@@ -966,6 +994,35 @@ int SSLClientSocketImpl::DoHandshakeComplete(int result) { : SSLHandshakeDetails::kTLS13Full; } } @@ -228,7 +228,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket UMA_HISTOGRAM_ENUMERATION("Net.SSLHandshakeDetails", details); // Measure TLS connections that implement the renegotiation_info and EMS -@@ -1567,6 +1624,8 @@ bool SSLClientSocketImpl::IsRenegotiationAllowed() const { +@@ -1582,6 +1639,8 @@ bool SSLClientSocketImpl::IsRenegotiationAllowed() const { } bool SSLClientSocketImpl::IsCachingEnabled() const { diff --git a/build/patches/Disable-WebGPU.patch b/build/patches/Disable-WebGPU.patch index bd4ab2ad..579ff1c2 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 -@@ -558,6 +558,8 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs( +@@ -555,6 +555,8 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs( WebRuntimeFeatures::EnableRemotePlayback(false); @@ -26,7 +26,7 @@ diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc +++ b/gpu/config/gpu_finch_features.cc @@ -235,7 +235,7 @@ BASE_FEATURE(kEnableDrDc, // enabled by default on supported platforms. - #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS) || \ + #if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS) || \ BUILDFLAG(IS_ANDROID) -#define WEBGPU_ENABLED base::FEATURE_ENABLED_BY_DEFAULT +#define WEBGPU_ENABLED base::FEATURE_DISABLED_BY_DEFAULT diff --git a/build/patches/Disable-all-promo-dialogs.patch b/build/patches/Disable-all-promo-dialogs.patch index e77c3d53..e92a0c8d 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 -@@ -1656,6 +1656,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1699,6 +1699,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 -@@ -151,7 +151,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -167,7 +167,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref(prefs::kEnterpriseHardwarePlatformAPIEnabled, false); @@ -51,7 +51,7 @@ diff --git a/chrome/browser/ui/views/profiles/profile_picker_feature_promo_contr 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 -@@ -61,6 +61,7 @@ ui::ElementContext BrowserFeaturePromoController20::GetAnchorContext() const { +@@ -63,6 +63,7 @@ ui::ElementContext BrowserFeaturePromoController20::GetAnchorContext() const { user_education::FeaturePromoResult BrowserFeaturePromoController20::CanShowPromoForElement( ui::TrackedElement* anchor_element) const { diff --git a/build/patches/Disable-conversion-measurement-api.patch b/build/patches/Disable-conversion-measurement-api.patch index 33403a9f..11968358 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 -@@ -1349,6 +1349,7 @@ network::mojom::AttributionSupport +@@ -1339,6 +1339,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: -@@ -1367,6 +1368,8 @@ bool AwContentBrowserClient::IsAttributionReportingOperationAllowed( +@@ -1357,6 +1358,8 @@ bool AwContentBrowserClient::IsAttributionReportingOperationAllowed( const url::Origin* destination_origin, const url::Origin* reporting_origin, bool* can_bypass) { @@ -85,7 +85,7 @@ diff --git a/android_webview/browser/component_updater/trust_token_key_commitmen diff --git a/android_webview/java/src/org/chromium/android_webview/AwSettings.java b/android_webview/java/src/org/chromium/android_webview/AwSettings.java --- a/android_webview/java/src/org/chromium/android_webview/AwSettings.java +++ b/android_webview/java/src/org/chromium/android_webview/AwSettings.java -@@ -172,7 +172,7 @@ public class AwSettings { +@@ -171,7 +171,7 @@ public class AwSettings { private boolean mSpatialNavigationEnabled; // Default depends on device features. private boolean mEnableSupportedHardwareAcceleratedFeatures; private int mMixedContentMode = WebSettings.MIXED_CONTENT_NEVER_ALLOW; @@ -94,7 +94,7 @@ diff --git a/android_webview/java/src/org/chromium/android_webview/AwSettings.ja @SpeculativeLoadingAllowedFlags private int mSpeculativeLoadingAllowedFlags = -@@ -1813,7 +1813,7 @@ public class AwSettings { +@@ -1789,7 +1789,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 @@ -347,7 +347,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -@@ -1018,15 +983,6 @@ by a child template that "extends" this file. +@@ -1027,15 +992,6 @@ by a child template that "extends" this file. android:exported="false" android:permission="android.permission.BIND_JOB_SERVICE"/> @@ -363,7 +363,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -@@ -1304,12 +1260,6 @@ by a child template that "extends" this file. +@@ -1313,12 +1269,6 @@ by a child template that "extends" this file. {% endif %} @@ -379,7 +379,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackgroundService.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackgroundService.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackgroundService.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackgroundService.java -@@ -6,15 +6,7 @@ package org.chromium.chrome.browser; +@@ -6,16 +6,7 @@ package org.chromium.chrome.browser; import org.chromium.build.annotations.IdentifierNameString; import org.chromium.build.annotations.NullMarked; @@ -388,6 +388,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackgroun /** See {@link ChromeBackgroundServiceImpl}. */ @NullMarked -public class ChromeBackgroundService extends SplitCompatGcmTaskService { +- @SuppressWarnings("FieldCanBeFinal") // @IdentifierNameString requires non-final - private static @IdentifierNameString String sImplClassName = - "org.chromium.chrome.browser.ChromeBackgroundServiceImpl"; - @@ -399,16 +400,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackgroun diff --git a/chrome/android/java/src/org/chromium/chrome/browser/PlayServicesVersionInfo.java b/chrome/android/java/src/org/chromium/chrome/browser/PlayServicesVersionInfo.java --- a/chrome/android/java/src/org/chromium/chrome/browser/PlayServicesVersionInfo.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/PlayServicesVersionInfo.java -@@ -4,8 +4,6 @@ +@@ -4,9 +4,6 @@ package org.chromium.chrome.browser; +- -import com.google.android.gms.common.GoogleApiAvailability; - import org.jni_zero.CalledByNative; import org.jni_zero.JniType; -@@ -24,7 +22,7 @@ public class PlayServicesVersionInfo { +@@ -27,7 +24,7 @@ public class PlayServicesVersionInfo { */ @CalledByNative public static @JniType("std::string") String getGmsInfo() { @@ -417,7 +419,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/PlayServicesVer final long installedGmsVersion = getApkVersionNumber(); final String accessType; -@@ -49,11 +47,6 @@ public class PlayServicesVersionInfo { +@@ -52,11 +49,6 @@ public class PlayServicesVersionInfo { * package is not found. */ public static int getApkVersionNumber() { @@ -479,7 +481,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage if (mTrustedVaultBannerState == TrustedVaultBannerState.OPTED_IN) { createTrustedVaultBanner( -@@ -518,10 +513,6 @@ public class PasswordSettings extends ChromeBaseSettingsFragment +@@ -523,10 +518,6 @@ public class PasswordSettings extends ChromeBaseSettingsFragment // by the system. if (getActivity().isFinishing()) { PasswordManagerHandlerProvider.getForProfile(getProfile()).removeObserver(this); @@ -510,7 +512,7 @@ diff --git a/chrome/android/javatests/BUILD.gn b/chrome/android/javatests/BUILD. diff --git a/chrome/android/junit/BUILD.gn b/chrome/android/junit/BUILD.gn --- a/chrome/android/junit/BUILD.gn +++ b/chrome/android/junit/BUILD.gn -@@ -43,13 +43,6 @@ if (is_android) { +@@ -43,12 +43,6 @@ if (is_android) { ] public_deps = [ @@ -519,7 +521,6 @@ 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", @@ -645,7 +646,7 @@ diff --git a/chrome/browser/password_manager/android/BUILD.gn b/chrome/browser/p "//base:base_java", "//base:resetters_java", "//base:tasks_java", -@@ -352,8 +349,6 @@ robolectric_binary("password_manager_junit_tests") { +@@ -354,8 +351,6 @@ robolectric_binary("password_manager_junit_tests") { ":test_support_java", ":unified_password_manager_proto_java", ":utils_java", @@ -778,7 +779,7 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom import org.jni_zero.JniType; import org.jni_zero.NativeMethods; -@@ -737,13 +735,6 @@ public class PasswordManagerHelper { +@@ -739,13 +737,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). @@ -848,7 +849,7 @@ diff --git a/chrome/browser/safe_browsing/notification_telemetry/notification_te diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -198,8 +198,6 @@ static_library("ui") { +@@ -176,8 +176,6 @@ static_library("ui") { "webui/flags/flags_ui.h", "webui/flags/flags_ui_handler.cc", "webui/flags/flags_ui_handler.h", @@ -857,7 +858,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn "webui/history_clusters/history_clusters_internals_ui_config.cc", "webui/history_clusters/history_clusters_internals_ui_config.h", "webui/interstitials/interstitial_ui.cc", -@@ -500,7 +498,6 @@ static_library("ui") { +@@ -486,7 +484,6 @@ static_library("ui") { "//components/fingerprinting_protection_filter/browser", "//components/fingerprinting_protection_filter/interventions/browser", "//components/fingerprinting_protection_filter/interventions/common:features", @@ -877,7 +878,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", -@@ -472,8 +470,6 @@ robolectric_library("junit") { +@@ -478,8 +476,6 @@ robolectric_library("junit") { deps = [ ":java", ":java_resources", @@ -889,7 +890,7 @@ diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/andr diff --git a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fullscreen_signin/FullscreenSigninMediator.java b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fullscreen_signin/FullscreenSigninMediator.java --- a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fullscreen_signin/FullscreenSigninMediator.java +++ b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fullscreen_signin/FullscreenSigninMediator.java -@@ -229,11 +229,9 @@ public class FullscreenSigninMediator +@@ -246,11 +246,9 @@ public class FullscreenSigninMediator * also means that native has been initialized. */ void onInitialLoadCompleted(boolean hasPolicies) { @@ -905,7 +906,7 @@ diff --git a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/brows diff --git a/chrome/browser/ui/webauthn/sheet_models.cc b/chrome/browser/ui/webauthn/sheet_models.cc --- a/chrome/browser/ui/webauthn/sheet_models.cc +++ b/chrome/browser/ui/webauthn/sheet_models.cc -@@ -1495,16 +1495,9 @@ AuthenticatorMultiSourcePickerSheetModel:: +@@ -1525,16 +1525,9 @@ AuthenticatorMultiSourcePickerSheetModel:: bool AuthenticatorMultiSourcePickerSheetModel::IsManageDevicesButtonVisible() const { @@ -926,7 +927,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 -@@ -226,7 +226,6 @@ void RegisterChromeWebUIConfigs() { +@@ -234,7 +234,6 @@ void RegisterChromeWebUIConfigs() { map.AddWebUIConfig(std::make_unique()); map.AddWebUIConfig(std::make_unique()); map.AddWebUIConfig(std::make_unique()); @@ -957,7 +958,7 @@ diff --git a/chrome/browser/webauthn/android/java/src/org/chromium/chrome/browse import org.jni_zero.CalledByNative; import org.jni_zero.NativeMethods; -@@ -21,7 +19,6 @@ import org.chromium.base.ThreadUtils; +@@ -23,7 +21,6 @@ import org.chromium.build.annotations.Nullable; import org.chromium.chrome.browser.enterprise.util.EnterpriseInfo; import org.chromium.components.browser_ui.notifications.NotificationProxyUtils; import org.chromium.components.externalauth.ExternalAuthUtils; @@ -965,7 +966,7 @@ diff --git a/chrome/browser/webauthn/android/java/src/org/chromium/chrome/browse /** * Provides linking information to the native side. -@@ -74,37 +71,7 @@ public class CableAuthenticatorModuleProvider { +@@ -83,37 +80,7 @@ public class CableAuthenticatorModuleProvider { ok = false; } @@ -1017,10 +1018,129 @@ diff --git a/chrome/browser/webauthn/cablev2_devices.cc b/chrome/browser/webauth ScopedListPrefUpdate update(profile->GetPrefs(), kWebAuthnCablePairingsPrefName); +diff --git a/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/webid/DigitalCredentialsPresentationDelegate.java b/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/webid/DigitalCredentialsPresentationDelegate.java +--- a/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/webid/DigitalCredentialsPresentationDelegate.java ++++ b/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/webid/DigitalCredentialsPresentationDelegate.java +@@ -21,13 +21,6 @@ import androidx.annotation.RequiresApi; + import androidx.annotation.VisibleForTesting; + import androidx.credentials.GetDigitalCredentialOption; + +-import com.google.android.gms.identitycredentials.CredentialOption; +-import com.google.android.gms.identitycredentials.GetCredentialException; +-import com.google.android.gms.identitycredentials.GetCredentialRequest; +-import com.google.android.gms.identitycredentials.IdentityCredentialClient; +-import com.google.android.gms.identitycredentials.IdentityCredentialManager; +-import com.google.android.gms.identitycredentials.IntentHelper; +- + import org.json.JSONException; + import org.json.JSONObject; + +@@ -70,78 +63,7 @@ public class DigitalCredentialsPresentationDelegate { + + @OptIn(markerClass = androidx.credentials.ExperimentalDigitalCredentialApi.class) + public Promise get(Activity window, String origin, String request) { +- final IdentityCredentialClient client; +- try { +- client = IdentityCredentialManager.Companion.getClient(window); +- } catch (Exception e) { +- // Thrown when running in phones without the most current GMS +- // version. +- return Promise.rejected(); +- } +- +- final Promise result = new Promise(); +- +- ResultReceiver resultReceiver = +- new ResultReceiver(new Handler(Looper.getMainLooper())) { +- // android.credentials.GetCredentialException requires API level 34 +- @SuppressWarnings("NewApi") +- @Override +- protected void onReceiveResult(int code, Bundle data) { +- Log.d(TAG, "Received a response"); +- try { +- result.fulfill(extractDigitalCredentialFromResponseBundle(code, data)); +- } catch (Exception e) { +- Log.e(TAG, e.toString()); +- +- if (e instanceof GetCredentialException +- && Build.VERSION.SDK_INT +- >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { +- String exceptionType = ((GetCredentialException) e).getType(); +- result.reject( +- new android.credentials.GetCredentialException( +- exceptionType, e.getMessage())); +- } else { +- result.reject(e); +- } +- } +- } +- }; +- +- GetDigitalCredentialOption option = new GetDigitalCredentialOption(request); +- client.getCredential( +- new GetCredentialRequest( +- Arrays.asList( +- new CredentialOption( +- option.getType(), +- option.getRequestData(), +- option.getCandidateQueryData(), +- request, +- "", +- "")), +- new Bundle(), +- origin, +- resultReceiver)) +- .addOnSuccessListener( +- response -> { +- try { +- Log.d(TAG, "Sending an intent for sender"); +- Log.d(TAG, request); +- startIntentSenderForResult( +- /* activity= */ window, +- /* intent= */ response.getPendingIntent().getIntentSender(), +- REQUEST_CODE_DIGITAL_CREDENTIALS, +- /* fillInIntent= */ null, +- /* flagsMask= */ 0, +- /* flagsValues= */ 0, +- /* extraFlags= */ 0, +- /* options= */ null); +- } catch (SendIntentException e) { +- Log.e(TAG, "Sending an intent for sender failed"); +- result.reject(e); +- } +- }); +- +- return result; ++ return Promise.rejected(); + } + + /** +@@ -161,7 +83,7 @@ public class DigitalCredentialsPresentationDelegate { + @VisibleForTesting + public static DigitalCredential extractDigitalCredentialFromResponseBundle( + int code, Bundle bundle) +- throws JSONException, NullPointerException, GetCredentialException { ++ throws JSONException, NullPointerException { + // Try to read the new format. + var digitalCredential = extractDigitalCredentialFromModernResponse(bundle); + if (digitalCredential != null) { +@@ -170,11 +92,7 @@ public class DigitalCredentialsPresentationDelegate { + // TODO(crbug.com/336329411) Handle the case when the intent doesn't contain the modern + // response, but contains the modern exception. + +- // Fallback to the legacy format. +- var response = IntentHelper.extractGetCredentialResponse(code, bundle); +- var token = response.getCredential().getData().getByteArray(BUNDLE_KEY_IDENTITY_TOKEN); +- +- return new DigitalCredential(null, Objects.requireNonNull(token)); ++ throw new NullPointerException(); + } + + /** 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 -@@ -395,8 +395,6 @@ android_library("chrome_java_integration_test_support") { +@@ -408,8 +408,6 @@ android_library("chrome_java_integration_test_support") { deps = [ ":chrome_java_test_support_common", @@ -1032,7 +1152,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 -@@ -2562,14 +2562,6 @@ public class ExternalNavigationHandler { +@@ -2586,14 +2586,6 @@ public class ExternalNavigationHandler { * @return Whether the given intent is going to open an Instant App. */ private static boolean isIntentToInstantApp(Intent intent) { @@ -1203,7 +1323,7 @@ diff --git a/components/gcm_driver/android/java/src/org/chromium/components/gcm_ diff --git a/components/gcm_driver/gcm_client_impl.cc b/components/gcm_driver/gcm_client_impl.cc --- a/components/gcm_driver/gcm_client_impl.cc +++ b/components/gcm_driver/gcm_client_impl.cc -@@ -432,6 +432,7 @@ void GCMClientImpl::StartGCM() { +@@ -431,6 +431,7 @@ void GCMClientImpl::StartGCM() { void GCMClientImpl::InitializeMCSClient() { DCHECK(network_connection_tracker_); @@ -1211,7 +1331,7 @@ diff --git a/components/gcm_driver/gcm_client_impl.cc b/components/gcm_driver/gc std::vector endpoints; endpoints.push_back(gservices_settings_.GetMCSMainEndpoint()); GURL fallback_endpoint = gservices_settings_.GetMCSFallbackEndpoint(); -@@ -600,6 +601,7 @@ void GCMClientImpl::AddHeartbeatInterval(const std::string& scope, +@@ -599,6 +600,7 @@ void GCMClientImpl::AddHeartbeatInterval(const std::string& scope, int interval_ms) { DCHECK(io_task_runner_->RunsTasksInCurrentSequence()); DCHECK(mcs_client_); @@ -1219,7 +1339,7 @@ diff --git a/components/gcm_driver/gcm_client_impl.cc b/components/gcm_driver/gc mcs_client_->AddHeartbeatInterval(scope, interval_ms); } -@@ -611,6 +613,7 @@ void GCMClientImpl::RemoveHeartbeatInterval(const std::string& scope) { +@@ -610,6 +612,7 @@ void GCMClientImpl::RemoveHeartbeatInterval(const std::string& scope) { void GCMClientImpl::StartCheckin() { DCHECK(io_task_runner_->RunsTasksInCurrentSequence()); @@ -1227,7 +1347,7 @@ diff --git a/components/gcm_driver/gcm_client_impl.cc b/components/gcm_driver/gc // Make sure no checkin is in progress. if (checkin_request_) -@@ -684,6 +687,7 @@ void GCMClientImpl::SetGServicesSettingsCallback(bool success) { +@@ -683,6 +686,7 @@ void GCMClientImpl::SetGServicesSettingsCallback(bool success) { void GCMClientImpl::SchedulePeriodicCheckin() { DCHECK(io_task_runner_->RunsTasksInCurrentSequence()); @@ -1585,7 +1705,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo @JNINamespace("media_router") @NullMarked public class MediaStatusBridge { -- private MediaStatus mStatus; +- private final MediaStatus mStatus; - - public MediaStatusBridge(MediaStatus status) { - mStatus = status; @@ -2397,9 +2517,9 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo @@ -28,12 +23,10 @@ public class CastSessionController extends BaseSessionController { private static final String TAG = "CafSessionCtrl"; - private List mNamespaces = new ArrayList(); + private final List mNamespaces = new ArrayList(); - private CastListener mCastListener; - private CafNotificationController mNotificationController; + private final CafNotificationController mNotificationController; public CastSessionController(CafBaseMediaRouteProvider provider) { super(provider); @@ -2568,7 +2688,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo - } - /** Handle actions from on-screen media controls. */ - private MediaController.Delegate mControllerDelegate = + private final MediaController.Delegate mControllerDelegate = new MediaController.Delegate() { @Override public void play() { @@ -2965,7 +3085,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; -@@ -143,12 +141,6 @@ public class OmniboxFeatures { +@@ -152,12 +150,6 @@ public class OmniboxFeatures { "geolocation_request_min_update_interval_millis", (int) (9 * DateUtils.MINUTE_IN_MILLIS)); @@ -2990,7 +3110,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", -@@ -198,7 +196,6 @@ robolectric_library("junit") { +@@ -196,7 +194,6 @@ robolectric_library("junit") { deps = [ ":java", ":signin_java_test_support", @@ -3054,12 +3174,12 @@ diff --git a/components/webauthn/android/BUILD.gn b/components/webauthn/android/ diff --git a/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java b/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java --- a/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java +++ b/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java -@@ -70,18 +70,10 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -71,18 +71,10 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon private @Nullable MakeCredential_Response mMakeCredentialCallback; private @Nullable GetCredential_Response mGetCredentialCallback; - private @Nullable Fido2CredentialRequest mPendingFido2CredentialRequest; -- private Set mUnclosedFido2CredentialRequests = new HashSet<>(); +- private final Set mUnclosedFido2CredentialRequests = new HashSet<>(); - // Information about the request cached here for metric reporting purposes. private boolean mIsConditionalRequest; @@ -3073,7 +3193,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut /** * Builds the Authenticator service implementation. -@@ -113,19 +105,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -116,19 +108,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon mCreateConfirmationUiDelegate = createConfirmationUiDelegate; } @@ -3093,7 +3213,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut /** * Called by InternalAuthenticatorAndroid, which facilitates WebAuthn for processes that * originate from the browser process. Since the request is from the browser process, the -@@ -176,16 +155,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -181,16 +160,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon } private void continueMakeCredential(PublicKeyCredentialCreationOptions options) { @@ -3110,7 +3230,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } private @Nullable Bundle maybeCreateBrowserOptions() { -@@ -217,16 +186,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -224,16 +193,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon onError(AuthenticatorStatus.NOT_IMPLEMENTED); return; } @@ -3127,7 +3247,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } @Override -@@ -259,10 +218,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -266,10 +225,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon decoratedCallback.call(false); return; } @@ -3138,7 +3258,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } @Override -@@ -292,19 +247,7 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -299,19 +254,7 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon return; } @@ -3159,7 +3279,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } // Helper function to create WebAuthnClientCapability instances -@@ -334,14 +277,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -341,14 +284,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon callback.onResponse(new ArrayList()); return; } @@ -3174,7 +3294,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } @Override -@@ -351,13 +286,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -358,13 +293,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon callback.call(false); return; } @@ -3188,7 +3308,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } @Override -@@ -369,9 +297,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -376,9 +304,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon if (!mIsOperationPending || mGetCredentialCallback == null) { return; } @@ -3198,7 +3318,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } /** Callbacks for receiving responses from the internal handlers. */ -@@ -417,7 +342,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -424,7 +349,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon } else if (mGetCredentialCallback != null) { mGetCredentialCallback.call(getCredentialResponseForAssertion(status, null)); } @@ -3206,7 +3326,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut cleanupRequest(); } -@@ -455,13 +379,10 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -462,13 +386,10 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon mIsOperationPending = false; mMakeCredentialCallback = null; mGetCredentialCallback = null; @@ -3410,140 +3530,21 @@ diff --git a/content/browser/push_messaging/push_messaging_manager.cc b/content/ diff --git a/content/public/android/BUILD.gn b/content/public/android/BUILD.gn --- a/content/public/android/BUILD.gn +++ b/content/public/android/BUILD.gn -@@ -163,11 +163,6 @@ android_library("content_full_java") { +@@ -161,10 +161,6 @@ android_library("content_full_java") { ":content_java_resources", ":content_main_dex_java", ":content_util_java", - "$google_play_services_package:google_play_services_auth_api_phone_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_identity_credentials_java", - "$google_play_services_package:google_play_services_tasks_java", "//base:base_java", "//base:process_launcher_java", "//base:service_loader_java", -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 -@@ -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; --import com.google.android.gms.identitycredentials.GetCredentialRequest; --import com.google.android.gms.identitycredentials.IdentityCredentialClient; --import com.google.android.gms.identitycredentials.IdentityCredentialManager; --import com.google.android.gms.identitycredentials.IntentHelper; -- - import org.json.JSONException; - import org.json.JSONObject; - -@@ -87,77 +80,7 @@ public class IdentityCredentialsDelegate { - } - - public Promise get(Activity window, String origin, String request) { -- final IdentityCredentialClient client; -- try { -- client = IdentityCredentialManager.Companion.getClient(window); -- } catch (Exception e) { -- // Thrown when running in phones without the most current GMS -- // version. -- return Promise.rejected(); -- } -- -- final Promise result = new Promise(); -- -- ResultReceiver resultReceiver = -- new ResultReceiver(new Handler(Looper.getMainLooper())) { -- // android.credentials.GetCredentialException requires API level 34 -- @SuppressWarnings("NewApi") -- @Override -- protected void onReceiveResult(int code, Bundle data) { -- Log.d(TAG, "Received a response"); -- try { -- result.fulfill(extractDigitalCredentialFromResponseBundle(code, data)); -- } catch (Exception e) { -- Log.e(TAG, e.toString()); -- -- if (e instanceof GetCredentialException -- && Build.VERSION.SDK_INT -- >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { -- String exceptionType = ((GetCredentialException) e).getType(); -- result.reject( -- new android.credentials.GetCredentialException( -- exceptionType, e.getMessage())); -- } else { -- result.reject(e); -- } -- } -- } -- }; -- -- client.getCredential( -- new GetCredentialRequest( -- Arrays.asList( -- new CredentialOption( -- "com.credman.IdentityCredential", -- new Bundle(), -- new Bundle(), -- request, -- "", -- "")), -- new Bundle(), -- origin, -- resultReceiver)) -- .addOnSuccessListener( -- response -> { -- try { -- Log.d(TAG, "Sending an intent for sender"); -- Log.d(TAG, request); -- startIntentSenderForResult( -- /* activity= */ window, -- /* intent= */ response.getPendingIntent().getIntentSender(), -- REQUEST_CODE_DIGITAL_CREDENTIALS, -- /* fillInIntent= */ null, -- /* flagsMask= */ 0, -- /* flagsValues= */ 0, -- /* extraFlags= */ 0, -- /* options= */ null); -- } catch (SendIntentException e) { -- Log.e(TAG, "Sending an intent for sender failed"); -- result.reject(e); -- } -- }); -- -- return result; -+ return Promise.rejected(); - } - - 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 -@@ -3686,10 +3686,6 @@ if (is_android) { +@@ -3713,10 +3713,6 @@ if (is_android) { testonly = true sources = content_java_sources_needing_jni deps = [ @@ -3570,7 +3571,7 @@ diff --git a/device/BUILD.gn b/device/BUILD.gn diff --git a/device/fido/features.cc b/device/fido/features.cc --- a/device/fido/features.cc +++ b/device/fido/features.cc -@@ -105,6 +105,7 @@ BASE_FEATURE(kWebAuthnAmbientSignin, +@@ -107,6 +107,7 @@ BASE_FEATURE(kWebAuthnAmbientSignin, BASE_FEATURE(kWebAuthnHybridLinking, "WebAuthenticationHybridLinking", base::FEATURE_DISABLED_BY_DEFAULT); @@ -3581,19 +3582,20 @@ 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 -@@ -158,11 +158,6 @@ if (is_android) { +@@ -158,12 +158,6 @@ if (is_android) { "shape_detection/android/junit/src/org/chromium/shape_detection/BitmapUtilsTest.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", +- "$google_play_services_package:google_play_services_tasks_java", - "$google_play_services_package:google_play_services_vision_common_java", - "$google_play_services_package:google_play_services_vision_java", "//base:base_java", "//base:base_java_test_support", "//base:base_junit_test_support", -@@ -193,10 +188,6 @@ if (is_android) { +@@ -194,10 +188,6 @@ if (is_android) { "shape_detection/android/javatests/src/org/chromium/shape_detection/TextDetectionImplTest.java", ] deps = [ @@ -3633,7 +3635,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 -@@ -95,22 +95,13 @@ if (!limit_android_deps) { +@@ -94,22 +94,13 @@ if (!limit_android_deps) { android_library("chromium_play_services_availability_java") { sources = [ "util/org/chromium/gms/ChromiumPlayServicesAvailability.java" ] @@ -3657,7 +3659,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. } # The section below is generated by running -@@ -154,13 +145,6 @@ java_prebuilt("com_android_tools_sdk_common_java") { +@@ -153,19 +144,6 @@ java_prebuilt("com_android_tools_sdk_common_java") { visibility = [ "//build/android/unused_resources:*" ] } @@ -3668,215 +3670,20 @@ 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" -@@ -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( -- "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_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_cast_java") { -- 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 = [ -- "$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_flags_java", -- "$google_play_services_package:google_play_services_tasks_java", -- "//third_party/androidx:androidx_core_core_java", -- "//third_party/androidx:androidx_mediarouter_mediarouter_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_cast_framework_java") { -- 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", -- "//third_party/androidx:androidx_mediarouter_mediarouter_java", -- "//third_party/androidx:androidx_recyclerview_recyclerview_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" -- 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_iid_java", -- "$google_play_services_package:google_play_services_stats_java", -- "//third_party/androidx:androidx_collection_collection_java", -- "//third_party/androidx:androidx_core_core_java", -- "//third_party/androidx:androidx_legacy_legacy_support_core_utils_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" -- 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_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_play_services_instantapps_java") { -- 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 = [ -- "$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", -- ] -- } -- } -- -- # 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.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_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", -- "//third_party/androidx:androidx_legacy_legacy_support_core_utils_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_vision_java") { -- aar_path = "cipd/libs/com_google_android_gms_play_services_vision/play-services-vision-20.1.3.aar" -- info_path = "libs/com_google_android_gms_play_services_vision/com_google_android_gms_play_services_vision.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_vision_common_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_vision_common_java") { -- aar_path = "cipd/libs/com_google_android_gms_play_services_vision_common/play-services-vision-common-19.1.3.aar" -- info_path = "libs/com_google_android_gms_play_services_vision_common/com_google_android_gms_play_services_vision_common.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_clearcut_java", -- "$google_play_services_package:google_play_services_flags_java", -- "$google_play_services_package:google_play_services_phenotype_java", -- ] -- } -- } -- +-# 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 (!defined(material_design_target)) { - android_aar_prebuilt("com_google_android_material_material_java") { -@@ -417,24 +231,6 @@ if (!limit_android_deps) { + java_prebuilt("com_android_support_support_annotations_java") { +@@ -233,94 +211,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.1.0.aar" -- info_path = "libs/com_google_android_play_feature_delivery/com_google_android_play_feature_delivery.info" -- enable_bytecode_checks = false -- -- # Target is swapped out when internal code is enabled. -- # Please depend on //third_party/android_deps:playcore_java instead. -- visibility = [ "//third_party/android_deps:*" ] -- deps = [ -- ":com_google_android_play_core_common_java", -- "$google_play_services_package:google_play_services_basement_java", -- "$google_play_services_package:google_play_services_tasks_java", -- ] -- } -- } -- - # 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 +266,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" @@ -3966,96 +3773,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(guava_android_target)) { -@@ -711,20 +420,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" -@@ -787,362 +482,6 @@ if (!limit_android_deps) { + java_prebuilt("com_googlecode_java_diff_utils_diffutils_java") { +@@ -500,180 +390,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-4.0.0.aar" -- info_path = "libs/com_google_android_datatransport_transport_api/com_google_android_datatransport_transport_api.info" -- enable_bytecode_checks = false -- -- # To remove visibility constraint, add this dependency to -- # //third_party/android_deps/build.gradle. -- visibility = [ -- ":*", -- "//third_party/androidx:*", -- ] -- deps = [ "//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_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" -- 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_base_java", -- "$google_play_services_package:google_play_services_basement_java", -- "$google_play_services_package:google_play_services_phenotype_java", -- "$google_play_services_package:google_play_services_tasks_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_play_services_cloud_messaging_java") { @@ -4078,63 +3800,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_flags_java") { -- 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 -- -- # 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_base_java", -- "$google_play_services_package:google_play_services_basement_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_phenotype_java") { -- aar_path = "cipd/libs/com_google_android_gms_play_services_phenotype/play-services-phenotype-17.0.0.aar" -- info_path = "libs/com_google_android_gms_play_services_phenotype/com_google_android_gms_play_services_phenotype.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_base_java", -- "$google_play_services_package:google_play_services_basement_java", -- "$google_play_services_package:google_play_services_tasks_java", -- "//third_party/androidx:androidx_core_core_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.3.aar" -- info_path = "libs/com_google_android_play_core_common/com_google_android_play_core_common.info" -- enable_bytecode_checks = false -- -- # To remove visibility constraint, add this dependency to -- # //third_party/android_deps/build.gradle. -- visibility = [ -- ":*", -- "//third_party/androidx:*", -- ] -- } -- -- # 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.2.0.jar" - output_name = "com_google_firebase_firebase_annotations" @@ -4223,67 +3888,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") { -- java_prebuilt("google_firebase_firebase_encoders_java") { -- 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 -- # //third_party/android_deps/build.gradle. -- visibility = [ -- ":*", -- "//third_party/androidx:*", -- ] -- deps = [ "//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_encoders_json_java") { -- 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 -- -- # 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") { -- 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.1.0.aar" - info_path = "libs/com_google_firebase_firebase_iid_interop/com_google_firebase_firebase_iid_interop.info" diff --git a/build/patches/Remove-help-menu-item.patch b/build/patches/Remove-help-menu-item.patch index f7bdaae8..4cbd97a8 100644 --- a/build/patches/Remove-help-menu-item.patch +++ b/build/patches/Remove-help-menu-item.patch @@ -33,7 +33,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re @@ -173,9 +173,6 @@ found in the LICENSE file. + android:icon="@drawable/bookmark_edit_active" /> - @@ -54,7 +54,7 @@ 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 -@@ -1057,9 +1057,6 @@ public class KeyboardShortcuts { +@@ -1067,9 +1067,6 @@ public class KeyboardShortcuts { currentTab.goForward(); } return true; @@ -67,7 +67,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcu diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -2421,15 +2421,6 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -2434,15 +2434,6 @@ public abstract class ChromeActivity extends AsyncInitializationActivity final Tab currentTab = getActivityTab(); @@ -86,7 +86,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java --- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java -@@ -116,6 +116,7 @@ public class AutofillPaymentMethodsFragment extends ChromeBaseSettingsFragment +@@ -122,6 +122,7 @@ public class AutofillPaymentMethodsFragment extends ChromeBaseSettingsFragment MenuItem help = menu.add(Menu.NONE, R.id.menu_id_targeted_help, Menu.NONE, R.string.menu_help); help.setIcon(R.drawable.ic_help_and_feedback); @@ -97,7 +97,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settin diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillProfilesFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillProfilesFragment.java --- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillProfilesFragment.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillProfilesFragment.java -@@ -133,6 +133,7 @@ public class AutofillProfilesFragment extends ChromeBaseSettingsFragment +@@ -137,6 +137,7 @@ public class AutofillProfilesFragment extends ChromeBaseSettingsFragment MenuItem help = menu.add(Menu.NONE, R.id.menu_id_targeted_help, Menu.NONE, R.string.menu_help); help.setIcon(R.drawable.ic_help_and_feedback); @@ -108,7 +108,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settin diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java --- a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java -@@ -908,6 +908,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment +@@ -896,6 +896,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment TraceEventVectorDrawableCompat.create( getResources(), R.drawable.ic_help_and_feedback, getActivity().getTheme())); help.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); @@ -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 -@@ -1110,7 +1110,6 @@ public abstract class BaseCustomTabActivity extends ChromeActivity { +@@ -1137,7 +1137,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 -@@ -592,6 +592,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -589,6 +589,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment help.setIcon( TraceEventVectorDrawableCompat.create( getResources(), R.drawable.ic_help_and_feedback, getActivity().getTheme())); @@ -174,7 +174,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/G diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/ManageSyncSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/ManageSyncSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/ManageSyncSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/ManageSyncSettings.java -@@ -507,6 +507,7 @@ public class ManageSyncSettings extends ChromeBaseSettingsFragment +@@ -504,6 +504,7 @@ public class ManageSyncSettings extends ChromeBaseSettingsFragment MenuItem help = menu.add(Menu.NONE, R.id.menu_id_targeted_help, Menu.NONE, R.string.menu_help); help.setIcon(R.drawable.ic_help_and_feedback); @@ -196,7 +196,7 @@ diff --git a/chrome/browser/autofill/android/java/res/menu/prefeditor_editor_men diff --git a/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/options/AutofillOptionsFragment.java b/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/options/AutofillOptionsFragment.java --- a/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/options/AutofillOptionsFragment.java +++ b/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/options/AutofillOptionsFragment.java -@@ -95,6 +95,7 @@ public class AutofillOptionsFragment extends ChromeBaseSettingsFragment { +@@ -99,6 +99,7 @@ public class AutofillOptionsFragment extends ChromeBaseSettingsFragment { MenuItem help = menu.add(Menu.NONE, R.id.menu_id_targeted_help, Menu.NONE, R.string.menu_help); help.setIcon(R.drawable.ic_help_and_feedback); @@ -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 -@@ -137,6 +137,15 @@ void LaunchReleaseNotesImpl(Profile* profile, apps::LaunchSource source) { +@@ -138,6 +138,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-preload-of-com.google.android.gms.fonts.patch b/build/patches/Remove-preload-of-com.google.android.gms.fonts.patch index 15da5969..6a8b70ad 100644 --- a/build/patches/Remove-preload-of-com.google.android.gms.fonts.patch +++ b/build/patches/Remove-preload-of-com.google.android.gms.fonts.patch @@ -59,7 +59,7 @@ diff --git a/chrome/android/java/res_base/font/chrome_google_sans_medium.xml b/c diff --git a/chrome/android/java/src/org/chromium/chrome/browser/fonts/FontPreloader.java b/chrome/android/java/src/org/chromium/chrome/browser/fonts/FontPreloader.java --- a/chrome/android/java/src/org/chromium/chrome/browser/fonts/FontPreloader.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/fonts/FontPreloader.java -@@ -62,6 +62,7 @@ public class FontPreloader { +@@ -64,6 +64,7 @@ public class FontPreloader { mThreadChecker.assertOnValidThread(); if (!mInitialized) { mInitialized = true; diff --git a/build/patches/Remove-segmentation-platform.patch b/build/patches/Remove-segmentation-platform.patch index 7352a19d..86ddd760 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 -@@ -267,4 +267,7 @@ BASE_FEATURE(kSegmentationPlatformFedCmUser, +@@ -279,4 +279,7 @@ BASE_FEATURE(kSegmentationPlatformFedCmUser, "SegmentationPlatformFedCmUser", base::FEATURE_DISABLED_BY_DEFAULT); diff --git a/build/patches/Remove-voice-recognition-integration.patch b/build/patches/Remove-voice-recognition-integration.patch index 4a245f24..a0771bac 100644 --- a/build/patches/Remove-voice-recognition-integration.patch +++ b/build/patches/Remove-voice-recognition-integration.patch @@ -29,8 +29,8 @@ 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 -@@ -484,7 +484,7 @@ public class BaseCustomTabRootUiCoordinator extends RootUiCoordinator { - mIntentDataProvider.get().getCustomButtonsOnToolbar(), +@@ -488,7 +488,7 @@ public class BaseCustomTabRootUiCoordinator extends RootUiCoordinator { + mIntentDataProvider.get(), AppCompatResources.getDrawable(mActivity, R.drawable.ic_open_in_new_white_24dp), mOpenInBrowserRunnable, - () -> addVoiceSearchAdaptiveButton(trackerSupplier)); @@ -41,15 +41,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Base diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java -@@ -70,7 +70,6 @@ import org.chromium.chrome.browser.metrics.StartupMetricsTracker; - import org.chromium.chrome.browser.native_page.ContextMenuManager; +@@ -71,7 +71,6 @@ import org.chromium.chrome.browser.native_page.ContextMenuManager; + import org.chromium.chrome.browser.ntp_customization.NtpCustomizationCoordinator; import org.chromium.chrome.browser.omnibox.OmniboxFocusReason; import org.chromium.chrome.browser.omnibox.OmniboxStub; -import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImpl; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; -@@ -126,7 +125,6 @@ public class NewTabPage +@@ -127,7 +126,6 @@ public class NewTabPage TemplateUrlServiceObserver, BrowserControlsStateProvider.Observer, FeedSurfaceDelegate, @@ -57,7 +57,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. ModuleDelegateHost { private static final String TAG = "NewTabPage"; -@@ -157,7 +155,6 @@ public class NewTabPage +@@ -158,7 +156,6 @@ public class NewTabPage protected boolean mSearchProviderHasLogo; protected OmniboxStub mOmniboxStub; @@ -65,7 +65,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. // The timestamp at which the constructor was called. protected final long mConstructedTimeNs; -@@ -362,8 +359,7 @@ public class NewTabPage +@@ -364,8 +361,7 @@ public class NewTabPage @Override public boolean isVoiceSearchEnabled() { @@ -75,7 +75,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. } @Override -@@ -371,24 +367,6 @@ public class NewTabPage +@@ -373,24 +369,6 @@ public class NewTabPage if (mIsDestroyed) return; FeedReliabilityLogger feedReliabilityLogger = mFeedSurfaceProvider.getReliabilityLogger(); @@ -100,7 +100,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. } @Override -@@ -944,12 +922,6 @@ public class NewTabPage +@@ -947,12 +925,6 @@ public class NewTabPage mOmniboxStub.addUrlFocusChangeListener(feedReliabilityLogger); } } @@ -113,7 +113,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. } /** -@@ -968,11 +940,6 @@ public class NewTabPage +@@ -971,11 +943,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); -@@ -1059,9 +1026,6 @@ public class NewTabPage +@@ -1062,9 +1029,6 @@ public class NewTabPage } mFeedSurfaceProvider.destroy(); mTab.getWindowAndroid().removeContextMenuCloseListener(mContextMenuManager); @@ -194,9 +194,9 @@ 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 -@@ -910,7 +910,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { - mActivityLifecycleDispatcher, - mTabCreatorManagerSupplier, +@@ -940,7 +940,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { + mTabBookmarkerSupplier, + mBookmarkModelSupplier, mActivityTabProvider, - () -> addVoiceSearchAdaptiveButton(trackerSupplier)); + () -> {}); @@ -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 -@@ -102,7 +102,6 @@ import org.chromium.chrome.browser.omnibox.OmniboxStub; +@@ -106,7 +106,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; -@@ -2831,10 +2830,6 @@ public class ToolbarManager +@@ -2954,10 +2953,6 @@ public class ToolbarManager return mLocationBar.getOmniboxStub(); } @@ -228,7 +228,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveToolbarUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveToolbarUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveToolbarUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveToolbarUiCoordinator.java -@@ -28,8 +28,6 @@ import org.chromium.chrome.browser.dom_distiller.ReaderModeToolbarButtonControll +@@ -27,8 +27,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; @@ -237,7 +237,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveTool import org.chromium.chrome.browser.price_history.PriceHistoryBottomSheetContentCoordinator; import org.chromium.chrome.browser.price_insights.PriceInsightsButtonController; import org.chromium.chrome.browser.price_tracking.CurrentTabPriceTrackingStateSupplier; -@@ -42,7 +40,6 @@ import org.chromium.chrome.browser.segmentation_platform.ContextualPageActionCon +@@ -41,7 +39,6 @@ import org.chromium.chrome.browser.segmentation_platform.ContextualPageActionCon import org.chromium.chrome.browser.share.ShareButtonController; import org.chromium.chrome.browser.share.ShareDelegate; import org.chromium.chrome.browser.tabmodel.TabModelSelector; @@ -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; -@@ -72,7 +69,6 @@ public class AdaptiveToolbarUiCoordinator { +@@ -71,7 +68,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; -@@ -240,45 +236,6 @@ public class AdaptiveToolbarUiCoordinator { +@@ -228,45 +224,6 @@ public class AdaptiveToolbarUiCoordinator { mButtonDataProviders = List.of(identityDiscController, adaptiveToolbarButtonController); } @@ -299,8 +299,8 @@ 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. -@@ -287,11 +244,6 @@ public class AdaptiveToolbarUiCoordinator { - return mButtonDataProviders; +@@ -280,11 +237,6 @@ public class AdaptiveToolbarUiCoordinator { + return mContextualPageActionController; } - /** Returns {@link VoiceToolbarButtonController} used for voice search button. */ @@ -308,9 +308,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveTool - return mVoiceToolbarButtonController; - } - - /** Destroy internally used objects. */ - public void destroy() { - if (mCurrentTabPriceTrackingStateSupplier != null) { + /** Invokes Price Insights UI. */ + public void runPriceInsightsAction() { + mAdaptiveToolbarButtonController.runPriceInsightsAction(); diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java @@ -322,7 +322,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi import org.chromium.chrome.browser.paint_preview.DemoPaintPreview; import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer; import org.chromium.chrome.browser.password_manager.PasswordManagerLauncher; -@@ -292,7 +291,6 @@ public class RootUiCoordinator +@@ -294,7 +293,6 @@ public class RootUiCoordinator private LayoutManagerImpl mLayoutManager; protected OneshotSupplier mIntentMetadataOneshotSupplier; protected OneshotSupplierImpl mPromoShownOneshotSupplier = new OneshotSupplierImpl<>(); @@ -330,7 +330,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi private MediaCaptureOverlayController mCaptureController; private @Nullable ScrollCaptureManager mScrollCaptureManager; protected final ActivityLifecycleDispatcher mActivityLifecycleDispatcher; -@@ -621,9 +619,6 @@ public class RootUiCoordinator +@@ -624,9 +622,6 @@ public class RootUiCoordinator } if (mToolbarManager != null) { @@ -340,7 +340,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi mToolbarManager.destroy(); mToolbarManager = null; } -@@ -1497,23 +1492,10 @@ public class RootUiCoordinator +@@ -1517,23 +1512,10 @@ public class RootUiCoordinator if (!mSupportsAppMenuSupplier.getAsBoolean()) { mToolbarManager.getToolbar().disableMenuButton(); } @@ -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; -@@ -503,12 +502,6 @@ public class LocationBarCoordinator +@@ -508,12 +507,6 @@ public class LocationBarCoordinator return mLocationBarLayout.getSecurityIconView(); } @@ -422,7 +422,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow @Override public @Nullable OmniboxStub getOmniboxStub() { return mLocationBarMediator; -@@ -839,11 +832,6 @@ public class LocationBarCoordinator +@@ -849,11 +842,6 @@ public class LocationBarCoordinator // End tablet-specific methods. @@ -477,7 +477,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow UrlBarDelegate, OnKeyListener, ComponentCallbacks, -@@ -170,7 +167,6 @@ class LocationBarMediator +@@ -171,7 +168,6 @@ class LocationBarMediator }; private final LocationBarLayout mLocationBarLayout; @@ -485,7 +485,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; -@@ -247,8 +243,6 @@ class LocationBarMediator +@@ -248,8 +244,6 @@ class LocationBarMediator mEmbedderUiOverrides = embedderUiOverrides; mOverrideUrlLoadingDelegate = overrideUrlLoadingDelegate; mLocaleManager = localeManager; @@ -494,7 +494,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; -@@ -295,9 +289,6 @@ class LocationBarMediator +@@ -300,9 +294,6 @@ class LocationBarMediator mStatusCoordinator = null; mAutocompleteCoordinator = null; mUrlCoordinator = null; @@ -504,7 +504,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow mLocationBarDataProvider.removeObserver(this); mDeferredNativeRunnables.clear(); mUrlFocusChangeListeners.clear(); -@@ -429,11 +420,6 @@ class LocationBarMediator +@@ -428,11 +419,6 @@ class LocationBarMediator mLocationBarLayout.setUnfocusedWidth(unfocusedWidth); } @@ -516,7 +516,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow /* package */ void setLensControllerForTesting(LensController lensController) { mLensController = lensController; } -@@ -705,10 +691,6 @@ class LocationBarMediator +@@ -706,10 +692,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); @@ -527,7 +527,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow } /** package */ -@@ -1202,10 +1184,7 @@ class LocationBarMediator +@@ -1209,10 +1191,7 @@ class LocationBarMediator private boolean shouldShowMicButton() { if (shouldShowDeleteButton()) return false; @@ -539,7 +539,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow return false; } boolean isToolbarMicEnabled = mIsToolbarMicEnabledSupplier.getAsBoolean(); -@@ -1222,6 +1201,7 @@ class LocationBarMediator +@@ -1229,6 +1208,7 @@ class LocationBarMediator } private boolean shouldShowLensButton() { @@ -547,7 +547,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. -@@ -1450,11 +1430,6 @@ class LocationBarMediator +@@ -1457,11 +1437,6 @@ class LocationBarMediator } } @@ -559,7 +559,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow @Override public void addUrlFocusChangeListener(UrlFocusChangeListener listener) { mUrlFocusChangeListeners.addObserver(listener); -@@ -1470,31 +1445,13 @@ class LocationBarMediator +@@ -1477,31 +1452,13 @@ class LocationBarMediator return mUrlHasFocus; } @@ -593,7 +593,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; -@@ -1517,20 +1474,6 @@ class LocationBarMediator +@@ -1524,20 +1481,6 @@ class LocationBarMediator mUrlCoordinator.setKeyboardVisibility(true, false); } @@ -691,7 +691,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java -@@ -31,7 +31,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteController.On +@@ -33,7 +33,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteController.On import org.chromium.chrome.browser.omnibox.suggestions.SuggestionListViewBinder.SuggestionListViewHolder; import org.chromium.chrome.browser.omnibox.suggestions.base.BaseSuggestionViewBinder; import org.chromium.chrome.browser.omnibox.suggestions.basic.BasicSuggestionProcessor.BookmarkState; @@ -699,7 +699,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; -@@ -294,13 +293,6 @@ public class AutocompleteCoordinator +@@ -296,13 +295,6 @@ public class AutocompleteCoordinator mRecycledViewPool.ifPresent(p -> p.onNativeInitialized()); } @@ -752,8 +752,8 @@ 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 -@@ -35,7 +35,6 @@ android_library("java") { - "java/src/org/chromium/chrome/browser/toolbar/ToolbarProgressBarAnimatingView.java", +@@ -37,7 +37,6 @@ android_library("java") { + "java/src/org/chromium/chrome/browser/toolbar/ToolbarResourceUtils.java", "java/src/org/chromium/chrome/browser/toolbar/ToolbarTabController.java", "java/src/org/chromium/chrome/browser/toolbar/ToolbarTabControllerImpl.java", - "java/src/org/chromium/chrome/browser/toolbar/VoiceToolbarButtonController.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 33bb1bf1..fc0a1be4 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 -@@ -3010,7 +3010,7 @@ void DocumentLoader::CommitNavigation() { +@@ -2968,7 +2968,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(); } -@@ -3021,6 +3021,7 @@ void DocumentLoader::CommitNavigation() { +@@ -2979,6 +2979,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 b5bc74b8..93b187e0 100644 --- a/build/patches/Restore-BookmarkToolbar-setCurrentFolder.patch +++ b/build/patches/Restore-BookmarkToolbar-setCurrentFolder.patch @@ -16,7 +16,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java --- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java +++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java -@@ -11,10 +11,12 @@ import android.view.View; +@@ -13,12 +13,14 @@ import android.view.View; import android.view.View.OnClickListener; import androidx.annotation.IdRes; @@ -24,23 +24,25 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows import androidx.appcompat.widget.Toolbar.OnMenuItemClickListener; import androidx.core.view.MenuCompat; + import org.chromium.build.annotations.NullMarked; + import org.chromium.build.annotations.Nullable; import org.chromium.chrome.browser.bookmarks.BookmarkUiState.BookmarkUiMode; +import org.chromium.components.bookmarks.BookmarkItem; import org.chromium.components.bookmarks.BookmarkId; import org.chromium.components.browser_ui.util.ToolbarUtils; import org.chromium.components.browser_ui.widget.selectable_list.SelectableListToolbar; -@@ -30,8 +32,10 @@ import java.util.function.Function; - */ +@@ -35,8 +37,10 @@ import java.util.function.Function; + @NullMarked public class BookmarkToolbar extends SelectableListToolbar implements OnMenuItemClickListener, OnClickListener { + private BookmarkModel mBookmarkModel; - private SelectionDelegate mSelectionDelegate; + private @Nullable SelectionDelegate mSelectionDelegate; + private @Nullable BookmarkItem mCurrentFolder; private boolean mEditButtonVisible; private boolean mNewFolderButtonVisible; private boolean mNewFolderButtonEnabled; -@@ -60,6 +64,11 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -65,6 +69,11 @@ public class BookmarkToolbar extends SelectableListToolbar setOnMenuItemClickListener(this); } @@ -52,7 +54,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows void setSelectionDelegate(SelectionDelegate selectionDelegate) { mSelectionDelegate = selectionDelegate; getMenu().setGroupEnabled(R.id.selection_mode_menu_group, true); -@@ -163,6 +172,10 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -168,6 +177,10 @@ public class BookmarkToolbar extends SelectableListToolbar getMenu().findItem(id).setChecked(true); } @@ -66,7 +68,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 -@@ -57,6 +57,7 @@ public class BookmarkToolbarCoordinator { +@@ -59,6 +59,7 @@ public class BookmarkToolbarCoordinator { searchDelegate, R.string.bookmark_toolbar_search, R.id.search_menu_id); mModel = new PropertyModel.Builder(BookmarkToolbarProperties.ALL_KEYS).build(); @@ -77,9 +79,9 @@ 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 +@@ -301,6 +301,7 @@ class BookmarkToolbarMediator @Override - public void onFolderStateSet(BookmarkId folder) { + public void onFolderStateSet(@Nullable BookmarkId folder) { mCurrentFolder = folder; + mModel.set(BookmarkToolbarProperties.CURRENT_FOLDER, mCurrentFolder); @@ -88,16 +90,16 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java --- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java +++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java -@@ -6,6 +6,7 @@ package org.chromium.chrome.browser.bookmarks; +@@ -8,6 +8,7 @@ import android.view.View; - import android.view.View; - -+import org.chromium.components.bookmarks.BookmarkId; + import org.chromium.build.annotations.NullMarked; import org.chromium.chrome.browser.bookmarks.BookmarkUiState.BookmarkUiMode; ++import org.chromium.components.bookmarks.BookmarkId; import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelegate; import org.chromium.ui.modelutil.PropertyKey; -@@ -22,6 +23,8 @@ import java.util.function.Function; - */ + import org.chromium.ui.modelutil.PropertyModel.WritableBooleanPropertyKey; +@@ -24,6 +25,8 @@ import java.util.function.Function; + @NullMarked class BookmarkToolbarProperties { /** Dependencies */ + static final WritableObjectPropertyKey BOOKMARK_MODEL = @@ -105,7 +107,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows static final WritableObjectPropertyKey SELECTION_DELEGATE = new WritableObjectPropertyKey<>(); -@@ -68,6 +71,10 @@ class BookmarkToolbarProperties { +@@ -70,6 +73,10 @@ class BookmarkToolbarProperties { static final WritableObjectPropertyKey FAKE_SELECTION_STATE_CHANGE = new WritableObjectPropertyKey<>(/* skipEquality= */ true); @@ -116,7 +118,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows /** Callables to delegate business logic back to the mediator */ static final WritableObjectPropertyKey> MENU_ID_CLICKED_FUNCTION = new WritableObjectPropertyKey<>(); -@@ -90,6 +97,8 @@ class BookmarkToolbarProperties { +@@ -92,6 +99,8 @@ class BookmarkToolbarProperties { NEW_FOLDER_BUTTON_VISIBLE, NEW_FOLDER_BUTTON_ENABLED, NAVIGATION_BUTTON_STATE, @@ -128,7 +130,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/BookmarkToolbarViewBinder.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarViewBinder.java --- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarViewBinder.java +++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarViewBinder.java -@@ -14,6 +14,8 @@ class BookmarkToolbarViewBinder { +@@ -16,6 +16,8 @@ class BookmarkToolbarViewBinder { if (key == BookmarkToolbarProperties.SELECTION_DELEGATE) { bookmarkToolbar.setSelectionDelegate( model.get(BookmarkToolbarProperties.SELECTION_DELEGATE)); @@ -137,7 +139,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows } else if (key == BookmarkToolbarProperties.BOOKMARK_UI_MODE) { bookmarkToolbar.setBookmarkUiMode( model.get(BookmarkToolbarProperties.BOOKMARK_UI_MODE)); -@@ -50,6 +52,8 @@ class BookmarkToolbarViewBinder { +@@ -52,6 +54,8 @@ class BookmarkToolbarViewBinder { } else if (key == BookmarkToolbarProperties.CHECKED_VIEW_MENU_ID) { bookmarkToolbar.setCheckedViewMenuId( model.get(BookmarkToolbarProperties.CHECKED_VIEW_MENU_ID)); diff --git a/build/patches/Restore-LastTabStandingTracker.patch b/build/patches/Restore-LastTabStandingTracker.patch index cd53e423..f56c7a81 100644 --- a/build/patches/Restore-LastTabStandingTracker.patch +++ b/build/patches/Restore-LastTabStandingTracker.patch @@ -382,15 +382,15 @@ 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 -@@ -132,6 +132,7 @@ - #include "chrome/browser/password_manager/password_manager_settings_service_factory.h" +@@ -134,6 +134,7 @@ #include "chrome/browser/password_manager/password_reuse_manager_factory.h" #include "chrome/browser/password_manager/profile_password_store_factory.h" + #include "chrome/browser/performance_manager/persistence/site_data/site_data_cache_facade_factory.h" +#include "chrome/browser/permissions/last_tab_standing_tracker_factory.h" #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" -@@ -1076,6 +1077,7 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -1090,6 +1091,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" -@@ -428,6 +429,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -430,6 +431,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 fac8b450..8602da53 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 -@@ -339,6 +339,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -352,6 +352,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kReadAloudIPHMenuButtonHighlightCCT, &kRecordSuppressionMetrics, &kReengagementNotification, + &kSearchReadyOmniboxFeature, &kRelatedSearchesAllLanguage, &kRelatedSearchesSwitch, - &kRemoveTabFocusOnShowingAndSelect, + &kReloadTabUiResourcesIfChanged, 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 -@@ -417,6 +417,7 @@ public abstract class ChromeFeatureList { +@@ -433,6 +433,7 @@ public abstract class ChromeFeatureList { "MayLaunchUrlUsesSeparateStoragePartition"; public static final String MINI_ORIGIN_BAR = "MiniOriginBar"; public static final String MOST_VISITED_TILES_CUSTOMIZATION = "MostVisitedTilesCustomization"; @@ -56,26 +56,30 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow @@ -50,6 +51,7 @@ class DropdownItemViewInfoListBuilder { private @Nullable Supplier mShareDelegateSupplier; private Optional mImageSupplier; - private BookmarkState mBookmarkState; + private final BookmarkState mBookmarkState; + private EditUrlSuggestionProcessor mEditUrlSuggestionProcessor; - DropdownItemViewInfoListBuilder(Supplier tabSupplier, BookmarkState bookmarkState) { - mPriorityOrderedSuggestionProcessors = new ArrayList<>(); -@@ -80,9 +82,11 @@ class DropdownItemViewInfoListBuilder { + DropdownItemViewInfoListBuilder( + Supplier<@Nullable Tab> tabSupplier, BookmarkState bookmarkState) { +@@ -78,13 +80,15 @@ class DropdownItemViewInfoListBuilder { mGroupSeparatorProcessor = new GroupSeparatorProcessor(context); mHeaderProcessor = new HeaderProcessor(context); - registerSuggestionProcessor( + mEditUrlSuggestionProcessor = new EditUrlSuggestionProcessor( -- context, host, mImageSupplier, mActivityTabSupplier, shareSupplier)); -+ context, host, mImageSupplier, mActivityTabSupplier, shareSupplier); + context, + host, + mImageSupplier, + mActivityTabSupplier, +- mShareDelegateSupplier)); ++ mShareDelegateSupplier); + registerSuggestionProcessor(mEditUrlSuggestionProcessor); + registerSuggestionProcessor( new AnswerSuggestionProcessor(context, host, textProvider, mImageSupplier)); registerSuggestionProcessor( -@@ -168,6 +172,9 @@ class DropdownItemViewInfoListBuilder { +@@ -170,6 +174,9 @@ class DropdownItemViewInfoListBuilder { mHeaderProcessor.onNativeInitialized(); mImageSupplier.ifPresent(s -> s.onNativeInitialized()); diff --git a/build/patches/Restore-Simplified-NTP-launch.patch b/build/patches/Restore-Simplified-NTP-launch.patch index a1a60dab..9e82d960 100644 --- a/build/patches/Restore-Simplified-NTP-launch.patch +++ b/build/patches/Restore-Simplified-NTP-launch.patch @@ -50,7 +50,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 -@@ -557,6 +557,7 @@ chrome_java_resources = [ +@@ -555,6 +555,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", @@ -262,7 +262,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 -@@ -2964,7 +2964,8 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -3042,7 +3042,8 @@ public class ChromeTabbedActivity extends ChromeActivity { getToolbarManager().getTabStripHeightSupplier(), mModuleRegistrySupplier, mEdgeToEdgeControllerSupplier, @@ -376,7 +376,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 -@@ -168,7 +168,10 @@ public class IdentityDiscController +@@ -167,7 +167,10 @@ public class IdentityDiscController mButtonData.setButtonSpec( buttonSpecWithDrawableAndDescription(mButtonData.getButtonSpec(), email)); @@ -490,7 +490,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java -@@ -116,6 +116,9 @@ import org.chromium.ui.base.DeviceFormFactor; +@@ -117,6 +117,9 @@ import org.chromium.ui.base.DeviceFormFactor; import org.chromium.ui.base.WindowAndroid; import org.chromium.url.GURL; @@ -500,7 +500,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. import java.util.List; /** Provides functionality when the user interacts with the NTP. */ -@@ -479,7 +482,8 @@ public class NewTabPage +@@ -481,7 +484,8 @@ public class NewTabPage ObservableSupplier tabStripHeightSupplier, OneshotSupplier moduleRegistrySupplier, ObservableSupplier edgeToEdgeControllerSupplier, @@ -510,7 +510,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. mConstructedTimeNs = System.nanoTime(); TraceEvent.begin(TAG); -@@ -503,7 +507,7 @@ public class NewTabPage +@@ -505,7 +509,7 @@ public class NewTabPage SuggestionsNavigationDelegate navigationDelegate = new SuggestionsNavigationDelegate( @@ -529,8 +529,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL +import android.view.ViewStub; import android.view.View; import android.view.ViewGroup; - import android.widget.LinearLayout; -@@ -30,6 +31,7 @@ import org.chromium.base.supplier.ObservableSupplier; + import android.widget.ImageView; +@@ -33,6 +34,7 @@ import org.chromium.base.supplier.ObservableSupplier; import org.chromium.chrome.R; import org.chromium.chrome.browser.feed.FeedSurfaceScrollDelegate; import org.chromium.chrome.browser.lens.LensEntryPoint; @@ -538,7 +538,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; -@@ -44,7 +46,7 @@ import org.chromium.chrome.browser.profiles.Profile; +@@ -48,7 +50,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; @@ -547,7 +547,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL import org.chromium.chrome.browser.tab_ui.InvalidationAwareThumbnailProvider; import org.chromium.chrome.browser.ui.native_page.TouchEnabledDelegate; import org.chromium.chrome.browser.util.BrowserUiUtils; -@@ -85,6 +87,8 @@ public class NewTabPageLayout extends LinearLayout { +@@ -90,6 +92,8 @@ public class NewTabPageLayout extends LinearLayout private @Nullable DisplayStyleObserver mDisplayStyleObserver; private CallbackController mCallbackController = new CallbackController(); @@ -556,7 +556,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 { +@@ -102,7 +106,7 @@ public class NewTabPageLayout extends LinearLayout */ private boolean mHasShownView; @@ -565,7 +565,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL private boolean mSearchProviderIsGoogle; private boolean mShowingNonStandardGoogleLogo; -@@ -246,6 +250,7 @@ public class NewTabPageLayout extends LinearLayout { +@@ -267,6 +271,7 @@ public class NewTabPageLayout extends LinearLayout initializeLogoCoordinator(searchProviderHasLogo, searchProviderIsGoogle); initializeMostVisitedTilesCoordinator( mProfile, lifecycleDispatcher, tileGroupDelegate, touchEnabledDelegate); @@ -573,7 +573,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL initializeSearchBoxTextView(); initializeVoiceSearchButton(); initializeLensButton(); -@@ -505,7 +510,7 @@ public class NewTabPageLayout extends LinearLayout { +@@ -529,7 +534,7 @@ public class NewTabPageLayout extends LinearLayout if (mInitialTileNum == null) { mInitialTileNum = @@ -582,7 +582,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL } int currentOrientation = getResources().getConfiguration().orientation; -@@ -573,7 +578,7 @@ public class NewTabPageLayout extends LinearLayout { +@@ -597,7 +602,7 @@ public class NewTabPageLayout extends LinearLayout && mInitialized) { return; } @@ -591,7 +591,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL mSearchProviderIsGoogle = isGoogle; if (!mSearchProviderIsGoogle) { -@@ -895,6 +900,22 @@ public class NewTabPageLayout extends LinearLayout { +@@ -921,6 +926,22 @@ public class NewTabPageLayout extends LinearLayout return mMostVisitedTilesCoordinator; } @@ -625,7 +625,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/Sug + public static final int MAX_TILE_COUNT = 24; /** Maximum number of custom tiles supported. In C++ backend this is `kMaxNumCustomLinks`. */ - public static final int MAX_NUM_CUSTOM_LINKS = 10; + public static final int MAX_NUM_CUSTOM_LINKS = 8; diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsNavigationDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsNavigationDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsNavigationDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsNavigationDelegate.java @@ -987,7 +987,7 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesMediator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesMediator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesMediator.java -@@ -38,7 +38,7 @@ public class MostVisitedTilesMediator implements TileGroup.Observer, TemplateUrl +@@ -36,7 +36,7 @@ public class MostVisitedTilesMediator implements TileGroup.Observer, TemplateUrl private final Resources mResources; private final UiConfig mUiConfig; @@ -996,7 +996,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til private final ViewStub mNoMvPlaceholderStub; private final PropertyModel mModel; private final boolean mIsTablet; -@@ -60,7 +60,7 @@ public class MostVisitedTilesMediator implements TileGroup.Observer, TemplateUrl +@@ -58,7 +58,7 @@ public class MostVisitedTilesMediator implements TileGroup.Observer, TemplateUrl public MostVisitedTilesMediator( Resources resources, UiConfig uiConfig, @@ -1008,7 +1008,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileRenderer.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileRenderer.java --- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileRenderer.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileRenderer.java -@@ -172,7 +172,7 @@ public class TileRenderer { +@@ -171,7 +171,7 @@ public class TileRenderer { */ public void renderTileSection( List sectionTiles, @@ -1017,7 +1017,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til TileGroup.TileSetupDelegate setupDelegate) { try (TraceEvent e = TraceEvent.scoped("TileRenderer.renderTileSection")) { // Map the old tile views by url so they can be reused later. -@@ -239,7 +239,7 @@ public class TileRenderer { +@@ -238,7 +238,7 @@ public class TileRenderer { */ @VisibleForTesting SuggestionsTileView buildTileView( @@ -1026,7 +1026,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til SuggestionsTileView tileView = (SuggestionsTileView) LayoutInflater.from(parent.getContext()) -@@ -316,7 +316,7 @@ public class TileRenderer { +@@ -315,7 +315,7 @@ public class TileRenderer { return tileView; } @@ -1035,7 +1035,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til return (View) LayoutInflater.from(parent.getContext()) .inflate(R.layout.suggestions_tile_vertical_divider, parent, false); -@@ -343,7 +343,7 @@ public class TileRenderer { +@@ -336,7 +336,7 @@ public class TileRenderer { } TileView buildAddCustomLinksButton( @@ -1053,13 +1053,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til @NullMarked -public class TilesLinearLayout extends LinearLayout { +class TilesLinearLayout extends LinearLayout { - private List mTileList = new ArrayList(); + private final List mTileList = new ArrayList(); protected float mNonTileViewsTotalWidthDp; 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 -@@ -65,7 +65,7 @@ static const int kTimesIgnoredForSuppression = 3; +@@ -60,7 +60,7 @@ static const int kTimesIgnoredForSuppression = 3; // These are the maximum # of bookmarks we can use as signals. If the user has // <= kMaxBookmarks, then we just use those bookmarks. Otherwise we filter all // bookmarks on site engagement > 0, sort, and trim to kMaxBookmarks. @@ -1071,9 +1071,9 @@ diff --git a/chrome/browser/engagement/important_sites_util.cc b/chrome/browser/ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -299,6 +299,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { - &kLockBackPressHandlerAtStart, +@@ -311,6 +311,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kIncognitoScreenshot, + &kInstanceSwitcherV2, &kKeyboardEscBackNavigation, + &kSimplifiedNTP, &kLensOnQuickActionSearchWidget, @@ -1082,7 +1082,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 -@@ -418,6 +418,7 @@ public abstract class ChromeFeatureList { +@@ -434,6 +434,7 @@ public abstract class ChromeFeatureList { "MayLaunchUrlUsesSeparateStoragePartition"; public static final String MINI_ORIGIN_BAR = "MiniOriginBar"; public static final String MOST_VISITED_TILES_CUSTOMIZATION = "MostVisitedTilesCustomization"; @@ -1090,13 +1090,13 @@ 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 = -@@ -772,7 +773,7 @@ public abstract class ChromeFeatureList { +@@ -823,7 +824,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 sMiniOriginBar = newCachedFlag(MINI_ORIGIN_BAR, false); + public static final CachedFlag sMiniOriginBar = newCachedFlag(MINI_ORIGIN_BAR, false, true); public static final CachedFlag sMostVisitedTilesCustomization = newCachedFlag(MOST_VISITED_TILES_CUSTOMIZATION, false); 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 diff --git a/build/patches/Restore-chrome-password-store.patch b/build/patches/Restore-chrome-password-store.patch index aff59db0..5c2a3647 100644 --- a/build/patches/Restore-chrome-password-store.patch +++ b/build/patches/Restore-chrome-password-store.patch @@ -37,7 +37,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro diff --git a/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/AutofillClientProviderUtils.java b/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/AutofillClientProviderUtils.java --- a/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/AutofillClientProviderUtils.java +++ b/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/AutofillClientProviderUtils.java -@@ -134,6 +134,7 @@ public class AutofillClientProviderUtils { +@@ -135,6 +135,7 @@ public class AutofillClientProviderUtils { @CalledByNative public static void setAutofillOptionsDeepLinkPref(boolean featureOn) { @@ -83,8 +83,8 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/browser/ui/autofill/autofill_client_provider.cc b/chrome/browser/ui/autofill/autofill_client_provider.cc --- a/chrome/browser/ui/autofill/autofill_client_provider.cc +++ b/chrome/browser/ui/autofill/autofill_client_provider.cc -@@ -25,22 +25,6 @@ AutofillClientProvider::AutofillClientProvider(PrefService* prefs) { - #if BUILDFLAG(IS_ANDROID) +@@ -37,22 +37,6 @@ AutofillClientProvider::AutofillClientProvider(PrefService* prefs) { + DelayRegisteringFieldTrialForA11yDeprecation(); prefs->SetBoolean(prefs::kAutofillUsingVirtualViewStructure, true); - if (base::FeatureList::IsEnabled( @@ -109,7 +109,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 -@@ -831,6 +831,7 @@ BASE_FEATURE(kUseSettingsAddressEditorInPaymentsRequest, +@@ -792,6 +792,7 @@ BASE_FEATURE(kUseSettingsAddressEditorInPaymentsRequest, BASE_FEATURE(kAutofillDeepLinkAutofillOptions, "AutofillDeepLinkAutofillOptions", base::FEATURE_ENABLED_BY_DEFAULT); @@ -143,7 +143,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 -@@ -787,7 +787,7 @@ bool SyncPrefs::IsTypeSupportedInTransportMode(UserSelectableType type) { +@@ -768,7 +768,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 9fbf9257..26230302 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 -@@ -1278,7 +1278,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1308,7 +1308,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; } -@@ -1311,6 +1312,11 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1341,6 +1342,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 -@@ -318,6 +318,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -329,6 +329,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 -@@ -440,6 +440,7 @@ public abstract class ChromeFeatureList { +@@ -457,6 +457,7 @@ public abstract class ChromeFeatureList { "NotificationPermissionBottomSheet"; public static final String NOTIFICATION_PERMISSION_VARIANT = "NotificationPermissionVariant"; public static final String NOTIFICATION_TRAMPOLINE = "NotificationTrampoline"; diff --git a/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch b/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch index 3e6d71f4..dbceb888 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 -@@ -2200,6 +2200,10 @@ +@@ -2255,6 +2255,10 @@ "yangsharon@google.com", "alexmos@google.com", "creis@google.com" ], "expiry_milestone": 140 }, 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 aa53a984..6291b757 100644 --- a/build/patches/Revert-removal-of-execution-context-address-space.patch +++ b/build/patches/Revert-removal-of-execution-context-address-space.patch @@ -66,7 +66,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/core/execution_context/execution_context.cc b/third_party/blink/renderer/core/execution_context/execution_context.cc --- a/third_party/blink/renderer/core/execution_context/execution_context.cc +++ b/third_party/blink/renderer/core/execution_context/execution_context.cc -@@ -517,6 +517,15 @@ void ExecutionContext::SetReferrerPolicy( +@@ -518,6 +518,15 @@ void ExecutionContext::SetReferrerPolicy( policy_container_->UpdateReferrerPolicy(referrer_policy); } @@ -117,7 +117,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_shared_worker_impl.cc diff --git a/third_party/blink/renderer/core/frame/policy_container.cc b/third_party/blink/renderer/core/frame/policy_container.cc --- a/third_party/blink/renderer/core/frame/policy_container.cc +++ b/third_party/blink/renderer/core/frame/policy_container.cc -@@ -57,12 +57,22 @@ network::mojom::blink::ReferrerPolicy PolicyContainer::GetReferrerPolicy() +@@ -59,12 +59,22 @@ network::mojom::blink::ReferrerPolicy PolicyContainer::GetReferrerPolicy() return policies_->referrer_policy; } @@ -226,7 +226,7 @@ diff --git a/third_party/blink/renderer/core/layout/custom/layout_worklet_global diff --git a/third_party/blink/renderer/core/loader/modulescript/installed_service_worker_module_script_fetcher.cc b/third_party/blink/renderer/core/loader/modulescript/installed_service_worker_module_script_fetcher.cc --- a/third_party/blink/renderer/core/loader/modulescript/installed_service_worker_module_script_fetcher.cc +++ b/third_party/blink/renderer/core/loader/modulescript/installed_service_worker_module_script_fetcher.cc -@@ -69,6 +69,7 @@ void InstalledServiceWorkerModuleScriptFetcher::Fetch( +@@ -70,6 +70,7 @@ void InstalledServiceWorkerModuleScriptFetcher::Fetch( global_scope_->Initialize( response_url, response_referrer_policy, @@ -237,7 +237,7 @@ diff --git a/third_party/blink/renderer/core/loader/modulescript/installed_servi diff --git a/third_party/blink/renderer/core/loader/modulescript/module_script_loader_test.cc b/third_party/blink/renderer/core/loader/modulescript/module_script_loader_test.cc --- a/third_party/blink/renderer/core/loader/modulescript/module_script_loader_test.cc +++ b/third_party/blink/renderer/core/loader/modulescript/module_script_loader_test.cc -@@ -215,6 +215,7 @@ void ModuleScriptLoaderTest::InitializeForWorklet() { +@@ -226,6 +226,7 @@ void ModuleScriptLoaderTest::InitializeForWorklet() { network::mojom::ReferrerPolicy::kDefault, security_origin_.get(), true /* is_secure_context */, HttpsState::kModern, nullptr /* worker_clients */, nullptr /* content_settings_client */, @@ -256,7 +256,7 @@ diff --git a/third_party/blink/renderer/core/loader/modulescript/worker_module_s #include "services/network/public/mojom/referrer_policy.mojom-blink.h" #include "third_party/blink/public/common/features.h" #include "third_party/blink/public/common/loader/network_utils.h" -@@ -186,7 +187,7 @@ void WorkerModuleScriptFetcher::NotifyClient( +@@ -188,7 +189,7 @@ void WorkerModuleScriptFetcher::NotifyClient( // Step 12.3-12.6 are implemented in Initialize(). global_scope_->Initialize( @@ -268,7 +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 -@@ -350,6 +350,7 @@ void DedicatedWorker::OnScriptLoadStarted( +@@ -354,6 +354,7 @@ void DedicatedWorker::OnScriptLoadStarted( ContinueStart(script_request_url_, std::move(worker_main_script_load_params), network::mojom::ReferrerPolicy::kDefault, Vector(), @@ -276,7 +276,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third std::move(back_forward_cache_controller_host), std::move(coep_reporting_observer), std::move(dip_reporting_observer)); -@@ -419,6 +420,7 @@ void DedicatedWorker::OnFinished( +@@ -423,6 +424,7 @@ void DedicatedWorker::OnFinished( ? mojo::Clone(classic_script_loader_->GetContentSecurityPolicy() ->GetParsedPolicies()) : Vector(), @@ -284,7 +284,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third std::move(back_forward_cache_controller_host), /*coep_reporting_observer=*/mojo::NullReceiver(), /*dip_reporting_observer=*/mojo::NullReceiver()); -@@ -436,6 +438,7 @@ void DedicatedWorker::ContinueStart( +@@ -440,6 +442,7 @@ void DedicatedWorker::ContinueStart( network::mojom::ReferrerPolicy referrer_policy, Vector response_content_security_policies, @@ -292,7 +292,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third mojo::PendingRemote back_forward_cache_controller_host, mojo::PendingReceiver -@@ -460,6 +463,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), @@ -300,7 +300,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third std::move(back_forward_cache_controller_host), std::move(coep_reporting_observer), std::move(dip_reporting_observer)), -@@ -469,6 +473,7 @@ void DedicatedWorker::ContinueStart( +@@ -473,6 +477,7 @@ void DedicatedWorker::ContinueStart( ContinueStartInternal( script_url, std::move(worker_main_script_load_params), std::move(referrer_policy), std::move(response_content_security_policies), @@ -308,7 +308,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third std::move(back_forward_cache_controller_host), std::move(coep_reporting_observer), std::move(dip_reporting_observer)); } -@@ -480,6 +485,7 @@ void DedicatedWorker::ContinueStartInternal( +@@ -484,6 +489,7 @@ void DedicatedWorker::ContinueStartInternal( network::mojom::ReferrerPolicy referrer_policy, Vector response_content_security_policies, @@ -316,7 +316,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third mojo::PendingRemote back_forward_cache_controller_host, mojo::PendingReceiver -@@ -494,6 +500,7 @@ void DedicatedWorker::ContinueStartInternal( +@@ -498,6 +504,7 @@ void DedicatedWorker::ContinueStartInternal( CreateGlobalScopeCreationParams( script_url, referrer_policy, std::move(response_content_security_policies), @@ -324,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, -@@ -532,6 +539,7 @@ DedicatedWorker::CreateGlobalScopeCreationParams( +@@ -536,6 +543,7 @@ DedicatedWorker::CreateGlobalScopeCreationParams( network::mojom::ReferrerPolicy referrer_policy, Vector response_content_security_policies, @@ -332,7 +332,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third mojo::PendingReceiver coep_reporting_observer, mojo::PendingReceiver -@@ -584,6 +592,7 @@ DedicatedWorker::CreateGlobalScopeCreationParams( +@@ -588,6 +596,7 @@ DedicatedWorker::CreateGlobalScopeCreationParams( execution_context->GetSecurityOrigin(), execution_context->IsSecureContext(), execution_context->GetHttpsState(), MakeGarbageCollected(), CreateWebContentSettingsClient(), @@ -700,7 +700,7 @@ diff --git a/third_party/blink/renderer/core/workers/worker_global_scope.h b/thi #include "third_party/blink/public/common/loader/worker_main_script_load_parameters.h" #include "third_party/blink/public/common/tokens/tokens.h" #include "third_party/blink/public/mojom/loader/code_cache.mojom-blink-forward.h" -@@ -174,6 +175,7 @@ class CORE_EXPORT WorkerGlobalScope +@@ -175,6 +176,7 @@ class CORE_EXPORT WorkerGlobalScope virtual void Initialize( const KURL& response_url, network::mojom::ReferrerPolicy response_referrer_policy, @@ -791,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 -@@ -471,6 +471,7 @@ void ServiceWorkerGlobalScope::DidFetchClassicScript( +@@ -469,6 +469,7 @@ void ServiceWorkerGlobalScope::DidFetchClassicScript( // is set, and with the following callback steps given evaluationStatus:" RunClassicScript( classic_script_loader->ResponseURL(), referrer_policy, @@ -799,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()) -@@ -484,6 +485,7 @@ void ServiceWorkerGlobalScope::DidFetchClassicScript( +@@ -482,6 +483,7 @@ void ServiceWorkerGlobalScope::DidFetchClassicScript( void ServiceWorkerGlobalScope::Initialize( const KURL& response_url, network::mojom::ReferrerPolicy response_referrer_policy, @@ -807,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." -@@ -497,6 +499,9 @@ void ServiceWorkerGlobalScope::Initialize( +@@ -495,6 +497,9 @@ void ServiceWorkerGlobalScope::Initialize( // script resource's referrer policy." SetReferrerPolicy(response_referrer_policy); @@ -817,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 -@@ -507,6 +512,9 @@ void ServiceWorkerGlobalScope::Initialize( +@@ -505,6 +510,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." @@ -827,7 +827,7 @@ diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_gl InitContentSecurityPolicyFromVector(std::move(response_csp)); BindContentSecurityPolicyToExecutionContext(); -@@ -547,26 +555,27 @@ void ServiceWorkerGlobalScope::LoadAndRunInstalledClassicScript( +@@ -545,26 +553,27 @@ void ServiceWorkerGlobalScope::LoadAndRunInstalledClassicScript( kDoNotSupportReferrerPolicyLegacyKeywords, &referrer_policy); } @@ -874,7 +874,7 @@ diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_gl Vector response_csp, const Vector* response_origin_trial_tokens) override; // Fetches and runs the top-level classic worker script. -@@ -401,6 +402,7 @@ class MODULES_EXPORT ServiceWorkerGlobalScope final +@@ -403,6 +404,7 @@ class MODULES_EXPORT ServiceWorkerGlobalScope final void RunClassicScript( const KURL& response_url, network::mojom::ReferrerPolicy response_referrer_policy, diff --git a/build/patches/Revert-remove-allowscript-content-setting-secondary-url.patch b/build/patches/Revert-remove-allowscript-content-setting-secondary-url.patch index 07ec4772..460bc137 100644 --- a/build/patches/Revert-remove-allowscript-content-setting-secondary-url.patch +++ b/build/patches/Revert-remove-allowscript-content-setting-secondary-url.patch @@ -69,7 +69,7 @@ diff --git a/chrome/renderer/worker_content_settings_client.cc b/chrome/renderer diff --git a/chrome/renderer/worker_content_settings_client.h b/chrome/renderer/worker_content_settings_client.h --- a/chrome/renderer/worker_content_settings_client.h +++ b/chrome/renderer/worker_content_settings_client.h -@@ -38,6 +38,8 @@ class WorkerContentSettingsClient : public blink::WebContentSettingsClient { +@@ -37,6 +37,8 @@ class WorkerContentSettingsClient : public blink::WebContentSettingsClient { bool AllowStorageAccessSync(StorageType storage_type) override; bool AllowRunningInsecureContent(bool allowed_per_settings, const blink::WebURL& url) override; @@ -143,7 +143,7 @@ diff --git a/components/content_settings/renderer/content_settings_agent_impl.cc diff --git a/components/content_settings/renderer/content_settings_agent_impl.h b/components/content_settings/renderer/content_settings_agent_impl.h --- a/components/content_settings/renderer/content_settings_agent_impl.h +++ b/components/content_settings/renderer/content_settings_agent_impl.h -@@ -90,6 +90,9 @@ class ContentSettingsAgentImpl +@@ -89,6 +89,9 @@ class ContentSettingsAgentImpl bool AllowStorageAccessSync(StorageType type) override; bool AllowImage(bool enabled_per_settings, const blink::WebURL& image_url) override; @@ -153,7 +153,7 @@ diff --git a/components/content_settings/renderer/content_settings_agent_impl.h bool AllowReadFromClipboard() override; bool AllowWriteToClipboard() override; bool AllowMutationEvents(bool default_value) override; -@@ -157,6 +160,9 @@ class ContentSettingsAgentImpl +@@ -156,6 +159,9 @@ class ContentSettingsAgentImpl using StoragePermissionsKey = std::pair; base::flat_map cached_storage_permissions_; @@ -196,7 +196,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p #include "third_party/blink/renderer/bindings/core/v8/binding_security.h" #include "third_party/blink/renderer/bindings/core/v8/capture_source_location.h" #include "third_party/blink/renderer/bindings/core/v8/isolated_world_csp.h" -@@ -490,7 +491,10 @@ bool LocalDOMWindow::CanExecuteScripts( +@@ -496,7 +497,10 @@ bool LocalDOMWindow::CanExecuteScripts( } return false; } @@ -211,7 +211,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc -@@ -4061,19 +4061,6 @@ bool LocalFrame::IsSameOrigin() { +@@ -4041,19 +4041,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 -@@ -931,12 +931,6 @@ class CORE_EXPORT LocalFrame final +@@ -936,12 +936,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) { @@ -298,7 +298,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/thi return; } -@@ -973,15 +974,26 @@ void FrameFetchContext::SetFirstPartyCookie(ResourceRequest& request) { +@@ -999,15 +1000,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, +@@ -170,7 +181,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext, // BaseFetchContext overrides: net::SiteForCookies GetSiteForCookies() const override; SubresourceFilter* GetSubresourceFilter() const override; diff --git a/build/patches/Show-NTP-at-startup.patch b/build/patches/Show-NTP-at-startup.patch index a8cfcbef..28351490 100644 --- a/build/patches/Show-NTP-at-startup.patch +++ b/build/patches/Show-NTP-at-startup.patch @@ -55,7 +55,7 @@ diff --git a/chrome/android/java/res/xml/homepage_preferences.xml b/chrome/andro diff --git a/chrome/android/java/src/org/chromium/chrome/browser/BrowserRestartActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/BrowserRestartActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/BrowserRestartActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/BrowserRestartActivity.java -@@ -67,6 +67,7 @@ public class BrowserRestartActivity extends Activity { +@@ -71,6 +71,7 @@ public class BrowserRestartActivity extends Activity { Intent restartIntent = new Intent(Intent.ACTION_MAIN); restartIntent.setPackage(context.getPackageName()); restartIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); @@ -66,7 +66,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/BrowserRestartA diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeInactivityTracker.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeInactivityTracker.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeInactivityTracker.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeInactivityTracker.java -@@ -12,8 +12,10 @@ import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher; +@@ -15,8 +15,10 @@ import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher; import org.chromium.chrome.browser.lifecycle.DestroyObserver; import org.chromium.chrome.browser.lifecycle.PauseResumeWithNativeObserver; import org.chromium.chrome.browser.lifecycle.StartStopWithNativeObserver; @@ -77,7 +77,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeInactivit /** * Manages pref that can track the delay since the last stop of the tracked activity. -@@ -55,6 +57,18 @@ public class ChromeInactivityTracker +@@ -59,6 +61,18 @@ public class ChromeInactivityTracker mLifecycleDispatcher.register(this); } @@ -99,7 +99,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 -@@ -2611,6 +2611,8 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -2689,6 +2689,8 @@ public class ChromeTabbedActivity extends ChromeActivity { mInactivityTracker = new ChromeInactivityTracker( ChromePreferenceKeys.TABBED_ACTIVITY_LAST_BACKGROUNDED_TIME_MS_PREF); @@ -154,7 +154,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 -@@ -1112,7 +1112,7 @@ +@@ -861,7 +861,7 @@ Open a specific page or set of pages @@ -166,7 +166,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 -@@ -358,6 +358,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -371,6 +371,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kSearchInCCT, &kSearchInCCTAlternateTapHandling, &kSearchResumptionModuleAndroid, @@ -215,7 +215,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 -@@ -844,6 +844,8 @@ public final class ChromePreferenceKeys { +@@ -847,6 +847,8 @@ public final class ChromePreferenceKeys { public static final String TABBED_ACTIVITY_LAST_BACKGROUNDED_TIME_MS_PREF = "ChromeTabbedActivity.BackgroundTimeMs"; @@ -227,7 +227,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java -@@ -116,6 +116,7 @@ public class LegacyChromePreferenceKeys { +@@ -115,6 +115,7 @@ public class LegacyChromePreferenceKeys { ChromePreferenceKeys.SNAPSHOT_DATABASE_REMOVED, ChromePreferenceKeys.SYNC_ERROR_MESSAGE_SHOWN_AT_TIME, ChromePreferenceKeys.TABBED_ACTIVITY_LAST_BACKGROUNDED_TIME_MS_PREF, @@ -259,7 +259,7 @@ diff --git a/chrome/browser/resources/settings/on_startup_page/on_startup_page.t diff --git a/chrome/browser/sessions/tab_loader.cc b/chrome/browser/sessions/tab_loader.cc --- a/chrome/browser/sessions/tab_loader.cc +++ b/chrome/browser/sessions/tab_loader.cc -@@ -52,7 +52,7 @@ struct ScoredTabComparator { +@@ -51,7 +51,7 @@ struct ScoredTabComparator { }; // Testing seams. @@ -268,7 +268,7 @@ diff --git a/chrome/browser/sessions/tab_loader.cc b/chrome/browser/sessions/tab base::RepeatingCallback* g_construction_callback = nullptr; // Determines if the given browser (can be null) is closing. -@@ -384,7 +384,7 @@ void TabLoader::OnMemoryPressure( +@@ -383,7 +383,7 @@ void TabLoader::OnMemoryPressure( bool TabLoader::ShouldStopLoadingTabs() const { DCHECK(reentry_depth_ > 0); // This can only be called internally. @@ -277,7 +277,7 @@ diff --git a/chrome/browser/sessions/tab_loader.cc b/chrome/browser/sessions/tab scheduled_to_load_count_ >= g_max_loaded_tab_count_for_testing) { return true; } -@@ -425,7 +425,7 @@ size_t TabLoader::GetMaxNewTabLoads() const { +@@ -424,7 +424,7 @@ size_t TabLoader::GetMaxNewTabLoads() const { tabs_to_load = std::min(tabs_to_load, tabs_to_load_.size()); // Finally, enforce testing tab load limits. @@ -310,7 +310,7 @@ diff --git a/chrome/browser/single_tab/android/java/res/layout/single_tab_module android:background="@drawable/single_tab_thumbnail_background" tools:ignore="UselessParent"> -@@ -123,21 +123,21 @@ found in the LICENSE file. +@@ -125,21 +125,21 @@ found in the LICENSE file. callback) override; bool AllowStorageAccessSync(StorageType type) override; @@ -324,7 +324,7 @@ diff --git a/third_party/blink/public/platform/web_content_settings_client.h b/t diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc -@@ -4048,19 +4048,6 @@ bool LocalFrame::IsSameOrigin() { +@@ -4028,19 +4028,6 @@ bool LocalFrame::IsSameOrigin() { return security_origin->IsSameOriginWith(top_security_origin); } @@ -347,7 +347,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h --- a/third_party/blink/renderer/core/frame/local_frame.h +++ b/third_party/blink/renderer/core/frame/local_frame.h -@@ -930,12 +930,6 @@ class CORE_EXPORT LocalFrame final +@@ -935,12 +935,6 @@ class CORE_EXPORT LocalFrame final return *v8_local_compile_hints_producer_; } @@ -427,7 +427,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.h b/thir diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/renderer/core/page/page.cc --- a/third_party/blink/renderer/core/page/page.cc +++ b/third_party/blink/renderer/core/page/page.cc -@@ -1070,9 +1070,8 @@ void Page::SettingsChanged(ChangeType change_type) { +@@ -1071,9 +1071,8 @@ void Page::SettingsChanged(ChangeType change_type) { for (Frame* frame = MainFrame(); frame; frame = frame->Tree().TraverseNext()) { if (auto* local_frame = DynamicTo(frame)) { @@ -454,15 +454,15 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/fetch_context.h b/ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc --- a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc +++ b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc -@@ -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), + images_enabled_(true), allow_stale_resources_(false), - image_fetched_(false), - speculative_decode_in_flight_(false) { -@@ -1995,7 +1996,7 @@ bool ResourceFetcher::IsImageResourceDisallowedToBeReused( + image_fetched_(false) { + InstanceCounters::IncrementCounter(InstanceCounters::kResourceFetcherCounter); +@@ -1996,7 +1997,7 @@ bool ResourceFetcher::IsImageResourceDisallowedToBeReused( return false; } @@ -471,7 +471,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c } ResourceFetcher::RevalidationPolicy -@@ -2240,8 +2241,20 @@ void ResourceFetcher::SetAutoLoadImages(bool enable) { +@@ -2241,8 +2242,20 @@ void ResourceFetcher::SetAutoLoadImages(bool enable) { ReloadImagesIfNotDeferred(); } @@ -504,7 +504,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h FetchContext& Context() const; void ClearContext(); -@@ -704,6 +705,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/Switch-to-fstack-protector-strong.patch b/build/patches/Switch-to-fstack-protector-strong.patch index d24b44d7..79e83bb1 100644 --- a/build/patches/Switch-to-fstack-protector-strong.patch +++ b/build/patches/Switch-to-fstack-protector-strong.patch @@ -19,7 +19,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn -@@ -383,7 +383,7 @@ config("compiler") { +@@ -395,7 +395,7 @@ config("compiler") { } else if ((is_posix && !is_nacl) || is_fuchsia) { if (current_os != "aix") { # Not available on aix. diff --git a/build/patches/Temp-disable-experimental-web-platform-features.patch b/build/patches/Temp-disable-experimental-web-platform-features.patch index 4205a583..e38f4e2a 100644 --- a/build/patches/Temp-disable-experimental-web-platform-features.patch +++ b/build/patches/Temp-disable-experimental-web-platform-features.patch @@ -9,10 +9,10 @@ Subject: Temp disable experimental-web-platform-features diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -4839,10 +4839,10 @@ const FeatureEntry kFeatureEntries[] = { - {"enable-fontations-backend", flag_descriptions::kFontationsFontBackendName, - flag_descriptions::kFontationsFontBackendDescription, kOsAll, - FEATURE_VALUE_TYPE(blink::features::kFontationsFontBackend)}, +@@ -4939,10 +4939,10 @@ const FeatureEntry kFeatureEntries[] = { + {"enable-gpu-rasterization", flag_descriptions::kGpuRasterizationName, + flag_descriptions::kGpuRasterizationDescription, kOsAll, + MULTI_VALUE_TYPE(kEnableGpuRasterizationChoices)}, - {"enable-experimental-web-platform-features", - flag_descriptions::kExperimentalWebPlatformFeaturesName, - flag_descriptions::kExperimentalWebPlatformFeaturesDescription, kOsAll, diff --git a/build/patches/Temp-guard-FileSystemAccessPersistentPermissions.patch b/build/patches/Temp-guard-FileSystemAccessPersistentPermissions.patch index 777030f4..5e0e1395 100644 --- a/build/patches/Temp-guard-FileSystemAccessPersistentPermissions.patch +++ b/build/patches/Temp-guard-FileSystemAccessPersistentPermissions.patch @@ -10,22 +10,22 @@ Subject: Temp guard FileSystemAccessPersistentPermissions diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc b/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc --- a/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc +++ b/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc -@@ -460,7 +460,7 @@ bool ShouldBlockAccessToPath( - normalize_file_paths ? NormalizeFilePath(block.path) : block.path; - - if (check_path == blocked_path || check_path.IsParent(blocked_path)) { -- VLOG(1) << "Blocking access to " << check_path -+ LOG(INFO) << "Blocking access to " << check_path - << " because it is a parent of " << blocked_path; +@@ -478,7 +478,7 @@ bool ShouldBlockAccessToPath( + auto should_block_with_rule = [&](const base::FilePath& block_path, + BlockType block_type) -> bool { + if (path == block_path || path.IsParent(block_path)) { +- VLOG(1) << "Blocking access to " << path << " because it is a parent of " ++ LOG(INFO) << "Blocking access to " << path << " because it is a parent of " + << block_path; return true; } -@@ -487,7 +487,7 @@ bool ShouldBlockAccessToPath( +@@ -527,7 +527,7 @@ bool ShouldBlockAccessToPath( } // The nearest ancestor blocks access to its children, so block access. -- VLOG(1) << "Blocking access to " << check_path << " because it is inside " -+ LOG(INFO) << "Blocking access to " << check_path << " because it is inside " - << nearest_ancestor; +- VLOG(1) << "Blocking access to " << path << " because it is inside " ++ LOG(INFO) << "Blocking access to " << path << " because it is inside " + << nearest_ancestor << " and it's kBlockAllChildren"; return true; } diff --git a/chrome/browser/file_system_access/file_system_access_features.cc b/chrome/browser/file_system_access/file_system_access_features.cc diff --git a/build/patches/Temporarily-disable-Tab-Group-Sync-Android.patch b/build/patches/Temporarily-disable-Tab-Group-Sync-Android.patch index 787a6341..3a4795d9 100644 --- a/build/patches/Temporarily-disable-Tab-Group-Sync-Android.patch +++ b/build/patches/Temporarily-disable-Tab-Group-Sync-Android.patch @@ -10,7 +10,7 @@ Subject: Temporarily disable Tab Group Sync Android 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 -@@ -985,8 +985,6 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -990,8 +990,6 @@ public class ChromeTabbedActivity extends ChromeActivity { builder.registerPane( PaneId.INCOGNITO_TAB_SWITCHER, LazyOneshotSupplier.fromSupplier(() -> createTabSwitcherPane(true))); @@ -22,7 +22,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct 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 -@@ -136,4 +136,6 @@ base::TimeDelta GetOriginatingSavedGroupCleanUpTimeInterval() { +@@ -141,4 +141,6 @@ base::TimeDelta GetOriginatingSavedGroupCleanUpTimeInterval() { return base::Seconds(time_in_seconds); } diff --git a/build/patches/Timezone-customization.patch b/build/patches/Timezone-customization.patch index c6b28be5..f9fef2c9 100644 --- a/build/patches/Timezone-customization.patch +++ b/build/patches/Timezone-customization.patch @@ -661,7 +661,7 @@ new file mode 100644 diff --git a/components/content_settings/core/browser/content_settings_pref_provider.cc b/components/content_settings/core/browser/content_settings_pref_provider.cc --- a/components/content_settings/core/browser/content_settings_pref_provider.cc +++ b/components/content_settings/core/browser/content_settings_pref_provider.cc -@@ -93,6 +93,8 @@ void PrefProvider::RegisterProfilePrefs( +@@ -90,6 +90,8 @@ void PrefProvider::RegisterProfilePrefs( info->GetPrefRegistrationFlags()); } @@ -670,7 +670,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov // Obsolete prefs ---------------------------------------------------------- // These prefs have been removed, but need to be registered so they can -@@ -169,6 +171,10 @@ PrefProvider::PrefProvider(PrefService* prefs, +@@ -166,6 +168,10 @@ PrefProvider::PrefProvider(PrefService* prefs, event_args->set_number_of_exceptions( num_exceptions); // PrefProvider::PrefProvider. }); @@ -681,7 +681,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov } PrefProvider::~PrefProvider() { -@@ -465,4 +471,14 @@ void PrefProvider::SetClockForTesting(const base::Clock* clock) { +@@ -459,4 +465,14 @@ void PrefProvider::SetClockForTesting(const base::Clock* clock) { } } @@ -735,7 +735,7 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.cc diff --git a/components/content_settings/core/browser/host_content_settings_map.cc b/components/content_settings/core/browser/host_content_settings_map.cc --- a/components/content_settings/core/browser/host_content_settings_map.cc +++ b/components/content_settings/core/browser/host_content_settings_map.cc -@@ -663,6 +663,14 @@ void HostContentSettingsMap::SetClockForTesting(const base::Clock* clock) { +@@ -664,6 +664,14 @@ void HostContentSettingsMap::SetClockForTesting(const base::Clock* clock) { } } @@ -753,7 +753,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map. diff --git a/components/content_settings/core/browser/host_content_settings_map.h b/components/content_settings/core/browser/host_content_settings_map.h --- a/components/content_settings/core/browser/host_content_settings_map.h +++ b/components/content_settings/core/browser/host_content_settings_map.h -@@ -370,6 +370,9 @@ class HostContentSettingsMap : public content_settings::Observer, +@@ -376,6 +376,9 @@ class HostContentSettingsMap : public content_settings::Observer, // Returns the current time of the `clock_`. base::Time Now() const { return clock_->Now(); } @@ -821,7 +821,7 @@ diff --git a/components/content_settings/core/common/content_settings_mojom_trai diff --git a/components/content_settings/core/common/pref_names.h b/components/content_settings/core/common/pref_names.h --- a/components/content_settings/core/common/pref_names.h +++ b/components/content_settings/core/common/pref_names.h -@@ -255,6 +255,9 @@ inline constexpr char kDesktopSiteWindowSettingEnabled[] = +@@ -251,6 +251,9 @@ inline constexpr char kDesktopSiteWindowSettingEnabled[] = "desktop_site.window_setting"; #endif @@ -935,8 +935,8 @@ diff --git a/components/content_settings/renderer/content_settings_agent_impl.cc diff --git a/components/content_settings/renderer/content_settings_agent_impl.h b/components/content_settings/renderer/content_settings_agent_impl.h --- a/components/content_settings/renderer/content_settings_agent_impl.h +++ b/components/content_settings/renderer/content_settings_agent_impl.h -@@ -25,6 +25,11 @@ - #include "url/gurl.h" +@@ -24,6 +24,11 @@ + #include "third_party/blink/public/platform/web_content_settings_client.h" #include "url/origin.h" +#include "third_party/blink/renderer/core/inspector/locale_controller.h" @@ -947,7 +947,7 @@ diff --git a/components/content_settings/renderer/content_settings_agent_impl.h namespace blink { class WebFrame; class WebURL; -@@ -166,6 +171,12 @@ class ContentSettingsAgentImpl +@@ -165,6 +170,12 @@ class ContentSettingsAgentImpl std::unique_ptr delegate_; mojo::AssociatedReceiverSet receivers_; diff --git a/build/patches/Use-browser-navigation-handler.patch b/build/patches/Use-browser-navigation-handler.patch index 0350833b..27f809b4 100644 --- a/build/patches/Use-browser-navigation-handler.patch +++ b/build/patches/Use-browser-navigation-handler.patch @@ -32,7 +32,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java -@@ -102,6 +102,7 @@ import org.chromium.ui.resources.dynamics.DynamicResourceLoader; +@@ -103,6 +103,7 @@ import org.chromium.ui.util.MotionEventUtils; import org.chromium.url.GURL; import java.util.ArrayList; @@ -43,7 +43,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/Comp diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/GestureNavigationProperties.java b/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/GestureNavigationProperties.java --- a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/GestureNavigationProperties.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/GestureNavigationProperties.java -@@ -17,7 +17,7 @@ class GestureNavigationProperties { +@@ -19,7 +19,7 @@ class GestureNavigationProperties { /** * Gesture navigation direction. {@code true} for forward navigation, {@code false} for back. */ @@ -52,7 +52,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/Gest /** Gesture navigation edge as defined in {@link BackGestureEventSwipeEdge}. */ static final WritableIntPropertyKey EDGE = new WritableIntPropertyKey(); -@@ -39,6 +39,6 @@ class GestureNavigationProperties { +@@ -41,6 +41,6 @@ class GestureNavigationProperties { static final WritableIntPropertyKey CLOSE_INDICATOR = new WritableIntPropertyKey(); static final PropertyKey[] ALL_KEYS = { @@ -72,7 +72,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/Gest import static org.chromium.chrome.browser.gesturenav.GestureNavigationProperties.EDGE; import android.view.View; -@@ -32,8 +32,8 @@ class GestureNavigationViewBinder { +@@ -34,8 +34,8 @@ class GestureNavigationViewBinder { } else if (ACTION == key) { switch (model.get(ACTION)) { case GestureAction.SHOW_ARROW: @@ -107,7 +107,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/Hist diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/HistoryNavigationLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/HistoryNavigationLayout.java --- a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/HistoryNavigationLayout.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/HistoryNavigationLayout.java -@@ -67,8 +67,8 @@ class HistoryNavigationLayout extends FrameLayout implements ViewGroup.OnHierarc +@@ -74,8 +74,8 @@ class HistoryNavigationLayout extends FrameLayout implements ViewGroup.OnHierarc * @param forward {@code true} for forward navigation, or {@code false} for back. * @param initiatingEdge Which edge of the screen the gesture is navigating from. */ @@ -118,7 +118,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/Hist @BackGestureEventSwipeEdge int initiatingEdge, @CloseTarget int closeIndicator) { if (mSideSlideLayout == null) { -@@ -86,7 +86,7 @@ class HistoryNavigationLayout extends FrameLayout implements ViewGroup.OnHierarc +@@ -93,7 +93,7 @@ class HistoryNavigationLayout extends FrameLayout implements ViewGroup.OnHierarc }); } mSideSlideLayout.setEnabled(true); @@ -139,7 +139,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/Navi import static org.chromium.chrome.browser.gesturenav.GestureNavigationProperties.EDGE; import android.app.Activity; -@@ -290,7 +290,11 @@ class NavigationHandler implements TouchEventObserver { +@@ -284,7 +284,11 @@ class NavigationHandler implements TouchEventObserver { boolean forward = isForward(); @@ -152,7 +152,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/Navi mModel.set(EDGE, mInitiatingEdge); if (canNavigate(forward)) { // Correct swipe, reset mIncorrectEdgeSwipeCount. -@@ -523,12 +527,14 @@ class NavigationHandler implements TouchEventObserver { +@@ -517,12 +521,14 @@ class NavigationHandler implements TouchEventObserver { } private boolean isForward() { @@ -171,7 +171,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/Navi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/SideSlideLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/SideSlideLayout.java --- a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/SideSlideLayout.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/SideSlideLayout.java -@@ -105,6 +105,7 @@ public class SideSlideLayout extends ViewGroup { +@@ -108,6 +108,7 @@ public class SideSlideLayout extends ViewGroup { private int mAnimationViewWidth; private boolean mIsForward; @@ -179,7 +179,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/Side private @CloseTarget int mCloseIndicator; private @BackGestureEventSwipeEdge int mInitiatingEdge; -@@ -220,10 +221,10 @@ public class SideSlideLayout extends ViewGroup { +@@ -223,10 +224,10 @@ public class SideSlideLayout extends ViewGroup { * Set the direction used for sliding gesture. * @param forward {@code true} if direction is forward. */ @@ -194,7 +194,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/Side } public void setInitiatingEdge(@BackGestureEventSwipeEdge int edge) { -@@ -329,7 +330,7 @@ public class SideSlideLayout extends ViewGroup { +@@ -332,7 +333,7 @@ public class SideSlideLayout extends ViewGroup { mWillNavigate = navigating; if (mCloseIndicator != CloseTarget.NONE) { @@ -203,7 +203,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/Side mArrowView.showCaption(mCloseIndicator); mArrowViewWidth = mArrowView.getMeasuredWidth(); } else { -@@ -345,6 +346,20 @@ public class SideSlideLayout extends ViewGroup { +@@ -348,6 +349,20 @@ public class SideSlideLayout extends ViewGroup { ? -targetDiff : targetDiff); setTargetOffsetLeftAndRight(targetX - mCurrentTargetOffset); @@ -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 -@@ -83,6 +83,7 @@ import org.chromium.chrome.browser.firstrun.FirstRunStatus; +@@ -89,6 +89,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; -@@ -755,7 +756,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -783,7 +784,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 4a3447f7..a27e6707 100644 --- a/build/patches/Use-list-mode-for-tab-switcher.patch +++ b/build/patches/Use-list-mode-for-tab-switcher.patch @@ -24,12 +24,12 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser @@ -8,6 +8,7 @@ import android.os.Build; import org.chromium.base.SysUtils; - import org.chromium.chrome.browser.flags.ChromeFeatureList; + import org.chromium.build.annotations.NullMarked; +import org.chromium.chrome.browser.flags.cromite.sTabSwitcherListMode; - import org.chromium.ui.util.XrUtils; + import org.chromium.chrome.browser.flags.ChromeFeatureList; import java.util.Locale; -@@ -19,11 +20,7 @@ public class TabUiFeatureUtilities { +@@ -20,11 +21,7 @@ public class TabUiFeatureUtilities { /** Returns whether the Grid Tab Switcher UI should use list mode. */ public static boolean shouldUseListMode() { @@ -41,7 +41,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser + return sTabSwitcherListMode.getInstance().isEnabled() || ChromeFeatureList.sForceListTabSwitcher.isEnabled(); } - /** + /** Returns whether device OEM is allow-listed for tab tearing */ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml @@ -113,15 +113,15 @@ 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 -@@ -57,6 +57,7 @@ import org.chromium.build.annotations.NullUnmarked; +@@ -55,6 +55,7 @@ import org.chromium.build.annotations.NullMarked; + import org.chromium.build.annotations.NullUnmarked; import org.chromium.build.annotations.Nullable; - import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.omnibox.LocationBar; +import org.chromium.chrome.browser.flags.cromite.sTabSwitcherListMode; import org.chromium.chrome.browser.omnibox.LocationBarCoordinator; import org.chromium.chrome.browser.omnibox.NewTabPageDelegate; import org.chromium.chrome.browser.omnibox.SearchEngineUtils; -@@ -1779,7 +1780,7 @@ public class ToolbarPhone extends ToolbarLayout +@@ -1771,7 +1772,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); } -@@ -1968,7 +1969,8 @@ public class ToolbarPhone extends ToolbarLayout +@@ -1960,7 +1961,8 @@ public class ToolbarPhone extends ToolbarLayout updateBackground(hasFocus); updateLocationBarForNtp(mVisualState, urlHasFocus()); diff --git a/build/patches/User-agent-customization.patch b/build/patches/User-agent-customization.patch index 071b66b0..2aadf2aa 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 -@@ -219,7 +219,7 @@ base::WeakPtr GetAsyncCheckTracker( +@@ -226,7 +226,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 -@@ -656,4 +656,6 @@ chrome_java_resources = [ +@@ -654,4 +654,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 -@@ -2582,6 +2582,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -2595,6 +2595,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity TabUtils.switchUserAgent( currentTab, usingDesktopUserAgent, @@ -551,7 +551,7 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/RequestDesktopUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/RequestDesktopUtils.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/RequestDesktopUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/RequestDesktopUtils.java -@@ -131,6 +131,7 @@ public class RequestDesktopUtils { +@@ -133,6 +133,7 @@ public class RequestDesktopUtils { */ public static void setRequestDesktopSiteContentSettingsForUrl( Profile profile, GURL url, boolean useDesktopUserAgent) { @@ -562,7 +562,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/RequestDesk diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java -@@ -72,6 +72,9 @@ import org.chromium.components.autofill.AutofillProvider; +@@ -74,6 +74,9 @@ import org.chromium.components.autofill.AutofillProvider; import org.chromium.components.autofill.AutofillProviderUMA; import org.chromium.components.autofill.AutofillSelectionActionMenuDelegate; import org.chromium.components.autofill.AutofillSelectionMenuItemHelper; @@ -572,7 +572,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav import org.chromium.components.dom_distiller.core.DomDistillerUrlUtils; import org.chromium.components.embedder_support.contextmenu.ContextMenuPopulatorFactory; import org.chromium.components.embedder_support.util.UrlConstants; -@@ -110,6 +113,9 @@ import org.chromium.chrome.browser.preferences.Pref; +@@ -112,6 +115,9 @@ import org.chromium.chrome.browser.preferences.Pref; import org.chromium.chrome.browser.profiles.ProfileManager; import org.chromium.components.user_prefs.UserPrefs; @@ -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. -@@ -2115,9 +2121,6 @@ class TabImpl implements Tab { +@@ -2119,9 +2125,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; -@@ -2501,6 +2504,11 @@ class TabImpl implements Tab { +@@ -2512,6 +2515,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); -@@ -2546,7 +2554,7 @@ class TabImpl implements Tab { +@@ -2557,7 +2565,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. */ -@@ -2629,6 +2637,54 @@ class TabImpl implements Tab { +@@ -2654,6 +2662,54 @@ class TabImpl implements Tab { mCurrentTabSupplier = null; } @@ -671,13 +671,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.java -@@ -125,11 +125,8 @@ public class TabUtils { +@@ -128,11 +128,8 @@ public class TabUtils { * @param switchToDesktop Whether switching the user agent to desktop. * @param caller The caller of this method. */ - public static void switchUserAgent(Tab tab, boolean switchToDesktop, int caller) { - final boolean reloadOnChange = !tab.isNativePage(); -- tab.getWebContents() +- assumeNonNull(tab.getWebContents()) - .getNavigationController() - .setUseDesktopUserAgent(switchToDesktop, reloadOnChange, caller); + public static void switchUserAgent(Tab tab, boolean switchToDesktop, boolean forcedByUser, int caller) { @@ -968,7 +968,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 -@@ -1121,8 +1121,6 @@ public final class ChromePreferenceKeys { +@@ -1128,8 +1128,6 @@ public final class ChromePreferenceKeys { SIGNIN_PROMO_NTP_LAST_SHOWN_TIME, SYNC_PROMO_TOTAL_SHOW_COUNT, SEARCH_RESUMPTION_MODULE_COLLAPSE_ON_NTP, @@ -1005,7 +1005,7 @@ diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.jav + void SetOverrideUserAgent(boolean usingDesktopUserAgent, boolean forcedByUser); + /** - * @return true if the {@link Tab} is a custom tab. + * @return true if the {@link Tab} is a custom tab, including CCTs, TWAs and WebAPKs. */ diff --git a/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java b/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java --- a/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java @@ -1022,7 +1022,7 @@ diff --git a/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/brows diff --git a/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManagerImpl.java b/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManagerImpl.java --- a/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManagerImpl.java +++ b/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManagerImpl.java -@@ -500,6 +500,24 @@ public class TabWindowManagerImpl implements TabWindowManager { +@@ -503,6 +503,24 @@ public class TabWindowManagerImpl implements TabWindowManager { return null; } @@ -1086,7 +1086,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h --- a/chrome/common/pref_names.h +++ b/chrome/common/pref_names.h -@@ -1915,6 +1915,14 @@ inline constexpr char kNaviOnboardGroup[] = "browser.navi_onboard_group"; +@@ -1908,6 +1908,14 @@ inline constexpr char kNaviOnboardGroup[] = "browser.navi_onboard_group"; inline constexpr char kHadThreeConsecutiveNotificationPermissionDenies[] = "profile.content_settings.had_three_consecutive_denies.notifications"; @@ -1261,7 +1261,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 -@@ -3614,6 +3614,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( +@@ -3630,6 +3630,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( #if BUILDFLAG(IS_CHROMEOS) switches::kSchedulerBoostUrgent, #endif @@ -1280,7 +1280,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" -@@ -2388,8 +2389,6 @@ void WebContentsImpl::SetUserAgentOverride( +@@ -2424,8 +2425,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); @@ -1289,7 +1289,7 @@ diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser if (GetUserAgentOverride() == ua_override) { return; -@@ -3574,6 +3573,9 @@ const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences( +@@ -3704,6 +3703,9 @@ const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences( #else prefs.viewport_meta_enabled = false; #endif @@ -1310,7 +1310,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/frameh params.getInitiatorOrigin(), params.getHasUserGesture(), params.getShouldClearHistoryList(), -@@ -507,7 +508,7 @@ import org.chromium.url.Origin; +@@ -519,7 +520,7 @@ import org.chromium.url.Origin; @Nullable String dataUrlAsString, boolean canLoadLocalResources, boolean isRendererInitiated, @@ -1322,7 +1322,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 -@@ -928,7 +928,6 @@ void RenderThreadImpl::InitializeRenderer( +@@ -925,7 +925,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 cc199677..3069fd01 100644 --- a/build/patches/Viewport-Protection-flag.patch +++ b/build/patches/Viewport-Protection-flag.patch @@ -282,7 +282,7 @@ diff --git a/third_party/blink/public/common/widget/device_emulation_params.h b/ diff --git a/third_party/blink/renderer/core/css/css_properties.json5 b/third_party/blink/renderer/core/css/css_properties.json5 --- a/third_party/blink/renderer/core/css/css_properties.json5 +++ b/third_party/blink/renderer/core/css/css_properties.json5 -@@ -4312,6 +4312,7 @@ +@@ -4329,6 +4329,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, -@@ -4319,7 +4320,6 @@ +@@ -4336,7 +4337,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 -@@ -2307,7 +2307,12 @@ ComputedStyleBuilder StyleResolver::InitialStyleBuilderForElement() const { +@@ -2324,7 +2324,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 -@@ -1083,7 +1083,7 @@ WebPagePopupImpl* WebViewImpl::OpenPagePopup(PagePopupClient* client) { +@@ -1084,7 +1084,7 @@ WebPagePopupImpl* WebViewImpl::OpenPagePopup(PagePopupClient* client) { page_popup_ = WebPagePopupImpl::Create( std::move(popup_widget_host), std::move(widget_host), std::move(widget_receiver), this, agent_group_scheduler, @@ -411,7 +411,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_party/blink/renderer/core/frame/local_dom_window.cc --- a/third_party/blink/renderer/core/frame/local_dom_window.cc +++ b/third_party/blink/renderer/core/frame/local_dom_window.cc -@@ -1558,7 +1558,12 @@ int LocalDOMWindow::outerHeight() const { +@@ -1596,7 +1596,12 @@ int LocalDOMWindow::outerHeight() const { if (frame->IsInFencedFrameTree()) { return innerHeight(); } @@ -425,7 +425,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p Page* page = frame->GetPage(); if (!page) return 0; -@@ -1583,7 +1588,12 @@ int LocalDOMWindow::outerWidth() const { +@@ -1621,7 +1626,12 @@ int LocalDOMWindow::outerWidth() const { if (frame->IsInFencedFrameTree()) { return innerWidth(); } @@ -439,7 +439,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p Page* page = frame->GetPage(); if (!page) return 0; -@@ -1787,7 +1797,8 @@ double LocalDOMWindow::devicePixelRatio() const { +@@ -1825,7 +1835,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 { -@@ -2409,6 +2420,23 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate, +@@ -2447,6 +2458,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 -@@ -2460,6 +2488,15 @@ DOMWindow* LocalDOMWindow::openPictureInPictureWindow( +@@ -2498,6 +2526,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 -@@ -1598,6 +1598,10 @@ void LocalFrame::RestoreScrollOffsets() { +@@ -1572,6 +1572,10 @@ void LocalFrame::RestoreScrollOffsets() { saved_scroll_offsets_ = nullptr; } @@ -503,7 +503,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ void LocalFrame::SetLayoutZoomFactor(float factor) { SetZoomFactors(factor, text_zoom_factor_, css_zoom_factor_); } -@@ -1786,12 +1790,16 @@ mojom::blink::DevicePostureType LocalFrame::GetDevicePosture() { +@@ -1760,12 +1764,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; } -@@ -3342,6 +3350,11 @@ void LocalFrame::SetScaleFactor(float scale_factor) { +@@ -3314,6 +3322,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 -@@ -435,7 +435,8 @@ class CORE_EXPORT LocalFrame final +@@ -440,7 +440,8 @@ class CORE_EXPORT LocalFrame final void SetInViewSourceMode(bool = true); void SetLayoutZoomFactor(float); @@ -547,7 +547,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/b void SetTextZoomFactor(float); float TextZoomFactor() const { return text_zoom_factor_; } void SetCssZoomFactor(float); -@@ -444,7 +445,7 @@ class CORE_EXPORT LocalFrame final +@@ -449,7 +450,7 @@ class CORE_EXPORT LocalFrame final float text_zoom_factor, float css_zoom_factor); @@ -556,7 +556,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/b // Informs the local root's document and its local descendant subtree that a // media query value changed. -@@ -1094,6 +1095,7 @@ class CORE_EXPORT LocalFrame final +@@ -1099,6 +1100,7 @@ class CORE_EXPORT LocalFrame final unsigned did_run_detach_impl_ : 1 = false; float layout_zoom_factor_; @@ -662,7 +662,7 @@ diff --git a/third_party/blink/renderer/core/frame/screen_metrics_emulator.h b/t diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc --- a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc +++ b/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc -@@ -2004,6 +2004,14 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( +@@ -2017,6 +2017,14 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( if (auto* device_emulator = DeviceEmulator()) { device_emulator->UpdateVisualProperties(visual_properties); @@ -747,7 +747,7 @@ diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/re namespace blink { namespace { -@@ -1304,7 +1310,94 @@ void Page::UpdateAcceleratedCompositingSettings() { +@@ -1305,7 +1311,94 @@ void Page::UpdateAcceleratedCompositingSettings() { } } @@ -845,7 +845,7 @@ diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/re diff --git a/third_party/blink/renderer/core/page/page.h b/third_party/blink/renderer/core/page/page.h --- a/third_party/blink/renderer/core/page/page.h +++ b/third_party/blink/renderer/core/page/page.h -@@ -559,6 +559,10 @@ class CORE_EXPORT Page final : public GarbageCollected, +@@ -554,6 +554,10 @@ class CORE_EXPORT Page final : public GarbageCollected, const PartitionedPopinOpenerProperties& GetPartitionedPopinOpenerProperties() const; @@ -856,7 +856,7 @@ diff --git a/third_party/blink/renderer/core/page/page.h b/third_party/blink/ren private: friend class ScopedPagePauser; class CloseTaskHandler; -@@ -735,6 +739,11 @@ class CORE_EXPORT Page final : public GarbageCollected, +@@ -726,6 +730,11 @@ class CORE_EXPORT Page final : public GarbageCollected, // browser side FrameTree has the FrameTree::Type of kFencedFrame. bool is_fenced_frame_tree_ = false; @@ -871,7 +871,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 -@@ -1929,6 +1929,12 @@ class ComputedStyle final : public ComputedStyleBase { +@@ -1971,6 +1971,12 @@ class ComputedStyle final : public ComputedStyleBase { IsRunningBackdropFilterAnimationOnCompositor(); } diff --git a/build/patches/WIN-Disable-updater.patch b/build/patches/WIN-Disable-updater.patch index bc1155a5..74cdce89 100644 --- a/build/patches/WIN-Disable-updater.patch +++ b/build/patches/WIN-Disable-updater.patch @@ -14,7 +14,7 @@ diff --git a/chrome/browser/active_use_util.h b/chrome/browser/active_use_util.h @@ -9,6 +9,6 @@ #include "chrome/install_static/buildflags.h" - constexpr bool kShouldRecordActiveUse = + inline constexpr bool kShouldRecordActiveUse = - !BUILDFLAG(IS_WIN) || BUILDFLAG(USE_GOOGLE_UPDATE_INTEGRATION); + false; diff --git a/build/patches/WIN-Fix-log-to-file.patch b/build/patches/WIN-Fix-log-to-file.patch index 8c345988..21c4baf3 100644 --- a/build/patches/WIN-Fix-log-to-file.patch +++ b/build/patches/WIN-Fix-log-to-file.patch @@ -90,7 +90,7 @@ diff --git a/chrome/common/logging_chrome.h b/chrome/common/logging_chrome.h diff --git a/content/app/content_main.cc b/content/app/content_main.cc --- a/content/app/content_main.cc +++ b/content/app/content_main.cc -@@ -337,9 +337,12 @@ NO_STACK_PROTECTOR int RunContentProcess( +@@ -352,9 +352,12 @@ NO_STACK_PROTECTOR int RunContentProcess( } else if (command_line->HasSwitch(switches::kEnableLogging)) { // Route stdio to parent console (if any) or create one, do not create a // console in children if handles are being passed. diff --git a/build/patches/WIN-enable-pdf-plugin.patch b/build/patches/WIN-enable-pdf-plugin.patch index 7a581bb6..a6bec6d5 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 -@@ -2309,7 +2309,9 @@ const mojom::RendererContentSettingsPtr& LocalFrame::GetContentSettings() +@@ -2277,7 +2277,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 4c15df8c..3ba4c2df 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 -@@ -432,6 +432,7 @@ if (is_win) { +@@ -429,6 +429,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", -@@ -1652,6 +1653,8 @@ if (is_android) { +@@ -1670,6 +1671,8 @@ if (is_android) { "//chrome/common/profiler", "//chrome/gpu", "//chrome/renderer", @@ -81,7 +81,7 @@ diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegat #if BUILDFLAG(IS_WIN) #include -@@ -1108,6 +1111,12 @@ std::optional ChromeMainDelegate::BasicStartupComplete() { +@@ -1107,6 +1110,12 @@ std::optional ChromeMainDelegate::BasicStartupComplete() { } #endif @@ -97,7 +97,7 @@ diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegat diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd -@@ -7271,6 +7271,10 @@ Keep your key file in a safe place. You will need it to create new versions of y +@@ -7277,6 +7277,10 @@ Keep your key file in a safe place. You will need it to create new versions of y You are using an unsupported feature flag: $1SignedHTTPExchange. Stability and security will suffer. @@ -130,7 +130,7 @@ diff --git a/chrome/browser/ui/startup/bad_flags_prompt.cc b/chrome/browser/ui/s diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc -@@ -3619,6 +3619,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( +@@ -3635,6 +3635,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( switches::kSchedulerBoostUrgent, #endif switches::kDesktopModeViewportMetaEnabled, diff --git a/build/patches/Welcome-screen.patch b/build/patches/Welcome-screen.patch index 3785a688..73bb1b68 100644 --- a/build/patches/Welcome-screen.patch +++ b/build/patches/Welcome-screen.patch @@ -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 -@@ -517,6 +517,7 @@ chrome_java_resources = [ +@@ -515,6 +515,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", @@ -273,8 +273,8 @@ diff --git a/chrome/android/java/res/values/styles.xml b/chrome/android/java/res diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/DefaultSearchEngineFirstRunFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/DefaultSearchEngineFirstRunFragment.java --- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/DefaultSearchEngineFirstRunFragment.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/DefaultSearchEngineFirstRunFragment.java -@@ -54,15 +54,12 @@ public class DefaultSearchEngineFirstRunFragment extends Fragment implements Fir - Profile profile = getPageDelegate().getProfileProviderSupplier().get().getOriginalProfile(); +@@ -58,15 +58,12 @@ public class DefaultSearchEngineFirstRunFragment extends Fragment implements Fir + Profile profile = delegate.getProfileProviderSupplier().get().getOriginalProfile(); assert TemplateUrlServiceFactory.getForProfile(profile).isLoaded(); - mSearchEnginePromoDialogType = LocaleManager.getInstance().getSearchEnginePromoShowType(); @@ -282,8 +282,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/Defaul new DefaultSearchEngineDialogHelper( mSearchEnginePromoDialogType, LocaleManager.getInstance(), - mEngineLayout, - mButton, + engineLayout, + button, getPageDelegate()::advanceToNextPage); - } @@ -338,7 +338,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR if (mPagerAdapter != null) { mPagerAdapter.notifyDataSetChanged(); } -@@ -707,11 +693,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa +@@ -702,11 +688,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa public void acceptTermsOfService(boolean allowMetricsAndCrashUploading) { assert mNativeInitializationPromise.isFulfilled(); @@ -401,17 +401,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR } } -@@ -137,18 +115,6 @@ public abstract class FirstRunFlowSequencer { +@@ -136,18 +114,6 @@ public abstract class FirstRunFlowSequencer { * method. */ void start() { - AccountManagerFacadeProvider.getInstance() -- .getCoreAccountInfos() +- .getAccounts() - .then( -- coreAccountInfos -> { +- accounts -> { - RecordHistogram.recordCount1MHistogram( - "Signin.AndroidDeviceAccountsNumberWhenEnteringFRE", -- Math.min(coreAccountInfos.size(), 2)); +- Math.min(accounts.size(), 2)); - - assert !mAccountsAvailable; - mAccountsAvailable = true; @@ -420,7 +420,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR } @VisibleForTesting -@@ -167,9 +133,6 @@ public abstract class FirstRunFlowSequencer { +@@ -166,9 +132,6 @@ public abstract class FirstRunFlowSequencer { } private void maybeProcessFreEnvironmentPreNative() { @@ -430,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 +144,8 @@ public abstract class FirstRunFlowSequencer { +@@ -180,8 +143,8 @@ public abstract class FirstRunFlowSequencer { * @param freProperties Resulting FRE properties bundle. */ public void updateFirstRunProperties(Bundle freProperties) { @@ -441,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 +164,6 @@ public abstract class FirstRunFlowSequencer { +@@ -200,8 +163,6 @@ public abstract class FirstRunFlowSequencer { // Mark the FRE flow as complete. FirstRunStatus.setFirstRunFlowComplete(true); @@ -450,7 +450,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR } /** -@@ -301,9 +262,6 @@ public abstract class FirstRunFlowSequencer { +@@ -300,9 +261,6 @@ public abstract class FirstRunFlowSequencer { Log.d(TAG, "Redirecting user through FRE."); CrashKeys.getInstance().set(CrashKeyIndex.FIRST_RUN, "yes"); @@ -460,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 +287,17 @@ public abstract class FirstRunFlowSequencer { +@@ -328,13 +286,17 @@ public abstract class FirstRunFlowSequencer { if (!(caller instanceof Activity)) { freIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); } @@ -483,14 +483,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunUtils.java --- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunUtils.java -@@ -63,6 +63,7 @@ public class FirstRunUtils { - * collect stats. +@@ -41,6 +41,7 @@ public class FirstRunUtils { + * collect stats. */ static void acceptTermsOfService(boolean allowMetricsAndCrashUploading) { + allowMetricsAndCrashUploading = false; UmaSessionStats.changeMetricsReportingConsent( allowMetricsAndCrashUploading, ChangeMetricsReportingStateCalledFrom.UI_FIRST_RUN); - ChromeSharedPreferences.getInstance() + setEulaAccepted(); diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java new file mode 100644 --- /dev/null diff --git a/build/patches/add-browser-policy.patch b/build/patches/add-browser-policy.patch index 87f36f83..f1520116 100644 --- a/build/patches/add-browser-policy.patch +++ b/build/patches/add-browser-policy.patch @@ -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 -@@ -55,6 +55,7 @@ BASE_FEATURE(kPreconnectFromKeyedService, +@@ -54,6 +54,7 @@ BASE_FEATURE(kPreconnectFromKeyedService, BASE_FEATURE(kPreconnectToSearch, "PreconnectToSearch", base::FEATURE_ENABLED_BY_DEFAULT); @@ -226,7 +226,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 -@@ -2450,9 +2450,9 @@ bool AreFuturePoliciesEnabledByDefault() { +@@ -2438,9 +2438,9 @@ bool AreFuturePoliciesEnabledByDefault() { if (base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kTestType)) { return true; } @@ -242,7 +242,7 @@ diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc diff --git a/chrome/browser/signin/account_consistency_mode_manager.cc b/chrome/browser/signin/account_consistency_mode_manager.cc --- a/chrome/browser/signin/account_consistency_mode_manager.cc +++ b/chrome/browser/signin/account_consistency_mode_manager.cc -@@ -161,7 +161,7 @@ void AccountConsistencyModeManager::SetIgnoreMissingOAuthClientForTesting() { +@@ -169,7 +169,7 @@ void AccountConsistencyModeManager::SetIgnoreMissingOAuthClientForTesting() { // static bool AccountConsistencyModeManager::ShouldBuildServiceForProfile( Profile* profile) { @@ -251,7 +251,7 @@ diff --git a/chrome/browser/signin/account_consistency_mode_manager.cc b/chrome/ } AccountConsistencyMethod -@@ -192,7 +192,8 @@ AccountConsistencyModeManager::ComputeAccountConsistencyMethod( +@@ -200,7 +200,8 @@ AccountConsistencyModeManager::ComputeAccountConsistencyMethod( #endif #if BUILDFLAG(ENABLE_MIRROR) @@ -261,7 +261,7 @@ diff --git a/chrome/browser/signin/account_consistency_mode_manager.cc b/chrome/ #elif BUILDFLAG(ENABLE_DICE_SUPPORT) if (!profile->GetPrefs()->GetBoolean(prefs::kSigninAllowed)) { VLOG(1) << "Desktop Identity Consistency disabled as sign-in to Chrome " -@@ -200,7 +201,7 @@ AccountConsistencyModeManager::ComputeAccountConsistencyMethod( +@@ -208,7 +209,7 @@ AccountConsistencyModeManager::ComputeAccountConsistencyMethod( return AccountConsistencyMethod::kDisabled; } @@ -324,7 +324,7 @@ diff --git a/chrome/browser/signin/bound_session_credentials/throttled_gaia_auth diff --git a/chrome/browser/signin/chrome_signin_client.cc b/chrome/browser/signin/chrome_signin_client.cc --- a/chrome/browser/signin/chrome_signin_client.cc +++ b/chrome/browser/signin/chrome_signin_client.cc -@@ -224,7 +224,9 @@ void ChromeSigninClient::DoFinalInit() { +@@ -310,7 +310,9 @@ void ChromeSigninClient::DoFinalInit() { bool ChromeSigninClient::ProfileAllowsSigninCookies(Profile* profile) { scoped_refptr cookie_settings = CookieSettingsFactory::GetForProfile(profile); @@ -335,7 +335,7 @@ diff --git a/chrome/browser/signin/chrome_signin_client.cc b/chrome/browser/sign } PrefService* ChromeSigninClient::GetPrefs() { -@@ -347,6 +349,9 @@ bool ChromeSigninClient::AreNetworkCallsDelayed() { +@@ -433,6 +435,9 @@ bool ChromeSigninClient::AreNetworkCallsDelayed() { } void ChromeSigninClient::DelayNetworkCall(base::OnceClosure callback) { @@ -518,7 +518,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 -@@ -383,7 +383,7 @@ +@@ -380,7 +380,7 @@ @@ -530,7 +530,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 -@@ -61,56 +61,6 @@ const CountryLocaleMap& GetAllowedCountryToLocaleMap() { +@@ -62,56 +62,6 @@ const CountryLocaleMap& GetAllowedCountryToLocaleMap() { return *allowed_map; } @@ -587,7 +587,7 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm } // namespace BASE_FEATURE(kCommerceAllowLocalImages, -@@ -400,16 +350,15 @@ const base::FeatureParam kRevertIconOnFailure{ +@@ -403,16 +353,15 @@ const base::FeatureParam kRevertIconOnFailure{ &kShoppingList, kRevertIconOnFailureParam, false}; bool IsPartnerMerchant(const GURL& url) { @@ -607,7 +607,7 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm } bool IsCartDiscountFeatureEnabled() { -@@ -462,6 +411,7 @@ bool IsRegionLockedFeatureEnabled(const base::Feature& feature, +@@ -465,6 +414,7 @@ bool IsRegionLockedFeatureEnabled(const base::Feature& feature, const base::Feature& feature_region_launched, const std::string& country_code, const std::string& locale) { @@ -615,7 +615,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) && -@@ -484,6 +434,7 @@ base::TimeDelta GetDiscountFetchDelay() { +@@ -487,6 +437,7 @@ base::TimeDelta GetDiscountFetchDelay() { } bool IsNoDiscountMerchant(const GURL& url) { @@ -623,7 +623,7 @@ 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,9 @@ bool IsNoDiscountMerchant(const GURL& url) { +@@ -498,4 +449,9 @@ bool IsNoDiscountMerchant(const GURL& url) { return RE2::PartialMatch(url.host_piece(), *pattern_from_component); } #endif @@ -843,7 +843,7 @@ diff --git a/components/policy/core/common/policy_pref_names.h b/components/poli diff --git a/components/policy/core/common/policy_service_impl.cc b/components/policy/core/common/policy_service_impl.cc --- a/components/policy/core/common/policy_service_impl.cc +++ b/components/policy/core/common/policy_service_impl.cc -@@ -56,6 +56,9 @@ namespace { +@@ -52,6 +52,9 @@ namespace { // Metrics should not be enforced so if this policy is set as mandatory // downgrade it to a recommended level policy. void DowngradeMetricsReportingToRecommendedPolicy(PolicyMap* policies) { @@ -1021,7 +1021,7 @@ diff --git a/google_apis/gaia/gaia_auth_fetcher.cc b/google_apis/gaia/gaia_auth_ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket_impl.cc --- a/net/socket/ssl_client_socket_impl.cc +++ b/net/socket/ssl_client_socket_impl.cc -@@ -772,6 +772,7 @@ int SSLClientSocketImpl::Init() { +@@ -781,6 +781,7 @@ int SSLClientSocketImpl::Init() { return ERR_UNEXPECTED; } @@ -1029,7 +1029,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket // Disable SHA-1 server signatures. // TODO(crbug.com/boringssl/699): Once the default is flipped in BoringSSL, we // no longer need to override it. -@@ -1178,6 +1179,8 @@ ssl_verify_result_t SSLClientSocketImpl::HandleVerifyResult() { +@@ -1196,6 +1197,8 @@ ssl_verify_result_t SSLClientSocketImpl::HandleVerifyResult() { cert_verifier_request_.reset(); diff --git a/build/patches/autofill-miscellaneous.patch b/build/patches/autofill-miscellaneous.patch index af4bf8b8..76c7aa82 100644 --- a/build/patches/autofill-miscellaneous.patch +++ b/build/patches/autofill-miscellaneous.patch @@ -28,7 +28,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html 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 -@@ -1080,10 +1080,6 @@ ChromePasswordManagerClient::GetHttpAuthManager() { +@@ -1074,10 +1074,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 -@@ -391,15 +391,6 @@ ChromeAutofillClient::GetURLLoaderFactory() { +@@ -393,15 +393,6 @@ ChromeAutofillClient::GetURLLoaderFactory() { ->GetURLLoaderFactoryForBrowserProcess(); } @@ -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 -@@ -493,33 +493,6 @@ std::optional GetUploadPayloadForApi( +@@ -513,33 +513,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) { -@@ -551,15 +524,7 @@ std::optional GetAPIQueryPayload( +@@ -571,15 +544,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() { -@@ -866,31 +831,13 @@ size_t AutofillCrowdsourcingManager::GetPayloadLength( +@@ -899,31 +864,13 @@ size_t AutofillCrowdsourcingManager::GetPayloadLength( std::tuple AutofillCrowdsourcingManager::GetRequestURLAndMethod( const FormRequestData& request_data) const { @@ -206,7 +206,7 @@ diff --git a/components/autofill/core/browser/crowdsourcing/autofill_crowdsourci diff --git a/components/autofill/core/browser/crowdsourcing/votes_uploader.cc b/components/autofill/core/browser/crowdsourcing/votes_uploader.cc --- a/components/autofill/core/browser/crowdsourcing/votes_uploader.cc +++ b/components/autofill/core/browser/crowdsourcing/votes_uploader.cc -@@ -419,9 +419,6 @@ void VotesUploader::UploadVote( +@@ -409,9 +409,6 @@ void VotesUploader::UploadVote( client_->GetUkmRecorder(), ukm_source_id, *submitted_form, submission_timestamp); } @@ -219,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 -@@ -248,10 +248,6 @@ class AutofillClient { +@@ -249,10 +249,6 @@ class AutofillClient { // Returns the VotesUploader. virtual VotesUploader& GetVotesUploader() = 0; @@ -254,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 -@@ -981,6 +981,8 @@ BASE_FEATURE(kAutofillUploadThrottling, +@@ -942,6 +942,8 @@ BASE_FEATURE(kAutofillUploadThrottling, "AutofillUploadThrottling", base::FEATURE_ENABLED_BY_DEFAULT); @@ -288,7 +288,7 @@ diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/auto user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); registry->RegisterBooleanPref( kAutofillPaymentCardBenefits, true, -@@ -81,7 +81,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -83,7 +83,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { #endif // Deprecated prefs registered for migration. diff --git a/build/patches/bromite-build-utils.patch b/build/patches/bromite-build-utils.patch index 5e99fbc0..f0f95949 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 -@@ -796,3 +796,5 @@ if (is_component_build) { +@@ -844,3 +844,5 @@ if (is_component_build) { set_defaults("component") { configs = default_component_configs } @@ -458,7 +458,7 @@ diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java -@@ -13,6 +13,11 @@ import org.chromium.components.browser_ui.settings.SettingsNavigation; +@@ -15,6 +15,11 @@ import org.chromium.components.browser_ui.settings.SettingsNavigation; import org.chromium.components.user_prefs.UserPrefs; import org.chromium.content_public.browser.BrowserContextHandle; @@ -468,8 +468,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s +import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; + /** The Chrome implementation of AccessibilitySettingsDelegate. */ + @NullMarked public class ChromeAccessibilitySettingsDelegate implements AccessibilitySettingsDelegate { - private static class TextSizeContrastAccessibilityDelegate diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn --- a/chrome/browser/flags/BUILD.gn +++ b/chrome/browser/flags/BUILD.gn diff --git a/build/patches/disable-AdsBlockedInfoBar.patch b/build/patches/disable-AdsBlockedInfoBar.patch index 5e293ec8..bedbd15f 100644 --- a/build/patches/disable-AdsBlockedInfoBar.patch +++ b/build/patches/disable-AdsBlockedInfoBar.patch @@ -10,12 +10,12 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/components/subresource_filter/content/browser/profile_interaction_manager.cc b/components/subresource_filter/content/browser/profile_interaction_manager.cc --- a/components/subresource_filter/content/browser/profile_interaction_manager.cc +++ b/components/subresource_filter/content/browser/profile_interaction_manager.cc -@@ -130,6 +130,7 @@ mojom::ActivationLevel ProfileInteractionManager::OnPageActivationComputed( +@@ -128,6 +128,7 @@ mojom::ActivationLevel ProfileInteractionManager::OnPageActivationComputed( } void ProfileInteractionManager::MaybeShowNotification() { + if ((true)) return; // The caller should make sure this is only called from pages that are // currently primary. - CHECK(page_, base::NotFatalUntil::M129); + CHECK(page_); -- diff --git a/build/patches/disable-WebView-variations-support.patch b/build/patches/disable-WebView-variations-support.patch index 48ecf3ad..48c99398 100644 --- a/build/patches/disable-WebView-variations-support.patch +++ b/build/patches/disable-WebView-variations-support.patch @@ -12,7 +12,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumAwInit.java b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumAwInit.java --- a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumAwInit.java +++ b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumAwInit.java -@@ -407,13 +407,6 @@ public class WebViewChromiumAwInit { +@@ -409,13 +409,6 @@ public class WebViewChromiumAwInit { } AwBrowserProcess.configureChildProcessLauncher(); @@ -29,7 +29,7 @@ diff --git a/android_webview/glue/java/src/com/android/webview/chromium/WebViewC diff --git a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java --- a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java +++ b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java -@@ -627,10 +627,6 @@ public class WebViewChromiumFactoryProvider implements WebViewFactoryProvider { +@@ -577,10 +577,6 @@ public class WebViewChromiumFactoryProvider implements WebViewFactoryProvider { mAwInit.setStartupTaskExperimentEnabled(enableStartupTasksExperiment); AwBrowserMainParts.setWebViewStartupTasksLogicIsEnabled(enableStartupTasksExperiment); diff --git a/build/patches/dns-send-IPv6-connectivity-probes-to-RIPE-DNS.patch b/build/patches/dns-send-IPv6-connectivity-probes-to-RIPE-DNS.patch index 5295749f..94651c5b 100644 --- a/build/patches/dns-send-IPv6-connectivity-probes-to-RIPE-DNS.patch +++ b/build/patches/dns-send-IPv6-connectivity-probes-to-RIPE-DNS.patch @@ -16,7 +16,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc --- a/net/dns/host_resolver_manager.cc +++ b/net/dns/host_resolver_manager.cc -@@ -151,12 +151,12 @@ const size_t kMaxHostLength = 4096; +@@ -150,12 +150,12 @@ const size_t kMaxHostLength = 4096; // Time between IPv6 probes, i.e. for how long results of each IPv6 probe are // cached. diff --git a/build/patches/do-not-block-build-incompatible-profiles.patch b/build/patches/do-not-block-build-incompatible-profiles.patch index 77fa2165..763bc6f9 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 -@@ -2539,7 +2539,7 @@ template("run_mksnapshot") { +@@ -2592,7 +2592,7 @@ template("run_mksnapshot") { # Replace this with --warn-about-builtin-profile-data to see the full # list of builtins with incompatible profiles. diff --git a/build/patches/enable-ftrivial-auto-var-init-zero.patch b/build/patches/enable-ftrivial-auto-var-init-zero.patch index 1ab1191e..2f97b2b0 100644 --- a/build/patches/enable-ftrivial-auto-var-init-zero.patch +++ b/build/patches/enable-ftrivial-auto-var-init-zero.patch @@ -11,7 +11,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn -@@ -399,6 +399,10 @@ config("compiler") { +@@ -411,6 +411,10 @@ config("compiler") { cflags += [ "-fwrapv" ] } diff --git a/build/patches/eyeo-133.0.6943.49-android_api.patch b/build/patches/eyeo-133.0.6943.49-android_api.patch index 1f150346..f228f4d2 100644 --- a/build/patches/eyeo-133.0.6943.49-android_api.patch +++ b/build/patches/eyeo-133.0.6943.49-android_api.patch @@ -97,7 +97,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn import("//build/config/android/config.gni") import("//build/config/cronet/config.gni") -@@ -546,6 +549,7 @@ if (_is_default_toolchain) { +@@ -548,6 +551,7 @@ if (_is_default_toolchain) { "//chrome/browser/xsurface:java", "//chrome/browser/xsurface_provider:dependency_provider_impl_java", "//chrome/browser/xsurface_provider:java", @@ -105,7 +105,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//components/android_autofill/browser:java", "//components/autofill/android:autofill_features_java", "//components/autofill/android:autofill_java", -@@ -1355,6 +1359,7 @@ if (_is_default_toolchain) { +@@ -1357,6 +1361,7 @@ if (_is_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", @@ -113,7 +113,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", -@@ -1424,6 +1429,7 @@ if (_is_default_toolchain) { +@@ -1426,6 +1431,7 @@ if (_is_default_toolchain) { "//chrome/test/data/translate/", "//chrome/test/data/webauthn/", "//chrome/test/media_router/resources/", @@ -121,7 +121,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/", -@@ -3222,6 +3228,12 @@ if (_is_default_toolchain) { +@@ -3226,6 +3232,12 @@ if (_is_default_toolchain) { sources += [ "java/src/org/chromium/chrome/browser/media/MediaCapturePickerDialogBridge.java" ] } @@ -134,8 +134,8 @@ 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" ] -@@ -3313,6 +3325,7 @@ if (_is_default_toolchain) { - "//chrome/browser/ui/messages/android:jni_headers", +@@ -3321,6 +3333,7 @@ if (_is_default_toolchain) { + "//chrome/browser/ui/plus_addresses/android:jni_headers", "//chrome/browser/util:jni_headers", "//chrome/browser/webauthn/android:jni_headers", + "//components/adblock/android:jni_headers", @@ -207,7 +207,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 -@@ -3294,6 +3294,10 @@ static_library("browser") { +@@ -3336,6 +3336,10 @@ static_library("browser") { "touch_to_fill/password_manager/touch_to_fill_controller_webauthn_delegate.h", ] @@ -267,7 +267,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 -@@ -1030,6 +1030,12 @@ static_library("ui") { +@@ -988,6 +988,12 @@ static_library("ui") { deps += [ "//components/themes:ntp_background_proto", ] diff --git a/build/patches/eyeo-133.0.6943.49-android_settings.patch b/build/patches/eyeo-133.0.6943.49-android_settings.patch index c5558953..fe092f88 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") { -@@ -792,6 +796,10 @@ if (_is_default_toolchain) { +@@ -794,6 +798,10 @@ if (_is_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 7e5d21ce..defcf080 100644 --- a/build/patches/eyeo-133.0.6943.49-base.patch +++ b/build/patches/eyeo-133.0.6943.49-base.patch @@ -700,7 +700,7 @@ Based on Chromium 133.0.6943.49 diff --git a/DEPS b/DEPS --- a/DEPS +++ b/DEPS -@@ -286,6 +286,7 @@ vars = { +@@ -282,6 +282,7 @@ vars = { 'download_libvpx_testdata': False, 'android_git': 'https://android.googlesource.com', @@ -708,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', -@@ -533,6 +534,11 @@ vars = { +@@ -529,6 +530,11 @@ vars = { # and whatever else without interference from each other. - 'compiler_rt_revision': 'd0e4db9fcea15a392aaada986cbe33658afc0454', + 'compiler_rt_revision': '57196dd146582915c955f6d388e31aea93220c51', + # Three lines of non-changing comments so that + # the commit queue can handle CLs rolling feed @@ -719,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': '9d0cba76be7399399d3a499ff3a52c264db3b104', -@@ -1503,6 +1509,10 @@ deps = { + 'libcxx_revision': 'a01c02c9d4acbdae3b7e8a2f3ee58579a9c29f96', +@@ -1516,6 +1522,10 @@ deps = { 'condition': 'checkout_android and checkout_src_internal', }, @@ -729,7 +729,7 @@ diff --git a/DEPS b/DEPS + }, + 'src/docs/website': { - 'url': Var('chromium_git') + '/website.git' + '@' + 'e157e12d99cfc729a970b474344673c44e2d2c9c', + 'url': Var('chromium_git') + '/website.git' + '@' + 'd21d90790d8ea421b317c4cb52a0d94133422796', }, diff --git a/LICENSE b/LICENSE --- a/LICENSE @@ -796,7 +796,7 @@ diff --git a/base/threading/thread_restrictions.h b/base/threading/thread_restri namespace ash { class LoginEventRecorder; class StartupCustomizationDocument; -@@ -655,6 +662,8 @@ class BASE_EXPORT ScopedAllowBlocking { +@@ -661,6 +668,8 @@ class BASE_EXPORT ScopedAllowBlocking { friend class ::BrowserStateDirectoryBuilder; #endif @@ -808,7 +808,7 @@ diff --git a/base/threading/thread_restrictions.h b/base/threading/thread_restri diff --git a/base/trace_event/builtin_categories.h b/base/trace_event/builtin_categories.h --- a/base/trace_event/builtin_categories.h +++ b/base/trace_event/builtin_categories.h -@@ -96,6 +96,7 @@ PERFETTO_DEFINE_CATEGORIES_IN_NAMESPACE_WITH_ATTRS( +@@ -123,6 +123,7 @@ PERFETTO_DEFINE_CATEGORIES_IN_NAMESPACE_WITH_ATTRS( perfetto::Category("exo"), perfetto::Category("extensions"), perfetto::Category("explore_sites"), @@ -829,7 +829,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn import("//base/debug/debug.gni") import("//build/config/chrome_build.gni") -@@ -178,6 +181,7 @@ test("components_unittests") { +@@ -179,6 +182,7 @@ test("components_unittests") { deps = [ "//base", @@ -837,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", -@@ -910,6 +914,7 @@ test("components_unittests") { +@@ -918,6 +922,7 @@ test("components_unittests") { repack("components_tests_pak") { sources = [ @@ -845,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", -@@ -926,6 +931,7 @@ repack("components_tests_pak") { +@@ -934,6 +939,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", @@ -853,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", -@@ -1027,6 +1033,7 @@ if (use_blink) { +@@ -1035,6 +1041,7 @@ if (use_blink) { deps = [ "//base", "//base/test:test_support", @@ -50254,7 +50254,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 -@@ -1250,7 +1254,7 @@ void NavigationURLLoaderImpl::OnReceiveRedirect( +@@ -1254,7 +1258,7 @@ void NavigationURLLoaderImpl::OnReceiveRedirect( LogQueueTimeHistogram("Navigation.QueueTime.OnReceiveRedirect", resource_request_->is_outermost_main_frame); net::Error error = net::OK; @@ -50277,7 +50277,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" -@@ -3598,6 +3602,12 @@ void RenderFrameHostImpl::ExecuteJavaScriptMethod( +@@ -3513,6 +3517,12 @@ void RenderFrameHostImpl::ExecuteJavaScriptMethod( std::move(callback)); } @@ -50329,7 +50329,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_ -@@ -550,6 +554,9 @@ class CONTENT_EXPORT RenderFrameHost : public IPC::Listener, +@@ -551,6 +555,9 @@ class CONTENT_EXPORT RenderFrameHost : public IPC::Listener, virtual void AddMessageToConsole(blink::mojom::ConsoleMessageLevel level, const std::string& message) = 0; @@ -50378,7 +50378,7 @@ diff --git a/content/public/test/fake_local_frame.cc b/content/public/test/fake_ #include "content/public/test/fake_local_frame.h" -@@ -97,6 +101,9 @@ void FakeLocalFrame::RequestVideoFrameAtWithBoundsHint( +@@ -99,6 +103,9 @@ void FakeLocalFrame::RequestVideoFrameAtWithBoundsHint( void FakeLocalFrame::PluginActionAt(const gfx::Point& location, blink::mojom::PluginActionType action) {} @@ -50402,7 +50402,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_ -@@ -79,6 +83,7 @@ class FakeLocalFrame : public blink::mojom::LocalFrame { +@@ -80,6 +84,7 @@ class FakeLocalFrame : public blink::mojom::LocalFrame { RequestVideoFrameAtWithBoundsHintCallback callback) override; void PluginActionAt(const gfx::Point& location, blink::mojom::PluginActionType action) override; @@ -50442,7 +50442,7 @@ diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn } if (is_mac) { -@@ -317,6 +325,8 @@ static_library("content_shell_lib") { +@@ -312,6 +320,8 @@ static_library("content_shell_lib") { "//base", "//base:base_static", "//cc/base", @@ -50451,7 +50451,7 @@ diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn "//components/cdm/renderer", "//components/custom_handlers", "//components/custom_handlers:test_support", -@@ -337,6 +347,7 @@ static_library("content_shell_lib") { +@@ -332,6 +342,7 @@ static_library("content_shell_lib") { "//components/prefs", "//components/services/storage/test_api", "//components/url_formatter", @@ -50459,7 +50459,7 @@ diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn "//components/variations", "//components/variations/service", "//components/web_cache/renderer", -@@ -429,6 +440,7 @@ static_library("content_shell_lib") { +@@ -424,6 +435,7 @@ static_library("content_shell_lib") { "//mojo/public/java/system:test_support", "//ui/android", ] @@ -50467,7 +50467,7 @@ diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn } if (shell_use_toolkit_views) { -@@ -520,6 +532,8 @@ repack("pak") { +@@ -515,6 +527,8 @@ repack("pak") { sources = [ "$root_gen_dir/base/tracing/protos/tracing_proto_resources.pak", @@ -50476,7 +50476,7 @@ diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn "$root_gen_dir/components/ukm_resources.pak", "$root_gen_dir/content/attribution_internals_resources.pak", "$root_gen_dir/content/browser/resources/media/media_internals_resources.pak", -@@ -552,6 +566,8 @@ repack("pak") { +@@ -547,6 +561,8 @@ repack("pak") { deps = [ ":resources", "//base/tracing/protos:chrome_track_event_resources", @@ -50499,16 +50499,16 @@ diff --git a/content/shell/app/shell_main_delegate.cc b/content/shell/app/shell_ #include "content/shell/app/shell_main_delegate.h" -@@ -31,7 +35,7 @@ +@@ -32,7 +36,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" -#include "content/shell/browser/shell_content_browser_client.h" +#include "content/shell/browser/adblock/adblock_shell_content_browser_client.h" - #include "content/shell/browser/shell_paths.h" #include "content/shell/common/shell_content_client.h" + #include "content/shell/common/shell_paths.h" #include "content/shell/common/shell_switches.h" -@@ -446,7 +450,7 @@ ContentBrowserClient* ShellMainDelegate::CreateContentBrowserClient() { +@@ -447,7 +451,7 @@ ContentBrowserClient* ShellMainDelegate::CreateContentBrowserClient() { return browser_client_.get(); } #endif @@ -50835,7 +50835,7 @@ diff --git a/extensions/browser/api/web_request/web_request_proxying_url_loader_ #include "extensions/browser/api/web_request/web_request_proxying_url_loader_factory.h" #include -@@ -453,6 +457,7 @@ void WebRequestProxyingURLLoaderFactory::InProgressRequest::OnReceiveRedirect( +@@ -452,6 +456,7 @@ void WebRequestProxyingURLLoaderFactory::InProgressRequest::OnReceiveRedirect( TRACE_EVENT_FLAG_FLOW_IN | TRACE_EVENT_FLAG_FLOW_OUT); if (redirect_url_ != redirect_info.new_url && @@ -50904,7 +50904,7 @@ diff --git a/third_party/blink/public/mojom/frame/frame.mojom b/third_party/blin module blink.mojom; -@@ -971,6 +975,10 @@ interface LocalFrame { +@@ -979,6 +983,10 @@ interface LocalFrame { // the given point in the view coordinate space. PluginActionAt(gfx.mojom.Point location, blink.mojom.PluginActionType action); @@ -50929,7 +50929,7 @@ diff --git a/third_party/blink/public/web/web_document.h b/third_party/blink/pub #ifndef THIRD_PARTY_BLINK_PUBLIC_WEB_WEB_DOCUMENT_H_ #define THIRD_PARTY_BLINK_PUBLIC_WEB_WEB_DOCUMENT_H_ -@@ -144,6 +148,14 @@ class BLINK_EXPORT WebDocument : public WebNode { +@@ -151,6 +155,14 @@ class BLINK_EXPORT WebDocument : public WebNode { WebCssOrigin = WebCssOrigin::kAuthor, BackForwardCacheAware = BackForwardCacheAware::kAllow); @@ -50973,7 +50973,7 @@ diff --git a/third_party/blink/renderer/core/dom/events/event_target.cc b/third_ diff --git a/third_party/blink/renderer/core/exported/web_document.cc b/third_party/blink/renderer/core/exported/web_document.cc --- a/third_party/blink/renderer/core/exported/web_document.cc +++ b/third_party/blink/renderer/core/exported/web_document.cc -@@ -270,6 +270,56 @@ WebStyleSheetKey WebDocument::InsertStyleSheet( +@@ -276,6 +276,56 @@ WebStyleSheetKey WebDocument::InsertStyleSheet( return injection_key; } @@ -51073,7 +51073,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_ -@@ -113,6 +117,7 @@ class LocalFrameMojoHandler +@@ -114,6 +118,7 @@ class LocalFrameMojoHandler void AddMessageToConsole(mojom::blink::ConsoleMessageLevel level, const WTF::String& message, bool discard_duplicates) final; @@ -51095,7 +51095,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" -@@ -2432,7 +2436,13 @@ void HTMLElement::setSpellcheck(bool enable) { +@@ -2494,7 +2498,13 @@ void HTMLElement::setSpellcheck(bool enable) { } void HTMLElement::click() { @@ -51774,7 +51774,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 -@@ -1141,6 +1145,14 @@ +@@ -1161,6 +1165,14 @@ "components/user_scripts/browser/resources/browser_resources.grd": { "includes": [7620], }, @@ -51812,7 +51812,7 @@ diff --git a/tools/metrics/histograms/metadata/extensions/enums.xml b/tools/metr -@@ -3206,6 +3210,8 @@ Called by update_extension_permission.py.--> +@@ -3209,6 +3213,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 0520d874..7d5c635d 100644 --- a/build/patches/eyeo-133.0.6943.49-chrome_integration.patch +++ b/build/patches/eyeo-133.0.6943.49-chrome_integration.patch @@ -113,7 +113,7 @@ diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegat #include "chrome/browser/buildflags.h" #include "chrome/browser/chrome_content_browser_client.h" #include "chrome/browser/chrome_resource_bundle_helper.h" -@@ -1630,7 +1635,7 @@ content::ContentClient* ChromeMainDelegate::CreateContentClient() { +@@ -1625,7 +1630,7 @@ content::ContentClient* ChromeMainDelegate::CreateContentClient() { content::ContentBrowserClient* ChromeMainDelegate::CreateContentBrowserClient() { chrome_content_browser_client_ = @@ -135,7 +135,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn import("//base/allocator/allocator.gni") import("//build/buildflag_header.gni") -@@ -171,6 +174,8 @@ static_library("browser") { +@@ -174,6 +177,8 @@ static_library("browser") { "accessibility/page_colors_factory.h", "accessibility/prefers_default_scrollbar_styles_prefs.cc", "accessibility/prefers_default_scrollbar_styles_prefs.h", @@ -144,15 +144,15 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "after_startup_task_utils.cc", "after_startup_task_utils.h", "app_mode/app_mode_utils.cc", -@@ -2052,6 +2057,7 @@ static_library("browser") { +@@ -2083,6 +2088,7 @@ static_library("browser") { "//chrome/common/notifications", "//chrome/installer/util:with_no_strings", "//chrome/services/speech/buildflags", + "//components/adblock/content:browser", "//components/application_locale_storage", "//components/assist_ranker", - "//components/autofill/core/browser", -@@ -3288,6 +3294,7 @@ static_library("browser") { + "//components/autofill/content/browser", +@@ -3330,6 +3336,7 @@ static_library("browser") { "touch_to_fill/password_manager/touch_to_fill_controller_webauthn_delegate.h", ] @@ -160,7 +160,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn deps += [ ":delta_file_proto", ":profile_token", -@@ -8409,6 +8416,7 @@ static_library("browser_public_dependencies") { +@@ -8511,6 +8518,7 @@ static_library("browser_public_dependencies") { "//chrome/services/file_util/public/mojom", "//components/account_id", "//components/autofill/content/browser", @@ -3449,7 +3449,7 @@ diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_brows #include "components/color/color_mixers.h" #include "components/device_event_log/device_event_log.h" #include "components/embedder_support/origin_trials/component_updater_utils.h" -@@ -1550,6 +1555,8 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { +@@ -1535,6 +1540,8 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { // called inside PostProfileInit. content::WebUIControllerFactory::RegisterFactory( ChromeWebUIControllerFactory::GetInstance()); @@ -3472,7 +3472,7 @@ diff --git a/chrome/browser/client_hints/client_hints_browsertest.cc b/chrome/br #include "components/client_hints/common/client_hints.h" -@@ -660,7 +664,12 @@ class ClientHintsBrowserTest : public policy::PolicyTest { +@@ -661,7 +665,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. @@ -3499,7 +3499,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") -@@ -400,6 +403,7 @@ source_set("extensions") { +@@ -424,6 +427,7 @@ source_set("extensions") { "window_controller_list.h", "window_controller_list_observer.h", ] @@ -3507,7 +3507,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", -@@ -759,6 +763,7 @@ source_set("extensions") { +@@ -775,6 +779,7 @@ source_set("extensions") { ] } @@ -3561,15 +3561,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" -@@ -22,6 +26,7 @@ - #include "chrome/browser/ui/views/frame/browser_view.h" +@@ -23,6 +27,7 @@ #include "chrome/test/base/in_process_browser_test.h" + #include "chrome/test/base/interactive_test_utils.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/features.h" -@@ -1510,7 +1515,7 @@ class AdsPageLoadMetricsObserverResourceBrowserTest +@@ -1513,7 +1518,7 @@ class AdsPageLoadMetricsObserverResourceBrowserTest {heavy_ad_intervention::features::kHeavyAdIntervention, {}}, {heavy_ad_intervention::features::kHeavyAdPrivacyMitigations, {{"host-threshold", "3"}}}}, @@ -3648,7 +3648,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" -@@ -239,6 +243,15 @@ +@@ -242,6 +246,15 @@ #include "chrome/browser/webid/federated_identity_permission_context_factory.h" #include "chrome/common/buildflags.h" #include "chrome/common/chrome_features.h" @@ -3664,7 +3664,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" -@@ -903,6 +916,15 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -916,6 +929,15 @@ void ChromeBrowserMainExtraPartsProfiles:: // Makes manual testing possible. FakeSmartCardDeviceServiceFactory::GetInstance(); #endif @@ -3683,7 +3683,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc diff --git a/chrome/browser/profiles/profile_keyed_service_browsertest.cc b/chrome/browser/profiles/profile_keyed_service_browsertest.cc --- a/chrome/browser/profiles/profile_keyed_service_browsertest.cc +++ b/chrome/browser/profiles/profile_keyed_service_browsertest.cc -@@ -279,6 +279,17 @@ IN_PROC_BROWSER_TEST_F(ProfileKeyedServiceBrowserTest, +@@ -277,6 +277,17 @@ IN_PROC_BROWSER_TEST_F(ProfileKeyedServiceBrowserTest, "PermissionsUpdaterShutdownFactory", "PluginInfoHostImpl", "TurnSyncOnHelperShutdownNotifier", @@ -3701,7 +3701,7 @@ diff --git a/chrome/browser/profiles/profile_keyed_service_browsertest.cc b/chro }; // clang-format on -@@ -856,6 +867,13 @@ IN_PROC_BROWSER_TEST_F(ProfileKeyedServiceGuestBrowserTest, +@@ -852,6 +863,13 @@ IN_PROC_BROWSER_TEST_F(ProfileKeyedServiceGuestBrowserTest, "ZeroSuggestCacheServiceFactory", #endif // !BUILDFLAG(IS_CHROMEOS) @@ -3728,7 +3728,7 @@ diff --git a/chrome/browser/resources/BUILD.gn b/chrome/browser/resources/BUILD. import("//chrome/browser/buildflags.gni") import("//chrome/common/features.gni") -@@ -280,6 +283,7 @@ group("dev_ui_resources") { +@@ -291,6 +294,7 @@ group("dev_ui_resources") { "predictors:resources", "privacy_sandbox/internals:resources", "usb_internals:resources", @@ -3736,7 +3736,7 @@ diff --git a/chrome/browser/resources/BUILD.gn b/chrome/browser/resources/BUILD. "//components/commerce/core/internals/resources", "//components/data_sharing/data_sharing_internals/resources", "//components/download/resources/download_internals:resources", -@@ -346,6 +350,7 @@ repack("dev_ui_paks") { +@@ -358,6 +362,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", @@ -3766,7 +3766,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" -@@ -357,7 +362,7 @@ class SafeBrowsingBlockingPageBrowserTest +@@ -358,7 +363,7 @@ class SafeBrowsingBlockingPageBrowserTest scoped_feature_list_.InitWithFeaturesAndParameters( {tag_and_attribute, add_warning_shown_timestamp_csbrrs, create_warning_shown_csbrrs, abusive_notification_revocation}, @@ -3820,7 +3820,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") -@@ -437,6 +440,7 @@ static_library("ui") { +@@ -423,6 +426,7 @@ static_library("ui") { "//chrome/services/media_gallery_util/public/mojom", "//components/access_code_cast/common:metrics", "//components/account_id", @@ -3879,7 +3879,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc #include "chrome/browser/ui/tab_helpers.h" -@@ -105,6 +109,8 @@ +@@ -102,6 +106,8 @@ #include "chrome/common/chrome_features.h" #include "chrome/common/chrome_isolated_world_ids.h" #include "chrome/common/chrome_switches.h" @@ -3888,7 +3888,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" -@@ -341,6 +347,12 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -343,6 +349,12 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { optimization_guide_decider); } } @@ -3901,7 +3901,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); -@@ -378,6 +390,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -380,6 +392,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { ip_protection::IpProtectionStatus::CreateForWebContents(web_contents); } #endif // BUILDFLAG(IS_ANDROID) @@ -3922,7 +3922,7 @@ diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni import("//ash/ambient/resources/resources.gni") import("//build/config/chrome_build.gni") -@@ -114,6 +117,7 @@ template("chrome_extra_paks") { +@@ -124,6 +127,7 @@ template("chrome_extra_paks") { "$root_gen_dir/chrome/common_resources.pak", "$root_gen_dir/chrome/saved_tab_groups_unsupported_resources.pak", "$root_gen_dir/chrome/segmentation_internals_resources.pak", @@ -3930,7 +3930,7 @@ diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni "$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", -@@ -149,6 +153,7 @@ template("chrome_extra_paks") { +@@ -159,6 +163,7 @@ template("chrome_extra_paks") { "//chrome/browser/resources:resources", "//chrome/browser/resources/saved_tab_groups_unsupported:resources", "//chrome/common:resources", @@ -3964,7 +3964,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") -@@ -1739,6 +1742,7 @@ if (is_android) { +@@ -1766,6 +1769,7 @@ if (is_android) { "//chrome/test/data/webui:browser_tests", "//chrome/test/data/webui:interactive_ui_tests", "//chrome/test/data/webui:resources", @@ -3972,7 +3972,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", -@@ -2353,6 +2357,7 @@ if (!is_android) { +@@ -2390,6 +2394,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", @@ -3980,7 +3980,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", -@@ -2854,6 +2859,7 @@ if (!is_android) { +@@ -2893,6 +2898,7 @@ if (!is_android) { "//chrome/renderer/resources/extensions/", "//chrome/test/data/cart/", "//components/test/data/ad_tagging/", @@ -3988,7 +3988,7 @@ 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", -@@ -2942,6 +2948,9 @@ if (!is_android) { +@@ -2982,6 +2988,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", @@ -3996,9 +3996,9 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn + "../browser/adblock/test/adblock_multiple_tabs_browsertest.cc", + "../browser/adblock/test/adblock_popup_browsertest.cc", "../browser/ai/ai_data_keyed_service_browsertest.cc", - "../browser/ai/ai_on_device_browsertest.cc", "../browser/attribution_reporting/chrome_attribution_browsertest.cc", -@@ -4493,6 +4502,7 @@ if (!is_android) { + "../browser/autocomplete/autocomplete_browsertest.cc", +@@ -4533,6 +4542,7 @@ if (!is_android) { ] } @@ -4006,7 +4006,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" ] -@@ -5996,6 +6006,7 @@ test("unit_tests") { +@@ -6051,6 +6061,7 @@ test("unit_tests") { sources = [ # All unittests in browser, common, renderer and service. "../browser/about_flags_unittest.cc", @@ -4014,7 +4014,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", -@@ -6691,6 +6702,8 @@ test("unit_tests") { +@@ -6747,6 +6758,8 @@ test("unit_tests") { "//chrome/common/themes:unit_tests", "//chrome/services/file_util:unit_tests", "//components/account_id", @@ -4023,7 +4023,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", -@@ -10516,6 +10529,7 @@ if (!is_android) { +@@ -10582,6 +10595,7 @@ if (!is_android) { "//chrome/browser:test_support_ui", "//chrome/browser/ui/exclusive_access", "//chrome/browser/ui/views/side_panel", 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 2896e134..dab8ff0c 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 -@@ -763,6 +763,17 @@ source_set("extensions") { +@@ -779,6 +779,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") -@@ -137,6 +140,7 @@ function_registration("api_registration") { +@@ -138,6 +141,7 @@ function_registration("api_registration") { # include generated headers from these targets. # TODO(brettw) this should be made unnecessary if possible. "//chrome/common/extensions/api", @@ -2136,39 +2136,39 @@ diff --git a/chrome/browser/extensions/api/api_browser_context_keyed_service_fac +// Use of this source code is governed by the GPLv3 that can be found in the +// components/adblock/LICENSE file. - #include "chrome/browser/extensions/api/cookies/cookies_api.h" - #include "chrome/browser/extensions/api/developer_private/developer_private_api.h" -@@ -16,12 +20,14 @@ + #include "chrome/browser/extensions/api/bookmarks/bookmarks_api.h" + #include "chrome/browser/extensions/api/bookmarks/bookmarks_api_watcher.h" +@@ -19,12 +23,14 @@ #include "build/build_config.h" #include "build/chromeos_buildflags.h" #include "chrome/browser/extensions/api/activity_log_private/activity_log_private_api.h" +#include "chrome/browser/extensions/api/adblock_private/adblock_private_api.h" #include "chrome/browser/extensions/api/autofill_private/autofill_private_event_router_factory.h" #include "chrome/browser/extensions/api/bookmark_manager_private/bookmark_manager_private_api.h" - #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" -@@ -85,6 +91,7 @@ void EnsureApiBrowserContextKeyedServiceFactoriesBuilt() { ++#include "chrome/browser/extensions/api/eyeo_filtering_private/eyeo_filtering_private_api.h" + #include "chrome/browser/extensions/api/image_writer_private/operation_manager.h" + #include "chrome/browser/extensions/api/language_settings_private/language_settings_private_delegate_factory.h" + #include "chrome/browser/extensions/api/messaging/incognito_connectability.h" // nogncheck +@@ -88,6 +94,7 @@ void EnsureApiBrowserContextKeyedServiceFactoriesBuilt() { #if BUILDFLAG(ENABLE_EXTENSIONS) extensions::ActivityLogAPI::GetFactoryInstance(); + extensions::AdblockPrivateAPI::GetFactoryInstance(); extensions::AutofillPrivateEventRouterFactory::GetInstance(); extensions::BluetoothLowEnergyAPI::GetFactoryInstance(); - extensions::BookmarksAPI::GetFactoryInstance(); -@@ -95,6 +102,7 @@ void EnsureApiBrowserContextKeyedServiceFactoriesBuilt() { + extensions::BookmarkManagerPrivateAPI::GetFactoryInstance(); +@@ -96,6 +103,7 @@ void EnsureApiBrowserContextKeyedServiceFactoriesBuilt() { extensions::DocumentScanAPIHandler::GetFactoryInstance(); #endif extensions::EnterpriseReportingPrivateEventRouterFactory::GetInstance(); + extensions::EyeoFilteringPrivateAPI::GetFactoryInstance(); extensions::FontSettingsAPI::GetFactoryInstance(); - extensions::HistoryAPI::GetFactoryInstance(); extensions::IdentityAPI::GetFactoryInstance(); + extensions::IncognitoConnectability::EnsureFactoryBuilt(); diff --git a/chrome/browser/extensions/api/eyeo_filtering_private/eyeo_filtering_private_api.cc b/chrome/browser/extensions/api/eyeo_filtering_private/eyeo_filtering_private_api.cc new file mode 100644 --- /dev/null @@ -3611,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 @@ -70,6 +74,16 @@ "dependencies": ["permission:experimentalAiData"], - "channel": "beta" + "channel": "stable" }, + "adblockPrivate": [{ + "dependencies": ["permission:adblockPrivate"], @@ -3655,8 +3655,8 @@ diff --git a/chrome/common/extensions/api/_permission_features.json b/chrome/com // This features file defines permissions for extension APIs implemented // under src/chrome. -@@ -62,6 +66,13 @@ - "extension" +@@ -56,6 +60,13 @@ + "5107DE9024C329EEA9C9A72D94C16723790C6422" // Apps Developer Tool Dev. ] }, + "adblockPrivate": { @@ -3669,8 +3669,8 @@ diff --git a/chrome/common/extensions/api/_permission_features.json b/chrome/com "autofillPrivate": { "channel": "trunk", "extension_types": ["extension", "platform_app"], -@@ -381,6 +392,13 @@ - "channel": "beta", +@@ -375,6 +386,13 @@ + "channel": "stable", "command_line_switch": "extension-ai-data-collection" }, + "eyeoFilteringPrivate": { @@ -3881,7 +3881,7 @@ diff --git a/chrome/common/extensions/api/api_sources.gni b/chrome/common/extens import("//build/config/features.gni") import("//chrome/common/features.gni") -@@ -91,6 +94,9 @@ if (enable_extensions) { +@@ -92,6 +95,9 @@ if (enable_extensions) { "webrtc_logging_private.idl", "windows.json", @@ -4126,7 +4126,7 @@ diff --git a/chrome/common/extensions/permissions/chrome_api_permissions.cc b/ch {APIPermissionID::kBackground, "background", APIPermissionInfo::kFlagDoesNotRequireManagedSessionFullLoginWarning}, {APIPermissionID::kDeclarativeContent, "declarativeContent"}, -@@ -88,6 +94,8 @@ constexpr APIPermissionInfo::InitInfo permissions_to_register[] = { +@@ -86,6 +92,8 @@ constexpr APIPermissionInfo::InitInfo permissions_to_register[] = { {APIPermissionID::kEnterpriseNetworkingAttributes, "enterprise.networkingAttributes", APIPermissionInfo::kFlagDoesNotRequireManagedSessionFullLoginWarning}, @@ -4149,7 +4149,7 @@ diff --git a/chrome/common/extensions/permissions/permission_set_unittest.cc b/c #include "extensions/common/permissions/permission_set.h" -@@ -879,6 +883,10 @@ TEST(PermissionsTest, PermissionMessages) { +@@ -875,6 +879,10 @@ TEST(PermissionsTest, PermissionMessages) { skip.insert(APIPermissionID::kSystemLog); skip.insert(APIPermissionID::kOdfsConfigPrivate); @@ -4163,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 -@@ -3894,6 +3894,20 @@ if (!is_android) { +@@ -3930,6 +3930,20 @@ if (!is_android) { ] } diff --git a/build/patches/sharing-hub-always-use-visible-URL.patch b/build/patches/sharing-hub-always-use-visible-URL.patch index 457c4b2c..83bfab37 100644 --- a/build/patches/sharing-hub-always-use-visible-URL.patch +++ b/build/patches/sharing-hub-always-use-visible-URL.patch @@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/share/ShareDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/share/ShareDelegateImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/share/ShareDelegateImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/share/ShareDelegateImpl.java -@@ -237,14 +237,8 @@ public class ShareDelegateImpl implements ShareDelegate { +@@ -289,14 +289,8 @@ public class ShareDelegateImpl implements ShareDelegate { @VisibleForTesting static boolean shouldFetchCanonicalUrl(final Tab currentTab) { diff --git a/build/patches/ungoogled-chromium-Disable-intranet-detector.patch b/build/patches/ungoogled-chromium-Disable-intranet-detector.patch index c9ffe0c8..8aa3504c 100644 --- a/build/patches/ungoogled-chromium-Disable-intranet-detector.patch +++ b/build/patches/ungoogled-chromium-Disable-intranet-detector.patch @@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/intranet_redirect_detector.cc b/chrome/browser/intranet_redirect_detector.cc --- a/chrome/browser/intranet_redirect_detector.cc +++ b/chrome/browser/intranet_redirect_detector.cc -@@ -118,9 +118,7 @@ void IntranetRedirectDetector::FinishSleep() { +@@ -117,9 +117,7 @@ void IntranetRedirectDetector::FinishSleep() { simple_loaders_.clear(); resulting_origins_.clear(); diff --git a/build/patches/ungoogled-chromium-Disable-profile-avatar.patch b/build/patches/ungoogled-chromium-Disable-profile-avatar.patch index 4fc3183c..bd948cdd 100644 --- a/build/patches/ungoogled-chromium-Disable-profile-avatar.patch +++ b/build/patches/ungoogled-chromium-Disable-profile-avatar.patch @@ -14,8 +14,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -1307,8 +1307,6 @@ static_library("browser") { - "profiles/keep_alive/scoped_profile_keep_alive.h", +@@ -1317,8 +1317,6 @@ static_library("browser") { + "profiles/incognito_mode_policy_handler.h", "profiles/off_the_record_profile_impl.cc", "profiles/off_the_record_profile_impl.h", - "profiles/profile_avatar_downloader.cc", diff --git a/build/patches/ungoogled-chromium-Disable-translate-integration.patch b/build/patches/ungoogled-chromium-Disable-translate-integration.patch index a55389f6..c18467a9 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 -@@ -2109,9 +2109,6 @@ Your Google account may have other forms of browsing history like searches and a +@@ -2115,9 +2115,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. @@ -186,7 +186,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/components/translate/core/browser/translate_manager.cc b/components/translate/core/browser/translate_manager.cc --- a/components/translate/core/browser/translate_manager.cc +++ b/components/translate/core/browser/translate_manager.cc -@@ -837,8 +837,9 @@ void TranslateManager::FilterIsTranslatePossible( +@@ -821,8 +821,9 @@ void TranslateManager::FilterIsTranslatePossible( TriggerDecision::kDisabledOffline); } diff --git a/build/patches/ungoogled-chromium-Disable-webRTC-log-uploader.patch b/build/patches/ungoogled-chromium-Disable-webRTC-log-uploader.patch index 69dc5cff..b2714161 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 -@@ -114,7 +114,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -130,7 +130,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 e76cb998..641979da 100644 --- a/build/patches/ungoogled-chromium-no-special-hosts-domains.patch +++ b/build/patches/ungoogled-chromium-no-special-hosts-domains.patch @@ -12,7 +12,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../android/metrics/uma_session_stats.cc | 10 - chrome/browser/browser_process_impl.cc | 1 - chrome/browser/chrome_browser_main.cc | 10 - - .../browser/chrome_content_browser_client.cc | 32 +- + .../browser/chrome_content_browser_client.cc | 29 +- + ...ent_browser_client_navigation_throttles.cc | 2 - .../domain_reliability/service_factory.cc | 33 +- chrome/browser/extensions/BUILD.gn | 1 - chrome/browser/feedback/BUILD.gn | 1 - @@ -22,7 +23,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../long_screenshots_tab_service.cc | 22 -- .../metrics/chrome_metrics_service_client.cc | 2 +- .../chrome_metrics_services_manager_client.cc | 5 +- - .../metrics/metrics_reporting_state.cc | 72 +--- + .../metrics/metrics_reporting_state.cc | 73 +--- .../net/system_network_context_manager.cc | 1 - .../one_google_bar_loader_impl.cc | 3 +- .../new_tab_page/promos/promo_service.cc | 6 +- @@ -37,7 +38,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/ui/BUILD.gn | 1 - chrome/browser/ui/android/omnibox/BUILD.gn | 2 - .../omnibox/LocationBarCoordinator.java | 2 - - .../browser/omnibox/LocationBarMediator.java | 25 -- + .../browser/omnibox/LocationBarMediator.java | 23 -- .../ui/webui/new_tab_page/new_tab_page_ui.cc | 6 - .../upgrade_detector/upgrade_detector_impl.cc | 6 - chrome/common/BUILD.gn | 2 - @@ -65,7 +66,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html ...gled-chromium-no-special-hosts-domains.inc | 1 + net/base/url_util.cc | 25 +- services/network/network_context.cc | 2 +- - 58 files changed, 52 insertions(+), 875 deletions(-) + 59 files changed, 52 insertions(+), 873 deletions(-) create mode 100644 cromite_flags/content/public/common/content_features_cc/ungoogled-chromium-no-special-hosts-domains.inc diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java @@ -79,11 +80,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi import org.chromium.chrome.browser.omnibox.suggestions.action.OmniboxActionDelegateImpl; import org.chromium.chrome.browser.paint_preview.DemoPaintPreview; import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer; -@@ -1161,10 +1160,8 @@ public class RootUiCoordinator - String url = - TemplateUrlServiceFactory.getForProfile(tab.getProfile()) - .getUrlForSearchQuery(query); -- String headers = GeolocationHeader.getGeoHeader(url, tab); +@@ -1168,10 +1167,8 @@ public class RootUiCoordinator + Profile profile = tab.getProfile(); + TemplateUrlService service = TemplateUrlServiceFactory.getForProfile(profile); + String url = service.getUrlForSearchQuery(query); +- String headers = GeolocationHeader.getGeoHeader(url, profile, service); LoadUrlParams loadUrlParams = new LoadUrlParams(url); - loadUrlParams.setVerbatimHeaders(headers); @@ -93,7 +94,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 -@@ -906,10 +906,6 @@ static_library("browser") { +@@ -917,10 +917,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 +105,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", -@@ -918,10 +914,6 @@ static_library("browser") { +@@ -929,10 +925,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 +116,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", -@@ -1575,8 +1567,6 @@ static_library("browser") { +@@ -1573,8 +1565,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", @@ -135,7 +136,7 @@ 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", -@@ -1852,7 +1839,6 @@ static_library("browser") { +@@ -1866,7 +1853,6 @@ static_library("browser") { # New dependencies inside of //chrome/browser that generate header files # should be added to browser_generated_files. ":browser_public_dependencies", @@ -166,7 +167,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 -@@ -1261,7 +1261,6 @@ BrowserProcessImpl::component_updater() { +@@ -1262,7 +1262,6 @@ BrowserProcessImpl::component_updater() { std::make_unique(); std::string brand; @@ -189,7 +190,7 @@ diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_brows } #endif // BUILDFLAG(ENABLE_PROCESS_SINGLETON) -@@ -1722,11 +1717,6 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { +@@ -1707,11 +1702,6 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { upgrade_util::SaveLastModifiedTimeOfExe(); #endif @@ -204,7 +205,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 -@@ -3025,7 +3025,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( +@@ -2912,7 +2912,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( switches::kForcePNaClSubzero, #endif switches::kForceUIDirection, @@ -212,17 +213,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch switches::kJavaScriptHarmony, switches::kEnableExperimentalWebAssemblyFeatures, embedder_support::kOriginTrialDisabledFeatures, -@@ -5464,9 +5463,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( - &throttles); - #endif - -- MaybeAddThrottle( -- SupervisedUserGoogleAuthNavigationThrottle::MaybeCreate(handle), -- &throttles); - - MaybeAddThrottle( - supervised_user::MaybeCreateClassifyUrlNavigationThrottleFor(handle), -@@ -6100,7 +6096,8 @@ GetClientDataHeader(content::FrameTreeNodeId frame_tree_node_id) { +@@ -5645,7 +5644,8 @@ GetClientDataHeader(content::FrameTreeNodeId frame_tree_node_id) { } #endif @@ -232,7 +223,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 -@@ -6140,7 +6137,7 @@ std::unique_ptr CreateGoogleURLLoaderThrottle( +@@ -5685,7 +5685,7 @@ std::unique_ptr CreateGoogleURLLoaderThrottle( std::move(bound_session_request_throttled_handler), #endif std::move(dynamic_params)); @@ -241,7 +232,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch std::vector> ChromeContentBrowserClient::CreateURLLoaderThrottles( -@@ -6197,15 +6194,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottles( +@@ -5742,15 +5742,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottles( GetClientDataHeader(frame_tree_node_id); #endif @@ -257,7 +248,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch { auto* factory = ProtocolHandlerRegistryFactory::GetForBrowserContext(browser_context); -@@ -6249,20 +6237,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottlesForKeepAlive( +@@ -5795,20 +5786,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottlesForKeepAlive( Profile* profile = Profile::FromBrowserContext(browser_context); DCHECK(profile); @@ -278,6 +269,18 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch return result; } +diff --git a/chrome/browser/chrome_content_browser_client_navigation_throttles.cc b/chrome/browser/chrome_content_browser_client_navigation_throttles.cc +--- a/chrome/browser/chrome_content_browser_client_navigation_throttles.cc ++++ b/chrome/browser/chrome_content_browser_client_navigation_throttles.cc +@@ -354,8 +354,6 @@ void CreateAndAddChromeThrottlesForNavigation( + extensions::WebViewGuest::MaybeCreateAndAddNavigationThrottle(registry); + #endif + +- SupervisedUserGoogleAuthNavigationThrottle::MaybeCreateAndAdd(registry); +- + supervised_user::MaybeCreateAndAddClassifyUrlNavigationThrottle(registry); + + if (auto* throttle_manager = diff --git a/chrome/browser/domain_reliability/service_factory.cc b/chrome/browser/domain_reliability/service_factory.cc --- a/chrome/browser/domain_reliability/service_factory.cc +++ b/chrome/browser/domain_reliability/service_factory.cc @@ -327,7 +330,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 -@@ -421,7 +421,6 @@ source_set("extensions") { +@@ -447,7 +447,6 @@ source_set("extensions") { "//chrome/browser/extensions:cws_item_service_proto", "//chrome/browser/extensions/api:api_registration", "//chrome/browser/favicon", @@ -371,7 +374,7 @@ diff --git a/chrome/browser/feedback/system_logs/log_sources/chrome_internal_log diff --git a/chrome/browser/first_run/first_run.cc b/chrome/browser/first_run/first_run.cc --- a/chrome/browser/first_run/first_run.cc +++ b/chrome/browser/first_run/first_run.cc -@@ -294,14 +294,6 @@ void SetupInitialPrefsFromInstallPrefs( +@@ -296,14 +296,6 @@ void SetupInitialPrefsFromInstallPrefs( // -- Platform-specific functions -- @@ -454,7 +457,7 @@ diff --git a/chrome/browser/long_screenshots/long_screenshots_tab_service.cc b/c diff --git a/chrome/browser/metrics/chrome_metrics_service_client.cc b/chrome/browser/metrics/chrome_metrics_service_client.cc --- a/chrome/browser/metrics/chrome_metrics_service_client.cc +++ b/chrome/browser/metrics/chrome_metrics_service_client.cc -@@ -605,7 +605,7 @@ ChromeMetricsServiceClient::GetNetworkTimeTracker() { +@@ -606,7 +606,7 @@ ChromeMetricsServiceClient::GetNetworkTimeTracker() { } bool ChromeMetricsServiceClient::GetBrand(std::string* brand_code) { @@ -488,7 +491,7 @@ diff --git a/chrome/browser/metrics/chrome_metrics_services_manager_client.cc b/ diff --git a/chrome/browser/metrics/metrics_reporting_state.cc b/chrome/browser/metrics/metrics_reporting_state.cc --- a/chrome/browser/metrics/metrics_reporting_state.cc +++ b/chrome/browser/metrics/metrics_reporting_state.cc -@@ -32,65 +32,6 @@ +@@ -32,66 +32,6 @@ #include "components/policy/core/common/features.h" #endif // BUILDFLAG(IS_ANDROID) @@ -537,7 +540,7 @@ diff --git a/chrome/browser/metrics/metrics_reporting_state.cc b/chrome/browser/ - UpdateMetricsPrefsOnPermissionChange(updated_pref, called_from); - - // Uses the current state of whether reporting is enabled to enable services. -- g_browser_process->GetMetricsServicesManager()->UpdateUploadPermissions(true); +- g_browser_process->GetMetricsServicesManager()->UpdateUploadPermissions(); - - if (to_update_pref == updated_pref) { - RecordMetricsReportingHistogramValue(updated_pref ? @@ -545,8 +548,9 @@ diff --git a/chrome/browser/metrics/metrics_reporting_state.cc b/chrome/browser/ - } else { - RecordMetricsReportingHistogramValue(METRICS_REPORTING_ERROR); - } -- if (!callback_fn.is_null()) +- if (!callback_fn.is_null()) { - std::move(callback_fn).Run(updated_pref); +- } -} - -} // namespace @@ -554,7 +558,7 @@ diff --git a/chrome/browser/metrics/metrics_reporting_state.cc b/chrome/browser/ void ChangeMetricsReportingState( bool enabled, ChangeMetricsReportingStateCalledFrom called_from) { -@@ -126,11 +67,6 @@ void ChangeMetricsReportingStateWithReply( +@@ -127,11 +67,6 @@ void ChangeMetricsReportingStateWithReply( return; } #endif @@ -566,7 +570,7 @@ diff --git a/chrome/browser/metrics/metrics_reporting_state.cc b/chrome/browser/ } void UpdateMetricsPrefsOnPermissionChange( -@@ -196,13 +132,7 @@ void UpdateMetricsPrefsOnPermissionChange( +@@ -197,13 +132,7 @@ void UpdateMetricsPrefsOnPermissionChange( crash_keys::ClearMetricsClientId(); } @@ -584,14 +588,14 @@ 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 -@@ -849,7 +849,6 @@ void SystemNetworkContextManager::AddSSLConfigToNetworkContextParams( +@@ -863,7 +863,6 @@ void SystemNetworkContextManager::AddSSLConfigToNetworkContextParams( void SystemNetworkContextManager::ConfigureDefaultNetworkContextParams( network::mojom::NetworkContextParams* network_context_params) { variations::UpdateCorsExemptHeaderForVariations(network_context_params); - GoogleURLLoaderThrottle::UpdateCorsExemptHeader(network_context_params); - - network_context_params->enable_brotli = true; - + #if BUILDFLAG(ENABLE_REQUEST_HEADER_INTEGRITY) + request_header_integrity::RequestHeaderIntegrityURLLoaderThrottle:: + UpdateCorsExemptHeaders(network_context_params); 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 @@ -739,7 +743,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 -@@ -358,7 +358,6 @@ static_library("ui") { +@@ -336,7 +336,6 @@ static_library("ui") { "//chrome/browser/feedback:feedback_impl", "//chrome/browser/file_system_access", "//chrome/browser/fingerprinting_protection", @@ -770,7 +774,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; -@@ -419,7 +418,6 @@ public class LocationBarCoordinator +@@ -424,7 +423,6 @@ public class LocationBarCoordinator mLocationBarMediator.destroy(); mLocationBarMediator = null; @@ -789,7 +793,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; -@@ -323,24 +322,6 @@ class LocationBarMediator +@@ -328,20 +327,6 @@ class LocationBarMediator if (!mUrlFocusedWithoutAnimations) handleUrlFocusAnimation(hasFocus); @@ -797,41 +801,39 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow - && mLocationBarDataProvider.hasTab() - && !mLocationBarDataProvider.isIncognito()) { - if (mTemplateUrlServiceSupplier.hasValue()) { -- if (mTemplateUrlServiceSupplier.get().isDefaultSearchEngineGoogle()) { -- GeolocationHeader.primeLocationForGeoHeaderIfEnabled( -- mProfileSupplier.get(), mTemplateUrlServiceSupplier.get()); -- } +- GeolocationHeader.primeLocationForGeoHeaderIfEnabled( +- mProfileSupplier.get(), mTemplateUrlServiceSupplier.get()); - } else { - mTemplateUrlServiceSupplier.onAvailable( - (templateUrlService) -> { -- if (templateUrlService.isDefaultSearchEngineGoogle()) { -- GeolocationHeader.primeLocationForGeoHeaderIfEnabled( -- mProfileSupplier.get(), templateUrlService); -- } +- GeolocationHeader.primeLocationForGeoHeaderIfEnabled( +- mProfileSupplier.get(), templateUrlService); - }); - } - } // Focus change caused by a closed tab may result in there not being an active tab. if (!hasFocus && mLocationBarDataProvider.hasTab()) { setUrl( mLocationBarDataProvider.getCurrentGurl(), -@@ -356,8 +337,6 @@ class LocationBarMediator - templateUrlService.addObserver(this); - if (OmniboxFeatures.sUseFusedLocationProvider.isEnabled() - && templateUrlService.isDefaultSearchEngineGoogle()) { -- GeolocationHeader.primeLocationForGeoHeaderIfEnabled( -- mProfileSupplier.get(), mTemplateUrlServiceSupplier.get()); - } - }); +@@ -356,8 +341,6 @@ class LocationBarMediator + mCallbackController.makeCancelable( + (templateUrlService) -> { + templateUrlService.addObserver(this); +- GeolocationHeader.primeLocationForGeoHeaderIfEnabled( +- mProfileSupplier.get(), mTemplateUrlServiceSupplier.get()); + })); -@@ -591,7 +570,6 @@ class LocationBarMediator + mLocationBarLayout.onFinishNativeInitialization(); +@@ -590,9 +573,6 @@ class LocationBarMediator LoadUrlParams loadUrlParams = new LoadUrlParams(url); try (TimingMetric record = TimingMetric.shortUptime("Android.Omnibox.SetGeolocationHeadersTime")) { -- loadUrlParams.setVerbatimHeaders(GeolocationHeader.getGeoHeader(url, currentTab)); +- loadUrlParams.setVerbatimHeaders( +- GeolocationHeader.getGeoHeader( +- url, mProfileSupplier.get(), mTemplateUrlServiceSupplier.get())); } loadUrlParams.setTransitionType( omniboxLoadUrlParams.transitionType | PageTransition.FROM_ADDRESS_BAR); -@@ -1603,8 +1581,6 @@ class LocationBarMediator +@@ -1610,8 +1590,6 @@ class LocationBarMediator if (OmniboxFeatures.sUseFusedLocationProvider.isEnabled() && mProfileSupplier.hasValue() && mTemplateUrlServiceSupplier.hasValue()) { @@ -840,7 +842,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow } } -@@ -1612,7 +1588,6 @@ class LocationBarMediator +@@ -1619,7 +1597,6 @@ class LocationBarMediator public void onPauseWithNative() { OmniboxFeatures.updateLastExitTimestamp(); if (OmniboxFeatures.sUseFusedLocationProvider.isEnabled()) { @@ -851,7 +853,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc b/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc --- a/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc +++ b/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc -@@ -478,12 +478,6 @@ content::WebUIDataSource* CreateAndAddNewTabPageUiHtmlSource(Profile* profile) { +@@ -503,12 +503,6 @@ content::WebUIDataSource* CreateAndAddNewTabPageUiHtmlSource(Profile* profile) { // chrome-untrusted://new-tab-page for other external content and resources. // NOTE: Use caution when overriding content security policies as that cean // lead to subtle security bugs such as https://crbug.com/1251541. @@ -908,7 +910,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 -@@ -269,17 +269,6 @@ URLLoaderThrottleProviderImpl::CreateThrottles( +@@ -274,17 +274,6 @@ URLLoaderThrottleProviderImpl::CreateThrottles( } #endif @@ -929,7 +931,7 @@ diff --git a/chrome/renderer/url_loader_throttle_provider_impl.cc b/chrome/rende diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn -@@ -6597,7 +6597,6 @@ test("unit_tests") { +@@ -6640,7 +6640,6 @@ test("unit_tests") { "//chrome/browser/file_system_access:unit_tests", "//chrome/browser/fingerprinting_protection", "//chrome/browser/first_party_sets", @@ -1152,7 +1154,7 @@ diff --git a/components/domain_reliability/monitor.cc b/components/domain_reliab diff --git a/components/domain_reliability/uploader.cc b/components/domain_reliability/uploader.cc --- a/components/domain_reliability/uploader.cc +++ b/components/domain_reliability/uploader.cc -@@ -81,7 +81,7 @@ class DomainReliabilityUploaderImpl : public DomainReliabilityUploader, +@@ -80,7 +80,7 @@ class DomainReliabilityUploaderImpl : public DomainReliabilityUploader, if (discard_uploads_) discarded_upload_count_++; @@ -1641,7 +1643,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 -@@ -614,11 +614,7 @@ std::u16string TemplateURLRef::SearchTermToString16( +@@ -620,11 +620,7 @@ std::u16string TemplateURLRef::SearchTermToString16( bool TemplateURLRef::HasGoogleBaseURLs( const SearchTermsData& search_terms_data) const { @@ -1843,7 +1845,7 @@ new file mode 100644 diff --git a/net/base/url_util.cc b/net/base/url_util.cc --- a/net/base/url_util.cc +++ b/net/base/url_util.cc -@@ -519,34 +519,11 @@ bool HasGoogleHost(const GURL& url) { +@@ -537,34 +537,11 @@ bool HasGoogleHost(const GURL& url) { } bool IsGoogleHost(std::string_view host) { @@ -1882,7 +1884,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 -@@ -3012,7 +3012,7 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( +@@ -3029,7 +3029,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 bb19b145..e10b3672 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 -@@ -109,7 +109,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -125,7 +125,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 c0e7bbd2..11483252 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 -@@ -74,13 +74,6 @@ void AwFeatureOverrides::OverrideFeatureWithFieldTrial( +@@ -75,13 +75,6 @@ void AwFeatureOverrides::OverrideFeatureWithFieldTrial( } // namespace internal void AwFieldTrials::OnVariationsSetupComplete() { From 75f4ac5494b40a9fe11d7d72d5f8f1d1d108fd07 Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Tue, 24 Jun 2025 16:26:46 +0200 Subject: [PATCH 2/9] Patches for v138 (need checks) --- .../AImageReader-CFI-crash-mitigations.patch | 41 ++- .../Add-bookmark-import-export-actions.patch | 80 ++--- ...-to-disable-external-intent-requests.patch | 28 +- ...Add-lifetime-options-for-permissions.patch | 336 +++++++++--------- .../Add-menu-item-to-bookmark-all-tabs.patch | 106 +++--- .../Add-option-to-force-tablet-UI.patch | 72 ++-- build/patches/Add-search-engine.patch | 34 +- ...d-setting-to-invert-tap-and-long-tap.patch | 72 ++-- build/patches/Bromite-auto-updater.patch | 102 +++--- .../Content-settings-infrastructure.patch | 139 ++++---- .../Disable-Android-Tab-Declutter.patch | 44 ++- build/patches/Disable-GSA-by-default.patch | 55 +-- .../patches/Disable-all-predictors-code.patch | 72 ++-- .../Disable-omission-of-URL-elements.patch | 7 +- ...ndroid-Dynamic-Performance-Framework.patch | 16 +- ...cessBoundStringEncryption-by-default.patch | 11 +- .../Enable-native-Android-autofill.patch | 123 ++++--- .../Enable-network-isolation-features.patch | 11 +- ...le-search-engine-settings-desktop-ui.patch | 145 ++++---- .../Move-navigation-bar-to-bottom.patch | 276 +++++++------- ...nt-settings-back-to-privacy-settings.patch | 16 +- ...-button-in-top-toolbar-customization.patch | 15 +- 22 files changed, 897 insertions(+), 904 deletions(-) diff --git a/build/patches/AImageReader-CFI-crash-mitigations.patch b/build/patches/AImageReader-CFI-crash-mitigations.patch index 2276e291..ab607e6e 100644 --- a/build/patches/AImageReader-CFI-crash-mitigations.patch +++ b/build/patches/AImageReader-CFI-crash-mitigations.patch @@ -31,8 +31,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html gpu/config/gpu_util.cc | 8 ++++++++ gpu/config/gpu_workaround_list.txt | 1 + gpu/ipc/service/gpu_init.cc | 8 ++++++++ - gpu/ipc/service/stream_texture_android.cc | 10 +++++++++- - 12 files changed, 87 insertions(+), 1 deletion(-) + media/gpu/android/video_frame_factory_impl.cc | 12 +++++++++++- + 12 files changed, 89 insertions(+), 1 deletion(-) create mode 100644 cromite_flags/media/base/media_switches_cc/AImageReader-CFI-crash-mitigations.inc create mode 100644 cromite_flags/media/base/media_switches_h/AImageReader-CFI-crash-mitigations.inc @@ -90,7 +90,7 @@ 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 -@@ -3479,6 +3479,10 @@ +@@ -3509,6 +3509,10 @@ "chrome-signin-team@google.com" ], "expiry_milestone": 138 @@ -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 -@@ -2597,6 +2597,22 @@ +@@ -2613,6 +2613,22 @@ "no_downscaled_overlay_promotion" ] }, @@ -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) -@@ -684,6 +685,13 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line, +@@ -687,6 +688,13 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line, } #endif // BUILDFLAG(IS_WIN) @@ -229,24 +229,29 @@ diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc if (gpu_feature_info_.status_values[GPU_FEATURE_TYPE_VULKAN] != kGpuFeatureStatusEnabled || !InitializeVulkan()) { -diff --git a/gpu/ipc/service/stream_texture_android.cc b/gpu/ipc/service/stream_texture_android.cc ---- a/gpu/ipc/service/stream_texture_android.cc -+++ b/gpu/ipc/service/stream_texture_android.cc -@@ -50,7 +50,15 @@ std::unique_ptr MakeCurrent( - } +diff --git a/media/gpu/android/video_frame_factory_impl.cc b/media/gpu/android/video_frame_factory_impl.cc +--- a/media/gpu/android/video_frame_factory_impl.cc ++++ b/media/gpu/android/video_frame_factory_impl.cc +@@ -35,10 +35,20 @@ namespace { - TextureOwner::Mode GetTextureOwnerMode() { -- return base::android::EnableAndroidImageReader() -+ const bool a_image_reader_supported = -+ base::android::AndroidImageReader::GetInstance().IsSupported(); + gpu::TextureOwner::Mode GetTextureOwnerMode( + VideoFrameFactory::OverlayMode overlay_mode) { ++ CHECK: https://source.chromium.org/chromium/chromium/src/+/0abf370caaac29344f1d3fe4c416b75a17392b65 + + // TODO(vikassoni) : Currently we have 2 different flags to enable/disable + // AImageReader - one for MCVD and other for MediaPlayer here. Merge those 2 + // flags into a single flag. Keeping the 2 flags separate for now since finch + // experiment using this flag is in progress. -+ return a_image_reader_supported && base::android::EnableAndroidImageReader() && ++ const bool a_image_reader_supported = ++ base::android::AndroidImageReader::GetInstance().IsSupported(); ++ const bool enabled = a_image_reader_supported && base::android::EnableAndroidImageReader() && + base::FeatureList::IsEnabled(features::kAImageReaderMediaPlayer) - ? TextureOwner::Mode::kAImageReaderInsecure - : TextureOwner::Mode::kSurfaceTextureInsecure; - } + switch (overlay_mode) { + case VideoFrameFactory::OverlayMode::kDontRequestPromotionHints: + case VideoFrameFactory::OverlayMode::kRequestPromotionHints: +- return base::android::EnableAndroidImageReader() ++ return enabled + ? gpu::TextureOwner::Mode::kAImageReaderInsecure + : gpu::TextureOwner::Mode::kSurfaceTextureInsecure; + case VideoFrameFactory::OverlayMode::kSurfaceControlSecure: -- diff --git a/build/patches/Add-bookmark-import-export-actions.patch b/build/patches/Add-bookmark-import-export-actions.patch index 2059b5d9..e458662d 100644 --- a/build/patches/Add-bookmark-import-export-actions.patch +++ b/build/patches/Add-bookmark-import-export-actions.patch @@ -247,7 +247,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -219,6 +219,8 @@ static_library("browser") { +@@ -222,6 +222,8 @@ static_library("browser") { "bluetooth/chrome_bluetooth_delegate_impl_client.h", "bookmarks/bookmark_model_factory.cc", "bookmarks/bookmark_model_factory.h", @@ -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", -@@ -3583,8 +3592,6 @@ static_library("browser") { +@@ -3639,8 +3648,6 @@ static_library("browser") { "bookmarks/bookmark_expanded_state_tracker.h", "bookmarks/bookmark_expanded_state_tracker_factory.cc", "bookmarks/bookmark_expanded_state_tracker_factory.h", @@ -282,7 +282,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browser/bookmarks/android/bookmark_bridge.cc --- a/chrome/browser/bookmarks/android/bookmark_bridge.cc +++ b/chrome/browser/bookmarks/android/bookmark_bridge.cc -@@ -66,6 +66,28 @@ +@@ -68,6 +68,28 @@ #include "content/public/browser/web_contents.h" #include "url/gurl.h" @@ -311,7 +311,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse // Must come after all headers that specialize FromJniType() / ToJniType(). #include "chrome/browser/bookmarks/android/jni_headers/BookmarkBridge_jni.h" -@@ -84,6 +106,57 @@ using bookmarks::android::JavaBookmarkIdGetType; +@@ -86,6 +108,57 @@ using bookmarks::android::JavaBookmarkIdGetType; using content::BrowserThread; using power_bookmarks::PowerBookmarkMeta; @@ -369,7 +369,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse namespace { // The key used to connect the instance of the bookmark bridge to the bookmark // model. -@@ -231,6 +304,10 @@ BookmarkBridge::~BookmarkBridge() { +@@ -296,6 +369,10 @@ BookmarkBridge::~BookmarkBridge() { partner_bookmarks_shim_observation_.Reset(); bookmark_model_observation_.Reset(); profile_observation_.Reset(); @@ -380,7 +380,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse } void BookmarkBridge::Destroy(JNIEnv* env) { -@@ -782,6 +859,196 @@ jint BookmarkBridge::GetTotalBookmarkCount( +@@ -847,6 +924,196 @@ jint BookmarkBridge::GetTotalBookmarkCount( return count; } @@ -655,9 +655,9 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser // Information about the Partner bookmarks (must check for IsLoaded()). // This is owned by profile. -@@ -435,6 +459,10 @@ class BookmarkBridge : public ProfileObserver, - - bool suppress_observer_notifications_ = false; +@@ -437,6 +461,10 @@ class BookmarkBridge : public ProfileObserver, + base::TimeTicks load_start_time_; + bool loading_notification_sent_ = false; + const std::string FileSelectedImpl(const base::FilePath& path); + void FileSelectedImplOnUIThread(const base::FilePath& path, @@ -679,7 +679,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows /** * Provides the communication channel for Android to fetch and manipulate the bookmark model stored * in native. -@@ -52,6 +55,9 @@ class BookmarkBridge { +@@ -53,6 +56,9 @@ class BookmarkBridge { private boolean mIsNativeBookmarkModelLoaded; private boolean mInitializedPartnerBookmarks; @@ -689,7 +689,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows // Lazily set pseudo-constants. These should never change at runtime. Used to avoid crossing // JNI to fetch information. private @Nullable BookmarkId mRootFolderId; -@@ -499,6 +505,35 @@ class BookmarkBridge { +@@ -500,6 +506,35 @@ class BookmarkBridge { .getTotalBookmarkCount(mNativeBookmarkBridge, id.getId(), id.getType()); } @@ -725,7 +725,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows /** * Synchronously gets a list of bookmarks that match the specified search query. * -@@ -1121,6 +1156,10 @@ class BookmarkBridge { +@@ -1124,6 +1159,10 @@ class BookmarkBridge { void getChildIds( long nativeBookmarkBridge, long id, int type, List bookmarksList); @@ -739,7 +739,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/BookmarkDelegate.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkDelegate.java --- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkDelegate.java +++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkDelegate.java -@@ -65,6 +65,16 @@ public interface BookmarkDelegate { +@@ -67,6 +67,16 @@ public interface BookmarkDelegate { /** Shows the search UI. */ void openSearchUi(); @@ -1139,7 +1139,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java --- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java +++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java -@@ -98,6 +98,17 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -103,6 +103,17 @@ public class BookmarkToolbar extends SelectableListToolbar setOnMenuItemClickListener(dragEnabled ? null : this); } @@ -1157,7 +1157,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows void setEditButtonVisible(boolean visible) { mEditButtonVisible = visible; getMenu().findItem(R.id.edit_menu_id).setVisible(visible); -@@ -174,6 +185,12 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -179,6 +190,12 @@ public class BookmarkToolbar extends SelectableListToolbar void setCurrentFolder(BookmarkId folder) { mCurrentFolder = mBookmarkModel.getBookmarkById(folder); @@ -1170,7 +1170,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows } void setNavigateBackRunnable(Runnable navigateBackRunnable) { -@@ -197,6 +214,13 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -203,6 +220,13 @@ public class BookmarkToolbar extends SelectableListToolbar @Override public boolean onMenuItemClick(MenuItem menuItem) { hideOverflowMenu(); @@ -1181,10 +1181,10 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows + mExportBookmarkRunnable.run(); + return true; + } - return mMenuIdClickedFunction.apply(menuItem.getItemId()); + return assumeNonNull(mMenuIdClickedFunction).apply(menuItem.getItemId()); } -@@ -217,6 +241,9 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -223,6 +247,9 @@ public class BookmarkToolbar extends SelectableListToolbar protected void showNormalView() { super.showNormalView(); @@ -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 +@@ -140,6 +140,10 @@ class BookmarkToolbarMediator mBookmarkDelegate = bookmarkDelegate; mModel.set( BookmarkToolbarProperties.NAVIGATE_BACK_RUNNABLE, this::onNavigateBack); @@ -1211,7 +1211,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java --- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java +++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java -@@ -84,6 +84,10 @@ class BookmarkToolbarProperties { +@@ -86,6 +86,10 @@ class BookmarkToolbarProperties { static final WritableObjectPropertyKey NEXT_FOCUSABLE_VIEW = new WritableObjectPropertyKey<>(); @@ -1222,7 +1222,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows static final PropertyKey[] ALL_KEYS = { SELECTION_DELEGATE, -@@ -112,6 +116,8 @@ class BookmarkToolbarProperties { +@@ -114,6 +118,8 @@ class BookmarkToolbarProperties { SELECTION_MODE_SHOW_MOVE, SELECTION_MODE_SHOW_MARK_READ, SELECTION_MODE_SHOW_MARK_UNREAD, @@ -1235,7 +1235,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/BookmarkToolbarViewBinder.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarViewBinder.java --- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarViewBinder.java +++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarViewBinder.java -@@ -54,6 +54,12 @@ class BookmarkToolbarViewBinder { +@@ -56,6 +56,12 @@ class BookmarkToolbarViewBinder { model.get(BookmarkToolbarProperties.CHECKED_VIEW_MENU_ID)); } else if (key == BookmarkToolbarProperties.CURRENT_FOLDER) { bookmarkToolbar.setCurrentFolder(model.get(BookmarkToolbarProperties.CURRENT_FOLDER)); @@ -1328,18 +1328,18 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -218,6 +218,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { - &kBackgroundThreadPool, +@@ -223,6 +223,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { + &kBatchTabRestore, &kBlockIntentsWhileLocked, &kBookmarkPaneAndroid, + &kBookmarksExportUseSaf, &kBottomBrowserControlsRefactor, &kTabClosureMethodRefactor, - &kBrowserControlsEarlyResize, + &kBrowserControlsDebugging, 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 -@@ -604,6 +604,7 @@ public abstract class ChromeFeatureList { +@@ -624,6 +624,7 @@ public abstract class ChromeFeatureList { public static final String USE_LIBUNWINDSTACK_NATIVE_UNWINDER_ANDROID = "UseLibunwindstackNativeUnwinderAndroid"; public static final String VISITED_URL_RANKING_SERVICE = "VisitedURLRankingService"; @@ -1378,9 +1378,9 @@ diff --git a/chrome/browser/importer/profile_writer.h b/chrome/browser/importer/ #include "components/favicon_base/favicon_usage_data.h" #include "components/history/core/browser/history_types.h" #include "components/search_engines/template_url_service.h" -@@ -71,6 +72,11 @@ class ProfileWriter : public base::RefCountedThreadSafe { - virtual void AddBookmarks(const std::vector& bookmarks, - const std::u16string& top_level_folder_name); +@@ -75,6 +76,11 @@ class ProfileWriter : public base::RefCountedThreadSafe { + const std::vector& bookmarks, + const std::u16string& top_level_folder_name); + virtual void AddBookmarksWithModel( + bookmarks::BookmarkModel* model, @@ -1393,7 +1393,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 -@@ -144,6 +144,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"; @@ -1402,7 +1402,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"; -@@ -995,6 +997,7 @@ public final class ChromePreferenceKeys { +@@ -999,6 +1001,7 @@ public final class ChromePreferenceKeys { AUXILIARY_SEARCH_SCHEMA_VERSION, APP_LAUNCH_LAST_KNOWN_ACTIVE_TAB_STATE, APP_LAUNCH_SEARCH_ENGINE_HAD_LOGO, @@ -1441,7 +1441,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn --- a/chrome/common/BUILD.gn +++ b/chrome/common/BUILD.gn -@@ -351,6 +351,9 @@ static_library("common_lib") { +@@ -352,6 +352,9 @@ static_library("common_lib") { sources += [ "media/chrome_media_drm_bridge_client.cc", "media/chrome_media_drm_bridge_client.h", @@ -1463,7 +1463,7 @@ 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", -@@ -221,6 +219,11 @@ static_library("utility") { +@@ -222,6 +220,11 @@ static_library("utility") { deps += [ "//chrome/services/pdf:lib" ] } @@ -1478,16 +1478,16 @@ diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn diff --git a/chrome/utility/importer/bookmark_html_reader.cc b/chrome/utility/importer/bookmark_html_reader.cc --- a/chrome/utility/importer/bookmark_html_reader.cc +++ b/chrome/utility/importer/bookmark_html_reader.cc -@@ -17,7 +17,9 @@ +@@ -16,7 +16,9 @@ + #include "base/strings/string_util.h" #include "base/strings/utf_string_conversions.h" #include "base/time/time.h" - #include "chrome/common/importer/imported_bookmark_entry.h" +#if !BUILDFLAG(IS_ANDROID) #include "chrome/utility/importer/favicon_reencode.h" +#endif #include "components/search_engines/search_terms_data.h" #include "components/search_engines/template_url.h" - #include "net/base/data_url.h" + #include "components/user_data_importer/common/imported_bookmark_entry.h" @@ -55,6 +57,7 @@ bool GetAttribute(const std::string& attribute_list, return true; } @@ -1513,8 +1513,8 @@ diff --git a/chrome/utility/importer/bookmark_html_reader.cc b/chrome/utility/im + const base::RepeatingCallback cancellation_callback, + const base::RepeatingCallback valid_url_callback, const base::FilePath& file_path, - std::vector* bookmarks, - std::vector* search_engines, + std::vector* bookmarks, + std::vector* search_engines, favicon_base::FaviconUsageDataList* favicons) { std::string content; - base::ReadFileToString(file_path, &content); @@ -1561,8 +1561,8 @@ diff --git a/chrome/utility/importer/bookmark_html_reader.cc b/chrome/utility/im diff --git a/chrome/utility/importer/bookmark_html_reader.h b/chrome/utility/importer/bookmark_html_reader.h --- a/chrome/utility/importer/bookmark_html_reader.h +++ b/chrome/utility/importer/bookmark_html_reader.h -@@ -50,6 +50,14 @@ void ImportBookmarksFile( - std::vector* search_engines, +@@ -53,6 +53,14 @@ void ImportBookmarksFile( + std::vector* search_engines, favicon_base::FaviconUsageDataList* favicons); +void ImportBookmarksFile( 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 eb938508..ed54d565 100644 --- a/build/patches/Add-flag-to-disable-external-intent-requests.patch +++ b/build/patches/Add-flag-to-disable-external-intent-requests.patch @@ -49,7 +49,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java -@@ -36,6 +36,7 @@ import org.chromium.chrome.browser.ephemeraltab.EphemeralTabCoordinator; +@@ -35,6 +35,7 @@ import org.chromium.chrome.browser.ephemeraltab.EphemeralTabCoordinator; import org.chromium.chrome.browser.externalnav.ExternalNavigationDelegateImpl; import org.chromium.chrome.browser.flags.ActivityType; import org.chromium.chrome.browser.flags.ChromeFeatureList; @@ -57,7 +57,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust import org.chromium.chrome.browser.fullscreen.BrowserControlsManager; import org.chromium.chrome.browser.fullscreen.FullscreenManager; import org.chromium.chrome.browser.init.ChromeActivityNativeDelegate; -@@ -127,6 +128,7 @@ public class CustomTabDelegateFactory implements TabDelegateFactory { +@@ -126,6 +127,7 @@ public class CustomTabDelegateFactory implements TabDelegateFactory { @Override public boolean shouldDisableAllExternalIntents() { @@ -141,17 +141,17 @@ new file mode 100644 diff --git a/components/external_intents/android/external_intents_features.cc b/components/external_intents/android/external_intents_features.cc --- a/components/external_intents/android/external_intents_features.cc +++ b/components/external_intents/android/external_intents_features.cc -@@ -27,7 +27,6 @@ namespace { - const base::Feature* const kFeaturesExposedToJava[] = { - &kExternalNavigationDebugLogs, &kBlockFrameRenavigations, - &kBlockIntentsToSelf}; +@@ -28,7 +28,6 @@ const base::Feature* const kFeaturesExposedToJava[] = { + &kExternalNavigationDebugLogs, &kBlockIntentsToSelf, + &kNavigationCaptureRefactorAndroid, &kAuxiliaryNavigationStaysInBrowser, + &kReparentTopLevelNavigationFromPWA, &kReparentAuxiliaryNavigationFromPWA}; - } // namespace // Alphabetical: -@@ -44,7 +43,13 @@ BASE_FEATURE(kBlockIntentsToSelf, - "BlockIntentsToSelf", - base::FEATURE_ENABLED_BY_DEFAULT); +@@ -57,7 +56,13 @@ BASE_FEATURE(kReparentAuxiliaryNavigationFromPWA, + "ReparentAuxiliaryNavigationFromPWA", + base::FEATURE_DISABLED_BY_DEFAULT); +CROMITE_FEATURE(kIntentBlockExternalFormRedirectsNoGesture, + "IntentBlockExternalFormRedirectsNoGesture", @@ -177,10 +177,10 @@ diff --git a/components/external_intents/android/external_intents_features.h b/c diff --git a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalIntentsFeatures.java b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalIntentsFeatures.java --- a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalIntentsFeatures.java +++ b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalIntentsFeatures.java -@@ -20,6 +20,12 @@ import org.chromium.build.annotations.NullMarked; +@@ -19,6 +19,12 @@ import org.chromium.build.annotations.NullMarked; @JNINamespace("external_intents") @NullMarked - public class ExternalIntentsFeatures extends Features { + public class ExternalIntentsFeatures { + public static final String INTENT_BLOCK_EXTERNAL_FORM_REDIRECT_NO_GESTURE_NAME = + "IntentBlockExternalFormRedirectsNoGesture"; + @@ -188,12 +188,12 @@ diff --git a/components/external_intents/android/java/src/org/chromium/component + new ExternalIntentsFeatures(-1, INTENT_BLOCK_EXTERNAL_FORM_REDIRECT_NO_GESTURE_NAME); + public static final String EXTERNAL_NAVIGATION_DEBUG_LOGS_NAME = "ExternalNavigationDebugLogs"; - public static final String BLOCK_FRAME_RENAVIGATIONS_NAME = "BlockFrameRenavigations3"; public static final String BLOCK_INTENTS_TO_SELF_NAME = "BlockIntentsToSelf"; + public static final String NAVIGATION_CAPTURE_REFACTOR_ANDROID_NAME = 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 -@@ -1537,6 +1537,12 @@ public class ExternalNavigationHandler { +@@ -1560,6 +1560,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, -@@ -1593,6 +1599,21 @@ public class ExternalNavigationHandler { +@@ -1617,6 +1623,21 @@ public class ExternalNavigationHandler { return OverrideUrlLoadingResult.forNoOverride(); } diff --git a/build/patches/Add-lifetime-options-for-permissions.patch b/build/patches/Add-lifetime-options-for-permissions.patch index 3c65e990..b6435ebc 100644 --- a/build/patches/Add-lifetime-options-for-permissions.patch +++ b/build/patches/Add-lifetime-options-for-permissions.patch @@ -83,14 +83,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../geolocation_permission_context_android.cc | 34 ++++++-- .../geolocation_permission_context_android.h | 13 ++- .../embedded_permission_prompt_flow_model.cc | 2 +- - .../permissions/permission_context_base.cc | 52 ++++++++++-- - .../permissions/permission_context_base.h | 23 +++++- + .../permissions/permission_context_base.cc | 51 ++++++++++-- + .../permissions/permission_context_base.h | 20 ++++- components/permissions/permission_prompt.h | 3 +- components/permissions/permission_request.cc | 30 ++++++- components/permissions/permission_request.h | 16 +++- .../permissions/permission_request_manager.cc | 45 ++++++---- .../permissions/permission_request_manager.h | 11 ++- - 38 files changed, 493 insertions(+), 71 deletions(-) + 38 files changed, 489 insertions(+), 71 deletions(-) diff --git a/chrome/browser/permissions/last_tab_standing_tracker.cc b/chrome/browser/permissions/last_tab_standing_tracker.cc --- a/chrome/browser/permissions/last_tab_standing_tracker.cc @@ -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 -@@ -281,7 +281,7 @@ void PermissionPromptBubbleBaseView::RunButtonCallback(int button_id) { +@@ -297,7 +297,7 @@ void PermissionPromptBubbleBaseView::RunButtonCallback(int button_id) { delegate_->Accept(); return; case PermissionDialogButton::kAcceptOnce: @@ -264,18 +264,18 @@ diff --git a/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_v + delegate_->AcceptThisTime(content_settings::mojom::LifetimeMode::ONLY_THIS_TIME); return; case PermissionDialogButton::kDeny: - delegate_->Deny(); + #if BUILDFLAG(IS_CHROMEOS) diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/PermissionInfo.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/PermissionInfo.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/PermissionInfo.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/PermissionInfo.java -@@ -10,6 +10,7 @@ import org.chromium.components.content_settings.ContentSettingValues; - import org.chromium.components.content_settings.ContentSettingsType; - import org.chromium.components.content_settings.SessionModel; +@@ -12,6 +12,7 @@ import org.chromium.components.content_settings.SessionModel; + import org.chromium.components.permissions.PermissionsAndroidFeatureList; + import org.chromium.components.permissions.PermissionsAndroidFeatureMap; import org.chromium.content_public.browser.BrowserContextHandle; +import org.chromium.components.content_settings.SessionModel; import java.io.Serializable; - + import java.util.Objects; 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 @@ -291,7 +291,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c private void setUpClearDataPreference() { ClearWebsiteStorage preference = findPreference(PREF_CLEAR_DATA); long usage = mSite.getTotalUsage(); -@@ -1286,6 +1291,10 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1290,6 +1295,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 -@@ -643,6 +643,11 @@ +@@ -637,6 +637,11 @@ URL truncated @@ -398,7 +398,7 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.cc 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 -@@ -74,6 +74,12 @@ bool IsConstraintPersistent(const ContentSettingConstraints& constraints); +@@ -73,6 +73,12 @@ bool IsConstraintPersistent(const ContentSettingConstraints& constraints); // Returns whether the given type supports tracking last_visit timestamps. bool CanTrackLastVisit(ContentSettingsType type); @@ -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 -@@ -1220,6 +1220,8 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, +@@ -1234,6 +1234,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 -@@ -149,6 +149,7 @@ class PageInfo : private content_settings::CookieControlsObserver, +@@ -150,6 +150,7 @@ class PageInfo : private content_settings::CookieControlsObserver, content_settings::SettingSource::kNone; // Whether the permission is a one-time grant. bool is_one_time = false; @@ -555,15 +555,15 @@ diff --git a/components/page_info/page_info.h b/components/page_info/page_info.h diff --git a/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogDelegate.java b/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogDelegate.java --- a/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogDelegate.java +++ b/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogDelegate.java -@@ -15,6 +15,7 @@ import org.jni_zero.NativeMethods; - 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.content_settings.ContentSettingsType; import org.chromium.ui.base.WindowAndroid; +import org.chromium.components.content_settings.LifetimeMode; import java.util.ArrayList; - import java.util.List; -@@ -66,6 +67,9 @@ public class PermissionDialogDelegate { + import java.util.Arrays; +@@ -72,6 +73,9 @@ public class PermissionDialogDelegate { // Prompt(screen) variant we want to display on the dialog. private @EmbeddedPromptVariant int mEmbeddedPromptVariant; @@ -573,7 +573,7 @@ diff --git a/components/permissions/android/java/src/org/chromium/components/per /** * Defines a (potentially empty) list of ranges represented as pairs of , * which shall be used by the UI to format the specified ranges as bold text. -@@ -135,6 +139,15 @@ public class PermissionDialogDelegate { +@@ -145,6 +149,15 @@ public class PermissionDialogDelegate { .acceptThisTime(mNativeDelegatePtr, PermissionDialogDelegate.this); } @@ -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 -@@ -117,7 +117,8 @@ void EmbeddedPermissionPromptAndroid::Acknowledge() { +@@ -119,7 +119,8 @@ void EmbeddedPermissionPromptAndroid::Acknowledge() { delegate()->FinalizeCurrentRequests(); } @@ -716,7 +716,7 @@ diff --git a/components/permissions/android/permission_prompt/embedded_permissio diff --git a/components/permissions/android/permission_prompt/permission_dialog_delegate.cc b/components/permissions/android/permission_prompt/permission_dialog_delegate.cc --- a/components/permissions/android/permission_prompt/permission_dialog_delegate.cc +++ b/components/permissions/android/permission_prompt/permission_dialog_delegate.cc -@@ -137,6 +137,11 @@ void PermissionDialogJavaDelegate::UpdateDialog() { +@@ -139,6 +139,11 @@ void PermissionDialogJavaDelegate::UpdateDialog() { static_cast(permission_prompt_->GetEmbeddedPromptVariant())); } @@ -728,7 +728,7 @@ diff --git a/components/permissions/android/permission_prompt/permission_dialog_ // static std::unique_ptr PermissionDialogDelegate::Create( content::WebContents* web_contents, -@@ -166,6 +171,13 @@ PermissionDialogDelegate::CreateForTesting( +@@ -168,6 +173,13 @@ PermissionDialogDelegate::CreateForTesting( void PermissionDialogDelegate::Accept(JNIEnv* env, const JavaParamRef& obj) { CHECK(permission_prompt_); @@ -742,7 +742,7 @@ diff --git a/components/permissions/android/permission_prompt/permission_dialog_ permission_prompt_->Accept(); } -@@ -173,7 +185,10 @@ void PermissionDialogDelegate::AcceptThisTime( +@@ -175,7 +187,10 @@ void PermissionDialogDelegate::AcceptThisTime( JNIEnv* env, const JavaParamRef& obj) { CHECK(permission_prompt_); @@ -754,7 +754,7 @@ diff --git a/components/permissions/android/permission_prompt/permission_dialog_ } void PermissionDialogDelegate::Acknowledge(JNIEnv* env, -@@ -185,6 +200,13 @@ void PermissionDialogDelegate::Acknowledge(JNIEnv* env, +@@ -187,6 +202,13 @@ void PermissionDialogDelegate::Acknowledge(JNIEnv* env, void PermissionDialogDelegate::Deny(JNIEnv* env, const JavaParamRef& obj) { CHECK(permission_prompt_); @@ -782,7 +782,7 @@ diff --git a/components/permissions/android/permission_prompt/permission_dialog_ diff --git a/components/permissions/android/permission_prompt/permission_prompt_android.cc b/components/permissions/android/permission_prompt/permission_prompt_android.cc --- a/components/permissions/android/permission_prompt/permission_prompt_android.cc +++ b/components/permissions/android/permission_prompt/permission_prompt_android.cc -@@ -76,8 +76,12 @@ void PermissionPromptAndroid::Accept() { +@@ -83,8 +83,12 @@ void PermissionPromptAndroid::Accept() { delegate_->Accept(); } @@ -800,7 +800,7 @@ diff --git a/components/permissions/android/permission_prompt/permission_prompt_ diff --git a/components/permissions/android/permission_prompt/permission_prompt_android.h b/components/permissions/android/permission_prompt/permission_prompt_android.h --- a/components/permissions/android/permission_prompt/permission_prompt_android.h +++ b/components/permissions/android/permission_prompt/permission_prompt_android.h -@@ -54,9 +54,10 @@ class PermissionPromptAndroid : public PermissionPrompt { +@@ -55,9 +55,10 @@ class PermissionPromptAndroid : public PermissionPrompt { const; virtual void Closing(); virtual void Accept(); @@ -842,7 +842,7 @@ diff --git a/components/permissions/android/permissions_android_strings.grd b/co diff --git a/components/permissions/contexts/geolocation_permission_context_android.cc b/components/permissions/contexts/geolocation_permission_context_android.cc --- a/components/permissions/contexts/geolocation_permission_context_android.cc +++ b/components/permissions/contexts/geolocation_permission_context_android.cc -@@ -168,7 +168,20 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet( +@@ -193,7 +193,20 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet( bool is_one_time, bool is_final_decision) { DCHECK(is_final_decision); @@ -860,12 +860,12 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr + ContentSetting content_setting, + bool is_one_time, bool is_final_decision, + content_settings::mojom::LifetimeMode lifetime_option) { - bool is_default_search = IsRequestingOriginDSE(requesting_origin); + bool is_default_search = + IsRequestingOriginDSE(request_data.requesting_origin); if (content_setting == CONTENT_SETTING_ALLOW && - !location_settings_->IsSystemLocationSettingEnabled()) { -@@ -181,7 +194,8 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet( - if (IsInLocationSettingsBackOff(is_default_search)) { - FinishNotifyPermissionSet(id, requesting_origin, embedding_origin, +@@ -208,7 +221,8 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet( + FinishNotifyPermissionSet(request_data.id, request_data.requesting_origin, + request_data.embedding_origin, std::move(callback), false /* persist */, - CONTENT_SETTING_BLOCK, is_one_time); + CONTENT_SETTING_BLOCK, @@ -873,9 +873,9 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr return; } -@@ -199,7 +213,8 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet( - !location_settings_dialog_callback_.is_null()) { - FinishNotifyPermissionSet(id, requesting_origin, embedding_origin, +@@ -228,7 +242,8 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet( + FinishNotifyPermissionSet(request_data.id, request_data.requesting_origin, + request_data.embedding_origin, std::move(callback), false /* persist */, - CONTENT_SETTING_BLOCK, is_one_time); + CONTENT_SETTING_BLOCK, @@ -883,23 +883,23 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr return; } -@@ -211,13 +226,13 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet( - base::BindOnce( +@@ -241,13 +256,13 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet( &GeolocationPermissionContextAndroid::OnLocationSettingsDialogShown, - weak_factory_.GetWeakPtr(), requesting_origin, embedding_origin, -- persist, content_setting, is_one_time)); -+ persist, content_setting, is_one_time, lifetime_option)); + weak_factory_.GetWeakPtr(), request_data.requesting_origin, + request_data.embedding_origin, persist, content_setting, +- is_one_time)); ++ is_one_time, lifetime_option)); return; } - FinishNotifyPermissionSet(id, requesting_origin, embedding_origin, - std::move(callback), persist, content_setting, -- is_one_time); -+ is_one_time, lifetime_option); + FinishNotifyPermissionSet(request_data.id, request_data.requesting_origin, + request_data.embedding_origin, std::move(callback), +- persist, content_setting, is_one_time); ++ persist, content_setting, is_one_time, lifetime_option); } content::PermissionResult -@@ -390,7 +405,7 @@ void GeolocationPermissionContextAndroid::OnLocationSettingsDialogShown( +@@ -425,7 +440,7 @@ void GeolocationPermissionContextAndroid::OnLocationSettingsDialogShown( const GURL& embedding_origin, bool persist, ContentSetting content_setting, @@ -908,7 +908,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr LocationSettingsDialogOutcome prompt_outcome) { bool is_default_search = IsRequestingOriginDSE(requesting_origin); if (prompt_outcome == GRANTED) { -@@ -409,7 +424,8 @@ void GeolocationPermissionContextAndroid::OnLocationSettingsDialogShown( +@@ -444,7 +459,8 @@ void GeolocationPermissionContextAndroid::OnLocationSettingsDialogShown( FinishNotifyPermissionSet(location_settings_dialog_request_id_, requesting_origin, embedding_origin, std::move(location_settings_dialog_callback_), @@ -918,7 +918,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr location_settings_dialog_request_id_ = PermissionRequestID(content::GlobalRenderFrameHostId(0, 0), -@@ -423,10 +439,10 @@ void GeolocationPermissionContextAndroid::FinishNotifyPermissionSet( +@@ -458,8 +474,8 @@ void GeolocationPermissionContextAndroid::FinishNotifyPermissionSet( BrowserPermissionCallback callback, bool persist, ContentSetting content_setting, @@ -926,16 +926,22 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr - GeolocationPermissionContext::NotifyPermissionSet( + bool is_one_time, content_settings::mojom::LifetimeMode lifetime_option) { + GeolocationPermissionContext::NotifyPermissionSetWithLifetime( - id, requesting_origin, embedding_origin, std::move(callback), persist, -- content_setting, is_one_time, /*is_final_decision=*/true); -+ content_setting, is_one_time, /*is_final_decision=*/true, lifetime_option); + PermissionRequestData(this, id, + content::PermissionRequestDescription( + content::PermissionDescriptorUtil:: +@@ -467,7 +483,7 @@ void GeolocationPermissionContextAndroid::FinishNotifyPermissionSet( + blink::PermissionType::GEOLOCATION)), + requesting_origin), + std::move(callback), persist, content_setting, is_one_time, +- /*is_final_decision=*/true); ++ /*is_final_decision=*/true, lifetime_option); } void GeolocationPermissionContextAndroid::SetLocationSettingsForTesting( diff --git a/components/permissions/contexts/geolocation_permission_context_android.h b/components/permissions/contexts/geolocation_permission_context_android.h --- a/components/permissions/contexts/geolocation_permission_context_android.h +++ b/components/permissions/contexts/geolocation_permission_context_android.h -@@ -89,6 +89,15 @@ class GeolocationPermissionContextAndroid +@@ -93,6 +93,15 @@ class GeolocationPermissionContextAndroid ContentSetting content_setting, bool is_one_time, bool is_final_decision) override; @@ -951,7 +957,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr content::PermissionResult UpdatePermissionStatusWithDeviceStatus( content::WebContents* web_contents, content::PermissionResult result, -@@ -134,6 +143,7 @@ class GeolocationPermissionContextAndroid +@@ -138,6 +147,7 @@ class GeolocationPermissionContextAndroid bool persist, ContentSetting content_setting, bool is_one_time, @@ -959,7 +965,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr LocationSettingsDialogOutcome prompt_outcome); void FinishNotifyPermissionSet(const PermissionRequestID& id, -@@ -142,7 +152,8 @@ class GeolocationPermissionContextAndroid +@@ -146,7 +156,8 @@ class GeolocationPermissionContextAndroid BrowserPermissionCallback callback, bool persist, ContentSetting content_setting, @@ -984,7 +990,7 @@ 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 -@@ -271,6 +271,17 @@ GURL PermissionContextBase::GetEffectiveEmbedderOrigin( +@@ -273,6 +273,17 @@ GURL PermissionContextBase::GetEffectiveEmbedderOrigin( return PermissionUtil::GetLastCommittedOriginAsURL(rfh->GetMainFrame()); } @@ -1000,49 +1006,48 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm +} + content::PermissionResult PermissionContextBase::GetPermissionStatus( + const PermissionResolver& resolver, content::RenderFrameHost* render_frame_host, - const GURL& requesting_origin, -@@ -530,7 +541,8 @@ void PermissionContextBase::PermissionDecided(const PermissionRequestID& id, - const GURL& embedding_origin, - ContentSetting content_setting, - bool is_one_time, -- bool is_final_decision) { -+ bool is_final_decision, -+ content_settings::mojom::LifetimeMode lifetime_option) { +@@ -540,7 +551,8 @@ void PermissionContextBase::PermissionDecided( + ContentSetting content_setting, + bool is_one_time, + bool is_final_decision, +- const PermissionRequestData& request_data) { ++ const PermissionRequestData& request_data, ++ content_settings::mojom::LifetimeMode lifetime_option) { DCHECK(content_setting == CONTENT_SETTING_ALLOW || content_setting == CONTENT_SETTING_BLOCK || content_setting == CONTENT_SETTING_DEFAULT); -@@ -545,13 +557,14 @@ void PermissionContextBase::PermissionDecided(const PermissionRequestID& id, +@@ -556,12 +568,13 @@ void PermissionContextBase::PermissionDecided( // missing if a permission prompt was preignored and we already notified an // origin about it. if (request->second.second) { -- NotifyPermissionSet(id, requesting_origin, embedding_origin, -+ NotifyPermissionSetWithLifetime(id, requesting_origin, embedding_origin, - std::move(request->second.second), persist, -- content_setting, is_one_time, is_final_decision); -+ content_setting, is_one_time, is_final_decision, +- NotifyPermissionSet(request_data, std::move(request->second.second), ++ NotifyPermissionSetWithLifetime(request_data, std::move(request->second.second), + persist, content_setting, is_one_time, +- is_final_decision); ++ is_final_decision, + lifetime_option); } else { -- NotifyPermissionSet(id, requesting_origin, embedding_origin, -+ NotifyPermissionSetWithLifetime(id, requesting_origin, embedding_origin, - base::DoNothing(), persist, content_setting, -- is_one_time, is_final_decision); -+ is_one_time, is_final_decision, lifetime_option); +- NotifyPermissionSet(request_data, base::DoNothing(), persist, +- content_setting, is_one_time, is_final_decision); ++ NotifyPermissionSetWithLifetime(request_data, base::DoNothing(), persist, ++ content_setting, is_one_time, is_final_decision, lifetime_option); } } -@@ -632,11 +645,27 @@ void PermissionContextBase::NotifyPermissionSet( +@@ -652,10 +665,26 @@ void PermissionContextBase::NotifyPermissionSet( ContentSetting content_setting, bool is_one_time, bool is_final_decision) { + DCHECK(is_one_time == false); -+ NotifyPermissionSetWithLifetime(id, requesting_origin, embedding_origin, std::move(callback), ++ NotifyPermissionSetWithLifetime(request_data, requesting_origin, embedding_origin, std::move(callback), + persist, content_setting, is_one_time, is_final_decision, + content_settings::mojom::LifetimeMode::ALWAYS); +} + +void PermissionContextBase::NotifyPermissionSetWithLifetime( -+ const PermissionRequestID& id, ++ const PermissionRequestData& request_data, + const GURL& requesting_origin, + const GURL& embedding_origin, + BrowserPermissionCallback callback, @@ -1054,29 +1059,27 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm DCHECK_CURRENTLY_ON(content::BrowserThread::UI); if (persist) { - UpdateContentSetting(requesting_origin, embedding_origin, content_setting, -- is_one_time); -+ is_one_time, lifetime_option); +- UpdateContentSetting(request_data, content_setting, is_one_time); ++ UpdateContentSetting(request_data, content_setting, is_one_time, lifetime_option); } if (is_final_decision) { -@@ -677,6 +706,15 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin, - const GURL& embedding_origin, - ContentSetting content_setting, - bool is_one_time) { -+ UpdateContentSetting(requesting_origin, embedding_origin, content_setting, +@@ -696,6 +725,14 @@ void PermissionContextBase::UpdateContentSetting( + const PermissionRequestData& request_data, + ContentSetting content_setting, + bool is_one_time) { ++ UpdateContentSetting(request_data, content_setting, + is_one_time, content_settings::mojom::LifetimeMode::ALWAYS); +} + -+void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin, -+ const GURL& embedding_origin, ++void PermissionContextBase::UpdateContentSetting(const PermissionRequestData& request_data, + ContentSetting content_setting, + bool is_one_time, + content_settings::mojom::LifetimeMode lifetime_option) { - DCHECK_EQ(requesting_origin, requesting_origin.DeprecatedGetOriginAsURL()); - DCHECK_EQ(embedding_origin, embedding_origin.DeprecatedGetOriginAsURL()); - DCHECK(content_setting == CONTENT_SETTING_ALLOW || -@@ -686,6 +724,8 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin, + DCHECK_EQ(request_data.requesting_origin, + request_data.requesting_origin.DeprecatedGetOriginAsURL()); + DCHECK_EQ(request_data.embedding_origin, +@@ -707,6 +744,8 @@ void PermissionContextBase::UpdateContentSetting( constraints.set_session_model( is_one_time ? content_settings::mojom::SessionModel::ONE_TIME : content_settings::mojom::SessionModel::DURABLE); @@ -1088,37 +1091,34 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm diff --git a/components/permissions/permission_context_base.h b/components/permissions/permission_context_base.h --- a/components/permissions/permission_context_base.h +++ b/components/permissions/permission_context_base.h -@@ -169,6 +169,15 @@ class PermissionContextBase : public content_settings::Observer { +@@ -188,6 +188,13 @@ class PermissionContextBase : public content_settings::Observer { // Updates stored content setting if persist is set, updates tab indicators // and runs the callback to finish the request. -+ virtual void NotifyPermissionSetWithLifetime(const PermissionRequestID& id, -+ const GURL& requesting_origin, -+ const GURL& embedding_origin, -+ BrowserPermissionCallback callback, -+ bool persist, -+ ContentSetting content_setting, -+ bool is_one_time, -+ bool is_final_decision, -+ content_settings::mojom::LifetimeMode lifetime_option); - virtual void NotifyPermissionSet(const PermissionRequestID& id, - const GURL& requesting_origin, - const GURL& embedding_origin, -@@ -190,6 +199,11 @@ class PermissionContextBase : public content_settings::Observer { ++ virtual void NotifyPermissionSetWithLifetime(const PermissionRequestData& request_data, ++ BrowserPermissionCallback callback, ++ bool persist, ++ ContentSetting content_setting, ++ bool is_one_time, ++ bool is_final_decision, ++ content_settings::mojom::LifetimeMode lifetime_option); + virtual void NotifyPermissionSet(const PermissionRequestData& request_data, + BrowserPermissionCallback callback, + bool persist, +@@ -207,6 +214,10 @@ class PermissionContextBase : public content_settings::Observer { // Store the decided permission as a content setting. // virtual since the permission might be stored with different restrictions // (for example for desktop notifications). -+ void UpdateContentSetting(const GURL& requesting_origin, -+ const GURL& embedding_origin, -+ ContentSetting content_setting, -+ bool is_one_time, -+ content_settings::mojom::LifetimeMode lifetime_option); - virtual void UpdateContentSetting(const GURL& requesting_origin, - const GURL& embedding_origin, ++ void UpdateContentSetting(const PermissionRequestData& request_data, ++ ContentSetting content_setting, ++ bool is_one_time, ++ content_settings::mojom::LifetimeMode lifetime_option); + virtual void UpdateContentSetting(const PermissionRequestData& request_data, ContentSetting content_setting, -@@ -220,6 +234,12 @@ class PermissionContextBase : public content_settings::Observer { + bool is_one_time); +@@ -236,6 +247,12 @@ class PermissionContextBase : public content_settings::Observer { PermissionRequest::PermissionDecidedCallback permission_decided_callback, - base::OnceClosure delete_callback) const; + base::OnceClosure request_finished_callback) const; + virtual std::unique_ptr CreatePermissionRequest( + content::WebContents* web_contents, @@ -1129,12 +1129,12 @@ 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; -@@ -256,7 +276,8 @@ class PermissionContextBase : public content_settings::Observer { - const GURL& embedding_origin, - ContentSetting content_setting, +@@ -270,7 +287,8 @@ class PermissionContextBase : public content_settings::Observer { + void PermissionDecided(ContentSetting content_setting, bool is_one_time, -- bool is_final_decision); -+ bool is_final_decision, + bool is_final_decision, +- const PermissionRequestData& request_data); ++ const PermissionRequestData& request_data, + content_settings::mojom::LifetimeMode lifetime_option); void NotifyObservers(const ContentSettingsPattern& primary_pattern, @@ -1156,8 +1156,8 @@ diff --git a/components/permissions/permission_prompt.h b/components/permissions diff --git a/components/permissions/permission_request.cc b/components/permissions/permission_request.cc --- a/components/permissions/permission_request.cc +++ b/components/permissions/permission_request.cc -@@ -43,6 +43,14 @@ PermissionRequest::PermissionRequest( - delete_callback_(std::move(delete_callback)), +@@ -32,6 +32,14 @@ PermissionRequest::PermissionRequest( + request_finished_callback_(std::move(request_finished_callback)), uses_automatic_embargo_(uses_automatic_embargo) {} +PermissionRequest::PermissionRequest( @@ -1169,9 +1169,9 @@ diff --git a/components/permissions/permission_request.cc b/components/permissio + delete_callback_(std::move(delete_callback)) {} + PermissionRequest::~PermissionRequest() { - DCHECK(delete_callback_.is_null()); + std::move(request_finished_callback_).Run(); } -@@ -423,19 +431,37 @@ bool PermissionRequest::ShouldUseTwoOriginPrompt() const { +@@ -412,19 +420,37 @@ bool PermissionRequest::ShouldUseTwoOriginPrompt() const { return request_type() == RequestType::kStorageAccess; } @@ -1185,7 +1185,7 @@ diff --git a/components/permissions/permission_request.cc b/components/permissio + } std::move(permission_decided_callback_) .Run(CONTENT_SETTING_ALLOW, is_one_time, - /*is_final_decision=*/true); + /*is_final_decision=*/true, /*request_data=*/*data_); } -void PermissionRequest::PermissionDenied() { @@ -1198,7 +1198,7 @@ diff --git a/components/permissions/permission_request.cc b/components/permissio + } std::move(permission_decided_callback_) .Run(CONTENT_SETTING_BLOCK, /*is_one_time=*/false, - /*is_final_decision=*/true); + /*is_final_decision=*/true, /*request_data=*/*data_); } void PermissionRequest::Cancelled(bool is_final_decision) { @@ -1210,13 +1210,13 @@ diff --git a/components/permissions/permission_request.cc b/components/permissio + } if (permission_decided_callback_) { permission_decided_callback_.Run(CONTENT_SETTING_DEFAULT, - /*is_one_time=*/false, is_final_decision); + /*is_one_time=*/false, is_final_decision, diff --git a/components/permissions/permission_request.h b/components/permissions/permission_request.h --- a/components/permissions/permission_request.h +++ b/components/permissions/permission_request.h -@@ -44,6 +44,11 @@ class PermissionRequest { - bool /*is_one_time*/, - bool /*is_final_decision*/)>; +@@ -47,6 +47,11 @@ class PermissionRequest { + bool /*is_final_decision*/, + const PermissionRequestData& /*request_data*/)>; + using PermissionDecidedCallbackWithLifetime = + base::OnceCallbackHasSwitch( switches::kDenyPermissionPrompts)) { - request->PermissionDenied(); + request->PermissionDenied(/*is_one_time*/false, content_settings::mojom::LifetimeMode::ALWAYS); - request->RequestFinished(); return; } -@@ -248,7 +248,7 @@ void PermissionRequestManager::AddRequest( + +@@ -258,7 +258,7 @@ void PermissionRequestManager::AddRequest( if (should_auto_approve_request) { if (should_auto_approve_request == PermissionAction::GRANTED) { - request->PermissionGranted(/*is_one_time=*/true); + request->PermissionGranted(/*is_one_time=*/true, content_settings::mojom::LifetimeMode::UNTIL_ORIGIN_CLOSED); } - request->RequestFinished(); return; -@@ -611,7 +611,8 @@ void PermissionRequestManager::Accept() { + } +@@ -623,7 +623,8 @@ void PermissionRequestManager::Accept() { (*requests_iter)->request_type(), PermissionAction::GRANTED); - PermissionGrantedIncludingDuplicates(*requests_iter, + PermissionGrantedIncludingDuplicates(requests_iter->get(), - /*is_one_time=*/false); + /*is_one_time=*/false, + content_settings::mojom::LifetimeMode::ALWAYS); #if !BUILDFLAG(IS_ANDROID) std::optional content_settings_type = -@@ -629,7 +630,7 @@ void PermissionRequestManager::Accept() { +@@ -641,7 +642,7 @@ void PermissionRequestManager::Accept() { CurrentRequestsDecided(PermissionAction::GRANTED); } -void PermissionRequestManager::AcceptThisTime() { +void PermissionRequestManager::AcceptThisTime(content_settings::mojom::LifetimeMode mode) { - if (ignore_callbacks_from_prompt_) + if (ignore_callbacks_from_prompt_) { return; - DCHECK(view_); -@@ -642,7 +643,8 @@ void PermissionRequestManager::AcceptThisTime() { + } +@@ -655,7 +656,8 @@ void PermissionRequestManager::AcceptThisTime() { (*requests_iter)->request_type(), PermissionAction::GRANTED_ONCE); - PermissionGrantedIncludingDuplicates(*requests_iter, + PermissionGrantedIncludingDuplicates(requests_iter->get(), - /*is_one_time=*/true); + /*is_one_time=*/true, + mode); } NotifyRequestDecided(PermissionAction::GRANTED_ONCE); -@@ -650,6 +652,15 @@ void PermissionRequestManager::AcceptThisTime() { +@@ -663,6 +665,15 @@ void PermissionRequestManager::AcceptThisTime() { } void PermissionRequestManager::Deny() { @@ -1323,26 +1323,26 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p + +void PermissionRequestManager::Deny_(bool is_one_time, + content_settings::mojom::LifetimeMode lifetime_option) { - if (ignore_callbacks_from_prompt_) + if (ignore_callbacks_from_prompt_) { return; - DCHECK(view_); -@@ -672,7 +683,7 @@ void PermissionRequestManager::Deny() { + } +@@ -685,7 +696,7 @@ void PermissionRequestManager::Deny() { StorePermissionActionForUMA((*requests_iter)->requesting_origin(), (*requests_iter)->request_type(), PermissionAction::DENIED); -- PermissionDeniedIncludingDuplicates(*requests_iter); -+ PermissionDeniedIncludingDuplicates(*requests_iter, is_one_time, lifetime_option); +- PermissionDeniedIncludingDuplicates(requests_iter->get()); ++ PermissionDeniedIncludingDuplicates(requests_iter->get(), is_one_time, lifetime_option); } NotifyRequestDecided(PermissionAction::DENIED); -@@ -1271,32 +1282,32 @@ PermissionRequestManager::VisitDuplicateRequests( +@@ -1300,32 +1311,32 @@ PermissionRequestManager::VisitDuplicateRequests( void PermissionRequestManager::PermissionGrantedIncludingDuplicates( PermissionRequest* request, - bool is_one_time) { + bool is_one_time, content_settings::mojom::LifetimeMode lifetime_option) { - DCHECK_EQ(1ul, std::ranges::count(requests_, request) + - pending_permission_requests_.Count(request)) + CHECK(RequestExistsExactlyOnce(request, pending_permission_requests_, + requests_)) << "Only requests in [pending_permission_]requests_ can have duplicates"; - request->PermissionGranted(is_one_time); + request->PermissionGranted(is_one_time, lifetime_option); @@ -1350,9 +1350,9 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p base::BindRepeating( - [](bool is_one_time, + [](bool is_one_time, content_settings::mojom::LifetimeMode lifetime_option, - const base::WeakPtr& weak_request) { -- weak_request->PermissionGranted(is_one_time); -+ weak_request->PermissionGranted(is_one_time, lifetime_option); + const std::unique_ptr& request) { +- request->PermissionGranted(is_one_time); ++ request->PermissionGranted(is_one_time, lifetime_option); }, - is_one_time), + is_one_time, lifetime_option), @@ -1362,23 +1362,23 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p void PermissionRequestManager::PermissionDeniedIncludingDuplicates( - PermissionRequest* request) { + PermissionRequest* request, bool is_one_time, content_settings::mojom::LifetimeMode lifetime_option) { - DCHECK_EQ(1ul, std::ranges::count(requests_, request) + - pending_permission_requests_.Count(request)) + CHECK(RequestExistsExactlyOnce(request, pending_permission_requests_, + requests_)) << "Only requests in [pending_permission_]requests_ can have duplicates"; - request->PermissionDenied(); + request->PermissionDenied(is_one_time, lifetime_option); VisitDuplicateRequests( base::BindRepeating( -- [](const base::WeakPtr& weak_request) { -- weak_request->PermissionDenied(); +- [](const std::unique_ptr& request) { +- request->PermissionDenied(); - }), -+ [](bool is_one_time, content_settings::mojom::LifetimeMode lifetime_option, const base::WeakPtr& weak_request) { -+ weak_request->PermissionDenied(is_one_time, lifetime_option); ++ [](bool is_one_time, content_settings::mojom::LifetimeMode lifetime_option, const std::unique_ptr& request) { ++ request->PermissionDenied(is_one_time, lifetime_option); + }, is_one_time, lifetime_option), request); } -@@ -1566,7 +1577,7 @@ void PermissionRequestManager::DoAutoResponseForTesting() { +@@ -1596,7 +1607,7 @@ void PermissionRequestManager::DoAutoResponseForTesting() { } switch (auto_response_for_test_) { case ACCEPT_ONCE: @@ -1402,7 +1402,7 @@ diff --git a/components/permissions/permission_request_manager.h b/components/pe void Dismiss() override; void Ignore() override; void FinalizeCurrentRequests() override; -@@ -383,9 +385,12 @@ class PermissionRequestManager +@@ -394,9 +396,12 @@ class PermissionRequestManager // Calls PermissionGranted on a request and all its duplicates. void PermissionGrantedIncludingDuplicates(PermissionRequest* request, 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 ce8c4274..f1bcca26 100644 --- a/build/patches/Add-menu-item-to-bookmark-all-tabs.patch +++ b/build/patches/Add-menu-item-to-bookmark-all-tabs.patch @@ -59,7 +59,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 -@@ -102,6 +102,7 @@ import org.chromium.chrome.browser.bookmarks.BookmarkPane; +@@ -103,6 +103,7 @@ import org.chromium.chrome.browser.bookmarks.BookmarkPane; import org.chromium.chrome.browser.bookmarks.BookmarkUtils; import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.compositor.CompositorViewHolder; @@ -67,17 +67,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.chrome.browser.compositor.layouts.Layout; import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChrome; import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromePhone; -@@ -273,6 +274,9 @@ import org.chromium.chrome.browser.ui.RootUiCoordinator; - import org.chromium.chrome.browser.ui.appmenu.AppMenuPropertiesDelegate; +@@ -275,6 +276,9 @@ 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; + import org.chromium.chrome.browser.ui.extensions.ExtensionKeybindingRegistry; +import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar; +import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; +import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarController; import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityClient; import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityExtras.IntentOrigin; import org.chromium.chrome.browser.ui.signin.BottomSheetSigninAndHistorySyncConfig; -@@ -282,6 +286,8 @@ import org.chromium.chrome.browser.undo_tab_close_snackbar.UndoBarController; +@@ -284,6 +288,8 @@ import org.chromium.chrome.browser.undo_tab_close_snackbar.UndoBarController; import org.chromium.chrome.browser.usage_stats.UsageStatsService; import org.chromium.chrome.browser.util.ChromeAccessibilityUtil; import org.chromium.chrome.browser.xr.XrLayoutStateObserver; @@ -86,16 +86,16 @@ 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; -@@ -3316,6 +3322,8 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -3394,6 +3400,8 @@ public class ChromeTabbedActivity extends ChromeActivity { getTabModelSelectorSupplier().get(), closeAllTabsRunnable); RecordUserAction.record("MobileMenuCloseAllTabs"); + } else if (id == R.id.bookmark_all_tabs_menu_id) { + bookmarkAllTabs(); } else if (id == R.id.close_all_incognito_tabs_menu_id) { - // Close only incognito tabs - Runnable closeAllTabsRunnable = -@@ -3418,6 +3426,41 @@ public class ChromeTabbedActivity extends ChromeActivity { + boolean allowUndo = TabClosureParamsUtils.shouldAllowUndo(triggeringMotion); + +@@ -3502,6 +3510,41 @@ public class ChromeTabbedActivity extends ChromeActivity { getTabModalLifetimeHandler().onOmniboxFocusChanged(hasFocus); } @@ -140,7 +140,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browser/bookmarks/android/bookmark_bridge.cc --- a/chrome/browser/bookmarks/android/bookmark_bridge.cc +++ b/chrome/browser/bookmarks/android/bookmark_bridge.cc -@@ -326,6 +326,33 @@ jboolean BookmarkBridge::AreAccountBookmarkFoldersActive(JNIEnv* env) { +@@ -391,6 +391,33 @@ jboolean BookmarkBridge::AreAccountBookmarkFoldersActive(JNIEnv* env) { return bookmark_model_->account_mobile_node() != nullptr; } @@ -174,7 +174,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse base::android::ScopedJavaLocalRef BookmarkBridge::GetMostRecentlyAddedUserBookmarkIdForUrl(JNIEnv* env, const GURL& url) { -@@ -438,6 +465,7 @@ void BookmarkBridge::GetAllFoldersWithDepths( +@@ -503,6 +530,7 @@ void BookmarkBridge::GetAllFoldersWithDepths( // Vector to temporarily contain all child bookmarks at same level for sorting std::vector bookmarks = { bookmark_model_->mobile_node(), @@ -182,7 +182,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse bookmark_model_->bookmark_bar_node(), bookmark_model_->other_node(), }; -@@ -546,6 +574,9 @@ std::vector BookmarkBridge::GetTopLevelFolderIdsImpl( +@@ -611,6 +639,9 @@ std::vector BookmarkBridge::GetTopLevelFolderIdsImpl( top_level_folders.push_back(other_node); } @@ -192,7 +192,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse const BookmarkNode* reading_list_node = local_or_syncable_reading_list_manager_->GetRoot(); if (IsPermanentFolderVisible( -@@ -1273,6 +1304,17 @@ void BookmarkBridge::GetBookmarksOfType( +@@ -1338,6 +1369,17 @@ void BookmarkBridge::GetBookmarksOfType( AddBookmarkNodesToBookmarkIdList(env, j_list, results); } @@ -238,7 +238,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java --- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java +++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java -@@ -18,6 +18,7 @@ import org.jni_zero.JniType; +@@ -16,6 +16,7 @@ import org.jni_zero.JniType; import org.jni_zero.NativeMethods; import org.chromium.base.ContextUtils; @@ -254,15 +254,15 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows import org.chromium.components.bookmarks.BookmarkId; import org.chromium.components.bookmarks.BookmarkItem; import org.chromium.components.bookmarks.BookmarkType; -@@ -46,6 +48,7 @@ import java.util.function.BiConsumer; +@@ -47,6 +49,7 @@ import java.util.function.BiConsumer; class BookmarkBridge { - private static OneshotSupplierImpl + private static final OneshotSupplierImpl sPartnerBookmarkIteratorSupplier = new OneshotSupplierImpl<>(); + private static final String TAG = "BookmarkBridge"; private final ObserverList mObservers = new ObserverList<>(); private final Profile mProfile; -@@ -384,6 +387,16 @@ class BookmarkBridge { +@@ -385,6 +388,16 @@ class BookmarkBridge { return mMobileFolderId; } @@ -277,9 +277,9 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows + } + /** Returns Id representing the special "other" folder from bookmark model. */ - public BookmarkId getOtherFolderId() { + public @Nullable BookmarkId getOtherFolderId() { ThreadUtils.assertOnUiThread(); -@@ -895,6 +908,29 @@ class BookmarkBridge { +@@ -898,6 +911,29 @@ class BookmarkBridge { .addToReadingList(mNativeBookmarkBridge, parentId, title, url); } @@ -309,7 +309,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows /** * Helper method to mark an item as read. * -@@ -1112,6 +1148,9 @@ class BookmarkBridge { +@@ -1115,6 +1151,9 @@ class BookmarkBridge { BookmarkId getMostRecentlyAddedUserBookmarkIdForUrl( long nativeBookmarkBridge, @JniType("GURL") GURL url); @@ -319,7 +319,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows BookmarkItem getBookmarkById(long nativeBookmarkBridge, long id, int type); void getTopLevelFolderIds( -@@ -1133,6 +1172,8 @@ class BookmarkBridge { +@@ -1136,6 +1175,8 @@ class BookmarkBridge { BookmarkId getRootFolderId(long nativeBookmarkBridge); @@ -331,7 +331,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows diff --git a/chrome/browser/bookmarks/bookmark_html_writer.cc b/chrome/browser/bookmarks/bookmark_html_writer.cc --- a/chrome/browser/bookmarks/bookmark_html_writer.cc +++ b/chrome/browser/bookmarks/bookmark_html_writer.cc -@@ -173,14 +173,15 @@ class Writer : public base::RefCountedThreadSafe { +@@ -169,14 +169,15 @@ class Writer : public base::RefCountedThreadSafe { BookmarkCodec codec; local_bookmarks_ = codec.Encode(model->bookmark_bar_node(), model->other_node(), @@ -349,7 +349,7 @@ diff --git a/chrome/browser/bookmarks/bookmark_html_writer.cc b/chrome/browser/b } else { CHECK(!model->account_other_node()); CHECK(!model->account_mobile_node()); -@@ -214,6 +215,9 @@ class Writer : public base::RefCountedThreadSafe { +@@ -210,6 +211,9 @@ class Writer : public base::RefCountedThreadSafe { base::Value::Dict* mobile_folder_value = local_permanent_folders->FindDict( BookmarkCodec::kMobileBookmarkFolderNameKey); CHECK(mobile_folder_value); @@ -359,7 +359,7 @@ diff --git a/chrome/browser/bookmarks/bookmark_html_writer.cc b/chrome/browser/b base::Value::Dict* account_permanent_folders = account_bookmarks_.FindDict(BookmarkCodec::kRootsKey); -@@ -289,6 +293,10 @@ class Writer : public base::RefCountedThreadSafe { +@@ -285,6 +289,10 @@ class Writer : public base::RefCountedThreadSafe { return bookmark_html_writer::Result::kCouldNotWriteNodes; } @@ -370,7 +370,7 @@ diff --git a/chrome/browser/bookmarks/bookmark_html_writer.cc b/chrome/browser/b DecrementIndent(); if (!Write(kFolderChildrenEnd) || !Write(kNewline)) { -@@ -435,6 +443,7 @@ class Writer : public base::RefCountedThreadSafe { +@@ -431,6 +439,7 @@ class Writer : public base::RefCountedThreadSafe { case BookmarkNode::URL: case BookmarkNode::OTHER_NODE: case BookmarkNode::MOBILE: @@ -378,7 +378,7 @@ diff --git a/chrome/browser/bookmarks/bookmark_html_writer.cc b/chrome/browser/b NOTREACHED(); } -@@ -563,6 +572,7 @@ void BookmarkFaviconFetcher::ExportBookmarks() { +@@ -559,6 +568,7 @@ void BookmarkFaviconFetcher::ExportBookmarks() { ExtractUrls(model->bookmark_bar_node()); ExtractUrls(model->other_node()); ExtractUrls(model->mobile_node()); @@ -440,7 +440,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 -@@ -4525,6 +4525,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4541,6 +4541,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d Select tabs @@ -646,16 +646,16 @@ diff --git a/components/bookmarks/browser/bookmark_load_details.cc b/components/ void UpdateUserFolderStatsRecursively(const BookmarkNode& node, bool top_level, -@@ -60,6 +60,8 @@ BookmarkLoadDetails::BookmarkLoadDetails() - root_node_->Add(BookmarkPermanentNode::CreateOtherBookmarks(/*id=*/0))); +@@ -63,6 +63,8 @@ BookmarkLoadDetails::BookmarkLoadDetails() mobile_folder_node_ = static_cast( - root_node_->Add(BookmarkPermanentNode::CreateMobileBookmarks(/*id=*/0))); + root_node_->Add(BookmarkPermanentNode::CreateMobileBookmarks( + /*id=*/0, /*is_account_node=*/false))); + tabs_collection_folder_node_ = static_cast( + root_node_->Add(BookmarkPermanentNode::CreateTabsCollectionBookmarks(/*id=*/0))); - CHECK_EQ(kNumDefaultTopLevelPermanentFolders, root_node_->children().size()); - } -@@ -106,6 +108,10 @@ void BookmarkLoadDetails::PopulateNodeIdsForLocalOrSyncablePermanentNodes() { + // Set the nodes' `date_added` to the same time so that there is no inherent + // hierarchy in terms of their added time between them. This is relevant for +@@ -119,6 +121,10 @@ void BookmarkLoadDetails::PopulateNodeIdsForLocalOrSyncablePermanentNodes() { if (mobile_folder_node_->id() == 0) { mobile_folder_node_->set_id(max_id_++); } @@ -666,7 +666,7 @@ diff --git a/components/bookmarks/browser/bookmark_load_details.cc b/components/ } void BookmarkLoadDetails::AddManagedNode( -@@ -118,6 +124,7 @@ void BookmarkLoadDetails::AddManagedNode( +@@ -131,6 +137,7 @@ void BookmarkLoadDetails::AddManagedNode( CHECK_NE(bb_node_->id(), 0); CHECK_NE(other_folder_node_->id(), 0); CHECK_NE(mobile_folder_node_->id(), 0); @@ -674,7 +674,7 @@ diff --git a/components/bookmarks/browser/bookmark_load_details.cc b/components/ has_managed_node_ = true; root_node_->Add(std::move(managed_node)); -@@ -125,8 +132,8 @@ void BookmarkLoadDetails::AddManagedNode( +@@ -138,8 +145,8 @@ void BookmarkLoadDetails::AddManagedNode( void BookmarkLoadDetails::CreateIndices() { local_or_syncable_uuid_index_.insert(root_node_.get()); @@ -685,7 +685,7 @@ diff --git a/components/bookmarks/browser/bookmark_load_details.cc b/components/ for (const auto& child : root_node_->children()) { if (child.get() == account_bb_node_ || child.get() == account_other_folder_node_ || -@@ -145,6 +152,7 @@ void BookmarkLoadDetails::ResetPermanentNodePointers() { +@@ -158,6 +165,7 @@ void BookmarkLoadDetails::ResetPermanentNodePointers() { bb_node_ = nullptr; other_folder_node_ = nullptr; mobile_folder_node_ = nullptr; @@ -715,16 +715,16 @@ diff --git a/components/bookmarks/browser/bookmark_load_details.h b/components/b diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmarks/browser/bookmark_model.cc --- a/components/bookmarks/browser/bookmark_model.cc +++ b/components/bookmarks/browser/bookmark_model.cc -@@ -890,7 +890,7 @@ bool BookmarkModel::HasBookmarks() const { - bool BookmarkModel::HasNoUserCreatedBookmarksOrFolders() const { - DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - return bookmark_bar_node_->children().empty() && -- other_node_->children().empty() && mobile_node_->children().empty(); -+ other_node_->children().empty() && mobile_node_->children().empty() && tabs_collection_node_->children().empty(); +@@ -908,7 +908,7 @@ bool BookmarkModel::HasUserCreatedBookmarksOrFolders() const { + (account_bookmark_bar_node_ && + !account_bookmark_bar_node_->children().empty()) || + (account_other_node_ && !account_other_node_->children().empty()) || +- (account_mobile_node_ && !account_mobile_node_->children().empty()); ++ (account_mobile_node_ && !account_mobile_node_->children().empty() && tabs_collection_node_->children().empty()); } bool BookmarkModel::IsBookmarked(const GURL& url) const { -@@ -1222,6 +1222,7 @@ void BookmarkModel::DoneLoading(std::unique_ptr details) { +@@ -1240,6 +1240,7 @@ void BookmarkModel::DoneLoading(std::unique_ptr details) { bookmark_bar_node_ = details->bb_node(); other_node_ = details->other_folder_node(); mobile_node_ = details->mobile_folder_node(); @@ -748,7 +748,7 @@ diff --git a/components/bookmarks/browser/bookmark_model.h b/components/bookmark bool is_root_node(const BookmarkNode* node) const { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); return node == root_; -@@ -611,6 +617,7 @@ class BookmarkModel : public BookmarkUndoProvider, +@@ -628,6 +634,7 @@ class BookmarkModel : public BookmarkUndoProvider, raw_ptr account_bookmark_bar_node_ = nullptr; raw_ptr account_other_node_ = nullptr; raw_ptr account_mobile_node_ = nullptr; @@ -768,8 +768,8 @@ diff --git a/components/bookmarks/browser/bookmark_node.cc b/components/bookmark case BookmarkNode::URL: NOTREACHED(); case BookmarkNode::FOLDER: -@@ -211,6 +213,15 @@ BookmarkPermanentNode::CreateMobileBookmarks(int64_t id) { - l10n_util::GetStringUTF16(IDS_BOOKMARK_BAR_MOBILE_FOLDER_NAME))); +@@ -213,6 +215,15 @@ BookmarkPermanentNode::CreateMobileBookmarks(int64_t id, + is_account_node)); } +// static @@ -795,10 +795,10 @@ diff --git a/components/bookmarks/browser/bookmark_node.h b/components/bookmarks MOBILE }; -@@ -247,6 +248,8 @@ class BookmarkPermanentNode : public BookmarkNode { - int64_t id); +@@ -249,6 +250,8 @@ class BookmarkPermanentNode : public BookmarkNode { static std::unique_ptr CreateMobileBookmarks( - int64_t id); + int64_t id, + bool is_account_node); + static std::unique_ptr CreateTabsCollectionBookmarks( + int64_t id); @@ -850,16 +850,16 @@ diff --git a/components/bookmarks/browser/bookmark_uuids.h b/components/bookmark diff --git a/components/bookmarks/browser/model_loader.cc b/components/bookmarks/browser/model_loader.cc --- a/components/bookmarks/browser/model_loader.cc +++ b/components/bookmarks/browser/model_loader.cc -@@ -71,6 +71,8 @@ std::unique_ptr LoadBookmarks( - BookmarkPermanentNode::CreateOtherBookmarks(0); +@@ -74,6 +74,8 @@ std::unique_ptr LoadBookmarks( std::unique_ptr account_mobile_folder_node = - BookmarkPermanentNode::CreateMobileBookmarks(0); + BookmarkPermanentNode::CreateMobileBookmarks( + 0, /*is_account_node=*/true); + std::unique_ptr tabs_collection_folder_node = + BookmarkPermanentNode::CreateTabsCollectionBookmarks(0); std::optional root_dict = LoadFileToDict(account_file_path); -@@ -78,7 +80,8 @@ std::unique_ptr LoadBookmarks( +@@ -81,7 +83,8 @@ std::unique_ptr LoadBookmarks( if (root_dict.has_value() && codec.Decode(*root_dict, /*already_assigned_ids=*/{}, account_bb_node.get(), account_other_folder_node.get(), @@ -869,7 +869,7 @@ diff --git a/components/bookmarks/browser/model_loader.cc b/components/bookmarks &sync_metadata_str)) { ids_assigned_to_account_nodes = codec.release_assigned_ids(); -@@ -120,7 +123,8 @@ std::unique_ptr LoadBookmarks( +@@ -123,7 +126,8 @@ std::unique_ptr LoadBookmarks( if (root_dict.has_value() && codec.Decode(*root_dict, std::move(ids_assigned_to_account_nodes), details->bb_node(), details->other_folder_node(), diff --git a/build/patches/Add-option-to-force-tablet-UI.patch b/build/patches/Add-option-to-force-tablet-UI.patch index c93f737f..2953685a 100644 --- a/build/patches/Add-option-to-force-tablet-UI.patch +++ b/build/patches/Add-option-to-force-tablet-UI.patch @@ -141,7 +141,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.j diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java -@@ -62,6 +62,25 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting +@@ -65,6 +65,25 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting } } @@ -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 -@@ -783,7 +783,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -787,7 +787,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,15 +184,15 @@ 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 -@@ -117,6 +117,7 @@ import org.chromium.components.tab_group_sync.SavedTabGroup; - import org.chromium.components.tab_group_sync.TabGroupSyncService; +@@ -120,6 +120,7 @@ import org.chromium.components.tab_group_sync.TabGroupSyncService; import org.chromium.components.tab_group_sync.TriggerSource; import org.chromium.components.tab_groups.TabGroupColorId; + import org.chromium.ui.accessibility.AccessibilityState; +import org.chromium.ui.base.DeviceFormFactor; import org.chromium.ui.base.LocalizationUtils; import org.chromium.ui.base.WindowAndroid; - import org.chromium.ui.modaldialog.ModalDialogManager; -@@ -4264,8 +4265,13 @@ public class StripLayoutHelper + import org.chromium.ui.util.ColorUtils; +@@ -4472,8 +4473,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(); @@ -211,7 +211,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java -@@ -97,6 +97,7 @@ import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateMa +@@ -98,6 +98,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,10 +219,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over import org.chromium.ui.base.LocalizationUtils; import org.chromium.ui.base.PageTransition; import org.chromium.ui.base.WindowAndroid; -@@ -468,7 +469,10 @@ public class StripLayoutHelperManager - +@@ -467,7 +468,10 @@ public class StripLayoutHelperManager mIsLayoutOptimizationsEnabled = - ToolbarFeatures.isTabStripWindowLayoutOptimizationEnabled(true); + ToolbarFeatures.isTabStripWindowLayoutOptimizationEnabled( + /* isTablet= */ true, DisplayUtil.isContextInDefaultDisplay(mContext)); - mScrollableStripHeight = res.getDimension(R.dimen.tab_strip_height) / mDensity; + mScrollableStripHeight = + (DeviceFormFactor.isForceTabletUI() @@ -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 -@@ -697,7 +697,9 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -725,7 +725,9 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { @Override public int getControlContainerHeightResource() { @@ -294,7 +294,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.quick_delete.QuickDeleteController; import org.chromium.chrome.browser.quick_delete.QuickDeleteDelegateImpl; -@@ -1625,7 +1627,9 @@ public class RootUiCoordinator +@@ -1645,7 +1647,9 @@ public class RootUiCoordinator if (!mSupportsFindInPageSupplier.getAsBoolean()) return; int stubId = R.id.find_toolbar_stub; @@ -319,7 +319,7 @@ diff --git a/chrome/browser/preferences/BUILD.gn b/chrome/browser/preferences/BU diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java -@@ -314,6 +314,7 @@ public final class ChromePreferenceKeys { +@@ -313,6 +313,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"; @@ -359,7 +359,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java -@@ -57,6 +57,7 @@ public class LegacyChromePreferenceKeys { +@@ -56,6 +56,7 @@ public class LegacyChromePreferenceKeys { ChromePreferenceKeys.FIRST_RUN_FLOW_COMPLETE, ChromePreferenceKeys.FIRST_RUN_FLOW_SIGNIN_SETUP, ChromePreferenceKeys.FIRST_RUN_LIGHTWEIGHT_FLOW_COMPLETE, @@ -378,10 +378,10 @@ diff --git a/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/c import org.chromium.ui.InsetObserver; import org.chromium.ui.InsetObserver.WindowInsetsConsumer; import org.chromium.ui.InsetsRectProvider; -@@ -260,6 +261,7 @@ public class AppHeaderCoordinator - private static @DesktopWindowHeuristicResult int checkIsInDesktopWindow( +@@ -267,6 +268,7 @@ public class AppHeaderCoordinator InsetsRectProvider insetsRectProvider, - @DesktopWindowHeuristicResult int currentResult) { + @DesktopWindowHeuristicResult int currentResult, + boolean isOnExternalDisplay) { + if (DeviceFormFactor.isForceTabletUI()) return DesktopWindowHeuristicResult.IN_DESKTOP_WINDOW; @DesktopWindowHeuristicResult int newResult; @@ -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 -@@ -847,7 +847,7 @@ public class LocationBarCoordinator +@@ -857,7 +857,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 -@@ -1660,6 +1660,13 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1654,6 +1654,13 @@ Your Google account may have other forms of browsing history like searches and a Privacy guide explanation closed @@ -498,7 +498,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/res/values/dimens.xml b/chro diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ControlContainer.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ControlContainer.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ControlContainer.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ControlContainer.java -@@ -26,7 +26,7 @@ public interface ControlContainer { +@@ -27,7 +27,7 @@ public interface ControlContainer { * * @param toolbarLayoutId The ID of the toolbar layout to use. */ @@ -518,7 +518,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow import android.graphics.Canvas; import android.graphics.Color; import android.graphics.PorterDuff; -@@ -154,8 +155,25 @@ public class ToolbarControlContainer extends OptimizedFrameLayout +@@ -157,8 +158,25 @@ public class ToolbarControlContainer extends OptimizedFrameLayout @Override @Initializer @@ -542,13 +542,13 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow + if (view != null) + ((MarginLayoutParams)view.getLayoutParams()).topMargin = tab_strip_height; + } - mToolbarContainer = - (ToolbarViewResourceFrameLayout) findViewById(R.id.toolbar_container); + mToolbarContainer = findViewById(R.id.toolbar_container); ViewStub toolbarStub = findViewById(R.id.toolbar_stub); + toolbarStub.setLayoutResource(toolbarLayoutId); diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java -@@ -65,6 +65,7 @@ import org.chromium.chrome.browser.util.BrowserUiUtils.ModuleTypeOnStartAndNtp; +@@ -68,6 +68,7 @@ import org.chromium.chrome.browser.util.BrowserUiUtils.ModuleTypeOnStartAndNtp; import org.chromium.components.feature_engagement.Tracker; import org.chromium.ui.base.ViewUtils; import org.chromium.ui.util.MotionEventUtils; @@ -556,7 +556,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow import org.chromium.ui.util.TokenHolder; import org.chromium.url.GURL; -@@ -571,7 +572,9 @@ public abstract class ToolbarLayout extends FrameLayout +@@ -586,7 +587,9 @@ public abstract class ToolbarLayout extends FrameLayout * not have a tab strip. */ protected int getTabStripHeightFromResource() { @@ -627,7 +627,7 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java --- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java +++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java -@@ -30,6 +30,7 @@ import org.chromium.content_public.browser.ContentFeatureList; +@@ -29,6 +29,7 @@ import org.chromium.content_public.browser.ContentFeatureList; import org.chromium.content_public.browser.ContentFeatureMap; import org.chromium.chrome.browser.settings.ChromeBaseSettingsFragment; @@ -635,7 +635,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c /** Fragment to keep track of all the accessibility related preferences. */ @NullMarked -@@ -45,6 +46,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -44,6 +45,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; -@@ -112,6 +116,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -108,6 +112,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 -> { -@@ -171,6 +181,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -167,6 +177,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); @@ -683,7 +683,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java --- a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java +++ b/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java -@@ -69,6 +69,14 @@ public class DeviceFormFactor { +@@ -83,6 +83,14 @@ public class DeviceFormFactor { return BuildConfig.IS_DESKTOP_ANDROID; } @@ -698,7 +698,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui /** * Each activity could be on a different display, and this will just tell you whether the * display associated with the application context is "tablet sized". Use {@link -@@ -77,6 +85,7 @@ public class DeviceFormFactor { +@@ -91,6 +99,7 @@ public class DeviceFormFactor { @CalledByNative @Deprecated public static boolean isTablet() { @@ -706,7 +706,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui if (sIsTabletForTesting != null) { return sIsTabletForTesting; } -@@ -107,6 +116,7 @@ public class DeviceFormFactor { +@@ -121,6 +130,7 @@ public class DeviceFormFactor { * E.g. http://developer.samsung.com/samsung-dex/testing */ public static boolean isNonMultiDisplayContextOnTablet(Context context) { @@ -714,7 +714,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui return detectScreenWidthBucket(context) >= SCREEN_BUCKET_TABLET; } -@@ -142,6 +152,7 @@ public class DeviceFormFactor { +@@ -156,6 +166,7 @@ public class DeviceFormFactor { * @return The screen width bucket the device is in (see constants at the top of this class). */ private static int detectScreenWidthBucket(Context context) { @@ -722,7 +722,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui return context.getResources().getInteger(R.integer.min_screen_width_bucket); } -@@ -149,6 +160,7 @@ public class DeviceFormFactor { +@@ -163,6 +174,7 @@ public class DeviceFormFactor { ThreadUtils.assertOnUiThread(); Context context = windowAndroid.getContext().get(); if (context == null) return 0; @@ -730,7 +730,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui return context.getResources().getInteger(R.integer.min_screen_width_bucket); } -@@ -158,6 +170,7 @@ public class DeviceFormFactor { +@@ -172,6 +184,7 @@ public class DeviceFormFactor { */ @UiThread public static int getNonMultiDisplayMinimumTabletWidthPx(Context context) { @@ -738,7 +738,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui return getMinimumTabletWidthPx(DisplayAndroid.getNonMultiDisplay(context)); } -@@ -166,6 +179,7 @@ public class DeviceFormFactor { +@@ -180,6 +193,7 @@ public class DeviceFormFactor { * layout. */ public static int getMinimumTabletWidthPx(DisplayAndroid display) { diff --git a/build/patches/Add-search-engine.patch b/build/patches/Add-search-engine.patch index 10b7697d..752b62e8 100644 --- a/build/patches/Add-search-engine.patch +++ b/build/patches/Add-search-engine.patch @@ -9,7 +9,6 @@ Add DuckDuckGo Lite License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- .../search_engine_choice/default_favicon.png | Bin 0 -> 903 bytes - ...search_engine_choice_scaled_resources.grdp | 1 + components/search_engines/BUILD.gn | 3 ++ components/search_engines/cromite/BUILD.gn | 12 ++++++ .../cromite/cromite_prepopulated_engines.json | 37 ++++++++++++++++++ @@ -21,7 +20,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html 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, 114 insertions(+), 28 deletions(-) + 12 files changed, 113 insertions(+), 28 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 @@ -53,17 +52,6 @@ d#;kFnu^?NN9uE_uZ002ovPDHLkV1m60sc!%P literal 0 HcmV?d00001 -diff --git a/components/resources/search_engine_choice_scaled_resources.grdp b/components/resources/search_engine_choice_scaled_resources.grdp ---- a/components/resources/search_engine_choice_scaled_resources.grdp -+++ b/components/resources/search_engine_choice_scaled_resources.grdp -@@ -5,6 +5,7 @@ - - - -+ - - - 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 @@ -75,7 +63,7 @@ diff --git a/components/search_engines/BUILD.gn b/components/search_engines/BUIL ] deps = [ -@@ -158,6 +159,7 @@ source_set("search_engine_utils") { +@@ -163,6 +164,7 @@ source_set("search_engine_utils") { ":search_engine_type", "//components/google/core/common", "//third_party/search_engines_data:prepopulated_engines", @@ -83,7 +71,7 @@ diff --git a/components/search_engines/BUILD.gn b/components/search_engines/BUIL ] deps = [ "//url" ] -@@ -246,6 +248,7 @@ source_set("unit_tests") { +@@ -252,6 +254,7 @@ source_set("unit_tests") { "//testing/gmock", "//testing/gtest", "//third_party/search_engines_data:prepopulated_engines", @@ -153,7 +141,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 -@@ -187,10 +187,7 @@ void RecordChoiceScreenDefaultSearchProviderType( +@@ -182,10 +182,7 @@ void RecordChoiceScreenDefaultSearchProviderType( } void RecordChoiceScreenSelectedIndex(int selected_engine_index) { @@ -296,7 +284,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. -@@ -139,11 +139,15 @@ def _GenerateH(basepath, fileroot, head, namespace, schema, description): +@@ -147,11 +147,15 @@ def _GenerateH(basepath, fileroot, head, namespace, schema, description): f.write(u'#include "%s"\n' % header) f.write(u'\n') @@ -313,7 +301,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') -@@ -170,7 +174,7 @@ def _GenerateH(basepath, fileroot, head, namespace, schema, description): +@@ -176,7 +180,7 @@ def _GenerateH(basepath, fileroot, head, namespace, schema, description): f.write(u'#endif // %s\n' % header_guard) @@ -322,7 +310,7 @@ 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. -@@ -205,7 +209,7 @@ def _GenerateCC(basepath, fileroot, head, namespace, schema, description): +@@ -211,7 +215,7 @@ def _GenerateCC(basepath, fileroot, head, namespace, schema, description): f.write(element_generator.GenerateElements(schema['type_name'], schema['schema'], description)) @@ -331,7 +319,7 @@ diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_ f.write('\n} // anonymous namespace \n\n') aggregated = GenerateCCAggregation(schema['type_name'], aggregation) -@@ -292,7 +296,7 @@ def GenerateClass(basepath, +@@ -298,7 +302,7 @@ def GenerateClass(basepath, def GenerateStruct(basepath, output_root, namespace, schema, description, @@ -340,7 +328,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: -@@ -311,8 +315,8 @@ def GenerateStruct(basepath, output_root, namespace, schema, description, +@@ -317,8 +321,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) @@ -351,7 +339,7 @@ diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_ if __name__ == '__main__': parser = optparse.OptionParser( -@@ -327,11 +331,17 @@ if __name__ == '__main__': +@@ -333,11 +337,17 @@ if __name__ == '__main__': parser.add_option('-s', '--schema', help='path to the schema file, ' 'mandatory.') parser.add_option('-o', '--output', help='output filename, ') @@ -369,7 +357,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] -@@ -348,4 +358,4 @@ if __name__ == '__main__': +@@ -354,4 +364,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-invert-tap-and-long-tap.patch b/build/patches/Add-setting-to-invert-tap-and-long-tap.patch index c96e630e..017fb9ec 100644 --- a/build/patches/Add-setting-to-invert-tap-and-long-tap.patch +++ b/build/patches/Add-setting-to-invert-tap-and-long-tap.patch @@ -70,7 +70,7 @@ diff --git a/chrome/android/java/res/values/ids.xml b/chrome/android/java/res/va diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java -@@ -162,6 +162,24 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting +@@ -165,6 +165,24 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting mSnackbarManagerSupplier.get().showSnackbar(mSnackbar); } @@ -98,28 +98,28 @@ 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 -@@ -127,8 +127,9 @@ class ChromeContextMenuItem { - int RELOAD = 40; +@@ -123,8 +123,9 @@ class ChromeContextMenuItem { + int PRINT_PAGE = 38; // Developer Group - int INSPECT_ELEMENT = 41; -+ int FOLLOW_LINK = 42; + int INSPECT_ELEMENT = 39; ++ int FOLLOW_LINK = 40; // ALWAYS UPDATE! -- int NUM_ENTRIES = 42; -+ int NUM_ENTRIES = 43; +- int NUM_ENTRIES = 40; ++ int NUM_ENTRIES = 41; } /** Mapping from {@link Item} to the ID found in the ids.xml. */ -@@ -175,6 +176,7 @@ class ChromeContextMenuItem { - R.id.contextmenu_forward, // Item.FORWARD - R.id.contextmenu_reload, // Item.RELOAD +@@ -169,6 +170,7 @@ class ChromeContextMenuItem { + R.id.contextmenu_share_page, // Item.SHARE_PAGE + R.id.contextmenu_print_page, // Item.PRINT_PAGE R.id.contextmenu_inspect_element, // Item.INSPECT_ELEMENT + 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. */ -@@ -221,6 +223,7 @@ class ChromeContextMenuItem { - R.string.contextmenu_forward, // Item.FORWARD - R.string.contextmenu_reload, // Item.RELOAD +@@ -213,6 +215,7 @@ class ChromeContextMenuItem { + R.string.contextmenu_share_page, // Item.SHARE_PAGE + R.string.contextmenu_print_page, // Item.PRINT_PAGE R.string.contextmenu_inspect_element, // Item.INSPECT_ELEMENT + R.string.contextmenu_open_in_tab, // Item.OPEN_IN_NEW_CHROME_TAB }; @@ -128,7 +128,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java -@@ -380,6 +380,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -369,6 +369,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())) { -@@ -817,6 +820,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -834,6 +837,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { getProfile(), false); }); @@ -168,27 +168,27 @@ 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 -@@ -367,6 +367,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { - &kTabGroupEntryPointsAndroid, +@@ -381,6 +381,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kTabGroupParityBottomSheetAndroid, + &kTabletTabStripAnimation, &kToolbarPhoneCleanup, + &blink::features::kShowAlwaysContextMenuOnLinks, &kTabStateFlatBuffer, &kTabStripContextMenuAndroid, - &kTabStripGroupDragDropAndroid, + &kTabStripDensityChangeAndroid, 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 -@@ -438,6 +438,8 @@ public abstract class ChromeFeatureList { +@@ -454,6 +454,8 @@ public abstract class ChromeFeatureList { "DisableToolbarSwipeUp"; public static final String MOVE_TOP_TOOLBAR_TO_BOTTOM = "MoveTopToolbarToBottom"; + public static final String SHOW_ALWAYS_CONTEXT_MENU_ON_LINKS = + "ShowAlwaysContextMenuOnLinks"; - public static final String NEW_TAB_SEARCH_ENGINE_URL_ANDROID = "NewTabSearchEngineUrlAndroid"; + public static final String NEW_TAB_PAGE_CUSTOMIZATION_TOOLBAR_BUTTON = + "NewTabPageCustomizationToolbarButton"; public static final String NOTIFICATION_ONE_TAP_UNSUBSCRIBE = "NotificationOneTapUnsubscribe"; - public static final String NOTIFICATION_PERMISSION_BOTTOM_SHEET = -@@ -809,6 +811,8 @@ public abstract class ChromeFeatureList { +@@ -867,6 +869,8 @@ public abstract class ChromeFeatureList { newCachedFlag(DISABLE_TOOLBAR_SWIPE_UP, false); public static final CachedFlag sMoveTopToolbarToBottom = newCachedFlag(MOVE_TOP_TOOLBAR_TO_BOTTOM, false); @@ -197,18 +197,18 @@ 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); -@@ -978,6 +982,7 @@ public abstract class ChromeFeatureList { +@@ -1071,6 +1075,7 @@ public abstract class ChromeFeatureList { sTabWindowManagerReportIndicesMismatch, + sTopControlsRefactor, sTraceBinderIpc, - sUseChimeAndroidSdk, + sShowAlwaysContextMenuOnLinks, + sUseChimeAndroidSdk, + sUseActivityManagerForTabActivation, sUseLibunwindstackNativeUnwinderAndroid, - sWebApkMinShellApkVersion); - 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 -@@ -1725,6 +1725,12 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1719,6 +1719,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 -@@ -3326,6 +3332,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -3330,6 +3336,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 -@@ -54,6 +54,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -53,6 +53,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; -@@ -143,6 +146,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -139,6 +142,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 -> { -@@ -224,6 +233,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -220,6 +229,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment } else if (PREF_DISABLE_TOOLBAR_SWIPE_UP.equals(preference.getKey())) { mDisableToolbarSwipeUpDelegate.setValue((Boolean) newValue); mDelegate.requestRestart(getActivity()); @@ -467,7 +467,7 @@ diff --git a/third_party/blink/renderer/core/html/html_image_element.cc b/third_ #include "third_party/blink/renderer/core/paint/timing/paint_timing.h" #include "third_party/blink/renderer/core/probe/core_probes.h" #include "third_party/blink/renderer/core/resize_observer/resize_observer_entry.h" -@@ -794,6 +796,21 @@ void HTMLImageElement::DidFinishLifecycleUpdate( +@@ -815,6 +817,21 @@ void HTMLImageElement::DidFinishLifecycleUpdate( } } @@ -504,7 +504,7 @@ diff --git a/third_party/blink/renderer/core/html/html_image_element.h b/third_p diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/third_party/blink/renderer/core/page/context_menu_controller.cc --- a/third_party/blink/renderer/core/page/context_menu_controller.cc +++ b/third_party/blink/renderer/core/page/context_menu_controller.cc -@@ -198,14 +198,16 @@ void ContextMenuController::DocumentDetached(Document* document) { +@@ -200,14 +200,16 @@ void ContextMenuController::DocumentDetached(Document* document) { } } @@ -524,7 +524,7 @@ diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/t mouse_event->SetDefaultHandled(); } -@@ -430,7 +432,8 @@ bool ContextMenuController::ShouldShowContextMenuFromTouch( +@@ -432,7 +434,8 @@ bool ContextMenuController::ShouldShowContextMenuFromTouch( bool ContextMenuController::ShowContextMenu(LocalFrame* frame, const PhysicalOffset& point, WebMenuSourceType source_type, @@ -534,7 +534,7 @@ diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/t // Displaying the context menu in this function is a big hack as we don't // have context, i.e. whether this is being invoked via a script or in // response to user input (Mouse event WM_RBUTTONDOWN, -@@ -453,6 +456,16 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame, +@@ -455,6 +458,16 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame, if (!result.InnerNodeOrImageMapImage()) return false; @@ -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; -@@ -816,11 +829,13 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame, +@@ -830,11 +843,13 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame, SetAutofillData(result.InnerNode(), data); diff --git a/build/patches/Bromite-auto-updater.patch b/build/patches/Bromite-auto-updater.patch index aec9f039..b313d0d2 100644 --- a/build/patches/Bromite-auto-updater.patch +++ b/build/patches/Bromite-auto-updater.patch @@ -36,12 +36,12 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../safety_hub/SafetyHubFetchService.java | 5 - .../strings/android_chrome_strings.grd | 23 +- .../ui/lens/lens_overlay_query_controller.cc | 1 + - .../endpoint_fetcher/endpoint_fetcher.cc | 133 ++++++-- + .../endpoint_fetcher/endpoint_fetcher.cc | 132 ++++++-- .../endpoint_fetcher/endpoint_fetcher.h | 24 ++ components/manta/base_provider.cc | 1 + .../Bromite-auto-updater.inc | 3 + .../Bromite-auto-updater.inc | 1 + - 33 files changed, 1240 insertions(+), 95 deletions(-) + 33 files changed, 1239 insertions(+), 95 deletions(-) create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/omaha/CromiteUpdateStatusProvider.java create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/BromiteInlineUpdateController.java create mode 100644 chrome/browser/endpoint_fetcher/BUILD.gn @@ -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 -@@ -1938,6 +1938,9 @@ if (!is_robolectric && enable_java_templates) { +@@ -1936,6 +1936,9 @@ if (!is_robolectric && enable_java_templates) { sources = [ "//build/android/java/templates/BuildConfig.template" ] defines = [] @@ -110,7 +110,7 @@ diff --git a/chrome/android/java/res/xml/about_chrome_preferences.xml b/chrome/a diff --git a/chrome/android/java/src/org/chromium/chrome/browser/about_settings/AboutChromeSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/about_settings/AboutChromeSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/about_settings/AboutChromeSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/about_settings/AboutChromeSettings.java -@@ -25,12 +25,18 @@ import org.chromium.ui.widget.Toast; +@@ -29,13 +29,19 @@ import org.chromium.ui.widget.Toast; import java.util.Calendar; @@ -119,6 +119,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/about_settings/ +import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; + /** Settings fragment that displays information about Chrome. */ + @NullMarked public class AboutChromeSettings extends PreferenceFragmentCompat - implements EmbeddableSettingsPage, Preference.OnPreferenceClickListener { + implements EmbeddableSettingsPage, Preference.OnPreferenceClickListener, @@ -130,8 +131,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/about_settings/ private static final String PREF_OS_VERSION = "os_version"; private static final String PREF_LEGAL_INFORMATION = "legal_information"; -@@ -64,6 +70,13 @@ public class AboutChromeSettings extends PreferenceFragmentCompat - p = findPreference(PREF_LEGAL_INFORMATION); +@@ -72,6 +78,13 @@ public class AboutChromeSettings extends PreferenceFragmentCompat + assumeNonNull(p); int currentYear = Calendar.getInstance().get(Calendar.YEAR); p.setSummary(getString(R.string.legal_information_summary, currentYear)); + @@ -144,7 +145,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/about_settings/ } @Override -@@ -134,6 +147,19 @@ public class AboutChromeSettings extends PreferenceFragmentCompat +@@ -142,6 +155,19 @@ public class AboutChromeSettings extends PreferenceFragmentCompat return true; } @@ -676,7 +677,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 -@@ -2580,6 +2580,12 @@ static_library("browser") { +@@ -2620,6 +2620,12 @@ static_library("browser") { } if (is_android) { @@ -1089,25 +1090,25 @@ 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 -@@ -324,6 +324,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -335,6 +335,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kProtectedTabsAndroid, &kPwaRestoreUi, &kPwaRestoreUiAtStartup, + &kInlineUpdateFlow, &kOmahaMinSdkVersionAndroid, &kShortCircuitUnfocusAnimation, - &kShowNewTabAnimations, + &kShowHomeButtonPolicyAndroid, 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 -@@ -401,6 +401,7 @@ public abstract class ChromeFeatureList { - public static final String HISTORY_PANE_ANDROID = "HistoryPaneAndroid"; +@@ -416,6 +416,7 @@ public abstract class ChromeFeatureList { + "HomepageIsNewTabPagePolicyAndroid"; 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 INSTANCE_SWITCHER_V2 = "InstanceSwitcherV2"; public static final String IP_PROTECTION_UX = "IpProtectionUx"; - public static final String KEYBOARD_ESC_BACK_NAVIGAION = "KeyboardEscBackNavigation"; - public static final String LEGACY_TAB_STATE_DEPRECATION = "LegacyTabStateDeprecation"; + public static final String KEYBOARD_ESC_BACK_NAVIGATION = "KeyboardEscBackNavigation"; 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 @@ -1656,7 +1657,7 @@ new file mode 100644 diff --git a/chrome/browser/safety_hub/android/java/src/org/chromium/chrome/browser/safety_hub/SafetyHubFetchService.java b/chrome/browser/safety_hub/android/java/src/org/chromium/chrome/browser/safety_hub/SafetyHubFetchService.java --- a/chrome/browser/safety_hub/android/java/src/org/chromium/chrome/browser/safety_hub/SafetyHubFetchService.java +++ b/chrome/browser/safety_hub/android/java/src/org/chromium/chrome/browser/safety_hub/SafetyHubFetchService.java -@@ -82,9 +82,6 @@ public class SafetyHubFetchService implements SigninManager.SignInStateObserver, +@@ -84,9 +84,6 @@ public class SafetyHubFetchService implements SigninManager.SignInStateObserver, mLocalPasswordsFetchService = new SafetyHubPasswordsFetchService(passwordManagerHelper, prefService, null); @@ -1666,7 +1667,7 @@ diff --git a/chrome/browser/safety_hub/android/java/src/org/chromium/chrome/brow recordMetricForUnusedSitePermissionsSettingState(); } -@@ -113,8 +110,6 @@ public class SafetyHubFetchService implements SigninManager.SignInStateObserver, +@@ -115,8 +112,6 @@ public class SafetyHubFetchService implements SigninManager.SignInStateObserver, if (mSigninManager != null) { mSigninManager.removeSignInStateObserver(this); } @@ -1678,7 +1679,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 -@@ -2410,6 +2410,12 @@ Your Google account may have other forms of browsing history like searches and a +@@ -2420,6 +2420,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 @@ -1691,7 +1692,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro -@@ -4361,7 +4367,10 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4383,7 +4389,10 @@ To change this setting, BEGIN_LINKdelete the Chrome d @@ -1703,7 +1704,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro Newer version is available -@@ -4372,6 +4381,18 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4394,6 +4403,18 @@ To change this setting, BEGIN_LINKdelete the Chrome d Android version is unsupported @@ -1725,8 +1726,8 @@ 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 -@@ -924,6 +924,7 @@ LensOverlayQueryController::CreateEndpointFetcher( - /*post_data=*/request_string, +@@ -923,6 +923,7 @@ LensOverlayQueryController::CreateEndpointFetcher( + /*post_data=*/std::move(request_string), /*headers=*/request_headers, /*cors_exempt_headers=*/cors_exempt_headers, chrome::GetChannel(), + kTrafficAnnotationTag, @@ -1745,10 +1746,10 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi +#include "net/http/http_status_code.h" +#include "services/network/public/cpp/resource_request.h" + + namespace endpoint_fetcher { + namespace { - const char kContentTypeKey[] = "Content-Type"; - const char kDeveloperKey[] = "X-Developer-Key"; -@@ -35,6 +40,8 @@ std::string GetHttpMethodString(const HttpMethod& http_method) { +@@ -37,6 +42,8 @@ std::string GetHttpMethodString(const HttpMethod& http_method) { return "POST"; case HttpMethod::kDelete: return "DELETE"; @@ -1757,7 +1758,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi default: DCHECK(0) << base::StringPrintf("Unknown HttpMethod %d\n", static_cast(http_method)); -@@ -49,6 +56,8 @@ HttpMethod GetHttpMethod(const std::string& http_method_string) { +@@ -51,6 +58,8 @@ HttpMethod GetHttpMethod(const std::string& http_method_string) { return HttpMethod::kPost; } else if (http_method_string == "DELETE") { return HttpMethod::kDelete; @@ -1766,7 +1767,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi } return HttpMethod::kUndefined; } -@@ -115,9 +124,11 @@ EndpointFetcher::EndpointFetcher( +@@ -117,9 +126,11 @@ EndpointFetcher::EndpointFetcher( const std::vector& headers, const std::vector& cors_exempt_headers, version_info::Channel channel, @@ -1778,7 +1779,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi consent_level_(std::nullopt), sanitize_response_(true), channel_(channel), -@@ -137,6 +148,7 @@ EndpointFetcher::EndpointFetcher( +@@ -139,6 +150,7 @@ EndpointFetcher::EndpointFetcher( const net::NetworkTrafficAnnotationTag& annotation_tag) : url_loader_factory_(url_loader_factory), identity_manager_(nullptr), @@ -1786,7 +1787,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi consent_level_(std::nullopt), sanitize_response_(false), request_params_(EndpointFetcher::RequestParams::Builder(HttpMethod::kGet, -@@ -161,6 +173,7 @@ EndpointFetcher::EndpointFetcher( +@@ -163,6 +175,7 @@ EndpointFetcher::EndpointFetcher( : oauth_consumer_name_(oauth_consumer_name), url_loader_factory_(url_loader_factory), identity_manager_(identity_manager), @@ -1794,15 +1795,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi consent_level_(consent_level), sanitize_response_(true), request_params_( -@@ -190,6 +203,7 @@ EndpointFetcher::EndpointFetcher( - bool is_oauth_fetch) - : url_loader_factory_(url_loader_factory), - identity_manager_(nullptr), -+ intercept_redirect_(false), - consent_level_(std::nullopt), - sanitize_response_(true), - request_params_( -@@ -207,6 +221,7 @@ EndpointFetcher::EndpointFetcher( +@@ -182,6 +195,7 @@ EndpointFetcher::EndpointFetcher( EndpointFetcher::EndpointFetcher( const net::NetworkTrafficAnnotationTag& annotation_tag) : identity_manager_(nullptr), @@ -1810,7 +1803,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi consent_level_(std::nullopt), sanitize_response_(true), request_params_( -@@ -215,6 +230,27 @@ EndpointFetcher::EndpointFetcher( +@@ -190,6 +204,27 @@ EndpointFetcher::EndpointFetcher( .SetTimeout(kDefaultTimeOut) .Build()) {} @@ -1838,7 +1831,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi EndpointFetcher::~EndpointFetcher() = default; void EndpointFetcher::Fetch(EndpointFetcherCallback endpoint_fetcher_callback) { -@@ -272,12 +308,9 @@ void EndpointFetcher::PerformRequest( +@@ -247,12 +282,9 @@ void EndpointFetcher::PerformRequest( auto resource_request = std::make_unique(); resource_request->method = GetHttpMethodString(request_params_.http_method()); resource_request->url = request_params_.url(); @@ -1854,7 +1847,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi if (request_params_.http_method() == HttpMethod::kPost) { resource_request->headers.SetHeader(kContentTypeKey, request_params_.content_type()); -@@ -305,10 +338,26 @@ void EndpointFetcher::PerformRequest( +@@ -280,10 +312,26 @@ void EndpointFetcher::PerformRequest( default: break; } @@ -1881,7 +1874,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi if (request_params_.http_method() == HttpMethod::kPost) { simple_url_loader_->AttachStringForUpload( -@@ -320,15 +369,25 @@ void EndpointFetcher::PerformRequest( +@@ -295,15 +343,25 @@ void EndpointFetcher::PerformRequest( } simple_url_loader_->SetRetryOptions(GetMaxRetries(), network::SimpleURLLoader::RETRY_ON_5XX); @@ -1913,7 +1906,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi } void EndpointFetcher::OnResponseFetched( -@@ -406,21 +465,6 @@ void EndpointFetcher::OnSanitizationResult( +@@ -381,21 +439,6 @@ void EndpointFetcher::OnSanitizationResult( std::move(endpoint_fetcher_callback).Run(std::move(response)); } @@ -1935,11 +1928,10 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi int EndpointFetcher::GetMaxRetries() const { if (!request_params_.max_retries.has_value()) { return kNumRetries; -@@ -445,3 +489,38 @@ UploadProgressCallback EndpointFetcher::GetUploadProgressCallback() const { - std::string EndpointFetcher::GetUrlForTesting() { +@@ -421,4 +464,39 @@ std::string EndpointFetcher::GetUrlForTesting() { return request_params_.url().spec(); } -+ + +void EndpointFetcher::OnSimpleLoaderRedirect( + const GURL& url_before_redirect, + const net::RedirectInfo& redirect_info, @@ -1974,10 +1966,12 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi + response_->response = net_error; + std::move(endpoint_fetcher_callback_).Run(std::move(response_)); +} ++ + } // namespace endpoint_fetcher diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoint_fetcher/endpoint_fetcher.h --- a/components/endpoint_fetcher/endpoint_fetcher.h +++ b/components/endpoint_fetcher/endpoint_fetcher.h -@@ -32,6 +32,8 @@ class EndpointFetcherTest; +@@ -21,6 +21,8 @@ namespace base { class TimeDelta; } // namespace base @@ -1986,7 +1980,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoin namespace network { struct ResourceRequest; -@@ -61,6 +63,7 @@ enum class HttpMethod { +@@ -59,6 +61,7 @@ enum class HttpMethod { kGet = 0, kPost = 1, kDelete = 2, @@ -1994,7 +1988,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoin }; enum AuthType { -@@ -76,6 +79,8 @@ enum AuthType { +@@ -74,6 +77,8 @@ enum AuthType { struct EndpointResponse { std::string response; @@ -2003,7 +1997,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoin int http_status_code{-1}; std::optional error_type; }; -@@ -296,6 +301,7 @@ class EndpointFetcher { +@@ -294,6 +299,7 @@ class EndpointFetcher { const std::vector& headers, const std::vector& cors_exempt_headers, version_info::Channel channel, @@ -2011,7 +2005,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoin const RequestParams request_params); // Constructor if no authentication is needed. -@@ -304,6 +310,14 @@ class EndpointFetcher { +@@ -302,6 +308,14 @@ class EndpointFetcher { const GURL& url, const net::NetworkTrafficAnnotationTag& annotation_tag); @@ -2026,7 +2020,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoin // Used for tests. Can be used if caller constructs their own // url_loader_factory and identity_manager. EndpointFetcher( -@@ -360,6 +374,11 @@ class EndpointFetcher { +@@ -344,6 +358,11 @@ class EndpointFetcher { void OnSanitizationResult(std::unique_ptr response, EndpointFetcherCallback endpoint_fetcher_callback, data_decoder::JsonSanitizer::Result result); @@ -2038,7 +2032,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoin network::mojom::CredentialsMode GetCredentialsMode() const; int GetMaxRetries() const; -@@ -370,12 +389,14 @@ class EndpointFetcher { +@@ -354,12 +373,14 @@ class EndpointFetcher { // network::SimpleURLLoader. const std::string oauth_consumer_name_; signin::ScopeSet oauth_scopes_; @@ -2053,7 +2047,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoin // `consent_level_` is used together with `identity_manager_`, so it can be // null if `identity_manager_` is null. const std::optional consent_level_; -@@ -388,6 +409,9 @@ class EndpointFetcher { +@@ -372,6 +393,9 @@ class EndpointFetcher { access_token_fetcher_; std::unique_ptr simple_url_loader_; @@ -2066,7 +2060,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoin diff --git a/components/manta/base_provider.cc b/components/manta/base_provider.cc --- a/components/manta/base_provider.cc +++ b/components/manta/base_provider.cc -@@ -160,6 +160,7 @@ std::unique_ptr BaseProvider::CreateEndpointFetcherForDemoMode( +@@ -163,6 +163,7 @@ std::unique_ptr BaseProvider::CreateEndpointFetcherForDemoMode( /*cors_exempt_headers=*/std::vector(), // ChromeOS always uses the stable channel API key version_info::Channel::STABLE, diff --git a/build/patches/Content-settings-infrastructure.patch b/build/patches/Content-settings-infrastructure.patch index c6849894..c9b599ec 100644 --- a/build/patches/Content-settings-infrastructure.patch +++ b/build/patches/Content-settings-infrastructure.patch @@ -44,7 +44,7 @@ Require: bromite-build-utils.patch .../BromiteCustomContentSettingImpl.java | 412 ++++++++++++++++++ ...tomTriStateSiteSettingsPreferenceImpl.java | 24 + .../ContentSettingsResources.java | 37 +- - .../site_settings/SingleCategorySettings.java | 54 ++- + .../site_settings/SingleCategorySettings.java | 60 ++- .../site_settings/SingleWebsiteSettings.java | 58 ++- .../site_settings/SiteSettings.java | 33 +- .../site_settings/SiteSettingsCategory.java | 18 +- @@ -72,7 +72,7 @@ Require: bromite-build-utils.patch .../core/common/content_settings.mojom | 6 + .../common/content_settings_mojom_traits.cc | 12 +- .../common/content_settings_mojom_traits.h | 24 + - .../core/common/content_settings_types.mojom | 2 + + .../core/common/content_settings_types.mojom | 1 + .../renderer/content_settings_agent_impl.cc | 74 ++++ .../renderer/content_settings_agent_impl.h | 9 + .../PageInfoPermissionsController.java | 9 + @@ -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, 1963 insertions(+), 102 deletions(-) + 73 files changed, 1963 insertions(+), 107 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 @@ -118,7 +118,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/C } @Override -@@ -389,6 +393,17 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { +@@ -370,6 +374,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 -@@ -1595,4 +1595,5 @@ +@@ -1345,4 +1345,5 @@ @@ -160,7 +160,7 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.html b/ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.ts b/chrome/browser/resources/settings/privacy_page/privacy_page.ts --- a/chrome/browser/resources/settings/privacy_page/privacy_page.ts +++ b/chrome/browser/resources/settings/privacy_page/privacy_page.ts -@@ -52,6 +52,7 @@ import {SiteSettingsPrefsBrowserProxyImpl} from '../site_settings/site_settings_ +@@ -54,6 +54,7 @@ import {SiteSettingsPrefsBrowserProxyImpl} from '../site_settings/site_settings_ import {PrivacyGuideAvailabilityMixin} from './privacy_guide/privacy_guide_availability_mixin.js'; import {getTemplate} from './privacy_page.html.js'; @@ -168,7 +168,7 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.ts b/ch interface BlockAutoplayStatus { enabled: boolean; -@@ -75,8 +76,82 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase { +@@ -77,8 +78,82 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase { return 'settings-privacy-page'; } @@ -263,7 +263,7 @@ 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, -@@ -172,6 +173,7 @@ function addPrivacyChildRoutes(r: Partial) { +@@ -164,6 +165,7 @@ function addPrivacyChildRoutes(r: Partial) { r.SITE_SETTINGS_LOCAL_NETWORK_ACCESS = r.SITE_SETTINGS.createChild('localNetworkAccess'); } @@ -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 -@@ -1817,6 +1817,7 @@ static_library("ui") { +@@ -1757,6 +1757,7 @@ static_library("ui") { "//components/commerce/core/mojom:mojo_bindings", "//components/commerce/core/webui", "//components/endpoint_fetcher:endpoint_fetcher", @@ -718,10 +718,10 @@ 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", -@@ -5055,6 +5056,7 @@ static_library("ui") { +@@ -5013,6 +5014,7 @@ static_library("ui") { + "//components/power_bookmarks/core:core", "//components/power_bookmarks/storage", "//components/prefs", - "//components/reading_list/features:flags", + "//components/strings:components_strings_grit", "//components/services/app_service", "//components/soda", @@ -746,15 +746,15 @@ diff --git a/chrome/browser/ui/views/controls/rich_controls_container_view.h b/c diff --git a/chrome/browser/ui/views/page_info/page_info_main_view.cc b/chrome/browser/ui/views/page_info/page_info_main_view.cc --- a/chrome/browser/ui/views/page_info/page_info_main_view.cc +++ b/chrome/browser/ui/views/page_info/page_info_main_view.cc -@@ -56,6 +56,7 @@ - #include "ui/views/controls/separator.h" +@@ -59,6 +59,7 @@ #include "ui/views/layout/box_layout.h" #include "ui/views/layout/flex_layout.h" + #include "ui/views/vector_icons.h" +#include "ui/views/layout/table_layout.h" #include "ui/views/view_class_properties.h" #if BUILDFLAG(FULL_SAFE_BROWSING) -@@ -258,8 +259,20 @@ void PageInfoMainView::SetPermissionInfo( +@@ -284,8 +285,20 @@ void PageInfoMainView::SetPermissionInfo( scroll_view->SetDrawOverflowIndicator(false); auto* content_view = scroll_view->SetContents(std::make_unique()); @@ -777,7 +777,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_main_view.cc b/chrome/b content_view->SetID(PageInfoViewFactory::VIEW_ID_PAGE_INFO_PERMISSION_VIEW); content_view->SetProperty(views::kElementIdentifierKey, kPermissionsElementId); -@@ -274,11 +287,16 @@ void PageInfoMainView::SetPermissionInfo( +@@ -300,11 +313,16 @@ void PageInfoMainView::SetPermissionInfo( } } @@ -794,7 +794,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_main_view.cc b/chrome/b toggle_row->SetProperty(views::kCrossAxisAlignmentKey, views::LayoutAlignment::kStretch); syncable_permission_rows_.emplace(permission.type, toggle_row); -@@ -286,6 +304,8 @@ void PageInfoMainView::SetPermissionInfo( +@@ -312,6 +330,8 @@ void PageInfoMainView::SetPermissionInfo( } for (auto& object : chosen_object_info_list) { @@ -803,7 +803,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_main_view.cc b/chrome/b // The view takes ownership of the object info. auto object_view = std::make_unique( std::move(object), -@@ -296,6 +316,10 @@ void PageInfoMainView::SetPermissionInfo( +@@ -322,6 +342,10 @@ void PageInfoMainView::SetPermissionInfo( content_view->AddChildView(std::move(object_view))); } @@ -817,16 +817,16 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_main_view.cc b/chrome/b diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.cc b/chrome/browser/ui/views/page_info/page_info_view_factory.cc --- a/chrome/browser/ui/views/page_info/page_info_view_factory.cc +++ b/chrome/browser/ui/views/page_info/page_info_view_factory.cc -@@ -27,6 +27,8 @@ - #include "chrome/browser/ui/views/page_info/page_info_permission_content_view.h" +@@ -28,6 +28,8 @@ #include "chrome/browser/ui/views/page_info/page_info_security_content_view.h" #include "components/content_settings/core/common/content_settings_types.h" + #include "components/content_settings/core/common/cookie_controls_state.h" +#include "components/content_settings/core/browser/website_settings_info.h" +#include "components/content_settings/core/browser/website_settings_registry.h" #include "components/page_info/core/features.h" #include "components/page_info/core/proto/about_this_site_metadata.pb.h" #include "components/page_info/page_info.h" -@@ -279,7 +281,14 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon( +@@ -292,7 +294,14 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon( ContentSetting setting = info.setting == CONTENT_SETTING_DEFAULT ? info.default_setting : info.setting; @@ -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 = -@@ -580,6 +589,17 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon( +@@ -593,6 +602,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 -@@ -97,6 +97,11 @@ class PageInfoViewFactory { +@@ -100,6 +100,11 @@ class PageInfoViewFactory { const PageInfo::PermissionInfo& info, bool blocked_on_system_level = false); @@ -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" -@@ -3841,6 +3845,56 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, +@@ -3811,6 +3815,56 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, policy_indicator::AddLocalizedStrings(html_source); AddSecurityKeysStrings(html_source); @@ -1256,8 +1256,8 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b #include "components/content_settings/core/common/content_settings.h" #include "components/content_settings/core/common/content_settings_pattern.h" #include "components/content_settings/core/common/content_settings_types.h" -@@ -258,13 +260,13 @@ constexpr auto kContentSettingsTypeGroupNames = std::to_array< - {ContentSettingsType::REVOKED_DISRUPTIVE_NOTIFICATION_PERMISSIONS, nullptr}, +@@ -261,13 +263,13 @@ constexpr auto kContentSettingsTypeGroupNames = std::to_array< + {ContentSettingsType::SUSPICIOUS_NOTIFICATION_IDS, nullptr}, }); -static_assert( @@ -1277,7 +1277,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b struct SiteSettingSourceStringMapping { SiteSettingSource source; -@@ -526,6 +528,13 @@ bool HasRegisteredGroupName(ContentSettingsType type) { +@@ -529,6 +531,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; } -@@ -539,11 +548,24 @@ ContentSettingsType ContentSettingsTypeFromGroupName(std::string_view name) { +@@ -542,11 +551,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 -@@ -558,7 +580,6 @@ std::string_view ContentSettingsTypeToGroupName(ContentSettingsType type) { +@@ -561,7 +583,6 @@ std::string_view ContentSettingsTypeToGroupName(ContentSettingsType type) { return entry.name ? entry.name : std::string_view(); } } @@ -1325,7 +1325,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b NOTREACHED() << static_cast(type) << " is not a recognized content settings type."; } -@@ -670,6 +691,13 @@ std::vector GetVisiblePermissionCategories( +@@ -673,6 +694,13 @@ std::vector GetVisiblePermissionCategories( base_types->push_back(ContentSettingsType::LOCAL_NETWORK_ACCESS); } @@ -1450,7 +1450,7 @@ new file mode 100644 diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/SpinnerPreference.java b/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/SpinnerPreference.java --- a/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/SpinnerPreference.java +++ b/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/SpinnerPreference.java -@@ -29,6 +29,7 @@ public class SpinnerPreference extends Preference { +@@ -29,6 +29,7 @@ public class SpinnerPreference extends Preference implements Preference.OnPrefer private @Nullable ArrayAdapter mAdapter; private int mSelectedIndex; private final boolean mSingleLine; @@ -1458,8 +1458,8 @@ diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium /** Constructor for inflating from XML. */ public SpinnerPreference(Context context, AttributeSet attrs) { -@@ -43,6 +44,19 @@ public class SpinnerPreference extends Preference { - } +@@ -44,6 +45,19 @@ public class SpinnerPreference extends Preference implements Preference.OnPrefer + setOnPreferenceClickListener(this); } + public SpinnerPreference(Context context, boolean singleLine) { @@ -1478,7 +1478,7 @@ diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium /** * Provides a list of arbitrary objects to be shown in the spinner. Visually, each option will * be presented as its toString() text. Alternative to {@link #setAdapter(ArrayAdapter, int)}. -@@ -62,6 +76,12 @@ public class SpinnerPreference extends Preference { +@@ -63,6 +77,12 @@ public class SpinnerPreference extends Preference implements Preference.OnPrefer mSelectedIndex = selectedIndex; } @@ -1491,7 +1491,7 @@ diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium /** Returns the Spinner instance for introspection during tests. */ public @Nullable Spinner getSpinnerForTesting() { return mSpinner; -@@ -94,6 +114,10 @@ public class SpinnerPreference extends Preference { +@@ -95,6 +115,10 @@ public class SpinnerPreference extends Preference implements Preference.OnPrefer public void onBindViewHolder(PreferenceViewHolder holder) { super.onBindViewHolder(holder); @@ -2222,7 +2222,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c int icon, int title, @ContentSettingValues @Nullable Integer defaultEnabledValue, -@@ -629,6 +650,8 @@ public class ContentSettingsResources { +@@ -624,6 +645,8 @@ public class ContentSettingsResources { R.string.website_settings_vr_ask, R.string.website_settings_vr_block); } @@ -2231,7 +2231,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c assert false; // NOTREACHED return assumeNonNull(null); } -@@ -787,6 +810,14 @@ public class ContentSettingsResources { +@@ -782,6 +805,14 @@ public class ContentSettingsResources { return getResourceItem(contentType).getDefaultDisabledValue(); } @@ -2246,7 +2246,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. * -@@ -961,6 +992,8 @@ public class ContentSettingsResources { +@@ -956,6 +987,8 @@ public class ContentSettingsResources { */ public static int @Nullable [] getTriStateSettingDescriptionIDs( int contentType, boolean isPermissionSiteSettingsRadioButtonFeatureEnabled) { @@ -2308,7 +2308,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()); -@@ -659,6 +673,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -664,6 +678,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment BrowserContextHandle browserContextHandle = getSiteSettingsDelegate().getBrowserContextHandle(); PrefService prefService = UserPrefs.get(browserContextHandle); @@ -2320,7 +2320,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c if (BINARY_RADIO_BUTTON_KEY.equals(preference.getKey()) || BINARY_TOGGLE_KEY.equals(preference.getKey())) { assert !mCategory.isManaged(); -@@ -837,7 +856,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -842,7 +861,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; } @@ -2329,7 +2329,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } // OnPreferenceClickListener: -@@ -957,10 +976,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -962,21 +981,18 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment default: break; } @@ -2339,12 +2339,24 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c + Boolean allow = BromiteCustomContentSettingImpl.allowSpecifyingExceptions(mCategory); + if (allow != null) allowSpecifyingExceptions = (boolean)allow; if (allowSpecifyingExceptions) { +- boolean enableAddExceptionButton = +- (!mCategory.isManaged() +- || mCategory.getType() +- == SiteSettingsCategory.Type.THIRD_PARTY_COOKIES); + int exceptionDialogMessageResourceId = getAddExceptionDialogMessageResourceId(); + assert exceptionDialogMessageResourceId != 0; getPreferenceScreen() .addPreference( new AddExceptionPreference( -@@ -1145,8 +1165,16 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment + getStyledContext(), + ADD_EXCEPTION_KEY, + getString(exceptionDialogMessageResourceId), +- enableAddExceptionButton, ++ true, + mCategory, + this)); + } +@@ -1155,8 +1171,16 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment private boolean isBlocked() { switch (mGlobalToggleLayout) { case GlobalToggleLayout.TRI_STATE_TOGGLE: @@ -2361,7 +2373,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c return (triStateToggle.getCheckedSetting() == ContentSettingValues.BLOCK); case GlobalToggleLayout.TRI_STATE_COOKIE_TOGGLE: TriStateCookieSettingsPreference triStateCookieToggle = -@@ -1293,7 +1321,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1303,7 +1327,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment } else if (res_id != -1) { infoText.setSummary(res_id); } else { @@ -2374,7 +2386,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } // Hide the anti-abuse text preferences, as needed. -@@ -1332,6 +1364,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1342,6 +1370,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment } else { screen.removePreference(mLocationTriStatePref); } @@ -2382,7 +2394,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c maybeShowReasonToggleDisabled(screen); -@@ -1544,6 +1577,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1554,6 +1583,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment iconIds = ContentSettingsResources.getTriStateSettingIconIDs(contentType); } triStateToggle.initialize( @@ -2390,7 +2402,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c setting, descriptionIds, iconIds, -@@ -1703,6 +1737,14 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1713,6 +1743,14 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment @ContentSettingValues Integer value = site.getContentSetting(browserContextHandle, contentSettingsType); @@ -2449,7 +2461,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c preference.setKey(getPreferenceKey(type)); if (type == ContentSettingsType.ADS) { -@@ -1274,20 +1288,32 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1278,20 +1292,32 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment @ContentSettingValues @Nullable Integer value, boolean isEmbargoed, boolean isOneTime) { @@ -2490,7 +2502,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c AppCompatResources.getColorStateList(getContext(), mHighlightColor) .getDefaultColor()); } -@@ -1512,14 +1538,20 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1516,14 +1542,20 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment if (newValue instanceof Boolean) { permission = (Boolean) newValue ? getEnabledValue(type) : ContentSettingValues.BLOCK; } else { @@ -2653,7 +2665,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 -@@ -213,6 +213,8 @@ public interface SiteSettingsDelegate { +@@ -198,6 +198,8 @@ public interface SiteSettingsDelegate { */ String getRelatedWebsiteSetOwner(String memberOrigin); @@ -2712,7 +2724,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 -@@ -336,7 +336,11 @@ public final class Website implements WebsiteEntry { +@@ -337,7 +337,11 @@ public final class Website implements WebsiteEntry { RecordUserAction.record("SoundContentSetting.UnmuteBy.SiteSettings"); } } @@ -2836,7 +2848,7 @@ diff --git a/components/content_settings/android/BUILD.gn b/components/content_s diff --git a/components/content_settings/core/browser/BUILD.gn b/components/content_settings/core/browser/BUILD.gn --- a/components/content_settings/core/browser/BUILD.gn +++ b/components/content_settings/core/browser/BUILD.gn -@@ -86,6 +86,13 @@ static_library("browser") { +@@ -77,6 +77,13 @@ static_library("browser") { } configs += [ "//build/config/compiler:wexit_time_destructors" ] @@ -2867,7 +2879,7 @@ diff --git a/components/content_settings/core/browser/content_settings_registry. namespace content_settings { -@@ -873,6 +874,7 @@ void ContentSettingsRegistry::Init() { +@@ -864,6 +865,7 @@ void ContentSettingsRegistry::Init() { WebsiteSettingsRegistry::PLATFORM_ANDROID, ContentSettingsInfo::INHERIT_IF_LESS_PERMISSIVE, ContentSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY); @@ -2878,7 +2890,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 -@@ -218,11 +218,7 @@ void RecordContentSettingsHistogram(const std::string& name, +@@ -222,11 +222,7 @@ void RecordContentSettingsHistogram(const std::string& name, } int ContentSettingTypeToHistogramValue(ContentSettingsType content_setting) { @@ -3005,7 +3017,7 @@ diff --git a/components/content_settings/core/browser/website_settings_registry. diff --git a/components/content_settings/core/common/BUILD.gn b/components/content_settings/core/common/BUILD.gn --- a/components/content_settings/core/common/BUILD.gn +++ b/components/content_settings/core/common/BUILD.gn -@@ -56,6 +56,13 @@ static_library("common") { +@@ -57,6 +57,13 @@ static_library("common") { "//net", "//url", ] @@ -3019,7 +3031,7 @@ diff --git a/components/content_settings/core/common/BUILD.gn b/components/conte } source_set("unit_tests") { -@@ -90,6 +97,7 @@ mojom("content_settings_types") { +@@ -91,6 +98,7 @@ mojom("content_settings_types") { sources = [ "content_settings_types.mojom" ] public_deps = [ "//mojo/public/mojom/base" ] @@ -3213,11 +3225,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 -@@ -483,5 +483,7 @@ enum ContentSettingsType { - // Content setting for whether the site is allowed to make local network - // requests. - LOCAL_NETWORK_ACCESS, -+ +@@ -491,5 +491,6 @@ enum ContentSettingsType { + // site. Used for recovering notification contents from the database if the + // user decides they would like to see all of these notifications. + SUSPICIOUS_NOTIFICATION_IDS, +#include "components/content_settings/core/common/bromite_content_settings.inc" }; // LINT.ThenChange(//components/content_settings/core/browser/content_settings_uma_util.cc:kHistogramValue) @@ -3308,7 +3319,7 @@ diff --git a/components/content_settings/renderer/content_settings_agent_impl.cc diff --git a/components/content_settings/renderer/content_settings_agent_impl.h b/components/content_settings/renderer/content_settings_agent_impl.h --- a/components/content_settings/renderer/content_settings_agent_impl.h +++ b/components/content_settings/renderer/content_settings_agent_impl.h -@@ -77,6 +77,13 @@ class ContentSettingsAgentImpl +@@ -76,6 +76,13 @@ class ContentSettingsAgentImpl static mojom::ContentSettingsManager::StorageType ConvertToMojoStorageType( StorageType storage_type); @@ -3322,7 +3333,7 @@ diff --git a/components/content_settings/renderer/content_settings_agent_impl.h // blink::WebContentSettingsClient: void AllowStorageAccess(StorageType storage_type, base::OnceCallback callback) override; -@@ -129,6 +136,8 @@ class ContentSettingsAgentImpl +@@ -128,6 +135,8 @@ class ContentSettingsAgentImpl // Resets the `content_blocked_` array. void ClearBlockedContentSettings(); @@ -3421,7 +3432,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" -@@ -1281,6 +1282,14 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, +@@ -1295,6 +1296,14 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, // applies to permissions listed in |kPermissionType|. bool PageInfo::ShouldShowPermission( const PageInfo::PermissionInfo& info) const { @@ -3436,7 +3447,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) { -@@ -1397,7 +1406,19 @@ void PageInfo::PresentSitePermissions() { +@@ -1411,7 +1420,19 @@ void PageInfo::PresentSitePermissions() { HostContentSettingsMap* content_settings = GetContentSettings(); DCHECK(web_contents_); @@ -3563,7 +3574,7 @@ diff --git a/third_party/blink/public/platform/web_content_settings_client.h b/t diff --git a/third_party/blink/renderer/core/execution_context/execution_context.cc b/third_party/blink/renderer/core/execution_context/execution_context.cc --- a/third_party/blink/renderer/core/execution_context/execution_context.cc +++ b/third_party/blink/renderer/core/execution_context/execution_context.cc -@@ -69,6 +69,22 @@ +@@ -70,6 +70,22 @@ namespace blink { diff --git a/build/patches/Disable-Android-Tab-Declutter.patch b/build/patches/Disable-Android-Tab-Declutter.patch index 6cd799de..afe6d527 100644 --- a/build/patches/Disable-Android-Tab-Declutter.patch +++ b/build/patches/Disable-Android-Tab-Declutter.patch @@ -5,32 +5,28 @@ Subject: Disable Android Tab Declutter 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 --- - .../org/chromium/chrome/browser/flags/ChromeFeatureList.java | 4 ++-- - .../chrome_feature_list_cc/Disable-Android-Tab-Declutter.inc | 1 + - 2 files changed, 3 insertions(+), 2 deletions(-) + .../org/chromium/chrome/browser/tab/TabArchiveSettings.java | 3 ++- + .../chrome_feature_list_cc/Disable-Android-Tab-Declutter.inc | 1 + + 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-Android-Tab-Declutter.inc -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 -@@ -1017,7 +1017,7 @@ public abstract class ChromeFeatureList { - public static final MutableFlagWithSafeDefault sAndroidNativePagesInNewTab = - newMutableFlagWithSafeDefault(ANDROID_NATIVE_PAGES_IN_NEW_TAB, false); - public static final MutableFlagWithSafeDefault sAndroidTabDeclutter = -- newMutableFlagWithSafeDefault(ANDROID_TAB_DECLUTTER, true); -+ newMutableFlagWithSafeDefault(ANDROID_TAB_DECLUTTER, false); - public static final MutableFlagWithSafeDefault sAndroidTabDeclutterArchiveAllButActiveTab = - newMutableFlagWithSafeDefault(ANDROID_TAB_DECLUTTER_ARCHIVE_ALL_BUT_ACTIVE, false); - public static final MutableFlagWithSafeDefault sAndroidTabDeclutterArchiveDuplicateTabs = -@@ -1504,7 +1504,7 @@ public abstract class ChromeFeatureList { - sAndroidNativePagesInNewTab.newBooleanParam( - "android_native_pages_in_new_tab_downloads_enabled", true); - public static final MutableBooleanParamWithSafeDefault sAndroidTabDeclutterArchiveEnabled = -- sAndroidTabDeclutter.newBooleanParam("android_tab_declutter_archive_enabled", true); -+ sAndroidTabDeclutter.newBooleanParam("android_tab_declutter_archive_enabled", false); - public static final MutableIntParamWithSafeDefault sAndroidTabDeclutterArchiveTimeDeltaHours = - sAndroidTabDeclutter.newIntParam( - "android_tab_declutter_archive_time_delta_hours", 21 * 24); +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabArchiveSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabArchiveSettings.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabArchiveSettings.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabArchiveSettings.java +@@ -104,11 +104,12 @@ public class TabArchiveSettings { + // are created, and tabs disappearing from tests is very unexpected. For archive tests, + // this will need to be turned on manually. + return mPrefsManager.readBoolean( +- ChromePreferenceKeys.TAB_DECLUTTER_ARCHIVE_ENABLED, !BuildConfig.IS_FOR_TEST); ++ ChromePreferenceKeys.TAB_DECLUTTER_ARCHIVE_ENABLED, false); + } + + /** Sets whether archive is enabled in settings. */ + public void setArchiveEnabled(boolean enabled) { ++ enabled = false; + mPrefsManager.writeBoolean(ChromePreferenceKeys.TAB_DECLUTTER_ARCHIVE_ENABLED, enabled); + } + diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-Android-Tab-Declutter.inc b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-Android-Tab-Declutter.inc new file mode 100644 --- /dev/null diff --git a/build/patches/Disable-GSA-by-default.patch b/build/patches/Disable-GSA-by-default.patch index 559037a3..47abb091 100644 --- a/build/patches/Disable-GSA-by-default.patch +++ b/build/patches/Disable-GSA-by-default.patch @@ -4,16 +4,27 @@ Subject: Disable GSA by default License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- + .../src/org/chromium/base/PackageUtils.java | 1 + .../chrome/browser/IntentHandler.java | 6 ---- - .../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 +-- + .../chrome/browser/pdf/PdfCoordinator.java | 2 +- .../Disable-GSA-by-default.inc | 1 + - 7 files changed, 11 insertions(+), 68 deletions(-) + 7 files changed, 12 insertions(+), 60 deletions(-) create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-GSA-by-default.inc +diff --git a/base/android/java/src/org/chromium/base/PackageUtils.java b/base/android/java/src/org/chromium/base/PackageUtils.java +--- a/base/android/java/src/org/chromium/base/PackageUtils.java ++++ b/base/android/java/src/org/chromium/base/PackageUtils.java +@@ -165,6 +165,7 @@ public class PackageUtils { + * @return Package name of assistant app, or null if unable to get. + */ + public static @Nullable String getDefaultAssistantPackageName(Context context) { ++ if ((true)) return null; + @Nullable String defaultAssistantSetting = + Settings.Secure.getString(context.getContentResolver(), DEFAULT_ASSISTANT_SETTING); + if (defaultAssistantSetting == null || defaultAssistantSetting.isBlank()) { diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java --- a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java @@ -25,7 +36,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.j import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteCoordinator; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.ProfileManager; -@@ -276,9 +275,6 @@ public class IntentHandler { +@@ -279,9 +278,6 @@ public class IntentHandler { public static final String EXTRA_CCT_EARLY_NAV = "org.chromium.chrome.browser.cct_early_nav"; @@ -35,7 +46,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.j private static Pair sPendingReferrer; private static int sReferrerId; private static String sPendingIncognitoUrl; -@@ -554,8 +550,6 @@ public class IntentHandler { +@@ -557,8 +553,6 @@ public class IntentHandler { return ExternalAppId.LINE; } else if (packageName.equals(PACKAGE_WHATSAPP)) { return ExternalAppId.WHATSAPP; @@ -44,29 +55,6 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.j } else if (packageName.equals(ContextUtils.getApplicationContext().getPackageName())) { return ExternalAppId.CHROME; } else if (packageName.startsWith(WEBAPK_PACKAGE_PREFIX)) { -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/provider/PageContentProviderImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/provider/PageContentProviderImpl.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/provider/PageContentProviderImpl.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/provider/PageContentProviderImpl.java -@@ -57,8 +57,6 @@ public class PageContentProviderImpl extends SplitCompatContentProvider.Impl { - - private static final int INVALIDATE_URI_DELAY_MS = 60_000; - private static final int PAGE_EXTRACTION_TIMEOUT_MS = 30_000; -- private static final String[] AUTHORIZED_PACKAGE_NAMES = -- new String[] {GSAUtils.GSA_PACKAGE_NAME}; - - static final class PageContentInvocationState { - -@@ -354,10 +352,6 @@ public class PageContentProviderImpl extends SplitCompatContentProvider.Impl { - } - - private static void grantAccessToUri(Uri uri) { -- for (String packageName : AUTHORIZED_PACKAGE_NAMES) { -- ContextUtils.getApplicationContext() -- .grantUriPermission(packageName, uri, Intent.FLAG_GRANT_READ_URI_PERMISSION); -- } - } - - @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) diff --git a/chrome/android/java/src/org/chromium/chrome/browser/share/LensUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/share/LensUtils.java --- a/chrome/android/java/src/org/chromium/chrome/browser/share/LensUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/share/LensUtils.java @@ -232,7 +220,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 -@@ -253,7 +253,7 @@ public class PdfCoordinator { +@@ -265,7 +265,7 @@ public class PdfCoordinator { } @Nullable String requestAssistContent(String filename, boolean isWorkProfile) { @@ -241,15 +229,6 @@ diff --git a/chrome/browser/ui/android/pdf/java/src/org/chromium/chrome/browser/ return null; } String structuredData; -@@ -271,8 +271,6 @@ public class PdfCoordinator { - } catch (JSONException e) { - return null; - } -- mActivity.grantUriPermission( -- GSAUtils.GSA_PACKAGE_NAME, mUri, Intent.FLAG_GRANT_READ_URI_PERMISSION); - PdfUtils.recordIsWorkProfile(isWorkProfile); - return structuredData; - } diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-GSA-by-default.inc b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-GSA-by-default.inc new file mode 100644 --- /dev/null diff --git a/build/patches/Disable-all-predictors-code.patch b/build/patches/Disable-all-predictors-code.patch index 8a9fdf93..b64ea951 100644 --- a/build/patches/Disable-all-predictors-code.patch +++ b/build/patches/Disable-all-predictors-code.patch @@ -66,7 +66,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 -@@ -763,8 +763,6 @@ static_library("browser") { +@@ -775,8 +775,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", @@ -75,7 +75,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", -@@ -2312,7 +2310,7 @@ static_library("browser") { +@@ -2343,7 +2341,7 @@ static_library("browser") { "//components/resources", "//components/safe_browsing/content/browser", "//components/safe_browsing/content/browser:safe_browsing_service", @@ -187,7 +187,7 @@ diff --git a/chrome/browser/optimization_guide/model_validator_keyed_service.cc diff --git a/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc b/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc --- a/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc +++ b/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc -@@ -519,7 +519,6 @@ void OptimizationGuideKeyedService::RemoveObserverForOptimizationTargetModel( +@@ -516,7 +516,6 @@ void OptimizationGuideKeyedService::RemoveObserverForOptimizationTargetModel( void OptimizationGuideKeyedService::RegisterOptimizationTypes( const std::vector& optimization_types) { @@ -272,7 +272,7 @@ diff --git a/chrome/browser/preloading/prefetch/search_prefetch/field_trial_sett diff --git a/chrome/browser/preloading/prefetch/search_prefetch/search_prefetch_url_loader_interceptor.cc b/chrome/browser/preloading/prefetch/search_prefetch/search_prefetch_url_loader_interceptor.cc --- a/chrome/browser/preloading/prefetch/search_prefetch/search_prefetch_url_loader_interceptor.cc +++ b/chrome/browser/preloading/prefetch/search_prefetch/search_prefetch_url_loader_interceptor.cc -@@ -84,6 +84,7 @@ SearchPrefetchURLLoader::RequestHandler +@@ -85,6 +85,7 @@ SearchPrefetchURLLoader::RequestHandler SearchPrefetchURLLoaderInterceptor::MaybeCreateLoaderForRequest( const network::ResourceRequest& tentative_resource_request, content::FrameTreeNodeId frame_tree_node_id) { @@ -283,7 +283,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 -@@ -1155,7 +1155,6 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -1177,7 +1177,6 @@ void ChromeBrowserMainExtraPartsProfiles:: base::FeatureList::IsEnabled( permissions::features::kPermissionOnDeviceGeolocationPredictions) || base::FeatureList::IsEnabled(permissions::features::kPermissionsAIv1)) { @@ -334,7 +334,7 @@ diff --git a/chrome/browser/safe_browsing/notification_content_detection/notific 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 -@@ -442,7 +442,6 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -444,7 +444,6 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { } MixedContentSettingsTabHelper::CreateForWebContents(web_contents); NavigationMetricsRecorder::CreateForWebContents(web_contents); @@ -371,7 +371,7 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_aloud_app_model.cc } // namespace -@@ -155,10 +159,13 @@ void ReadAloudAppModel::PreprocessTextForSpeech( +@@ -153,10 +157,13 @@ void ReadAloudAppModel::PreprocessTextForSpeech( } } @@ -385,7 +385,7 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_aloud_app_model.cc void ReadAloudAppModel::CalculatePhrases( a11y::ReadAloudCurrentGranularity& granularity) { if (!features::IsReadAnythingReadAloudPhraseHighlightingEnabled()) { -@@ -215,19 +222,23 @@ void ReadAloudAppModel::CalculatePhrases( +@@ -213,19 +220,23 @@ void ReadAloudAppModel::CalculatePhrases( base::BindOnce(&ReadAloudAppModel::UpdatePhraseBoundaries, weak_ptr_factory_.GetWeakPtr(), phrase_tokens)); } @@ -411,7 +411,7 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_aloud_app_model.cc // Reset the phrase calculation flag, so that the next phrase calculation can // be scheduled, if needed. is_calculating_phrases = false; -@@ -289,6 +300,7 @@ void ReadAloudAppModel::UpdatePhraseBoundaries(std::vector tokens, +@@ -287,6 +298,7 @@ void ReadAloudAppModel::UpdatePhraseBoundaries(std::vector tokens, current_phrase_calculation_index_ = -1; LOG(WARNING) << "All phrases calculated!"; } @@ -433,7 +433,7 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_aloud_app_model.h #include "chrome/renderer/accessibility/read_anything/read_aloud_traversal_utils.h" #include "ui/accessibility/ax_node_position.h" -@@ -113,8 +116,10 @@ class ReadAloudAppModel { +@@ -116,8 +119,10 @@ class ReadAloudAppModel { bool is_docs, const std::set* current_nodes); @@ -444,7 +444,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 -@@ -271,9 +276,11 @@ class ReadAloudAppModel { +@@ -274,9 +279,11 @@ class ReadAloudAppModel { // still needs to be read. bool NoValidTextRemainingInCurrentNode(bool is_pdf, bool is_docs) const; @@ -456,7 +456,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 -@@ -335,7 +342,7 @@ class ReadAloudAppModel { +@@ -344,7 +351,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.) @@ -478,7 +478,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" -@@ -1562,6 +1564,7 @@ void ReadAnythingAppController::OnConnected() { +@@ -1589,6 +1591,7 @@ void ReadAnythingAppController::OnConnected() { render_frame()->GetBrowserInterfaceBroker().GetInterface( std::move(page_handler_factory_receiver)); @@ -486,7 +486,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; -@@ -1570,6 +1573,7 @@ void ReadAnythingAppController::OnConnected() { +@@ -1597,6 +1600,7 @@ void ReadAnythingAppController::OnConnected() { page_handler_->GetDependencyParserModel( base::BindOnce(&ReadAnythingAppController::UpdateDependencyParserModel, weak_ptr_factory_.GetWeakPtr())); @@ -494,7 +494,7 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_anything_app_contr } void ReadAnythingAppController::OnCopy() const { -@@ -1787,8 +1791,10 @@ std::vector ReadAnythingAppController::GetCurrentText() { +@@ -1828,8 +1832,10 @@ std::vector ReadAnythingAppController::GetCurrentText() { } void ReadAnythingAppController::PreprocessTextForSpeech() { @@ -505,7 +505,7 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_anything_app_contr } void ReadAnythingAppController::MovePositionToNextGranularity() { -@@ -1998,14 +2004,18 @@ bool ReadAnythingAppController::IsDocsLoadMoreButtonVisible() const { +@@ -2044,14 +2050,18 @@ bool ReadAnythingAppController::IsDocsLoadMoreButtonVisible() const { void ReadAnythingAppController::UpdateDependencyParserModel( base::File model_file) { @@ -537,7 +537,7 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_anything_app_contr class ReadAnythingAppControllerTest; class ReadAnythingAppControllerScreen2xDataCollectionModeTest; -@@ -284,7 +286,9 @@ class ReadAnythingAppController +@@ -285,7 +287,9 @@ class ReadAnythingAppController // available. void UpdateDependencyParserModel(base::File model_file); @@ -587,7 +587,7 @@ diff --git a/chrome/utility/services.cc b/chrome/utility/services.cc diff --git a/components/BUILD.gn b/components/BUILD.gn --- a/components/BUILD.gn +++ b/components/BUILD.gn -@@ -597,7 +597,7 @@ test("components_unittests") { +@@ -600,7 +600,7 @@ test("components_unittests") { "//components/media_router/common/providers/cast/channel:unit_tests", "//components/page_info:unit_tests", "//components/permissions:unit_tests", @@ -628,7 +628,7 @@ diff --git a/components/autofill/core/browser/integrators/optimization_guide/aut 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 -@@ -50,7 +50,9 @@ +@@ -51,7 +51,9 @@ #include "components/omnibox/browser/autocomplete_match.h" #include "components/omnibox/browser/autocomplete_match_type.h" #include "components/omnibox/browser/autocomplete_provider.h" @@ -638,7 +638,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" -@@ -123,6 +125,7 @@ using ProviderType = AutocompleteProvider::Type; +@@ -125,6 +127,7 @@ using ProviderType = AutocompleteProvider::Type; constexpr bool is_android = !!BUILDFLAG(IS_ANDROID); @@ -646,7 +646,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 = -@@ -231,6 +234,7 @@ void RecordTotalMatchesScored(size_t num_scored) { +@@ -233,6 +236,7 @@ void RecordTotalMatchesScored(size_t num_scored) { base::UmaHistogramCounts1000("Omnibox.URLScoringModelExecuted.Matches", num_scored); } @@ -701,10 +701,10 @@ diff --git a/components/optimization_guide/core/hints_manager.cc b/components/op std::optional request_context_metadata) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + if ((true)) return; // no consent on bromite - - InsertionOrderedSet urls_to_fetch; - InsertionOrderedSet hosts_to_fetch; -@@ -1409,6 +1411,9 @@ OptimizationTypeDecision HintsManager::CanApplyOptimization( + if (!on_demand_hints_for_testing_.empty()) { + for (const GURL& url : urls) { + const auto& all_hints = on_demand_hints_for_testing_[url]; +@@ -1425,6 +1427,9 @@ OptimizationTypeDecision HintsManager::CanApplyOptimization( bool skip_cache, OptimizationMetadata* optimization_metadata) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); @@ -729,7 +729,7 @@ diff --git a/components/optimization_guide/core/optimization_guide_features.cc b } // namespace -@@ -453,8 +449,7 @@ size_t MaxURLKeyedHintCacheSize() { +@@ -460,8 +456,7 @@ size_t MaxURLKeyedHintCacheSize() { } bool ShouldPersistHintsToDisk() { @@ -739,7 +739,7 @@ diff --git a/components/optimization_guide/core/optimization_guide_features.cc b } RequestContextSet GetAllowedContextsForPersonalizedMetadata() { -@@ -903,5 +898,13 @@ bool IsPrivacyGuideAiSettingsEnabled() { +@@ -904,5 +899,13 @@ bool IsPrivacyGuideAiSettingsEnabled() { return base::FeatureList::IsEnabled(kPrivacyGuideAiSettings); } @@ -840,7 +840,7 @@ diff --git a/components/page_content_annotations/core/page_content_annotations_m diff --git a/components/safe_browsing/content/browser/notification_content_detection/BUILD.gn b/components/safe_browsing/content/browser/notification_content_detection/BUILD.gn --- a/components/safe_browsing/content/browser/notification_content_detection/BUILD.gn +++ b/components/safe_browsing/content/browser/notification_content_detection/BUILD.gn -@@ -26,6 +26,13 @@ source_set("notification_content_detection") { +@@ -27,6 +27,13 @@ source_set("notification_content_detection") { ] } @@ -868,7 +868,7 @@ diff --git a/components/safe_browsing/core/common/features.cc b/components/safe_ diff --git a/content/browser/service_worker/service_worker_main_resource_loader.cc b/content/browser/service_worker/service_worker_main_resource_loader.cc --- a/content/browser/service_worker/service_worker_main_resource_loader.cc +++ b/content/browser/service_worker/service_worker_main_resource_loader.cc -@@ -518,6 +518,7 @@ bool ServiceWorkerMainResourceLoader::MaybeStartAutoPreload( +@@ -516,6 +516,7 @@ bool ServiceWorkerMainResourceLoader::MaybeStartAutoPreload( bool ServiceWorkerMainResourceLoader::StartRaceNetworkRequest( scoped_refptr context, scoped_refptr version) { @@ -925,19 +925,19 @@ new file mode 100644 diff --git a/services/webnn/features.gni b/services/webnn/features.gni --- a/services/webnn/features.gni +++ b/services/webnn/features.gni -@@ -7,7 +7,7 @@ import("//services/on_device_model/on_device_model.gni") +@@ -9,7 +9,7 @@ assert(use_blink) declare_args() { - # TFLite is used as a fallback option on macOS and Windows. -- webnn_use_tflite = is_android || is_chromeos || is_linux || is_mac || is_win -+ webnn_use_tflite = false #is_android || is_chromeos || is_linux || is_mac || is_win + # TFLite is used as a fallback option on Apple and Windows. +- webnn_use_tflite = is_android || is_chromeos || is_linux || is_apple || is_win ++ webnn_use_tflite = false #is_android || is_chromeos || is_linux || is_apple || is_win # Enable the GPU delegate provided by the Optimization Guide library. webnn_use_chrome_ml_api = enable_ml_internal 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 -@@ -1757,6 +1757,7 @@ ALWAYS_INLINE bool HTMLDocumentParser::ShouldCheckTimeBudget( +@@ -1798,6 +1798,7 @@ ALWAYS_INLINE bool HTMLDocumentParser::ShouldCheckTimeBudget( } bool HTMLDocumentParser::ShouldSkipPreloadScan() { @@ -948,7 +948,7 @@ diff --git a/third_party/blink/renderer/core/html/parser/html_document_parser.cc diff --git a/third_party/blink/renderer/core/speculation_rules/document_speculation_rules.cc b/third_party/blink/renderer/core/speculation_rules/document_speculation_rules.cc --- a/third_party/blink/renderer/core/speculation_rules/document_speculation_rules.cc +++ b/third_party/blink/renderer/core/speculation_rules/document_speculation_rules.cc -@@ -644,6 +644,7 @@ void DocumentSpeculationRules::UpdateSpeculationCandidates() { +@@ -642,6 +642,7 @@ void DocumentSpeculationRules::UpdateSpeculationCandidates() { return; } @@ -959,7 +959,7 @@ diff --git a/third_party/blink/renderer/core/speculation_rules/document_speculat diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -3564,7 +3564,7 @@ +@@ -3734,7 +3734,7 @@ // // It also has some feature params defined throughout the codebase. name: "Prerender2", diff --git a/build/patches/Disable-omission-of-URL-elements.patch b/build/patches/Disable-omission-of-URL-elements.patch index 24df908b..4d205549 100644 --- a/build/patches/Disable-omission-of-URL-elements.patch +++ b/build/patches/Disable-omission-of-URL-elements.patch @@ -9,11 +9,11 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../ShareSheetBottomSheetContent.java | 4 +- .../EphemeralTabSheetContent.java | 4 +- .../chrome_location_bar_model_delegate.cc | 2 +- - .../ui/views/page_info/page_info_main_view.cc | 68 ++++++++++--------- + .../ui/views/page_info/page_info_main_view.cc | 69 ++++++++++--------- .../components/bookmarks/BookmarkItem.java | 1 + .../omnibox/browser/titled_url_match_utils.cc | 2 +- .../page_info/PageInfoController.java | 3 +- - 7 files changed, 42 insertions(+), 42 deletions(-) + 7 files changed, 42 insertions(+), 43 deletions(-) diff --git a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/share_sheet/ShareSheetBottomSheetContent.java b/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/share_sheet/ShareSheetBottomSheetContent.java --- a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/share_sheet/ShareSheetBottomSheetContent.java @@ -56,7 +56,7 @@ diff --git a/chrome/browser/ui/toolbar/chrome_location_bar_model_delegate.cc b/c diff --git a/chrome/browser/ui/views/page_info/page_info_main_view.cc b/chrome/browser/ui/views/page_info/page_info_main_view.cc --- a/chrome/browser/ui/views/page_info/page_info_main_view.cc +++ b/chrome/browser/ui/views/page_info/page_info_main_view.cc -@@ -603,38 +603,42 @@ void PageInfoMainView::ChildPreferredSizeChanged(views::View* child) { +@@ -629,39 +629,42 @@ void PageInfoMainView::ChildPreferredSizeChanged(views::View* child) { } std::unique_ptr PageInfoMainView::CreateBubbleHeaderView() { @@ -82,6 +82,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_main_view.cc b/chrome/b - views::BubbleFrameView::CreateCloseButton( - base::BindRepeating(&PageInfoNavigationHandler::CloseBubble, - base::Unretained(navigation_handler_)))) +- .SetID(PageInfoViewFactory::VIEW_ID_PAGE_INFO_CLOSE_BUTTON) - .SetVisible(true) - .SetProperty(views::kCrossAxisAlignmentKey, - views::LayoutAlignment::kStart) diff --git a/build/patches/Enable-Android-Dynamic-Performance-Framework.patch b/build/patches/Enable-Android-Dynamic-Performance-Framework.patch index db633442..533e391b 100644 --- a/build/patches/Enable-Android-Dynamic-Performance-Framework.patch +++ b/build/patches/Enable-Android-Dynamic-Performance-Framework.patch @@ -33,18 +33,18 @@ diff --git a/chrome/version.gni b/chrome/version.gni diff --git a/components/viz/common/features.cc b/components/viz/common/features.cc --- a/components/viz/common/features.cc +++ b/components/viz/common/features.cc -@@ -323,9 +323,11 @@ const base::FeatureParam kADPFBoostTimeout{ - - // If enabled, Chrome includes the Renderer Main thread(s) into the - // ADPF(Android Dynamic Performance Framework) hint session. +@@ -329,9 +329,11 @@ BASE_FEATURE(kEnableInteractiveOnlyADPFRenderer, + // If enabled, Chrome includes the Compositor GPU Thread into the + // ADPF(Android Dynamic Performance Framework) hint session, instead + // of the GPU Main Thread. +// see https://source.chromium.org/chromium/chromium/src/+/e7507d15614ac7f499fb89086b3a09772fa8deb4 - BASE_FEATURE(kEnableADPFRendererMain, - "EnableADPFRendererMain", + BASE_FEATURE(kEnableADPFGpuCompositorThread, + "EnableADPFGpuCompositorThread", base::FEATURE_ENABLED_BY_DEFAULT); +SET_CROMITE_FEATURE_ENABLED(kEnableADPFRendererMain); - // If enabled, Chrome's ADPF(Android Dynamic Performance Framework) hint - // session includes Renderer threads only if: + // If enabled, Chrome puts Renderer Main threads into a separate + // ADPF(Android Dynamic Performance Framework) hint session, and does not diff --git a/components/viz/service/performance_hint/hint_session.cc b/components/viz/service/performance_hint/hint_session.cc --- a/components/viz/service/performance_hint/hint_session.cc +++ b/components/viz/service/performance_hint/hint_session.cc diff --git a/build/patches/Enable-ProcessBoundStringEncryption-by-default.patch b/build/patches/Enable-ProcessBoundStringEncryption-by-default.patch index 51182811..cef4146b 100644 --- a/build/patches/Enable-ProcessBoundStringEncryption-by-default.patch +++ b/build/patches/Enable-ProcessBoundStringEncryption-by-default.patch @@ -8,17 +8,16 @@ https://issuetracker.google.com/issues/372873695 License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- - crypto/features.cc | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) + crypto/features.cc | 3 +++ + 1 file changed, 3 insertions(+) diff --git a/crypto/features.cc b/crypto/features.cc --- a/crypto/features.cc +++ b/crypto/features.cc -@@ -11,5 +11,7 @@ namespace crypto::features { - BASE_FEATURE(kProcessBoundStringEncryption, - "ProcessBoundStringEncryption", +@@ -16,4 +16,7 @@ BASE_FEATURE(kIsHardwareBackedFixEnabled, + "IsHardwareBackedFixEnabled", base::FEATURE_DISABLED_BY_DEFAULT); -- + +#if BUILDFLAG(IS_WIN) +SET_CROMITE_FEATURE_ENABLED(kProcessBoundStringEncryption); +#endif diff --git a/build/patches/Enable-native-Android-autofill.patch b/build/patches/Enable-native-Android-autofill.patch index ab8e3911..36d9f3bc 100644 --- a/build/patches/Enable-native-Android-autofill.patch +++ b/build/patches/Enable-native-Android-autofill.patch @@ -54,7 +54,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/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 -@@ -28,7 +28,9 @@ import androidx.preference.PreferenceCategory; +@@ -27,7 +27,9 @@ import androidx.preference.PreferenceCategory; import androidx.preference.PreferenceGroup; import org.chromium.base.BuildInfo; @@ -63,7 +63,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage +import org.chromium.base.supplier.Supplier; import org.chromium.base.supplier.ObservableSupplier; import org.chromium.base.supplier.ObservableSupplierImpl; - import org.chromium.chrome.R; + import org.chromium.build.annotations.Nullable; @@ -60,6 +62,11 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.Locale; @@ -115,7 +115,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage if (shouldShowAutoSigninOption()) { createAutoSignInCheckbox(); } -@@ -583,6 +599,71 @@ public class PasswordSettings extends ChromeBaseSettingsFragment +@@ -588,6 +604,71 @@ public class PasswordSettings extends ChromeBaseSettingsFragment getPrefService().getBoolean(Pref.CREDENTIALS_ENABLE_SERVICE)); } @@ -190,7 +190,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/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 -@@ -474,8 +474,7 @@ public class MainSettings extends ChromeBaseSettingsFragment +@@ -459,8 +459,7 @@ public class MainSettings extends ChromeBaseSettingsFragment private void updateAutofillPreferences() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O @@ -203,7 +203,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java -@@ -103,6 +103,13 @@ import java.lang.annotation.RetentionPolicy; +@@ -105,6 +105,13 @@ import java.lang.annotation.RetentionPolicy; import java.nio.ByteBuffer; import java.util.Objects; @@ -217,7 +217,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. -@@ -1081,6 +1088,11 @@ class TabImpl implements Tab { +@@ -1084,6 +1091,11 @@ class TabImpl implements Tab { for (TabObserver observer : mObservers) observer.onDestroyed(this); mObservers.clear(); @@ -229,7 +229,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav mUserDataHost.destroy(); mTabViewManager.destroy(); hideNativePage(false, null); -@@ -1385,6 +1397,7 @@ class TabImpl implements Tab { +@@ -1389,6 +1401,7 @@ class TabImpl implements Tab { * @return iff the AutofillProvider should provide a ViewStructure when prompted. */ boolean providesAutofillStructure() { @@ -237,7 +237,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav if (!ChromeFeatureList.isEnabled( AutofillFeatures.AUTOFILL_VIRTUAL_VIEW_STRUCTURE_ANDROID)) { return false; -@@ -2169,16 +2182,21 @@ class TabImpl implements Tab { +@@ -2173,16 +2186,21 @@ class TabImpl implements Tab { * @return true if the the provider is available for the given WebContents. */ private boolean prepareAutofillProvider(WebContents newWebContents) { @@ -265,7 +265,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav mAutofillProvider = new AutofillProvider( getContext(), -@@ -2187,7 +2205,16 @@ class TabImpl implements Tab { +@@ -2191,7 +2209,16 @@ class TabImpl implements Tab { getContext().getString(R.string.app_name)); TabImplJni.get().initializeAutofillIfNecessary(mNativeTabAndroid); } @@ -286,7 +286,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav 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 -@@ -3789,28 +3789,6 @@ const FeatureEntry::FeatureVariation kLinkPreviewTriggerTypeVariations[] = { +@@ -3895,28 +3895,6 @@ const FeatureEntry::FeatureVariation kLinkPreviewTriggerTypeVariations[] = { std::size(kLinkPreviewTriggerTypeLongPress), nullptr}}; #endif // !BUILDFLAG(IS_ANDROID) @@ -312,10 +312,10 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc - -#endif // BUILDFLAG(IS_ANDROID) - - const FeatureEntry::FeatureParam - kPrerender2WarmUpCompositorTriggerPointDidCommitLoad[] = { - {"trigger_point", "did_commit_load"}}; -@@ -6345,15 +6323,6 @@ const FeatureEntry kFeatureEntries[] = { + const FeatureEntry::FeatureParam kGroupSuggestionEnableRecentlyOpenedOnly[] = { + {"group_suggestion_enable_recently_opened", "true"}, + {"group_suggestion_enable_switch_between", "false"}, +@@ -6419,15 +6397,6 @@ const FeatureEntry kFeatureEntries[] = { #endif // BUILDFLAG(IS_CHROMEOS) #if BUILDFLAG(IS_ANDROID) @@ -347,7 +347,7 @@ diff --git a/chrome/browser/android/tab_android.cc b/chrome/browser/android/tab_ diff --git a/chrome/browser/autofill/android/BUILD.gn b/chrome/browser/autofill/android/BUILD.gn --- a/chrome/browser/autofill/android/BUILD.gn +++ b/chrome/browser/autofill/android/BUILD.gn -@@ -149,7 +149,7 @@ android_library("bottom_sheet_utils_java") { +@@ -152,7 +152,7 @@ android_library("bottom_sheet_utils_java") { generate_jni("jni_headers") { sources = [ "java/src/org/chromium/chrome/browser/autofill/AddressNormalizerFactory.java", @@ -359,7 +359,7 @@ diff --git a/chrome/browser/autofill/android/BUILD.gn b/chrome/browser/autofill/ diff --git a/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/AutofillClientProviderUtils.java b/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/AutofillClientProviderUtils.java --- a/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/AutofillClientProviderUtils.java +++ b/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/AutofillClientProviderUtils.java -@@ -79,8 +79,8 @@ public class AutofillClientProviderUtils { +@@ -83,8 +83,8 @@ public class AutofillClientProviderUtils { * @return {@link AndroidAutofillAvailabilityStatus.AVAILABLE} if Android Autofill can be used * or a reason why it can't. */ @@ -372,7 +372,7 @@ diff --git a/chrome/browser/autofill/android/java/src/org/chromium/chrome/browse diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -869,12 +869,6 @@ const char kAutofillVcnEnrollStrikeExpiryTimeDescription[] = +@@ -921,12 +921,6 @@ const char kAutofillVcnEnrollStrikeExpiryTimeDescription[] = "When enabled, changes the amount of time required for VCN enrollment " "prompt strikes to expire."; @@ -388,7 +388,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -510,9 +510,6 @@ extern const char kAutofillVcnEnrollRequestTimeoutDescription[]; +@@ -546,9 +546,6 @@ extern const char kAutofillVcnEnrollRequestTimeoutDescription[]; extern const char kAutofillVcnEnrollStrikeExpiryTimeName[]; extern const char kAutofillVcnEnrollStrikeExpiryTimeDescription[]; @@ -417,15 +417,16 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/browser/ui/autofill/autofill_client_provider.cc b/chrome/browser/ui/autofill/autofill_client_provider.cc --- a/chrome/browser/ui/autofill/autofill_client_provider.cc +++ b/chrome/browser/ui/autofill/autofill_client_provider.cc -@@ -13,84 +13,18 @@ - - #if BUILDFLAG(IS_ANDROID) +@@ -15,8 +15,6 @@ #include "base/android/jni_android.h" + #include "base/android/jni_string.h" + #include "base/task/thread_pool.h" -#include "chrome/browser/autofill/android/android_autofill_availability_status.h" -#include "chrome/browser/autofill/android/jni_headers/AutofillClientProviderUtils_jni.h" + #include "chrome/browser/metrics/chrome_metrics_service_accessor.h" #include "components/android_autofill/browser/android_autofill_client.h" #endif // BUILDFLAG(IS_ANDROID) - +@@ -24,67 +22,6 @@ namespace autofill { namespace { @@ -490,12 +491,18 @@ diff --git a/chrome/browser/ui/autofill/autofill_client_provider.cc b/chrome/bro -#endif // BUILDFLAG(IS_ANDROID) -} - + #if BUILDFLAG(IS_ANDROID) + std::string GetTrialGroupForPackage() { + JNIEnv* env = base::android::AttachCurrentThread(); +@@ -95,14 +32,11 @@ std::string GetTrialGroupForPackage() { + } // namespace -AutofillClientProvider::AutofillClientProvider(PrefService* prefs) - : uses_platform_autofill_(UsesVirtualViewStructureForAutofill(*prefs)) { +AutofillClientProvider::AutofillClientProvider(PrefService* prefs) { #if BUILDFLAG(IS_ANDROID) + DelayRegisteringFieldTrialForA11yDeprecation(); - RecordWhetherAndroidPrefResets(*prefs, uses_platform_autofill_); - // Ensure the pref is reset if platform autofill is restricted. prefs->SetBoolean(prefs::kAutofillUsingVirtualViewStructure, @@ -504,7 +511,7 @@ diff --git a/chrome/browser/ui/autofill/autofill_client_provider.cc b/chrome/bro if (base::FeatureList::IsEnabled( autofill::features::kAutofillVirtualViewStructureAndroid) && base::FeatureList::IsEnabled( -@@ -114,15 +48,7 @@ AutofillClientProvider::~AutofillClientProvider() = default; +@@ -126,15 +60,7 @@ AutofillClientProvider::~AutofillClientProvider() = default; void AutofillClientProvider::CreateClientForWebContents( content::WebContents* web_contents) { @@ -519,11 +526,11 @@ diff --git a/chrome/browser/ui/autofill/autofill_client_provider.cc b/chrome/bro - } } - } // namespace autofill + #if BUILDFLAG(IS_ANDROID) diff --git a/chrome/browser/ui/autofill/autofill_client_provider.h b/chrome/browser/ui/autofill/autofill_client_provider.h --- a/chrome/browser/ui/autofill/autofill_client_provider.h +++ b/chrome/browser/ui/autofill/autofill_client_provider.h -@@ -33,13 +33,7 @@ class AutofillClientProvider : public KeyedService { +@@ -37,11 +37,6 @@ class AutofillClientProvider : public KeyedService { // given `web_contents`. void CreateClientForWebContents(content::WebContents* web_contents); @@ -533,14 +540,20 @@ diff --git a/chrome/browser/ui/autofill/autofill_client_provider.h b/chrome/brow - bool uses_platform_autofill() const { return uses_platform_autofill_; } - private: + #if BUILDFLAG(IS_ANDROID) + // Posts a low-priority task to register the client in a synthetic field trial +@@ -51,7 +46,6 @@ class AutofillClientProvider : public KeyedService { + void RegisterSyntheticFieldTrialForPackage(const std::string& package); + #endif // BUILDFLAG(IS_ANDROID) + - const bool uses_platform_autofill_; + base::WeakPtrFactory weak_ptr_factory_{this}; }; - } // namespace autofill 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 -@@ -384,9 +384,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -386,9 +386,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { web_contents); ChainedBackNavigationTracker::CreateForWebContents(web_contents); chrome_browser_net::NetErrorTabHelper::CreateForWebContents(web_contents); @@ -597,15 +610,15 @@ diff --git a/components/android_autofill/browser/java/src/org/chromium/component if (event == EVENT_INPUT_SHOWN) manager.notifyInputUiChange(); } } -@@ -102,6 +103,7 @@ public class AutofillManagerWrapper { - // Uses Exception to catch various cases. (refer to crbug.com/1186406) - Log.e(TAG, "getAutofillServiceComponentName", e); - } +@@ -124,6 +125,7 @@ public class AutofillManagerWrapper { + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { + ComponentName componentName = getAutofillServiceComponentName(autofillManager); + if (isLoggable()) log("componentName=" + componentName); if (componentName != null) { mPackageName = componentName.getPackageName(); mIsAwGCurrentAutofillService = -@@ -274,7 +276,7 @@ public class AutofillManagerWrapper { +@@ -345,7 +347,7 @@ public class AutofillManagerWrapper { /** Always check isLoggable() before call this method. */ public static void log(String log) { // Log.i() instead of Log.d() is used here because log.d() is stripped out in release build. @@ -614,18 +627,17 @@ diff --git a/components/android_autofill/browser/java/src/org/chromium/component } public static boolean isLoggable() { -@@ -287,6 +289,7 @@ public class AutofillManagerWrapper { +@@ -358,5 +360,6 @@ public class AutofillManagerWrapper { // NOTE: See the comment on TAG above for why this is still AwAutofillManager. // Check the system setting directly. sIsLoggable = android.util.Log.isLoggable(TAG, Log.DEBUG); + // sIsLoggable = true; // to force enable the log } - } diff --git a/components/android_autofill/browser/java/src/org/chromium/components/autofill/AutofillProvider.java b/components/android_autofill/browser/java/src/org/chromium/components/autofill/AutofillProvider.java --- a/components/android_autofill/browser/java/src/org/chromium/components/autofill/AutofillProvider.java +++ b/components/android_autofill/browser/java/src/org/chromium/components/autofill/AutofillProvider.java -@@ -197,13 +197,19 @@ public class AutofillProvider { +@@ -220,6 +220,10 @@ public class AutofillProvider { /** @return whether query autofill suggestion. */ public boolean shouldQueryAutofillSuggestion() { @@ -635,17 +647,24 @@ diff --git a/components/android_autofill/browser/java/src/org/chromium/component + " !mAutofillManager.isAutofillInputUIShowing()=" + (!mAutofillManager.isAutofillInputUiShowing())); return mRequest != null && mRequest.getFocusField() != null - && !mAutofillManager.isAutofillInputUiShowing(); + && !getAutofillManagerWrapper().isAutofillInputUiShowing(); +@@ -228,6 +232,7 @@ public class AutofillProvider { + public boolean shouldOfferPasskeyEntry() { + if (!AndroidAutofillFeatures.ANDROID_AUTOFILL_VIRTUAL_VIEW_STRUCTURE_PASSKEY_LONG_PRESS + .isEnabled()) { ++ AutofillManagerWrapper.log("calling requestAutofill"); + return false; + } + return AutofillProviderJni.get().hasPasskeyRequest(mNativeAutofillProvider); +@@ -240,6 +245,7 @@ public class AutofillProvider { } public void queryAutofillSuggestion() { + AutofillManagerWrapper.log("queryAutofillSuggestion start"); if (shouldQueryAutofillSuggestion()) { -+ AutofillManagerWrapper.log("calling requestAutofill"); FocusField focusField = mRequest.getFocusField(); - mAutofillManager.requestAutofill( - mContainerView, -@@ -263,6 +269,7 @@ public class AutofillProvider { + getAutofillManagerWrapper() +@@ -302,6 +308,7 @@ public class AutofillProvider { float width, float height, boolean hasServerPrediction) { @@ -729,7 +748,7 @@ new file mode 100644 diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/components/autofill/content/browser/content_autofill_driver.cc --- a/components/autofill/content/browser/content_autofill_driver.cc +++ b/components/autofill/content/browser/content_autofill_driver.cc -@@ -252,6 +252,13 @@ void RouteToManager(ContentAutofillDriver& source, +@@ -270,6 +270,13 @@ void RouteToManager(ContentAutofillDriver& source, AutofillManager& manager = target.GetAutofillManager(); (manager.* manager_fun)(WithNewVersion(std::forward(args))...); @@ -743,7 +762,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co }, source, Lift(source, std::forward(args))...); } -@@ -638,6 +645,10 @@ ContentAutofillDriver::GetAutofillAgent() { +@@ -656,6 +663,10 @@ ContentAutofillDriver::GetAutofillAgent() { return autofill_agent_; } @@ -770,7 +789,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.h b/com content::RenderFrameHost* render_frame_host() { return &*render_frame_host_; } const content::RenderFrameHost* render_frame_host() const { return &*render_frame_host_; -@@ -305,6 +311,10 @@ class ContentAutofillDriver : public AutofillDriver, +@@ -306,6 +312,10 @@ class ContentAutofillDriver : public AutofillDriver, // The factory that created this driver. Outlives `this`. const raw_ref owner_; @@ -813,7 +832,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver_factory diff --git a/components/autofill/content/renderer/autofill_agent.cc b/components/autofill/content/renderer/autofill_agent.cc --- a/components/autofill/content/renderer/autofill_agent.cc +++ b/components/autofill/content/renderer/autofill_agent.cc -@@ -1529,14 +1529,19 @@ void AutofillAgent::ShowSuggestions( +@@ -1543,14 +1543,19 @@ void AutofillAgent::ShowSuggestions( password_generation_agent_->ShowPasswordGenerationSuggestions( input_element, form_cache)) { is_popup_possibly_visible_ = true; @@ -836,7 +855,7 @@ diff --git a/components/autofill/content/renderer/autofill_agent.cc b/components diff --git a/components/autofill/content/renderer/password_autofill_agent.cc b/components/autofill/content/renderer/password_autofill_agent.cc --- a/components/autofill/content/renderer/password_autofill_agent.cc +++ b/components/autofill/content/renderer/password_autofill_agent.cc -@@ -853,7 +853,10 @@ void PasswordAutofillAgent::UpdatePasswordStateForTextChange( +@@ -860,7 +860,10 @@ void PasswordAutofillAgent::UpdatePasswordStateForTextChange( void PasswordAutofillAgent::TrackAutofilledElement( const WebFormControlElement& element) { @@ -877,7 +896,7 @@ diff --git a/components/autofill/core/browser/foundations/autofill_driver_factor diff --git a/components/autofill/core/browser/foundations/autofill_manager.h b/components/autofill/core/browser/foundations/autofill_manager.h --- a/components/autofill/core/browser/foundations/autofill_manager.h +++ b/components/autofill/core/browser/foundations/autofill_manager.h -@@ -222,6 +222,8 @@ class AutofillManager +@@ -223,6 +223,8 @@ class AutofillManager LifecycleState new_state, base::PassKey pass_key); @@ -889,7 +908,7 @@ diff --git a/components/autofill/core/browser/foundations/autofill_manager.h b/c diff --git a/components/autofill/core/browser/foundations/browser_autofill_manager.cc b/components/autofill/core/browser/foundations/browser_autofill_manager.cc --- a/components/autofill/core/browser/foundations/browser_autofill_manager.cc +++ b/components/autofill/core/browser/foundations/browser_autofill_manager.cc -@@ -712,6 +712,8 @@ base::WeakPtr BrowserAutofillManager::GetWeakPtr() { +@@ -724,6 +724,8 @@ base::WeakPtr BrowserAutofillManager::GetWeakPtr() { return weak_ptr_factory_.GetWeakPtr(); } @@ -901,7 +920,7 @@ diff --git a/components/autofill/core/browser/foundations/browser_autofill_manag diff --git a/components/autofill/core/browser/foundations/browser_autofill_manager.h b/components/autofill/core/browser/foundations/browser_autofill_manager.h --- a/components/autofill/core/browser/foundations/browser_autofill_manager.h +++ b/components/autofill/core/browser/foundations/browser_autofill_manager.h -@@ -119,6 +119,8 @@ class BrowserAutofillManager : public AutofillManager { +@@ -120,6 +120,8 @@ class BrowserAutofillManager : public AutofillManager { ~BrowserAutofillManager() override; @@ -913,7 +932,7 @@ diff --git a/components/autofill/core/browser/foundations/browser_autofill_manag 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 -@@ -850,7 +850,7 @@ BASE_FEATURE(kAutofillThirdPartyModeContentProvider, +@@ -811,7 +811,7 @@ BASE_FEATURE(kAutofillThirdPartyModeContentProvider, BASE_FEATURE(kAutofillVirtualViewStructureAndroid, "AutofillVirtualViewStructureAndroid", base::FEATURE_ENABLED_BY_DEFAULT); @@ -925,7 +944,7 @@ diff --git a/components/autofill/core/common/autofill_features.cc b/components/a diff --git a/components/autofill/core/common/autofill_features.h b/components/autofill/core/common/autofill_features.h --- a/components/autofill/core/common/autofill_features.h +++ b/components/autofill/core/common/autofill_features.h -@@ -308,28 +308,6 @@ COMPONENT_EXPORT(AUTOFILL) +@@ -300,28 +300,6 @@ COMPONENT_EXPORT(AUTOFILL) BASE_DECLARE_FEATURE(kAutofillThirdPartyModeContentProvider); COMPONENT_EXPORT(AUTOFILL) BASE_DECLARE_FEATURE(kAutofillVirtualViewStructureAndroid); @@ -966,7 +985,7 @@ diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/auto registry->RegisterIntegerPref(kAutocompleteLastVersionRetentionPolicy, 0); registry->RegisterStringPref(kAutofillUploadEncodingSeed, ""); registry->RegisterDictionaryPref(kAutofillVoteUploadEvents); -@@ -87,7 +89,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -89,7 +91,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { false); #if BUILDFLAG(IS_ANDROID) @@ -978,7 +997,7 @@ diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/auto diff --git a/components/autofill/core/common/autofill_prefs.h b/components/autofill/core/common/autofill_prefs.h --- a/components/autofill/core/common/autofill_prefs.h +++ b/components/autofill/core/common/autofill_prefs.h -@@ -104,6 +104,11 @@ inline constexpr char kAutofillUploadEventsLastResetTimestamp[] = +@@ -110,6 +110,11 @@ inline constexpr char kAutofillUploadEventsLastResetTimestamp[] = // retention policy was run. inline constexpr char kAutocompleteLastVersionRetentionPolicy[] = "autocomplete.retention_policy_last_version"; diff --git a/build/patches/Enable-network-isolation-features.patch b/build/patches/Enable-network-isolation-features.patch index c883e8c8..71626bda 100644 --- a/build/patches/Enable-network-isolation-features.patch +++ b/build/patches/Enable-network-isolation-features.patch @@ -53,7 +53,7 @@ new file mode 100644 diff --git a/net/http/http_cache.cc b/net/http/http_cache.cc --- a/net/http/http_cache.cc +++ b/net/http/http_cache.cc -@@ -655,7 +655,7 @@ bool HttpCache::CanGenerateCacheKeyForRequest(const HttpRequestInfo* request) { +@@ -652,7 +652,7 @@ bool HttpCache::CanGenerateCacheKeyForRequest(const HttpRequestInfo* request) { // static // Generate a key that can be used inside the cache. @@ -62,7 +62,7 @@ diff --git a/net/http/http_cache.cc b/net/http/http_cache.cc const GURL& url, int load_flags, const NetworkIsolationKey& network_isolation_key, -@@ -692,8 +692,8 @@ std::string HttpCache::GenerateCacheKey( +@@ -690,8 +690,8 @@ std::string HttpCache::GenerateCacheKey( const bool is_initiator_cross_site = !net::SchemefulSite::IsSameSite(*initiator, url::Origin::Create(url)); if (is_initiator_cross_site) { @@ -73,7 +73,7 @@ diff --git a/net/http/http_cache.cc b/net/http/http_cache.cc } } isolation_key = base::StrCat( -@@ -708,9 +708,11 @@ std::string HttpCache::GenerateCacheKey( +@@ -706,9 +706,11 @@ std::string HttpCache::GenerateCacheKey( // Strip out the reference, username, and password sections of the URL and // concatenate with the credential_key, the post_key, and the network // isolation key if we are splitting the cache. @@ -86,7 +86,7 @@ diff --git a/net/http/http_cache.cc b/net/http/http_cache.cc } // static -@@ -733,10 +735,12 @@ HttpCache::GenerateCacheKeyForRequestWithAlternateURL( +@@ -731,11 +733,13 @@ HttpCache::GenerateCacheKeyForRequestWithAlternateURL( const int64_t upload_data_identifier = request->upload_data_stream ? request->upload_data_stream->identifier() : int64_t(0); @@ -94,7 +94,8 @@ diff --git a/net/http/http_cache.cc b/net/http/http_cache.cc + auto key = GenerateCacheKey2( url, request->load_flags, request->network_isolation_key, upload_data_identifier, request->is_subframe_document_resource, - request->is_main_frame_navigation, request->initiator); + request->is_main_frame_navigation, request->is_shared_resource, + request->initiator); + if (key.empty()) return std::nullopt; + 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 0f75a16c..e9892829 100644 --- a/build/patches/Enable-search-engine-settings-desktop-ui.patch +++ b/build/patches/Enable-search-engine-settings-desktop-ui.patch @@ -15,7 +15,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../chrome_browser_interface_binders.cc | 3 + .../chrome_browser_interface_binders_webui.cc | 21 ++ chrome/browser/extensions/extension_util.h | 2 +- - chrome/browser/resources/BUILD.gn | 6 + + chrome/browser/resources/BUILD.gn | 7 + chrome/browser/resources/settings/BUILD.gn | 2 +- .../resources/settings/page_visibility.ts | 36 ++- .../search_engine_edit_dialog.html | 6 + @@ -31,7 +31,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../browser/search_engines/android/BUILD.gn | 1 + .../java/res/layout/search_engine_layout.xml | 25 ++ .../settings/SearchEngineSettings.java | 21 ++ - chrome/browser/ui/BUILD.gn | 25 ++ + chrome/browser/ui/BUILD.gn | 25 +- .../edit_search_engine_controller.cc | 8 +- .../edit_search_engine_controller.h | 6 +- .../keyword_editor_controller.cc | 13 +- @@ -78,7 +78,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 +- - 71 files changed, 1161 insertions(+), 70 deletions(-) + 71 files changed, 1161 insertions(+), 71 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 @@ -141,7 +141,7 @@ diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp --- a/chrome/app/settings_strings.grdp +++ b/chrome/app/settings_strings.grdp -@@ -2397,6 +2397,9 @@ +@@ -2143,6 +2143,9 @@ URL with %s in place of query @@ -419,7 +419,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 -@@ -3575,6 +3575,9 @@ static_library("browser") { +@@ -3631,6 +3631,9 @@ static_library("browser") { "//components/user_scripts/android", ] } @@ -432,7 +432,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/chrome_browser_interface_binders.cc b/chrome/browser/chrome_browser_interface_binders.cc --- a/chrome/browser/chrome_browser_interface_binders.cc +++ b/chrome/browser/chrome_browser_interface_binders.cc -@@ -88,6 +88,9 @@ +@@ -87,6 +87,9 @@ #endif #if BUILDFLAG(IS_ANDROID) @@ -458,7 +458,7 @@ diff --git a/chrome/browser/chrome_browser_interface_binders_webui.cc b/chrome/b #if BUILDFLAG(IS_ANDROID) #include "chrome/browser/ui/webui/feed_internals/feed_internals.mojom.h" #include "chrome/browser/ui/webui/feed_internals/feed_internals_ui.h" -@@ -477,6 +483,15 @@ void PopulateChromeWebUIFrameBinders( +@@ -485,6 +491,15 @@ void PopulateChromeWebUIFrameBinders( } #endif @@ -474,7 +474,7 @@ diff --git a/chrome/browser/chrome_browser_interface_binders_webui.cc b/chrome/b #if !BUILDFLAG(IS_ANDROID) RegisterWebUIControllerInterfaceBinder< search_engine_choice::mojom::PageHandlerFactory, SearchEngineChoiceUI>( -@@ -611,6 +626,9 @@ void PopulateChromeWebUIFrameBinders( +@@ -627,6 +642,9 @@ void PopulateChromeWebUIFrameBinders( RegisterWebUIControllerInterfaceBinder(map); @@ -484,7 +484,7 @@ diff --git a/chrome/browser/chrome_browser_interface_binders_webui.cc b/chrome/b RegisterWebUIControllerInterfaceBinder< customize_color_scheme_mode::mojom:: CustomizeColorSchemeModeHandlerFactory, -@@ -631,6 +649,9 @@ void PopulateChromeWebUIFrameBinders( +@@ -647,6 +665,9 @@ void PopulateChromeWebUIFrameBinders( CertificateManagerUI>(map); #endif // BUILDFLAG(CHROME_ROOT_STORE_CERT_MANAGEMENT_UI) @@ -497,21 +497,21 @@ diff --git a/chrome/browser/chrome_browser_interface_binders_webui.cc b/chrome/b diff --git a/chrome/browser/extensions/extension_util.h b/chrome/browser/extensions/extension_util.h --- a/chrome/browser/extensions/extension_util.h +++ b/chrome/browser/extensions/extension_util.h -@@ -13,7 +13,7 @@ +@@ -12,7 +12,7 @@ #include "extensions/buildflags/buildflags.h" #include "extensions/common/constants.h" -static_assert(BUILDFLAG(ENABLE_EXTENSIONS_CORE)); +// static_assert(BUILDFLAG(ENABLE_EXTENSIONS_CORE)); - namespace content { - class BrowserContext; + namespace base { + class CommandLine; diff --git a/chrome/browser/resources/BUILD.gn b/chrome/browser/resources/BUILD.gn --- a/chrome/browser/resources/BUILD.gn +++ b/chrome/browser/resources/BUILD.gn -@@ -21,6 +21,12 @@ group("resources") { - "segmentation_internals:resources", - ] +@@ -25,6 +25,13 @@ group("resources") { + public_deps += [ ":component_extension_resources" ] + } + if (is_android) { + public_deps += [ @@ -519,6 +519,7 @@ diff --git a/chrome/browser/resources/BUILD.gn b/chrome/browser/resources/BUILD. + "settings_shared:resources", + ] + } ++ if (!is_android) { public_deps += [ ":app_icon_resources", @@ -912,22 +913,22 @@ diff --git a/chrome/browser/search_engines/android/java/src/org/chromium/chrome/ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -702,6 +702,12 @@ static_library("ui") { +@@ -679,7 +679,11 @@ static_library("ui") { + "//ui/webui", "//v8:v8_version", ] - +- + if (is_android) { + deps += [ + "//ui/webui/resources/cr_components/help_bubble:mojo_bindings", + ] + } -+ + # TODO(crbug.com/413572035): Move into build files of the actual + # modules depending on this. eg: autofill, user_education. if (is_chrome_branded) { - deps += [ "//components/plus_addresses/resources:vector_icons" ] - } -@@ -1001,6 +1007,25 @@ static_library("ui") { - "android/toolbar/extension_actions_bridge_factory.h", - ] +@@ -959,6 +963,25 @@ static_library("ui") { + + deps += [ "//extensions/browser:extension_action_enums" ] } + sources += [ + "webui/settings/settings_ui_android.cc", @@ -985,7 +986,7 @@ diff --git a/chrome/browser/ui/search_engines/edit_search_engine_controller.cc b diff --git a/chrome/browser/ui/search_engines/edit_search_engine_controller.h b/chrome/browser/ui/search_engines/edit_search_engine_controller.h --- a/chrome/browser/ui/search_engines/edit_search_engine_controller.h +++ b/chrome/browser/ui/search_engines/edit_search_engine_controller.h -@@ -23,7 +23,8 @@ class EditSearchEngineControllerDelegate { +@@ -22,7 +22,8 @@ class EditSearchEngineControllerDelegate { virtual void OnEditedKeyword(TemplateURL* template_url, const std::u16string& title, const std::u16string& keyword, @@ -995,7 +996,7 @@ diff --git a/chrome/browser/ui/search_engines/edit_search_engine_controller.h b/ protected: virtual ~EditSearchEngineControllerDelegate() = default; -@@ -62,7 +63,8 @@ class EditSearchEngineController { +@@ -61,7 +62,8 @@ class EditSearchEngineController { // Completes the add or edit of a search engine. void AcceptAddOrEdit(const std::u16string& title_input, const std::u16string& keyword_input, @@ -1075,7 +1076,7 @@ diff --git a/chrome/browser/ui/search_engines/keyword_editor_controller.h b/chro diff --git a/chrome/browser/ui/search_engines/template_url_table_model.cc b/chrome/browser/ui/search_engines/template_url_table_model.cc --- a/chrome/browser/ui/search_engines/template_url_table_model.cc +++ b/chrome/browser/ui/search_engines/template_url_table_model.cc -@@ -207,7 +207,8 @@ void TemplateURLTableModel::Remove(size_t index) { +@@ -201,7 +201,8 @@ void TemplateURLTableModel::Remove(size_t index) { void TemplateURLTableModel::Add(size_t index, const std::u16string& short_name, const std::u16string& keyword, @@ -1085,7 +1086,7 @@ diff --git a/chrome/browser/ui/search_engines/template_url_table_model.cc b/chro DCHECK(index <= RowCount()); DCHECK(!url.empty()); TemplateURLData data; -@@ -215,13 +216,15 @@ void TemplateURLTableModel::Add(size_t index, +@@ -209,13 +210,15 @@ void TemplateURLTableModel::Add(size_t index, data.SetKeyword(keyword); data.SetURL(url); data.is_active = TemplateURLData::ActiveStatus::kTrue; @@ -1102,7 +1103,7 @@ diff --git a/chrome/browser/ui/search_engines/template_url_table_model.cc b/chro DCHECK(index <= RowCount()); DCHECK(!url.empty()); TemplateURL* template_url = GetTemplateURL(index); -@@ -230,7 +233,7 @@ void TemplateURLTableModel::ModifyTemplateURL(size_t index, +@@ -224,7 +227,7 @@ void TemplateURLTableModel::ModifyTemplateURL(size_t index, DCHECK(template_url_service_->GetDefaultSearchProvider() != template_url || template_url->SupportsReplacement( template_url_service_->search_terms_data())); @@ -1114,7 +1115,7 @@ diff --git a/chrome/browser/ui/search_engines/template_url_table_model.cc b/chro diff --git a/chrome/browser/ui/search_engines/template_url_table_model.h b/chrome/browser/ui/search_engines/template_url_table_model.h --- a/chrome/browser/ui/search_engines/template_url_table_model.h +++ b/chrome/browser/ui/search_engines/template_url_table_model.h -@@ -61,13 +61,15 @@ class TemplateURLTableModel : public ui::TableModel, +@@ -58,13 +58,15 @@ class TemplateURLTableModel : public ui::TableModel, void Add(size_t index, const std::u16string& short_name, const std::u16string& keyword, @@ -1135,7 +1136,7 @@ diff --git a/chrome/browser/ui/search_engines/template_url_table_model.h b/chrom diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/ui/webui/chrome_web_ui_configs.cc --- a/chrome/browser/ui/webui/chrome_web_ui_configs.cc +++ b/chrome/browser/ui/webui/chrome_web_ui_configs.cc -@@ -61,6 +61,11 @@ +@@ -63,6 +63,11 @@ #include "components/user_scripts/browser/ui/user_scripts_ui.h" #endif @@ -1147,7 +1148,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 -@@ -420,4 +425,7 @@ void RegisterChromeWebUIConfigs() { +@@ -436,4 +441,7 @@ void RegisterChromeWebUIConfigs() { #if BUILDFLAG(IS_ANDROID) map.AddWebUIConfig(std::make_unique()); #endif @@ -1217,7 +1218,7 @@ diff --git a/chrome/browser/ui/webui/favicon_source.cc b/chrome/browser/ui/webui diff --git a/chrome/browser/ui/webui/favicon_source.h b/chrome/browser/ui/webui/favicon_source.h --- a/chrome/browser/ui/webui/favicon_source.h +++ b/chrome/browser/ui/webui/favicon_source.h -@@ -65,9 +65,11 @@ class FaviconSource : public content::URLDataSource { +@@ -64,9 +64,11 @@ class FaviconSource : public content::URLDataSource { int render_process_id) override; protected: @@ -1232,7 +1233,7 @@ diff --git a/chrome/browser/ui/webui/favicon_source.h b/chrome/browser/ui/webui/ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome/browser/ui/webui/settings/search_engines_handler.cc --- a/chrome/browser/ui/webui/settings/search_engines_handler.cc +++ b/chrome/browser/ui/webui/settings/search_engines_handler.cc -@@ -35,10 +35,12 @@ +@@ -34,10 +34,12 @@ #include "components/search_engines/template_url.h" #include "components/search_engines/template_url_service.h" #include "content/public/browser/web_ui.h" @@ -1245,7 +1246,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome #if BUILDFLAG(IS_CHROMEOS) #include "ash/public/cpp/new_window_delegate.h" -@@ -50,6 +52,7 @@ namespace { +@@ -49,6 +51,7 @@ namespace { const char kSearchEngineField[] = "searchEngine"; const char kKeywordField[] = "keyword"; const char kQueryUrlField[] = "queryUrl"; @@ -1254,9 +1255,9 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome // Dummy number used for indicating that a new search engine is added. const int kNewSearchEngineIndex = -1; @@ -252,9 +255,10 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine( - table_model->GetText(index, IDS_SEARCH_ENGINES_EDITOR_DESCRIPTION_COLUMN)); - dict.Set("keyword", table_model->GetKeywordToDisplay(index)); + dict.Set("keyword", table_model->GetText( + index, IDS_SEARCH_ENGINES_EDITOR_KEYWORD_COLUMN)); - Profile* profile = Profile::FromWebUI(web_ui()); dict.Set("url", template_url->url_ref().DisplayURL(UIThreadSearchTermsData())); @@ -1265,8 +1266,8 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome dict.Set("urlLocked", ((template_url->prepopulate_id() > 0) || (template_url->starter_pack_id() > 0))); GURL icon_url = template_url->favicon_url(); -@@ -262,6 +266,8 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine( - dict.Set("iconURL", icon_url.spec()); +@@ -268,6 +272,8 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine( + #endif } +#if !BUILDFLAG(IS_ANDROID) @@ -1274,15 +1275,15 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome // The icons that are used for search engines in the EEA region are bundled // with Chrome. We use the favicon service for countries outside the EEA // region to guarantee having icons for all search engines. -@@ -280,6 +286,7 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine( - dict.Set("iconPath", base::StrCat({icon_path, "@2x"})); - } +@@ -284,6 +290,7 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine( + base::StrCat({"chrome://theme/", + template_url->GetBuiltinImageResourceId(), "@2x"})); } +#endif dict.Set("modelIndex", base::checked_cast(index)); -@@ -296,6 +303,7 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine( +@@ -300,6 +307,7 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine( dict.Set("isOmniboxExtension", type == TemplateURL::OMNIBOX_API_EXTENSION); dict.Set("isPrepopulated", template_url->prepopulate_id() > 0); dict.Set("isStarterPack", template_url->starter_pack_id() > 0); @@ -1290,7 +1291,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome if (type == TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION || type == TemplateURL::OMNIBOX_API_EXTENSION) { const extensions::Extension* extension = -@@ -312,6 +320,7 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine( +@@ -316,6 +324,7 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine( dict.Set("extension", std::move(ext_info)); } } @@ -1298,7 +1299,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome return dict; } -@@ -414,12 +423,13 @@ void SearchEnginesHandler::HandleSearchEngineEditStarted( +@@ -418,12 +427,13 @@ void SearchEnginesHandler::HandleSearchEngineEditStarted( void SearchEnginesHandler::OnEditedKeyword(TemplateURL* template_url, const std::u16string& title, const std::u16string& keyword, @@ -1315,7 +1316,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome } edit_controller_.reset(); -@@ -449,6 +459,8 @@ bool SearchEnginesHandler::CheckFieldValidity(const std::string& field_name, +@@ -453,6 +463,8 @@ bool SearchEnginesHandler::CheckFieldValidity(const std::string& field_name, is_valid = edit_controller_->IsKeywordValid(base::UTF8ToUTF16(field_value)); } else if (field_name.compare(kQueryUrlField) == 0) { is_valid = edit_controller_->IsURLValid(field_value); @@ -1324,7 +1325,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome } else { NOTREACHED(); } -@@ -471,18 +483,20 @@ void SearchEnginesHandler::HandleSearchEngineEditCompleted( +@@ -475,18 +487,20 @@ void SearchEnginesHandler::HandleSearchEngineEditCompleted( return; } @@ -1364,17 +1365,8 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.h b/chrome/ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc --- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc +++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc -@@ -2484,6 +2484,8 @@ void AddSearchEnginesStrings(content::WebUIDataSource* html_source) { - {"searchEnginesQueryURL", IDS_SETTINGS_SEARCH_ENGINES_QUERY_URL}, - {"searchEnginesQueryURLExplanation", - IDS_SETTINGS_SEARCH_ENGINES_QUERY_URL_EXPLANATION}, -+ {"searchEnginesSuggestionURLExplanation", -+ IDS_SETTINGS_SEARCH_ENGINES_SUGGESTION_URL_EXPLANATION}, - {"searchEnginesMakeDefault", IDS_SETTINGS_SEARCH_ENGINES_MAKE_DEFAULT}, - {"searchEnginesActivate", IDS_SETTINGS_SEARCH_ENGINES_ACTIVATE}, - {"searchEnginesDeactivate", IDS_SETTINGS_SEARCH_ENGINES_DEACTIVATE}, -@@ -3838,6 +3840,12 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, - AddSystemStrings(html_source); +@@ -143,6 +143,12 @@ + #include "chrome/browser/ui/webui/settings/system_handler.h" #endif +#if BUILDFLAG(IS_ANDROID) @@ -1383,9 +1375,18 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide + html_source->AddString("chromeAndroid", ""); +#endif + - #if BUILDFLAG(USE_NSS_CERTS) - certificate_manager::AddLocalizedStrings(html_source); + #if BUILDFLAG(IS_LINUX) + #include "ui/display/screen.h" #endif +@@ -2458,6 +2464,8 @@ void AddSearchEnginesStrings(content::WebUIDataSource* html_source) { + {"searchEnginesQueryURL", IDS_SETTINGS_SEARCH_ENGINES_QUERY_URL}, + {"searchEnginesQueryURLExplanation", + IDS_SETTINGS_SEARCH_ENGINES_QUERY_URL_EXPLANATION}, ++ {"searchEnginesSuggestionURLExplanation", ++ IDS_SETTINGS_SEARCH_ENGINES_SUGGESTION_URL_EXPLANATION}, + {"searchEnginesMakeDefault", IDS_SETTINGS_SEARCH_ENGINES_MAKE_DEFAULT}, + {"searchEnginesActivate", IDS_SETTINGS_SEARCH_ENGINES_ACTIVATE}, + {"searchEnginesDeactivate", IDS_SETTINGS_SEARCH_ENGINES_DEACTIVATE}, diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider_android.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider_android.cc new file mode 100644 --- /dev/null @@ -1866,8 +1867,8 @@ new file mode 100644 diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni --- a/chrome/chrome_paks.gni +++ b/chrome/chrome_paks.gni -@@ -169,6 +169,17 @@ template("chrome_extra_paks") { - sources += invoker.additional_paks +@@ -184,6 +184,17 @@ template("chrome_extra_paks") { + deps += [ "//chrome/browser/resources:component_extension_resources" ] } + if (is_android) { @@ -1910,7 +1911,7 @@ new file mode 100644 diff --git a/components/search_engines/android/template_url_service_android.cc b/components/search_engines/android/template_url_service_android.cc --- a/components/search_engines/android/template_url_service_android.cc +++ b/components/search_engines/android/template_url_service_android.cc -@@ -423,7 +423,7 @@ jboolean TemplateUrlServiceAndroid::SetPlayAPISearchEngine( +@@ -422,7 +422,7 @@ jboolean TemplateUrlServiceAndroid::SetPlayAPISearchEngine( if (regulatory_api_turl->safe_for_autoreplace()) { template_url_service_->ResetTemplateURL( regulatory_api_turl, regulatory_api_turl->short_name(), @@ -1933,7 +1934,7 @@ diff --git a/components/search_engines/search_engines_switches.cc b/components/s diff --git a/components/search_engines/template_url.cc b/components/search_engines/template_url.cc --- a/components/search_engines/template_url.cc +++ b/components/search_engines/template_url.cc -@@ -2051,6 +2051,10 @@ void TemplateURL::SetURL(const std::string& url) { +@@ -2098,6 +2098,10 @@ void TemplateURL::SetURL(const std::string& url) { url_ref().InvalidateCachedValues(); } @@ -1947,7 +1948,7 @@ diff --git a/components/search_engines/template_url.cc b/components/search_engin diff --git a/components/search_engines/template_url.h b/components/search_engines/template_url.h --- a/components/search_engines/template_url.h +++ b/components/search_engines/template_url.h -@@ -971,6 +971,7 @@ class TemplateURL { +@@ -975,6 +975,7 @@ class TemplateURL { bool CreatedByRegulatoryProgram() const; void SetURL(const std::string& url); @@ -1958,7 +1959,7 @@ diff --git a/components/search_engines/template_url.h b/components/search_engine diff --git a/components/search_engines/template_url_service.cc b/components/search_engines/template_url_service.cc --- a/components/search_engines/template_url_service.cc +++ b/components/search_engines/template_url_service.cc -@@ -778,13 +778,15 @@ TemplateURL* TemplateURLService::AddWithOverrides( +@@ -770,13 +770,15 @@ TemplateURL* TemplateURLService::AddWithOverrides( std::unique_ptr template_url, const std::u16string& short_name, const std::u16string& keyword, @@ -1975,7 +1976,7 @@ diff --git a/components/search_engines/template_url_service.cc b/components/sear return Add(std::move(template_url)); } -@@ -999,7 +1001,8 @@ void TemplateURLService::IncrementUsageCount(TemplateURL* url) { +@@ -991,7 +993,8 @@ void TemplateURLService::IncrementUsageCount(TemplateURL* url) { void TemplateURLService::ResetTemplateURL(TemplateURL* url, const std::u16string& title, const std::u16string& keyword, @@ -1985,7 +1986,7 @@ diff --git a/components/search_engines/template_url_service.cc b/components/sear DCHECK(!IsCreatedByExtension(url)); DCHECK(!keyword.empty()); DCHECK(!search_url.empty()); -@@ -1011,6 +1014,7 @@ void TemplateURLService::ResetTemplateURL(TemplateURL* url, +@@ -1003,6 +1006,7 @@ void TemplateURLService::ResetTemplateURL(TemplateURL* url, // The urls have changed, reset the favicon url. data.favicon_url = GURL(); } @@ -1996,7 +1997,7 @@ diff --git a/components/search_engines/template_url_service.cc b/components/sear diff --git a/components/search_engines/template_url_service.h b/components/search_engines/template_url_service.h --- a/components/search_engines/template_url_service.h +++ b/components/search_engines/template_url_service.h -@@ -260,7 +260,8 @@ class TemplateURLService final : public WebDataServiceConsumer, +@@ -255,7 +255,8 @@ class TemplateURLService final : public WebDataServiceConsumer, TemplateURL* AddWithOverrides(std::unique_ptr template_url, const std::u16string& short_name, const std::u16string& keyword, @@ -2006,7 +2007,7 @@ diff --git a/components/search_engines/template_url_service.h b/components/searc // Removes the keyword from the model. This deletes the supplied TemplateURL. // This fails if the supplied template_url is the default search provider. -@@ -346,7 +347,8 @@ class TemplateURLService final : public WebDataServiceConsumer, +@@ -341,7 +342,8 @@ class TemplateURLService final : public WebDataServiceConsumer, void ResetTemplateURL(TemplateURL* url, const std::u16string& title, const std::u16string& keyword, @@ -2309,7 +2310,7 @@ diff --git a/ui/webui/resources/cr_elements/BUILD.gn b/ui/webui/resources/cr_ele ts_files += [ "cr_container_shadow_mixin.ts", "cr_radio_button/cr_radio_button_mixin.ts", -@@ -237,7 +237,7 @@ build_webui("build") { +@@ -238,7 +238,7 @@ build_webui("build") { "../js:build_ts", "//third_party/lit/v3_0:build_ts", ] @@ -2359,8 +2360,8 @@ diff --git a/ui/webui/resources/css/BUILD.gn b/ui/webui/resources/css/BUILD.gn diff --git a/ui/webui/resources/images/BUILD.gn b/ui/webui/resources/images/BUILD.gn --- a/ui/webui/resources/images/BUILD.gn +++ b/ui/webui/resources/images/BUILD.gn -@@ -51,7 +51,7 @@ generate_grd("build_grdp") { - input_files += [ "chrome_logo_dark.svg" ] +@@ -55,7 +55,7 @@ generate_grd("build_grdp") { + ] } - if (!is_android && !is_ios) { diff --git a/build/patches/Move-navigation-bar-to-bottom.patch b/build/patches/Move-navigation-bar-to-bottom.patch index dee89f4f..f6d38d39 100644 --- a/build/patches/Move-navigation-bar-to-bottom.patch +++ b/build/patches/Move-navigation-bar-to-bottom.patch @@ -158,7 +158,7 @@ diff --git a/cc/input/browser_controls_offset_manager.cc b/cc/input/browser_cont diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc --- a/cc/trees/layer_tree_host_impl.cc +++ b/cc/trees/layer_tree_host_impl.cc -@@ -5034,6 +5034,9 @@ bool LayerTreeHostImpl::AnimateBrowserControls(base::TimeTicks time) { +@@ -5044,6 +5044,9 @@ bool LayerTreeHostImpl::AnimateBrowserControls(base::TimeTicks time) { if (scroll_delta.IsZero()) return false; @@ -171,7 +171,7 @@ diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator.java -@@ -54,6 +54,7 @@ import org.chromium.components.sensitive_content.SensitiveContentFeatures; +@@ -53,6 +53,7 @@ import org.chromium.components.sensitive_content.SensitiveContentFeatures; import org.chromium.ui.modaldialog.ModalDialogManager; import org.chromium.ui.modelutil.PropertyModel; import org.chromium.ui.modelutil.PropertyModelChangeProcessor; @@ -179,7 +179,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser import java.util.List; -@@ -193,7 +194,8 @@ public class TabGroupUiCoordinator implements TabGroupUiMediator.ResetHandler, T +@@ -183,7 +184,8 @@ public class TabGroupUiCoordinator implements TabGroupUiMediator.ResetHandler, T @Override public void initializeWithNative( BottomControlsCoordinator.BottomControlsVisibilityController visibilityController, @@ -189,7 +189,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser ObservableSupplierImpl tabStripTokenSupplier = new ObservableSupplierImpl<>(); var currentTabGroupModelFilterSupplier = -@@ -285,7 +287,8 @@ public class TabGroupUiCoordinator implements TabGroupUiMediator.ResetHandler, T +@@ -274,7 +276,8 @@ public class TabGroupUiCoordinator implements TabGroupUiMediator.ResetHandler, T sharedImageTilesConfigBuilder, mThemeColorProvider, onSnapshotTokenChange, @@ -317,15 +317,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/TabGroupUiProperties.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiProperties.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiProperties.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiProperties.java -@@ -12,6 +12,7 @@ import org.chromium.ui.modelutil.PropertyKey; +@@ -13,6 +13,7 @@ import org.chromium.ui.modelutil.PropertyKey; import org.chromium.ui.modelutil.PropertyModel.WritableBooleanPropertyKey; import org.chromium.ui.modelutil.PropertyModel.WritableIntPropertyKey; import org.chromium.ui.modelutil.PropertyModel.WritableObjectPropertyKey; +import android.content.res.ColorStateList; /** {@link PropertyKey} list for the TabGroupUi. */ - class TabGroupUiProperties { -@@ -39,6 +40,9 @@ class TabGroupUiProperties { + @NullMarked +@@ -41,6 +42,9 @@ class TabGroupUiProperties { public static final WritableObjectPropertyKey> WIDTH_PX_CALLBACK = new WritableObjectPropertyKey<>(); @@ -335,7 +335,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser public static final PropertyKey[] ALL_KEYS = new PropertyKey[] { SHOW_GROUP_DIALOG_ON_CLICK_LISTENER, -@@ -50,5 +54,6 @@ class TabGroupUiProperties { +@@ -52,5 +56,6 @@ class TabGroupUiProperties { TINT, INITIAL_SCROLL_INDEX, WIDTH_PX_CALLBACK, @@ -345,7 +345,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiToolbarView.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiToolbarView.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiToolbarView.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiToolbarView.java -@@ -19,6 +19,10 @@ import org.chromium.base.Callback; +@@ -20,6 +20,10 @@ import org.chromium.build.annotations.Nullable; import org.chromium.chrome.tab_ui.R; import org.chromium.ui.widget.ChromeImageView; @@ -354,9 +354,9 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser +import org.chromium.chrome.browser.flags.ChromeFeatureList; + /** Toolbar for the bottom tab strip see {@link TabGroupUiCoordinator}. */ + @NullMarked public class TabGroupUiToolbarView extends FrameLayout { - private ChromeImageView mNewTabButton; -@@ -93,6 +97,19 @@ public class TabGroupUiToolbarView extends FrameLayout { +@@ -95,6 +99,19 @@ public class TabGroupUiToolbarView extends FrameLayout { mFadingEdgeEnd.setColorFilter(color, PorterDuff.Mode.SRC_IN); } @@ -379,7 +379,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiViewBinder.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiViewBinder.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiViewBinder.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiViewBinder.java -@@ -13,6 +13,7 @@ import static org.chromium.chrome.browser.tasks.tab_management.TabGroupUiPropert +@@ -14,6 +14,7 @@ import static org.chromium.chrome.browser.tasks.tab_management.TabGroupUiPropert import static org.chromium.chrome.browser.tasks.tab_management.TabGroupUiProperties.SHOW_GROUP_DIALOG_ON_CLICK_LISTENER; import static org.chromium.chrome.browser.tasks.tab_management.TabGroupUiProperties.TINT; import static org.chromium.chrome.browser.tasks.tab_management.TabGroupUiProperties.WIDTH_PX_CALLBACK; @@ -387,7 +387,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser import android.view.View; -@@ -51,6 +52,8 @@ class TabGroupUiViewBinder { +@@ -54,6 +55,8 @@ class TabGroupUiViewBinder { } else if (NEW_TAB_BUTTON_ON_CLICK_LISTENER == propertyKey) { viewHolder.toolbarView.setNewTabButtonOnClickListener( model.get(NEW_TAB_BUTTON_ON_CLICK_LISTENER)); @@ -429,7 +429,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.List; -@@ -132,6 +140,124 @@ public class TabListCoordinator +@@ -131,6 +139,124 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO private int mAwaitingTabId = Tab.INVALID_TAB_ID; private @TabActionState int mTabActionState; @@ -554,7 +554,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser /** * Construct a coordinator for UI that shows a list of tabs. * -@@ -367,6 +493,12 @@ public class TabListCoordinator +@@ -363,6 +489,12 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO checkAwaitingLayout(); } }; @@ -567,7 +567,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser mRecyclerView.setLayoutManager(gridLayoutManager); mMediator.registerOrientationListener(gridLayoutManager); mMediator.updateSpanCount( -@@ -376,7 +508,7 @@ public class TabListCoordinator +@@ -372,7 +504,7 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO Rect frame = new Rect(); mActivity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame); updateGridCardLayout(frame.width()); @@ -576,7 +576,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser LinearLayoutManager layoutManager = new LinearLayoutManager( activity, -@@ -391,6 +523,25 @@ public class TabListCoordinator +@@ -387,6 +519,25 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO } }; mRecyclerView.setLayoutManager(layoutManager); @@ -602,7 +602,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser } mMediator.setRecyclerViewItemAnimationToggle(mRecyclerView::setDisableItemAnimations); } -@@ -411,7 +562,7 @@ public class TabListCoordinator +@@ -407,7 +558,7 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO if (hasEmptyView) { mTabListEmptyCoordinator = new TabListEmptyCoordinator( @@ -611,7 +611,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser } configureRecyclerViewTouchHelpers(); -@@ -700,6 +851,9 @@ public class TabListCoordinator +@@ -697,6 +848,9 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO void prepareTabSwitcherPaneView() { registerLayoutChangeListener(); mRecyclerView.setupCustomItemAnimator(); @@ -624,7 +624,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEmptyCoordinator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEmptyCoordinator.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEmptyCoordinator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEmptyCoordinator.java -@@ -9,7 +9,9 @@ import android.view.View; +@@ -11,7 +11,9 @@ import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; @@ -632,9 +632,9 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser +import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider; import androidx.annotation.DrawableRes; - import androidx.annotation.Nullable; import androidx.annotation.StringRes; -@@ -19,6 +21,7 @@ import org.chromium.chrome.browser.flags.ChromeFeatureList; + +@@ -24,6 +26,7 @@ import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.tab_ui.R; import org.chromium.ui.modelutil.ListObservable; import org.chromium.ui.modelutil.ListObservable.ListObserver; @@ -642,7 +642,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser /** * Empty coordinator that is responsible for showing an empty state view in tab switcher when we are -@@ -39,15 +42,18 @@ class TabListEmptyCoordinator { +@@ -47,15 +50,18 @@ class TabListEmptyCoordinator { private boolean mIsTabSwitcherShowing; private boolean mIsListObserverAttached; private @Nullable TabListEmptyIllustrationAnimationManager mIllustrationAnimationManager; @@ -660,9 +660,9 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser mModel = model; + mBrowserControlsStateProvider = browserControlsStateProvider; mListObserver = - new ListObserver() { + new ListObserver<>() { @Override -@@ -169,6 +175,15 @@ class TabListEmptyCoordinator { +@@ -178,6 +184,15 @@ class TabListEmptyCoordinator { public void attachEmptyView() { if (mEmptyView != null && mEmptyView.getParent() == null) { mRootView.addView(mEmptyView); @@ -675,8 +675,8 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser + emptyViewParams.topMargin = toolbarHeightPx; + } + mEmptyView.setLayoutParams(emptyViewParams); + setEmptyViewVisibility(View.GONE); } - setEmptyViewVisibility(View.GONE); } diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherPaneBase.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherPaneBase.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherPaneBase.java @@ -714,15 +714,15 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java --- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java +++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java -@@ -13,6 +13,7 @@ import android.os.Handler; - import android.os.Looper; +@@ -15,6 +15,7 @@ import android.os.Looper; import android.os.SystemClock; + import android.view.Gravity; import android.view.LayoutInflater; +import android.view.Gravity; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; -@@ -579,6 +580,9 @@ public class FeedSurfaceCoordinator +@@ -621,6 +622,9 @@ public class FeedSurfaceCoordinator ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); layoutParams.setMarginStart(margin); layoutParams.setMarginEnd(margin); @@ -735,7 +735,7 @@ diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java -@@ -18,6 +18,14 @@ import org.chromium.chrome.browser.flags.CromiteNativeUtils; +@@ -20,6 +20,14 @@ import org.chromium.chrome.browser.flags.CromiteNativeUtils; import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; @@ -748,9 +748,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s +import org.chromium.chrome.browser.lifetime.ApplicationLifetime; + /** The Chrome implementation of AccessibilitySettingsDelegate. */ + @NullMarked public class ChromeAccessibilitySettingsDelegate implements AccessibilitySettingsDelegate { - private static class TextSizeContrastAccessibilityDelegate -@@ -81,6 +89,12 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting +@@ -84,6 +92,12 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting return new ForceTabletUIDelegate(); } @@ -763,7 +763,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s private final Profile mProfile; /** -@@ -92,6 +106,62 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting +@@ -95,6 +109,62 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting mProfile = profile; } @@ -829,7 +829,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/tabmodel/HeadlessBrowserControlsStateProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/app/tabmodel/HeadlessBrowserControlsStateProvider.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/tabmodel/HeadlessBrowserControlsStateProvider.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/tabmodel/HeadlessBrowserControlsStateProvider.java -@@ -18,6 +18,11 @@ public class HeadlessBrowserControlsStateProvider implements BrowserControlsStat +@@ -25,6 +25,11 @@ public class HeadlessBrowserControlsStateProvider implements BrowserControlsStat return 0; } @@ -844,7 +844,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/tabmodel/He diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java -@@ -258,6 +258,10 @@ public class CompositorViewHolder extends FrameLayout +@@ -259,6 +259,10 @@ public class CompositorViewHolder extends FrameLayout @Override public void setCurrentTouchEventOffsets(float top) { EventForwarder forwarder = getEventForwarder(); @@ -855,7 +855,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/Comp if (forwarder != null) forwarder.setCurrentTouchOffsetY(top); } -@@ -900,6 +904,9 @@ public class CompositorViewHolder extends FrameLayout +@@ -901,6 +905,9 @@ public class CompositorViewHolder extends FrameLayout mApplicationBottomInsetSupplier != null ? mApplicationBottomInsetSupplier.get().webContentsHeightInset : 0; @@ -913,16 +913,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromeTablet.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromeTablet.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromeTablet.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromeTablet.java -@@ -39,6 +39,7 @@ import org.chromium.ui.base.WindowAndroid; +@@ -38,6 +38,7 @@ import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateMa + import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.dragdrop.DragAndDropDelegate; - import org.chromium.ui.modaldialog.ModalDialogManager; import org.chromium.ui.resources.dynamics.DynamicResourceLoader; +import org.chromium.chrome.browser.fullscreen.BrowserControlsManager; /** LayoutManagerChromeTablet is the specialization of LayoutManagerChrome for the tablet. */ public class LayoutManagerChromeTablet extends LayoutManagerChrome { -@@ -138,7 +139,8 @@ public class LayoutManagerChromeTablet extends LayoutManagerChrome { - modalDialogManager, +@@ -134,7 +135,8 @@ public class LayoutManagerChromeTablet extends LayoutManagerChrome { + actionConfirmationManager, dataSharingTabManager, bottomSheetController, - shareDelegateSupplier); @@ -992,7 +992,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over import org.chromium.base.supplier.ObservableSupplier; import org.chromium.base.supplier.ObservableSupplierImpl; import org.chromium.base.supplier.Supplier; -@@ -108,6 +109,8 @@ import org.chromium.ui.modaldialog.ModalDialogManager; +@@ -109,6 +110,8 @@ import org.chromium.ui.interpolators.Interpolators; import org.chromium.ui.resources.ResourceManager; import org.chromium.ui.util.ColorUtils; import org.chromium.url.GURL; @@ -1033,7 +1033,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over + y -= mStripFilterArea.top; long time = time(); if (mModelSelectorButton != null && mModelSelectorButton.click(x, y, buttons)) { - mModelSelectorButton.handleClick(time); + mModelSelectorButton.handleClick(time, buttons); @@ -313,6 +322,7 @@ public class StripLayoutHelperManager if (DragDropGlobalState.hasValue()) { return; @@ -1050,8 +1050,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over getActiveStripLayoutHelper().onLongPress(x, y); } -@@ -449,7 +460,8 @@ public class StripLayoutHelperManager - ModalDialogManager modalDialogManager, +@@ -447,7 +458,8 @@ public class StripLayoutHelperManager + ActionConfirmationManager actionConfirmationManager, DataSharingTabManager dataSharingTabManager, @NonNull BottomSheetController bottomSheetController, - @NonNull Supplier shareDelegateSupplier) { @@ -1060,7 +1060,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over mContext = context; Resources res = context.getResources(); mManagerHost = managerHost; -@@ -556,6 +568,8 @@ public class StripLayoutHelperManager +@@ -557,6 +569,8 @@ public class StripLayoutHelperManager multiInstanceManager, shareDelegateSupplier, TabGroupListBottomSheetCoordinator::new); @@ -1069,10 +1069,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over tabHoverCardViewStub.setOnInflateListener( (viewStub, view) -> { -@@ -809,6 +823,10 @@ public class StripLayoutHelperManager - // layer should be a negative value. - yOffset -= getHeight(); +@@ -815,6 +829,10 @@ public class StripLayoutHelperManager + yOffset = 0; } + + int topControlsHeight = 0; + if (mBrowserControlsManagerSupplier.get() != null) { + topControlsHeight = mBrowserControlsManagerSupplier.get().getTopControlsHeight(); @@ -1080,7 +1080,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over mTabStripTreeProvider.pushAndUpdateStrip( this, mLayerTitleCacheSupplier.get(), -@@ -822,7 +840,9 @@ public class StripLayoutHelperManager +@@ -828,7 +846,9 @@ public class StripLayoutHelperManager mStripTransitionScrimOpacity, mLeftPadding, mRightPadding, @@ -1091,7 +1091,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over return mTabStripTreeProvider; } -@@ -888,11 +908,21 @@ public class StripLayoutHelperManager +@@ -894,11 +914,21 @@ public class StripLayoutHelperManager mRightPadding, mTopPadding); @@ -1242,8 +1242,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/Brow /** A class that manages browser control visibility and positioning. */ public class BrowserControlsManager implements ActivityStateListener, BrowserControlsSizer { // The amount of time to delay the control show request after returning to a once visible -@@ -559,6 +561,14 @@ public class BrowserControlsManager implements ActivityStateListener, BrowserCon - return mTopControlsHeight; +@@ -568,6 +570,14 @@ public class BrowserControlsManager implements ActivityStateListener, BrowserCon + } } + @Override @@ -1257,7 +1257,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/Brow @Override public int getTopControlsMinHeight() { return mTopControlsMinHeight; -@@ -660,6 +670,8 @@ public class BrowserControlsManager implements ActivityStateListener, BrowserCon +@@ -669,6 +679,8 @@ public class BrowserControlsManager implements ActivityStateListener, BrowserCon @Override public float getTopVisibleContentOffset() { @@ -1320,7 +1320,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/modaldialog/Chr diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java -@@ -115,6 +115,7 @@ import org.chromium.content_public.browser.NavigationController; +@@ -116,6 +116,7 @@ import org.chromium.content_public.browser.NavigationController; import org.chromium.ui.base.DeviceFormFactor; import org.chromium.ui.base.WindowAndroid; import org.chromium.url.GURL; @@ -1328,7 +1328,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. import androidx.annotation.NonNull; import org.chromium.chrome.browser.bookmarks.BookmarkManagerOpener; -@@ -775,11 +776,16 @@ public class NewTabPage +@@ -777,11 +778,16 @@ public class NewTabPage final int topControlsDistanceToRest = mBrowserControlsStateProvider.getContentOffset() - mBrowserControlsStateProvider.getTopControlsHeight(); @@ -1347,7 +1347,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. if (topMargin != layoutParams.topMargin || bottomMargin != layoutParams.bottomMargin) { layoutParams.topMargin = topMargin; -@@ -795,9 +801,7 @@ public class NewTabPage +@@ -797,9 +803,7 @@ public class NewTabPage * strip. */ private int getToolbarExtraYOffset() { @@ -1370,10 +1370,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL +import android.view.Gravity; import android.view.View; import android.view.ViewGroup; - import android.widget.LinearLayout; -@@ -170,7 +173,12 @@ public class NewTabPageLayout extends LinearLayout { - mMiddleSpacer = findViewById(R.id.ntp_middle_spacer); + import android.widget.ImageView; +@@ -177,7 +180,12 @@ public class NewTabPageLayout extends LinearLayout mFakeSearchBoxLayout = findViewById(R.id.search_box); + mFakeSearchBoxEditText = findViewById(R.id.search_box_text); insertSiteSectionView(); - + if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { @@ -1555,7 +1555,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/status_indicato diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java -@@ -204,6 +204,9 @@ import org.chromium.url.GURL; +@@ -211,6 +211,9 @@ import org.chromium.url.GURL; import java.util.List; @@ -1565,7 +1565,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar /** * Contains logic for managing the toolbar visual component. This class manages the interactions * with the rest of the application to ensure the toolbar is always visually up to date. -@@ -811,6 +814,17 @@ public class ToolbarManager +@@ -832,6 +835,17 @@ public class ToolbarManager }, AlwaysIncognitoLinkInterceptor.isAlwaysIncognito()); mControlContainer = controlContainer; mToolbarHairline = mControlContainer.findViewById(R.id.toolbar_hairline); @@ -1583,7 +1583,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar mBookmarkModelSupplier = bookmarkModelSupplier; mBookmarkModelSupplier.addObserver(mBookmarkModelSupplierObserver); -@@ -1427,6 +1441,7 @@ public class ToolbarManager +@@ -1457,6 +1471,7 @@ public class ToolbarManager // the height won't be measured by the background image. if (mControlContainer.getBackground() == null) { setControlContainerTopMargin(getToolbarExtraYOffset()); @@ -1591,7 +1591,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar } else if (mLayoutChangeListener == null) { mLayoutChangeListener = (view, -@@ -1440,6 +1455,7 @@ public class ToolbarManager +@@ -1470,6 +1485,7 @@ public class ToolbarManager oldBottom) -> { if (mControlContainer.getBackground() == null) { setControlContainerTopMargin(getToolbarExtraYOffset()); @@ -1599,7 +1599,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar mControlContainer.removeOnLayoutChangeListener( mLayoutChangeListener); mLayoutChangeListener = null; -@@ -1894,9 +1910,21 @@ public class ToolbarManager +@@ -1994,9 +2010,21 @@ public class ToolbarManager return ((LocationBarCoordinator) mLocationBar).getUrlBarViewRectProvider(); } @@ -1622,7 +1622,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar assert mTabGroupUiOneshotSupplier == null; assert mUndoBarThrottle != null; ThemeColorProvider bottomUiThemeColorProvider = -@@ -1911,7 +1939,7 @@ public class ToolbarManager +@@ -2011,7 +2039,7 @@ public class ToolbarManager mActivityTabProvider, mTabModelSelector, mActivity, @@ -1631,7 +1631,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar mBrowserControlsSizer, mScrimManager, mOmniboxFocusStateSupplier, -@@ -1938,7 +1966,7 @@ public class ToolbarManager +@@ -2038,7 +2066,7 @@ public class ToolbarManager mControlsVisibilityDelegate, mFullscreenManager, mEdgeToEdgeControllerSupplier, @@ -1640,7 +1640,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar bottomControlsContentDelegateSupplier, mTabObscuringHandler, mOverlayPanelVisibilitySupplier, -@@ -1946,7 +1974,8 @@ public class ToolbarManager +@@ -2046,7 +2074,8 @@ public class ToolbarManager /* readAloudRestoringSupplier= */ () -> { final var readAloud = mReadAloudControllerSupplier.get(); return readAloud != null && readAloud.isRestoringPlayer(); @@ -1733,7 +1733,7 @@ diff --git a/chrome/browser/android/compositor/layer/toolbar_layer.cc b/chrome/b #include "cc/resources/scoped_ui_resource.h" #include "cc/slim/layer.h" #include "cc/slim/nine_patch_layer.h" -@@ -115,8 +116,13 @@ void ToolbarLayer::PushResource(int toolbar_resource_id, +@@ -116,8 +117,13 @@ void ToolbarLayer::PushResource(int toolbar_resource_id, debug_layer_->RemoveFromParent(); // Position the toolbar at the bottom of the space available for top controls. @@ -1833,9 +1833,9 @@ diff --git a/chrome/browser/browser_controls/android/java/src/org/chromium/chrom diff --git a/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserControlsStateProvider.java b/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserControlsStateProvider.java --- a/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserControlsStateProvider.java +++ b/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserControlsStateProvider.java -@@ -119,6 +119,12 @@ public interface BrowserControlsStateProvider { +@@ -124,6 +124,12 @@ public interface BrowserControlsStateProvider { */ - int getTopControlsHeight(); + int getTopControlsHairlineHeight(); + /** + * @return The height of the top controls in pixels. @@ -1849,15 +1849,15 @@ diff --git a/chrome/browser/browser_controls/android/java/src/org/chromium/chrom diff --git a/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/FeedListContentManager.java b/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/FeedListContentManager.java --- a/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/FeedListContentManager.java +++ b/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/FeedListContentManager.java -@@ -14,6 +14,7 @@ import android.widget.FrameLayout; - import androidx.annotation.Nullable; - import androidx.annotation.Px; +@@ -15,6 +15,7 @@ import androidx.annotation.Px; + import org.chromium.build.annotations.NullMarked; + import org.chromium.build.annotations.Nullable; +import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.xsurface.ListContentManager; import org.chromium.chrome.browser.xsurface.ListContentManagerObserver; import org.chromium.chrome.browser.xsurface.LoggingParameters; -@@ -142,7 +143,10 @@ public class FeedListContentManager implements ListContentManager { +@@ -144,7 +145,10 @@ public class FeedListContentManager implements ListContentManager { FrameLayout enclosingLayout = new FrameLayout(parent.getContext()); FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams( @@ -1880,9 +1880,9 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse #include "chrome/browser/android/webapk/webapk_features.h" #include "chrome/browser/browser_features.h" #include "chrome/browser/contextmenu/context_menu_features.h" -@@ -315,6 +316,8 @@ const base::Feature* const kFeaturesExposedToJava[] = { - &kNavigationCaptureRefactorAndroid, - &kNewTabSearchEngineUrlAndroid, +@@ -326,6 +327,8 @@ const base::Feature* const kFeaturesExposedToJava[] = { + &kNavBarColorAnimation, + &kNavBarColorMatchesTabBackground, &kNewTabPageAndroidTriggerForPrerender2, + &features::kMoveTopToolbarToBottom, + &features::kDisableToolbarSwipeUp, @@ -1892,7 +1892,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 -@@ -434,6 +434,10 @@ public abstract class ChromeFeatureList { +@@ -450,6 +450,10 @@ public abstract class ChromeFeatureList { public static final String NEW_TAB_PAGE_ANDROID_TRIGGER_FOR_PRERENDER2 = "NewTabPageAndroidTriggerForPrerender2"; public static final String NEW_TAB_PAGE_CUSTOMIZATION = "NewTabPageCustomization"; @@ -1900,10 +1900,10 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f + "DisableToolbarSwipeUp"; + public static final String MOVE_TOP_TOOLBAR_TO_BOTTOM = + "MoveTopToolbarToBottom"; - public static final String NEW_TAB_SEARCH_ENGINE_URL_ANDROID = "NewTabSearchEngineUrlAndroid"; + public static final String NEW_TAB_PAGE_CUSTOMIZATION_TOOLBAR_BUTTON = + "NewTabPageCustomizationToolbarButton"; public static final String NOTIFICATION_ONE_TAP_UNSUBSCRIBE = "NotificationOneTapUnsubscribe"; - public static final String NOTIFICATION_PERMISSION_BOTTOM_SHEET = -@@ -801,6 +805,10 @@ public abstract class ChromeFeatureList { +@@ -859,6 +863,10 @@ public abstract class ChromeFeatureList { newCachedFlag(NOTIFICATION_TRAMPOLINE, false); public static final CachedFlag sOptimizationGuidePushNotifications = newCachedFlag(OPTIMIZATION_GUIDE_PUSH_NOTIFICATIONS, true); @@ -1914,8 +1914,8 @@ 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); -@@ -947,6 +955,8 @@ public abstract class ChromeFeatureList { - sNewTabPageCustomization, +@@ -1036,6 +1044,8 @@ public abstract class ChromeFeatureList { + sNewTabPageCustomizationToolbarButton, sNotificationTrampoline, sOptimizationGuidePushNotifications, + sMoveTopToolbarToBottom, @@ -2120,7 +2120,7 @@ diff --git a/chrome/browser/hub/internal/android/res/layout/hub_toolbar_layout.x diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc -@@ -2282,7 +2282,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -2321,7 +2321,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, #if BUILDFLAG(IS_ANDROID) registry->RegisterBooleanPref(prefs::kVirtualKeyboardResizesLayoutByDefault, @@ -2128,7 +2128,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse + true); #endif - registry->RegisterBooleanPref( + #if BUILDFLAG(ENTERPRISE_DATA_CONTROLS) diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenu.java b/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenu.java --- a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenu.java +++ b/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenu.java @@ -2139,19 +2139,19 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch +import android.os.Build; import android.os.SystemClock; import android.text.TextUtils; - import android.view.Gravity; -@@ -52,6 +53,7 @@ import org.chromium.build.annotations.NullMarked; + import android.util.SparseArray; +@@ -53,6 +54,7 @@ import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; import org.chromium.build.annotations.RequiresNonNull; import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider.ControlsPosition; +import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.ui.appmenu.internal.R; import org.chromium.components.browser_ui.styles.SemanticColorUtils; - import org.chromium.components.browser_ui.widget.chips.ChipView; -@@ -284,6 +286,12 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler + import org.chromium.components.browser_ui.util.motion.MotionEventInfo; +@@ -295,6 +297,12 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler } - mListView = (ListView) contentView.findViewById(R.id.app_menu_list); + mListView = contentView.findViewById(R.id.app_menu_list); + if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + // always scroll to the bottom to show new items + mListView.setTranscriptMode(ListView.TRANSCRIPT_MODE_ALWAYS_SCROLL); @@ -2161,7 +2161,7 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch int footerHeight = inflateFooter(footerResourceId, contentView, menuWidth); int headerHeight = inflateHeader(headerResourceId, contentView, menuWidth); -@@ -322,7 +330,7 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler +@@ -333,7 +341,7 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler Math.min( Math.abs(mTempLocation[1] - visibleDisplayFrame.top), Math.abs(mTempLocation[1] - visibleDisplayFrame.bottom)); @@ -2170,7 +2170,7 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch menuItemIds, heightList, visibleDisplayFrame, -@@ -342,8 +350,14 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler +@@ -353,8 +361,14 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler sizingPadding, anchorView, popupWidth, @@ -2186,7 +2186,7 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch try { mPopup.showAtLocation( -@@ -405,11 +419,20 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler +@@ -416,11 +430,20 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler Rect padding, View anchorView, int popupWidth, @@ -2208,7 +2208,7 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch int[] offsets = new int[2]; // If we have a hardware menu button, locate the app menu closer to the estimated // hardware menu button location. -@@ -585,7 +608,7 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler +@@ -596,7 +619,7 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler } @RequiresNonNull("mPopup") @@ -2217,7 +2217,7 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch List menuItemIds, List heightList, Rect appDimensions, -@@ -604,7 +627,13 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler +@@ -615,7 +638,13 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler - footerHeight - headerHeight - anchorViewImpactHeight; @@ -2232,7 +2232,7 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch if (mIsByPermanentButton) availableScreenSpace -= padding.top; if (availableScreenSpace <= 0 && sExceptionReporter != null) { String logMessage = -@@ -634,6 +663,7 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler +@@ -645,6 +674,7 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler menuItemIds, heightList, groupDividerResourceId, availableScreenSpace); menuHeight += footerHeight + headerHeight + padding.top + padding.bottom; mPopup.setHeight(menuHeight); @@ -2243,7 +2243,7 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuHandlerImpl.java b/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuHandlerImpl.java --- a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuHandlerImpl.java +++ b/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuHandlerImpl.java -@@ -23,6 +23,7 @@ import androidx.annotation.VisibleForTesting; +@@ -25,6 +25,7 @@ import androidx.annotation.VisibleForTesting; import org.chromium.base.Callback; import org.chromium.base.metrics.RecordUserAction; @@ -2251,10 +2251,10 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch import org.chromium.base.supplier.Supplier; import org.chromium.build.annotations.MonotonicNonNull; import org.chromium.build.annotations.NullMarked; -@@ -248,7 +249,16 @@ class AppMenuHandlerImpl - id, customViewBinders, customViewTypeOffsetMap); - }, - this); +@@ -241,7 +242,16 @@ class AppMenuHandlerImpl + assert !(isByPermanentButton && startDragging); + + mModelList = mDelegate.getMenuItems(this); + if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + // reverses the order of items in the menu + ModelList modelListReversed = new ModelList(); @@ -2271,7 +2271,7 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch diff --git a/chrome/browser/ui/android/edge_to_edge/internal/java/src/org/chromium/chrome/browser/ui/edge_to_edge/EdgeToEdgeControllerFactory.java b/chrome/browser/ui/android/edge_to_edge/internal/java/src/org/chromium/chrome/browser/ui/edge_to_edge/EdgeToEdgeControllerFactory.java --- a/chrome/browser/ui/android/edge_to_edge/internal/java/src/org/chromium/chrome/browser/ui/edge_to_edge/EdgeToEdgeControllerFactory.java +++ b/chrome/browser/ui/android/edge_to_edge/internal/java/src/org/chromium/chrome/browser/ui/edge_to_edge/EdgeToEdgeControllerFactory.java -@@ -147,6 +147,7 @@ public class EdgeToEdgeControllerFactory { +@@ -149,6 +149,7 @@ public class EdgeToEdgeControllerFactory { * to the window. */ public static boolean isSupportedConfiguration(Activity activity) { @@ -2282,7 +2282,7 @@ diff --git a/chrome/browser/ui/android/edge_to_edge/internal/java/src/org/chromi diff --git a/chrome/browser/ui/android/edge_to_edge/internal/java/src/org/chromium/chrome/browser/ui/edge_to_edge/EdgeToEdgeControllerImpl.java b/chrome/browser/ui/android/edge_to_edge/internal/java/src/org/chromium/chrome/browser/ui/edge_to_edge/EdgeToEdgeControllerImpl.java --- a/chrome/browser/ui/android/edge_to_edge/internal/java/src/org/chromium/chrome/browser/ui/edge_to_edge/EdgeToEdgeControllerImpl.java +++ b/chrome/browser/ui/android/edge_to_edge/internal/java/src/org/chromium/chrome/browser/ui/edge_to_edge/EdgeToEdgeControllerImpl.java -@@ -562,6 +562,7 @@ public class EdgeToEdgeControllerImpl +@@ -580,6 +580,7 @@ public class EdgeToEdgeControllerImpl * the system insets due to the keyboard or the bottom controls being visible. */ private boolean shouldPadAdjusters() { @@ -2293,14 +2293,14 @@ diff --git a/chrome/browser/ui/android/edge_to_edge/internal/java/src/org/chromi diff --git a/chrome/browser/ui/android/edge_to_edge/java/src/org/chromium/chrome/browser/ui/edge_to_edge/EdgeToEdgeUtils.java b/chrome/browser/ui/android/edge_to_edge/java/src/org/chromium/chrome/browser/ui/edge_to_edge/EdgeToEdgeUtils.java --- a/chrome/browser/ui/android/edge_to_edge/java/src/org/chromium/chrome/browser/ui/edge_to_edge/EdgeToEdgeUtils.java +++ b/chrome/browser/ui/android/edge_to_edge/java/src/org/chromium/chrome/browser/ui/edge_to_edge/EdgeToEdgeUtils.java -@@ -327,6 +327,7 @@ public class EdgeToEdgeUtils { +@@ -335,6 +335,7 @@ public class EdgeToEdgeUtils { * @return whether the given window's insets indicate a tappable navigation bar. */ static boolean hasTappableNavigationBar(Window window) { + if ((true)) return true; - var rootInsets = window.getDecorView().getRootWindowInsets(); - assert rootInsets != null; - Insets navigationBarInsets = + if (sObservedTappableNavigationBar + && ChromeFeatureList.sEdgeToEdgeMonitorConfigurations.isEnabled()) { + return true; diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/DeferredIMEWindowInsetApplicationCallback.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/DeferredIMEWindowInsetApplicationCallback.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/DeferredIMEWindowInsetApplicationCallback.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/DeferredIMEWindowInsetApplicationCallback.java @@ -2312,7 +2312,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow private boolean mAnimationInProgress; private @Nullable WindowInsetsAnimationCompat mCurrentAnimation; private @Nullable InsetObserver mInsetObserver; -@@ -88,6 +89,10 @@ public class DeferredIMEWindowInsetApplicationCallback +@@ -89,6 +90,10 @@ public class DeferredIMEWindowInsetApplicationCallback return mKeyboardHeight; } @@ -2323,7 +2323,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow @Override public void onPrepare(WindowInsetsAnimationCompat animation) { if ((animation.getTypeMask() & WindowInsetsCompat.Type.ime()) == 0) return; -@@ -120,11 +125,13 @@ public class DeferredIMEWindowInsetApplicationCallback +@@ -121,11 +126,13 @@ public class DeferredIMEWindowInsetApplicationCallback public WindowInsetsCompat onApplyWindowInsets( View view, WindowInsetsCompat windowInsetsCompat) { int newKeyboardHeight = 0; @@ -2334,9 +2334,9 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow windowInsetsCompat.getInsets(WindowInsetsCompat.Type.systemBars()); newKeyboardHeight = imeInsets.bottom - systemBarInsets.bottom; + mSystemBarInsetsBottom = systemBarInsets.bottom; - } - // Keyboard going away or the change is not animated; apply immediately. - if (newKeyboardHeight < mKeyboardHeight || !mAnimationInProgress) { + + // Since the ime insets are greater than 0, the keyboard is showing, but its height is + // being suppressed in that this class deliberately wants to avoid application resizing. 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 @@ -2454,7 +2454,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/AutocompleteCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java -@@ -10,6 +10,7 @@ import android.view.KeyEvent; +@@ -12,6 +12,7 @@ import android.view.KeyEvent; import android.view.View; import android.view.ViewGroup; @@ -2462,7 +2462,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import androidx.annotation.ColorInt; import androidx.annotation.VisibleForTesting; import androidx.core.view.ViewCompat; -@@ -49,6 +50,7 @@ import org.chromium.ui.modaldialog.ModalDialogManager; +@@ -51,6 +52,7 @@ import org.chromium.ui.modaldialog.ModalDialogManager; import org.chromium.ui.modelutil.LazyConstructionPropertyMcp; import org.chromium.ui.modelutil.MVCListAdapter.ModelList; import org.chromium.ui.modelutil.PropertyModel; @@ -2470,15 +2470,15 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import java.util.ArrayList; import java.util.List; -@@ -68,6 +70,7 @@ public class AutocompleteCoordinator +@@ -70,6 +72,7 @@ public class AutocompleteCoordinator private @Nullable OmniboxSuggestionsDropdown mDropdown; - private ObserverList mScrollListenerList = + private final ObserverList mScrollListenerList = new ObserverList<>(); + private final @NonNull OmniboxSuggestionsDropdownEmbedder mDropdownEmbedder; /** An observer watching for changes to the visual state of the omnibox suggestions. */ public interface OmniboxSuggestionsVisualStateObserver { -@@ -102,6 +105,7 @@ public class AutocompleteCoordinator +@@ -104,6 +107,7 @@ public class AutocompleteCoordinator Context context = parent.getContext(); ModelList listItems = new ModelList(); @@ -2486,7 +2486,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow PropertyModel listModel = new PropertyModel.Builder(SuggestionListProperties.ALL_KEYS) .with(SuggestionListProperties.EMBEDDER, dropdownEmbedder) -@@ -224,6 +228,16 @@ public class AutocompleteCoordinator +@@ -226,6 +230,16 @@ public class AutocompleteCoordinator dropdown.forcePhoneStyleOmnibox(forcePhoneStyleOmnibox); dropdown.setAdapter(mAdapter); @@ -2550,15 +2550,15 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow /** A widget for showing a list of omnibox suggestions. */ @NullMarked public class OmniboxSuggestionsDropdown extends RecyclerView { -@@ -269,7 +272,6 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { +@@ -270,7 +273,6 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { addItemDecoration(new SuggestionHorizontalDivider(context)); mLayoutScrollListener = new SuggestionLayoutScrollListener(context); - setLayoutManager(mLayoutScrollListener); - mSelectionController = new RecyclerViewSelectionController(mLayoutScrollListener); - addOnChildAttachStateChangeListener(mSelectionController); - -@@ -278,6 +280,13 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { + mSelectionController = + new RecyclerViewSelectionController( + mLayoutScrollListener, SelectionController.Mode.SATURATING_WITH_SENTINEL); +@@ -281,6 +283,13 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { resources.getDimensionPixelOffset(R.dimen.omnibox_suggestion_list_padding_bottom); int paddingTop = resources.getDimensionPixelOffset(R.dimen.omnibox_suggestion_list_padding_top); @@ -2627,7 +2627,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 -@@ -1692,6 +1692,12 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1686,6 +1686,12 @@ Your Google account may have other forms of browsing history like searches and a Force Tablet Mode @@ -2643,7 +2643,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/browser/ui/android/toolbar/BUILD.gn b/chrome/browser/ui/android/toolbar/BUILD.gn --- a/chrome/browser/ui/android/toolbar/BUILD.gn +++ b/chrome/browser/ui/android/toolbar/BUILD.gn -@@ -190,6 +190,7 @@ android_library("java") { +@@ -206,6 +206,7 @@ android_library("java") { "//content/public/android:content_java", "//third_party/android_deps:material_design_java", "//third_party/androidx:androidx_annotation_annotation_experimental_java", @@ -2892,7 +2892,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java -@@ -70,6 +70,10 @@ import java.lang.annotation.Retention; +@@ -72,6 +72,10 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.function.BooleanSupplier; @@ -2903,7 +2903,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow /** Layout for the browser controls (omnibox, menu, tab strip, etc..). */ @NullMarked public class ToolbarControlContainer extends OptimizedFrameLayout -@@ -174,6 +178,11 @@ public class ToolbarControlContainer extends OptimizedFrameLayout +@@ -177,6 +181,11 @@ public class ToolbarControlContainer extends OptimizedFrameLayout if (view != null) ((MarginLayoutParams)view.getLayoutParams()).topMargin = tab_strip_height; } @@ -2912,9 +2912,9 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow + CoordinatorLayout.LayoutParams layoutParams = (CoordinatorLayout.LayoutParams)getLayoutParams(); + layoutParams.gravity = Gravity.START | Gravity.BOTTOM; + } - mToolbarContainer = - (ToolbarViewResourceFrameLayout) findViewById(R.id.toolbar_container); + mToolbarContainer = findViewById(R.id.toolbar_container); ViewStub toolbarStub = findViewById(R.id.toolbar_stub); + toolbarStub.setLayoutResource(toolbarLayoutId); diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarOverlayCoordinator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarOverlayCoordinator.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarOverlayCoordinator.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarOverlayCoordinator.java @@ -2980,7 +2980,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarSceneLayer.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarSceneLayer.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarSceneLayer.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarSceneLayer.java -@@ -18,6 +18,7 @@ import org.chromium.components.browser_ui.widget.ClipDrawableProgressBar.Drawing +@@ -17,6 +17,7 @@ import org.chromium.components.browser_ui.widget.ClipDrawableProgressBar.Drawing import org.chromium.ui.modelutil.PropertyKey; import org.chromium.ui.modelutil.PropertyModel; import org.chromium.ui.resources.ResourceManager; @@ -2988,7 +2988,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow /** A SceneLayer to render the top toolbar. This is the "view" piece of the top toolbar overlay. */ @JNINamespace("android") -@@ -44,6 +45,13 @@ class TopToolbarSceneLayer extends SceneOverlayLayer { +@@ -43,6 +44,13 @@ class TopToolbarSceneLayer extends SceneOverlayLayer { /** Push all information about the texture to native at once. */ private void pushProperties(PropertyModel model) { if (mResourceManagerSupplier.get() == null) return; @@ -3002,7 +3002,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow TopToolbarSceneLayerJni.get() .updateToolbarLayer( mNativePtr, -@@ -54,7 +62,7 @@ class TopToolbarSceneLayer extends SceneOverlayLayer { +@@ -53,7 +61,7 @@ class TopToolbarSceneLayer extends SceneOverlayLayer { model.get(TopToolbarOverlayProperties.URL_BAR_RESOURCE_ID), model.get(TopToolbarOverlayProperties.URL_BAR_COLOR), model.get(TopToolbarOverlayProperties.X_OFFSET), @@ -3030,7 +3030,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 -@@ -49,6 +49,11 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -48,6 +48,11 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment private BooleanPreferenceDelegate mForceTabletUIDelegate; static final String PREF_FORCE_TABLET_UI = "force_tablet_ui"; @@ -3042,7 +3042,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c private PageZoomPreference mPageZoomDefaultZoomPref; private ChromeSwitchPreference mPageZoomIncludeOSAdjustment; private ChromeSwitchPreference mPageZoomAlwaysShowPref; -@@ -63,6 +68,10 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -62,6 +67,10 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment mDelegate = delegate; } @@ -3053,7 +3053,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); -@@ -122,6 +131,18 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -118,6 +127,18 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment forceTabletUiPref.setChecked(mForceTabletUIDelegate.getValue()); forceTabletUiPref.setOnPreferenceChangeListener(this); @@ -3072,7 +3072,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c Preference captions = findPreference(PREF_CAPTIONS); captions.setOnPreferenceClickListener( preference -> { -@@ -197,6 +218,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -193,6 +214,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment mDelegate.getBrowserContextHandle(), (Integer) newValue); } else if (PREF_PAGE_ZOOM_ALWAYS_SHOW.equals(preference.getKey())) { PageZoomUtils.setShouldAlwaysShowZoomMenuItem((Boolean) newValue); @@ -3115,7 +3115,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/content/browser/renderer_host/render_widget_host_view_android.cc --- a/content/browser/renderer_host/render_widget_host_view_android.cc +++ b/content/browser/renderer_host/render_widget_host_view_android.cc -@@ -28,6 +28,7 @@ +@@ -31,6 +31,7 @@ #include "base/task/single_thread_task_runner.h" #include "base/task/thread_pool.h" #include "base/threading/scoped_blocking_call.h" @@ -3123,7 +3123,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/ #include "cc/base/math_util.h" #include "cc/slim/layer.h" #include "components/input/events_helper.h" -@@ -900,6 +901,8 @@ void RenderWidgetHostViewAndroid::OnRenderFrameMetadataChangedBeforeActivation( +@@ -917,6 +918,8 @@ void RenderWidgetHostViewAndroid::OnRenderFrameMetadataChangedBeforeActivation( // factor. Thus, |top_content_offset| in CSS pixels is also in DIPs. float top_content_offset = metadata.top_controls_height * metadata.top_controls_shown_ratio; diff --git a/build/patches/Move-some-account-settings-back-to-privacy-settings.patch b/build/patches/Move-some-account-settings-back-to-privacy-settings.patch index 600e2fc7..a103bde1 100644 --- a/build/patches/Move-some-account-settings-back-to-privacy-settings.patch +++ b/build/patches/Move-some-account-settings-back-to-privacy-settings.patch @@ -37,7 +37,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -76,6 +76,13 @@ import org.chromium.ui.text.SpanApplier; +@@ -77,6 +77,13 @@ import org.chromium.ui.text.SpanApplier; import java.util.concurrent.TimeUnit; import java.util.function.Consumer; @@ -51,7 +51,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting /** Fragment to keep track of the all the privacy related preferences. */ public class PrivacySettings extends ChromeBaseSettingsFragment implements Preference.OnPreferenceChangeListener { -@@ -96,6 +103,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -97,6 +104,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private static final String PREF_INCOGNITO_TRACKING_PROTECTIONS = "incognito_tracking_protections"; @VisibleForTesting static final String PREF_DO_NOT_TRACK = "do_not_track"; @@ -68,9 +68,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting @VisibleForTesting static final String PREF_THIRD_PARTY_COOKIES = "third_party_cookies"; @VisibleForTesting static final String PREF_TRACKING_PROTECTION = "tracking_protection"; private static final String PREF_ADVANCED_PROTECTION_INFO = "advanced_protection_info"; -@@ -211,6 +228,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment - passwordLeakTogglePref.setVisible(false); - } +@@ -208,6 +225,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment + (ChromeSwitchPreference) findPreference(PREF_PASSWORD_LEAK_DETECTION); + passwordLeakTogglePref.setOnPreferenceChangeListener(this); + mSearchSuggestions = (ChromeSwitchPreference) findPreference(PREF_SEARCH_SUGGESTIONS); + mSearchSuggestions.setOnPreferenceChangeListener(this); @@ -85,7 +85,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting ChromeSwitchPreference canMakePaymentPref = (ChromeSwitchPreference) findPreference(PREF_CAN_MAKE_PAYMENT); canMakePaymentPref.setOnPreferenceChangeListener(this); -@@ -359,6 +386,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -356,6 +383,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment } else if (PREF_PASSWORD_LEAK_DETECTION.equals(key)) { UserPrefs.get(getProfile()) .setBoolean(Pref.PASSWORD_LEAK_DETECTION_ENABLED, (boolean) newValue); @@ -95,7 +95,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting } return true; } -@@ -371,6 +401,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -368,6 +398,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment /** Updates the preferences. */ public void updatePreferences() { @@ -104,7 +104,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting + ChromeSwitchPreference passwordLeakTogglePref = (ChromeSwitchPreference) findPreference(PREF_PASSWORD_LEAK_DETECTION); - if (passwordLeakTogglePref != null && passwordLeakTogglePref.isVisible()) { + if (passwordLeakTogglePref != null) { 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 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 66aa3b72..00072ebd 100644 --- a/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch +++ b/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch @@ -7,7 +7,7 @@ Voice button and legacy share/voice functionality is not restored. License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../ReaderModeToolbarButtonController.java | 6 +++--- + .../ReaderModeToolbarButtonController.java | 5 +++-- .../ContextualPageActionController.java | 4 ++++ .../chrome/browser/settings/MainSettings.java | 9 +-------- .../segmentation_platform_config.cc | 1 + @@ -19,13 +19,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../adaptive/AdaptiveToolbarStats.java | 2 ++ ...oButtonGroupAdaptiveToolbarPreference.java | 19 ++++++++++++------- ...ve-button-in-top-toolbar-customization.inc | 1 + - 12 files changed, 41 insertions(+), 22 deletions(-) + 12 files changed, 41 insertions(+), 21 deletions(-) create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Restore-adaptive-button-in-top-toolbar-customization.inc diff --git a/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeToolbarButtonController.java b/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeToolbarButtonController.java --- a/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeToolbarButtonController.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeToolbarButtonController.java -@@ -39,12 +39,12 @@ public class ReaderModeToolbarButtonController extends BaseButtonDataProvider { +@@ -39,11 +39,12 @@ public class ReaderModeToolbarButtonController extends BaseButtonDataProvider { modalDialogManager, buttonDrawable, context.getString(R.string.reader_view_text_alt), @@ -34,8 +34,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/R /* supportsTinting= */ true, /* iphCommandBuilder= */ null, AdaptiveToolbarButtonVariant.READER_MODE, -- /* tooltipTextResId= */ Resources.ID_NULL, -- /* showBackgroundHighlight= */ false); +- /* tooltipTextResId= */ Resources.ID_NULL); + /* tooltipTextResId= */ R.string.reader_mode_action_chip_label_simplify_page, + /* showBackgroundHighlight= */ true); } @@ -44,7 +43,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/R diff --git a/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java b/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java --- a/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java -@@ -202,6 +202,10 @@ public class ContextualPageActionController { +@@ -212,6 +212,10 @@ public class ContextualPageActionController { && mTabSupplier.get().getId() == tab.getId(); if (!isSameTab) return; @@ -58,7 +57,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 -@@ -305,14 +305,7 @@ public class MainSettings extends ChromeBaseSettingsFragment +@@ -299,14 +299,7 @@ public class MainSettings extends ChromeBaseSettingsFragment getContext(), getProfile(), /* androidPermissionDelegate= */ null, @@ -107,7 +106,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/res/layout/radio_button_grou diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController.java -@@ -320,7 +320,7 @@ public class AdaptiveToolbarButtonController +@@ -335,7 +335,7 @@ public class AdaptiveToolbarButtonController } private boolean isScreenWideEnoughForButton() { From 0e43fb824845f2992a3e7e0886f08196f1c3ff9a Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Tue, 24 Jun 2025 16:27:23 +0200 Subject: [PATCH 3/9] Bump to 138.0.7204.35 --- build/RELEASE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/RELEASE b/build/RELEASE index f7c12494..c48d8d13 100644 --- a/build/RELEASE +++ b/build/RELEASE @@ -1 +1 @@ -137.0.7151.104 \ No newline at end of file +138.0.7204.35 \ No newline at end of file From ea7516ad3bed5e4aeb0984edc6ac830d76c5fb3f Mon Sep 17 00:00:00 2001 From: uazo <29201891+uazo@users.noreply.github.com> Date: Tue, 24 Jun 2025 14:33:45 +0000 Subject: [PATCH 4/9] [AUTO] Patches auto-rebase --- build/patches/eyeo-133.0.6943.49-android_api.patch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 f228f4d2..4317e50b 100644 --- a/build/patches/eyeo-133.0.6943.49-android_api.patch +++ b/build/patches/eyeo-133.0.6943.49-android_api.patch @@ -267,7 +267,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 -@@ -988,6 +988,12 @@ static_library("ui") { +@@ -986,6 +986,12 @@ static_library("ui") { deps += [ "//components/themes:ntp_background_proto", ] From dfcd7c6bfa9c71a30ddfeeae8aee0b28951d12df Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Thu, 26 Jun 2025 14:47:05 +0200 Subject: [PATCH 5/9] Patches for 138 (final) --- .../AImageReader-CFI-crash-mitigations.patch | 18 +- .../Add-bookmark-import-export-actions.patch | 43 +- ...-to-disable-external-intent-requests.patch | 4 +- ...Add-lifetime-options-for-permissions.patch | 114 ++- .../Add-menu-item-to-bookmark-all-tabs.patch | 53 +- ...e-new-tab-page-for-default-home-page.patch | 19 +- build/patches/Bromite-auto-updater.patch | 14 +- .../Bromite-subresource-adblocker.patch | 4 +- .../Disable-Android-Tab-Declutter.patch | 18 +- build/patches/Disable-FedCm.patch | 17 +- .../patches/Disable-all-predictors-code.patch | 18 +- build/patches/Disable-privacy-sandbox.patch | 67 +- ...ndroid-Dynamic-Performance-Framework.patch | 14 +- .../Enable-Global-Privacy-Control.patch | 14 +- build/patches/Enable-component-updater.patch | 2 +- .../Enable-native-Android-autofill.patch | 44 +- ...le-search-engine-settings-desktop-ui.patch | 32 +- .../Experimental-user-scripts-support.patch | 22 +- build/patches/Eyeo-Adblock-for-Cromite.patch | 122 ++- .../Force-use-vpython3-for-some-scripts.patch | 24 +- .../Move-navigation-bar-to-bottom.patch | 31 +- ...ning-all-cookies-by-top-frame-domain.patch | 17 +- ...vate-network-access-content-settings.patch | 75 +- ...referrals-in-cross-origin-navigation.patch | 40 +- .../Remove-binary-blob-integrations.patch | 876 +++++++++++++++++- ...ore-BookmarkToolbar-setCurrentFolder.patch | 27 +- .../Restore-Simplified-NTP-launch.patch | 56 +- ...-button-in-top-toolbar-customization.patch | 11 +- build/patches/User-agent-customization.patch | 20 +- build/patches/Welcome-screen.patch | 22 +- build/patches/eyeo-133.0.6943.49-base.patch | 9 +- 31 files changed, 1506 insertions(+), 341 deletions(-) diff --git a/build/patches/AImageReader-CFI-crash-mitigations.patch b/build/patches/AImageReader-CFI-crash-mitigations.patch index ab607e6e..4d7bbc8a 100644 --- a/build/patches/AImageReader-CFI-crash-mitigations.patch +++ b/build/patches/AImageReader-CFI-crash-mitigations.patch @@ -31,8 +31,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html gpu/config/gpu_util.cc | 8 ++++++++ gpu/config/gpu_workaround_list.txt | 1 + gpu/ipc/service/gpu_init.cc | 8 ++++++++ - media/gpu/android/video_frame_factory_impl.cc | 12 +++++++++++- - 12 files changed, 89 insertions(+), 1 deletion(-) + media/gpu/android/video_frame_factory_impl.cc | 4 +++- + 12 files changed, 81 insertions(+), 1 deletion(-) create mode 100644 cromite_flags/media/base/media_switches_cc/AImageReader-CFI-crash-mitigations.inc create mode 100644 cromite_flags/media/base/media_switches_h/AImageReader-CFI-crash-mitigations.inc @@ -232,20 +232,12 @@ diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc diff --git a/media/gpu/android/video_frame_factory_impl.cc b/media/gpu/android/video_frame_factory_impl.cc --- a/media/gpu/android/video_frame_factory_impl.cc +++ b/media/gpu/android/video_frame_factory_impl.cc -@@ -35,10 +35,20 @@ namespace { +@@ -35,10 +35,12 @@ namespace { gpu::TextureOwner::Mode GetTextureOwnerMode( VideoFrameFactory::OverlayMode overlay_mode) { -+ CHECK: https://source.chromium.org/chromium/chromium/src/+/0abf370caaac29344f1d3fe4c416b75a17392b65 -+ -+ // TODO(vikassoni) : Currently we have 2 different flags to enable/disable -+ // AImageReader - one for MCVD and other for MediaPlayer here. Merge those 2 -+ // flags into a single flag. Keeping the 2 flags separate for now since finch -+ // experiment using this flag is in progress. -+ const bool a_image_reader_supported = -+ base::android::AndroidImageReader::GetInstance().IsSupported(); -+ const bool enabled = a_image_reader_supported && base::android::EnableAndroidImageReader() && -+ base::FeatureList::IsEnabled(features::kAImageReaderMediaPlayer) ++ const bool enabled = base::android::EnableAndroidImageReader() && ++ base::FeatureList::IsEnabled(features::kAImageReaderMediaPlayer); switch (overlay_mode) { case VideoFrameFactory::OverlayMode::kDontRequestPromotionHints: case VideoFrameFactory::OverlayMode::kRequestPromotionHints: diff --git a/build/patches/Add-bookmark-import-export-actions.patch b/build/patches/Add-bookmark-import-export-actions.patch index e458662d..c1106313 100644 --- a/build/patches/Add-bookmark-import-export-actions.patch +++ b/build/patches/Add-bookmark-import-export-actions.patch @@ -17,7 +17,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../app/bookmarks/BookmarkActivity.java | 31 ++ .../native_page/NativePageFactory.java | 9 +- chrome/browser/BUILD.gn | 11 +- - .../bookmarks/android/bookmark_bridge.cc | 267 +++++++++++++++++ + .../bookmarks/android/bookmark_bridge.cc | 266 ++++++++++++++++ .../bookmarks/android/bookmark_bridge.h | 30 +- .../browser/bookmarks/BookmarkBridge.java | 39 +++ .../browser/bookmarks/BookmarkDelegate.java | 10 + @@ -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, 906 insertions(+), 29 deletions(-) + 41 files changed, 905 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 @@ -282,7 +282,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browser/bookmarks/android/bookmark_bridge.cc --- a/chrome/browser/bookmarks/android/bookmark_bridge.cc +++ b/chrome/browser/bookmarks/android/bookmark_bridge.cc -@@ -68,6 +68,28 @@ +@@ -68,6 +68,27 @@ #include "content/public/browser/web_contents.h" #include "url/gurl.h" @@ -294,8 +294,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse +#include "chrome/browser/importer/profile_writer.h" +#include "chrome/browser/platform_util.h" +#include "chrome/browser/ui/chrome_select_file_policy.h" -+#include "chrome/common/importer/imported_bookmark_entry.h" -+#include "chrome/common/importer/importer_data_types.h" ++#include "components/user_data_importer/common/imported_bookmark_entry.h" +#include "chrome/common/url_constants.h" +#include "components/favicon_base/favicon_usage_data.h" +#include "components/search_engines/template_url.h" @@ -311,7 +310,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse // Must come after all headers that specialize FromJniType() / ToJniType(). #include "chrome/browser/bookmarks/android/jni_headers/BookmarkBridge_jni.h" -@@ -86,6 +108,57 @@ using bookmarks::android::JavaBookmarkIdGetType; +@@ -86,6 +107,57 @@ using bookmarks::android::JavaBookmarkIdGetType; using content::BrowserThread; using power_bookmarks::PowerBookmarkMeta; @@ -369,7 +368,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse namespace { // The key used to connect the instance of the bookmark bridge to the bookmark // model. -@@ -296,6 +369,10 @@ BookmarkBridge::~BookmarkBridge() { +@@ -296,6 +368,10 @@ BookmarkBridge::~BookmarkBridge() { partner_bookmarks_shim_observation_.Reset(); bookmark_model_observation_.Reset(); profile_observation_.Reset(); @@ -380,7 +379,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse } void BookmarkBridge::Destroy(JNIEnv* env) { -@@ -847,6 +924,196 @@ jint BookmarkBridge::GetTotalBookmarkCount( +@@ -847,6 +923,196 @@ jint BookmarkBridge::GetTotalBookmarkCount( return count; } @@ -533,8 +532,8 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse + return; + + // the following import logic comes from BookmarksFileImporter class -+ std::vector bookmarks; -+ std::vector search_engines; ++ std::vector bookmarks; ++ std::vector search_engines; + favicon_base::FaviconUsageDataList favicons; + + bookmark_html_reader::ImportBookmarksFile( @@ -1139,7 +1138,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java --- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java +++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java -@@ -103,6 +103,17 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -102,6 +102,17 @@ public class BookmarkToolbar extends SelectableListToolbar setOnMenuItemClickListener(dragEnabled ? null : this); } @@ -1157,7 +1156,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows void setEditButtonVisible(boolean visible) { mEditButtonVisible = visible; getMenu().findItem(R.id.edit_menu_id).setVisible(visible); -@@ -179,6 +190,12 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -178,6 +189,12 @@ public class BookmarkToolbar extends SelectableListToolbar void setCurrentFolder(BookmarkId folder) { mCurrentFolder = mBookmarkModel.getBookmarkById(folder); @@ -1170,7 +1169,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows } void setNavigateBackRunnable(Runnable navigateBackRunnable) { -@@ -203,6 +220,13 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -202,6 +219,13 @@ public class BookmarkToolbar extends SelectableListToolbar @Override public boolean onMenuItemClick(MenuItem menuItem) { hideOverflowMenu(); @@ -1184,7 +1183,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows return assumeNonNull(mMenuIdClickedFunction).apply(menuItem.getItemId()); } -@@ -223,6 +247,9 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -222,6 +246,9 @@ public class BookmarkToolbar extends SelectableListToolbar protected void showNormalView() { super.showNormalView(); @@ -1359,7 +1358,7 @@ diff --git a/chrome/browser/importer/profile_writer.cc b/chrome/browser/importer + +void ProfileWriter::AddBookmarksWithModel( + BookmarkModel* model, -+ const std::vector& bookmarks, ++ const std::vector& bookmarks, + const std::u16string& top_level_folder_name) { + if (bookmarks.empty()) + return; @@ -1384,7 +1383,7 @@ diff --git a/chrome/browser/importer/profile_writer.h b/chrome/browser/importer/ + virtual void AddBookmarksWithModel( + bookmarks::BookmarkModel* model, -+ const std::vector& bookmarks, ++ const std::vector& bookmarks, + const std::u16string& top_level_folder_name); + virtual void AddFavicons(const favicon_base::FaviconUsageDataList& favicons); @@ -1446,8 +1445,8 @@ diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn "media/chrome_media_drm_bridge_client.cc", "media/chrome_media_drm_bridge_client.h", + ## Bromite dependencies for bookmark import functionality -+ "importer/imported_bookmark_entry.cc", -+ "importer/imported_bookmark_entry.h", ++ "//components/user_data_importer/common/imported_bookmark_entry.cc", ++ "//components/user_data_importer/common/imported_bookmark_entry.h", ] } else { # Non-Android. @@ -1531,8 +1530,8 @@ diff --git a/chrome/utility/importer/bookmark_html_reader.cc b/chrome/utility/im + base::RepeatingCallback cancellation_callback, + base::RepeatingCallback valid_url_callback, + const std::string& content, -+ std::vector* bookmarks, -+ std::vector* search_engines, ++ std::vector* bookmarks, ++ std::vector* search_engines, + favicon_base::FaviconUsageDataList* favicons) { std::vector lines = base::SplitString( content, "\n", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); @@ -1569,8 +1568,8 @@ diff --git a/chrome/utility/importer/bookmark_html_reader.h b/chrome/utility/imp + const base::RepeatingCallback cancellation_callback, + const base::RepeatingCallback valid_url_callback, + const std::string& content, -+ std::vector* bookmarks, -+ std::vector* search_engines, ++ std::vector* bookmarks, ++ std::vector* search_engines, + favicon_base::FaviconUsageDataList* favicons); + // Returns true if |url| should be imported as a search engine, i.e. because it 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 ed54d565..e6a86663 100644 --- a/build/patches/Add-flag-to-disable-external-intent-requests.patch +++ b/build/patches/Add-flag-to-disable-external-intent-requests.patch @@ -184,8 +184,8 @@ diff --git a/components/external_intents/android/java/src/org/chromium/component + public static final String INTENT_BLOCK_EXTERNAL_FORM_REDIRECT_NO_GESTURE_NAME = + "IntentBlockExternalFormRedirectsNoGesture"; + -+ public static final ExternalIntentsFeatures INTENT_BLOCK_EXTERNAL_FORM_REDIRECT_NO_GESTURE = -+ new ExternalIntentsFeatures(-1, INTENT_BLOCK_EXTERNAL_FORM_REDIRECT_NO_GESTURE_NAME); ++ public static final ExternalIntentsFeature INTENT_BLOCK_EXTERNAL_FORM_REDIRECT_NO_GESTURE = ++ new ExternalIntentsFeature(-1, INTENT_BLOCK_EXTERNAL_FORM_REDIRECT_NO_GESTURE_NAME); + public static final String EXTERNAL_NAVIGATION_DEBUG_LOGS_NAME = "ExternalNavigationDebugLogs"; public static final String BLOCK_INTENTS_TO_SELF_NAME = "BlockIntentsToSelf"; diff --git a/build/patches/Add-lifetime-options-for-permissions.patch b/build/patches/Add-lifetime-options-for-permissions.patch index b6435ebc..6b0c81de 100644 --- a/build/patches/Add-lifetime-options-for-permissions.patch +++ b/build/patches/Add-lifetime-options-for-permissions.patch @@ -80,17 +80,17 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../permission_prompt_android.cc | 8 +- .../permission_prompt_android.h | 3 +- .../android/permissions_android_strings.grd | 17 ++++ - .../geolocation_permission_context_android.cc | 34 ++++++-- - .../geolocation_permission_context_android.h | 13 ++- + .../geolocation_permission_context_android.cc | 32 ++++++-- + .../geolocation_permission_context_android.h | 11 ++- .../embedded_permission_prompt_flow_model.cc | 2 +- - .../permissions/permission_context_base.cc | 51 ++++++++++-- + .../permissions/permission_context_base.cc | 49 +++++++++-- .../permissions/permission_context_base.h | 20 ++++- components/permissions/permission_prompt.h | 3 +- - components/permissions/permission_request.cc | 30 ++++++- - components/permissions/permission_request.h | 16 +++- + components/permissions/permission_request.cc | 32 +++++++- + components/permissions/permission_request.h | 18 +++- .../permissions/permission_request_manager.cc | 45 ++++++---- .../permissions/permission_request_manager.h | 11 ++- - 38 files changed, 489 insertions(+), 71 deletions(-) + 38 files changed, 487 insertions(+), 71 deletions(-) diff --git a/chrome/browser/permissions/last_tab_standing_tracker.cc b/chrome/browser/permissions/last_tab_standing_tracker.cc --- a/chrome/browser/permissions/last_tab_standing_tracker.cc @@ -842,19 +842,17 @@ diff --git a/components/permissions/android/permissions_android_strings.grd b/co diff --git a/components/permissions/contexts/geolocation_permission_context_android.cc b/components/permissions/contexts/geolocation_permission_context_android.cc --- a/components/permissions/contexts/geolocation_permission_context_android.cc +++ b/components/permissions/contexts/geolocation_permission_context_android.cc -@@ -193,7 +193,20 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet( +@@ -193,7 +193,18 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet( bool is_one_time, bool is_final_decision) { DCHECK(is_final_decision); -+ NotifyPermissionSetWithLifetime(id, requesting_origin, embedding_origin, ++ NotifyPermissionSetWithLifetime(request_data, + std::move(callback), persist, content_setting, is_one_time, is_final_decision, + content_settings::mojom::LifetimeMode::ALWAYS); +} +void GeolocationPermissionContextAndroid::NotifyPermissionSetWithLifetime( -+ const PermissionRequestID& id, -+ const GURL& requesting_origin, -+ const GURL& embedding_origin, ++ const PermissionRequestData& request_data, + BrowserPermissionCallback callback, + bool persist, + ContentSetting content_setting, @@ -863,7 +861,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr bool is_default_search = IsRequestingOriginDSE(request_data.requesting_origin); if (content_setting == CONTENT_SETTING_ALLOW && -@@ -208,7 +221,8 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet( +@@ -208,7 +219,8 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet( FinishNotifyPermissionSet(request_data.id, request_data.requesting_origin, request_data.embedding_origin, std::move(callback), false /* persist */, @@ -873,7 +871,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr return; } -@@ -228,7 +242,8 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet( +@@ -228,7 +240,8 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet( FinishNotifyPermissionSet(request_data.id, request_data.requesting_origin, request_data.embedding_origin, std::move(callback), false /* persist */, @@ -883,7 +881,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr return; } -@@ -241,13 +256,13 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet( +@@ -241,13 +254,13 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet( &GeolocationPermissionContextAndroid::OnLocationSettingsDialogShown, weak_factory_.GetWeakPtr(), request_data.requesting_origin, request_data.embedding_origin, persist, content_setting, @@ -899,7 +897,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr } content::PermissionResult -@@ -425,7 +440,7 @@ void GeolocationPermissionContextAndroid::OnLocationSettingsDialogShown( +@@ -425,7 +438,7 @@ void GeolocationPermissionContextAndroid::OnLocationSettingsDialogShown( const GURL& embedding_origin, bool persist, ContentSetting content_setting, @@ -908,7 +906,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr LocationSettingsDialogOutcome prompt_outcome) { bool is_default_search = IsRequestingOriginDSE(requesting_origin); if (prompt_outcome == GRANTED) { -@@ -444,7 +459,8 @@ void GeolocationPermissionContextAndroid::OnLocationSettingsDialogShown( +@@ -444,7 +457,8 @@ void GeolocationPermissionContextAndroid::OnLocationSettingsDialogShown( FinishNotifyPermissionSet(location_settings_dialog_request_id_, requesting_origin, embedding_origin, std::move(location_settings_dialog_callback_), @@ -918,7 +916,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr location_settings_dialog_request_id_ = PermissionRequestID(content::GlobalRenderFrameHostId(0, 0), -@@ -458,8 +474,8 @@ void GeolocationPermissionContextAndroid::FinishNotifyPermissionSet( +@@ -458,8 +472,8 @@ void GeolocationPermissionContextAndroid::FinishNotifyPermissionSet( BrowserPermissionCallback callback, bool persist, ContentSetting content_setting, @@ -929,7 +927,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr PermissionRequestData(this, id, content::PermissionRequestDescription( content::PermissionDescriptorUtil:: -@@ -467,7 +483,7 @@ void GeolocationPermissionContextAndroid::FinishNotifyPermissionSet( +@@ -467,7 +481,7 @@ void GeolocationPermissionContextAndroid::FinishNotifyPermissionSet( blink::PermissionType::GEOLOCATION)), requesting_origin), std::move(callback), persist, content_setting, is_one_time, @@ -941,13 +939,11 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr diff --git a/components/permissions/contexts/geolocation_permission_context_android.h b/components/permissions/contexts/geolocation_permission_context_android.h --- a/components/permissions/contexts/geolocation_permission_context_android.h +++ b/components/permissions/contexts/geolocation_permission_context_android.h -@@ -93,6 +93,15 @@ class GeolocationPermissionContextAndroid +@@ -93,6 +93,13 @@ class GeolocationPermissionContextAndroid ContentSetting content_setting, bool is_one_time, bool is_final_decision) override; -+ void NotifyPermissionSetWithLifetime(const PermissionRequestID& id, -+ const GURL& requesting_origin, -+ const GURL& embedding_origin, ++ void NotifyPermissionSetWithLifetime(const PermissionRequestData& request_data, + BrowserPermissionCallback callback, + bool persist, + ContentSetting content_setting, @@ -957,7 +953,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr content::PermissionResult UpdatePermissionStatusWithDeviceStatus( content::WebContents* web_contents, content::PermissionResult result, -@@ -138,6 +147,7 @@ class GeolocationPermissionContextAndroid +@@ -138,6 +145,7 @@ class GeolocationPermissionContextAndroid bool persist, ContentSetting content_setting, bool is_one_time, @@ -965,7 +961,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr LocationSettingsDialogOutcome prompt_outcome); void FinishNotifyPermissionSet(const PermissionRequestID& id, -@@ -146,7 +156,8 @@ class GeolocationPermissionContextAndroid +@@ -146,7 +154,8 @@ class GeolocationPermissionContextAndroid BrowserPermissionCallback callback, bool persist, ContentSetting content_setting, @@ -990,24 +986,24 @@ 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 -@@ -273,6 +273,17 @@ GURL PermissionContextBase::GetEffectiveEmbedderOrigin( - return PermissionUtil::GetLastCommittedOriginAsURL(rfh->GetMainFrame()); +@@ -253,6 +253,17 @@ PermissionContextBase::CreatePermissionRequest( + std::move(request_finished_callback), UsesAutomaticEmbargo()); } +std::unique_ptr +PermissionContextBase::CreatePermissionRequest( + content::WebContents* web_contents, -+ PermissionRequestData request_data, ++ std::unique_ptr request_data, + PermissionRequest::PermissionDecidedCallbackWithLifetime permission_decided_callback, -+ base::OnceClosure delete_callback) const { ++ base::OnceClosure request_finished_callback) const { + return std::make_unique( + std::move(request_data), std::move(permission_decided_callback), -+ std::move(delete_callback)); ++ std::move(request_finished_callback), UsesAutomaticEmbargo()); +} + - content::PermissionResult PermissionContextBase::GetPermissionStatus( - const PermissionResolver& resolver, - content::RenderFrameHost* render_frame_host, + bool PermissionContextBase::UsesAutomaticEmbargo() const { + return true; + } @@ -540,7 +551,8 @@ void PermissionContextBase::PermissionDecided( ContentSetting content_setting, bool is_one_time, @@ -1036,20 +1032,18 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm } } -@@ -652,10 +665,26 @@ void PermissionContextBase::NotifyPermissionSet( +@@ -652,10 +665,24 @@ void PermissionContextBase::NotifyPermissionSet( ContentSetting content_setting, bool is_one_time, bool is_final_decision) { + DCHECK(is_one_time == false); -+ NotifyPermissionSetWithLifetime(request_data, requesting_origin, embedding_origin, std::move(callback), ++ NotifyPermissionSetWithLifetime(request_data, std::move(callback), + persist, content_setting, is_one_time, is_final_decision, + content_settings::mojom::LifetimeMode::ALWAYS); +} + +void PermissionContextBase::NotifyPermissionSetWithLifetime( + const PermissionRequestData& request_data, -+ const GURL& requesting_origin, -+ const GURL& embedding_origin, + BrowserPermissionCallback callback, + bool persist, + ContentSetting content_setting, @@ -1064,7 +1058,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm } if (is_final_decision) { -@@ -696,6 +725,14 @@ void PermissionContextBase::UpdateContentSetting( +@@ -696,6 +723,14 @@ void PermissionContextBase::UpdateContentSetting( const PermissionRequestData& request_data, ContentSetting content_setting, bool is_one_time) { @@ -1079,7 +1073,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm DCHECK_EQ(request_data.requesting_origin, request_data.requesting_origin.DeprecatedGetOriginAsURL()); DCHECK_EQ(request_data.embedding_origin, -@@ -707,6 +744,8 @@ void PermissionContextBase::UpdateContentSetting( +@@ -707,6 +742,8 @@ void PermissionContextBase::UpdateContentSetting( constraints.set_session_model( is_one_time ? content_settings::mojom::SessionModel::ONE_TIME : content_settings::mojom::SessionModel::DURABLE); @@ -1122,9 +1116,9 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi + virtual std::unique_ptr CreatePermissionRequest( + content::WebContents* web_contents, -+ PermissionRequestData request_data, ++ std::unique_ptr request_data, + PermissionRequest::PermissionDecidedCallbackWithLifetime permission_decided_callback, -+ base::OnceClosure delete_callback) const; ++ base::OnceClosure request_finished_callback) const; + // Implementors can override this method to avoid using automatic embargo. virtual bool UsesAutomaticEmbargo() const; @@ -1156,22 +1150,24 @@ diff --git a/components/permissions/permission_prompt.h b/components/permissions diff --git a/components/permissions/permission_request.cc b/components/permissions/permission_request.cc --- a/components/permissions/permission_request.cc +++ b/components/permissions/permission_request.cc -@@ -32,6 +32,14 @@ PermissionRequest::PermissionRequest( +@@ -32,6 +32,16 @@ PermissionRequest::PermissionRequest( request_finished_callback_(std::move(request_finished_callback)), uses_automatic_embargo_(uses_automatic_embargo) {} +PermissionRequest::PermissionRequest( -+ PermissionRequestData request_data, ++ std::unique_ptr request_data, + PermissionDecidedCallbackWithLifetime permission_decided_callback, -+ base::OnceClosure delete_callback) ++ base::OnceClosure request_finished_callback, ++ bool uses_automatic_embargo) + : data_(std::move(request_data)), + permission_decided_callback_withlifetime_(std::move(permission_decided_callback)), -+ delete_callback_(std::move(delete_callback)) {} ++ request_finished_callback_(std::move(request_finished_callback)), ++ uses_automatic_embargo_(uses_automatic_embargo) {} + PermissionRequest::~PermissionRequest() { std::move(request_finished_callback_).Run(); } -@@ -412,19 +420,37 @@ bool PermissionRequest::ShouldUseTwoOriginPrompt() const { +@@ -412,19 +422,37 @@ bool PermissionRequest::ShouldUseTwoOriginPrompt() const { return request_type() == RequestType::kStorageAccess; } @@ -1180,7 +1176,7 @@ diff --git a/components/permissions/permission_request.cc b/components/permissio + content_settings::mojom::LifetimeMode lifetime_option) { + if (permission_decided_callback_withlifetime_) { + std::move(permission_decided_callback_withlifetime_) -+ .Run(CONTENT_SETTING_ALLOW, is_one_time, /*is_final_decision=*/true, lifetime_option); ++ .Run(CONTENT_SETTING_ALLOW, is_one_time, /*is_final_decision=*/true, *data_, lifetime_option); + return; + } std::move(permission_decided_callback_) @@ -1193,7 +1189,7 @@ diff --git a/components/permissions/permission_request.cc b/components/permissio + content_settings::mojom::LifetimeMode lifetime_option) { + if (permission_decided_callback_withlifetime_) { + std::move(permission_decided_callback_withlifetime_) -+ .Run(CONTENT_SETTING_BLOCK, is_one_time, /*is_final_decision=*/true, lifetime_option); ++ .Run(CONTENT_SETTING_BLOCK, is_one_time, /*is_final_decision=*/true, *data_, lifetime_option); + return; + } std::move(permission_decided_callback_) @@ -1204,7 +1200,7 @@ diff --git a/components/permissions/permission_request.cc b/components/permissio void PermissionRequest::Cancelled(bool is_final_decision) { + if (permission_decided_callback_withlifetime_) { + std::move(permission_decided_callback_withlifetime_) -+ .Run(CONTENT_SETTING_DEFAULT, false, is_final_decision, ++ .Run(CONTENT_SETTING_DEFAULT, false, is_final_decision, *data_, + content_settings::mojom::LifetimeMode::ALWAYS); + return; + } @@ -1214,30 +1210,32 @@ diff --git a/components/permissions/permission_request.cc b/components/permissio diff --git a/components/permissions/permission_request.h b/components/permissions/permission_request.h --- a/components/permissions/permission_request.h +++ b/components/permissions/permission_request.h -@@ -47,6 +47,11 @@ class PermissionRequest { +@@ -47,6 +47,12 @@ class PermissionRequest { bool /*is_final_decision*/, const PermissionRequestData& /*request_data*/)>; -+ using PermissionDecidedCallbackWithLifetime = -+ base::OnceCallback; ++ using PermissionDecidedCallbackWithLifetime = base::RepeatingCallback; + // `permission_decided_callback` is called when the permission request is // resolved by the user (see comment on PermissionDecidedCallback above). // `request_finished_callback` is called when the permission request is being -@@ -61,6 +66,10 @@ class PermissionRequest { +@@ -61,6 +67,11 @@ class PermissionRequest { base::OnceClosure request_finished_callback = base::DoNothing(), bool uses_automatic_embargo = true); -+ PermissionRequest(PermissionRequestData request_data, ++ PermissionRequest(std::unique_ptr request_data, + PermissionDecidedCallbackWithLifetime permission_decided_callback, -+ base::OnceClosure delete_callback); ++ base::OnceClosure request_finished_callback = base::DoNothing(), ++ bool uses_automatic_embargo = true); + PermissionRequest(const PermissionRequest&) = delete; PermissionRequest& operator=(const PermissionRequest&) = delete; -@@ -167,10 +176,10 @@ class PermissionRequest { +@@ -167,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 +1248,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 -@@ -224,6 +233,9 @@ class PermissionRequest { +@@ -224,6 +235,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 f1bcca26..c8fa1d95 100644 --- a/build/patches/Add-menu-item-to-bookmark-all-tabs.patch +++ b/build/patches/Add-menu-item-to-bookmark-all-tabs.patch @@ -18,19 +18,19 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html components/bookmark_bar_strings.grdp | 6 +++ .../bookmarks/browser/bookmark_codec.cc | 20 +++++++-- components/bookmarks/browser/bookmark_codec.h | 7 ++- - .../browser/bookmark_load_details.cc | 14 ++++-- + .../browser/bookmark_load_details.cc | 15 +++++-- .../bookmarks/browser/bookmark_load_details.h | 2 + .../bookmarks/browser/bookmark_model.cc | 3 +- components/bookmarks/browser/bookmark_model.h | 7 +++ - components/bookmarks/browser/bookmark_node.cc | 11 +++++ - components/bookmarks/browser/bookmark_node.h | 3 ++ + components/bookmarks/browser/bookmark_node.cc | 13 ++++++ + components/bookmarks/browser/bookmark_node.h | 4 ++ .../bookmarks/browser/bookmark_storage.cc | 2 + .../bookmarks/browser/bookmark_uuids.cc | 3 ++ components/bookmarks/browser/bookmark_uuids.h | 1 + - components/bookmarks/browser/model_loader.cc | 8 +++- + components/bookmarks/browser/model_loader.cc | 9 +++- ...ookmark_model_merger_comparison_metrics.cc | 4 ++ .../bookmark_specifics_conversions.cc | 1 + - 26 files changed, 245 insertions(+), 14 deletions(-) + 26 files changed, 250 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 @@ -140,7 +140,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browser/bookmarks/android/bookmark_bridge.cc --- a/chrome/browser/bookmarks/android/bookmark_bridge.cc +++ b/chrome/browser/bookmarks/android/bookmark_bridge.cc -@@ -391,6 +391,33 @@ jboolean BookmarkBridge::AreAccountBookmarkFoldersActive(JNIEnv* env) { +@@ -390,6 +390,33 @@ jboolean BookmarkBridge::AreAccountBookmarkFoldersActive(JNIEnv* env) { return bookmark_model_->account_mobile_node() != nullptr; } @@ -174,7 +174,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse base::android::ScopedJavaLocalRef BookmarkBridge::GetMostRecentlyAddedUserBookmarkIdForUrl(JNIEnv* env, const GURL& url) { -@@ -503,6 +530,7 @@ void BookmarkBridge::GetAllFoldersWithDepths( +@@ -502,6 +529,7 @@ void BookmarkBridge::GetAllFoldersWithDepths( // Vector to temporarily contain all child bookmarks at same level for sorting std::vector bookmarks = { bookmark_model_->mobile_node(), @@ -182,7 +182,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse bookmark_model_->bookmark_bar_node(), bookmark_model_->other_node(), }; -@@ -611,6 +639,9 @@ std::vector BookmarkBridge::GetTopLevelFolderIdsImpl( +@@ -610,6 +638,9 @@ std::vector BookmarkBridge::GetTopLevelFolderIdsImpl( top_level_folders.push_back(other_node); } @@ -192,7 +192,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse const BookmarkNode* reading_list_node = local_or_syncable_reading_list_manager_->GetRoot(); if (IsPermanentFolderVisible( -@@ -1338,6 +1369,17 @@ void BookmarkBridge::GetBookmarksOfType( +@@ -1337,6 +1368,17 @@ void BookmarkBridge::GetBookmarksOfType( AddBookmarkNodesToBookmarkIdList(env, j_list, results); } @@ -646,16 +646,17 @@ diff --git a/components/bookmarks/browser/bookmark_load_details.cc b/components/ void UpdateUserFolderStatsRecursively(const BookmarkNode& node, bool top_level, -@@ -63,6 +63,8 @@ BookmarkLoadDetails::BookmarkLoadDetails() +@@ -63,6 +63,9 @@ BookmarkLoadDetails::BookmarkLoadDetails() mobile_folder_node_ = static_cast( root_node_->Add(BookmarkPermanentNode::CreateMobileBookmarks( /*id=*/0, /*is_account_node=*/false))); + tabs_collection_folder_node_ = static_cast( -+ root_node_->Add(BookmarkPermanentNode::CreateTabsCollectionBookmarks(/*id=*/0))); ++ root_node_->Add(BookmarkPermanentNode::CreateTabsCollectionBookmarks( ++ /*id=*/0, /*is_account_node=*/false))); // Set the nodes' `date_added` to the same time so that there is no inherent // hierarchy in terms of their added time between them. This is relevant for -@@ -119,6 +121,10 @@ void BookmarkLoadDetails::PopulateNodeIdsForLocalOrSyncablePermanentNodes() { +@@ -119,6 +122,10 @@ void BookmarkLoadDetails::PopulateNodeIdsForLocalOrSyncablePermanentNodes() { if (mobile_folder_node_->id() == 0) { mobile_folder_node_->set_id(max_id_++); } @@ -666,7 +667,7 @@ diff --git a/components/bookmarks/browser/bookmark_load_details.cc b/components/ } void BookmarkLoadDetails::AddManagedNode( -@@ -131,6 +137,7 @@ void BookmarkLoadDetails::AddManagedNode( +@@ -131,6 +138,7 @@ void BookmarkLoadDetails::AddManagedNode( CHECK_NE(bb_node_->id(), 0); CHECK_NE(other_folder_node_->id(), 0); CHECK_NE(mobile_folder_node_->id(), 0); @@ -674,7 +675,7 @@ diff --git a/components/bookmarks/browser/bookmark_load_details.cc b/components/ has_managed_node_ = true; root_node_->Add(std::move(managed_node)); -@@ -138,8 +145,8 @@ void BookmarkLoadDetails::AddManagedNode( +@@ -138,8 +146,8 @@ void BookmarkLoadDetails::AddManagedNode( void BookmarkLoadDetails::CreateIndices() { local_or_syncable_uuid_index_.insert(root_node_.get()); @@ -685,7 +686,7 @@ diff --git a/components/bookmarks/browser/bookmark_load_details.cc b/components/ for (const auto& child : root_node_->children()) { if (child.get() == account_bb_node_ || child.get() == account_other_folder_node_ || -@@ -158,6 +165,7 @@ void BookmarkLoadDetails::ResetPermanentNodePointers() { +@@ -158,6 +166,7 @@ void BookmarkLoadDetails::ResetPermanentNodePointers() { bb_node_ = nullptr; other_folder_node_ = nullptr; mobile_folder_node_ = nullptr; @@ -768,17 +769,19 @@ diff --git a/components/bookmarks/browser/bookmark_node.cc b/components/bookmark case BookmarkNode::URL: NOTREACHED(); case BookmarkNode::FOLDER: -@@ -213,6 +215,15 @@ BookmarkPermanentNode::CreateMobileBookmarks(int64_t id, +@@ -213,6 +215,17 @@ BookmarkPermanentNode::CreateMobileBookmarks(int64_t id, is_account_node)); } +// static +std::unique_ptr -+BookmarkPermanentNode::CreateTabsCollectionBookmarks(int64_t id) { ++BookmarkPermanentNode::CreateTabsCollectionBookmarks(int64_t id, ++ bool is_account_node) { + // base::WrapUnique() used because the constructor is private. + return base::WrapUnique(new BookmarkPermanentNode( + id, TABS_COLLECTION, base::Uuid::ParseLowercase(kTabsCollectionBookmarksNodeUuid), -+ l10n_util::GetStringUTF16(IDS_BOOKMARK_BAR_TABS_COLLECTION_FOLDER_NAME))); ++ l10n_util::GetStringUTF16(IDS_BOOKMARK_BAR_TABS_COLLECTION_FOLDER_NAME), ++ is_account_node)); +} + BookmarkPermanentNode::BookmarkPermanentNode(int64_t id, @@ -795,12 +798,13 @@ diff --git a/components/bookmarks/browser/bookmark_node.h b/components/bookmarks MOBILE }; -@@ -249,6 +250,8 @@ class BookmarkPermanentNode : public BookmarkNode { +@@ -249,6 +250,9 @@ class BookmarkPermanentNode : public BookmarkNode { static std::unique_ptr CreateMobileBookmarks( int64_t id, bool is_account_node); + static std::unique_ptr CreateTabsCollectionBookmarks( -+ int64_t id); ++ int64_t id, ++ bool is_account_node); // Returns whether the permanent node of type `type` should be visible even // when it is empty (i.e. no children). @@ -850,16 +854,17 @@ diff --git a/components/bookmarks/browser/bookmark_uuids.h b/components/bookmark diff --git a/components/bookmarks/browser/model_loader.cc b/components/bookmarks/browser/model_loader.cc --- a/components/bookmarks/browser/model_loader.cc +++ b/components/bookmarks/browser/model_loader.cc -@@ -74,6 +74,8 @@ std::unique_ptr LoadBookmarks( +@@ -74,6 +74,9 @@ std::unique_ptr LoadBookmarks( std::unique_ptr account_mobile_folder_node = BookmarkPermanentNode::CreateMobileBookmarks( 0, /*is_account_node=*/true); + std::unique_ptr tabs_collection_folder_node = -+ BookmarkPermanentNode::CreateTabsCollectionBookmarks(0); ++ BookmarkPermanentNode::CreateTabsCollectionBookmarks( ++ 0, /*is_account_node=*/true); std::optional root_dict = LoadFileToDict(account_file_path); -@@ -81,7 +83,8 @@ std::unique_ptr LoadBookmarks( +@@ -81,7 +84,8 @@ std::unique_ptr LoadBookmarks( if (root_dict.has_value() && codec.Decode(*root_dict, /*already_assigned_ids=*/{}, account_bb_node.get(), account_other_folder_node.get(), @@ -869,7 +874,7 @@ diff --git a/components/bookmarks/browser/model_loader.cc b/components/bookmarks &sync_metadata_str)) { ids_assigned_to_account_nodes = codec.release_assigned_ids(); -@@ -123,7 +126,8 @@ std::unique_ptr LoadBookmarks( +@@ -123,7 +127,8 @@ std::unique_ptr LoadBookmarks( if (root_dict.has_value() && codec.Decode(*root_dict, std::move(ids_assigned_to_account_nodes), details->bb_node(), details->other_folder_node(), 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 4d4075a0..ffc6d882 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 @@ -7,12 +7,13 @@ Ignore any partner-provided home page. License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- .../org/chromium/chrome/browser/homepage/HomepageManager.java | 4 ---- + .../chrome/browser/new_tab_url/DseNewTabUrlManager.java | 1 + .../partnerbookmarks/PartnerBookmarksProviderIterator.java | 1 + .../partnercustomizations/PartnerBrowserCustomizations.java | 2 +- .../org/chromium/components/search_engines/TemplateUrl.java | 1 + .../search_engines/android/template_url_service_android.cc | 1 + - .../always-use-new-tab-page-for-default-home-page.inc | 2 ++ - 6 files changed, 6 insertions(+), 5 deletions(-) + .../always-use-new-tab-page-for-default-home-page.inc | 1 + + 7 files changed, 6 insertions(+), 5 deletions(-) create mode 100755 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/always-use-new-tab-page-for-default-home-page.inc diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java @@ -29,6 +30,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/Homepa String homepagePartnerDefaultGurlSerialized = ChromeSharedPreferences.getInstance() .readString( +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/new_tab_url/DseNewTabUrlManager.java b/chrome/android/java/src/org/chromium/chrome/browser/new_tab_url/DseNewTabUrlManager.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/new_tab_url/DseNewTabUrlManager.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/new_tab_url/DseNewTabUrlManager.java +@@ -54,6 +54,7 @@ public class DseNewTabUrlManager { + + /** Returns whether the feature NewTabSearchEngineUrlAndroid is enabled. */ + public static boolean isNewTabSearchEngineUrlAndroidEnabled() { ++ if ((true)) return false; + return ChromeSharedPreferences.getInstance() + .readBoolean(ChromePreferenceKeys.IS_EEA_CHOICE_COUNTRY, false) + || (OmniboxFeatures.sOmniboxMobileParityUpdate.isEnabled() 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 @@ -78,7 +90,6 @@ diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/a new file mode 100755 --- /dev/null +++ b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/always-use-new-tab-page-for-default-home-page.inc -@@ -0,0 +1,2 @@ -+SET_CROMITE_FEATURE_DISABLED(kNewTabSearchEngineUrlAndroid); +@@ -0,0 +1 @@ +SET_CROMITE_FEATURE_DISABLED(kPartnerCustomizationsUma); -- diff --git a/build/patches/Bromite-auto-updater.patch b/build/patches/Bromite-auto-updater.patch index b313d0d2..28d25df9 100644 --- a/build/patches/Bromite-auto-updater.patch +++ b/build/patches/Bromite-auto-updater.patch @@ -771,8 +771,8 @@ new file mode 100644 + // Passing the endpoint_fetcher ensures the endpoint_fetcher's + // lifetime extends to the callback and is not destroyed + // prematurely (which would result in cancellation of the request). -+ std::unique_ptr endpoint_fetcher, -+ std::unique_ptr endpoint_response) { ++ std::unique_ptr endpoint_fetcher, ++ std::unique_ptr endpoint_response) { + base::android::RunObjectCallbackAndroid( + jcaller, Java_EndpointResponse_createEndpointResponse( + base::android::AttachCurrentThread(), @@ -786,8 +786,8 @@ new file mode 100644 + // Passing the endpoint_fetcher ensures the endpoint_fetcher's + // lifetime extends to the callback and is not destroyed + // prematurely (which would result in cancellation of the request). -+ std::unique_ptr endpoint_fetcher, -+ std::unique_ptr endpoint_response) { ++ std::unique_ptr endpoint_fetcher, ++ std::unique_ptr endpoint_response) { + base::android::RunObjectCallbackAndroid( + jcaller, Java_EndpointHeaderResponse_createEndpointResponse( + base::android::AttachCurrentThread(), @@ -817,7 +817,7 @@ new file mode 100644 + const base::android::JavaParamRef& jcallback) { + std::vector scopes; + base::android::AppendJavaStringArrayToStringVector(env, jscopes, &scopes); -+ auto endpoint_fetcher = std::make_unique( ++ auto endpoint_fetcher = std::make_unique( + Profile::FromJavaObject(jprofile) + ->GetDefaultStoragePartition() + ->GetURLLoaderFactoryForBrowserProcess(), @@ -849,7 +849,7 @@ new file mode 100644 + jlong jtimeout, jboolean intercept_redirect, + jint jannotation_hash_code, + const base::android::JavaParamRef& jcallback) { -+ auto endpoint_fetcher = std::make_unique( ++ auto endpoint_fetcher = std::make_unique( + Profile::FromJavaObject(jprofile) + ->GetDefaultStoragePartition() + ->GetURLLoaderFactoryForBrowserProcess(), @@ -876,7 +876,7 @@ new file mode 100644 + jlong jtimeout, jboolean intercept_redirect, + jint jannotation_hash_code, + const base::android::JavaParamRef& jcallback) { -+ auto endpoint_fetcher = std::make_unique( ++ auto endpoint_fetcher = std::make_unique( + Profile::FromJavaObject(jprofile) + ->GetDefaultStoragePartition() + ->GetURLLoaderFactoryForBrowserProcess(), diff --git a/build/patches/Bromite-subresource-adblocker.patch b/build/patches/Bromite-subresource-adblocker.patch index e7378357..9ec8640b 100644 --- a/build/patches/Bromite-subresource-adblocker.patch +++ b/build/patches/Bromite-subresource-adblocker.patch @@ -1596,12 +1596,12 @@ diff --git a/components/subresource_filter/content/browser/content_subresource_f ad_tagging_state); } + -+ const GURL& url(navigation_handle->GetURL()); ++ const GURL& url(navigation_handle.GetURL()); + if (profile_context_->settings_manager()->GetSitePermission(url) != CONTENT_SETTING_ALLOW) { + subresource_filter::ActivationDecision ignored_decision; + mojom::ActivationState ad_filtering_state; + ad_filtering_state.activation_level = profile_interaction_manager_->OnPageActivationComputed( -+ navigation_handle, mojom::ActivationLevel::kEnabled, &ignored_decision); ++ &navigation_handle, mojom::ActivationLevel::kEnabled, &ignored_decision); + throttle->NotifyPageActivationWithRuleset(EnsureRulesetHandle(), + ad_filtering_state); + } diff --git a/build/patches/Disable-Android-Tab-Declutter.patch b/build/patches/Disable-Android-Tab-Declutter.patch index afe6d527..b42e2745 100644 --- a/build/patches/Disable-Android-Tab-Declutter.patch +++ b/build/patches/Disable-Android-Tab-Declutter.patch @@ -5,11 +5,25 @@ Subject: Disable Android Tab Declutter Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- + chrome/android/java/res/xml/main_preferences.xml | 3 ++- .../org/chromium/chrome/browser/tab/TabArchiveSettings.java | 3 ++- .../chrome_feature_list_cc/Disable-Android-Tab-Declutter.inc | 1 + - 2 files changed, 3 insertions(+), 1 deletion(-) + 3 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-Android-Tab-Declutter.inc +diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml +--- a/chrome/android/java/res/xml/main_preferences.xml ++++ b/chrome/android/java/res/xml/main_preferences.xml +@@ -105,7 +105,8 @@ for the previous order (main_preferences_legacy). --> + android:fragment="org.chromium.chrome.browser.tasks.tab_management.TabsSettings" + android:key="tabs" + android:order="18" +- android:title="@string/tabs_settings_title"/> ++ android:title="@string/tabs_settings_title" ++ app:isPreferenceVisible="false"/> + kWebViewADPFSocManufacturerBlocklist{ + BASE_FEATURE(kWebViewEnableADPFRendererMain, + "WebViewEnableADPFRendererMain", + base::FEATURE_DISABLED_BY_DEFAULT); ++SET_CROMITE_FEATURE_ENABLED(kWebViewEnableADPFRendererMain); + + // If enabled, the GPU Main thread is included in the set of threads reported + // to the HWUI. This feature works only when WebViewEnableADPF is enabled, +@@ -331,6 +332,7 @@ BASE_FEATURE(kEnableInteractiveOnlyADPFRenderer, // If enabled, Chrome includes the Compositor GPU Thread into the // ADPF(Android Dynamic Performance Framework) hint session, instead // of the GPU Main Thread. @@ -41,10 +49,6 @@ diff --git a/components/viz/common/features.cc b/components/viz/common/features. BASE_FEATURE(kEnableADPFGpuCompositorThread, "EnableADPFGpuCompositorThread", base::FEATURE_ENABLED_BY_DEFAULT); -+SET_CROMITE_FEATURE_ENABLED(kEnableADPFRendererMain); - - // If enabled, Chrome puts Renderer Main threads into a separate - // ADPF(Android Dynamic Performance Framework) hint session, and does not diff --git a/components/viz/service/performance_hint/hint_session.cc b/components/viz/service/performance_hint/hint_session.cc --- a/components/viz/service/performance_hint/hint_session.cc +++ b/components/viz/service/performance_hint/hint_session.cc diff --git a/build/patches/Enable-Global-Privacy-Control.patch b/build/patches/Enable-Global-Privacy-Control.patch index 7d49c9b4..fd7a6fe8 100644 --- a/build/patches/Enable-Global-Privacy-Control.patch +++ b/build/patches/Enable-Global-Privacy-Control.patch @@ -8,7 +8,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html chrome/android/chrome_java_sources.gni | 1 + .../android/java/res/xml/gpc_preferences.xml | 15 +++ .../java/res/xml/privacy_preferences.xml | 4 + - .../browser/privacy/settings/GpcSettings.java | 50 ++++++++ + .../browser/privacy/settings/GpcSettings.java | 56 +++++++++ .../privacy/settings/PrivacySettings.java | 9 ++ chrome/app/settings_strings.grdp | 15 +++ .../api/settings_private/prefs_util.cc | 1 + @@ -46,7 +46,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../web_service_worker_fetch_context_impl.cc | 3 + ...ted_or_shared_worker_fetch_context_impl.cc | 3 + .../platform/runtime_enabled_features.json5 | 5 + - 42 files changed, 384 insertions(+) + 42 files changed, 390 insertions(+) create mode 100644 chrome/android/java/res/xml/gpc_preferences.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/GpcSettings.java create mode 100644 chrome/browser/resources/settings/privacy_page/gpc_toggle.html @@ -118,7 +118,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting new file mode 100644 --- /dev/null +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/GpcSettings.java -@@ -0,0 +1,50 @@ +@@ -0,0 +1,56 @@ +package org.chromium.chrome.browser.privacy.settings; + +import android.os.Bundle; @@ -129,6 +129,7 @@ new file mode 100644 +import org.chromium.chrome.R; +import org.chromium.chrome.browser.preferences.Pref; +import org.chromium.chrome.browser.settings.ChromeBaseSettingsFragment; ++import org.chromium.components.browser_ui.settings.SettingsFragment; +import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; +import org.chromium.components.browser_ui.settings.SettingsUtils; +import org.chromium.components.prefs.PrefService; @@ -140,6 +141,11 @@ new file mode 100644 + private final ObservableSupplierImpl mPageTitle = new ObservableSupplierImpl<>(); + + @Override ++ public @SettingsFragment.AnimationType int getAnimationType() { ++ return SettingsFragment.AnimationType.PROPERTY; ++ } ++ ++ @Override + public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + @@ -480,7 +486,7 @@ diff --git a/chrome/browser/ui/prefs/pref_watcher.h b/chrome/browser/ui/prefs/pr 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 -@@ -1877,6 +1877,9 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, +@@ -1871,6 +1871,9 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, {"doNotTrackDialogMessage", IDS_SETTINGS_ENABLE_DO_NOT_TRACK_DIALOG_TEXT}, {"doNotTrackDialogLearnMoreA11yLabel", IDS_SETTINGS_ENABLE_DO_NOT_TRACK_DIALOG_LEARN_MORE_ACCESSIBILITY_LABEL}, diff --git a/build/patches/Enable-component-updater.patch b/build/patches/Enable-component-updater.patch index 2068f760..64e05995 100644 --- a/build/patches/Enable-component-updater.patch +++ b/build/patches/Enable-component-updater.patch @@ -501,7 +501,7 @@ diff --git a/components/crx_file/crx_verifier.cc b/components/crx_file/crx_verif (accept_publisher_test_key && key_hash == kPublisherTestKeyHash); + + DLOG(INFO) << "---key_hash: " << base::HexEncode(key_hash); -+ DLOG(INFO) << "---publisher_key: " << base::HexEncode(publisher_key); ++ DLOG(INFO) << "---publisher_key: " << base::HexEncode(kPublisherKeyHash); + DLOG(INFO) << "---found_publisher_key: " << found_publisher_key; + DLOG(INFO) << "---sig: " << sig; + DLOG(INFO) << "---key: " << key; diff --git a/build/patches/Enable-native-Android-autofill.patch b/build/patches/Enable-native-Android-autofill.patch index 36d9f3bc..59cba70c 100644 --- a/build/patches/Enable-native-Android-autofill.patch +++ b/build/patches/Enable-native-Android-autofill.patch @@ -15,7 +15,7 @@ See also: https://github.com/bromite/bromite/issues/547 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 --- - .../settings/PasswordSettings.java | 83 ++++++++++++++++++- + .../settings/PasswordSettings.java | 83 ++++++++++++++++- .../chrome/browser/settings/MainSettings.java | 3 +- .../chromium/chrome/browser/tab/TabImpl.java | 41 +++++++-- chrome/browser/about_flags.cc | 31 ------- @@ -25,7 +25,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/flag_descriptions.cc | 6 -- chrome/browser/flag_descriptions.h | 3 - .../strings/android_chrome_strings.grd | 6 ++ - .../ui/autofill/autofill_client_provider.cc | 78 +---------------- + .../ui/autofill/autofill_client_provider.cc | 92 +------------------ .../ui/autofill/autofill_client_provider.h | 6 -- chrome/browser/ui/tab_helpers.cc | 4 +- components/android_autofill/browser/BUILD.gn | 1 + @@ -33,11 +33,11 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/android_autofill_manager.h | 2 + .../autofill/AutofillManagerWrapper.java | 5 +- .../components/autofill/AutofillProvider.java | 7 ++ - .../BrowserSelectionActionMenuDelegate.java | 68 +++++++++++++++ + .../BrowserSelectionActionMenuDelegate.java | 68 ++++++++++++++ .../browser/content_autofill_driver.cc | 11 +++ - .../content/browser/content_autofill_driver.h | 10 +++ + .../content/browser/content_autofill_driver.h | 10 ++ .../content_autofill_driver_factory.cc | 12 +++ - .../content/renderer/autofill_agent.cc | 5 ++ + .../content/renderer/autofill_agent.cc | 5 + .../renderer/password_autofill_agent.cc | 5 +- .../browser/foundations/autofill_driver.h | 2 + .../foundations/autofill_driver_factory.cc | 4 + @@ -47,8 +47,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../autofill/core/common/autofill_features.cc | 2 +- .../autofill/core/common/autofill_features.h | 22 ----- .../autofill/core/common/autofill_prefs.cc | 4 +- - .../autofill/core/common/autofill_prefs.h | 5 ++ - 33 files changed, 276 insertions(+), 165 deletions(-) + .../autofill/core/common/autofill_prefs.h | 5 + + 33 files changed, 276 insertions(+), 179 deletions(-) create mode 100644 components/android_autofill/browser/java/src/org/chromium/components/autofill/BrowserSelectionActionMenuDelegate.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java @@ -426,7 +426,7 @@ diff --git a/chrome/browser/ui/autofill/autofill_client_provider.cc b/chrome/bro #include "chrome/browser/metrics/chrome_metrics_service_accessor.h" #include "components/android_autofill/browser/android_autofill_client.h" #endif // BUILDFLAG(IS_ANDROID) -@@ -24,67 +22,6 @@ +@@ -24,85 +22,13 @@ namespace autofill { namespace { @@ -491,11 +491,14 @@ diff --git a/chrome/browser/ui/autofill/autofill_client_provider.cc b/chrome/bro -#endif // BUILDFLAG(IS_ANDROID) -} - - #if BUILDFLAG(IS_ANDROID) - std::string GetTrialGroupForPackage() { - JNIEnv* env = base::android::AttachCurrentThread(); -@@ -95,14 +32,11 @@ std::string GetTrialGroupForPackage() { - +-#if BUILDFLAG(IS_ANDROID) +-std::string GetTrialGroupForPackage() { +- JNIEnv* env = base::android::AttachCurrentThread(); +- return base::android::ConvertJavaStringToUTF8( +- env, Java_AutofillClientProviderUtils_getTrialGroupForPackage(env)); +-} +-#endif +- } // namespace -AutofillClientProvider::AutofillClientProvider(PrefService* prefs) @@ -511,7 +514,7 @@ diff --git a/chrome/browser/ui/autofill/autofill_client_provider.cc b/chrome/bro if (base::FeatureList::IsEnabled( autofill::features::kAutofillVirtualViewStructureAndroid) && base::FeatureList::IsEnabled( -@@ -126,15 +60,7 @@ AutofillClientProvider::~AutofillClientProvider() = default; +@@ -126,15 +52,7 @@ AutofillClientProvider::~AutofillClientProvider() = default; void AutofillClientProvider::CreateClientForWebContents( content::WebContents* web_contents) { @@ -527,6 +530,19 @@ diff --git a/chrome/browser/ui/autofill/autofill_client_provider.cc b/chrome/bro } #if BUILDFLAG(IS_ANDROID) +@@ -146,12 +64,6 @@ void AutofillClientProvider::RegisterSyntheticFieldTrialForPackage( + } + + void AutofillClientProvider::DelayRegisteringFieldTrialForA11yDeprecation() { +- base::ThreadPool::PostTaskAndReplyWithResult( +- FROM_HERE, {base::TaskPriority::LOWEST}, +- base::BindOnce(&GetTrialGroupForPackage), +- base::BindOnce( +- &AutofillClientProvider::RegisterSyntheticFieldTrialForPackage, +- weak_ptr_factory_.GetWeakPtr())); + } + #endif // BUILDFLAG(IS_ANDROID) + diff --git a/chrome/browser/ui/autofill/autofill_client_provider.h b/chrome/browser/ui/autofill/autofill_client_provider.h --- a/chrome/browser/ui/autofill/autofill_client_provider.h +++ b/chrome/browser/ui/autofill/autofill_client_provider.h diff --git a/build/patches/Enable-search-engine-settings-desktop-ui.patch b/build/patches/Enable-search-engine-settings-desktop-ui.patch index e9892829..941d4ce1 100644 --- a/build/patches/Enable-search-engine-settings-desktop-ui.patch +++ b/build/patches/Enable-search-engine-settings-desktop-ui.patch @@ -43,7 +43,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html chrome/browser/ui/webui/favicon_source.h | 2 + .../webui/settings/search_engines_handler.cc | 28 +- .../webui/settings/search_engines_handler.h | 3 +- - .../settings_localized_strings_provider.cc | 8 + + .../settings_localized_strings_provider.cc | 8 +- ...ings_localized_strings_provider_android.cc | 200 ++++++++++++++ ...tings_localized_strings_provider_android.h | 19 ++ .../ui/webui/settings/settings_ui_android.cc | 126 +++++++++ @@ -78,7 +78,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 +- - 71 files changed, 1161 insertions(+), 71 deletions(-) + 71 files changed, 1160 insertions(+), 72 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 @@ -1365,20 +1365,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.h b/chrome/ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc --- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc +++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc -@@ -143,6 +143,12 @@ - #include "chrome/browser/ui/webui/settings/system_handler.h" - #endif - -+#if BUILDFLAG(IS_ANDROID) -+ html_source->AddString("chromeAndroid", "chrome-android"); -+#else -+ html_source->AddString("chromeAndroid", ""); -+#endif -+ - #if BUILDFLAG(IS_LINUX) - #include "ui/display/screen.h" - #endif -@@ -2458,6 +2464,8 @@ void AddSearchEnginesStrings(content::WebUIDataSource* html_source) { +@@ -2458,6 +2458,8 @@ void AddSearchEnginesStrings(content::WebUIDataSource* html_source) { {"searchEnginesQueryURL", IDS_SETTINGS_SEARCH_ENGINES_QUERY_URL}, {"searchEnginesQueryURLExplanation", IDS_SETTINGS_SEARCH_ENGINES_QUERY_URL_EXPLANATION}, @@ -1387,6 +1374,19 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide {"searchEnginesMakeDefault", IDS_SETTINGS_SEARCH_ENGINES_MAKE_DEFAULT}, {"searchEnginesActivate", IDS_SETTINGS_SEARCH_ENGINES_ACTIVATE}, {"searchEnginesDeactivate", IDS_SETTINGS_SEARCH_ENGINES_DEACTIVATE}, +@@ -3805,7 +3807,11 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, + AddSiteSettingsStrings(html_source, profile); + AddSiteDataPageStrings(html_source, profile); + AddStorageAccessStrings(html_source); +- ++#if BUILDFLAG(IS_ANDROID) ++ html_source->AddString("chromeAndroid", "chrome-android"); ++#else ++ html_source->AddString("chromeAndroid", ""); ++#endif + #if !BUILDFLAG(IS_CHROMEOS) + AddDefaultBrowserStrings(html_source); + AddImportDataStrings(html_source); diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider_android.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider_android.cc new file mode 100644 --- /dev/null diff --git a/build/patches/Experimental-user-scripts-support.patch b/build/patches/Experimental-user-scripts-support.patch index 906b604d..335423a4 100644 --- a/build/patches/Experimental-user-scripts-support.patch +++ b/build/patches/Experimental-user-scripts-support.patch @@ -61,7 +61,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../user_scripts/ScriptListBaseAdapter.java | 163 ++++ .../user_scripts/ScriptListPreference.java | 171 ++++ .../user_scripts/UserScriptsBridge.java | 212 +++++ - .../user_scripts/UserScriptsPreferences.java | 116 +++ + .../user_scripts/UserScriptsPreferences.java | 122 +++ .../user_scripts/android/java_sources.gni | 18 + .../android/user_scripts_bridge.cc | 173 ++++ .../android/user_scripts_bridge.h | 31 + @@ -74,7 +74,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../user-script-ui/user-scripts-ui.js | 9 + .../browser/ui/user_scripts_ui.cc | 146 ++++ .../user_scripts/browser/ui/user_scripts_ui.h | 46 + - .../browser/user_script_loader.cc | 702 +++++++++++++++ + .../browser/user_script_loader.cc | 700 +++++++++++++++ .../user_scripts/browser/user_script_loader.h | 168 ++++ .../browser/user_script_pref_info.cc | 34 + .../browser/user_script_pref_info.h | 72 ++ @@ -136,7 +136,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../Experimental-user-scripts-support.inc | 13 + ipc/ipc_message_start.h | 1 + tools/gritsettings/resource_ids.spec | 6 + - 109 files changed, 9356 insertions(+), 3 deletions(-) + 109 files changed, 9360 insertions(+), 3 deletions(-) create mode 100644 components/user_scripts/README.md create mode 100755 components/user_scripts/android/BUILD.gn create mode 100644 components/user_scripts/android/java/res/layout/accept_script_item.xml @@ -2056,7 +2056,7 @@ diff --git a/components/user_scripts/android/java/src/org/chromium/components/us new file mode 100755 --- /dev/null +++ b/components/user_scripts/android/java/src/org/chromium/components/user_scripts/UserScriptsPreferences.java -@@ -0,0 +1,116 @@ +@@ -0,0 +1,122 @@ +/* + This file is part of Bromite. + @@ -2093,6 +2093,7 @@ new file mode 100755 +import org.chromium.ui.base.ActivityWindowAndroid; + +import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; ++import org.chromium.components.browser_ui.settings.SettingsFragment; +import org.chromium.components.browser_ui.settings.SettingsUtils; +import org.chromium.components.browser_ui.settings.TextMessagePreference; + @@ -2101,7 +2102,7 @@ new file mode 100755 + +public class UserScriptsPreferences + extends PreferenceFragmentCompat -+ implements SettingsUtils.ISupportHelpAndFeedback { ++ implements SettingsUtils.ISupportHelpAndFeedback, SettingsFragment { + + private static final String PREF_ENABLED_SWITCH = "enabled_switch"; + private static final String PREF_SCRIPTLISTPREFERENCE = "script_list"; @@ -2111,6 +2112,11 @@ new file mode 100755 + private FragmentWindowAndroid mWindowAndroid; + + @Override ++ public @AnimationType int getAnimationType() { ++ return AnimationType.PROPERTY; ++ } ++ ++ @Override + public void onDestroy() { + if (mWindowAndroid != null) mWindowAndroid.destroy(); + super.onDestroy(); @@ -2848,7 +2854,7 @@ diff --git a/components/user_scripts/browser/user_script_loader.cc b/components/ new file mode 100755 --- /dev/null +++ b/components/user_scripts/browser/user_script_loader.cc -@@ -0,0 +1,702 @@ +@@ -0,0 +1,700 @@ +/* + This file is part of Bromite. + @@ -3110,9 +3116,7 @@ new file mode 100755 + file->set_content(content); + + // create SHA256 of file -+ char raw[crypto::kSHA256Length] = {0}; -+ crypto::SHA256HashString(content, raw, crypto::kSHA256Length); -+ std::string key = base::Base64Encode(std::string_view(raw, crypto::kSHA256Length)); ++ std::string key = base::Base64Encode(crypto::SHA256HashString(content)); + file->set_key(key); + + file->set_url(GURL(base::StrCat({"https://userscripts/file/", key, ".js"}))); diff --git a/build/patches/Eyeo-Adblock-for-Cromite.patch b/build/patches/Eyeo-Adblock-for-Cromite.patch index ac15094c..dae80639 100644 --- a/build/patches/Eyeo-Adblock-for-Cromite.patch +++ b/build/patches/Eyeo-Adblock-for-Cromite.patch @@ -8,7 +8,7 @@ suit Cromite logic. .../android/java/res/xml/main_preferences.xml | 19 +- .../adblock_chrome_content_browser_client.cc | 6 + .../adblock_chrome_content_browser_client.h | 4 + - chrome/browser/adblock/android/BUILD.gn | 2 +- + chrome/browser/adblock/android/BUILD.gn | 3 +- .../adblock/android/adblock_strings.grd | 56 +- .../java/res/layout/adblock_custom_item.xml | 14 +- .../layout/adblock_filter_lists_list_item.xml | 15 + @@ -16,14 +16,15 @@ suit Cromite logic. .../AdblockAllowedDomainsFragment.java | 7 +- .../AdblockCustomFilterListsFragment.java | 37 +- .../AdblockCustomFiltersFragment.java | 7 +- - .../settings/AdblockCustomItemFragment.java | 20 +- + .../settings/AdblockCustomItemFragment.java | 26 +- .../settings/AdblockFilterListsAdapter.java | 6 + - .../settings/AdblockSettingsFragment.java | 79 +- + .../settings/AdblockFilterListsFragment.java | 8 +- + .../settings/AdblockSettingsFragment.java | 96 +- .../browser/chrome_content_browser_client.cc | 6 +- .../browser/chrome_content_browser_client.h | 6 +- .../adblock_private/adblock_private_api.cc | 76 +- .../api/adblock_private/adblock_private_api.h | 49 + - .../eyeo_filtering_private_api.cc | 24 +- + .../eyeo_filtering_private_api.cc | 25 +- .../api/settings_private/prefs_util.cc | 14 + ...hrome_browser_main_extra_parts_profiles.cc | 2 - chrome/browser/resources/settings/BUILD.gn | 2 + @@ -125,7 +126,7 @@ suit Cromite logic. .../renderer/core/exported/web_document.cc | 13 +- .../blink/renderer/core/html/html_element.cc | 8 +- .../definitions/adblock_private.d.ts | 14 + - 120 files changed, 9192 insertions(+), 617 deletions(-) + 121 files changed, 9224 insertions(+), 618 deletions(-) rename chrome/browser/adblock/android/java/res/xml/{adblock_preferences.xml => eyeo_adblock_preferences.xml} (59%) create mode 100644 chrome/browser/resources/settings/adblock_page/adblock_page.html create mode 100644 chrome/browser/resources/settings/adblock_page/adblock_page.ts @@ -166,7 +167,7 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j +@@ -135,6 +121,11 @@ for the previous order (main_preferences_legacy). --> android:key="adblock" android:order="13" android:title="@string/prefs_adblock"/> @@ -214,7 +215,15 @@ diff --git a/chrome/browser/adblock/adblock_chrome_content_browser_client.h b/ch diff --git a/chrome/browser/adblock/android/BUILD.gn b/chrome/browser/adblock/android/BUILD.gn --- a/chrome/browser/adblock/android/BUILD.gn +++ b/chrome/browser/adblock/android/BUILD.gn -@@ -148,7 +148,7 @@ android_resources("java_ui_resources") { +@@ -113,6 +113,7 @@ android_library("adblock_ui_java") { + "//build/android:build_java", + "//chrome/browser/preferences:java", + "//chrome/browser/profiles/android:java", ++ "//chrome/browser/settings:java", + "//components/adblock/android:adblock_controller_java", + "//components/browser_ui/settings/android:java", + "//components/prefs/android:java", +@@ -148,7 +149,7 @@ android_resources("java_ui_resources") { "java/res/layout/adblock_custom_item_settings.xml", "java/res/layout/adblock_filter_lists_list_item.xml", "java/res/xml/adblock_more_options.xml", @@ -550,16 +559,32 @@ diff --git a/chrome/browser/adblock/android/java/src/org/chromium/chrome/browser diff --git a/chrome/browser/adblock/android/java/src/org/chromium/chrome/browser/adblock/settings/AdblockCustomItemFragment.java b/chrome/browser/adblock/android/java/src/org/chromium/chrome/browser/adblock/settings/AdblockCustomItemFragment.java --- a/chrome/browser/adblock/android/java/src/org/chromium/chrome/browser/adblock/settings/AdblockCustomItemFragment.java +++ b/chrome/browser/adblock/android/java/src/org/chromium/chrome/browser/adblock/settings/AdblockCustomItemFragment.java -@@ -33,7 +33,7 @@ import org.chromium.chrome.browser.adblock.R; +@@ -30,10 +30,11 @@ import android.widget.TextView; + import androidx.preference.PreferenceFragmentCompat; + + import org.chromium.chrome.browser.adblock.R; ++import org.chromium.components.browser_ui.settings.SettingsFragment; import java.util.List; -public abstract class AdblockCustomItemFragment extends PreferenceFragmentCompat { -+public abstract class AdblockCustomItemFragment extends PreferenceFragmentCompat { ++public abstract class AdblockCustomItemFragment extends PreferenceFragmentCompat implements SettingsFragment { private EditText mItem; private ImageView mAddButton; private ListView mListView; -@@ -75,7 +75,7 @@ public abstract class AdblockCustomItemFragment extends PreferenceFragmentCompat +@@ -41,6 +42,11 @@ public abstract class AdblockCustomItemFragment extends PreferenceFragmentCompat + + public AdblockCustomItemFragment() {} + ++ @Override ++ public @AnimationType int getAnimationType() { ++ return AnimationType.PROPERTY; ++ } ++ + @Override + public View onCreateView( + LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { +@@ -75,7 +81,7 @@ public abstract class AdblockCustomItemFragment extends PreferenceFragmentCompat protected abstract void removeItemImpl(String item); @@ -568,7 +593,7 @@ diff --git a/chrome/browser/adblock/android/java/src/org/chromium/chrome/browser protected abstract String getCustomItemTextViewText(); -@@ -90,10 +90,12 @@ public abstract class AdblockCustomItemFragment extends PreferenceFragmentCompat +@@ -90,10 +96,12 @@ public abstract class AdblockCustomItemFragment extends PreferenceFragmentCompat // Holder for listview items private class Holder { TextView mItem; @@ -581,7 +606,7 @@ diff --git a/chrome/browser/adblock/android/java/src/org/chromium/chrome/browser mRemoveButton = rootView.findViewById(R.id.fragment_adblock_custom_item_remove); mRemoveButton.setContentDescription( AdblockCustomItemFragment.this.getCustomItemRemoveButtonContentDescription()); -@@ -107,6 +109,7 @@ public abstract class AdblockCustomItemFragment extends PreferenceFragmentCompat +@@ -107,6 +115,7 @@ public abstract class AdblockCustomItemFragment extends PreferenceFragmentCompat String item = (String) v.getTag(); removeItemImpl(item); mAdapter.notifyDataSetChanged(); @@ -589,7 +614,7 @@ diff --git a/chrome/browser/adblock/android/java/src/org/chromium/chrome/browser } }; -@@ -134,16 +137,23 @@ public abstract class AdblockCustomItemFragment extends PreferenceFragmentCompat +@@ -134,16 +143,23 @@ public abstract class AdblockCustomItemFragment extends PreferenceFragmentCompat convertView.setTag(new Holder(convertView)); } @@ -643,10 +668,34 @@ diff --git a/chrome/browser/adblock/android/java/src/org/chromium/chrome/browser return view; } +diff --git a/chrome/browser/adblock/android/java/src/org/chromium/chrome/browser/adblock/settings/AdblockFilterListsFragment.java b/chrome/browser/adblock/android/java/src/org/chromium/chrome/browser/adblock/settings/AdblockFilterListsFragment.java +--- a/chrome/browser/adblock/android/java/src/org/chromium/chrome/browser/adblock/settings/AdblockFilterListsFragment.java ++++ b/chrome/browser/adblock/android/java/src/org/chromium/chrome/browser/adblock/settings/AdblockFilterListsFragment.java +@@ -26,8 +26,9 @@ import androidx.fragment.app.ListFragment; + import org.chromium.chrome.browser.adblock.R; + import org.chromium.chrome.browser.profiles.ProfileManager; + import org.chromium.components.adblock.AdblockController; ++import org.chromium.components.browser_ui.settings.SettingsFragment; + +-public class AdblockFilterListsFragment extends ListFragment { ++public class AdblockFilterListsFragment extends ListFragment implements SettingsFragment { + private AdblockFilterListsAdapter mFilterListsAdapter; + + @Override +@@ -54,4 +55,9 @@ public class AdblockFilterListsFragment extends ListFragment { + super.onStart(); + mFilterListsAdapter.start(); + } ++ ++ @Override ++ public @AnimationType int getAnimationType() { ++ return AnimationType.PROPERTY; ++ } + } diff --git a/chrome/browser/adblock/android/java/src/org/chromium/chrome/browser/adblock/settings/AdblockSettingsFragment.java b/chrome/browser/adblock/android/java/src/org/chromium/chrome/browser/adblock/settings/AdblockSettingsFragment.java --- a/chrome/browser/adblock/android/java/src/org/chromium/chrome/browser/adblock/settings/AdblockSettingsFragment.java +++ b/chrome/browser/adblock/android/java/src/org/chromium/chrome/browser/adblock/settings/AdblockSettingsFragment.java -@@ -13,6 +13,7 @@ +@@ -13,27 +13,46 @@ package org.chromium.chrome.browser.adblock.settings; import android.os.Bundle; @@ -654,20 +703,25 @@ diff --git a/chrome/browser/adblock/android/java/src/org/chromium/chrome/browser import androidx.preference.Preference; import androidx.preference.PreferenceFragmentCompat; -@@ -20,20 +21,33 @@ import androidx.preference.PreferenceFragmentCompat; + ++import org.chromium.base.supplier.ObservableSupplier; ++import org.chromium.base.supplier.ObservableSupplierImpl; ++ import org.chromium.build.BuildConfig; import org.chromium.chrome.browser.adblock.R; import org.chromium.chrome.browser.preferences.Pref; +import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.ProfileManager; ++import org.chromium.chrome.browser.settings.ChromeBaseSettingsFragment; import org.chromium.components.adblock.AdblockController; import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; ++import org.chromium.components.browser_ui.settings.SettingsFragment; import org.chromium.components.user_prefs.UserPrefs; -public class AdblockSettingsFragment extends PreferenceFragmentCompat - implements Preference.OnPreferenceChangeListener { +public class AdblockSettingsFragment -+ extends PreferenceFragmentCompat implements Preference.OnPreferenceChangeListener { ++ extends ChromeBaseSettingsFragment implements Preference.OnPreferenceChangeListener { private ChromeSwitchPreference mAdblockEnabled; private ChromeSwitchPreference mAcceptableAdsEnabled; private ChromeSwitchPreference mAutoInstalledEnabled; @@ -691,9 +745,22 @@ diff --git a/chrome/browser/adblock/android/java/src/org/chromium/chrome/browser private static final String SETTINGS_ENABLED_KEY = "fragment_adblock_settings_enabled_key"; private static final String SETTINGS_FILTER_LISTS_KEY = "fragment_adblock_settings_filter_lists_key"; -@@ -52,9 +66,21 @@ public class AdblockSettingsFragment extends PreferenceFragmentCompat +@@ -51,10 +70,34 @@ public class AdblockSettingsFragment extends PreferenceFragmentCompat + private static final int ON_OFF_TOGGLE_COUNT_TIME_WINDOW_MS = 3000; private long mOnOffTogleTimestamp; ++ private final ObservableSupplierImpl mPageTitle = new ObservableSupplierImpl<>(); ++ ++ @Override ++ public @SettingsFragment.AnimationType int getAnimationType() { ++ return SettingsFragment.AnimationType.PROPERTY; ++ } ++ ++ @Override ++ public ObservableSupplier getPageTitle() { ++ return mPageTitle; ++ } ++ private void bindPreferences() { + mStartUpdate = findPreference(START_UPDATE_KEY); + mStartUpdate.setOnPreferenceClickListener(preference -> { @@ -713,7 +780,7 @@ diff --git a/chrome/browser/adblock/android/java/src/org/chromium/chrome/browser mAutoInstalledEnabled = (ChromeSwitchPreference) findPreference(SETTINGS_AUTO_INSTALL_ENABLED_KEY); mAllowedDomains = findPreference(SETTINGS_ALLOWED_DOMAINS_KEY); -@@ -62,35 +88,43 @@ public class AdblockSettingsFragment extends PreferenceFragmentCompat +@@ -62,35 +105,43 @@ public class AdblockSettingsFragment extends PreferenceFragmentCompat } private boolean areMoreOptionsEnabled() { @@ -769,7 +836,7 @@ diff --git a/chrome/browser/adblock/android/java/src/org/chromium/chrome/browser mAutoInstalledEnabled.setOnPreferenceChangeListener(this); } -@@ -122,7 +156,7 @@ public class AdblockSettingsFragment extends PreferenceFragmentCompat +@@ -122,7 +173,7 @@ public class AdblockSettingsFragment extends PreferenceFragmentCompat @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { @@ -778,7 +845,7 @@ diff --git a/chrome/browser/adblock/android/java/src/org/chromium/chrome/browser bindPreferences(); synchronizePreferences(); } -@@ -137,19 +171,16 @@ public class AdblockSettingsFragment extends PreferenceFragmentCompat +@@ -137,19 +188,16 @@ public class AdblockSettingsFragment extends PreferenceFragmentCompat public boolean onPreferenceChange(Preference preference, Object newValue) { if (preference.getKey().equals(SETTINGS_ENABLED_KEY)) { AdblockController.getInstance(ProfileManager.getLastUsedRegularProfile()) @@ -806,7 +873,7 @@ diff --git a/chrome/browser/adblock/android/java/src/org/chromium/chrome/browser diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -6324,7 +6324,9 @@ ChromeContentBrowserClient:: +@@ -6349,7 +6349,9 @@ ChromeContentBrowserClient:: } bool ChromeContentBrowserClient::WillInterceptWebSocket( @@ -817,7 +884,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch #if BUILDFLAG(ENABLE_EXTENSIONS_CORE) if (!frame) { return false; -@@ -6347,9 +6349,11 @@ bool ChromeContentBrowserClient::WillInterceptWebSocket( +@@ -6372,9 +6374,11 @@ bool ChromeContentBrowserClient::WillInterceptWebSocket( } void ChromeContentBrowserClient::CreateWebSocket( @@ -1029,15 +1096,18 @@ diff --git a/chrome/browser/extensions/api/adblock_private/adblock_private_api.h diff --git a/chrome/browser/extensions/api/eyeo_filtering_private/eyeo_filtering_private_api.cc b/chrome/browser/extensions/api/eyeo_filtering_private/eyeo_filtering_private_api.cc --- a/chrome/browser/extensions/api/eyeo_filtering_private/eyeo_filtering_private_api.cc +++ b/chrome/browser/extensions/api/eyeo_filtering_private/eyeo_filtering_private_api.cc -@@ -17,6 +17,7 @@ +@@ -17,8 +17,10 @@ #include "base/containers/flat_map.h" #include "base/i18n/time_formatting.h" +#include "base/strings/utf_string_conversions.h" #include "base/logging.h" #include "base/no_destructor.h" ++#include "base/strings/stringprintf.h" #include "base/values.h" -@@ -30,6 +31,7 @@ + #include "chrome/browser/extensions/extension_tab_util.h" + #include "chrome/browser/profiles/profile.h" +@@ -30,6 +32,7 @@ #include "components/adblock/core/common/adblock_prefs.h" #include "components/adblock/core/common/adblock_utils.h" #include "components/adblock/core/common/content_type.h" @@ -1045,7 +1115,7 @@ diff --git a/chrome/browser/extensions/api/eyeo_filtering_private/eyeo_filtering #include "components/adblock/core/configuration/filtering_configuration.h" #include "components/adblock/core/configuration/persistent_filtering_configuration.h" #include "components/adblock/core/session_stats.h" -@@ -95,24 +97,6 @@ std::vector CopySessionsStats( +@@ -95,24 +98,6 @@ std::vector CopySessionsStats( return result; } @@ -1070,7 +1140,7 @@ diff --git a/chrome/browser/extensions/api/eyeo_filtering_private/eyeo_filtering std::vector CopySubscriptions( const std::vector> current_subscriptions) { -@@ -123,12 +107,12 @@ std::vector CopySubscriptions( +@@ -123,12 +108,12 @@ std::vector CopySubscriptions( js_sub.title = sub->GetTitle(); js_sub.current_version = sub->GetCurrentVersion(); js_sub.installation_state = diff --git a/build/patches/Force-use-vpython3-for-some-scripts.patch b/build/patches/Force-use-vpython3-for-some-scripts.patch index a4684cf6..486c65e6 100644 --- a/build/patches/Force-use-vpython3-for-some-scripts.patch +++ b/build/patches/Force-use-vpython3-for-some-scripts.patch @@ -10,9 +10,10 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- components/metrics/generate_expired_histograms_array.gni | 7 +++++-- components/variations/field_trial_config/BUILD.gn | 4 +++- + tools/grit/grit_rule.gni | 4 +++- tools/json_to_struct/json_to_struct.gni | 4 +++- tools/metrics/generate_allowlist_from_histograms_file.gni | 5 +++-- - 4 files changed, 14 insertions(+), 6 deletions(-) + 5 files changed, 17 insertions(+), 7 deletions(-) diff --git a/components/metrics/generate_expired_histograms_array.gni b/components/metrics/generate_expired_histograms_array.gni --- a/components/metrics/generate_expired_histograms_array.gni @@ -59,6 +60,27 @@ diff --git a/components/variations/field_trial_config/BUILD.gn b/components/vari rebase_path(source, root_build_dir), "--destbase=" + rebase_path(target_gen_dir, root_build_dir), "--namespace=variations", +diff --git a/tools/grit/grit_rule.gni b/tools/grit/grit_rule.gni +--- a/tools/grit/grit_rule.gni ++++ b/tools/grit/grit_rule.gni +@@ -154,7 +154,7 @@ template("grit") { + + _grit_custom_target = target_name + "_grit" + action(_grit_custom_target) { +- script = "//tools/grit/grit.py" ++ script = "//build/gn_run_binary.py" + inputs = [ invoker.source ] + + testonly = defined(invoker.testonly) && invoker.testonly +@@ -197,6 +197,8 @@ template("grit") { + } + + args = [ ++ rebase_path("//third_party/depot_tools/vpython3"), ++ rebase_path("//tools/grit/grit.py"), + "-i", + _rebased_source_path, + "build", diff --git a/tools/json_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 diff --git a/build/patches/Move-navigation-bar-to-bottom.patch b/build/patches/Move-navigation-bar-to-bottom.patch index f6d38d39..ad172016 100644 --- a/build/patches/Move-navigation-bar-to-bottom.patch +++ b/build/patches/Move-navigation-bar-to-bottom.patch @@ -43,7 +43,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../modaldialog/ChromeTabModalPresenter.java | 2 +- .../chrome/browser/ntp/NewTabPage.java | 14 +- .../chrome/browser/ntp/NewTabPageLayout.java | 10 +- - .../chrome/browser/ntp/RecentTabsPage.java | 30 +++- + .../chrome/browser/ntp/RecentTabsPage.java | 31 +++- .../browser/searchwidget/SearchActivity.java | 11 ++ .../settings/FragmentDependencyProvider.java | 5 + .../StatusIndicatorCoordinator.java | 9 + @@ -96,9 +96,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../res/xml/accessibility_preferences.xml | 8 + .../accessibility/AccessibilitySettings.java | 27 +++ .../AccessibilitySettingsDelegate.java | 9 + + components/viz/common/features.cc | 2 + .../render_widget_host_view_android.cc | 3 + .../Move-navigation-bar-to-bottom.inc | 17 ++ - 85 files changed, 1046 insertions(+), 77 deletions(-) + 86 files changed, 1049 insertions(+), 77 deletions(-) create mode 100644 chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/ReversedLinearLayout.java create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Move-navigation-bar-to-bottom.inc @@ -1406,7 +1407,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsP mBrowserControlsStateProvider = browserControlsStateProvider; mBrowserControlsStateProvider.addObserver(this); onBottomControlsHeightChanged( -@@ -118,14 +120,22 @@ public class RecentTabsPage +@@ -118,14 +120,23 @@ public class RecentTabsPage mTabStripHeightSupplier = tabStripHeightSupplier; mView.setPadding(0, mTabStripHeightSupplier.get(), 0, 0); @@ -1417,6 +1418,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsP + 0, + mView.getPaddingRight(), + mView.getPaddingBottom()); ++ mTabStripHeightChangeCallback = newHeight -> { }; + } else { + mTabStripHeightChangeCallback = newHeight -> @@ -1431,7 +1433,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsP mEdgeToEdgeSupplier = edgeToEdgeSupplier; if (EdgeToEdgeUtils.isDrawKeyNativePageToEdgeEnabled()) { mPadAdjuster = -@@ -337,7 +347,7 @@ public class RecentTabsPage +@@ -337,7 +348,7 @@ public class RecentTabsPage private void updateMargins() { final View recentTabsRoot = mView.findViewById(R.id.recent_tabs_root); @@ -1440,7 +1442,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsP final int contentOffset = mBrowserControlsStateProvider.getContentOffset(); ViewGroup.MarginLayoutParams layoutParams = (ViewGroup.MarginLayoutParams) recentTabsRoot.getLayoutParams(); -@@ -353,9 +363,17 @@ public class RecentTabsPage +@@ -353,9 +364,17 @@ public class RecentTabsPage // If the content offset is different from the margin, we use translationY to position the // view in line with the content offset. @@ -3112,6 +3114,25 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c /** * @return The BrowserContextHandle that should be used to read and update settings. */ +diff --git a/components/viz/common/features.cc b/components/viz/common/features.cc +--- a/components/viz/common/features.cc ++++ b/components/viz/common/features.cc +@@ -40,6 +40,7 @@ namespace features { + BASE_FEATURE(kAndroidBrowserControlsInViz, + "AndroidBrowserControlsInViz", + base::FEATURE_ENABLED_BY_DEFAULT); ++SET_CROMITE_FEATURE_DISABLED(kAndroidBrowserControlsInViz); + + // If this flag is enabled, AndroidBrowserControlsInViz and + // BottomControlsRefactor with the "Dispatch yOffset" variation must also be +@@ -47,6 +48,7 @@ BASE_FEATURE(kAndroidBrowserControlsInViz, + BASE_FEATURE(kAndroidBcivBottomControls, + "AndroidBcivBottomControls", + base::FEATURE_ENABLED_BY_DEFAULT); ++SET_CROMITE_FEATURE_DISABLED(kAndroidBcivBottomControls); + + #endif // BUILDFLAG(IS_ANDROID) + diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/content/browser/renderer_host/render_widget_host_view_android.cc --- a/content/browser/renderer_host/render_widget_host_view_android.cc +++ b/content/browser/renderer_host/render_widget_host_view_android.cc diff --git a/build/patches/Partitioning-all-cookies-by-top-frame-domain.patch b/build/patches/Partitioning-all-cookies-by-top-frame-domain.patch index fe7d981d..b4af6dde 100644 --- a/build/patches/Partitioning-all-cookies-by-top-frame-domain.patch +++ b/build/patches/Partitioning-all-cookies-by-top-frame-domain.patch @@ -13,7 +13,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../extensions/api/cookies/cookies_helpers.cc | 4 ++ .../net/profile_network_context_service.cc | 12 ++-- .../privacy_sandbox_settings_delegate.cc | 1 + - ...storage_access_grant_permission_context.cc | 12 ++++ + ...storage_access_grant_permission_context.cc | 13 +++++ .../experiment/experiment_manager_impl.cc | 1 + .../strings/android/site_settings.grdp | 4 +- .../core/browser/cookie_settings.cc | 4 +- @@ -21,7 +21,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html ...ioning-all-cookies-by-top-frame-domain.inc | 4 ++ ...ioning-all-cookies-by-top-frame-domain.inc | 1 + ...ioning-all-cookies-by-top-frame-domain.inc | 1 + - ...ioning-all-cookies-by-top-frame-domain.inc | 16 ++++++ + ...ioning-all-cookies-by-top-frame-domain.inc | 15 +++++ ...ioning-all-cookies-by-top-frame-domain.inc | 1 + net/cookies/canonical_cookie.cc | 3 - net/cookies/cookie_deletion_info.cc | 3 +- @@ -114,7 +114,15 @@ diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_settings_delegate.cc diff --git a/chrome/browser/storage_access_api/storage_access_grant_permission_context.cc b/chrome/browser/storage_access_api/storage_access_grant_permission_context.cc --- a/chrome/browser/storage_access_api/storage_access_grant_permission_context.cc +++ b/chrome/browser/storage_access_api/storage_access_grant_permission_context.cc -@@ -465,6 +465,18 @@ void StorageAccessGrantPermissionContext::CheckForAutoGrantOrAutoDenial( +@@ -220,6 +220,7 @@ FederatedIdentityPermissionContext* IsAutograntViaFedCmAllowed( + const url::Origin& embedding_origin, + const net::SchemefulSite& embedding_site, + const net::SchemefulSite& requesting_site) { ++ if ((true)) return nullptr; + CHECK(browser_context); + if (!rfh->IsFeatureEnabled( + network::mojom::PermissionsPolicyFeature::kIdentityCredentialsGet)) { +@@ -465,6 +466,18 @@ void StorageAccessGrantPermissionContext::CheckForAutoGrantOrAutoDenial( std::unique_ptr request_data, permissions::BrowserPermissionCallback callback, net::FirstPartySetMetadata metadata) { @@ -297,14 +305,13 @@ diff --git a/cromite_flags/net/base/features_cc/Partitioning-all-cookies-by-top- new file mode 100644 --- /dev/null +++ b/cromite_flags/net/base/features_cc/Partitioning-all-cookies-by-top-frame-domain.inc -@@ -0,0 +1,16 @@ +@@ -0,0 +1,15 @@ +SET_CROMITE_FEATURE_ENABLED(kCookieDomainRejectNonASCII); + +SET_CROMITE_FEATURE_DISABLED(kForceThirdPartyCookieBlocking); +SET_CROMITE_FEATURE_DISABLED(kThirdPartyPartitionedStorageAllowedByDefault); + +SET_CROMITE_FEATURE_ENABLED(kCookieSameSiteConsidersRedirectChain); -+SET_CROMITE_FEATURE_ENABLED(kSchemefulSameSite); +SET_CROMITE_FEATURE_ENABLED(kSameSiteDefaultChecksMethodRigorously); +SET_CROMITE_FEATURE_ENABLED(kTimeLimitedInsecureCookies); + diff --git a/build/patches/Private-network-access-content-settings.patch b/build/patches/Private-network-access-content-settings.patch index 110e02f6..85762c64 100644 --- a/build/patches/Private-network-access-content-settings.patch +++ b/build/patches/Private-network-access-content-settings.patch @@ -7,29 +7,75 @@ user choice in desktop platforms. License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- - .../browser/chrome_content_browser_client.cc | 2 +- + .../browser/chrome_content_browser_client.cc | 36 ++++++- ...eInsecurePrivateNetworkContentSetting.java | 93 +++++++++++++++++++ .../insecure_private_network.grdp | 18 ++++ - .../insecure_private_network.inc | 16 ++++ + .../insecure_private_network.inc | 25 +++++ + .../INSECURE_PRIVATE_NETWORK.inc | 3 + services/network/cors/cors_url_loader.cc | 8 +- .../network/private_network_access_checker.cc | 16 +++- - 6 files changed, 144 insertions(+), 9 deletions(-) + 7 files changed, 188 insertions(+), 11 deletions(-) create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromiteInsecurePrivateNetworkContentSetting.java create mode 100644 components/browser_ui/strings/bromite_content_settings/insecure_private_network.grdp create mode 100644 components/content_settings/core/browser/bromite_content_settings/insecure_private_network.inc + create mode 100644 components/content_settings/core/common/bromite_content_settings/INSECURE_PRIVATE_NETWORK.inc 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 -@@ -7529,7 +7529,7 @@ ChromeContentBrowserClient::ShouldOverridePrivateNetworkRequestPolicy( +@@ -1335,6 +1335,31 @@ bool IsDefaultSearchEngine(Profile* profile, const GURL& url) { + url); + } + ++bool ShouldAllowInsecurePrivateNetworkRequests( ++ const HostContentSettingsMap* map, ++ const url::Origin& origin) { ++ // Derive the base URL from the origin, since HostContentSettingsMap is keyed ++ // by URL and not by origin. However, this setting is conceptually keyed by ++ // origin, hence its public API uses url::Origin. ++ // ++ // This returns the default-constructed GURL for opaque origins, which should ++ // not match any content settings. ++ const GURL url = origin.GetURL(); ++ ++ const ContentSetting setting = map->GetContentSetting( ++ url, url, ContentSettingsType::INSECURE_PRIVATE_NETWORK); ++ ++ switch (setting) { ++ case CONTENT_SETTING_ALLOW: ++ return true; ++ case CONTENT_SETTING_BLOCK: ++ return false; ++ default: ++ NOTREACHED() ++ << "Invalid content setting for insecure private network requests: " ++ << setting; ++ } ++} + } // namespace + + // static +@@ -7528,12 +7553,17 @@ content::ContentBrowserClient::PrivateNetworkRequestPolicyOverride + ChromeContentBrowserClient::ShouldOverridePrivateNetworkRequestPolicy( content::BrowserContext* browser_context, const url::Origin& origin) { - #if BUILDFLAG(IS_ANDROID) +-#if BUILDFLAG(IS_ANDROID) - if (base::android::BuildInfo::GetInstance()->is_automotive()) { ++ if (HostContentSettingsMap* service = ++ HostContentSettingsMapFactory::GetForProfile(browser_context)) { ++ if (ShouldAllowInsecurePrivateNetworkRequests(service, origin)) { ++ return content::ContentBrowserClient:: ++ PrivateNetworkRequestPolicyOverride::kForceAllow; ++ } ++ } + if ((true)) { return content::ContentBrowserClient::PrivateNetworkRequestPolicyOverride:: kBlockInsteadOfWarn; } +-#endif + + // TODO(crbug.com/400455013): Add LNA support on Android + #if !BUILDFLAG(IS_ANDROID) diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromiteInsecurePrivateNetworkContentSetting.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromiteInsecurePrivateNetworkContentSetting.java new file mode 100644 --- /dev/null @@ -155,7 +201,16 @@ diff --git a/components/content_settings/core/browser/bromite_content_settings/i new file mode 100644 --- /dev/null +++ b/components/content_settings/core/browser/bromite_content_settings/insecure_private_network.inc -@@ -0,0 +1,16 @@ +@@ -0,0 +1,25 @@ ++ Register(ContentSettingsType::INSECURE_PRIVATE_NETWORK, ++ "insecure-private-network", CONTENT_SETTING_BLOCK, ++ WebsiteSettingsInfo::UNSYNCABLE, /*allowlisted_primary_schemes=*/{}, ++ /*valid_settings=*/{CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK}, ++ WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE, ++ WebsiteSettingsRegistry::ALL_PLATFORMS, ++ ContentSettingsInfo::INHERIT_IN_INCOGNITO, ++ ContentSettingsInfo::EXCEPTIONS_ON_SECURE_AND_INSECURE_ORIGINS); ++ + content_settings::WebsiteSettingsRegistry::GetInstance() + ->GetMutable(ContentSettingsType::INSECURE_PRIVATE_NETWORK) + ->set_show_into_info_page() @@ -172,6 +227,14 @@ new file mode 100644 + .set_blocked_exceptions_ui(IDS_WEBSITE_SETTINGS_CATEGORY_INSECURE_PRIVATE_NETWORK_ASK) +#endif + .set_mid_sentence_ui(IDS_INSECURE_PRIVATE_NETWORK_PERMISSION_TITLE); +diff --git a/components/content_settings/core/common/bromite_content_settings/INSECURE_PRIVATE_NETWORK.inc b/components/content_settings/core/common/bromite_content_settings/INSECURE_PRIVATE_NETWORK.inc +new file mode 100644 +--- /dev/null ++++ b/components/content_settings/core/common/bromite_content_settings/INSECURE_PRIVATE_NETWORK.inc +@@ -0,0 +1,3 @@ ++ // Stores whether to allow insecure websites to make private network requests. ++ // See also: https://wicg.github.io/cors-rfc1918 ++ INSECURE_PRIVATE_NETWORK, diff --git a/services/network/cors/cors_url_loader.cc b/services/network/cors/cors_url_loader.cc --- a/services/network/cors/cors_url_loader.cc +++ b/services/network/cors/cors_url_loader.cc 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 d411b481..6b1f478e 100644 --- a/build/patches/Remove-HTTP-referrals-in-cross-origin-navigation.patch +++ b/build/patches/Remove-HTTP-referrals-in-cross-origin-navigation.patch @@ -13,16 +13,16 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- chrome/android/chrome_java_resources.gni | 2 + chrome/android/chrome_java_sources.gni | 2 + - ...button_group_referer_policy_preference.xml | 47 ++++++++++ + ...button_group_referer_policy_preference.xml | 47 +++++++++ .../java/res/xml/privacy_preferences.xml | 4 + - .../res/xml/referer_policy_preferences.xml | 31 +++++++ + .../res/xml/referer_policy_preferences.xml | 31 ++++++ .../privacy/settings/PrivacySettings.java | 6 ++ - .../RadioButtonGroupRefererSettings.java | 89 +++++++++++++++++++ - .../settings/RefererSettingsFragment.java | 80 +++++++++++++++++ - .../api/settings_private/prefs_util.cc | 5 ++ + .../RadioButtonGroupRefererSettings.java | 89 +++++++++++++++++ + .../settings/RefererSettingsFragment.java | 96 +++++++++++++++++++ + .../api/settings_private/prefs_util.cc | 5 + .../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.html | 10 ++ .../settings/privacy_page/privacy_page.ts | 18 ++++ .../strings/android_chrome_strings.grd | 24 +++++ chrome/browser/ui/prefs/pref_watcher.cc | 2 + @@ -30,11 +30,11 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../settings_localized_strings_provider.cc | 4 + chrome/common/pref_names.h | 3 + ...-referrals-in-cross-origin-navigation.grdp | 18 ++++ - .../content/internal/context_menu_download.cc | 10 +++ + .../content/internal/context_menu_download.cc | 10 ++ .../renderer_host/navigation_request.cc | 9 ++ .../network/public/cpp/resource_request.h | 2 +- .../renderer_preferences.h | 1 + - 23 files changed, 373 insertions(+), 1 deletion(-) + 23 files changed, 389 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 @@ -295,7 +295,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting new file mode 100644 --- /dev/null +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/RefererSettingsFragment.java -@@ -0,0 +1,80 @@ +@@ -0,0 +1,96 @@ +/* + This file is part of Bromite. + @@ -321,17 +321,21 @@ new file mode 100644 +import androidx.preference.Preference; +import androidx.preference.PreferenceFragmentCompat; + ++import org.chromium.base.supplier.ObservableSupplier; ++import org.chromium.base.supplier.ObservableSupplierImpl; ++ +import org.chromium.chrome.R; +import org.chromium.chrome.browser.preferences.Pref; +import org.chromium.chrome.browser.profiles.Profile; +import org.chromium.chrome.browser.profiles.ProfileManager; -+import org.chromium.components.browser_ui.settings.TextMessagePreference; ++import org.chromium.chrome.browser.settings.ChromeBaseSettingsFragment; ++import org.chromium.components.browser_ui.settings.SettingsFragment; +import org.chromium.components.browser_ui.settings.SettingsUtils; ++import org.chromium.components.browser_ui.settings.TextMessagePreference; +import org.chromium.components.prefs.PrefService; +import org.chromium.components.user_prefs.UserPrefs; + -+public class RefererSettingsFragment -+ extends PreferenceFragmentCompat ++public class RefererSettingsFragment extends ChromeBaseSettingsFragment + implements Preference.OnPreferenceChangeListener { + + static final String PREF_REFERER_POLICY = "referer_page_radio_button_group"; @@ -339,6 +343,8 @@ new file mode 100644 + private RadioButtonGroupRefererSettings mRefererPreference; + private final PrefService prefService = UserPrefs.get(ProfileManager.getLastUsedRegularProfile()); + ++ private final ObservableSupplierImpl mPageTitle = new ObservableSupplierImpl<>(); ++ + public static String getRefererSummaryString(Context context) { + int policy = UserPrefs.get(ProfileManager.getLastUsedRegularProfile()) + .getInteger(Pref.REFERRERS_POLICY); @@ -357,6 +363,16 @@ new file mode 100644 + } + + @Override ++ public @SettingsFragment.AnimationType int getAnimationType() { ++ return SettingsFragment.AnimationType.PROPERTY; ++ } ++ ++ @Override ++ public ObservableSupplier getPageTitle() { ++ return mPageTitle; ++ } ++ ++ @Override + public void onCreatePreferences(Bundle bundle, String s) { + SettingsUtils.addPreferencesFromResource(this, R.xml.referer_policy_preferences); + getActivity().setTitle(R.string.referers_policy_title); diff --git a/build/patches/Remove-binary-blob-integrations.patch b/build/patches/Remove-binary-blob-integrations.patch index 9dc9705b..20d22880 100644 --- a/build/patches/Remove-binary-blob-integrations.patch +++ b/build/patches/Remove-binary-blob-integrations.patch @@ -29,7 +29,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html build/config/android/config.gni | 4 +- chrome/android/BUILD.gn | 32 +- chrome/android/chrome_java_sources.gni | 5 - - chrome/android/java/AndroidManifest.xml | 50 --- + chrome/android/java/AndroidManifest.xml | 50 -- .../browser/ChromeBackgroundService.java | 11 +- .../browser/PlayServicesVersionInfo.java | 12 +- .../ChromeBackgroundTaskFactory.java | 3 - @@ -37,14 +37,17 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/android/javatests/BUILD.gn | 7 - chrome/android/junit/BUILD.gn | 6 - chrome/browser/language/android/BUILD.gn | 3 - - .../language/AppLanguagePromoDialog.java | 31 -- + .../language/AppLanguagePromoDialog.java | 31 - .../language/settings/LanguageSettings.java | 6 - chrome/browser/omaha/android/BUILD.gn | 1 - .../browser/password_manager/android/BUILD.gn | 5 - - .../password_manager/GmsUpdateLauncher.java | 28 -- - .../PasswordManagerAndroidBackendUtil.java | 38 +-- + .../password_manager/GmsUpdateLauncher.java | 28 - + .../PasswordManagerAndroidBackendUtil.java | 38 +- .../PasswordManagerHelper.java | 9 - ...swordSyncControllerDelegateBridgeImpl.java | 7 - + .../android/one_time_passwords/BUILD.gn | 2 - + .../AndroidSmsOtpFetchReceiverBridge.java | 6 +- + .../AndroidSmsOtpFetcher.java | 4 +- .../push_messaging_service_factory.cc | 8 +- .../notification_telemetry_service.cc | 1 + chrome/browser/ui/BUILD.gn | 3 - @@ -53,44 +56,46 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/ui/webauthn/sheet_models.cc | 9 +- .../browser/ui/webui/chrome_web_ui_configs.cc | 1 - chrome/browser/webauthn/android/BUILD.gn | 1 - - .../CableAuthenticatorModuleProvider.java | 35 +-- + .../CableAuthenticatorModuleProvider.java | 35 +- chrome/browser/webauthn/cablev2_devices.cc | 3 + - ...igitalCredentialsPresentationDelegate.java | 88 +----- + chrome/browser/webid/BUILD.gn | 3 - + .../DigitalCredentialsCreationDelegate.java | 112 ---- + ...igitalCredentialsPresentationDelegate.java | 88 +-- chrome/test/android/BUILD.gn | 2 - .../ExternalNavigationHandler.java | 8 - components/externalauth/android/BUILD.gn | 3 - - .../externalauth/ExternalAuthUtils.java | 34 +-- + .../externalauth/ExternalAuthUtils.java | 34 +- .../UserRecoverableErrorHandler.java | 8 - .../gcm_driver/GoogleCloudMessagingV2.java | 2 + components/gcm_driver/gcm_client_impl.cc | 4 + .../gcm_driver/instance_id/android/BUILD.gn | 3 - - .../instance_id/InstanceIDBridge.java | 56 +--- + .../instance_id/InstanceIDBridge.java | 56 +- .../InstalledAppProviderImpl.java | 2 +- .../media_router/browser/android/BUILD.gn | 11 - .../media_router/BrowserMediaRouter.java | 21 +- - .../components/media_router/MediaSink.java | 44 +-- - .../media_router/MediaStatusBridge.java | 40 +-- - .../caf/BaseNotificationController.java | 59 ---- - .../caf/BaseSessionController.java | 112 +------ - .../caf/CafBaseMediaRouteProvider.java | 113 +------ - .../caf/CafMediaRouteProvider.java | 21 -- - .../media_router/caf/CafMessageHandler.java | 106 +------ + .../components/media_router/MediaSink.java | 44 +- + .../media_router/MediaStatusBridge.java | 40 +- + .../caf/BaseNotificationController.java | 59 -- + .../caf/BaseSessionController.java | 112 +--- + .../caf/CafBaseMediaRouteProvider.java | 113 +--- + .../caf/CafMediaRouteProvider.java | 21 - + .../media_router/caf/CafMessageHandler.java | 106 +--- .../media_router/caf/CastMediaSource.java | 10 +- .../media_router/caf/CastOptionsProvider.java | 21 +- - .../caf/CastSessionController.java | 87 ------ + .../caf/CastSessionController.java | 87 --- .../media_router/caf/CastUtils.java | 8 - - .../CafExpandedControllerActivity.java | 46 +-- + .../CafExpandedControllerActivity.java | 46 +- .../CafRemotingMediaRouteProvider.java | 4 +- - .../remoting/FlingingControllerAdapter.java | 96 ------ + .../remoting/FlingingControllerAdapter.java | 96 --- .../caf/remoting/RemotingMediaSource.java | 8 +- - .../remoting/RemotingSessionController.java | 31 -- + .../remoting/RemotingSessionController.java | 31 - .../test/android/cast_emulator/BUILD.gn | 1 - components/module_installer/android/BUILD.gn | 4 - components/omnibox/common/BUILD.gn | 1 - .../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 - @@ -104,12 +109,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html services/BUILD.gn | 10 - services/device/geolocation/BUILD.gn | 4 - services/shape_detection/BUILD.gn | 2 - - third_party/android_deps/BUILD.gn | 286 +----------------- + third_party/android_deps/BUILD.gn | 273 +-------- + third_party/android_deps/autorolled/BUILD.gn | 550 ------------------ .../preconditions/javatests/BUILD.gn | 1 - .../gms/ChromiumPlayServicesAvailability.java | 10 +- third_party/androidx/customizations.gni | 14 +- third_party/cardboard/BUILD.gn | 4 - - 85 files changed, 121 insertions(+), 1804 deletions(-) + 91 files changed, 124 insertions(+), 2465 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 @@ -817,6 +823,70 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom PasswordSyncControllerDelegateBridgeImplJni.get() .onCredentialManagerError(mNativeDelegateBridgeImpl, error, apiErrorCode); } +diff --git a/chrome/browser/password_manager/android/one_time_passwords/BUILD.gn b/chrome/browser/password_manager/android/one_time_passwords/BUILD.gn +--- a/chrome/browser/password_manager/android/one_time_passwords/BUILD.gn ++++ b/chrome/browser/password_manager/android/one_time_passwords/BUILD.gn +@@ -47,7 +47,6 @@ android_library("java") { + ] + + deps = [ +- "$google_play_services_package:google_play_services_basement_java", + "//base:base_java", + "//build/android:build_java", + "//chrome/browser/password_manager/android/one_time_passwords:sms_otp_fetching_interface_java", +@@ -61,7 +60,6 @@ android_library("java") { + + android_library("sms_otp_fetching_interface_java") { + deps = [ +- "$google_play_services_package:google_play_services_basement_java", + "//base:base_java", + "//base:service_loader_java", + ] +diff --git a/chrome/browser/password_manager/android/one_time_passwords/java/src/org/chromium/chrome/browser/password_manager/one_time_passwords/AndroidSmsOtpFetchReceiverBridge.java b/chrome/browser/password_manager/android/one_time_passwords/java/src/org/chromium/chrome/browser/password_manager/one_time_passwords/AndroidSmsOtpFetchReceiverBridge.java +--- a/chrome/browser/password_manager/android/one_time_passwords/java/src/org/chromium/chrome/browser/password_manager/one_time_passwords/AndroidSmsOtpFetchReceiverBridge.java ++++ b/chrome/browser/password_manager/android/one_time_passwords/java/src/org/chromium/chrome/browser/password_manager/one_time_passwords/AndroidSmsOtpFetchReceiverBridge.java +@@ -4,8 +4,6 @@ + + package org.chromium.chrome.browser.password_manager.one_time_passwords; + +-import com.google.android.gms.common.api.ApiException; +- + import org.jni_zero.CalledByNative; + import org.jni_zero.NativeMethods; + +@@ -34,11 +32,11 @@ class AndroidSmsOtpFetchReceiverBridge { + .onOtpValueRetrieved(mNativeReceiverBridge, otpValue); + } + +- void onOtpValueRetrievalError(ApiException exception) { ++ void onOtpValueRetrievalError(Object exception) { + if (mNativeReceiverBridge == 0) return; + + AndroidSmsOtpFetchReceiverBridgeJni.get() +- .onOtpValueRetrievalError(mNativeReceiverBridge, exception.getStatusCode()); ++ .onOtpValueRetrievalError(mNativeReceiverBridge, 500); + } + + @CalledByNative +diff --git a/chrome/browser/password_manager/android/one_time_passwords/java/src/org/chromium/chrome/browser/password_manager/one_time_passwords/AndroidSmsOtpFetcher.java b/chrome/browser/password_manager/android/one_time_passwords/java/src/org/chromium/chrome/browser/password_manager/one_time_passwords/AndroidSmsOtpFetcher.java +--- a/chrome/browser/password_manager/android/one_time_passwords/java/src/org/chromium/chrome/browser/password_manager/one_time_passwords/AndroidSmsOtpFetcher.java ++++ b/chrome/browser/password_manager/android/one_time_passwords/java/src/org/chromium/chrome/browser/password_manager/one_time_passwords/AndroidSmsOtpFetcher.java +@@ -3,8 +3,6 @@ + // found in the LICENSE file. + package org.chromium.chrome.browser.password_manager.one_time_passwords; + +-import com.google.android.gms.common.api.ApiException; +- + import org.chromium.base.Callback; + import org.chromium.build.annotations.NullMarked; + +@@ -17,5 +15,5 @@ public interface AndroidSmsOtpFetcher { + * @param otpValueCallback Callback that is called on success with the fetched OTP value string. + * @param failureCallback A callback that is called on failure for any reason. + */ +- void retrieveSmsOtp(Callback otpValueCallback, Callback failureCallback); ++ void retrieveSmsOtp(Callback otpValueCallback, Callback failureCallback); + } diff --git a/chrome/browser/push_messaging/push_messaging_service_factory.cc b/chrome/browser/push_messaging/push_messaging_service_factory.cc --- a/chrome/browser/push_messaging/push_messaging_service_factory.cc +++ b/chrome/browser/push_messaging/push_messaging_service_factory.cc @@ -1018,6 +1088,156 @@ diff --git a/chrome/browser/webauthn/cablev2_devices.cc b/chrome/browser/webauth ScopedListPrefUpdate update(profile->GetPrefs(), kWebAuthnCablePairingsPrefName); +diff --git a/chrome/browser/webid/BUILD.gn b/chrome/browser/webid/BUILD.gn +--- a/chrome/browser/webid/BUILD.gn ++++ b/chrome/browser/webid/BUILD.gn +@@ -13,8 +13,6 @@ android_library("java") { + "android/java/src/org/chromium/chrome/browser/webid/IdentityCredentialsDelegate.java", + ] + deps = [ +- "$google_play_services_package:google_play_services_identity_credentials_java", +- "$google_play_services_package:google_play_services_tasks_java", + "//base:base_java", + "//base:service_loader_java", + "//content/public/android:content_java", +@@ -43,7 +41,6 @@ robolectric_library("junit") { + + deps = [ + ":java", +- "$google_play_services_package:google_play_services_identity_credentials_java", + "//base:base_junit_test_support", + "//content/public/android:content_java", + "//third_party/junit:junit", +diff --git a/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/webid/DigitalCredentialsCreationDelegate.java b/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/webid/DigitalCredentialsCreationDelegate.java +--- a/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/webid/DigitalCredentialsCreationDelegate.java ++++ b/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/webid/DigitalCredentialsCreationDelegate.java +@@ -21,10 +21,6 @@ import androidx.credentials.exceptions.CreateCredentialException; + import androidx.credentials.exceptions.CreateCredentialUnknownException; + import androidx.credentials.provider.PendingIntentHandler; + +-import com.google.android.gms.identitycredentials.CreateCredentialRequest; +-import com.google.android.gms.identitycredentials.IdentityCredentialClient; +-import com.google.android.gms.identitycredentials.IdentityCredentialManager; +- + import org.json.JSONException; + import org.json.JSONObject; + +@@ -49,115 +45,7 @@ public class DigitalCredentialsCreationDelegate { + + @OptIn(markerClass = androidx.credentials.ExperimentalDigitalCredentialApi.class) + public Promise create(Activity window, String origin, String request) { +- final IdentityCredentialClient client = +- IdentityCredentialManager.Companion.getClient(window); +- + final Promise result = new Promise(); +- +- ResultReceiver resultReceiver = +- new ResultReceiver(new Handler(Looper.getMainLooper())) { +- @Override +- protected void onReceiveResult(int code, Bundle data) { +- if (!result.isPending()) { +- // Promises don't support duplicate calls to fulfill/reject. If the +- // promise has been fulfilled/rejected already (e.g. due to erroneous +- // exception during the API call), return immediately. +- return; +- } +- Log.d(TAG, "Received a response"); +- Intent providerData = +- Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU +- ? data.getParcelable(BUNDLE_KEY_PROVIDER_DATA, Intent.class) +- : data.getParcelable(BUNDLE_KEY_PROVIDER_DATA); +- +- if (providerData == null) { +- Log.d(TAG, "Response doesn't contain providerData"); +- result.reject( +- new CreateCredentialUnknownException( +- "Response doesn't contain providerData")); +- return; +- } +- +- var response = +- PendingIntentHandler.retrieveCreateCredentialResponse( +- TYPE_DIGITAL_CREDENTIAL, providerData); +- if (response == null) { +- CreateCredentialException exception = +- PendingIntentHandler.retrieveCreateCredentialException( +- providerData); +- result.reject( +- exception == null +- ? new CreateCredentialUnknownException("empty response") +- : exception); +- return; +- } +- String responseJson = +- response.getData() +- .getString("androidx.credentials.BUNDLE_KEY_RESPONSE_JSON"); +- if (responseJson == null) { +- result.reject( +- new CreateCredentialUnknownException( +- "Response doesn't contain responseJson")); +- return; +- } +- Log.d(TAG, "Response JSON: " + responseJson); +- +- DigitalCredential digitalCredential = parseResponse(responseJson); +- if (digitalCredential == null) { +- result.reject( +- new CreateCredentialUnknownException( +- "Failed to parse response")); +- return; +- } +- result.fulfill(digitalCredential); +- } +- }; +- +- Bundle requestBundle = new Bundle(); +- requestBundle.putString("androidx.credentials.BUNDLE_KEY_REQUEST_JSON", request); +- CreateCredentialRequest createRequest = +- new CreateCredentialRequest( +- TYPE_DIGITAL_CREDENTIAL, +- /* credentialData= */ requestBundle, +- /* candidateQueryData= */ new Bundle(), +- origin, +- request, +- resultReceiver); +- +- client.createCredential(createRequest) +- .addOnSuccessListener( +- response -> { +- if (response.getPendingIntent() == null) { +- Log.d(TAG, "Response doesn't contain pendingIntent"); +- result.reject( +- new CreateCredentialUnknownException( +- "Response doesn't contain pendingIntent")); +- return; +- } +- try { +- Log.d(TAG, "Sending an intent for sender"); +- Log.d(TAG, request); +- startIntentSenderForResult( +- /* activity= */ window, +- /* intent= */ response.getPendingIntent().getIntentSender(), +- /* requestCode= */ REQUEST_CODE_DIGITAL_CREDENTIALS_CREATION, +- /* fillInIntent= */ null, +- /* flagsMask= */ 0, +- /* flagsValues= */ 0, +- /* extraFlags= */ 0, +- /* options= */ null); +- } catch (SendIntentException e) { +- Log.e(TAG, "Sending an intent for sender failed"); +- if (result.isPending()) { +- result.reject(e); +- } +- } +- }) +- .addOnFailureListener( +- e -> { +- result.reject(new CreateCredentialUnknownException("unknown error")); +- }); +- + return result; + } + diff --git a/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/webid/DigitalCredentialsPresentationDelegate.java b/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/webid/DigitalCredentialsPresentationDelegate.java --- a/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/webid/DigitalCredentialsPresentationDelegate.java +++ b/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/webid/DigitalCredentialsPresentationDelegate.java @@ -3659,27 +3879,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. } # The section below is generated by running -@@ -153,19 +144,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. - java_prebuilt("com_android_support_support_annotations_java") { -@@ -233,94 +211,6 @@ if (!limit_android_deps) { +@@ -233,94 +224,6 @@ if (!limit_android_deps) { } } @@ -3774,7 +3974,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("com_googlecode_java_diff_utils_diffutils_java") { -@@ -500,180 +390,6 @@ if (!limit_android_deps) { +@@ -500,180 +403,6 @@ if (!limit_android_deps) { deps = [ ":org_mockito_mockito_core_java" ] } @@ -3955,6 +4155,594 @@ 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("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/autorolled/BUILD.gn b/third_party/android_deps/autorolled/BUILD.gn +--- a/third_party/android_deps/autorolled/BUILD.gn ++++ b/third_party/android_deps/autorolled/BUILD.gn +@@ -139,342 +139,6 @@ template("define_autorolled_targets") { + deps = [ "//third_party/android_deps:org_ow2_asm_asm_tree_java" ] + } + 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_android_datatransport_transport_backend_cct_java") { +- aar_path = "autorolled/cipd/libs/com_google_android_datatransport_transport_backend_cct/transport-backend-cct-4.0.0.aar" +- info_path = "autorolled/committed/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_firebase_firebase_encoders_java", +- "$google_play_services_package:google_firebase_firebase_encoders_json_java", +- "//third_party/android_deps:google_android_datatransport_transport_api_java", +- "//third_party/android_deps:google_android_datatransport_transport_runtime_java", +- "//third_party/androidx:androidx_annotation_annotation_java", +- ] +- } +- } +- +- # 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 = "autorolled/cipd/libs/com_google_android_gms_play_services_auth/play-services-auth-21.3.0.aar" +- info_path = "autorolled/committed/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", +- ] +- } +- } +- +- # 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 = "autorolled/cipd/libs/com_google_android_gms_play_services_auth_api_phone/play-services-auth-api-phone-18.2.0.aar" +- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_auth_api_phone/com_google_android_gms_play_services_auth_api_phone.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/android_deps:org_jetbrains_kotlinx_kotlinx_coroutines_core_java", +- "//third_party/android_deps:org_jetbrains_kotlinx_kotlinx_coroutines_play_services_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_auth_base_java") { +- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_auth_base/play-services-auth-base-18.1.0.aar" +- info_path = "autorolled/committed/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 = "autorolled/cipd/libs/com_google_android_gms_play_services_auth_blockstore/play-services-auth-blockstore-16.4.0.aar" +- info_path = "autorolled/committed/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 = "autorolled/cipd/libs/com_google_android_gms_play_services_base/play-services-base-18.7.0.aar" +- info_path = "autorolled/committed/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 = "autorolled/cipd/libs/com_google_android_gms_play_services_basement/play-services-basement-18.7.0.aar" +- info_path = "autorolled/committed/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_core_core_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 = "autorolled/cipd/libs/com_google_android_gms_play_services_cast/play-services-cast-22.1.0.aar" +- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_cast/com_google_android_gms_play_services_cast.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_flags_java", +- "$google_play_services_package:google_play_services_tasks_java", +- "//third_party/androidx:androidx_core_core_java", +- "//third_party/androidx:androidx_mediarouter_mediarouter_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_cast_framework_java") { +- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_cast_framework/play-services-cast-framework-22.1.0.aar" +- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_cast_framework/com_google_android_gms_play_services_cast_framework.info" +- enable_bytecode_checks = false +- deps = [ +- "$google_play_services_package:google_play_services_base_java", +- "$google_play_services_package:google_play_services_basement_java", +- "$google_play_services_package:google_play_services_cast_java", +- "$google_play_services_package:google_play_services_tasks_java", +- "//third_party/android_deps:google_android_datatransport_transport_api_java", +- "//third_party/android_deps:google_android_datatransport_transport_backend_cct_java", +- "//third_party/android_deps:google_android_datatransport_transport_runtime_java", +- "//third_party/android_deps:guava_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", +- "//third_party/androidx:androidx_mediarouter_mediarouter_java", +- "//third_party/androidx:androidx_recyclerview_recyclerview_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_fido_java") { +- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_fido/play-services-fido-21.2.0.aar" +- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_fido/com_google_android_gms_play_services_fido.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/android_deps:org_jetbrains_kotlinx_kotlinx_coroutines_core_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 = "autorolled/cipd/libs/com_google_android_gms_play_services_gcm/play-services-gcm-17.0.0.aar" +- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_gcm/com_google_android_gms_play_services_gcm.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_iid_java", +- "$google_play_services_package:google_play_services_stats_java", +- "//third_party/androidx:androidx_collection_collection_java", +- "//third_party/androidx:androidx_core_core_java", +- "//third_party/androidx:androidx_legacy_legacy_support_core_utils_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_identity_credentials_java") { +- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_identity_credentials/play-services-identity-credentials-16.0.0-alpha07.aar" +- info_path = "autorolled/committed/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 = "autorolled/cipd/libs/com_google_android_gms_play_services_iid/play-services-iid-17.0.0.aar" +- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_iid/com_google_android_gms_play_services_iid.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_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_play_services_instantapps_java") { +- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_instantapps/play-services-instantapps-18.1.0.aar" +- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_instantapps/com_google_android_gms_play_services_instantapps.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", +- ] +- } +- } +- +- # 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 = "autorolled/cipd/libs/com_google_android_gms_play_services_location/play-services-location-21.3.0.aar" +- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_location/com_google_android_gms_play_services_location.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/android_deps:org_jetbrains_kotlinx_kotlinx_coroutines_android_java", +- "//third_party/android_deps:org_jetbrains_kotlinx_kotlinx_coroutines_core_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_stats_java") { +- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_stats/play-services-stats-17.1.0.aar" +- info_path = "autorolled/committed/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", +- "//third_party/androidx:androidx_legacy_legacy_support_core_utils_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 = "autorolled/cipd/libs/com_google_android_gms_play_services_tasks/play-services-tasks-18.3.0.aar" +- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_tasks/com_google_android_gms_play_services_tasks.info" +- enable_bytecode_checks = false +- deps = [ +- "$google_play_services_package:google_play_services_basement_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_vision_java") { +- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_vision/play-services-vision-20.1.3.aar" +- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_vision/com_google_android_gms_play_services_vision.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_vision_common_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_vision_common_java") { +- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_vision_common/play-services-vision-common-19.1.3.aar" +- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_vision_common/com_google_android_gms_play_services_vision_common.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_clearcut_java", +- "$google_play_services_package:google_play_services_flags_java", +- "$google_play_services_package:google_play_services_phenotype_java", +- ] +- } +- } +- +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +- android_aar_prebuilt( +- "com_google_android_libraries_identity_googleid_googleid_java") { +- aar_path = "autorolled/cipd/libs/com_google_android_libraries_identity_googleid_googleid/googleid-1.1.1.aar" +- info_path = "autorolled/committed/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") { +@@ -523,24 +187,6 @@ template("define_autorolled_targets") { + } + } + +- # 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 = "autorolled/cipd/libs/com_google_android_play_feature_delivery/feature-delivery-2.1.0.aar" +- info_path = "autorolled/committed/libs/com_google_android_play_feature_delivery/com_google_android_play_feature_delivery.info" +- enable_bytecode_checks = false +- +- # Target is swapped out when internal code is enabled. +- # Please depend on //third_party/android_deps:playcore_java instead. +- visibility = [ "//third_party/android_deps:*" ] +- deps = [ +- "$google_play_services_package:google_play_services_basement_java", +- "$google_play_services_package:google_play_services_tasks_java", +- "//third_party/android_deps:com_google_android_play_core_common_java", +- ] +- } +- } +- + # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. + java_prebuilt("com_google_code_findbugs_jsr305_java") { + jar_path = "autorolled/cipd/libs/com_google_code_findbugs_jsr305/jsr305-3.0.2.jar" +@@ -642,21 +288,6 @@ template("define_autorolled_targets") { + deps = [ "//third_party/kotlin_stdlib:kotlin_stdlib_java" ] + } + +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +- java_prebuilt( +- "org_jetbrains_kotlinx_kotlinx_coroutines_play_services_java") { +- jar_path = "autorolled/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 = [ +- "$google_play_services_package:google_play_services_tasks_java", +- "//third_party/android_deps:org_jetbrains_kotlinx_kotlinx_coroutines_core_java", +- "//third_party/kotlin_stdlib:kotlin_stdlib_java", +- ] +- } +- + # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. + java_prebuilt("org_jetbrains_kotlinx_kotlinx_serialization_core_jvm_java") { + jar_path = "autorolled/cipd/libs/org_jetbrains_kotlinx_kotlinx_serialization_core_jvm/kotlinx-serialization-core-jvm-1.7.2.jar" +@@ -695,126 +326,6 @@ template("define_autorolled_targets") { + ] + } + +- # 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 = "autorolled/cipd/libs/com_google_android_datatransport_transport_api/transport-api-4.0.0.aar" +- info_path = "autorolled/committed/libs/com_google_android_datatransport_transport_api/com_google_android_datatransport_transport_api.info" +- enable_bytecode_checks = false +- +- # To remove visibility constraint, add this dependency to +- # //third_party/android_deps/autorolled/build.gradle. +- visibility = [ +- ":*", +- "//third_party/androidx:*", +- ] +- deps = [ "//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_android_datatransport_transport_runtime_java") { +- aar_path = "autorolled/cipd/libs/com_google_android_datatransport_transport_runtime/transport-runtime-4.0.0.aar" +- info_path = "autorolled/committed/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/autorolled/build.gradle. +- visibility = [ +- ":*", +- "//third_party/androidx:*", +- ] +- deps = [ +- "$google_play_services_package:google_firebase_firebase_encoders_java", +- "$google_play_services_package:google_firebase_firebase_encoders_proto_java", +- "//third_party/android_deps:google_android_datatransport_transport_api_java", +- "//third_party/android_deps:javax_inject_javax_inject_java", +- "//third_party/androidx:androidx_annotation_annotation_java", +- ] +- } +- } +- +- # 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 = "autorolled/cipd/libs/com_google_android_gms_play_services_clearcut/play-services-clearcut-17.0.0.aar" +- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_clearcut/com_google_android_gms_play_services_clearcut.info" +- enable_bytecode_checks = false +- +- # To remove visibility constraint, add this dependency to +- # //third_party/android_deps/autorolled/build.gradle. +- visibility = [ +- ":*", +- "//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_phenotype_java", +- "$google_play_services_package:google_play_services_tasks_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_play_services_flags_java") { +- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_flags/play-services-flags-18.1.0.aar" +- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_flags/com_google_android_gms_play_services_flags.info" +- enable_bytecode_checks = false +- +- # To remove visibility constraint, add this dependency to +- # //third_party/android_deps/autorolled/build.gradle. +- visibility = [ +- ":*", +- "//third_party/androidx:*", +- ] +- deps = [ +- "$google_play_services_package:google_play_services_base_java", +- "$google_play_services_package:google_play_services_basement_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_phenotype_java") { +- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_phenotype/play-services-phenotype-17.0.0.aar" +- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_phenotype/com_google_android_gms_play_services_phenotype.info" +- enable_bytecode_checks = false +- +- # To remove visibility constraint, add this dependency to +- # //third_party/android_deps/autorolled/build.gradle. +- visibility = [ +- ":*", +- "//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", +- "//third_party/androidx:androidx_core_core_java", +- ] +- } +- } +- +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +- android_aar_prebuilt("com_google_android_play_core_common_java") { +- aar_path = "autorolled/cipd/libs/com_google_android_play_core_common/core-common-2.0.3.aar" +- info_path = "autorolled/committed/libs/com_google_android_play_core_common/com_google_android_play_core_common.info" +- enable_bytecode_checks = false +- +- # To remove visibility constraint, add this dependency to +- # //third_party/android_deps/autorolled/build.gradle. +- visibility = [ +- ":*", +- "//third_party/androidx:*", +- ] +- } +- + # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. + java_prebuilt("com_google_auto_value_auto_value_annotations_java") { + jar_path = "autorolled/cipd/libs/com_google_auto_value_auto_value_annotations/auto-value-annotations-1.11.0.jar" +@@ -831,67 +342,6 @@ template("define_autorolled_targets") { + 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_encoders_java") { +- jar_path = "autorolled/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 +- # //third_party/android_deps/autorolled/build.gradle. +- visibility = [ +- ":*", +- "//third_party/androidx:*", +- ] +- deps = [ "//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_encoders_json_java") { +- aar_path = "autorolled/cipd/libs/com_google_firebase_firebase_encoders_json/firebase-encoders-json-18.0.0.aar" +- info_path = "autorolled/committed/libs/com_google_firebase_firebase_encoders_json/com_google_firebase_firebase_encoders_json.info" +- enable_bytecode_checks = false +- +- # To remove visibility constraint, add this dependency to +- # //third_party/android_deps/autorolled/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") { +- java_prebuilt("google_firebase_firebase_encoders_proto_java") { +- jar_path = "autorolled/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/autorolled/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. + java_prebuilt( + "com_google_testparameterinjector_test_parameter_injector_java") { 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/Restore-BookmarkToolbar-setCurrentFolder.patch b/build/patches/Restore-BookmarkToolbar-setCurrentFolder.patch index 93b187e0..7252a513 100644 --- a/build/patches/Restore-BookmarkToolbar-setCurrentFolder.patch +++ b/build/patches/Restore-BookmarkToolbar-setCurrentFolder.patch @@ -6,24 +6,17 @@ restore https://chromium-review.googlesource.com/c/chromium/src/+/5554182 License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- - .../chrome/browser/bookmarks/BookmarkToolbar.java | 13 +++++++++++++ - .../bookmarks/BookmarkToolbarCoordinator.java | 1 + - .../browser/bookmarks/BookmarkToolbarMediator.java | 1 + - .../bookmarks/BookmarkToolbarProperties.java | 9 +++++++++ - .../bookmarks/BookmarkToolbarViewBinder.java | 4 ++++ - 5 files changed, 28 insertions(+) + .../chrome/browser/bookmarks/BookmarkToolbar.java | 12 ++++++++++++ + .../bookmarks/BookmarkToolbarCoordinator.java | 1 + + .../browser/bookmarks/BookmarkToolbarMediator.java | 1 + + .../browser/bookmarks/BookmarkToolbarProperties.java | 9 +++++++++ + .../browser/bookmarks/BookmarkToolbarViewBinder.java | 4 ++++ + 5 files changed, 27 insertions(+) diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java --- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java +++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java -@@ -13,12 +13,14 @@ import android.view.View; - import android.view.View.OnClickListener; - - import androidx.annotation.IdRes; -+import androidx.annotation.Nullable; - import androidx.appcompat.widget.Toolbar.OnMenuItemClickListener; - import androidx.core.view.MenuCompat; - +@@ -19,6 +19,7 @@ import androidx.core.view.MenuCompat; import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; import org.chromium.chrome.browser.bookmarks.BookmarkUiState.BookmarkUiMode; @@ -31,7 +24,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows import org.chromium.components.bookmarks.BookmarkId; import org.chromium.components.browser_ui.util.ToolbarUtils; import org.chromium.components.browser_ui.widget.selectable_list.SelectableListToolbar; -@@ -35,8 +37,10 @@ import java.util.function.Function; +@@ -35,8 +36,10 @@ import java.util.function.Function; @NullMarked public class BookmarkToolbar extends SelectableListToolbar implements OnMenuItemClickListener, OnClickListener { @@ -42,7 +35,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows private boolean mEditButtonVisible; private boolean mNewFolderButtonVisible; private boolean mNewFolderButtonEnabled; -@@ -65,6 +69,11 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -65,6 +68,11 @@ public class BookmarkToolbar extends SelectableListToolbar setOnMenuItemClickListener(this); } @@ -54,7 +47,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows void setSelectionDelegate(SelectionDelegate selectionDelegate) { mSelectionDelegate = selectionDelegate; getMenu().setGroupEnabled(R.id.selection_mode_menu_group, true); -@@ -168,6 +177,10 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -168,6 +176,10 @@ public class BookmarkToolbar extends SelectableListToolbar getMenu().findItem(id).setChecked(true); } diff --git a/build/patches/Restore-Simplified-NTP-launch.patch b/build/patches/Restore-Simplified-NTP-launch.patch index 9e82d960..bcc1806f 100644 --- a/build/patches/Restore-Simplified-NTP-launch.patch +++ b/build/patches/Restore-Simplified-NTP-launch.patch @@ -28,7 +28,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../SuggestionsNavigationDelegate.java | 27 +- .../tile/MostVisitedTilesCoordinator.java | 6 +- .../tile/MostVisitedTilesGridLayout.java | 287 ++++++++++++++++++ - .../tile/MostVisitedTilesMediator.java | 4 +- + .../tile/MostVisitedTilesMediator.java | 5 +- + .../tile/TileDragDelegateImpl.java | 6 +- .../suggestions/tile/TileRenderer.java | 8 +- .../suggestions/tile/TilesLinearLayout.java | 2 +- .../engagement/important_sites_util.cc | 2 +- @@ -36,10 +37,11 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/flags/ChromeFeatureList.java | 3 +- .../client_util/HomeModulesRankingHelper.java | 1 + .../history/core/browser/top_sites_impl.h | 2 +- + components/ntp_tiles/custom_links_store.cc | 2 - .../Restore-Simplified-NTP-launch.inc | 12 + .../Restore-Simplified-NTP-launch.inc | 5 + .../Restore-Simplified-NTP-launch.inc | 1 + - 33 files changed, 534 insertions(+), 47 deletions(-) + 35 files changed, 537 insertions(+), 53 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 @@ -1005,6 +1007,44 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til ViewStub noMvPlaceholderStub, TileRenderer renderer, PropertyModel propertyModel, +@@ -164,7 +164,6 @@ public class MostVisitedTilesMediator implements TileGroup.Observer, TemplateUrl + + @Override + public void onCustomTileCreation(Tile tile) { +- mMvTilesLayout.ensureTileIsInViewOnNextLayout(tile.getIndex()); + } + + public void onConfigurationChanged() { +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileDragDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileDragDelegateImpl.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileDragDelegateImpl.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileDragDelegateImpl.java +@@ -64,7 +64,7 @@ class TileDragDelegateImpl implements TileGroup.TileDragDelegate, TileDragSessio + private static final float DOMINATE_TRESHOLD_RATIO = 0.4f; + + // Parent container for dragged tiles. +- private final MostVisitedTilesLayout mMvTilesLayout; ++ private final MostVisitedTilesGridLayout mMvTilesLayout; + + private final float mTileWidthPx; + +@@ -85,7 +85,7 @@ class TileDragDelegateImpl implements TileGroup.TileDragDelegate, TileDragSessio + // Runnable to cancel tile movement that might not have completed yet, due to animation. + private @Nullable Runnable mPendingChangeCanceller; + +- public TileDragDelegateImpl(MostVisitedTilesLayout mvTilesLayout) { ++ public TileDragDelegateImpl(MostVisitedTilesGridLayout mvTilesLayout) { + mMvTilesLayout = mvTilesLayout; + Resources res = mMvTilesLayout.getResources(); + mTileWidthPx = res.getDimensionPixelSize(R.dimen.tile_view_width); +@@ -187,7 +187,7 @@ class TileDragDelegateImpl implements TileGroup.TileDragDelegate, TileDragSessio + + @Override + public SiteSuggestion getTileViewData(TileView view) { +- return mMvTilesLayout.getTileViewData(view); ++ return null; + } + + private void cancelPendingChange() { 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 @@ -1122,6 +1162,18 @@ diff --git a/components/history/core/browser/top_sites_impl.h b/components/histo // This class allows requests for most visited urls on any thread. All other // methods must be invoked on the UI thread. All mutations to internal state +diff --git a/components/ntp_tiles/custom_links_store.cc b/components/ntp_tiles/custom_links_store.cc +--- a/components/ntp_tiles/custom_links_store.cc ++++ b/components/ntp_tiles/custom_links_store.cc +@@ -63,8 +63,6 @@ std::vector CustomLinksStore::RetrieveLinks() { + + if (!has_recorded_first_load_stats) { + has_recorded_first_load_stats = true; +- ntp_tiles::metrics::RecordNumberOfCustomTilesOnFirstNtp( +- static_cast(links.size())); + } + + return links; diff --git a/cromite_flags/chrome/browser/about_flags_cc/Restore-Simplified-NTP-launch.inc b/cromite_flags/chrome/browser/about_flags_cc/Restore-Simplified-NTP-launch.inc new file mode 100644 --- /dev/null diff --git a/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch b/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch index 00072ebd..d0aa38dd 100644 --- a/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch +++ b/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch @@ -7,7 +7,7 @@ Voice button and legacy share/voice functionality is not restored. License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../ReaderModeToolbarButtonController.java | 5 +++-- + .../ReaderModeToolbarButtonController.java | 4 ++-- .../ContextualPageActionController.java | 4 ++++ .../chrome/browser/settings/MainSettings.java | 9 +-------- .../segmentation_platform_config.cc | 1 + @@ -19,13 +19,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../adaptive/AdaptiveToolbarStats.java | 2 ++ ...oButtonGroupAdaptiveToolbarPreference.java | 19 ++++++++++++------- ...ve-button-in-top-toolbar-customization.inc | 1 + - 12 files changed, 41 insertions(+), 21 deletions(-) + 12 files changed, 40 insertions(+), 21 deletions(-) create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Restore-adaptive-button-in-top-toolbar-customization.inc diff --git a/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeToolbarButtonController.java b/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeToolbarButtonController.java --- a/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeToolbarButtonController.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeToolbarButtonController.java -@@ -39,11 +39,12 @@ public class ReaderModeToolbarButtonController extends BaseButtonDataProvider { +@@ -39,11 +39,11 @@ public class ReaderModeToolbarButtonController extends BaseButtonDataProvider { modalDialogManager, buttonDrawable, context.getString(R.string.reader_view_text_alt), @@ -35,8 +35,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/R /* iphCommandBuilder= */ null, AdaptiveToolbarButtonVariant.READER_MODE, - /* tooltipTextResId= */ Resources.ID_NULL); -+ /* tooltipTextResId= */ R.string.reader_mode_action_chip_label_simplify_page, -+ /* showBackgroundHighlight= */ true); ++ /* tooltipTextResId= */ R.string.reader_mode_action_chip_label_simplify_page); } @Override @@ -47,7 +46,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/segmentation_pl && mTabSupplier.get().getId() == tab.getId(); if (!isSameTab) return; -+ if (signalAccumulator.hasReaderMode() ++ if (mSignalAccumulator.hasReaderMode() + && result == AdaptiveToolbarButtonVariant.UNKNOWN) { + result = AdaptiveToolbarButtonVariant.READER_MODE; + } diff --git a/build/patches/User-agent-customization.patch b/build/patches/User-agent-customization.patch index 2aadf2aa..ca21400e 100644 --- a/build/patches/User-agent-customization.patch +++ b/build/patches/User-agent-customization.patch @@ -21,14 +21,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../chrome/browser/app/ChromeActivity.java | 1 + .../init/ChromeBrowserInitializer.java | 3 + .../PrivacyPreferencesManagerImpl.java | 42 ++++ - .../settings/UserAgentPreferences.java | 183 ++++++++++++++++++ + .../settings/UserAgentPreferences.java | 189 ++++++++++++++++++ .../browser/tab/RequestDesktopUtils.java | 1 + .../chromium/chrome/browser/tab/TabImpl.java | 64 +++++- .../chromium/chrome/browser/tab/TabUtils.java | 7 +- .../browser/android/content/content_utils.cc | 32 ++- .../preferences/browser_prefs_android.cc | 7 + .../privacy_preferences_manager_impl.cc | 126 ++++++++++++ - ...ktop_site_web_contents_observer_android.cc | 11 ++ + ...ktop_site_web_contents_observer_android.cc | 11 + ...sktop_site_web_contents_observer_android.h | 2 + .../preferences/ChromePreferenceKeys.java | 2 - .../settings/PrivacyPreferencesManager.java | 8 + @@ -37,16 +37,16 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../tabwindow/TabWindowManagerImpl.java | 18 ++ .../strings/android_chrome_strings.grd | 26 +++ chrome/common/pref_names.h | 8 + - ...omiteRequestDesktopSiteContentSetting.java | 76 ++++++++ + ...omiteRequestDesktopSiteContentSetting.java | 76 +++++++ .../request_desktop_site.grdp | 18 ++ - .../widget/RadioButtonWithEditText.java | 11 ++ + .../widget/RadioButtonWithEditText.java | 11 + .../navigation_controller_android.cc | 4 + .../navigation_controller_android.h | 1 + .../renderer_host/render_process_host_impl.cc | 1 + .../browser/web_contents/web_contents_impl.cc | 6 +- .../framehost/NavigationControllerImpl.java | 3 +- content/renderer/render_thread_impl.cc | 1 - - 36 files changed, 794 insertions(+), 17 deletions(-) + 36 files changed, 800 insertions(+), 17 deletions(-) create mode 100644 chrome/android/java/res/layout/custom_useragent_preferences.xml create mode 100644 chrome/android/java/res/xml/useragent_preferences.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/settings/UserAgentPreferences.java @@ -364,7 +364,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/UserAg new file mode 100644 --- /dev/null +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/UserAgentPreferences.java -@@ -0,0 +1,183 @@ +@@ -0,0 +1,189 @@ +/* + This file is part of Bromite. + @@ -408,6 +408,7 @@ new file mode 100644 +import org.chromium.components.browser_ui.settings.SettingsUtils; +import org.chromium.components.content_settings.ContentSettingsType; +import org.chromium.components.browser_ui.site_settings.WebsitePreferenceBridge; ++import org.chromium.components.browser_ui.settings.SettingsFragment; +import org.chromium.chrome.browser.app.tabwindow.TabWindowManagerSingleton; +import org.chromium.chrome.browser.tabwindow.TabWindowManager; +import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImpl; @@ -420,7 +421,7 @@ new file mode 100644 + */ +public class UserAgentPreferences + extends PreferenceFragmentCompat -+ implements RadioGroup.OnCheckedChangeListener, ++ implements RadioGroup.OnCheckedChangeListener, SettingsFragment, + ProfileDependentSetting { + + private RadioButtonWithDescription useDefaultAgentSwitch; @@ -433,6 +434,11 @@ new file mode 100644 + private Profile mProfile; + + @Override ++ public @AnimationType int getAnimationType() { ++ return AnimationType.PROPERTY; ++ } ++ ++ @Override + public void setProfile(Profile profile) { + mProfile = profile; + } diff --git a/build/patches/Welcome-screen.patch b/build/patches/Welcome-screen.patch index 73bb1b68..aa32a07f 100644 --- a/build/patches/Welcome-screen.patch +++ b/build/patches/Welcome-screen.patch @@ -15,13 +15,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/firstrun/FirstRunActivity.java | 23 +- .../firstrun/FirstRunFlowSequencer.java | 58 +-- .../browser/firstrun/FirstRunUtils.java | 1 + - .../firstrun/ToSAndUMAFirstRunFragment.java | 335 +++++++++++++++++ + .../firstrun/ToSAndUMAFirstRunFragment.java | 321 +++++++++++++++++ .../firstrun/TosAndUmaFragmentView.java | 336 ++++++++++++++++++ .../signin/ChildAccountStatusSupplier.java | 4 + ...creenSigninAndHistorySyncActivityBase.java | 6 +- .../browser/locale/LocaleManagerDelegate.java | 5 +- .../Welcome-screen.grdp | 27 ++ - 15 files changed, 917 insertions(+), 79 deletions(-) + 15 files changed, 903 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 @@ -495,7 +495,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAnd new file mode 100644 --- /dev/null +++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java -@@ -0,0 +1,335 @@ +@@ -0,0 +1,321 @@ +// 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. @@ -783,21 +783,7 @@ new file mode 100644 + } + + private boolean getUmaCheckBoxInitialState() { -+ // Metrics and crash reporting could not be permitted by policy. -+ if (!isWaitingForNativeAndPolicyInit() -+ && !PrivacyPreferencesManagerImpl.getInstance() -+ .isUsageAndCrashReportingPermittedByPolicy()) { -+ return false; -+ } -+ -+ // A user could start FRE and accept terms of service, then close the browser and start -+ // again. In this case we rely on whatever state the user has already set. -+ if (FirstRunUtils.didAcceptTermsOfService()) { -+ return PrivacyPreferencesManagerImpl.getInstance() -+ .isUsageAndCrashReportingPermittedByUser(); -+ } -+ -+ return FirstRunActivity.DEFAULT_METRICS_AND_CRASH_REPORTING; ++ return false; + } + + // Exposed methods for ToSAndUMACCTFirstRunFragment diff --git a/build/patches/eyeo-133.0.6943.49-base.patch b/build/patches/eyeo-133.0.6943.49-base.patch index defcf080..0504aeb7 100644 --- a/build/patches/eyeo-133.0.6943.49-base.patch +++ b/build/patches/eyeo-133.0.6943.49-base.patch @@ -22,7 +22,7 @@ Based on Chromium 133.0.6943.49 .../content/browser/adblock_filter_match.h | 30 + .../browser/adblock_internals_page_handler.cc | 171 ++ .../browser/adblock_internals_page_handler.h | 61 + - .../content/browser/adblock_internals_ui.cc | 68 + + .../content/browser/adblock_internals_ui.cc | 67 + .../content/browser/adblock_internals_ui.h | 49 + .../browser/adblock_url_loader_factory.cc | 813 ++++++++++ .../browser/adblock_url_loader_factory.h | 100 ++ @@ -365,7 +365,7 @@ Based on Chromium 133.0.6943.49 tools/eyeo/update_git_grafts.py | 138 ++ tools/gritsettings/resource_ids.spec | 12 + .../histograms/metadata/extensions/enums.xml | 8 +- - 361 files changed, 48845 insertions(+), 8 deletions(-) + 361 files changed, 48844 insertions(+), 8 deletions(-) create mode 100644 components/adblock/BUILD.gn create mode 100644 components/adblock/CHANGELOG.md create mode 100644 components/adblock/LICENSE @@ -3465,7 +3465,7 @@ diff --git a/components/adblock/content/browser/adblock_internals_ui.cc b/compon new file mode 100644 --- /dev/null +++ b/components/adblock/content/browser/adblock_internals_ui.cc -@@ -0,0 +1,68 @@ +@@ -0,0 +1,67 @@ + +/* \ + * This file is part of eyeo Chromium SDK, \ @@ -3517,8 +3517,7 @@ new file mode 100644 + "trusted-types static-types " + // Add TrustedTypes policies necessary for using Polymer. + "polymer-html-literal polymer-template-event-attribute-policy;"); -+ source->AddResourcePaths( -+ base::span(kAdblockInternalsResources, kAdblockInternalsResourcesSize)); ++ source->AddResourcePaths(kAdblockInternalsResources); + source->SetDefaultResource(IDR_ADBLOCK_INTERNALS_ADBLOCK_INTERNALS_HTML); +} + From dda808cf9f359052b3d71ff51ef2d3b004eb469f Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Thu, 26 Jun 2025 14:47:38 +0200 Subject: [PATCH 6/9] Patches for 138 (line changes) --- build/patches/Add-an-always-incognito-mode.patch | 2 +- .../patches/Bookmarks-select-all-menu-entry.patch | 8 ++++---- build/patches/Restore-chrome-password-store.patch | 2 +- build/patches/eyeo-133.0.6943.49-android_api.patch | 4 ++-- .../eyeo-133.0.6943.49-chrome_integration.patch | 14 +++++++------- .../patches/eyeo-133.0.6943.49-extension_api.patch | 2 +- 6 files changed, 16 insertions(+), 16 deletions(-) diff --git a/build/patches/Add-an-always-incognito-mode.patch b/build/patches/Add-an-always-incognito-mode.patch index b383bf23..41e4e984 100644 --- a/build/patches/Add-an-always-incognito-mode.patch +++ b/build/patches/Add-an-always-incognito-mode.patch @@ -1318,7 +1318,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse #include "chrome/browser/bookmarks/bookmark_model_factory.h" #include "chrome/browser/bookmarks/managed_bookmark_service_factory.h" #include "chrome/browser/commerce/shopping_service_factory.h" -@@ -265,6 +266,12 @@ ScopedJavaLocalRef JNI_BookmarkBridge_NativeGetForProfile( +@@ -264,6 +265,12 @@ ScopedJavaLocalRef JNI_BookmarkBridge_NativeGetForProfile( if (!profile) return nullptr; diff --git a/build/patches/Bookmarks-select-all-menu-entry.patch b/build/patches/Bookmarks-select-all-menu-entry.patch index e66fb331..7b81a2c4 100644 --- a/build/patches/Bookmarks-select-all-menu-entry.patch +++ b/build/patches/Bookmarks-select-all-menu-entry.patch @@ -31,7 +31,7 @@ diff --git a/chrome/android/java/res/menu/bookmark_toolbar_menu_improved.xml b/c diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java --- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java +++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java -@@ -29,6 +29,7 @@ import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelega +@@ -28,6 +28,7 @@ import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelega import java.util.ArrayList; import java.util.List; import java.util.function.Function; @@ -39,7 +39,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows /** * Main toolbar of bookmark UI. It is responsible for displaying title and buttons associated with -@@ -191,6 +192,11 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -190,6 +191,11 @@ public class BookmarkToolbar extends SelectableListToolbar void setCurrentFolder(BookmarkId folder) { mCurrentFolder = mBookmarkModel.getBookmarkById(folder); enableImportExportMenu(); @@ -51,7 +51,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows } void enableImportExportMenu() { -@@ -227,6 +233,17 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -226,6 +232,17 @@ public class BookmarkToolbar extends SelectableListToolbar mExportBookmarkRunnable.run(); return true; } @@ -69,7 +69,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows return assumeNonNull(mMenuIdClickedFunction).apply(menuItem.getItemId()); } -@@ -249,6 +266,7 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -248,6 +265,7 @@ public class BookmarkToolbar extends SelectableListToolbar getMenu().findItem(R.id.import_menu_id).setVisible(mCurrentFolder != null); getMenu().findItem(R.id.export_menu_id).setVisible(mCurrentFolder != null); diff --git a/build/patches/Restore-chrome-password-store.patch b/build/patches/Restore-chrome-password-store.patch index 5c2a3647..9550d893 100644 --- a/build/patches/Restore-chrome-password-store.patch +++ b/build/patches/Restore-chrome-password-store.patch @@ -83,7 +83,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/browser/ui/autofill/autofill_client_provider.cc b/chrome/browser/ui/autofill/autofill_client_provider.cc --- a/chrome/browser/ui/autofill/autofill_client_provider.cc +++ b/chrome/browser/ui/autofill/autofill_client_provider.cc -@@ -37,22 +37,6 @@ AutofillClientProvider::AutofillClientProvider(PrefService* prefs) { +@@ -29,22 +29,6 @@ AutofillClientProvider::AutofillClientProvider(PrefService* prefs) { DelayRegisteringFieldTrialForA11yDeprecation(); prefs->SetBoolean(prefs::kAutofillUsingVirtualViewStructure, true); 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 4317e50b..520dc96e 100644 --- a/build/patches/eyeo-133.0.6943.49-android_api.patch +++ b/build/patches/eyeo-133.0.6943.49-android_api.patch @@ -121,7 +121,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/", -@@ -3226,6 +3232,12 @@ if (_is_default_toolchain) { +@@ -3225,6 +3231,12 @@ if (_is_default_toolchain) { sources += [ "java/src/org/chromium/chrome/browser/media/MediaCapturePickerDialogBridge.java" ] } @@ -134,7 +134,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" ] -@@ -3321,6 +3333,7 @@ if (_is_default_toolchain) { +@@ -3320,6 +3332,7 @@ if (_is_default_toolchain) { "//chrome/browser/ui/plus_addresses/android:jni_headers", "//chrome/browser/util:jni_headers", "//chrome/browser/webauthn/android:jni_headers", 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 7d5c635d..7a2b35f1 100644 --- a/build/patches/eyeo-133.0.6943.49-chrome_integration.patch +++ b/build/patches/eyeo-133.0.6943.49-chrome_integration.patch @@ -3972,7 +3972,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", -@@ -2390,6 +2394,7 @@ if (!is_android) { +@@ -2388,6 +2392,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", @@ -3980,7 +3980,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", -@@ -2893,6 +2898,7 @@ if (!is_android) { +@@ -2891,6 +2896,7 @@ if (!is_android) { "//chrome/renderer/resources/extensions/", "//chrome/test/data/cart/", "//components/test/data/ad_tagging/", @@ -3988,7 +3988,7 @@ 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", -@@ -2982,6 +2988,9 @@ if (!is_android) { +@@ -2980,6 +2986,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", @@ -3998,7 +3998,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", -@@ -4533,6 +4542,7 @@ if (!is_android) { +@@ -4531,6 +4540,7 @@ if (!is_android) { ] } @@ -4006,7 +4006,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" ] -@@ -6051,6 +6061,7 @@ test("unit_tests") { +@@ -6049,6 +6059,7 @@ test("unit_tests") { sources = [ # All unittests in browser, common, renderer and service. "../browser/about_flags_unittest.cc", @@ -4014,7 +4014,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", -@@ -6747,6 +6758,8 @@ test("unit_tests") { +@@ -6745,6 +6756,8 @@ test("unit_tests") { "//chrome/common/themes:unit_tests", "//chrome/services/file_util:unit_tests", "//components/account_id", @@ -4023,7 +4023,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", -@@ -10582,6 +10595,7 @@ if (!is_android) { +@@ -10580,6 +10593,7 @@ if (!is_android) { "//chrome/browser:test_support_ui", "//chrome/browser/ui/exclusive_access", "//chrome/browser/ui/views/side_panel", 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 dab8ff0c..2f579b5a 100644 --- a/build/patches/eyeo-133.0.6943.49-extension_api.patch +++ b/build/patches/eyeo-133.0.6943.49-extension_api.patch @@ -4163,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 -@@ -3930,6 +3930,20 @@ if (!is_android) { +@@ -3928,6 +3928,20 @@ if (!is_android) { ] } From 0ed66de1d97f6847910547655a56574409cb82fb Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Thu, 26 Jun 2025 17:56:28 +0200 Subject: [PATCH 7/9] Bump to 138.0.7204.50 --- build/RELEASE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/RELEASE b/build/RELEASE index c48d8d13..517d8a39 100644 --- a/build/RELEASE +++ b/build/RELEASE @@ -1 +1 @@ -138.0.7204.35 \ No newline at end of file +138.0.7204.50 \ No newline at end of file From 7422a67051e60a7e1af6c5bb6e5f27cacc2e335d Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Thu, 26 Jun 2025 19:37:39 +0200 Subject: [PATCH 8/9] Patches for 138.0.7204.50 --- build/patches/Add-setting-to-clear-data-on-exit.patch | 4 ++-- build/patches/Add-support-to-jxl.patch | 2 +- .../Allow-building-without-supervised-users.patch | 4 ++-- build/patches/Experimental-user-scripts-support.patch | 4 ++-- build/patches/Keep-disabled-FetchLaterAPI.patch | 2 +- build/patches/Move-navigation-bar-to-bottom.patch | 2 +- build/patches/Restore-Simplified-NTP-launch.patch | 10 +++++----- 7 files changed, 14 insertions(+), 14 deletions(-) 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 0a62e14a..058273a8 100644 --- a/build/patches/Add-setting-to-clear-data-on-exit.patch +++ b/build/patches/Add-setting-to-clear-data-on-exit.patch @@ -574,7 +574,7 @@ diff --git a/chrome/browser/profiles/android/profile_manager_utils.cc b/chrome/b diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc --- a/chrome/browser/profiles/profile_manager.cc +++ b/chrome/browser/profiles/profile_manager.cc -@@ -1441,6 +1441,19 @@ void ProfileManager::DoFinalInit(ProfileInfo* profile_info, +@@ -1446,6 +1446,19 @@ void ProfileManager::DoFinalInit(ProfileInfo* profile_info, } } @@ -594,7 +594,7 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile void ProfileManager::DoFinalInitForServices(Profile* profile, bool go_off_the_record) { if (!do_final_services_init_ || -@@ -2117,7 +2130,7 @@ void ProfileManager::OnBrowserClosed(Browser* browser) { +@@ -2122,7 +2135,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()) { diff --git a/build/patches/Add-support-to-jxl.patch b/build/patches/Add-support-to-jxl.patch index 83630bb5..8403ec3c 100644 --- a/build/patches/Add-support-to-jxl.patch +++ b/build/patches/Add-support-to-jxl.patch @@ -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 -@@ -14410,6 +14410,7 @@ from previous Chrome versions. +@@ -14417,6 +14417,7 @@ from previous Chrome versions. diff --git a/build/patches/Allow-building-without-supervised-users.patch b/build/patches/Allow-building-without-supervised-users.patch index bbe8ac98..07b977a9 100644 --- a/build/patches/Allow-building-without-supervised-users.patch +++ b/build/patches/Allow-building-without-supervised-users.patch @@ -111,7 +111,7 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc --- a/chrome/browser/profiles/profile_manager.cc +++ b/chrome/browser/profiles/profile_manager.cc -@@ -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); } @@ -122,7 +122,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); -@@ -1973,9 +1969,6 @@ void ProfileManager::AddProfileToStorage(Profile* profile) { +@@ -1978,9 +1974,6 @@ void ProfileManager::AddProfileToStorage(Profile* profile) { init_params.icon_index = profile->GetPrefs()->GetInteger(prefs::kProfileAvatarIndex); diff --git a/build/patches/Experimental-user-scripts-support.patch b/build/patches/Experimental-user-scripts-support.patch index 335423a4..95025320 100644 --- a/build/patches/Experimental-user-scripts-support.patch +++ b/build/patches/Experimental-user-scripts-support.patch @@ -413,7 +413,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc --- a/chrome/browser/profiles/profile_manager.cc +++ b/chrome/browser/profiles/profile_manager.cc -@@ -122,6 +122,10 @@ +@@ -123,6 +123,10 @@ #include "extensions/common/manifest.h" #endif @@ -424,7 +424,7 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile #if BUILDFLAG(ENABLE_SESSION_SERVICE) #include "chrome/browser/sessions/app_session_service_factory.h" #include "chrome/browser/sessions/session_service_factory.h" -@@ -1491,6 +1495,13 @@ void ProfileManager::DoFinalInitForServices(Profile* profile, +@@ -1496,6 +1500,13 @@ void ProfileManager::DoFinalInitForServices(Profile* profile, // initializing the supervised flag if necessary). ChildAccountServiceFactory::GetForProfile(profile)->Init(); ListFamilyMembersServiceFactory::GetForProfile(profile)->Init(); diff --git a/build/patches/Keep-disabled-FetchLaterAPI.patch b/build/patches/Keep-disabled-FetchLaterAPI.patch index 69df63ff..04ab3558 100644 --- a/build/patches/Keep-disabled-FetchLaterAPI.patch +++ b/build/patches/Keep-disabled-FetchLaterAPI.patch @@ -120,7 +120,7 @@ diff --git a/third_party/blink/renderer/core/fetch/fetch_manager.cc b/third_part void ResponseResolver::RejectBecauseFailed( std::optional devtools_request_id, std::optional issue_id, -@@ -1294,10 +1301,20 @@ void FetchManager::Loader::Failed( +@@ -1301,10 +1308,20 @@ void FetchManager::Loader::Failed( if (response_resolver_) { ScriptState::Scope scope(GetScriptState()); if (dom_exception) { diff --git a/build/patches/Move-navigation-bar-to-bottom.patch b/build/patches/Move-navigation-bar-to-bottom.patch index ad172016..0cdb8c2a 100644 --- a/build/patches/Move-navigation-bar-to-bottom.patch +++ b/build/patches/Move-navigation-bar-to-bottom.patch @@ -1372,7 +1372,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; -@@ -177,7 +180,12 @@ public class NewTabPageLayout extends LinearLayout +@@ -179,7 +182,12 @@ public class NewTabPageLayout extends LinearLayout mFakeSearchBoxLayout = findViewById(R.id.search_box); mFakeSearchBoxEditText = findViewById(R.id.search_box_text); insertSiteSectionView(); diff --git a/build/patches/Restore-Simplified-NTP-launch.patch b/build/patches/Restore-Simplified-NTP-launch.patch index bcc1806f..30e2c933 100644 --- a/build/patches/Restore-Simplified-NTP-launch.patch +++ b/build/patches/Restore-Simplified-NTP-launch.patch @@ -567,15 +567,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL private boolean mSearchProviderIsGoogle; private boolean mShowingNonStandardGoogleLogo; -@@ -267,6 +271,7 @@ public class NewTabPageLayout extends LinearLayout - initializeLogoCoordinator(searchProviderHasLogo, searchProviderIsGoogle); +@@ -256,6 +260,7 @@ public class NewTabPageLayout extends LinearLayout initializeMostVisitedTilesCoordinator( mProfile, lifecycleDispatcher, tileGroupDelegate, touchEnabledDelegate); + initializeDseIconView(searchProviderIsGoogle); + initializeShortcuts(); initializeSearchBoxTextView(); initializeVoiceSearchButton(); initializeLensButton(); -@@ -529,7 +534,7 @@ public class NewTabPageLayout extends LinearLayout +@@ -553,7 +558,7 @@ public class NewTabPageLayout extends LinearLayout if (mInitialTileNum == null) { mInitialTileNum = @@ -584,7 +584,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL } int currentOrientation = getResources().getConfiguration().orientation; -@@ -597,7 +602,7 @@ public class NewTabPageLayout extends LinearLayout +@@ -621,7 +626,7 @@ public class NewTabPageLayout extends LinearLayout && mInitialized) { return; } @@ -593,7 +593,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL mSearchProviderIsGoogle = isGoogle; if (!mSearchProviderIsGoogle) { -@@ -921,6 +926,22 @@ public class NewTabPageLayout extends LinearLayout +@@ -948,6 +953,22 @@ public class NewTabPageLayout extends LinearLayout return mMostVisitedTilesCoordinator; } From 21c9158695bcc8ade3b9b55c69b609d36e61fa00 Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Fri, 27 Jun 2025 08:43:26 +0200 Subject: [PATCH 9/9] TOOLS: disable v8_enable_debugging_features in debug builds to bypass the build error: FAILED: gen/v8/src/builtins/builtins-effects.cc gen/v8/embedded.S snapshot_blob.bin python3 ../../v8/tools/run.py ./clang_x64/mksnapshot --turbo_instruction_scheduling --stress-turbo-late-spilling --target_os=android --target_arch=x64 --embedded_src gen/v8/embedded.S --predictable --no-use-ic --builtins-effects-src gen/v8/src/builtins/builtins-effects.cc --turbo-elide-frames --embedded_variant Default --random-seed 314159265 --startup_blob snapshot_blob.bin --native-code-counters --concurrent-builtin-generation --concurrent-turbofan-max-threads=0 --verify-heap Return code is -5 --- build/cromite.gn_args | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/build/cromite.gn_args b/build/cromite.gn_args index f827aae4..982fb748 100644 --- a/build/cromite.gn_args +++ b/build/cromite.gn_args @@ -140,6 +140,10 @@ if (target_os == "android") { # Disable static analysis android_static_analysis = "off" + + # Turns off all V8 debug features. Disables running V8 in a pseudo debug mode + # bypass build error -5 in clang_x64/mksnapshot + v8_enable_debugging_features = false } else { generate_linker_map = true }