From 7ac442f18e61dec0a28626bc5a6bc5c1067627e9 Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Fri, 23 May 2025 17:00:12 +0200 Subject: [PATCH 1/8] Patches for v137 --- .../AImageReader-CFI-crash-mitigations.patch | 4 +- .../Add-AllowUserCertificates-flag.patch | 20 +- ...tialLowEndModeOnMidRangeDevices-flag.patch | 2 +- .../Add-a-flag-to-disable-GamePad-API.patch | 6 +- .../Add-a-proxy-configuration-page.patch | 32 +- build/patches/Add-autoplay-site-setting.patch | 6 +- .../Add-bookmark-import-export-actions.patch | 143 +++---- build/patches/Add-cromite-flags-support.patch | 100 ++--- ...dd-custom-tab-intents-privacy-option.patch | 42 +- build/patches/Add-exit-menu-item.patch | 14 +- ...g-for-omnibox-autocomplete-filtering.patch | 2 +- .../Add-flag-to-disable-IPv6-probes.patch | 6 +- ...-to-disable-external-intent-requests.patch | 4 +- .../Add-flag-to-disable-vibration.patch | 2 +- ...-switch-for-unsupported-clangd-flags.patch | 6 +- ...Add-lifetime-options-for-permissions.patch | 62 +-- .../Add-option-to-disable-snapshots.patch | 34 +- .../Add-option-to-force-tablet-UI.patch | 74 ++-- ...-to-not-persist-tabs-across-sessions.patch | 45 +- .../Add-option-to-use-home-page-as-NTP.patch | 22 +- build/patches/Add-site-engagement-flag.patch | 2 +- ...-support-for-ISupportHelpAndFeedback.patch | 6 +- build/patches/Add-support-to-jxl.patch | 22 +- build/patches/Add-webGL-site-setting.patch | 8 +- build/patches/Add-webRTC-site-settings.patch | 8 +- ...PiP-if-PopupsAndRedirects-are-active.patch | 2 +- .../Allow-playing-audio-in-background.patch | 8 +- ...ays-open-browser-controls-in-new-tab.patch | 4 +- ...e-new-tab-page-for-default-home-page.patch | 2 +- ...roid-fonts-fingerprinting-mitigation.patch | 22 +- ...Ask-for-restart-on-connection-change.patch | 64 +-- ...ioBuffer-AnalyserNode-fp-mitigations.patch | 6 +- ...Block-gateway-attacks-via-websockets.patch | 6 +- ...k-leakage-of-urls-in-sandbox-iframes.patch | 2 +- .../Block-qjz9zk-or-trk-requests.patch | 8 +- .../Bookmarks-select-all-menu-entry.patch | 8 +- build/patches/Bromite-auto-updater.patch | 38 +- build/patches/Bromite-package-name.patch | 2 +- .../Bromite-subresource-adblocker.patch | 123 +++--- .../Bubble-Locking-on-UI-DevTools.patch | 6 +- ...ORS-Preflight-Cache-on-clearing-data.patch | 2 +- build/patches/Client-hints-overrides.patch | 6 +- .../patches/Close-Sessions-On-Ip-Change.patch | 2 +- ...ress-libchrome-to-free-up-some-space.patch | 2 +- ...romite-Branding--improve-settings-ui.patch | 10 +- build/patches/Cromite-Branding.patch | 26 +- build/patches/Customize-selection-popup.patch | 32 +- ...ctionary-suggestions-for-the-Omnibox.patch | 8 +- .../Disable-Android-AppRestrictions.patch | 4 +- .../Disable-Android-Tab-Declutter.patch | 12 +- .../Disable-CSS-blink-feature-support.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 +- build/patches/Disable-GSA-by-default.patch | 16 +- .../Disable-GetInstalledRelatedApps-API.patch | 2 +- build/patches/Disable-PrivacyGuide.patch | 2 +- build/patches/Disable-Real-Box.patch | 4 +- build/patches/Disable-TLS-resumption.patch | 18 +- ...ooth-by-default-in-desktop-platforms.patch | 2 +- build/patches/Disable-WebGPU.patch | 6 +- .../patches/Disable-all-predictors-code.patch | 85 ++-- build/patches/Disable-all-promo-dialogs.patch | 2 +- .../Disable-conversion-measurement-api.patch | 42 +- build/patches/Disable-crash-reporting.patch | 6 +- .../Disable-feeds-support-by-default.patch | 2 +- ...Disable-fetching-of-all-field-trials.patch | 8 +- build/patches/Disable-idle-detection.patch | 2 +- ...media-router-and-remoting-by-default.patch | 4 +- .../Disable-omission-of-URL-elements.patch | 25 +- .../patches/Disable-plugins-enumeration.patch | 2 +- ...ers-reduced-transparency-media-query.patch | 2 +- ...e-privacy-issues-in-password-manager.patch | 8 +- ...e-references-to-fonts.googleapis.com.patch | 2 +- ...ble-remote-altsvc-for-h3-connections.patch | 4 +- build/patches/Disable-safety-check.patch | 28 +- .../Disable-smart-selection-by-default.patch | 8 +- ...isable-some-signed-exchange-features.patch | 2 +- ...isable-speechSynthesis-getVoices-API.patch | 6 +- .../Disable-text-fragments-by-default.patch | 6 +- .../Disable-third-party-origin-trials.patch | 8 +- build/patches/Disable-various-metrics.patch | 22 +- .../Disable-visited-pseudo-class.patch | 8 +- .../Do-not-build-API-keys-infobar.patch | 4 +- .../Do-not-compile-QR-code-sharing.patch | 26 +- ...ore-download-location-prompt-setting.patch | 8 +- .../patches/Do-not-link-with-libatomic.patch | 2 +- build/patches/DoH-improvements.patch | 6 +- ...ndroid-Dynamic-Performance-Framework.patch | 2 +- .../Enable-Certificate-Transparency.patch | 2 +- .../Enable-Do-Not-Track-by-default.patch | 8 +- ...le-Document-Open-Inheritance-Removal.patch | 4 +- .../Enable-Global-Privacy-Control.patch | 58 +-- build/patches/Enable-HEVC-by-default.patch | 2 +- .../Enable-ImprovedBookmarks-by-default.patch | 4 +- ...ctOriginIsolation-and-SitePerProcess.patch | 8 +- build/patches/Enable-component-updater.patch | 30 +- ...e-darken-websites-checkbox-in-themes.patch | 2 +- ...fwrapv-in-Clang-for-non-UBSan-builds.patch | 2 +- .../patches/Enable-gwp-asan-on-Android.patch | 4 +- .../Enable-menu-on-reload-button.patch | 4 +- .../Enable-network-isolation-features.patch | 12 +- ...le-platform-aac-audio-and-h264-video.patch | 6 +- build/patches/Enable-share-intent.patch | 34 +- ...ivation-of-the-js-debugger-statement.patch | 20 +- .../Experimental-user-scripts-support.patch | 36 +- build/patches/Eyeo-Adblock-for-Cromite.patch | 40 +- build/patches/Fix-chromium-build-bugs.patch | 8 +- .../Fonts-fingerprinting-mitigation.patch | 4 +- .../Force-use-vpython3-for-some-scripts.patch | 4 +- .../Guard-for-user-agent-reduction.patch | 12 +- ...ing-against-incognito-mode-detection.patch | 2 +- ...story-number-of-days-privacy-setting.patch | 44 +- build/patches/Internal-firewall.patch | 53 ++- build/patches/JIT-site-settings.patch | 6 +- .../Keep-ComputePressure-disabled.patch | 2 +- .../patches/Keep-disabled-FetchLaterAPI.patch | 6 +- .../Keep-empty-tabs-between-sessions.patch | 4 +- ...-allow-screenshots-in-Incognito-mode.patch | 2 +- build/patches/Keyboard-protection-flag.patch | 10 +- .../Lock-Profile-Cookie-Database.patch | 6 +- ...ing-attributes-in-some-html-elements.patch | 24 +- build/patches/Logcat-crash-reports-UI.patch | 6 +- .../patches/Modify-default-preferences.patch | 16 +- .../Move-navigation-bar-to-bottom.patch | 385 +++++++++--------- ...nt-settings-back-to-privacy-settings.patch | 26 +- ...ulti-Screen-Window-Placement-API-fix.patch | 11 +- .../Multiple-fingerprinting-mitigations.patch | 40 +- ...er-treat-Proguard-warnings-as-errors.patch | 4 +- build/patches/OpenSearch-miscellaneous.patch | 6 +- .../patches/Override-Navigator-Language.patch | 2 +- .../Override-the-MV2-deprecation.patch | 2 +- .../Partition-Blink-memory-cache.patch | 12 +- .../patches/Partition-HSTS-cache-by-NAK.patch | 120 +++--- .../Partition-MediaDeviceId-by-default.patch | 2 +- .../Partition-blobs-by-top-frame-URL.patch | 44 +- ...ning-all-cookies-by-top-frame-domain.patch | 26 +- ...vate-network-access-content-settings.patch | 8 +- ...redential-fingerprinting-mitigations.patch | 8 +- ...-modal-dialog-flag-to-close-all-tabs.patch | 8 +- ...e-introduce-override_build_timestamp.patch | 4 +- ...referrals-in-cross-origin-navigation.patch | 42 +- build/patches/Remove-SMS-integration.patch | 11 +- .../Remove-binary-blob-integrations.patch | 164 ++++---- build/patches/Remove-help-menu-item.patch | 26 +- .../Remove-segmentation-platform.patch | 2 +- ...Remove-voice-recognition-integration.patch | 102 +++-- ...ore-BookmarkToolbar-setCurrentFolder.patch | 22 +- .../Restore-LastTabStandingTracker.patch | 12 +- .../Restore-Search-Ready-Omnibox-flag.patch | 8 +- .../Restore-Simplified-NTP-launch.patch | 96 ++--- ...-button-in-top-toolbar-customization.patch | 58 +-- .../Restore-chrome-password-store.patch | 18 +- .../Restore-offline-indicator-v2-flag.patch | 10 +- ...emove-disable-pull-to-refresh-effect.patch | 4 +- ...l-of-execution-context-address-space.patch | 80 ++-- ...script-content-setting-secondary-url.patch | 18 +- build/patches/Show-NTP-at-startup.patch | 16 +- ...tings-for-cookies-javascript-and-ads.patch | 10 +- build/patches/Site-setting-for-images.patch | 29 +- .../Switch-to-fstack-protector-strong.patch | 2 +- ...-Add-a-log-to-track-strange-behavior.patch | 2 +- ...e-experimental-web-platform-features.patch | 2 +- ...Temp-disable-predictive-back-gesture.patch | 2 +- ...ileSystemAccessPersistentPermissions.patch | 4 +- build/patches/Timezone-customization.patch | 10 +- .../Use-browser-navigation-handler.patch | 16 +- .../Use-list-mode-for-tab-switcher.patch | 18 +- build/patches/User-agent-customization.patch | 76 ++-- build/patches/Viewport-Protection-flag.patch | 40 +- build/patches/WIN-Disable-updater.patch | 6 +- build/patches/WIN-enable-pdf-plugin.patch | 2 +- ...message-for-unsupported-hardware-aes.patch | 8 +- build/patches/Welcome-screen.patch | 8 +- build/patches/add-browser-policy.patch | 24 +- ...load-of-clang-for-windows-crossbuild.patch | 16 +- build/patches/autofill-miscellaneous.patch | 30 +- build/patches/bromite-build-utils.patch | 4 +- build/patches/disable-AdsBlockedInfoBar.patch | 2 +- .../disable-WebView-variations-support.patch | 4 +- ...IPv6-connectivity-probes-to-RIPE-DNS.patch | 2 +- .../do-not-add-suffix-to-package-name.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 | 60 ++- .../eyeo-133.0.6943.49-android_settings.patch | 6 +- build/patches/eyeo-133.0.6943.49-base.patch | 66 ++- ...yeo-133.0.6943.49-chrome_integration.patch | 87 ++-- .../eyeo-133.0.6943.49-extension_api.patch | 32 +- build/patches/kill-Auth.patch | 36 +- .../kill-Location-fall-back-to-system.patch | 4 +- build/patches/kill-Vision.patch | 4 +- .../sharing-hub-always-use-visible-URL.patch | 2 +- ...hromium-Disable-Network-Time-Tracker.patch | 2 +- ...gled-chromium-Disable-profile-avatar.patch | 4 +- ...romium-Disable-translate-integration.patch | 14 +- ...ed-chromium-no-special-hosts-domains.patch | 86 ++-- ...iew-Hard-no-to-persistent-histograms.patch | 2 +- 199 files changed, 2023 insertions(+), 2060 deletions(-) diff --git a/build/patches/AImageReader-CFI-crash-mitigations.patch b/build/patches/AImageReader-CFI-crash-mitigations.patch index 66f9d6d1..2276e291 100644 --- a/build/patches/AImageReader-CFI-crash-mitigations.patch +++ b/build/patches/AImageReader-CFI-crash-mitigations.patch @@ -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 -@@ -3344,6 +3344,10 @@ +@@ -3479,6 +3479,10 @@ "chrome-signin-team@google.com" ], "expiry_milestone": 138 @@ -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) -@@ -688,6 +689,13 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line, +@@ -684,6 +685,13 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line, } #endif // BUILDFLAG(IS_WIN) diff --git a/build/patches/Add-AllowUserCertificates-flag.patch b/build/patches/Add-AllowUserCertificates-flag.patch index 187285e9..ceada304 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 -@@ -228,6 +228,7 @@ import org.chromium.content_public.browser.LoadUrlParams; +@@ -229,6 +229,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; -@@ -984,6 +985,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -977,6 +978,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 -@@ -163,6 +163,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -170,6 +170,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 -@@ -158,6 +158,7 @@ public abstract class ChromeFeatureList { - // Feature names. - /* Alphabetical: */ +@@ -160,6 +160,7 @@ public abstract class ChromeFeatureList { public static final String ACT_USER_BYPASS_UX = "ActUserBypassUx"; + 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 ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_CUSTOMIZATION_V2 = -@@ -641,6 +642,8 @@ public abstract class ChromeFeatureList { + public static final String ALLOW_NEW_INCOGNITO_TAB_INTENTS = "AllowNewIncognitoTabIntents"; +@@ -649,6 +650,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,14 +68,14 @@ 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 = -@@ -858,6 +861,7 @@ public abstract class ChromeFeatureList { +@@ -862,6 +865,7 @@ public abstract class ChromeFeatureList { public static final List sFlagsCachedFullBrowserChromium = List.of( sAndroidAppIntegration, + sAllowUserCertificates, sAndroidAppIntegrationModule, + sAndroidAppIntegrationMultiDataSource, sAndroidAppIntegrationV2, - sAndroidAppIntegrationWithFavicon, diff --git a/cromite_flags/chrome/browser/about_flags_cc/Add-AllowUserCertificates-flag.inc b/cromite_flags/chrome/browser/about_flags_cc/Add-AllowUserCertificates-flag.inc new file mode 100644 --- /dev/null diff --git a/build/patches/Add-PartialLowEndModeOnMidRangeDevices-flag.patch b/build/patches/Add-PartialLowEndModeOnMidRangeDevices-flag.patch index aff9a9e3..718d27e2 100644 --- a/build/patches/Add-PartialLowEndModeOnMidRangeDevices-flag.patch +++ b/build/patches/Add-PartialLowEndModeOnMidRangeDevices-flag.patch @@ -14,7 +14,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/base/features.cc b/base/features.cc --- a/base/features.cc +++ b/base/features.cc -@@ -125,6 +125,10 @@ BASE_FEATURE(kPostGetMyMemoryStateToBackground, +@@ -133,6 +133,10 @@ BASE_FEATURE(kPostGetMyMemoryStateToBackground, FEATURE_ENABLED_BY_DEFAULT); #endif // 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 d0cc5837..af48fb07 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 -@@ -7921,9 +7921,9 @@ +@@ -8152,9 +8152,9 @@ "expiry_milestone": 140 }, { @@ -33,9 +33,9 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. --- a/content/child/runtime_features.cc +++ b/content/child/runtime_features.cc @@ -257,6 +257,8 @@ void SetRuntimeFeaturesFromChromiumFeatures() { + {wf::EnablePaymentApp, raw_ref(features::kServiceWorkerPaymentApps)}, + {wf::EnablePeriodicBackgroundSync, raw_ref(features::kPeriodicBackgroundSync)}, - {wf::EnablePushMessagingSubscriptionChange, - raw_ref(features::kPushSubscriptionChangeEvent)}, + {wf::EnableRestrictGamepadAccess, + raw_ref(features::kRestrictGamepadAccess)}, {wf::EnableSecurePaymentConfirmation, diff --git a/build/patches/Add-a-proxy-configuration-page.patch b/build/patches/Add-a-proxy-configuration-page.patch index 5e69a048..f97b450e 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 -@@ -79,6 +79,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 -@@ -335,6 +335,7 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() { +@@ -363,6 +363,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 -@@ -195,6 +195,8 @@ +@@ -202,6 +202,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 -@@ -1562,6 +1564,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) { +@@ -1578,6 +1580,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) { component_updater::RegisterPrefs(registry); domain_reliability::RegisterPrefs(registry); embedder_support::OriginTrialPrefs::RegisterPrefs(registry); @@ -218,7 +218,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse diff --git a/chrome/browser/prefs/chrome_command_line_pref_store.cc b/chrome/browser/prefs/chrome_command_line_pref_store.cc --- a/chrome/browser/prefs/chrome_command_line_pref_store.cc +++ b/chrome/browser/prefs/chrome_command_line_pref_store.cc -@@ -156,7 +156,7 @@ void ChromeCommandLinePrefStore::ApplyProxyMode() { +@@ -160,7 +160,7 @@ void ChromeCommandLinePrefStore::ApplyProxyMode() { command_line()->GetSwitchValueASCII(switches::kProxyBypassList); SetValue(proxy_config::prefs::kProxy, base::Value(ProxyConfigDictionary::CreateFixedServers( @@ -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 -@@ -225,6 +225,8 @@ static_library("ui") { +@@ -226,6 +226,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 -@@ -54,6 +54,9 @@ +@@ -55,6 +55,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 -@@ -395,7 +398,7 @@ void RegisterChromeWebUIConfigs() { +@@ -406,7 +409,7 @@ void RegisterChromeWebUIConfigs() { map.AddWebUIConfig(std::make_unique()); map.AddWebUIConfig(std::make_unique()); #endif @@ -1135,7 +1135,7 @@ new file mode 100644 diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_constants.cc --- a/chrome/common/webui_url_constants.cc +++ b/chrome/common/webui_url_constants.cc -@@ -50,6 +50,7 @@ bool IsSystemWebUIHost(std::string_view host) { +@@ -51,6 +51,7 @@ bool IsSystemWebUIHost(std::string_view host) { kChromeUILockScreenNetworkHost, kChromeUILockScreenStartReauthHost, kChromeUIMobileSetupHost, @@ -1143,7 +1143,7 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons kChromeUIMultiDeviceSetupHost, kChromeUINetworkHost, kChromeUINotificationTesterHost, -@@ -71,6 +72,7 @@ bool IsSystemWebUIHost(std::string_view host) { +@@ -72,6 +73,7 @@ bool IsSystemWebUIHost(std::string_view host) { // These hosts will also be suggested by BuiltinProvider. base::span ChromeURLHosts() { static constexpr auto kChromeURLHosts = std::to_array({ @@ -1154,10 +1154,10 @@ 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 -@@ -161,6 +161,8 @@ inline constexpr char kChromeUINetExportHost[] = "net-export"; - inline constexpr char kChromeUINetInternalsHost[] = "net-internals"; +@@ -163,6 +163,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"; +inline constexpr char16_t kChromeUIProxyConfigURL16[] = u"chrome://proxy/"; +inline constexpr char kChromeUIProxyConfigHost[] = "proxy"; inline constexpr char kChromeUINewTabPageHost[] = "new-tab-page"; @@ -1350,8 +1350,8 @@ diff --git a/net/proxy_resolution/pac_file_fetcher_impl.cc b/net/proxy_resolutio diff --git a/net/proxy_resolution/proxy_config.cc b/net/proxy_resolution/proxy_config.cc --- a/net/proxy_resolution/proxy_config.cc +++ b/net/proxy_resolution/proxy_config.cc -@@ -129,7 +129,7 @@ void ProxyConfig::ProxyRules::ParseFromString(const std::string& proxy_rules, - std::move(url_scheme), &single_proxies, ProxyServer::SCHEME_HTTP, +@@ -133,7 +133,7 @@ void ProxyConfig::ProxyRules::ParseFromString(std::string_view proxy_rules, + url_scheme, &single_proxies, ProxyServer::SCHEME_HTTP, allow_bracketed_proxy_chains, is_quic_allowed); type = Type::PROXY_LIST; - return; @@ -1359,7 +1359,7 @@ diff --git a/net/proxy_resolution/proxy_config.cc b/net/proxy_resolution/proxy_c } // Trim whitespace off the url scheme. -@@ -160,6 +160,57 @@ void ProxyConfig::ProxyRules::ParseFromString(const std::string& proxy_rules, +@@ -164,6 +164,57 @@ void ProxyConfig::ProxyRules::ParseFromString(std::string_view proxy_rules, } } @@ -1421,7 +1421,7 @@ diff --git a/net/proxy_resolution/proxy_config.h b/net/proxy_resolution/proxy_co --- a/net/proxy_resolution/proxy_config.h +++ b/net/proxy_resolution/proxy_config.h @@ -107,6 +107,9 @@ class NET_EXPORT ProxyConfig { - void ParseFromString(const std::string& proxy_rules, + void ParseFromString(std::string_view proxy_rules, bool allow_bracketed_proxy_chains = false, bool is_quic_allowed = false); + // Returns the proxy rules in a format that can be parsed by ParseFromString; diff --git a/build/patches/Add-autoplay-site-setting.patch b/build/patches/Add-autoplay-site-setting.patch index 98418797..3c4579ad 100644 --- a/build/patches/Add-autoplay-site-setting.patch +++ b/build/patches/Add-autoplay-site-setting.patch @@ -279,7 +279,7 @@ new file mode 100644 diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc --- a/components/content_settings/core/browser/content_settings_registry.cc +++ b/components/content_settings/core/browser/content_settings_registry.cc -@@ -248,7 +248,7 @@ void ContentSettingsRegistry::Init() { +@@ -249,7 +249,7 @@ void ContentSettingsRegistry::Init() { ContentSettingsInfo::INHERIT_IN_INCOGNITO, ContentSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY); @@ -299,7 +299,7 @@ diff --git a/third_party/blink/renderer/core/html/media/autoplay_policy.cc b/thi #include "third_party/blink/public/platform/web_media_player.h" #include "third_party/blink/public/web/web_local_frame.h" #include "third_party/blink/public/web/web_local_frame_client.h" -@@ -337,6 +338,8 @@ void AutoplayPolicy::TryUnlockingUserGesture() { +@@ -346,6 +347,8 @@ void AutoplayPolicy::TryUnlockingUserGesture() { } bool AutoplayPolicy::IsGestureNeededForPlayback() const { @@ -308,7 +308,7 @@ diff --git a/third_party/blink/renderer/core/html/media/autoplay_policy.cc b/thi if (!IsLockedPendingUserGesture()) return false; -@@ -449,6 +452,17 @@ void AutoplayPolicy::MaybeSetAutoplayInitiated() { +@@ -458,6 +461,17 @@ void AutoplayPolicy::MaybeSetAutoplayInitiated() { } } diff --git a/build/patches/Add-bookmark-import-export-actions.patch b/build/patches/Add-bookmark-import-export-actions.patch index c39db94b..194e1fb1 100644 --- a/build/patches/Add-bookmark-import-export-actions.patch +++ b/build/patches/Add-bookmark-import-export-actions.patch @@ -233,7 +233,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat - private final Activity mActivity; + private final ChromeActivity mActivity; private final BottomSheetController mBottomSheetController; - private final Supplier mUma; + private final Supplier mNewTabPageCreationTracker; private final BrowserControlsManager mBrowserControlsManager; @@ -251,7 +252,7 @@ public class NativePageFactory { mSnackbarManagerSupplier.get(), @@ -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 -@@ -221,6 +221,8 @@ static_library("browser") { +@@ -219,6 +219,8 @@ static_library("browser") { "bluetooth/chrome_bluetooth_delegate_impl_client.h", "bookmarks/bookmark_model_factory.cc", "bookmarks/bookmark_model_factory.h", @@ -256,7 +256,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "bookmarks/chrome_bookmark_client.cc", "bookmarks/chrome_bookmark_client.h", "bookmarks/managed_bookmark_service_factory.cc", -@@ -1735,6 +1737,13 @@ static_library("browser") { +@@ -1729,6 +1731,13 @@ static_library("browser") { ] } @@ -270,7 +270,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn configs += [ "//build/config/compiler:wexit_time_destructors", "//build/config:precompiled_headers", -@@ -3570,8 +3579,6 @@ static_library("browser") { +@@ -3581,8 +3590,6 @@ static_library("browser") { "bookmarks/bookmark_expanded_state_tracker.h", "bookmarks/bookmark_expanded_state_tracker_factory.cc", "bookmarks/bookmark_expanded_state_tracker_factory.h", @@ -380,7 +380,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse } void BookmarkBridge::Destroy(JNIEnv* env) { -@@ -765,6 +842,196 @@ jint BookmarkBridge::GetTotalBookmarkCount( +@@ -782,6 +859,196 @@ jint BookmarkBridge::GetTotalBookmarkCount( return count; } @@ -597,8 +597,8 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser + class BookmarkBridgeTest; - // The delegate to fetch bookmarks information for the Android native -@@ -50,7 +54,8 @@ class BookmarkBridge : public ProfileObserver, + // Values for a bitmask used to refer to a collection of bookmark nodes. +@@ -77,7 +81,8 @@ class BookmarkBridge : public ProfileObserver, public ReadingListManager::Observer, public ReadingListModelObserver, public signin::IdentityManager::Observer, @@ -608,7 +608,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser public: // All of the injected pointers must be non-null and must outlive `this`. BookmarkBridge(Profile* profile, -@@ -81,6 +86,11 @@ class BookmarkBridge : public ProfileObserver, +@@ -108,6 +113,11 @@ class BookmarkBridge : public ProfileObserver, bool IsDoingExtensiveChanges(JNIEnv* env); @@ -620,7 +620,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser jboolean IsEditBookmarksEnabled(JNIEnv* env); void LoadEmptyPartnerBookmarkShimForTesting(JNIEnv* env); -@@ -93,6 +103,17 @@ class BookmarkBridge : public ProfileObserver, +@@ -120,6 +130,17 @@ class BookmarkBridge : public ProfileObserver, jlong id, jint type); @@ -638,7 +638,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser void GetAllFoldersWithDepths( JNIEnv* env, const base::android::JavaParamRef& j_folders_obj, -@@ -362,6 +383,8 @@ class BookmarkBridge : public ProfileObserver, +@@ -390,6 +411,8 @@ class BookmarkBridge : public ProfileObserver, void CreateOrDestroyAccountReadingListManagerIfNeeded(); const raw_ptr profile_; // weak @@ -647,7 +647,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser base::android::ScopedJavaGlobalRef java_bookmark_model_; const raw_ptr bookmark_model_; // weak const raw_ptr -@@ -376,6 +399,7 @@ class BookmarkBridge : public ProfileObserver, +@@ -404,6 +427,7 @@ class BookmarkBridge : public ProfileObserver, std::unique_ptr grouped_bookmark_actions_; PrefChangeRegistrar pref_change_registrar_; @@ -655,7 +655,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser // Information about the Partner bookmarks (must check for IsLoaded()). // This is owned by profile. -@@ -407,6 +431,10 @@ class BookmarkBridge : public ProfileObserver, +@@ -435,6 +459,10 @@ class BookmarkBridge : public ProfileObserver, bool suppress_observer_notifications_ = false; @@ -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; -@@ -498,6 +504,35 @@ class BookmarkBridge { +@@ -499,6 +505,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. * -@@ -1120,6 +1155,10 @@ class BookmarkBridge { +@@ -1121,6 +1156,10 @@ class BookmarkBridge { void getChildIds( long nativeBookmarkBridge, long id, int type, List bookmarksList); @@ -759,7 +759,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java --- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java +++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java -@@ -54,6 +54,8 @@ import org.chromium.components.image_fetcher.ImageFetcher; +@@ -53,6 +53,8 @@ import org.chromium.components.image_fetcher.ImageFetcher; import org.chromium.components.image_fetcher.ImageFetcherConfig; import org.chromium.components.image_fetcher.ImageFetcherFactory; import org.chromium.ui.KeyboardVisibilityDelegate; @@ -768,7 +768,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows import org.chromium.ui.modaldialog.ModalDialogManager; import org.chromium.ui.modaldialog.ModalDialogManager.ModalDialogType; import org.chromium.ui.modelutil.MVCListAdapter.ListItem; -@@ -332,6 +334,13 @@ public class BookmarkManagerCoordinator +@@ -322,6 +324,13 @@ public class BookmarkManagerCoordinator // Public API implementation. @@ -785,7 +785,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java --- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java +++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java -@@ -58,6 +58,8 @@ import org.chromium.components.commerce.core.SubscriptionsObserver; +@@ -59,6 +59,8 @@ import org.chromium.components.commerce.core.SubscriptionsObserver; import org.chromium.components.embedder_support.util.UrlConstants; import org.chromium.components.power_bookmarks.PowerBookmarkMeta; import org.chromium.components.power_bookmarks.PowerBookmarkType; @@ -794,7 +794,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows import org.chromium.ui.accessibility.AccessibilityState; import org.chromium.ui.listmenu.ListMenu; import org.chromium.ui.listmenu.ListMenuItemProperties; -@@ -76,6 +78,47 @@ import java.util.function.BooleanSupplier; +@@ -77,6 +79,47 @@ import java.util.function.BooleanSupplier; import java.util.function.Consumer; import java.util.function.Predicate; @@ -842,7 +842,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows /** Responsible for BookmarkManager business logic. */ // TODO(crbug.com/40256938): Remove BookmarkDelegate if possible. class BookmarkManagerMediator -@@ -85,6 +128,9 @@ class BookmarkManagerMediator +@@ -86,6 +129,9 @@ class BookmarkManagerMediator private static boolean sPreventLoadingForTesting; @@ -852,7 +852,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows /** Keeps track of whether drag is enabled / active for bookmark lists. */ private class BookmarkDragStateDelegate implements DragStateDelegate { private BookmarkDelegate mBookmarkDelegate; -@@ -579,6 +625,14 @@ class BookmarkManagerMediator +@@ -583,6 +629,14 @@ class BookmarkManagerMediator mNativePage = nativePage; } @@ -867,7 +867,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows /** See BookmarkManager(Coordinator)#updateForUrl */ void updateForUrl(String url) { // Bookmark model is null if the manager has been destroyed. -@@ -754,6 +808,235 @@ class BookmarkManagerMediator +@@ -758,6 +812,235 @@ class BookmarkManagerMediator } } @@ -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 -@@ -96,6 +96,17 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -98,6 +98,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); -@@ -172,6 +183,12 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -174,6 +185,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) { -@@ -191,6 +208,13 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -197,6 +214,13 @@ public class BookmarkToolbar extends SelectableListToolbar @Override public boolean onMenuItemClick(MenuItem menuItem) { hideOverflowMenu(); @@ -1184,7 +1184,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows return mMenuIdClickedFunction.apply(menuItem.getItemId()); } -@@ -206,6 +230,9 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -217,6 +241,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 -@@ -138,6 +138,10 @@ class BookmarkToolbarMediator +@@ -135,6 +135,10 @@ class BookmarkToolbarMediator mBookmarkDelegate = bookmarkDelegate; mModel.set( BookmarkToolbarProperties.NAVIGATE_BACK_RUNNABLE, this::onNavigateBack); @@ -1211,9 +1211,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/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 -@@ -79,6 +79,10 @@ class BookmarkToolbarProperties { +@@ -84,6 +84,10 @@ class BookmarkToolbarProperties { - static final WritableObjectPropertyKey NAVIGATE_BACK_RUNNABLE = + static final WritableObjectPropertyKey NEXT_FOCUSABLE_VIEW = new WritableObjectPropertyKey<>(); + static final WritableObjectPropertyKey IMPORT_BOOKMARK_RUNNABLE = + new WritableObjectPropertyKey<>(); @@ -1222,12 +1222,12 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows static final PropertyKey[] ALL_KEYS = { SELECTION_DELEGATE, -@@ -106,6 +110,8 @@ class BookmarkToolbarProperties { - SELECTION_MODE_SHOW_OPEN_IN_INCOGNITO, +@@ -112,6 +116,8 @@ class BookmarkToolbarProperties { SELECTION_MODE_SHOW_MOVE, SELECTION_MODE_SHOW_MARK_READ, -- SELECTION_MODE_SHOW_MARK_UNREAD -+ SELECTION_MODE_SHOW_MARK_UNREAD, + SELECTION_MODE_SHOW_MARK_UNREAD, +- NEXT_FOCUSABLE_VIEW ++ NEXT_FOCUSABLE_VIEW, + IMPORT_BOOKMARK_RUNNABLE, + EXPORT_BOOKMARK_RUNNABLE }; @@ -1251,7 +1251,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java --- a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java +++ b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java -@@ -47,7 +47,7 @@ public class DownloadLocationCustomView extends ScrollView +@@ -50,7 +50,7 @@ public class DownloadLocationCustomView extends ScrollView private TextView mFileSize; private Spinner mFileLocation; private TextView mLocationAvailableSpace; @@ -1259,8 +1259,8 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse + public CheckBox mDontShowAgain; private @DownloadLocationDialogType int mDialogType; private long mTotalBytes; - private Callback mOnClickedCallback; -@@ -72,7 +72,7 @@ public class DownloadLocationCustomView extends ScrollView + private @Nullable Callback mOnClickedCallback; +@@ -75,7 +75,7 @@ public class DownloadLocationCustomView extends ScrollView mDontShowAgain = findViewById(R.id.show_again_checkbox); } @@ -1269,63 +1269,66 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse @DownloadLocationDialogType int dialogType, long totalBytes, Callback onClickedCallback, -@@ -130,7 +130,7 @@ public class DownloadLocationCustomView extends ScrollView +@@ -133,7 +133,7 @@ public class DownloadLocationCustomView extends ScrollView + /** * @return The text that the user inputted as the name of the file. */ - @Nullable -- String getFileName() { -+ public String getFileName() { +- @Nullable String getFileName() { ++ @Nullable public String getFileName() { if (mFileName == null || mFileName.getText() == null) return null; return mFileName.getText().toString(); } -@@ -139,7 +139,7 @@ public class DownloadLocationCustomView extends ScrollView +@@ -141,7 +141,7 @@ public class DownloadLocationCustomView extends ScrollView + /** * @return The file path based on what the user selected as the location of the file. */ - @Nullable -- DirectoryOption getDirectoryOption() { -+ public DirectoryOption getDirectoryOption() { +- @Nullable DirectoryOption getDirectoryOption() { ++ @Nullable public DirectoryOption getDirectoryOption() { if (mFileLocation == null) return null; DirectoryOption selected = (DirectoryOption) mFileLocation.getSelectedItem(); return selected; diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationDialogCoordinator.java b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationDialogCoordinator.java --- a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationDialogCoordinator.java +++ b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationDialogCoordinator.java -@@ -38,18 +38,18 @@ import java.util.ArrayList; - */ +@@ -43,13 +43,13 @@ import java.util.ArrayList; + @NullMarked public class DownloadLocationDialogCoordinator implements ModalDialogProperties.Controller { - @NonNull private DownloadLocationDialogController mController; -- private PropertyModel mDialogModel; -+ protected PropertyModel mDialogModel; - private PropertyModel mDownloadLocationDialogModel; - private PropertyModelChangeProcessor + private DownloadLocationDialogController mController; +- private @Nullable PropertyModel mDialogModel; ++ protected @Nullable PropertyModel mDialogModel; + private @Nullable PropertyModel mDownloadLocationDialogModel; + private @Nullable + PropertyModelChangeProcessor mPropertyModelChangeProcessor; -- private DownloadLocationCustomView mCustomView; -- private ModalDialogManager mModalDialogManager; -+ protected DownloadLocationCustomView mCustomView; -+ protected ModalDialogManager mModalDialogManager; +- private @Nullable DownloadLocationCustomView mCustomView; +- private @Nullable ModalDialogManager mModalDialogManager; ++ protected @Nullable DownloadLocationCustomView mCustomView; ++ protected @Nullable ModalDialogManager mModalDialogManager; + private long mTotalBytes; private @DownloadLocationDialogType int mDialogType; - private String mSuggestedPath; - private Context mContext; +@@ -57,7 +57,7 @@ public class DownloadLocationDialogCoordinator implements ModalDialogProperties. + private @Nullable Context mContext; + private boolean mHasMultipleDownloadLocations; -- private Profile mProfile; -+ protected Profile mProfile; +- private @Nullable Profile mProfile; ++ protected @Nullable Profile mProfile; + private boolean mLocationDialogManaged; - /** -@@ -141,7 +141,7 @@ public class DownloadLocationDialogCoordinator implements ModalDialogProperties. +@@ -153,7 +153,7 @@ public class DownloadLocationDialogCoordinator implements ModalDialogProperties. * Called after retrieved the download directory options. * @param dirs An list of available download directories. */ - private void onDirectoryOptionsRetrieved(ArrayList dirs) { + protected void onDirectoryOptionsRetrieved(ArrayList dirs) { - // Already showing the dialog. - if (mDialogModel != null) return; - + assertNonNull(mContext); + assertNonNull(mModalDialogManager); + assertNonNull(mSuggestedPath); 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 -@@ -209,6 +209,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -218,6 +218,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kBackgroundThreadPool, &kBlockIntentsWhileLocked, &kBookmarkPaneAndroid, @@ -1336,7 +1339,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 -@@ -594,6 +594,7 @@ public abstract class ChromeFeatureList { +@@ -604,6 +604,7 @@ public abstract class ChromeFeatureList { public static final String USE_LIBUNWINDSTACK_NATIVE_UNWINDER_ANDROID = "UseLibunwindstackNativeUnwinderAndroid"; public static final String VISITED_URL_RANKING_SERVICE = "VisitedURLRankingService"; @@ -1390,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 -@@ -140,6 +140,8 @@ public final class ChromePreferenceKeys { +@@ -144,6 +144,8 @@ public final class ChromePreferenceKeys { "enhanced_bookmark_last_used_parent_folder"; public static final String BOOKMARKS_SORT_ORDER = "Chrome.Bookmarks.BookmarkRowSortOrder"; public static final String BOOKMARKS_VISUALS_PREF = "Chrome.Bookmarks.BookmarkRowDisplay"; @@ -1399,8 +1402,8 @@ 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"; -@@ -986,6 +988,7 @@ public final class ChromePreferenceKeys { - AUXILIARY_SEARCH_IS_SCHEMA_V2_SET, +@@ -995,6 +997,7 @@ public final class ChromePreferenceKeys { + AUXILIARY_SEARCH_SCHEMA_VERSION, APP_LAUNCH_LAST_KNOWN_ACTIVE_TAB_STATE, APP_LAUNCH_SEARCH_ENGINE_HAD_LOGO, + BOOKMARKS_LAST_EXPORT_URI, @@ -1438,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 -@@ -350,6 +350,9 @@ static_library("common_lib") { +@@ -351,6 +351,9 @@ static_library("common_lib") { sources += [ "media/chrome_media_drm_bridge_client.cc", "media/chrome_media_drm_bridge_client.h", @@ -1691,7 +1694,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui return mimeTypes; } -@@ -1156,6 +1170,10 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -1155,6 +1169,10 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick return countAcceptTypesFor(superType) == mMimeTypes.size(); } diff --git a/build/patches/Add-cromite-flags-support.patch b/build/patches/Add-cromite-flags-support.patch index dde4e03c..6bb6dc90 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 -@@ -174,6 +174,8 @@ use_epoll = is_linux || is_chromeos || is_android +@@ -177,6 +177,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", -@@ -1029,7 +1031,7 @@ component("base") { +@@ -1033,7 +1035,7 @@ component("base") { "//build/config/compiler:wglobal_constructors", ] @@ -437,7 +437,7 @@ diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -48,6 +48,10 @@ found in the LICENSE file. +@@ -44,6 +44,10 @@ found in the LICENSE file. android:key="do_not_track" android:title="@string/do_not_track_title" android:fragment="org.chromium.chrome.browser.privacy.settings.DoNotTrackSettings" /> @@ -463,8 +463,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settin diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -81,7 +81,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment - private final ObservableSupplierImpl mPageTitle = new ObservableSupplierImpl<>(); +@@ -126,7 +126,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment + } @Override - public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { @@ -483,7 +483,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme import org.chromium.base.supplier.ObservableSupplier; import org.chromium.base.supplier.OneshotSupplier; import org.chromium.chrome.browser.LaunchIntentDispatcher; -@@ -75,18 +76,21 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl +@@ -76,18 +77,21 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl private final OneshotSupplier mSnackbarManagerSupplier; private final OneshotSupplier mBottomSheetControllerSupplier; private final ObservableSupplier mModalDialogManagerSupplier; @@ -506,7 +506,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme } @Override -@@ -95,6 +99,10 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl +@@ -96,6 +100,10 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl @NonNull Fragment fragment, @NonNull Context unusedContext) { // Common dependencies attachments. @@ -528,7 +528,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin import android.annotation.SuppressLint; import android.content.Context; import android.content.Intent; -@@ -32,7 +33,9 @@ import org.chromium.base.Callback; +@@ -34,7 +35,9 @@ import org.chromium.base.Callback; import org.chromium.base.CallbackUtils; import org.chromium.base.Log; import org.chromium.base.metrics.RecordHistogram; @@ -538,7 +538,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin import org.chromium.base.supplier.OneshotSupplierImpl; import org.chromium.chrome.R; import org.chromium.chrome.browser.ChromeBaseAppCompatActivity; -@@ -40,12 +43,14 @@ import org.chromium.chrome.browser.back_press.BackPressHelper; +@@ -42,12 +45,14 @@ import org.chromium.chrome.browser.back_press.BackPressHelper; import org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncherImpl; import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.init.ChromeBrowserInitializer; @@ -553,7 +553,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; import org.chromium.components.browser_ui.bottomsheet.BottomSheetControllerFactory; import org.chromium.components.browser_ui.bottomsheet.ManagedBottomSheetController; -@@ -84,6 +89,40 @@ import java.util.Locale; +@@ -87,6 +92,40 @@ import java.util.Locale; */ public class SettingsActivity extends ChromeBaseAppCompatActivity implements PreferenceFragmentCompat.OnPreferenceStartFragmentCallback, SnackbarManageable { @@ -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"; -@@ -150,7 +189,8 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -153,7 +192,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 -@@ -402,6 +402,10 @@ using flags_ui::kOsLinux; +@@ -405,6 +405,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 { -@@ -4419,6 +4423,10 @@ const FeatureEntry::FeatureVariation kEnableCanvasNoiseVariations[] = { - {" - In all browsing modes", kEnableCanvasNoiseInAllModes, - std::size(kEnableCanvasNoiseInAllModes), nullptr}}; +@@ -4592,6 +4596,10 @@ const FeatureEntry::FeatureVariation + {"(retroactive)", kInvalidateChoiceOnRestoreIsRetroactiveOption, + std::size(kInvalidateChoiceOnRestoreIsRetroactiveOption), nullptr}}; +#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. -@@ -4445,6 +4453,9 @@ const FeatureEntry::FeatureVariation kEnableCanvasNoiseVariations[] = { +@@ -4618,6 +4626,9 @@ const FeatureEntry::FeatureVariation 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 -@@ -351,4 +351,5 @@ BASE_FEATURE(kRemovalOfIWAsFromTabCapture, +@@ -349,4 +349,5 @@ BASE_FEATURE(kRemovalOfIWAsFromTabCapture, "RemovalOfIWAsFromTabCapture", base::FEATURE_ENABLED_BY_DEFAULT); @@ -727,8 +727,8 @@ diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -1213,5 +1213,6 @@ BASE_FEATURE(kAndroidWebAppLaunchHandler, - "AndroidWebAppLaunchHandler", +@@ -1262,5 +1262,6 @@ BASE_FEATURE(kWebOtpCrossDeviceSimpleString, + "WebOtpCrossDeviceSimpleString", base::FEATURE_DISABLED_BY_DEFAULT); +#include "cromite_flags/chrome_browser_flags_android_chrome_feature_list_cc.inc" @@ -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 -@@ -246,6 +246,7 @@ constexpr base::FeatureParam kQuickDeleteAndroidSurveyTriggerId( +@@ -263,6 +263,7 @@ constexpr base::FeatureParam kQuickDeleteAndroidSurveyTriggerId( "trigger_id", /*default_value=*/""); @@ -759,7 +759,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f import java.util.List; import java.util.Map; -@@ -843,7 +847,7 @@ public abstract class ChromeFeatureList { +@@ -847,7 +851,7 @@ public abstract class ChromeFeatureList { public static final CachedFlag sWebApkMinShellApkVersion = newCachedFlag(WEB_APK_MIN_SHELL_APK_VERSION, true); @@ -768,7 +768,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f List.of( sAndroidAppIntegration, sAndroidAppIntegrationModule, -@@ -944,6 +948,13 @@ public abstract class ChromeFeatureList { +@@ -952,6 +956,13 @@ public abstract class ChromeFeatureList { sUseLibunwindstackNativeUnwinderAndroid, sWebApkMinShellApkVersion); @@ -958,8 +958,8 @@ 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 -@@ -374,4 +374,5 @@ BASE_FEATURE(kByDateHistoryInSidePanel, - "ByDateHistoryInSidePanel", +@@ -397,4 +397,5 @@ BASE_FEATURE(kTabStripBrowserApi, + "TabStripBrowserApi", base::FEATURE_DISABLED_BY_DEFAULT); +#include "cromite_flags/chrome_browser_ui_ui_features_cc.inc" @@ -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 -@@ -1640,4 +1640,5 @@ BASE_FEATURE(kDisableShortcutsEnableDiy, +@@ -1729,4 +1729,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 -@@ -27,9 +27,11 @@ import org.chromium.components.omnibox.OmniboxFeatures; +@@ -29,9 +29,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 = -@@ -68,7 +70,7 @@ public class AccessibilitySettings extends PreferenceFragmentCompat +@@ -70,7 +72,7 @@ public class AccessibilitySettings extends PreferenceFragmentCompat } @Override @@ -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 -@@ -183,4 +183,5 @@ BASE_FEATURE(kImprovedPasswordChangeService, +@@ -175,4 +175,5 @@ BASE_FEATURE(kImprovedPasswordChangeService, "ImprovedPasswordChangeService", base::FEATURE_DISABLED_BY_DEFAULT); @@ -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 -@@ -515,4 +515,5 @@ BASE_FEATURE(kLimitCrossOriginNonActivatedPaintHolding, +@@ -549,4 +549,5 @@ BASE_FEATURE(kLimitCrossOriginNonActivatedPaintHolding, // Please keep features in alphabetical order. @@ -1637,8 +1637,8 @@ 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 -@@ -1486,4 +1486,5 @@ bool IsVideoCaptureServiceEnabledForBrowserProcess() { - VideoCaptureServiceConfiguration::kEnabledForBrowserProcess; +@@ -1506,4 +1506,5 @@ bool IsPushSubscriptionChangeEventEnabled() { + features::kPushSubscriptionChangeEventOnResubscribe); } +#include "cromite_flags/content_public_common_content_features_cc.inc" @@ -1646,9 +1646,9 @@ 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 -@@ -351,6 +351,7 @@ CONTENT_EXPORT extern const base::FeatureParam - CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForOutOfProcess(); +@@ -357,6 +357,7 @@ CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForOutOfProcess(); CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForBrowserProcess(); + CONTENT_EXPORT bool IsPushSubscriptionChangeEventEnabled(); +#include "cromite_flags/content_public_common_content_features_h.inc" } // namespace features @@ -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 -@@ -1827,5 +1827,5 @@ uint32_t GetPassthroughAudioFormats() { +@@ -1830,5 +1830,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 -@@ -572,5 +572,5 @@ MEDIA_EXPORT bool IsOutOfProcessVideoDecodingEnabled(); +@@ -570,5 +570,5 @@ MEDIA_EXPORT bool IsOutOfProcessVideoDecodingEnabled(); MEDIA_EXPORT uint32_t GetPassthroughAudioFormats(); } // namespace media @@ -2012,18 +2012,18 @@ diff --git a/media/base/media_switches.h b/media/base/media_switches.h diff --git a/net/base/features.cc b/net/base/features.cc --- a/net/base/features.cc +++ b/net/base/features.cc -@@ -708,4 +708,5 @@ BASE_FEATURE(kSelfSignedLocalNetworkInterstitial, - BASE_FEATURE(kVerifyQWACs, "VerifyQWACs", base::FEATURE_DISABLED_BY_DEFAULT); - #endif // BUILDFLAG(CHROME_ROOT_STORE_SUPPORTED) +@@ -779,4 +779,5 @@ BASE_FEATURE(kRestrictAbusePortsOnLocalhost, + "RestrictAbusePortsOnLocalhost", + base::FEATURE_DISABLED_BY_DEFAULT); +#include "cromite_flags/net_base_features_cc.inc" } // namespace net::features diff --git a/net/base/features.h b/net/base/features.h --- a/net/base/features.h +++ b/net/base/features.h -@@ -723,6 +723,7 @@ NET_EXPORT BASE_DECLARE_FEATURE(kSelfSignedLocalNetworkInterstitial); - NET_EXPORT BASE_DECLARE_FEATURE(kVerifyQWACs); - #endif +@@ -800,6 +800,7 @@ NET_EXPORT extern const base::FeatureParam + // Finch-controlled list of ports that should be blocked on localhost. + NET_EXPORT BASE_DECLARE_FEATURE(kRestrictAbusePortsOnLocalhost); +#include "cromite_flags/net_base_features_h.inc" } // namespace net::features @@ -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 -@@ -588,4 +588,5 @@ BASE_FEATURE(kProtectedAudienceCorsSafelistKVv2Signals, - "ProtectedAudienceCorsSafelistKVv2Signals", - base::FEATURE_ENABLED_BY_DEFAULT); +@@ -614,4 +614,5 @@ BASE_FEATURE(kDeviceBoundSessionAccessObserverSharedRemote, + + BASE_FEATURE(kCSPScriptSrcV2, "ScriptSrcV2", base::FEATURE_DISABLED_BY_DEFAULT); +#include "cromite_flags/services_network_public_cpp_features_cc.inc" } // namespace network::features diff --git a/services/network/public/cpp/features.h b/services/network/public/cpp/features.h --- a/services/network/public/cpp/features.h +++ b/services/network/public/cpp/features.h -@@ -311,6 +311,7 @@ BASE_DECLARE_FEATURE(kPopulatePermissionsPolicyOnRequest); +@@ -329,6 +329,7 @@ BASE_DECLARE_FEATURE(kDeviceBoundSessionAccessObserverSharedRemote); COMPONENT_EXPORT(NETWORK_CPP_FLAGS_AND_SWITCHES) - BASE_DECLARE_FEATURE(kProtectedAudienceCorsSafelistKVv2Signals); + BASE_DECLARE_FEATURE(kCSPScriptSrcV2); +#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 -@@ -2901,4 +2901,5 @@ bool IsLinkPreviewTriggerTypeEnabled(LinkPreviewTriggerType type) { +@@ -2914,4 +2914,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 -@@ -1900,6 +1900,7 @@ BLINK_COMMON_EXPORT bool IsUpdateComplexSafaAreaConstraintsEnabled(); +@@ -1903,6 +1903,7 @@ BLINK_COMMON_EXPORT bool IsUpdateComplexSafaAreaConstraintsEnabled(); // // DO NOT ADD NEW FEATURES HERE. @@ -2072,7 +2072,7 @@ 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 -@@ -466,4 +466,5 @@ BASE_FEATURE(kClipboardChangeEvent, +@@ -472,4 +472,5 @@ BASE_FEATURE(kClipboardChangeEvent, "ClipboardChangeEvent", base::FEATURE_DISABLED_BY_DEFAULT); @@ -2081,7 +2081,7 @@ diff --git a/ui/base/ui_base_features.cc b/ui/base/ui_base_features.cc diff --git a/ui/base/ui_base_features.h b/ui/base/ui_base_features.h --- a/ui/base/ui_base_features.h +++ b/ui/base/ui_base_features.h -@@ -237,6 +237,7 @@ BASE_DECLARE_FEATURE(kAsyncFullscreenWindowState); +@@ -240,6 +240,7 @@ BASE_DECLARE_FEATURE(kAsyncFullscreenWindowState); COMPONENT_EXPORT(UI_BASE_FEATURES) BASE_DECLARE_FEATURE(kClipboardChangeEvent); diff --git a/build/patches/Add-custom-tab-intents-privacy-option.patch b/build/patches/Add-custom-tab-intents-privacy-option.patch index 6b699dc5..63e08282 100644 --- a/build/patches/Add-custom-tab-intents-privacy-option.patch +++ b/build/patches/Add-custom-tab-intents-privacy-option.patch @@ -32,7 +32,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -56,6 +56,21 @@ found in the LICENSE file. +@@ -52,6 +52,21 @@ found in the LICENSE file. android:key="cromite_flags" android:title="@string/cromite_flags_title" app:url="@string/cromite_flags_url" /> @@ -57,7 +57,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 -@@ -64,6 +64,9 @@ import java.lang.annotation.Retention; +@@ -65,6 +65,9 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.Set; @@ -67,8 +67,8 @@ 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. -@@ -267,6 +270,9 @@ public class LaunchIntentDispatcher { - @OptIn(markerClass = ExperimentalAuthTab.class) +@@ -306,6 +309,9 @@ public class LaunchIntentDispatcher { + */ public static boolean isCustomTabIntent(Intent intent) { if (intent == null) return false; + if (!ContextUtils.getAppSharedPreferences() @@ -77,7 +77,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis Log.w( TAG, "CustomTabsIntent#shouldAlwaysUseBrowserUI() = " -@@ -295,6 +301,10 @@ public class LaunchIntentDispatcher { +@@ -334,6 +340,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()); -@@ -490,6 +500,17 @@ public class LaunchIntentDispatcher { +@@ -530,6 +540,17 @@ public class LaunchIntentDispatcher { if (Intent.ACTION_VIEW.equals(newIntent.getAction()) && !IntentHandler.wasIntentSenderChrome(newIntent)) { @@ -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 -@@ -985,6 +985,7 @@ public class CustomTabsConnection { +@@ -979,6 +979,7 @@ public class CustomTabsConnection { PostTask.postTask( TaskTraits.UI_DEFAULT, () -> { @@ -179,9 +179,9 @@ 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 -@@ -57,6 +57,15 @@ import org.chromium.components.signin.identitymanager.ConsentLevel; - import org.chromium.components.user_prefs.UserPrefs; - import org.chromium.ui.text.SpanApplier; +@@ -79,6 +79,15 @@ import org.chromium.ui.text.SpanApplier; + import java.util.concurrent.TimeUnit; + import java.util.function.Consumer; +import android.app.role.RoleManager; +import android.content.Context; @@ -195,9 +195,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import androidx.annotation.Nullable; import androidx.preference.PreferenceCategory; import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager; -@@ -104,6 +113,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment - private IncognitoLockSettings mIncognitoLockSettings; - private final ObservableSupplierImpl mPageTitle = new ObservableSupplierImpl<>(); +@@ -149,6 +158,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment + startTag, endTag, new ChromeClickableSpan(context, onClickCallback)); + } + private ChromeSwitchPreference allowCustomTabIntentsPref; + private ChromeSwitchPreference openExternalLinksPref; @@ -205,7 +205,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting @Override public void onCreatePreferencesCromite(Bundle savedInstanceState, String rootKey) { mPageTitle.set(getString(R.string.prefs_privacy_security)); -@@ -329,6 +341,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -380,6 +392,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(); -@@ -349,6 +364,31 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -400,6 +415,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; } -@@ -381,6 +421,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -432,6 +472,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 -@@ -917,7 +917,7 @@ BASE_FEATURE(kMagicStackAndroid, +@@ -956,7 +956,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 -@@ -768,6 +768,8 @@ public abstract class ChromeFeatureList { - public static final CachedFlag sMagicStackAndroid = newCachedFlag(MAGIC_STACK_ANDROID, true); +@@ -773,6 +773,8 @@ public abstract class ChromeFeatureList { + public static final CachedFlag sMiniOriginBar = newCachedFlag(MINI_ORIGIN_BAR, false); public static final CachedFlag sMostVisitedTilesCustomization = newCachedFlag(MOST_VISITED_TILES_CUSTOMIZATION, false); + public static final CachedFlag sMayLaunchurlUsesSeparateStoragePartition = @@ -288,9 +288,9 @@ 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 = -@@ -915,6 +917,7 @@ public abstract class ChromeFeatureList { - sNotificationTrampoline, +@@ -925,6 +927,7 @@ public abstract class ChromeFeatureList { sMagicStackAndroid, + sMiniOriginBar, sMostVisitedTilesCustomization, + sMayLaunchurlUsesSeparateStoragePartition, sMostVisitedTilesReselect, diff --git a/build/patches/Add-exit-menu-item.patch b/build/patches/Add-exit-menu-item.patch index 17be6f7e..f82f333e 100644 --- a/build/patches/Add-exit-menu-item.patch +++ b/build/patches/Add-exit-menu-item.patch @@ -16,7 +16,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml --- a/chrome/android/java/res/menu/main_menu.xml +++ b/chrome/android/java/res/menu/main_menu.xml -@@ -178,6 +178,9 @@ found in the LICENSE file. +@@ -181,6 +181,9 @@ found in the LICENSE file. @@ -26,7 +26,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re -@@ -210,6 +213,9 @@ found in the LICENSE file. +@@ -213,6 +216,9 @@ found in the LICENSE file. @@ -39,16 +39,16 @@ 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 -@@ -309,6 +309,8 @@ import java.util.Set; +@@ -323,6 +323,8 @@ import java.util.Map; + import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; - import java.util.function.DoubleConsumer; +import org.chromium.chrome.browser.lifetime.ApplicationLifetime; + /** * 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. -@@ -3200,6 +3202,8 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -3283,6 +3285,8 @@ public class ChromeTabbedActivity extends ChromeActivity { .closeTabs( TabClosureParams.closeTab(currentTab).build(), /* allowDialog= */ true); RecordUserAction.record("MobileTabClosed"); @@ -68,7 +68,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv import org.chromium.chrome.browser.ChromeActivitySessionTracker; import org.chromium.chrome.browser.ChromeApplicationImpl; import org.chromium.chrome.browser.ChromeKeyboardVisibilityDelegate; -@@ -2399,6 +2400,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -2406,6 +2407,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 -@@ -4392,6 +4392,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4420,6 +4420,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 837ff187..3d1ef6c2 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" -@@ -543,6 +544,15 @@ AutocompleteController::AutocompleteController( +@@ -545,6 +546,15 @@ AutocompleteController::AutocompleteController( provider_client_->GetOmniboxTriggeredFeatureService()), steady_state_omnibox_position_( metrics::OmniboxEventProto::UNKNOWN_POSITION) { diff --git a/build/patches/Add-flag-to-disable-IPv6-probes.patch b/build/patches/Add-flag-to-disable-IPv6-probes.patch index d682d339..498f708b 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 -@@ -1127,6 +1127,7 @@ component("net") { +@@ -1138,6 +1138,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 -@@ -115,6 +115,7 @@ +@@ -116,6 +116,7 @@ #include "net/log/net_log_event_type.h" #include "net/log/net_log_source.h" #include "net/log/net_log_source_type.h" @@ -64,7 +64,7 @@ diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc #include "net/log/net_log_with_source.h" #include "net/socket/client_socket_factory.h" #include "net/url_request/url_request_context.h" -@@ -1487,6 +1488,13 @@ int HostResolverManager::StartIPv6ReachabilityCheck( +@@ -1490,6 +1491,13 @@ int HostResolverManager::StartIPv6ReachabilityCheck( return OK; } diff --git a/build/patches/Add-flag-to-disable-external-intent-requests.patch b/build/patches/Add-flag-to-disable-external-intent-requests.patch index 8f964759..eb938508 100644 --- a/build/patches/Add-flag-to-disable-external-intent-requests.patch +++ b/build/patches/Add-flag-to-disable-external-intent-requests.patch @@ -32,7 +32,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -81,7 +81,12 @@ found in the LICENSE file. +@@ -77,7 +77,12 @@ found in the LICENSE file. android:title="@string/settings_incognito_tab_lock_title" android:summary="@string/settings_incognito_tab_lock_summary_android_setting_off" android:persistent="false" /> @@ -45,7 +45,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi + app:needRestart="false" /> + android:title="@string/security_section_title" /> 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 diff --git a/build/patches/Add-flag-to-disable-vibration.patch b/build/patches/Add-flag-to-disable-vibration.patch index e0d2a61b..e63ab7d0 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 -@@ -890,6 +890,10 @@ +@@ -943,6 +943,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 20cc467e..f94a0ce6 100644 --- a/build/patches/Add-kill-switch-for-unsupported-clangd-flags.patch +++ b/build/patches/Add-kill-switch-for-unsupported-clangd-flags.patch @@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn -@@ -1997,7 +1997,6 @@ config("default_warnings") { +@@ -2065,7 +2065,6 @@ config("default_warnings") { # TODO(crbug.com/376641662): Fix and re-enable. "-Wno-nontrivial-memcall", ] @@ -22,7 +22,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", -@@ -2023,6 +2022,16 @@ config("default_warnings") { +@@ -2091,6 +2090,16 @@ config("default_warnings") { # other issues if the versions are incompatible. cflags += [ "-Wno-version-check" ] ldflags += [ "-Wno-version-check" ] @@ -42,7 +42,7 @@ diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn diff --git a/build_overrides/build.gni b/build_overrides/build.gni --- a/build_overrides/build.gni +++ b/build_overrides/build.gni -@@ -55,6 +55,9 @@ declare_args() { +@@ -62,6 +62,9 @@ declare_args() { # to lack of toolchain support. gtest_enable_absl_printers = !is_nacl diff --git a/build/patches/Add-lifetime-options-for-permissions.patch b/build/patches/Add-lifetime-options-for-permissions.patch index 1816c7fe..54253e48 100644 --- a/build/patches/Add-lifetime-options-for-permissions.patch +++ b/build/patches/Add-lifetime-options-for-permissions.patch @@ -178,7 +178,7 @@ diff --git a/chrome/browser/permissions/one_time_permissions_tracker.cc b/chrome OneTimePermissionsTracker::~OneTimePermissionsTracker() = default; OneTimePermissionsTracker::OriginTrackEntry::OriginTrackEntry() = default; -@@ -257,6 +283,11 @@ void OneTimePermissionsTracker::NotifyLastPageFromOriginClosed( +@@ -254,6 +280,11 @@ void OneTimePermissionsTracker::NotifyLastPageFromOriginClosed( for (auto& observer : observer_list_) { observer.OnLastPageFromOriginClosed(origin); } @@ -244,9 +244,9 @@ diff --git a/chrome/browser/ui/views/permissions/chip/chip_controller.cc b/chrom diff --git a/chrome/browser/ui/views/permissions/exclusive_access_permission_prompt_view.cc b/chrome/browser/ui/views/permissions/exclusive_access_permission_prompt_view.cc --- a/chrome/browser/ui/views/permissions/exclusive_access_permission_prompt_view.cc +++ b/chrome/browser/ui/views/permissions/exclusive_access_permission_prompt_view.cc -@@ -100,7 +100,7 @@ void ExclusiveAccessPermissionPromptView::RunButtonCallback(int button_id) { - } - ButtonType button = GetButtonType(button_id); +@@ -117,7 +117,7 @@ void ExclusiveAccessPermissionPromptView::RunButtonCallback(int button_id) { + request_type(), GetPermissionActionString(button), + record_browser_always_active_value()); if (button == ButtonType::kAllowThisTime) { - delegate_->AcceptThisTime(); + delegate_->AcceptThisTime(content_settings::mojom::LifetimeMode::ONLY_THIS_TIME); @@ -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 -@@ -266,7 +266,7 @@ void PermissionPromptBubbleBaseView::RunButtonCallback(int button_id) { +@@ -281,7 +281,7 @@ void PermissionPromptBubbleBaseView::RunButtonCallback(int button_id) { delegate_->Accept(); return; case PermissionDialogButton::kAcceptOnce: @@ -279,7 +279,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java -@@ -617,6 +617,11 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -618,6 +618,11 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment } @RequiresNonNull({"mSite"}) @@ -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(); -@@ -1285,6 +1290,10 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1286,6 +1291,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 -@@ -646,6 +646,11 @@ +@@ -643,6 +643,11 @@ URL truncated @@ -433,7 +433,7 @@ diff --git a/components/content_settings/core/common/content_settings_enums.mojo diff --git a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java --- a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java +++ b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java -@@ -386,9 +386,9 @@ public class PageInfoController +@@ -364,9 +364,9 @@ public class PageInfoController String name, String nameMidSentence, int 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 -@@ -1210,6 +1210,8 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, +@@ -1220,6 +1220,8 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, permission_info.is_one_time = (info.metadata.session_model() == content_settings::mojom::SessionModel::ONE_TIME); @@ -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 -@@ -139,6 +139,11 @@ void PermissionDialogJavaDelegate::UpdateDialog() { +@@ -137,6 +137,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, -@@ -168,6 +173,13 @@ PermissionDialogDelegate::CreateForTesting( +@@ -166,6 +171,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(); } -@@ -175,7 +187,10 @@ void PermissionDialogDelegate::AcceptThisTime( +@@ -173,7 +185,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, -@@ -187,6 +202,13 @@ void PermissionDialogDelegate::Acknowledge(JNIEnv* env, +@@ -185,6 +200,13 @@ void PermissionDialogDelegate::Acknowledge(JNIEnv* env, void PermissionDialogDelegate::Deny(JNIEnv* env, const JavaParamRef& obj) { CHECK(permission_prompt_); @@ -1088,7 +1088,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm diff --git a/components/permissions/permission_context_base.h b/components/permissions/permission_context_base.h --- a/components/permissions/permission_context_base.h +++ b/components/permissions/permission_context_base.h -@@ -166,6 +166,15 @@ class PermissionContextBase : public content_settings::Observer { +@@ -169,6 +169,15 @@ 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. @@ -1104,7 +1104,7 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi virtual void NotifyPermissionSet(const PermissionRequestID& id, const GURL& requesting_origin, const GURL& embedding_origin, -@@ -187,6 +196,11 @@ class PermissionContextBase : public content_settings::Observer { +@@ -190,6 +199,11 @@ 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). @@ -1116,7 +1116,7 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi virtual void UpdateContentSetting(const GURL& requesting_origin, const GURL& embedding_origin, ContentSetting content_setting, -@@ -217,6 +231,12 @@ class PermissionContextBase : public content_settings::Observer { +@@ -220,6 +234,12 @@ class PermissionContextBase : public content_settings::Observer { PermissionRequest::PermissionDecidedCallback permission_decided_callback, base::OnceClosure delete_callback) const; @@ -1129,7 +1129,7 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi // Implementors can override this method to avoid using automatic embargo. virtual bool UsesAutomaticEmbargo() const; -@@ -253,7 +273,8 @@ class PermissionContextBase : public content_settings::Observer { +@@ -256,7 +276,8 @@ class PermissionContextBase : public content_settings::Observer { const GURL& embedding_origin, ContentSetting content_setting, bool is_one_time, @@ -1214,7 +1214,7 @@ diff --git a/components/permissions/permission_request.cc b/components/permissio diff --git a/components/permissions/permission_request.h b/components/permissions/permission_request.h --- a/components/permissions/permission_request.h +++ b/components/permissions/permission_request.h -@@ -43,6 +43,11 @@ class PermissionRequest { +@@ -44,6 +44,11 @@ class PermissionRequest { bool /*is_one_time*/, bool /*is_final_decision*/)>; @@ -1226,7 +1226,7 @@ diff --git a/components/permissions/permission_request.h b/components/permission // `permission_decided_callback` is called when the permission request is // resolved by the user (see comment on PermissionDecidedCallback above). // `delete_callback` is called when the permission request is no longer needed -@@ -63,6 +68,10 @@ class PermissionRequest { +@@ -64,6 +69,10 @@ class PermissionRequest { base::OnceClosure delete_callback, bool uses_automatic_embargo); @@ -1237,7 +1237,7 @@ diff --git a/components/permissions/permission_request.h b/components/permission PermissionRequest(const PermissionRequest&) = delete; PermissionRequest& operator=(const PermissionRequest&) = delete; -@@ -169,10 +178,10 @@ class PermissionRequest { +@@ -170,10 +179,10 @@ class PermissionRequest { // If |is_one_time| is true the permission will last until all tabs of // |origin| are closed or navigated away from, and then the permission will // automatically expire after 1 day. @@ -1250,7 +1250,7 @@ diff --git a/components/permissions/permission_request.h b/components/permission // Called when the user has cancelled the permission request. This // corresponds to a denial, but is segregated in case the context needs to -@@ -228,6 +237,9 @@ class PermissionRequest { +@@ -235,6 +244,9 @@ class PermissionRequest { // Called once a decision is made about the permission. PermissionDecidedCallback permission_decided_callback_; @@ -1263,7 +1263,7 @@ diff --git a/components/permissions/permission_request.h b/components/permission diff --git a/components/permissions/permission_request_manager.cc b/components/permissions/permission_request_manager.cc --- a/components/permissions/permission_request_manager.cc +++ b/components/permissions/permission_request_manager.cc -@@ -171,7 +171,7 @@ void PermissionRequestManager::AddRequest( +@@ -173,7 +173,7 @@ void PermissionRequestManager::AddRequest( if (base::CommandLine::ForCurrentProcess()->HasSwitch( switches::kDenyPermissionPrompts)) { @@ -1272,7 +1272,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p request->RequestFinished(); return; } -@@ -246,7 +246,7 @@ void PermissionRequestManager::AddRequest( +@@ -248,7 +248,7 @@ void PermissionRequestManager::AddRequest( if (should_auto_approve_request) { if (should_auto_approve_request == PermissionAction::GRANTED) { @@ -1281,7 +1281,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p } request->RequestFinished(); return; -@@ -609,7 +609,8 @@ void PermissionRequestManager::Accept() { +@@ -611,7 +611,8 @@ void PermissionRequestManager::Accept() { (*requests_iter)->request_type(), PermissionAction::GRANTED); PermissionGrantedIncludingDuplicates(*requests_iter, @@ -1291,7 +1291,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p #if !BUILDFLAG(IS_ANDROID) std::optional content_settings_type = -@@ -627,7 +628,7 @@ void PermissionRequestManager::Accept() { +@@ -629,7 +630,7 @@ void PermissionRequestManager::Accept() { CurrentRequestsDecided(PermissionAction::GRANTED); } @@ -1300,7 +1300,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p if (ignore_callbacks_from_prompt_) return; DCHECK(view_); -@@ -640,7 +641,8 @@ void PermissionRequestManager::AcceptThisTime() { +@@ -642,7 +643,8 @@ void PermissionRequestManager::AcceptThisTime() { (*requests_iter)->request_type(), PermissionAction::GRANTED_ONCE); PermissionGrantedIncludingDuplicates(*requests_iter, @@ -1310,7 +1310,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p } NotifyRequestDecided(PermissionAction::GRANTED_ONCE); -@@ -648,6 +650,15 @@ void PermissionRequestManager::AcceptThisTime() { +@@ -650,6 +652,15 @@ void PermissionRequestManager::AcceptThisTime() { } void PermissionRequestManager::Deny() { @@ -1326,7 +1326,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p if (ignore_callbacks_from_prompt_) return; DCHECK(view_); -@@ -670,7 +681,7 @@ void PermissionRequestManager::Deny() { +@@ -672,7 +683,7 @@ void PermissionRequestManager::Deny() { StorePermissionActionForUMA((*requests_iter)->requesting_origin(), (*requests_iter)->request_type(), PermissionAction::DENIED); @@ -1335,7 +1335,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p } NotifyRequestDecided(PermissionAction::DENIED); -@@ -1267,32 +1278,32 @@ PermissionRequestManager::VisitDuplicateRequests( +@@ -1271,32 +1282,32 @@ PermissionRequestManager::VisitDuplicateRequests( void PermissionRequestManager::PermissionGrantedIncludingDuplicates( PermissionRequest* request, @@ -1378,7 +1378,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p request); } -@@ -1562,7 +1573,7 @@ void PermissionRequestManager::DoAutoResponseForTesting() { +@@ -1566,7 +1577,7 @@ void PermissionRequestManager::DoAutoResponseForTesting() { } switch (auto_response_for_test_) { case ACCEPT_ONCE: diff --git a/build/patches/Add-option-to-disable-snapshots.patch b/build/patches/Add-option-to-disable-snapshots.patch index 4036092b..27e95866 100644 --- a/build/patches/Add-option-to-disable-snapshots.patch +++ b/build/patches/Add-option-to-disable-snapshots.patch @@ -40,7 +40,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java -@@ -72,6 +72,9 @@ public class TabProperties { +@@ -81,6 +81,9 @@ public class TabProperties { public static final WritableBooleanPropertyKey FAVICON_FETCHED = new WritableBooleanPropertyKey(); @@ -50,15 +50,15 @@ 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<>(); -@@ -155,6 +158,7 @@ public class TabProperties { +@@ -165,6 +168,7 @@ public class TabProperties { CARD_TYPE, CONTENT_DESCRIPTION_TEXT_RESOLVER, ACTION_BUTTON_DESCRIPTION_TEXT_RESOLVER, + FAVICON, - SHOPPING_PERSISTED_TAB_DATA_FETCHER, - SHOULD_SHOW_PRICE_DROP_TOOLTIP, QUICK_DELETE_ANIMATION_STATUS, -@@ -173,6 +177,7 @@ public class TabProperties { + TAB_GROUP_COLOR_VIEW_PROVIDER, + VISIBILITY, +@@ -204,6 +208,7 @@ public class TabProperties { TAB_ACTION_BUTTON_DATA, FAVICON_FETCHED, FAVICON_FETCHER, @@ -69,7 +69,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -77,6 +77,11 @@ found in the LICENSE file. +@@ -73,6 +73,11 @@ found in the LICENSE file. android:title="@string/open_external_links_incognito_title" android:summary="@string/open_external_links_incognito_summary" android:defaultValue="false" /> @@ -84,7 +84,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -143,6 +143,7 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; +@@ -144,6 +144,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; -@@ -625,7 +626,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -633,7 +634,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity new TabContentManager( this, mBrowserControlsManagerSupplier.get(), @@ -105,15 +105,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/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 -@@ -21,6 +21,7 @@ import androidx.preference.Preference; - +@@ -28,6 +28,7 @@ import org.chromium.base.ContextUtils; + import org.chromium.base.IntentUtils; import org.chromium.base.metrics.RecordHistogram; import org.chromium.base.metrics.RecordUserAction; +import org.chromium.base.supplier.Supplier; import org.chromium.base.supplier.ObservableSupplier; import org.chromium.base.supplier.ObservableSupplierImpl; - import org.chromium.base.ContextUtils; -@@ -76,12 +77,26 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; + import org.chromium.build.annotations.Nullable; +@@ -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"; -@@ -167,6 +182,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( -@@ -385,6 +415,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -436,6 +466,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) { -@@ -431,6 +462,13 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -482,6 +513,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; } -@@ -497,6 +535,10 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -532,6 +570,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 -@@ -6088,6 +6088,14 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -6166,6 +6166,14 @@ To change this setting, BEGIN_LINKdelete the Chrome d Your %1$swww.amazon.com timer ran out. It'll start again tomorrow. diff --git a/build/patches/Add-option-to-force-tablet-UI.patch b/build/patches/Add-option-to-force-tablet-UI.patch index 22974798..c93f737f 100644 --- a/build/patches/Add-option-to-force-tablet-UI.patch +++ b/build/patches/Add-option-to-force-tablet-UI.patch @@ -99,15 +99,15 @@ diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java -@@ -59,6 +59,7 @@ import org.chromium.chrome.browser.night_mode.GlobalNightModeStateProviderHolder +@@ -58,6 +58,7 @@ import org.chromium.chrome.browser.metrics.UmaSessionStats; + import org.chromium.chrome.browser.night_mode.GlobalNightModeStateProviderHolder; import org.chromium.chrome.browser.night_mode.NightModeStateProvider; import org.chromium.chrome.browser.night_mode.NightModeUtils; - import org.chromium.chrome.browser.theme.ThemeModuleUtils; +import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeUtils; import org.chromium.components.browser_ui.edge_to_edge.EdgeToEdgeManager; import org.chromium.components.browser_ui.edge_to_edge.EdgeToEdgeStateProvider; -@@ -134,6 +135,8 @@ public class ChromeBaseAppCompatActivity extends AppCompatActivity +@@ -133,6 +134,8 @@ public class ChromeBaseAppCompatActivity extends AppCompatActivity protected void attachBaseContext(Context newBase) { super.attachBaseContext(newBase); @@ -119,7 +119,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCo diff --git a/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java b/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java -@@ -63,6 +63,7 @@ import org.chromium.content_public.browser.WebContents; +@@ -66,6 +66,7 @@ import org.chromium.content_public.browser.WebContents; import org.chromium.content_public.browser.WebContentsObserver; import org.chromium.net.NetId; import org.chromium.ui.LayoutInflaterUtils; @@ -127,7 +127,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.j import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.display.DisplayUtil; import org.chromium.url.GURL; -@@ -476,7 +477,9 @@ public class WarmupManager { +@@ -481,7 +482,9 @@ public class WarmupManager { ControlContainer controlContainer = mainView.findViewById(R.id.control_container); if (toolbarId != ActivityUtils.NO_RESOURCE_ID && controlContainer != null) { @@ -170,7 +170,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -774,7 +774,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -783,7 +783,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity // Inflate the correct toolbar layout for the device. int toolbarLayoutId = getToolbarLayoutId(); if (toolbarLayoutId != ActivityUtils.NO_RESOURCE_ID && controlContainer != null) { @@ -184,7 +184,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java -@@ -119,6 +119,7 @@ import org.chromium.components.tab_group_sync.SavedTabGroup; +@@ -117,6 +117,7 @@ import org.chromium.components.tab_group_sync.SavedTabGroup; import org.chromium.components.tab_group_sync.TabGroupSyncService; import org.chromium.components.tab_group_sync.TriggerSource; import org.chromium.components.tab_groups.TabGroupColorId; @@ -192,7 +192,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over import org.chromium.ui.base.LocalizationUtils; import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.modaldialog.ModalDialogManager; -@@ -4211,8 +4212,13 @@ public class StripLayoutHelper +@@ -4264,8 +4265,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 -@@ -96,6 +96,7 @@ import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateMa +@@ -97,6 +97,7 @@ import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateMa import org.chromium.components.browser_ui.styles.SemanticColorUtils; import org.chromium.components.browser_ui.widget.scrim.ScrimProperties; import org.chromium.content_public.browser.LoadUrlParams; @@ -219,7 +219,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over import org.chromium.ui.base.LocalizationUtils; import org.chromium.ui.base.PageTransition; import org.chromium.ui.base.WindowAndroid; -@@ -460,7 +461,10 @@ public class StripLayoutHelperManager +@@ -468,7 +469,10 @@ public class StripLayoutHelperManager mIsLayoutOptimizationsEnabled = ToolbarFeatures.isTabStripWindowLayoutOptimizationEnabled(true); @@ -234,7 +234,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/scene_layer/TabStripSceneLayer.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java -@@ -104,6 +104,14 @@ public class TabStripSceneLayer extends SceneOverlayLayer { +@@ -111,6 +111,14 @@ public class TabStripSceneLayer extends SceneOverlayLayer { if (mNativePtr == 0) return; final boolean visible = yOffset > -layoutHelper.getHeight(); @@ -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 -@@ -693,7 +693,9 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -697,7 +697,9 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { @Override public int getControlContainerHeightResource() { @@ -285,7 +285,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java -@@ -100,6 +100,8 @@ import org.chromium.chrome.browser.paint_preview.DemoPaintPreview; +@@ -104,6 +104,8 @@ import org.chromium.chrome.browser.paint_preview.DemoPaintPreview; import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer; import org.chromium.chrome.browser.password_manager.PasswordManagerLauncher; import org.chromium.chrome.browser.pdf.PdfPage; @@ -294,7 +294,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.quick_delete.QuickDeleteController; import org.chromium.chrome.browser.quick_delete.QuickDeleteDelegateImpl; -@@ -1616,7 +1618,9 @@ public class RootUiCoordinator +@@ -1625,7 +1627,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 -@@ -307,6 +307,7 @@ public final class ChromePreferenceKeys { +@@ -314,6 +314,7 @@ public final class ChromePreferenceKeys { /** Whether the app-specific history info text was already seen by users. */ public static final String HISTORY_APP_SPECIFIC_INFO_SEEN = "Chrome.History.AppSpecificInfoSeen"; @@ -378,7 +378,7 @@ diff --git a/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/c import org.chromium.ui.InsetObserver; import org.chromium.ui.InsetObserver.WindowInsetsConsumer; import org.chromium.ui.InsetsRectProvider; -@@ -266,6 +267,7 @@ public class AppHeaderCoordinator +@@ -260,6 +261,7 @@ public class AppHeaderCoordinator private static @DesktopWindowHeuristicResult int checkIsInDesktopWindow( InsetsRectProvider insetsRectProvider, @DesktopWindowHeuristicResult int currentResult) { @@ -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 -@@ -791,7 +791,7 @@ public class LocationBarCoordinator +@@ -847,7 +847,7 @@ public class LocationBarCoordinator } private boolean isTabletWindow() { @@ -401,8 +401,8 @@ 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 -@@ -1674,6 +1674,13 @@ Your Google account may have other forms of browsing history like searches and a - Hide your IP address +@@ -1660,6 +1660,13 @@ Your Google account may have other forms of browsing history like searches and a + Privacy guide explanation closed + @@ -483,7 +483,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/res/values/dimens.xml b/chro --- a/chrome/browser/ui/android/toolbar/java/res/values/dimens.xml +++ b/chrome/browser/ui/android/toolbar/java/res/values/dimens.xml @@ -10,8 +10,10 @@ found in the LICENSE file. - 10dp + 9dp - 0dp @@ -498,8 +498,8 @@ 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 -@@ -23,7 +23,7 @@ public interface ControlContainer { - * Initialize the control container with the specified toolbar. +@@ -26,7 +26,7 @@ public interface ControlContainer { + * * @param toolbarLayoutId The ID of the toolbar layout to use. */ - void initWithToolbar(int toolbarLayoutId); @@ -510,18 +510,18 @@ 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 -@@ -5,6 +5,7 @@ - package org.chromium.chrome.browser.toolbar.top; +@@ -7,6 +7,7 @@ package org.chromium.chrome.browser.toolbar.top; + import static org.chromium.build.NullUtil.assumeNonNull; import android.content.Context; +import android.content.res.Resources; import android.graphics.Canvas; + import android.graphics.Color; import android.graphics.PorterDuff; - import android.graphics.Rect; -@@ -144,8 +145,25 @@ public class ToolbarControlContainer extends OptimizedFrameLayout - } +@@ -154,8 +155,25 @@ public class ToolbarControlContainer extends OptimizedFrameLayout @Override + @Initializer - public void initWithToolbar(int toolbarLayoutId) { + public void initWithToolbar(int toolbarLayoutId, int controlContainerHeightOverrideId) { try (TraceEvent te = TraceEvent.scoped("ToolbarControlContainer.initWithToolbar")) { @@ -548,7 +548,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java -@@ -64,6 +64,7 @@ import org.chromium.chrome.browser.util.BrowserUiUtils.ModuleTypeOnStartAndNtp; +@@ -65,6 +65,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; -@@ -578,7 +579,9 @@ public abstract class ToolbarLayout extends FrameLayout +@@ -571,7 +572,9 @@ public abstract class ToolbarLayout extends FrameLayout * not have a tab strip. */ protected int getTabStripHeightFromResource() { @@ -570,7 +570,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/HeightTransitionHandler.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/HeightTransitionHandler.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/HeightTransitionHandler.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/HeightTransitionHandler.java -@@ -28,6 +28,7 @@ import org.chromium.chrome.browser.toolbar.top.ToolbarLayout; +@@ -29,6 +29,7 @@ import org.chromium.chrome.browser.toolbar.top.ToolbarLayout; import org.chromium.chrome.browser.toolbar.top.tab_strip.TabStripTransitionCoordinator.TabStripHeightObserver; import org.chromium.chrome.browser.toolbar.top.tab_strip.TabStripTransitionCoordinator.TabStripTransitionDelegate; import org.chromium.ui.base.ViewUtils; @@ -578,7 +578,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow import org.chromium.ui.resources.dynamics.DynamicResourceReadyOnceCallback; import org.chromium.ui.util.TokenHolder; -@@ -556,6 +557,7 @@ class HeightTransitionHandler { +@@ -559,6 +560,7 @@ class HeightTransitionHandler { if (TabStripTransitionCoordinator.sHeightTransitionThresholdForTesting != null) { return TabStripTransitionCoordinator.sHeightTransitionThresholdForTesting; } @@ -596,8 +596,8 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow +import org.chromium.ui.base.DeviceFormFactor; /** Class used to manage tab strip visibility and height updates. */ - public class TabStripTransitionCoordinator implements ComponentCallbacks, AppHeaderObserver { -@@ -154,7 +155,10 @@ public class TabStripTransitionCoordinator implements ComponentCallbacks, AppHea + @NullMarked +@@ -153,7 +154,10 @@ public class TabStripTransitionCoordinator implements ComponentCallbacks, AppHea mTabStripReservedTopPadding = controlContainerView() .getResources() @@ -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 -@@ -28,6 +28,7 @@ import org.chromium.content_public.browser.ContentFeatureList; +@@ -30,6 +30,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 -@@ -43,6 +44,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -45,6 +46,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; -@@ -107,6 +111,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -112,6 +116,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 -> { -@@ -166,6 +176,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -171,6 +181,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment public boolean onPreferenceChange(Preference preference, Object newValue) { if (PREF_FORCE_ENABLE_ZOOM.equals(preference.getKey())) { mDelegate.getForceEnableZoomAccessibilityDelegate().setValue((Boolean) newValue); diff --git a/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch b/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch index d388f679..8a1adcf4 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 @@ -13,7 +13,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -96,6 +96,11 @@ found in the LICENSE file. +@@ -95,6 +95,11 @@ found in the LICENSE file. android:title="@string/incognito_settings_title" android:summary="@string/incognito_settings_summary" android:fragment="org.chromium.chrome.browser.privacy.settings.IncognitoSettings"/> @@ -28,7 +28,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -46,6 +46,7 @@ import org.chromium.base.Callback; +@@ -47,6 +47,7 @@ import org.chromium.base.Callback; import org.chromium.base.CallbackController; import org.chromium.base.CallbackUtils; import org.chromium.base.CommandLine; @@ -36,7 +36,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.base.IntentUtils; import org.chromium.base.Log; import org.chromium.base.MemoryPressureListener; -@@ -1775,8 +1776,10 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -1798,8 +1799,10 @@ public class ChromeTabbedActivity extends ChromeActivity { boolean hadCipherData = CipherLazyHolder.sCipherInstance.restoreFromBundle(getSavedInstanceState()); @@ -51,33 +51,34 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -7,6 +7,7 @@ package org.chromium.chrome.browser.privacy.settings; - import static org.chromium.components.content_settings.PrefNames.COOKIE_CONTROLS_MODE; +@@ -8,6 +8,7 @@ import static org.chromium.components.content_settings.PrefNames.COOKIE_CONTROLS - import android.os.Build; + import android.content.Context; + import android.content.Intent; +import android.content.SharedPreferences; + import android.graphics.drawable.Drawable; + import android.os.Build; import android.os.Bundle; - import android.text.SpannableString; - import android.text.style.ClickableSpan; -@@ -22,6 +23,8 @@ import org.chromium.base.metrics.RecordHistogram; - import org.chromium.base.metrics.RecordUserAction; - import org.chromium.base.supplier.ObservableSupplier; - import org.chromium.base.supplier.ObservableSupplierImpl; -+import org.chromium.base.ContextUtils; +@@ -21,7 +22,9 @@ import android.view.View; + import androidx.annotation.VisibleForTesting; + import androidx.preference.Preference; + +import org.chromium.base.BuildInfo; - import org.chromium.chrome.R; - import org.chromium.chrome.browser.enterprise.util.ManagedBrowserUtils; - import org.chromium.chrome.browser.flags.ChromeFeatureList; -@@ -89,6 +92,8 @@ public class PrivacySettings extends ChromeBaseSettingsFragment + import org.chromium.base.Callback; ++import org.chromium.base.ContextUtils; + import org.chromium.base.IntentUtils; + import org.chromium.base.metrics.RecordHistogram; + import org.chromium.base.metrics.RecordUserAction; +@@ -113,6 +116,8 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private final SharedPreferencesManager mSharedPreferencesManager = ChromeSharedPreferences.getInstance(); + private static final String PREF_CLOSE_TABS_ON_EXIT = "close_tabs_on_exit"; + private ManagedPreferenceDelegate mManagedPreferenceDelegate; - @VisibleForTesting static final String PREF_FP_PROTECTION = "fp_protection"; - @VisibleForTesting static final String PREF_IP_PROTECTION = "ip_protection"; -@@ -326,7 +331,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment + @VisibleForTesting static final String PREF_THIRD_PARTY_COOKIES = "third_party_cookies"; + @VisibleForTesting static final String PREF_TRACKING_PROTECTION = "tracking_protection"; +@@ -377,7 +382,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment @Override public boolean onPreferenceChange(Preference preference, Object newValue) { String key = preference.getKey(); @@ -90,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)) { -@@ -402,6 +411,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -437,6 +446,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment getContext(), getProfile())); } @@ -105,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 -@@ -5616,6 +5616,12 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -5691,6 +5691,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 bf7e4539..a40fcabb 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,9 +24,9 @@ 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 -@@ -100,6 +100,9 @@ import java.util.Map; - import java.util.Objects; +@@ -112,6 +112,9 @@ import java.util.Objects; import java.util.Optional; + import java.util.Set; +import org.chromium.chrome.browser.homepage.HomepageManager; +import org.chromium.url.GURL; @@ -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. -@@ -940,9 +943,15 @@ public class TabGridDialogMediator +@@ -1030,9 +1033,15 @@ public class TabGridDialogMediator return; } @@ -62,7 +62,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser import org.chromium.chrome.browser.layouts.LayoutStateProvider.LayoutStateObserver; import org.chromium.chrome.browser.layouts.LayoutType; import org.chromium.chrome.browser.profiles.Profile; -@@ -414,10 +415,15 @@ public class TabGroupUiMediator implements BackPressHandler { +@@ -415,10 +416,15 @@ public class TabGroupUiMediator implements BackPressHandler { assert relatedTabs.size() > 0; Tab parentTabToAttach = relatedTabs.get(relatedTabs.size() - 1); @@ -208,7 +208,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome import org.chromium.chrome.browser.prefetch.settings.PreloadPagesSettingsBridge; import org.chromium.chrome.browser.prefetch.settings.PreloadPagesState; import org.chromium.chrome.browser.profiles.Profile; -@@ -505,6 +506,13 @@ public class ChromeTabCreator extends TabCreator +@@ -508,6 +509,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 -@@ -320,6 +320,7 @@ public final class ChromePreferenceKeys { +@@ -327,6 +327,7 @@ public final class ChromePreferenceKeys { public static final String HOMEPAGE_USE_CHROME_NTP = "Chrome.Homepage.UseNTP"; public static final String HOMEPAGE_USE_DEFAULT_URI = "homepage_partner_enabled"; @@ -247,7 +247,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -1498,6 +1498,9 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1489,6 +1489,9 @@ Your Google account may have other forms of browsing history like searches and a Last hour @@ -261,9 +261,9 @@ diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_u --- 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) { - registry->RegisterBooleanPref( - prefs::kShowForwardButton, true, - GetHomeAndForwardButtonAndHomePageIsNewTabPageFlags()); + + registry->RegisterBooleanPref(prefs::kPinSplitTabButton, false, + pref_registration_flags); + registry->RegisterBooleanPref(prefs::kNewTabPageIsHomePage, false, + PrefRegistry::NO_REGISTRATION_FLAGS); @@ -272,7 +272,7 @@ diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_u diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h --- a/chrome/common/pref_names.h +++ b/chrome/common/pref_names.h -@@ -1319,6 +1319,10 @@ inline constexpr char kShowForwardButton[] = "browser.show_forward_button"; +@@ -1328,6 +1328,10 @@ inline constexpr char kPinSplitTabButton[] = "browser.pin_split_tab_button"; // by enterprise policy. inline constexpr char kGeminiSettings[] = "browser.gemini_settings"; diff --git a/build/patches/Add-site-engagement-flag.patch b/build/patches/Add-site-engagement-flag.patch index 17651896..b92919da 100644 --- a/build/patches/Add-site-engagement-flag.patch +++ b/build/patches/Add-site-engagement-flag.patch @@ -24,7 +24,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -163,6 +163,7 @@ +@@ -164,6 +164,7 @@ #include "components/sensitive_content/features.h" #include "components/services/heap_profiling/public/cpp/switches.h" #include "components/services/storage/public/cpp/buckets/bucket_info.h" diff --git a/build/patches/Add-support-for-ISupportHelpAndFeedback.patch b/build/patches/Add-support-for-ISupportHelpAndFeedback.patch index 729cc878..bb1088fc 100644 --- a/build/patches/Add-support-for-ISupportHelpAndFeedback.patch +++ b/build/patches/Add-support-for-ISupportHelpAndFeedback.patch @@ -12,15 +12,15 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java -@@ -54,6 +54,7 @@ import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar; +@@ -56,6 +56,7 @@ import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar; import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; import org.chromium.components.browser_ui.bottomsheet.BottomSheetControllerFactory; import org.chromium.components.browser_ui.bottomsheet.ManagedBottomSheetController; +import org.chromium.components.browser_ui.settings.SettingsUtils; import org.chromium.components.browser_ui.modaldialog.AppModalPresenter; import org.chromium.components.browser_ui.settings.EmbeddableSettingsPage; - import org.chromium.components.browser_ui.util.TraceEventVectorDrawableCompat; -@@ -440,8 +441,12 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity + import org.chromium.components.browser_ui.settings.SettingsFragment; +@@ -466,8 +467,12 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity finishCurrentSettings(mainFragment); return true; } else if (item.getItemId() == R.id.menu_id_general_help) { diff --git a/build/patches/Add-support-to-jxl.patch b/build/patches/Add-support-to-jxl.patch index d2684a36..46d7dd97 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 -@@ -503,6 +503,10 @@ vars = { +@@ -511,6 +511,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 -@@ -1886,6 +1890,9 @@ deps = { +@@ -1889,6 +1893,9 @@ deps = { 'src/third_party/dawn': Var('dawn_git') + '/dawn.git' + '@' + Var('dawn_revision'), @@ -375,7 +375,7 @@ diff --git a/net/base/mime_util_unittest.cc b/net/base/mime_util_unittest.cc diff --git a/third_party/.gitignore b/third_party/.gitignore --- a/third_party/.gitignore +++ b/third_party/.gitignore -@@ -80,6 +80,7 @@ +@@ -81,6 +81,7 @@ /libjingle/source /libupnp /libva-fake-driver/src @@ -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 -@@ -4809,6 +4809,7 @@ domain Emulation +@@ -4823,6 +4823,7 @@ domain Emulation experimental type DisabledImageType extends string enum avif @@ -475,7 +475,7 @@ diff --git a/third_party/blink/public/devtools_protocol/browser_protocol.pdl b/t diff --git a/third_party/blink/renderer/core/inspector/inspector_emulation_agent.cc b/third_party/blink/renderer/core/inspector/inspector_emulation_agent.cc --- a/third_party/blink/renderer/core/inspector/inspector_emulation_agent.cc +++ b/third_party/blink/renderer/core/inspector/inspector_emulation_agent.cc -@@ -557,10 +557,10 @@ AtomicString InspectorEmulationAgent::OverrideAcceptImageHeader( +@@ -565,10 +565,10 @@ AtomicString InspectorEmulationAgent::OverrideAcceptImageHeader( String header(network_utils::ImageAcceptHeader()); for (String type : *disabled_image_types) { // The header string is expected to be like @@ -489,7 +489,7 @@ diff --git a/third_party/blink/renderer/core/inspector/inspector_emulation_agent header.Replace(String(type + ","), ""); } return AtomicString(header); -@@ -931,6 +931,7 @@ protocol::Response InspectorEmulationAgent::setDisabledImageTypes( +@@ -939,6 +939,7 @@ protocol::Response InspectorEmulationAgent::setDisabledImageTypes( namespace DisabledImageTypeEnum = protocol::Emulation::DisabledImageTypeEnum; for (protocol::Emulation::DisabledImageType type : *disabled_types) { if (DisabledImageTypeEnum::Avif == type || @@ -605,7 +605,7 @@ diff --git a/third_party/blink/renderer/modules/webcodecs/image_decoder_fuzzer.c diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn --- a/third_party/blink/renderer/platform/BUILD.gn +++ b/third_party/blink/renderer/platform/BUILD.gn -@@ -2414,6 +2414,10 @@ source_set("blink_platform_unittests_sources") { +@@ -2431,6 +2431,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 += [ -@@ -2459,6 +2463,7 @@ source_set("blink_platform_unittests_sources") { +@@ -2476,6 +2480,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 -@@ -5405,6 +5405,12 @@ crbug.com/1199522 http/tests/devtools/layers/layers-3d-view-hit-testing.js [ Fai +@@ -5434,6 +5434,12 @@ crbug.com/1199522 http/tests/devtools/layers/layers-3d-view-hit-testing.js [ Fai # Started failing after rolling new version of check-layout-th.js css3/flexbox/perpendicular-writing-modes-inside-flex-item.html [ Failure ] @@ -2231,7 +2231,7 @@ diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/we diff --git a/third_party/blink/web_tests/VirtualTestSuites b/third_party/blink/web_tests/VirtualTestSuites --- a/third_party/blink/web_tests/VirtualTestSuites +++ b/third_party/blink/web_tests/VirtualTestSuites -@@ -429,6 +429,15 @@ +@@ -478,6 +478,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 -@@ -14724,6 +14724,7 @@ from previous Chrome versions. +@@ -14847,6 +14847,7 @@ from previous Chrome versions. diff --git a/build/patches/Add-webGL-site-setting.patch b/build/patches/Add-webGL-site-setting.patch index 17998c63..21a532b5 100644 --- a/build/patches/Add-webGL-site-setting.patch +++ b/build/patches/Add-webGL-site-setting.patch @@ -218,7 +218,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc --- a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc +++ b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc -@@ -305,6 +305,13 @@ void WebGLRenderingContextBase::InitializeWebGLContextLimits( +@@ -336,6 +336,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_); -@@ -574,25 +581,6 @@ static String ExtractWebGLContextCreationError( +@@ -605,25 +612,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('.'); -@@ -652,6 +640,12 @@ WebGLRenderingContextBase::CreateWebGraphicsContext3DProvider( +@@ -683,6 +671,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 -@@ -1933,6 +1933,8 @@ class MODULES_EXPORT WebGLRenderingContextBase : public ScriptWrappable, +@@ -1950,6 +1950,8 @@ class MODULES_EXPORT WebGLRenderingContextBase : public ScriptWrappable, DOMArrayBufferView* pixels, int64_t offset); diff --git a/build/patches/Add-webRTC-site-settings.patch b/build/patches/Add-webRTC-site-settings.patch index 4009e2b6..07e95cad 100644 --- a/build/patches/Add-webRTC-site-settings.patch +++ b/build/patches/Add-webRTC-site-settings.patch @@ -210,7 +210,7 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_d diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.cc b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.cc --- a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.cc +++ b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.cc -@@ -14,6 +14,8 @@ +@@ -16,6 +16,8 @@ #include "third_party/blink/public/common/privacy_budget/identifiable_surface.h" #include "third_party/blink/public/common/privacy_budget/identifiable_token_builder.h" #include "third_party/blink/public/platform/modules/webrtc/webrtc_logging.h" @@ -219,7 +219,7 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver. #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_insertable_streams.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_rtcp_parameters.h" -@@ -286,6 +288,14 @@ RTCRtpCapabilities* RTCRtpReceiver::getCapabilities(ScriptState* state, +@@ -288,6 +290,14 @@ RTCRtpCapabilities* RTCRtpReceiver::getCapabilities(ScriptState* state, if (kind != "audio" && kind != "video") return nullptr; @@ -237,7 +237,7 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver. diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc --- a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc +++ b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc -@@ -19,6 +19,8 @@ +@@ -21,6 +21,8 @@ #include "third_party/blink/public/common/privacy_budget/identifiable_surface.h" #include "third_party/blink/public/common/privacy_budget/identifiable_token_builder.h" #include "third_party/blink/public/platform/modules/webrtc/webrtc_logging.h" @@ -246,7 +246,7 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_encoding_options.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_insertable_streams.h" -@@ -1033,6 +1035,14 @@ RTCRtpCapabilities* RTCRtpSender::getCapabilities(ScriptState* state, +@@ -1035,6 +1037,14 @@ RTCRtpCapabilities* RTCRtpSender::getCapabilities(ScriptState* state, if (kind != "audio" && kind != "video") return nullptr; diff --git a/build/patches/Allow-DocumentPiP-if-PopupsAndRedirects-are-active.patch b/build/patches/Allow-DocumentPiP-if-PopupsAndRedirects-are-active.patch index 72df7385..f266e29e 100644 --- a/build/patches/Allow-DocumentPiP-if-PopupsAndRedirects-are-active.patch +++ b/build/patches/Allow-DocumentPiP-if-PopupsAndRedirects-are-active.patch @@ -20,7 +20,7 @@ diff --git a/third_party/blink/renderer/modules/document_picture_in_picture/pict #include "third_party/blink/renderer/modules/picture_in_picture/picture_in_picture_event.h" #include "third_party/blink/renderer/platform/heap/garbage_collected.h" #include "third_party/blink/renderer/platform/runtime_enabled_features.h" -@@ -390,6 +391,12 @@ void PictureInPictureControllerImpl::CreateDocumentPictureInPictureWindow( +@@ -392,6 +393,12 @@ void PictureInPictureControllerImpl::CreateDocumentPictureInPictureWindow( return; } diff --git a/build/patches/Allow-playing-audio-in-background.patch b/build/patches/Allow-playing-audio-in-background.patch index 14e3596d..384a858e 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 -@@ -1346,6 +1346,12 @@ void WebMediaPlayerImpl::OnSelectedVideoTrackChanged( +@@ -1336,6 +1336,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()); -@@ -3752,7 +3758,10 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const { +@@ -3697,7 +3703,10 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const { : HasAudio(); // Audio only stream is allowed to play when in background. @@ -35,11 +35,11 @@ diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc + if (!HasVideoNonEmptySize() && preserve_audio) return false; - // MediaPlayer always signals audio and video, so use an empty natural size to + // Video PiP is the only exception when background video playback is disabled. diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.h b/third_party/blink/renderer/platform/media/web_media_player_impl.h --- a/third_party/blink/renderer/platform/media/web_media_player_impl.h +++ b/third_party/blink/renderer/platform/media/web_media_player_impl.h -@@ -211,6 +211,9 @@ class PLATFORM_EXPORT WebMediaPlayerImpl +@@ -212,6 +212,9 @@ class PLATFORM_EXPORT WebMediaPlayerImpl bool HasVideo() const override; bool HasAudio() const override; diff --git a/build/patches/Always-open-browser-controls-in-new-tab.patch b/build/patches/Always-open-browser-controls-in-new-tab.patch index b5573de3..6a1bfec9 100644 --- a/build/patches/Always-open-browser-controls-in-new-tab.patch +++ b/build/patches/Always-open-browser-controls-in-new-tab.patch @@ -26,7 +26,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM import org.chromium.chrome.browser.tabmodel.TabModelSelector; import org.chromium.chrome.browser.tabmodel.document.ChromeAsyncTabLauncher; import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; -@@ -257,6 +259,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { +@@ -290,6 +292,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { Referrer referrer, boolean navigateToTab, @Nullable AdditionalNavigationParams additionalNavigationParams) { @@ -34,7 +34,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM RecordUserAction.record("MobileNewTabOpened"); RecordUserAction.record("LinkOpenedInNewTab"); LoadUrlParams loadUrlParams = new LoadUrlParams(url.getSpec()); -@@ -277,6 +280,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { +@@ -310,6 +313,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { * @param url The URL to open. */ public void onOpenInNewTabInGroup(GURL url, Referrer referrer) { diff --git a/build/patches/Always-use-new-tab-page-for-default-home-page.patch b/build/patches/Always-use-new-tab-page-for-default-home-page.patch index 677181e1..f20ce291 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 @@ -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 -@@ -74,6 +74,7 @@ public class TemplateUrl { +@@ -72,6 +72,7 @@ public class TemplateUrl { * prepopulated_engines.json. */ public String getNewTabURL() { diff --git a/build/patches/Android-fonts-fingerprinting-mitigation.patch b/build/patches/Android-fonts-fingerprinting-mitigation.patch index 459319b8..c0e67c32 100644 --- a/build/patches/Android-fonts-fingerprinting-mitigation.patch +++ b/build/patches/Android-fonts-fingerprinting-mitigation.patch @@ -54,16 +54,16 @@ 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 -@@ -1073,6 +1073,9 @@ public final class ProductionSupportedFlagList { +@@ -1080,6 +1080,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."), + Flag.baseFeature( + "AndroidFontsFingerprintingMitigation", + "Android fonts fingerprinting mitigation: replaces all system fonts with the same for all devices.."), - // Add new commandline switches and features above. The final entry should have a - // trailing comma for cleaner diffs. - }; + Flag.baseFeature( + BlinkFeatures.ASYNC_SET_COOKIE, + "When enabled, the communication between renderer and network service is " diff --git a/android_webview/nonembedded/component_updater/registration.cc b/android_webview/nonembedded/component_updater/registration.cc --- a/android_webview/nonembedded/component_updater/registration.cc +++ b/android_webview/nonembedded/component_updater/registration.cc @@ -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 -@@ -7745,6 +7745,13 @@ static_library("browser") { +@@ -7788,6 +7788,13 @@ static_library("browser") { } } @@ -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 -@@ -2561,6 +2561,17 @@ source_set("browser") { +@@ -2572,6 +2572,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" ] -@@ -2603,6 +2614,13 @@ source_set("browser") { +@@ -2614,6 +2625,13 @@ source_set("browser") { ] } @@ -649,8 +649,8 @@ diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn diff --git a/content/browser/renderer_host/render_process_host_impl_receiver_bindings.cc b/content/browser/renderer_host/render_process_host_impl_receiver_bindings.cc --- a/content/browser/renderer_host/render_process_host_impl_receiver_bindings.cc +++ b/content/browser/renderer_host/render_process_host_impl_receiver_bindings.cc -@@ -52,6 +52,11 @@ - #include "third_party/blink/public/mojom/webdatabase/web_database.mojom.h" +@@ -50,6 +50,11 @@ + #include "third_party/blink/public/mojom/android_font_lookup/android_font_lookup.mojom.h" #endif +#if BUILDFLAG(IS_ANDROID) @@ -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 -@@ -343,6 +348,13 @@ void RenderProcessHostImpl::IOThreadHostImpl::BindHostReceiver( +@@ -332,6 +337,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 -@@ -357,6 +357,10 @@ target(link_target_type, "renderer") { +@@ -353,6 +353,10 @@ target(link_target_type, "renderer") { deps += [ "//services/screen_ai/public/mojom" ] } diff --git a/build/patches/Ask-for-restart-on-connection-change.patch b/build/patches/Ask-for-restart-on-connection-change.patch index 532aba56..7ff64dca 100644 --- a/build/patches/Ask-for-restart-on-connection-change.patch +++ b/build/patches/Ask-for-restart-on-connection-change.patch @@ -29,8 +29,8 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../sAskForRestartOnConnectionChange.java | 32 +++++ .../browser/tabmodel/TabModelSelector.java | 2 + .../browser/tabmodel/TabModelUtils.java | 18 +++ - .../browser/tabmodel/TabWindowManager.java | 2 + - .../tabmodel/TabWindowManagerImpl.java | 10 ++ + .../browser/tabwindow/TabWindowManager.java | 2 + + .../tabwindow/TabWindowManagerImpl.java | 10 ++ .../Ask-for-restart-on-connection-change.grdp | 15 +++ .../android/java/res/layout/snackbar.xml | 10 ++ .../ui/messages/snackbar/Snackbar.java | 16 +++ @@ -281,7 +281,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java -@@ -1335,7 +1335,10 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1343,7 +1343,10 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { mActivity, mStatusIndicatorCoordinator, isUrlBarFocusedSupplier, @@ -350,7 +350,7 @@ new file mode 100644 diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java --- a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java +++ b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java -@@ -147,6 +147,8 @@ public interface TabModelSelector { +@@ -146,6 +146,8 @@ public interface TabModelSelector { /** Get total tab count across all tab models */ int getTotalTabCount(); @@ -358,11 +358,11 @@ diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browse + /** * Search all TabModels for a tab with the specified id. - * @return specified tab or null if tab is not found + * diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelUtils.java b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelUtils.java --- a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelUtils.java +++ b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelUtils.java -@@ -17,12 +17,16 @@ import org.chromium.base.supplier.SupplierUtils; +@@ -16,12 +16,16 @@ import org.chromium.build.annotations.Nullable; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.TabSelectionType; import org.chromium.content_public.browser.WebContents; @@ -400,10 +400,10 @@ diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browse /** * Find the {@link Tab} index whose URL matches the specified URL. * -diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManager.java b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManager.java ---- a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManager.java -+++ b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManager.java -@@ -108,6 +108,8 @@ public interface TabWindowManager { +diff --git a/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java b/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java +--- a/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java ++++ b/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java +@@ -138,6 +138,8 @@ public interface TabWindowManager { /** Returns the total number of incognito tabs across all tab model selectors. */ int getIncognitoTabCount(); @@ -412,10 +412,10 @@ diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browse /** * @param tab The tab to look for in each model. * @return The TabModel containing the given Tab or null if one doesn't exist. -diff --git a/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManagerImpl.java b/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManagerImpl.java ---- a/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManagerImpl.java -+++ b/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManagerImpl.java -@@ -490,6 +490,16 @@ public class TabWindowManagerImpl implements TabWindowManager { +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 { return tabGroupModelFilter.getTabsInGroup(tabGroupId); } @@ -474,16 +474,16 @@ 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 -@@ -133,6 +133,8 @@ public class Snackbar { - private String mTemplateText; - private String mActionText; - private Object mActionData; +@@ -135,6 +135,8 @@ public class Snackbar { + private @Nullable String mTemplateText; + private @Nullable String mActionText; + private @Nullable Object mActionData; + private String mDismissActionText; + private Object mDismissActionData; private int mBackgroundColor; private int mTextApperanceResId; private boolean mSingleLine = true; -@@ -235,6 +237,20 @@ public class Snackbar { +@@ -240,6 +242,20 @@ public class Snackbar { return this; } @@ -507,7 +507,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager.java b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager.java --- a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager.java +++ b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager.java -@@ -318,6 +318,12 @@ public class SnackbarManager +@@ -326,6 +326,12 @@ public class SnackbarManager new SnackbarView( mActivity, this, @@ -523,7 +523,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarView.java b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarView.java --- a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarView.java +++ b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarView.java -@@ -51,6 +51,7 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { +@@ -55,6 +55,7 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { protected final ViewGroup mSnackbarView; protected final TemplatePreservingTextView mMessageView; private final TextView mActionButtonView; @@ -531,7 +531,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro private final ImageView mProfileImageView; private final int mAnimationDuration; private final boolean mIsTablet; -@@ -97,11 +98,12 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { +@@ -101,11 +102,12 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { public SnackbarView( Activity activity, OnClickListener listener, @@ -545,7 +545,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro } /** -@@ -120,6 +122,7 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { +@@ -124,6 +126,7 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { public SnackbarView( Activity activity, OnClickListener listener, @@ -553,7 +553,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro Snackbar snackbar, ViewGroup parentView, @Nullable WindowAndroid windowAndroid, -@@ -147,6 +150,8 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { +@@ -154,6 +157,8 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { (TemplatePreservingTextView) mContainerView.findViewById(R.id.snackbar_message); mActionButtonView = (TextView) mContainerView.findViewById(R.id.snackbar_button); mActionButtonView.setOnClickListener(listener); @@ -562,7 +562,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro mProfileImageView = (ImageView) mContainerView.findViewById(R.id.snackbar_profile_image); mEdgeToEdgeSupplier = edgeToEdgeSupplier; if (SnackbarManager.isFloatingSnackbarEnabled()) { -@@ -404,6 +409,12 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { +@@ -428,6 +433,12 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { mActionButtonView.setVisibility(View.VISIBLE); mActionButtonView.setContentDescription(snackbar.getActionText()); setViewText(mActionButtonView, snackbar.getActionText(), animate); @@ -578,7 +578,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro diff --git a/content/browser/web_contents/web_contents_android.cc b/content/browser/web_contents/web_contents_android.cc --- a/content/browser/web_contents/web_contents_android.cc +++ b/content/browser/web_contents/web_contents_android.cc -@@ -898,6 +898,22 @@ void WebContentsAndroid::SetFocus(JNIEnv* env, jboolean focused) { +@@ -899,6 +899,22 @@ void WebContentsAndroid::SetFocus(JNIEnv* env, jboolean focused) { view->SetFocus(focused); } @@ -615,7 +615,7 @@ diff --git a/content/browser/web_contents/web_contents_android.h b/content/brows diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -3840,8 +3840,10 @@ void WebContentsImpl::Stop() { +@@ -3865,8 +3865,10 @@ void WebContentsImpl::Stop() { void WebContentsImpl::SetPageFrozen(bool frozen) { TRACE_EVENT1("content", "WebContentsImpl::SetPageFrozen", "frozen", frozen); @@ -629,7 +629,7 @@ diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser diff --git a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java --- a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java +++ b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java -@@ -1128,6 +1128,12 @@ public class WebContentsImpl +@@ -1131,6 +1131,12 @@ public class WebContentsImpl WebContentsImplJni.get().setFocus(mNativeWebContentsAndroid, hasFocus); } @@ -642,7 +642,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/webcon @Override public void setDisplayCutoutSafeArea(Rect insets) { if (mNativeWebContentsAndroid == 0) return; -@@ -1432,6 +1438,8 @@ public class WebContentsImpl +@@ -1435,6 +1441,8 @@ public class WebContentsImpl void setFocus(long nativeWebContentsAndroid, boolean focused); @@ -711,7 +711,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc --- a/third_party/blink/renderer/core/dom/document.cc +++ b/third_party/blink/renderer/core/dom/document.cc -@@ -4309,6 +4309,7 @@ void Document::DispatchUnloadEvents(UnloadEventTimingInfo* unload_timing_info) { +@@ -4329,6 +4329,7 @@ void Document::DispatchUnloadEvents(UnloadEventTimingInfo* unload_timing_info) { } void Document::DispatchFreezeEvent() { @@ -722,7 +722,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc -@@ -3196,6 +3196,7 @@ void LocalFrame::DidFreeze() { +@@ -3206,6 +3206,7 @@ void LocalFrame::DidFreeze() { LoaderFreezeMode freeze_mode = GetLoaderFreezeMode(); GetDocument()->Fetcher()->SetDefersLoading(freeze_mode); Loader().SetDefersLoading(freeze_mode); @@ -730,7 +730,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ } void LocalFrame::DidResume() { -@@ -3210,6 +3211,7 @@ void LocalFrame::DidResume() { +@@ -3220,6 +3221,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 f977da70..995d638d 100644 --- a/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch +++ b/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch @@ -52,7 +52,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer.cc b/third_party/blink/renderer/modules/webaudio/audio_buffer.cc --- a/third_party/blink/renderer/modules/webaudio/audio_buffer.cc +++ b/third_party/blink/renderer/modules/webaudio/audio_buffer.cc -@@ -203,6 +203,20 @@ AudioBuffer::AudioBuffer(AudioBus* bus) +@@ -199,6 +199,20 @@ AudioBuffer::AudioBuffer(AudioBus* bus) } } @@ -96,7 +96,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/audio_context.cc b/thir #include "third_party/blink/public/platform/modules/webrtc/webrtc_logging.h" #include "third_party/blink/public/platform/web_audio_latency_hint.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h" -@@ -639,7 +640,9 @@ double AudioContext::baseLatency() const { +@@ -660,7 +661,9 @@ double AudioContext::baseLatency() const { DCHECK_CALLED_ON_VALID_SEQUENCE(main_thread_sequence_checker_); DCHECK(destination()); @@ -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 -@@ -495,9 +495,8 @@ +@@ -545,9 +545,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 29ea5a43..aa2b0690 100644 --- a/build/patches/Block-gateway-attacks-via-websockets.patch +++ b/build/patches/Block-gateway-attacks-via-websockets.patch @@ -60,7 +60,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.h b/third_party/blink/renderer/core/loader/base_fetch_context.h --- a/third_party/blink/renderer/core/loader/base_fetch_context.h +++ b/third_party/blink/renderer/core/loader/base_fetch_context.h -@@ -88,6 +88,7 @@ class CORE_EXPORT BaseFetchContext : public FetchContext { +@@ -86,6 +86,7 @@ class CORE_EXPORT BaseFetchContext : public FetchContext { virtual SubresourceFilter* GetSubresourceFilter() const = 0; virtual bool ShouldBlockWebSocketByMixedContentCheck(const KURL&) const = 0; @@ -71,7 +71,7 @@ diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.h b/third diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/third_party/blink/renderer/core/loader/frame_fetch_context.cc --- a/third_party/blink/renderer/core/loader/frame_fetch_context.cc +++ b/third_party/blink/renderer/core/loader/frame_fetch_context.cc -@@ -1015,6 +1015,26 @@ bool FrameFetchContext::ShouldBlockRequestByInspector(const KURL& url) const { +@@ -1007,6 +1007,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 -@@ -186,6 +186,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext, +@@ -183,6 +183,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext, bool ShouldBlockWebSocketByMixedContentCheck(const KURL&) const override; std::unique_ptr CreateWebSocketHandshakeThrottle() override; 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 fe53f1f9..052c3403 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 -@@ -4982,7 +4982,17 @@ void RenderFrameHostImpl::SetLastCommittedOrigin( +@@ -5104,7 +5104,17 @@ void RenderFrameHostImpl::SetLastCommittedOrigin( } void RenderFrameHostImpl::SetInheritedBaseUrl(const GURL& inherited_base_url) { diff --git a/build/patches/Block-qjz9zk-or-trk-requests.patch b/build/patches/Block-qjz9zk-or-trk-requests.patch index 327e0e29..0753c335 100644 --- a/build/patches/Block-qjz9zk-or-trk-requests.patch +++ b/build/patches/Block-qjz9zk-or-trk-requests.patch @@ -49,7 +49,7 @@ diff --git a/chrome/browser/history/history_utils.cc b/chrome/browser/history/hi diff --git a/chrome/browser/ui/singleton_tabs.cc b/chrome/browser/ui/singleton_tabs.cc --- a/chrome/browser/ui/singleton_tabs.cc +++ b/chrome/browser/ui/singleton_tabs.cc -@@ -128,6 +128,11 @@ int GetIndexOfExistingTab(Browser* browser, const NavigateParams& params) { +@@ -136,6 +136,11 @@ int GetIndexOfExistingTab(Browser* browser, const NavigateParams& params) { continue; } @@ -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 -@@ -1095,6 +1095,8 @@ component("net") { +@@ -1108,6 +1108,8 @@ component("net") { "url_request/url_request_http_job.cc", "url_request/url_request_http_job.h", "url_request/url_request_interceptor.cc", @@ -227,7 +227,7 @@ diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc diff --git a/net/url_request/url_request_context_builder.cc b/net/url_request/url_request_context_builder.cc --- a/net/url_request/url_request_context_builder.cc +++ b/net/url_request/url_request_context_builder.cc -@@ -50,6 +50,7 @@ +@@ -53,6 +53,7 @@ #include "net/socket/network_binding_client_socket_factory.h" #include "net/ssl/ssl_config_service_defaults.h" #include "net/url_request/static_http_user_agent_settings.h" @@ -235,7 +235,7 @@ diff --git a/net/url_request/url_request_context_builder.cc b/net/url_request/ur #include "net/url_request/url_request_context.h" #include "net/url_request/url_request_job_factory.h" #include "url/url_constants.h" -@@ -595,6 +596,8 @@ std::unique_ptr URLRequestContextBuilder::Build() { +@@ -610,6 +611,8 @@ std::unique_ptr URLRequestContextBuilder::Build() { job_factory->SetProtocolHandler(scheme_handler.first, std::move(scheme_handler.second)); } diff --git a/build/patches/Bookmarks-select-all-menu-entry.patch b/build/patches/Bookmarks-select-all-menu-entry.patch index 5e1a26ec..faf57ee1 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 -@@ -24,6 +24,7 @@ import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelega +@@ -25,6 +25,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 -@@ -184,6 +185,11 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -186,6 +187,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() { -@@ -215,6 +221,17 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -221,6 +227,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 mMenuIdClickedFunction.apply(menuItem.getItemId()); } -@@ -232,6 +249,7 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -243,6 +260,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-auto-updater.patch b/build/patches/Bromite-auto-updater.patch index 49179d9a..262a5c18 100644 --- a/build/patches/Bromite-auto-updater.patch +++ b/build/patches/Bromite-auto-updater.patch @@ -58,8 +58,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/build/android/java/templates/BuildConfig.template b/build/android/java/templates/BuildConfig.template --- a/build/android/java/templates/BuildConfig.template +++ b/build/android/java/templates/BuildConfig.template -@@ -77,6 +77,8 @@ public class BuildConfig { - public static boolean IS_CRONET_BUILD; +@@ -83,6 +83,8 @@ public class BuildConfig { + public static boolean CRONET_FOR_AOSP_BUILD; #endif + public static String BUILD_TARGET_CPU = QUOTE(_BUILD_TARGET_CPU); @@ -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 -@@ -1935,6 +1935,9 @@ if (!is_robolectric && enable_java_templates) { +@@ -1938,6 +1938,9 @@ if (!is_robolectric && enable_java_templates) { sources = [ "//build/android/java/templates/BuildConfig.template" ] defines = [] @@ -83,7 +83,7 @@ diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -802,6 +802,8 @@ chrome_java_sources = [ +@@ -820,6 +820,8 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/omaha/OmahaBase.java", "java/src/org/chromium/chrome/browser/omaha/OmahaDelegate.java", "java/src/org/chromium/chrome/browser/omaha/OmahaDelegateBase.java", @@ -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 -@@ -24,12 +24,18 @@ import org.chromium.ui.widget.Toast; +@@ -25,12 +25,18 @@ import org.chromium.ui.widget.Toast; import java.util.Calendar; @@ -130,7 +130,7 @@ 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"; -@@ -63,6 +69,13 @@ public class AboutChromeSettings extends PreferenceFragmentCompat +@@ -64,6 +70,13 @@ public class AboutChromeSettings extends PreferenceFragmentCompat p = findPreference(PREF_LEGAL_INFORMATION); int currentYear = Calendar.getInstance().get(Calendar.YEAR); p.setSummary(getString(R.string.legal_information_summary, currentYear)); @@ -144,11 +144,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/about_settings/ } @Override -@@ -132,4 +145,17 @@ public class AboutChromeSettings extends PreferenceFragmentCompat - } +@@ -134,6 +147,19 @@ public class AboutChromeSettings extends PreferenceFragmentCompat return true; } -+ + + @Override + public boolean onPreferenceChange(Preference preference, Object newValue) { + String key = preference.getKey(); @@ -161,7 +160,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/about_settings/ + } + return true; + } - } ++ + @Override + public @SettingsFragment.AnimationType int getAnimationType() { + return SettingsFragment.AnimationType.PROPERTY; diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/CromiteUpdateStatusProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/CromiteUpdateStatusProvider.java new file mode 100644 --- /dev/null @@ -1087,8 +1089,8 @@ 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 -@@ -308,6 +308,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { - &kPriceChangeModule, +@@ -324,6 +324,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { + &kProtectedTabsAndroid, &kPwaRestoreUi, &kPwaRestoreUiAtStartup, + &kInlineUpdateFlow, @@ -1098,14 +1100,14 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -388,6 +388,7 @@ public abstract class ChromeFeatureList { +@@ -401,6 +401,7 @@ public abstract class ChromeFeatureList { public static final String HISTORY_PANE_ANDROID = "HistoryPaneAndroid"; public static final String HTTPS_FIRST_BALANCED_MODE = "HttpsFirstBalancedMode"; public static final String INCOGNITO_SCREENSHOT = "IncognitoScreenshot"; + public static final String INLINE_UPDATE_FLOW = "InlineUpdateFlow"; public static final String 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 LENS_ON_QUICK_ACTION_SEARCH_WIDGET = "LensOnQuickActionSearchWidget"; diff --git a/chrome/browser/omaha/android/BUILD.gn b/chrome/browser/omaha/android/BUILD.gn --- a/chrome/browser/omaha/android/BUILD.gn +++ b/chrome/browser/omaha/android/BUILD.gn @@ -1676,7 +1678,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 -@@ -2405,6 +2405,12 @@ Your Google account may have other forms of browsing history like searches and a +@@ -2410,6 +2410,12 @@ Your Google account may have other forms of browsing history like searches and a Chrome updates are no longer supported for this version of Android @@ -1689,7 +1691,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro -@@ -4333,7 +4339,10 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4361,7 +4367,10 @@ To change this setting, BEGIN_LINKdelete the Chrome d @@ -1701,7 +1703,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro Newer version is available -@@ -4344,6 +4353,18 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4372,6 +4381,18 @@ To change this setting, BEGIN_LINKdelete the Chrome d Android version is unsupported @@ -1723,7 +1725,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/browser/ui/lens/lens_overlay_query_controller.cc b/chrome/browser/ui/lens/lens_overlay_query_controller.cc --- a/chrome/browser/ui/lens/lens_overlay_query_controller.cc +++ b/chrome/browser/ui/lens/lens_overlay_query_controller.cc -@@ -876,6 +876,7 @@ LensOverlayQueryController::CreateEndpointFetcher( +@@ -924,6 +924,7 @@ LensOverlayQueryController::CreateEndpointFetcher( /*post_data=*/request_string, /*headers=*/request_headers, /*cors_exempt_headers=*/cors_exempt_headers, chrome::GetChannel(), diff --git a/build/patches/Bromite-package-name.patch b/build/patches/Bromite-package-name.patch index 139e2d54..3b5387ab 100644 --- a/build/patches/Bromite-package-name.patch +++ b/build/patches/Bromite-package-name.patch @@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/chrome_public_apk_tmpl.gni b/chrome/android/chrome_public_apk_tmpl.gni --- a/chrome/android/chrome_public_apk_tmpl.gni +++ b/chrome/android/chrome_public_apk_tmpl.gni -@@ -26,7 +26,7 @@ declare_args() { +@@ -27,7 +27,7 @@ declare_args() { # WebView providers which declare one of a handful of package names. See # https://chromium.googlesource.com/chromium/src/+/HEAD/android_webview/docs/build-instructions.md#Changing-package-name # for details. diff --git a/build/patches/Bromite-subresource-adblocker.patch b/build/patches/Bromite-subresource-adblocker.patch index 30968f71..1424f0d0 100644 --- a/build/patches/Bromite-subresource-adblocker.patch +++ b/build/patches/Bromite-subresource-adblocker.patch @@ -44,14 +44,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../component_updater/download_filters_task.h | 129 ++++++++ ...ent_subresource_filter_throttle_manager.cc | 15 + ...tent_subresource_filter_throttle_manager.h | 2 + - .../content/shared/browser/ruleset_service.cc | 47 ++- + .../content/shared/browser/ruleset_service.cc | 44 ++- .../content/shared/browser/ruleset_service.h | 8 +- .../unindexed_ruleset_stream_generator.cc | 3 + .../core/browser/ruleset_version.h | 4 + - .../browser/subresource_filter_features.cc | 114 +------ + .../browser/subresource_filter_features.cc | 118 +------- .../core/browser/verified_ruleset_dealer.cc | 4 + .../core/common/indexed_ruleset.cc | 5 +- - 39 files changed, 1271 insertions(+), 129 deletions(-) + 39 files changed, 1269 insertions(+), 132 deletions(-) create mode 100644 chrome/android/java/res/layout/adblock_editor.xml create mode 100644 chrome/android/java/res/xml/adblock_preferences.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockEditor.java @@ -66,7 +66,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -320,6 +320,7 @@ if (current_toolchain == default_toolchain) { +@@ -328,6 +328,7 @@ if (_is_default_toolchain) { "//chrome/android/features/tab_ui/public:ui_java_resources", "//chrome/android/modules/stack_unwinder/provider:java", "//chrome/android/webapk/libs/client:client_java", @@ -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", -@@ -633,6 +634,7 @@ chrome_java_resources = [ +@@ -636,6 +637,7 @@ chrome_java_resources = [ "java/res/xml/account_management_preferences.xml", "java/res/xml/ad_services_config.xml", "java/res/xml/appearance_preferences.xml", @@ -96,7 +96,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -875,6 +875,8 @@ chrome_java_sources = [ +@@ -893,6 +893,8 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/permissions/PermissionBlockedDialog.java", "java/src/org/chromium/chrome/browser/permissions/PermissionUpdateRequester.java", "java/src/org/chromium/chrome/browser/photo_picker/DecoderServiceImpl.java", @@ -180,8 +180,8 @@ new file mode 100644 diff --git a/chrome/android/java/res/values/styles.xml b/chrome/android/java/res/values/styles.xml --- a/chrome/android/java/res/values/styles.xml +++ b/chrome/android/java/res/values/styles.xml -@@ -251,6 +251,24 @@ found in the LICENSE file. - +@@ -263,6 +263,24 @@ found in the LICENSE file. + 20sp + @@ -1213,7 +1213,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/Fullscre diff --git a/chrome/browser/locale/java/src/org/chromium/chrome/browser/locale/LocaleManagerDelegate.java b/chrome/browser/locale/java/src/org/chromium/chrome/browser/locale/LocaleManagerDelegate.java --- a/chrome/browser/locale/java/src/org/chromium/chrome/browser/locale/LocaleManagerDelegate.java +++ b/chrome/browser/locale/java/src/org/chromium/chrome/browser/locale/LocaleManagerDelegate.java -@@ -384,8 +384,9 @@ public class LocaleManagerDelegate { +@@ -389,8 +389,9 @@ public class LocaleManagerDelegate { /** @see LocaleManager#getSearchEnginesForPromoDialog */ public List getSearchEnginesForPromoDialog(@SearchEnginePromoType int promoType) { diff --git a/build/patches/add-browser-policy.patch b/build/patches/add-browser-policy.patch index acb1c8ed..d4abc25f 100644 --- a/build/patches/add-browser-policy.patch +++ b/build/patches/add-browser-policy.patch @@ -42,7 +42,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/base/win/win_util.cc b/base/win/win_util.cc --- a/base/win/win_util.cc +++ b/base/win/win_util.cc -@@ -158,80 +158,18 @@ bool EnablePerMonitorV2() { +@@ -157,80 +157,18 @@ bool EnablePerMonitorV2() { } bool* GetDomainEnrollmentStateStorage() { @@ -129,7 +129,7 @@ diff --git a/base/win/win_util.cc b/base/win/win_util.cc diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml --- a/chrome/android/java/AndroidManifest.xml +++ b/chrome/android/java/AndroidManifest.xml -@@ -77,9 +77,7 @@ by a child template that "extends" this file. +@@ -81,9 +81,7 @@ by a child template that "extends" this file. @@ -139,7 +139,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -@@ -90,7 +88,6 @@ by a child template that "extends" this file. +@@ -94,7 +92,6 @@ by a child template that "extends" this file. @@ -147,7 +147,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -@@ -137,7 +134,6 @@ by a child template that "extends" this file. +@@ -141,7 +138,6 @@ by a child template that "extends" this file. @@ -202,10 +202,10 @@ 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 -@@ -48,6 +48,8 @@ BASE_FEATURE(kPreconnectToSearch, - BASE_FEATURE(kPreconnectToSearchWithPrivacyModeEnabled, - "PreconnectToSearchWithPrivacyModeEnabled", - base::FEATURE_DISABLED_BY_DEFAULT); +@@ -55,6 +55,8 @@ BASE_FEATURE(kPreconnectFromKeyedService, + BASE_FEATURE(kPreconnectToSearch, + "PreconnectToSearch", + base::FEATURE_ENABLED_BY_DEFAULT); +SET_CROMITE_FEATURE_DISABLED(kPreconnectToSearch); +SET_CROMITE_FEATURE_DISABLED(kPreconnectToSearchWithPrivacyModeEnabled); } // namespace features @@ -227,7 +227,7 @@ diff --git a/chrome/browser/policy/chrome_browser_policy_connector.cc b/chrome/b diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc b/chrome/browser/policy/configuration_policy_handler_list_factory.cc --- a/chrome/browser/policy/configuration_policy_handler_list_factory.cc +++ b/chrome/browser/policy/configuration_policy_handler_list_factory.cc -@@ -2433,9 +2433,9 @@ bool AreFuturePoliciesEnabledByDefault() { +@@ -2450,9 +2450,9 @@ bool AreFuturePoliciesEnabledByDefault() { if (base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kTestType)) { return true; } @@ -1022,7 +1022,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 -@@ -771,6 +771,7 @@ int SSLClientSocketImpl::Init() { +@@ -772,6 +772,7 @@ int SSLClientSocketImpl::Init() { return ERR_UNEXPECTED; } @@ -1030,7 +1030,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. -@@ -1177,6 +1178,8 @@ ssl_verify_result_t SSLClientSocketImpl::HandleVerifyResult() { +@@ -1178,6 +1179,8 @@ ssl_verify_result_t SSLClientSocketImpl::HandleVerifyResult() { cert_verifier_request_.reset(); @@ -1038,5 +1038,5 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket + // If the connection was good, check HPKP and CT status simultaneously, // but prefer to treat the HPKP error as more serious, if there was one. - if (result == OK) { + if (result == OK || result == ERR_CERTIFICATE_TRANSPARENCY_REQUIRED) { -- diff --git a/build/patches/allow-the-download-of-clang-for-windows-crossbuild.patch b/build/patches/allow-the-download-of-clang-for-windows-crossbuild.patch index 23fb0a13..72354f16 100644 --- a/build/patches/allow-the-download-of-clang-for-windows-crossbuild.patch +++ b/build/patches/allow-the-download-of-clang-for-windows-crossbuild.patch @@ -23,7 +23,7 @@ diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py """ import sys -@@ -231,7 +233,7 @@ def DownloadAndUnpackClangWinRuntime(output_dir): +@@ -234,7 +236,7 @@ def DownloadAndUnpackClangWinRuntime(output_dir): sys.exit(1) @@ -32,7 +32,7 @@ diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py stamp_file = None package_file = None -@@ -263,6 +265,8 @@ def UpdatePackage(package_name, host_os, dir=LLVM_BUILD_DIR): +@@ -266,6 +268,8 @@ def UpdatePackage(package_name, host_os, dir=LLVM_BUILD_DIR): target_os = env.get('target_os', target_os) except: pass @@ -41,7 +41,7 @@ diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py if os.path.exists(OLD_STAMP_FILE): # Delete the old stamp file so it doesn't look like an old version of clang -@@ -280,7 +284,7 @@ def UpdatePackage(package_name, host_os, dir=LLVM_BUILD_DIR): +@@ -283,7 +287,7 @@ def UpdatePackage(package_name, host_os, dir=LLVM_BUILD_DIR): # Updating the main clang package nukes the output dir. Any other packages # need to be updated *after* the clang package. @@ -50,16 +50,16 @@ diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py RmTree(dir) DownloadAndUnpackPackage(package_file, dir, host_os) -@@ -330,6 +334,8 @@ def main(): +@@ -331,6 +335,8 @@ def main(): + parser.add_argument('--print-clang-version', action='store_true', + help=('Print current clang release version (e.g. 9.0.0) ' 'and exit.')) - parser.add_argument('--verify-version', - help='Verify that clang has the passed-in version.') + parser.add_argument('--no-clear', + help='Do not remove old file before extracting.') args = parser.parse_args() - if args.verify_version and args.verify_version != RELEASE_VERSION: -@@ -371,7 +377,7 @@ def main(): + if args.print_clang_version: +@@ -366,7 +372,7 @@ def main(): print('--llvm-force-head-revision can only be used for --print-revision') return 1 diff --git a/build/patches/autofill-miscellaneous.patch b/build/patches/autofill-miscellaneous.patch index 971cb602..af4bf8b8 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 -@@ -1054,10 +1054,6 @@ ChromePasswordManagerClient::GetHttpAuthManager() { +@@ -1080,10 +1080,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 -@@ -390,15 +390,6 @@ ChromeAutofillClient::GetURLLoaderFactory() { +@@ -391,15 +391,6 @@ ChromeAutofillClient::GetURLLoaderFactory() { ->GetURLLoaderFactoryForBrowserProcess(); } @@ -61,7 +61,7 @@ diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.cc b/chrome/brows diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.h b/chrome/browser/ui/autofill/chrome_autofill_client.h --- a/chrome/browser/ui/autofill/chrome_autofill_client.h +++ b/chrome/browser/ui/autofill/chrome_autofill_client.h -@@ -107,7 +107,6 @@ class ChromeAutofillClient : public ContentAutofillClient, +@@ -106,7 +106,6 @@ class ChromeAutofillClient : public ContentAutofillClient, version_info::Channel GetChannel() const final; bool IsOffTheRecord() const final; scoped_refptr GetURLLoaderFactory() final; @@ -93,18 +93,18 @@ diff --git a/components/android_autofill/browser/android_autofill_client.cc b/co diff --git a/components/android_autofill/browser/android_autofill_client.h b/components/android_autofill/browser/android_autofill_client.h --- a/components/android_autofill/browser/android_autofill_client.h +++ b/components/android_autofill/browser/android_autofill_client.h -@@ -86,7 +86,6 @@ class AndroidAutofillClient : public autofill::ContentAutofillClient { +@@ -87,7 +87,6 @@ class AndroidAutofillClient : public autofill::ContentAutofillClient { const std::string& GetAppLocale() const final; bool IsOffTheRecord() const final; scoped_refptr GetURLLoaderFactory() final; - autofill::AutofillCrowdsourcingManager& GetCrowdsourcingManager() final; autofill::VotesUploader& GetVotesUploader() override; autofill::PersonalDataManager& GetPersonalDataManager() final; - autofill::EntityDataManager* GetEntityDataManager() override; + autofill::ValuablesDataManager* GetValuablesDataManager() override; 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 -@@ -492,33 +492,6 @@ std::optional GetUploadPayloadForApi( +@@ -493,33 +493,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) { -@@ -550,15 +523,7 @@ std::optional GetAPIQueryPayload( +@@ -551,15 +524,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() { -@@ -865,31 +830,13 @@ size_t AutofillCrowdsourcingManager::GetPayloadLength( +@@ -866,31 +831,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 -@@ -403,9 +403,6 @@ void VotesUploader::UploadVote( +@@ -419,9 +419,6 @@ void VotesUploader::UploadVote( client_->GetUkmRecorder(), ukm_source_id, *submitted_form, submission_timestamp); } @@ -233,10 +233,10 @@ diff --git a/components/autofill/core/browser/foundations/autofill_client.h b/co diff --git a/components/autofill/core/browser/foundations/autofill_manager.cc b/components/autofill/core/browser/foundations/autofill_manager.cc --- a/components/autofill/core/browser/foundations/autofill_manager.cc +++ b/components/autofill/core/browser/foundations/autofill_manager.cc -@@ -327,17 +327,6 @@ void AutofillManager::OnFormsParsed(const std::vector& forms) { - driver().SendTypePredictionsToRenderer(queryable_forms); - LogTypePredictionsAvailable(log_manager(), non_queryable_forms); - LogTypePredictionsAvailable(log_manager(), queryable_forms); +@@ -307,17 +307,6 @@ void AutofillManager::OnFormsParsed(const std::vector& forms) { + if (base::FeatureList::IsEnabled(features::test::kShowDomNodeIDs)) { + driver().ExposeDomNodeIDs(); + } - - // Query the server if at least one of the forms was parsed. - if (!queryable_forms.empty()) { @@ -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 -@@ -959,6 +959,8 @@ BASE_FEATURE(kAutofillUploadThrottling, +@@ -981,6 +981,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, -@@ -80,7 +80,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -81,7 +81,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 ceca2aff..5e99fbc0 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 -@@ -792,3 +792,5 @@ if (is_component_build) { +@@ -796,3 +796,5 @@ if (is_component_build) { set_defaults("component") { configs = default_component_configs } @@ -723,7 +723,7 @@ diff --git a/mojo/public/tools/mojom/mojom_parser.py b/mojo/public/tools/mojom/m diff --git a/tools/grit/grit/grd_reader.py b/tools/grit/grit/grd_reader.py --- a/tools/grit/grit/grd_reader.py +++ b/tools/grit/grit/grd_reader.py -@@ -93,11 +93,28 @@ class GrdContentHandler(xml.sax.handler.ContentHandler): +@@ -96,11 +96,28 @@ class GrdContentHandler(xml.sax.handler.ContentHandler): raise exception.FileNotFound(partname) # Exceptions propagate to the handler in grd_reader.Parse(). oldsource = self.source diff --git a/build/patches/disable-AdsBlockedInfoBar.patch b/build/patches/disable-AdsBlockedInfoBar.patch index f3e2b226..5e293ec8 100644 --- a/build/patches/disable-AdsBlockedInfoBar.patch +++ b/build/patches/disable-AdsBlockedInfoBar.patch @@ -10,7 +10,7 @@ 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 -@@ -129,6 +129,7 @@ mojom::ActivationLevel ProfileInteractionManager::OnPageActivationComputed( +@@ -130,6 +130,7 @@ mojom::ActivationLevel ProfileInteractionManager::OnPageActivationComputed( } void ProfileInteractionManager::MaybeShowNotification() { diff --git a/build/patches/disable-WebView-variations-support.patch b/build/patches/disable-WebView-variations-support.patch index 05b1a4c3..48ecf3ad 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 -@@ -400,13 +400,6 @@ public class WebViewChromiumAwInit { +@@ -407,13 +407,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 -@@ -626,10 +626,6 @@ public class WebViewChromiumFactoryProvider implements WebViewFactoryProvider { +@@ -627,10 +627,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 94651c5b..5295749f 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 -@@ -150,12 +150,12 @@ const size_t kMaxHostLength = 4096; +@@ -151,12 +151,12 @@ const size_t kMaxHostLength = 4096; // Time between IPv6 probes, i.e. for how long results of each IPv6 probe are // cached. diff --git a/build/patches/do-not-add-suffix-to-package-name.patch b/build/patches/do-not-add-suffix-to-package-name.patch index a2dd93b2..bba7880a 100644 --- a/build/patches/do-not-add-suffix-to-package-name.patch +++ b/build/patches/do-not-add-suffix-to-package-name.patch @@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/chrome_public_apk_tmpl.gni b/chrome/android/chrome_public_apk_tmpl.gni --- a/chrome/android/chrome_public_apk_tmpl.gni +++ b/chrome/android/chrome_public_apk_tmpl.gni -@@ -29,7 +29,7 @@ declare_args() { +@@ -30,7 +30,7 @@ declare_args() { chrome_public_manifest_package = "org.chromium.chrome" if (use_stable_package_name_for_trichrome) { chrome_public_manifest_package += ".stable" diff --git a/build/patches/do-not-block-build-incompatible-profiles.patch b/build/patches/do-not-block-build-incompatible-profiles.patch index fc30ba05..77fa2165 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 -@@ -2531,7 +2531,7 @@ template("run_mksnapshot") { +@@ -2539,7 +2539,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 315e57d0..1ab1191e 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 -@@ -398,6 +398,10 @@ config("compiler") { +@@ -399,6 +399,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 8e20cde8..c4391c94 100644 --- a/build/patches/eyeo-133.0.6943.49-android_api.patch +++ b/build/patches/eyeo-133.0.6943.49-android_api.patch @@ -6,7 +6,7 @@ Based on Chromium 133.0.6943.49 Pre-requisites: eyeo Browser Ad filtering Solution: Base Module --- - chrome/android/BUILD.gn | 14 + + chrome/android/BUILD.gn | 13 + chrome/android/chrome_java_sources.gni | 4 + .../browser/adblock/TabIdTranslator.java | 36 ++ chrome/browser/BUILD.gn | 4 + @@ -46,7 +46,7 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module .../adblock/TestVerificationUtils.java | 220 +++++++ ...esource_classification_notifier_android.cc | 163 +++++ ...resource_classification_notifier_android.h | 72 +++ - 40 files changed, 5610 insertions(+) + 40 files changed, 5609 insertions(+) create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/adblock/TabIdTranslator.java create mode 100644 chrome/browser/android/adblock/tab_id_translator_jni.cc create mode 100644 components/adblock/android/BUILD.gn @@ -95,17 +95,9 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn +# This source code is a part of eyeo Chromium SDK. +# Use of this source code is governed by the GPLv3 that can be found in the components/adblock/LICENSE file. - import("//build/android/resource_sizes.gni") import("//build/config/android/config.gni") -@@ -288,6 +291,7 @@ if (current_toolchain == default_toolchain) { - if (enable_screen_capture) { - deps += [ "//chrome/browser:screen_capture_java_resources" ] - } -+ - } - - android_resources("java_overlay_resources") { -@@ -533,6 +537,7 @@ if (current_toolchain == default_toolchain) { + import("//build/config/cronet/config.gni") +@@ -546,6 +549,7 @@ if (_is_default_toolchain) { "//chrome/browser/xsurface:java", "//chrome/browser/xsurface_provider:dependency_provider_impl_java", "//chrome/browser/xsurface_provider:java", @@ -113,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", -@@ -1338,6 +1343,7 @@ if (current_toolchain == default_toolchain) { +@@ -1355,6 +1359,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", @@ -121,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", -@@ -1407,6 +1413,7 @@ if (current_toolchain == default_toolchain) { +@@ -1424,6 +1429,7 @@ if (_is_default_toolchain) { "//chrome/test/data/translate/", "//chrome/test/data/webauthn/", "//chrome/test/media_router/resources/", @@ -129,27 +121,27 @@ 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/", -@@ -3202,6 +3209,12 @@ generate_jni("chrome_jni_headers") { - sources += [ "java/src/org/chromium/chrome/browser/media/MediaCapturePickerDialogBridge.java" ] - } +@@ -3222,6 +3228,12 @@ if (_is_default_toolchain) { + sources += [ "java/src/org/chromium/chrome/browser/media/MediaCapturePickerDialogBridge.java" ] + } -+ ### Android API module start -+ sources += -+ [ "java/src/org/chromium/chrome/browser/adblock/TabIdTranslator.java" ] ++ ### Android API module start ++ sources += ++ [ "java/src/org/chromium/chrome/browser/adblock/TabIdTranslator.java" ] + -+ ### Android API module end ++ ### Android API module end + - # 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" ] -@@ -3293,6 +3306,7 @@ group("jni_headers") { - "//chrome/browser/ui/messages/android:jni_headers", - "//chrome/browser/util:jni_headers", - "//chrome/browser/webauthn/android:jni_headers", -+ "//components/adblock/android:jni_headers", - "//components/browser_ui/device_lock/android:device_lock_bridge_jni_headers", - "//components/content_relationship_verification/android:jni_headers", - "//components/image_fetcher:jni_headers", + # 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", + "//chrome/browser/util:jni_headers", + "//chrome/browser/webauthn/android:jni_headers", ++ "//components/adblock/android:jni_headers", + "//components/browser_ui/device_lock/android:device_lock_bridge_jni_headers", + "//components/content_relationship_verification/android:jni_headers", + "//components/image_fetcher:jni_headers", 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 @@ -215,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 -@@ -3282,6 +3282,10 @@ static_library("browser") { +@@ -3292,6 +3292,10 @@ static_library("browser") { "touch_to_fill/password_manager/touch_to_fill_controller_webauthn_delegate.h", ] @@ -275,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 -@@ -1011,6 +1011,12 @@ static_library("ui") { +@@ -1025,6 +1025,12 @@ static_library("ui") { deps += [ "//chrome/browser/search/background:ntp_background_proto", ] diff --git a/build/patches/eyeo-133.0.6943.49-android_settings.patch b/build/patches/eyeo-133.0.6943.49-android_settings.patch index bd9e73fd..c5558953 100644 --- a/build/patches/eyeo-133.0.6943.49-android_settings.patch +++ b/build/patches/eyeo-133.0.6943.49-android_settings.patch @@ -239,10 +239,10 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module and Android API diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -292,6 +292,10 @@ if (current_toolchain == default_toolchain) { +@@ -298,6 +298,10 @@ if (_is_default_toolchain) { + if (enable_screen_capture) { deps += [ "//chrome/browser:screen_capture_java_resources" ] } - + ### Android UI module start + deps += [ "//chrome/browser/adblock/android:java_ui_resources" ] + @@ -250,7 +250,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn } android_resources("java_overlay_resources") { -@@ -779,6 +783,10 @@ if (current_toolchain == default_toolchain) { +@@ -792,6 +796,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 84c030e4..00888673 100644 --- a/build/patches/eyeo-133.0.6943.49-base.patch +++ b/build/patches/eyeo-133.0.6943.49-base.patch @@ -9,7 +9,7 @@ Based on Chromium 133.0.6943.49 README.md | 12 + base/threading/thread_restrictions.h | 9 + base/trace_event/builtin_categories.h | 1 + - components/BUILD.gn | 10 + + components/BUILD.gn | 7 + components/adblock/BUILD.gn | 36 + components/adblock/CHANGELOG.md | 746 +++++++++ components/adblock/LICENSE | 674 ++++++++ @@ -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, 48848 insertions(+), 8 deletions(-) + 361 files changed, 48845 insertions(+), 8 deletions(-) create mode 100644 components/adblock/BUILD.gn create mode 100644 components/adblock/CHANGELOG.md create mode 100644 components/adblock/LICENSE @@ -700,7 +700,7 @@ Based on Chromium 133.0.6943.49 diff --git a/DEPS b/DEPS --- a/DEPS +++ b/DEPS -@@ -277,6 +277,7 @@ vars = { +@@ -286,6 +286,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', -@@ -529,6 +530,11 @@ vars = { +@@ -533,6 +534,11 @@ vars = { # and whatever else without interference from each other. - 'compiler_rt_revision': 'bc2b30185219a2defe3c8a3b45f95a11386a7f6f', + 'compiler_rt_revision': 'd0e4db9fcea15a392aaada986cbe33658afc0454', + # 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': '449310fe2e37834a7e62972d2a690cade2ef596b', -@@ -1500,6 +1506,10 @@ deps = { + 'libcxx_revision': '9d0cba76be7399399d3a499ff3a52c264db3b104', +@@ -1503,6 +1509,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' + '@' + '929dd3e6d02aac1f46653d03b2a644e2873a3bbb', + 'url': Var('chromium_git') + '/website.git' + '@' + 'e157e12d99cfc729a970b474344673c44e2d2c9c', }, 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; -@@ -659,6 +666,8 @@ class BASE_EXPORT ScopedAllowBlocking { +@@ -655,6 +662,8 @@ class BASE_EXPORT ScopedAllowBlocking { friend class ::BrowserStateDirectoryBuilder; #endif @@ -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") -@@ -177,6 +180,7 @@ test("components_unittests") { +@@ -178,6 +181,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", -@@ -907,6 +911,7 @@ test("components_unittests") { +@@ -910,6 +914,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", -@@ -923,6 +928,7 @@ repack("components_tests_pak") { +@@ -926,6 +931,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", -@@ -1024,6 +1030,7 @@ if (use_blink) { +@@ -1027,6 +1033,7 @@ if (use_blink) { deps = [ "//base", "//base/test:test_support", @@ -861,16 +861,6 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn "//components/autofill/content/browser", "//components/autofill/content/browser:browser_tests", "//components/autofill/content/renderer", -@@ -1233,6 +1240,9 @@ if (use_blink) { - - deps = [ - "//base", -+ "//components/adblock/core/classifier:perf_tests", -+ "//components/adblock/core/converter:perf_tests", -+ "//components/adblock/core/subscription:perf_tests", - "//components/attribution_reporting", - "//components/bookmarks/test", - "//components/discardable_memory/common", diff --git a/components/adblock/BUILD.gn b/components/adblock/BUILD.gn new file mode 100644 --- /dev/null @@ -50287,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" -@@ -3476,6 +3480,12 @@ void RenderFrameHostImpl::ExecuteJavaScriptMethod( +@@ -3598,6 +3602,12 @@ void RenderFrameHostImpl::ExecuteJavaScriptMethod( std::move(callback)); } @@ -50452,7 +50442,7 @@ diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn } if (is_mac) { -@@ -312,6 +320,8 @@ static_library("content_shell_lib") { +@@ -317,6 +325,8 @@ static_library("content_shell_lib") { "//base", "//base:base_static", "//cc/base", @@ -50461,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", -@@ -332,6 +342,7 @@ static_library("content_shell_lib") { +@@ -337,6 +347,7 @@ static_library("content_shell_lib") { "//components/prefs", "//components/services/storage/test_api", "//components/url_formatter", @@ -50469,7 +50459,7 @@ diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn "//components/variations", "//components/variations/service", "//components/web_cache/renderer", -@@ -424,6 +435,7 @@ static_library("content_shell_lib") { +@@ -429,6 +440,7 @@ static_library("content_shell_lib") { "//mojo/public/java/system:test_support", "//ui/android", ] @@ -50477,7 +50467,7 @@ diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn } if (shell_use_toolkit_views) { -@@ -515,6 +527,8 @@ repack("pak") { +@@ -520,6 +532,8 @@ repack("pak") { sources = [ "$root_gen_dir/base/tracing/protos/tracing_proto_resources.pak", @@ -50486,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", -@@ -547,6 +561,8 @@ repack("pak") { +@@ -552,6 +566,8 @@ repack("pak") { deps = [ ":resources", "//base/tracing/protos:chrome_track_event_resources", @@ -50892,7 +50882,7 @@ diff --git a/services/network/public/cpp/net_ipc_param_traits.h b/services/netwo #ifndef SERVICES_NETWORK_PUBLIC_CPP_NET_IPC_PARAM_TRAITS_H_ #define SERVICES_NETWORK_PUBLIC_CPP_NET_IPC_PARAM_TRAITS_H_ -@@ -269,6 +273,7 @@ IPC_STRUCT_TRAITS_BEGIN(net::RedirectInfo) +@@ -275,6 +279,7 @@ IPC_STRUCT_TRAITS_BEGIN(net::RedirectInfo) IPC_STRUCT_TRAITS_MEMBER(new_referrer) IPC_STRUCT_TRAITS_MEMBER(insecure_scheme_was_upgraded) IPC_STRUCT_TRAITS_MEMBER(is_signed_exchange_fallback_redirect) @@ -50914,7 +50904,7 @@ diff --git a/third_party/blink/public/mojom/frame/frame.mojom b/third_party/blin module blink.mojom; -@@ -972,6 +976,10 @@ interface LocalFrame { +@@ -971,6 +975,10 @@ interface LocalFrame { // the given point in the view coordinate space. PluginActionAt(gfx.mojom.Point location, blink.mojom.PluginActionType action); @@ -50939,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_ -@@ -143,6 +147,14 @@ class BLINK_EXPORT WebDocument : public WebNode { +@@ -144,6 +148,14 @@ class BLINK_EXPORT WebDocument : public WebNode { WebCssOrigin = WebCssOrigin::kAuthor, BackForwardCacheAware = BackForwardCacheAware::kAllow); @@ -50968,7 +50958,7 @@ diff --git a/third_party/blink/renderer/core/dom/events/event_target.cc b/third_ #include "third_party/blink/renderer/core/dom/events/event_target.h" #include -@@ -881,7 +885,10 @@ bool EventTarget::dispatchEventForBindings(Event* event, +@@ -882,7 +886,10 @@ bool EventTarget::dispatchEventForBindings(Event* event, if (!GetExecutionContext()) return false; @@ -50983,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 -@@ -266,6 +266,56 @@ WebStyleSheetKey WebDocument::InsertStyleSheet( +@@ -270,6 +270,56 @@ WebStyleSheetKey WebDocument::InsertStyleSheet( return injection_key; } @@ -51105,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" -@@ -2419,7 +2423,13 @@ void HTMLElement::setSpellcheck(bool enable) { +@@ -2432,7 +2436,13 @@ void HTMLElement::setSpellcheck(bool enable) { } void HTMLElement::click() { @@ -51784,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 -@@ -1137,6 +1141,14 @@ +@@ -1141,6 +1145,14 @@ "components/user_scripts/browser/resources/browser_resources.grd": { "includes": [7620], }, @@ -51822,10 +51812,10 @@ diff --git a/tools/metrics/histograms/metadata/extensions/enums.xml b/tools/metr -@@ -3202,6 +3206,8 @@ Called by update_extension_permission.py.--> - +@@ -3206,6 +3210,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 96c468c6..82bcb623 100644 --- a/build/patches/eyeo-133.0.6943.49-chrome_integration.patch +++ b/build/patches/eyeo-133.0.6943.49-chrome_integration.patch @@ -50,7 +50,6 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module .../profile_keyed_service_browsertest.cc | 18 + chrome/browser/resources/BUILD.gn | 5 + .../safe_browsing_blocking_page_test.cc | 7 +- - .../sessions/session_restore_browsertest.cc | 8 +- ...subresource_filter_browser_test_harness.cc | 8 +- chrome/browser/ui/BUILD.gn | 4 + chrome/browser/ui/prefs/pref_watcher.cc | 13 + @@ -59,7 +58,7 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module chrome/common/BUILD.gn | 3 + chrome/test/BUILD.gn | 14 + chrome/test/base/in_process_browser_test.cc | 24 +- - 53 files changed, 3309 insertions(+), 7 deletions(-) + 52 files changed, 3302 insertions(+), 6 deletions(-) create mode 100644 chrome/browser/adblock/README.md create mode 100644 chrome/browser/adblock/adblock_chrome_content_browser_client.cc create mode 100644 chrome/browser/adblock/adblock_chrome_content_browser_client.h @@ -142,18 +141,18 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "accessibility/prefers_default_scrollbar_styles_prefs.h", + "adblock/adblock_chrome_content_browser_client.cc", + "adblock/adblock_chrome_content_browser_client.h", - "affiliations/affiliation_service_factory.cc", - "affiliations/affiliation_service_factory.h", "after_startup_task_utils.cc", + "after_startup_task_utils.h", + "app_mode/app_mode_utils.cc", @@ -2050,6 +2055,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", - "//components/back_forward_cache", -@@ -3276,6 +3282,7 @@ static_library("browser") { +@@ -3286,6 +3292,7 @@ static_library("browser") { "touch_to_fill/password_manager/touch_to_fill_controller_webauthn_delegate.h", ] @@ -161,7 +160,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn deps += [ ":delta_file_proto", ":profile_token", -@@ -8359,6 +8366,7 @@ static_library("browser_public_dependencies") { +@@ -8407,6 +8414,7 @@ static_library("browser_public_dependencies") { "//chrome/services/file_util/public/mojom", "//components/account_id", "//components/autofill/content/browser", @@ -3442,7 +3441,7 @@ diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_brows #include "chrome/browser/chrome_browser_main.h" -@@ -76,6 +80,7 @@ +@@ -77,6 +81,7 @@ #include "chrome/grit/branded_strings.h" #include "chrome/grit/generated_resources.h" #include "chrome/installer/util/google_update_settings.h" @@ -3450,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" -@@ -1545,6 +1550,8 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { +@@ -1550,6 +1555,8 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { // called inside PostProfileInit. content::WebUIControllerFactory::RegisterFactory( ChromeWebUIControllerFactory::GetInstance()); @@ -3500,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") -@@ -300,6 +303,7 @@ source_set("extensions") { +@@ -400,6 +403,7 @@ source_set("extensions") { "window_controller_list.h", "window_controller_list_observer.h", ] @@ -3508,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", -@@ -753,6 +757,7 @@ source_set("extensions") { +@@ -759,6 +763,7 @@ source_set("extensions") { ] } @@ -3569,8 +3568,8 @@ diff --git a/chrome/browser/page_load_metrics/observers/ad_metrics/ads_page_load +#include "components/adblock/core/features.h" #include "components/heavy_ad_intervention/heavy_ad_features.h" #include "components/page_load_metrics/browser/ads_page_load_metrics_test_waiter.h" - #include "components/page_load_metrics/browser/observers/ad_metrics/ad_intervention_browser_test_utils.h" -@@ -1501,7 +1506,7 @@ class AdsPageLoadMetricsObserverResourceBrowserTest + #include "components/page_load_metrics/browser/features.h" +@@ -1510,7 +1515,7 @@ class AdsPageLoadMetricsObserverResourceBrowserTest {heavy_ad_intervention::features::kHeavyAdIntervention, {}}, {heavy_ad_intervention::features::kHeavyAdPrivacyMitigations, {{"host-threshold", "3"}}}}, @@ -3649,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" -@@ -236,6 +240,15 @@ +@@ -239,6 +243,15 @@ #include "chrome/browser/webid/federated_identity_permission_context_factory.h" #include "chrome/common/buildflags.h" #include "chrome/common/chrome_features.h" @@ -3665,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" -@@ -883,6 +896,15 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -903,6 +916,15 @@ void ChromeBrowserMainExtraPartsProfiles:: // Makes manual testing possible. FakeSmartCardDeviceServiceFactory::GetInstance(); #endif @@ -3684,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 -@@ -278,6 +278,17 @@ IN_PROC_BROWSER_TEST_F(ProfileKeyedServiceBrowserTest, +@@ -279,6 +279,17 @@ IN_PROC_BROWSER_TEST_F(ProfileKeyedServiceBrowserTest, "PermissionsUpdaterShutdownFactory", "PluginInfoHostImpl", "TurnSyncOnHelperShutdownNotifier", @@ -3702,7 +3701,7 @@ diff --git a/chrome/browser/profiles/profile_keyed_service_browsertest.cc b/chro }; // clang-format on -@@ -845,6 +856,13 @@ IN_PROC_BROWSER_TEST_F(ProfileKeyedServiceGuestBrowserTest, +@@ -856,6 +867,13 @@ IN_PROC_BROWSER_TEST_F(ProfileKeyedServiceGuestBrowserTest, "ZeroSuggestCacheServiceFactory", #endif // !BUILDFLAG(IS_CHROMEOS) @@ -3729,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") -@@ -278,6 +281,7 @@ group("dev_ui_resources") { +@@ -280,6 +283,7 @@ group("dev_ui_resources") { "predictors:resources", "privacy_sandbox/internals:resources", "usb_internals:resources", @@ -3737,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", -@@ -344,6 +348,7 @@ repack("dev_ui_paks") { +@@ -346,6 +350,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", @@ -3776,32 +3775,6 @@ diff --git a/chrome/browser/safe_browsing/safe_browsing_blocking_page_test.cc b/ } SafeBrowsingBlockingPageBrowserTest( -diff --git a/chrome/browser/sessions/session_restore_browsertest.cc b/chrome/browser/sessions/session_restore_browsertest.cc ---- a/chrome/browser/sessions/session_restore_browsertest.cc -+++ b/chrome/browser/sessions/session_restore_browsertest.cc -@@ -1,6 +1,10 @@ - // Copyright 2012 The Chromium Authors - // Use of this source code is governed by a BSD-style license that can be - // found in the LICENSE file. -+// -+// This source code is a part of eyeo Chromium SDK. -+// Use of this source code is governed by the GPLv3 that can be found in the -+// components/adblock/LICENSE file. - - #ifdef UNSAFE_BUFFERS_BUILD - // TODO(crbug.com/40285824): Remove this and convert code to safer constructs. -@@ -4400,8 +4404,10 @@ INSTANTIATE_TEST_SUITE_P( - SessionRestoreStaleSessionCookieDeletionTest, - testing::Bool()); - -+// Disabled as it's flaky, see: https://issues.chromium.org/issues/348923077 -+// See also: https://eyeo.atlassian.net/browse/DPD-2773 - IN_PROC_BROWSER_TEST_P(SessionRestoreStaleSessionCookieDeletionTest, -- CookieStorage) { -+ DISABLED_CookieStorage) { - GURL open_page = https_server()->GetURL("a.test", "/empty.html"); - GURL other_page = https_server()->GetURL("b.test", "/empty.html"); - ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), open_page)); diff --git a/chrome/browser/subresource_filter/subresource_filter_browser_test_harness.cc b/chrome/browser/subresource_filter/subresource_filter_browser_test_harness.cc --- a/chrome/browser/subresource_filter/subresource_filter_browser_test_harness.cc +++ b/chrome/browser/subresource_filter/subresource_filter_browser_test_harness.cc @@ -3847,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") -@@ -434,6 +437,7 @@ static_library("ui") { +@@ -437,6 +440,7 @@ static_library("ui") { "//chrome/services/media_gallery_util/public/mojom", "//components/access_code_cast/common:metrics", "//components/account_id", @@ -3949,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") -@@ -113,6 +116,7 @@ template("chrome_extra_paks") { +@@ -114,6 +117,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", @@ -3957,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", -@@ -148,6 +152,7 @@ template("chrome_extra_paks") { +@@ -149,6 +153,7 @@ template("chrome_extra_paks") { "//chrome/browser/resources:resources", "//chrome/browser/resources/saved_tab_groups_unsupported:resources", "//chrome/common:resources", @@ -3991,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") -@@ -1689,6 +1692,7 @@ if (is_android) { +@@ -1739,6 +1742,7 @@ if (is_android) { "//chrome/test/data/webui:browser_tests", "//chrome/test/data/webui:interactive_ui_tests", "//chrome/test/data/webui:resources", @@ -3999,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", -@@ -2282,6 +2286,7 @@ if (!is_android) { +@@ -2353,6 +2357,7 @@ if (!is_android) { "//chrome/test/media_router/access_code_cast:access_code_cast_integration_base", "//chrome/test/payments:test_support", "//chrome/test/supervised_user:test_support", @@ -4007,7 +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", -@@ -2783,6 +2788,7 @@ if (!is_android) { +@@ -2854,6 +2859,7 @@ if (!is_android) { "//chrome/renderer/resources/extensions/", "//chrome/test/data/cart/", "//components/test/data/ad_tagging/", @@ -4015,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", -@@ -2871,6 +2877,9 @@ if (!is_android) { +@@ -2942,6 +2948,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", @@ -4023,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", - "../browser/autocomplete/autocomplete_browsertest.cc", -@@ -4422,6 +4431,7 @@ if (!is_android) { +@@ -4493,6 +4502,7 @@ if (!is_android) { ] } @@ -4033,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" ] -@@ -5917,6 +5927,7 @@ test("unit_tests") { +@@ -5996,6 +6006,7 @@ test("unit_tests") { sources = [ # All unittests in browser, common, renderer and service. "../browser/about_flags_unittest.cc", @@ -4041,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", -@@ -6589,6 +6600,8 @@ test("unit_tests") { +@@ -6691,6 +6702,8 @@ test("unit_tests") { "//chrome/common/themes:unit_tests", "//chrome/services/file_util:unit_tests", "//components/account_id", @@ -4050,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", -@@ -10409,6 +10422,7 @@ if (!is_android) { +@@ -10516,6 +10529,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 3a5decf2..2896e134 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 -@@ -757,6 +757,17 @@ source_set("extensions") { +@@ -763,6 +763,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") -@@ -134,6 +137,7 @@ function_registration("api_registration") { +@@ -137,6 +140,7 @@ function_registration("api_registration") { # include generated headers from these targets. # TODO(brettw) this should be made unnecessary if possible. "//chrome/common/extensions/api", @@ -2138,7 +2138,7 @@ diff --git a/chrome/browser/extensions/api/api_browser_context_keyed_service_fac #include "chrome/browser/extensions/api/cookies/cookies_api.h" #include "chrome/browser/extensions/api/developer_private/developer_private_api.h" -@@ -15,12 +19,14 @@ +@@ -16,12 +20,14 @@ #include "build/build_config.h" #include "build/chromeos_buildflags.h" #include "chrome/browser/extensions/api/activity_log_private/activity_log_private_api.h" @@ -2153,7 +2153,7 @@ diff --git a/chrome/browser/extensions/api/api_browser_context_keyed_service_fac #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" -@@ -84,6 +90,7 @@ void EnsureApiBrowserContextKeyedServiceFactoriesBuilt() { +@@ -85,6 +91,7 @@ void EnsureApiBrowserContextKeyedServiceFactoriesBuilt() { #if BUILDFLAG(ENABLE_EXTENSIONS) extensions::ActivityLogAPI::GetFactoryInstance(); @@ -3580,9 +3580,9 @@ diff --git a/chrome/browser/extensions/extension_function_registration_test.cc b +// Use of this source code is governed by the GPLv3 that can be found in the +// components/adblock/LICENSE file. + #include "base/containers/contains.h" #include "base/one_shot_event.h" - #include "chrome/browser/extensions/extension_browsertest.h" -@@ -57,6 +61,12 @@ IN_PROC_BROWSER_TEST_F(ExtensionFunctionRegistrationTest, +@@ -58,6 +62,12 @@ IN_PROC_BROWSER_TEST_F(ExtensionFunctionRegistrationTest, base::CompareCase::SENSITIVE)) { continue; } @@ -3609,7 +3609,7 @@ diff --git a/chrome/common/extensions/api/_api_features.json b/chrome/common/ext // This features file defines extension APIs implemented under src/chrome. // See chrome/common/extensions/api/_features.md to understand this file, as -@@ -65,6 +69,16 @@ +@@ -70,6 +74,16 @@ "dependencies": ["permission:experimentalAiData"], "channel": "beta" }, @@ -3626,7 +3626,7 @@ diff --git a/chrome/common/extensions/api/_api_features.json b/chrome/common/ext "app": { "blocklist": [ "2FC374607C2DF285634B67C64A2E356C607091C3", // Quickoffice -@@ -529,6 +543,14 @@ +@@ -534,6 +548,14 @@ "channel": "stable", "contexts": [] }, @@ -3669,7 +3669,7 @@ diff --git a/chrome/common/extensions/api/_permission_features.json b/chrome/com "autofillPrivate": { "channel": "trunk", "extension_types": ["extension", "platform_app"], -@@ -376,6 +387,13 @@ +@@ -381,6 +392,13 @@ "channel": "beta", "command_line_switch": "extension-ai-data-collection" }, @@ -3881,9 +3881,9 @@ diff --git a/chrome/common/extensions/api/api_sources.gni b/chrome/common/extens import("//build/config/features.gni") import("//chrome/common/features.gni") -@@ -90,6 +93,9 @@ if (enable_extensions) { +@@ -91,6 +94,9 @@ if (enable_extensions) { + "webrtc_logging_private.idl", - "webstore_private.json", "windows.json", + + "adblock_private.idl", @@ -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"}, -@@ -87,6 +93,8 @@ constexpr APIPermissionInfo::InitInfo permissions_to_register[] = { +@@ -88,6 +94,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" -@@ -874,6 +878,10 @@ TEST(PermissionsTest, PermissionMessages) { +@@ -879,6 +883,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 -@@ -3815,6 +3815,20 @@ if (!is_android) { +@@ -3894,6 +3894,20 @@ if (!is_android) { ] } @@ -5508,10 +5508,10 @@ diff --git a/extensions/common/mojom/api_permission_id.mojom b/extensions/common module extensions.mojom; -@@ -286,6 +290,8 @@ enum APIPermissionID { - kAILanguageModelOriginTrial = 259, +@@ -287,6 +291,8 @@ enum APIPermissionID { kExperimentalAiData = 260, kOmniboxDirectInput = 261, + kExperimentalActor = 262, + kAdblockPrivate = 999, + kEyeoFilteringPrivate = 1000, diff --git a/build/patches/kill-Auth.patch b/build/patches/kill-Auth.patch index 39d9ea1c..4ecbf6a9 100644 --- a/build/patches/kill-Auth.patch +++ b/build/patches/kill-Auth.patch @@ -4,8 +4,8 @@ Subject: kill Auth License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../signin/SystemAccountManagerDelegate.java | 65 +------------------ - 1 file changed, 3 insertions(+), 62 deletions(-) + .../signin/SystemAccountManagerDelegate.java | 77 +------------------ + 1 file changed, 3 insertions(+), 74 deletions(-) diff --git a/components/signin/public/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java b/components/signin/public/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java --- a/components/signin/public/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java @@ -20,7 +20,7 @@ diff --git a/components/signin/public/android/java/src/org/chromium/components/s import org.chromium.base.ApiCompatibilityUtils; import org.chromium.base.Callback; import org.chromium.base.ContextUtils; -@@ -92,18 +89,6 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { +@@ -94,18 +91,6 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { @Override public Account[] getAccountsSynchronous() throws AccountManagerDelegateException { @@ -39,10 +39,11 @@ diff --git a/components/signin/public/android/java/src/org/chromium/components/s // Don't report any accounts if we don't have permission. // TODO(crbug.com/40942462): Throw an exception if permission was denied. return new Account[] {}; -@@ -115,31 +100,12 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { +@@ -116,43 +101,12 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { + public AccessTokenData getAccessToken(Account account, String authTokenScope) throws AuthException { ThreadUtils.assertOnBackgroundThread(); - assert AccountUtils.GOOGLE_ACCOUNT_TYPE.equals(account.type); +- assert AccountUtils.GOOGLE_ACCOUNT_TYPE.equals(account.type); - try { - return new AccessTokenData( - GoogleAuthUtil.getTokenWithNotification( @@ -51,11 +52,15 @@ diff --git a/components/signin/public/android/java/src/org/chromium/components/s - // This case includes a UserRecoverableNotifiedException, but most clients will have - // their own retry mechanism anyway. - throw new AuthException( -- AuthException.NONTRANSIENT, - "Error while getting token for scope '" + authTokenScope + "'", -- ex); +- ex, +- new GoogleServiceAuthError( +- GoogleServiceAuthErrorState.INVALID_GAIA_CREDENTIALS)); - } catch (IOException ex) { -- throw new AuthException(AuthException.TRANSIENT, ex); +- throw new AuthException( +- "Error while getting token for scope '" + authTokenScope + "'", +- ex, +- new GoogleServiceAuthError(GoogleServiceAuthErrorState.CONNECTION_FAILED)); - } + throw new AuthException(AuthException.NONTRANSIENT, + "Error while getting token for scope '" + authTokenScope + "'"); @@ -66,14 +71,21 @@ diff --git a/components/signin/public/android/java/src/org/chromium/components/s - try { - GoogleAuthUtil.clearToken(ContextUtils.getApplicationContext(), authToken); - } catch (GoogleAuthException ex) { -- throw new AuthException(AuthException.NONTRANSIENT, ex); +- throw new AuthException( +- "Error while invalidating access token", +- ex, +- new GoogleServiceAuthError( +- GoogleServiceAuthErrorState.INVALID_GAIA_CREDENTIALS)); - } catch (IOException ex) { -- throw new AuthException(AuthException.TRANSIENT, ex); +- throw new AuthException( +- "Error while invalidating access token", +- ex, +- new GoogleServiceAuthError(GoogleServiceAuthErrorState.CONNECTION_FAILED)); - } } protected boolean hasFeatures(Account account, String[] features) { -@@ -171,24 +137,6 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { +@@ -184,24 +138,6 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { @SuppressLint("MissingPermission") @Override public void createAddAccountIntent(Callback<@Nullable Intent> callback) { @@ -98,7 +110,7 @@ diff --git a/components/signin/public/android/java/src/org/chromium/components/s } // No permission is needed on 23+ and Chrome always has MANAGE_ACCOUNTS permission on lower APIs -@@ -222,14 +170,7 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { +@@ -235,14 +171,7 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { @Override public @Nullable GaiaId getAccountGaiaId(String accountEmail) { diff --git a/build/patches/kill-Location-fall-back-to-system.patch b/build/patches/kill-Location-fall-back-to-system.patch index f13284e0..36b31f74 100644 --- a/build/patches/kill-Location-fall-back-to-system.patch +++ b/build/patches/kill-Location-fall-back-to-system.patch @@ -48,7 +48,7 @@ diff --git a/services/device/geolocation/android/java/src/org/chromium/device/ge diff --git a/services/device/public/cpp/device_features.cc b/services/device/public/cpp/device_features.cc --- a/services/device/public/cpp/device_features.cc +++ b/services/device/public/cpp/device_features.cc -@@ -71,6 +71,7 @@ BASE_FEATURE(kLocationProviderManager, +@@ -76,6 +76,7 @@ BASE_FEATURE(kLocationProviderManager, "LocationProviderManager", base::FEATURE_DISABLED_BY_DEFAULT); #endif // BUILDFLAG(IS_MAC) @@ -56,7 +56,7 @@ diff --git a/services/device/public/cpp/device_features.cc b/services/device/pub #if BUILDFLAG(IS_CHROMEOS) // Enables crash key logging for USB device open operations on ChromeOS. See -@@ -119,7 +120,7 @@ const base::FeatureParam +@@ -124,7 +125,7 @@ const base::FeatureParam const base::FeatureParam kLocationProviderManagerParam{ &kLocationProviderManager, "LocationProviderManagerMode", diff --git a/build/patches/kill-Vision.patch b/build/patches/kill-Vision.patch index bd059133..de2be22b 100644 --- a/build/patches/kill-Vision.patch +++ b/build/patches/kill-Vision.patch @@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -317,8 +317,6 @@ if (current_toolchain == default_toolchain) { +@@ -324,8 +324,6 @@ if (_is_default_toolchain) { "$google_play_services_package:google_play_services_gcm_java", "$google_play_services_package:google_play_services_iid_java", "$google_play_services_package:google_play_services_tasks_java", @@ -23,7 +23,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn - "$google_play_services_package:google_play_services_vision_java", "//base:content_uri_utils_java", "//base:service_loader_java", - "//base/version_info/android:version_constants_java", + "//base:task_executor_java", diff --git a/services/shape_detection/BUILD.gn b/services/shape_detection/BUILD.gn --- a/services/shape_detection/BUILD.gn +++ b/services/shape_detection/BUILD.gn diff --git a/build/patches/sharing-hub-always-use-visible-URL.patch b/build/patches/sharing-hub-always-use-visible-URL.patch index 2912beb0..457c4b2c 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 -@@ -230,14 +230,8 @@ public class ShareDelegateImpl implements ShareDelegate { +@@ -237,14 +237,8 @@ public class ShareDelegateImpl implements ShareDelegate { @VisibleForTesting static boolean shouldFetchCanonicalUrl(final Tab currentTab) { diff --git a/build/patches/ungoogled-chromium-Disable-Network-Time-Tracker.patch b/build/patches/ungoogled-chromium-Disable-Network-Time-Tracker.patch index 4c362e59..5da54455 100644 --- a/build/patches/ungoogled-chromium-Disable-Network-Time-Tracker.patch +++ b/build/patches/ungoogled-chromium-Disable-Network-Time-Tracker.patch @@ -23,7 +23,7 @@ diff --git a/components/network_time/network_time_tracker.cc b/components/networ namespace { -@@ -282,7 +283,7 @@ void NetworkTimeTracker::UpdateNetworkTime(base::Time network_time, +@@ -279,7 +280,7 @@ void NetworkTimeTracker::UpdateNetworkTime(base::Time network_time, } bool NetworkTimeTracker::AreTimeFetchesEnabled() const { diff --git a/build/patches/ungoogled-chromium-Disable-profile-avatar.patch b/build/patches/ungoogled-chromium-Disable-profile-avatar.patch index d984ccbb..5159a54b 100644 --- a/build/patches/ungoogled-chromium-Disable-profile-avatar.patch +++ b/build/patches/ungoogled-chromium-Disable-profile-avatar.patch @@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -1313,8 +1313,6 @@ static_library("browser") { +@@ -1305,8 +1305,6 @@ static_library("browser") { "profiles/keep_alive/scoped_profile_keep_alive.h", "profiles/off_the_record_profile_impl.cc", "profiles/off_the_record_profile_impl.h", @@ -26,7 +26,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/profiles/profile_attributes_entry.cc b/chrome/browser/profiles/profile_attributes_entry.cc --- a/chrome/browser/profiles/profile_attributes_entry.cc +++ b/chrome/browser/profiles/profile_attributes_entry.cc -@@ -374,12 +374,6 @@ gfx::Image ProfileAttributesEntry::GetAvatarIcon( +@@ -372,12 +372,6 @@ gfx::Image ProfileAttributesEntry::GetAvatarIcon( int size_for_placeholder_avatar, bool use_high_res_file, const PlaceholderAvatarIconParams& icon_params) const { diff --git a/build/patches/ungoogled-chromium-Disable-translate-integration.patch b/build/patches/ungoogled-chromium-Disable-translate-integration.patch index 81a7646b..a55389f6 100644 --- a/build/patches/ungoogled-chromium-Disable-translate-integration.patch +++ b/build/patches/ungoogled-chromium-Disable-translate-integration.patch @@ -81,7 +81,7 @@ diff --git a/chrome/browser/language/android/java/res/xml/languages_preferences. diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/settings/LanguageSettings.java b/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/settings/LanguageSettings.java --- a/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/settings/LanguageSettings.java +++ b/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/settings/LanguageSettings.java -@@ -49,12 +49,6 @@ public class LanguageSettings extends ChromeBaseSettingsFragment +@@ -54,12 +54,6 @@ public class LanguageSettings extends ChromeBaseSettingsFragment static final String APP_LANGUAGE_PREFERENCE_KEY = "app_language_preference"; static final String PREFERRED_LANGUAGES_KEY = "preferred_languages"; static final String CONTENT_LANGUAGES_KEY = "content_languages_preference"; @@ -94,7 +94,7 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse private static final String TAG = "LanguageSettings"; -@@ -102,35 +96,6 @@ public class LanguageSettings extends ChromeBaseSettingsFragment +@@ -107,35 +101,6 @@ public class LanguageSettings extends ChromeBaseSettingsFragment ContentLanguagesPreference mLanguageListPref = (ContentLanguagesPreference) findPreference(PREFERRED_LANGUAGES_KEY); mLanguageListPref.initialize(this, getProfile(), getPrefService()); @@ -130,7 +130,7 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse } /** -@@ -145,8 +110,6 @@ public class LanguageSettings extends ChromeBaseSettingsFragment +@@ -150,8 +115,6 @@ public class LanguageSettings extends ChromeBaseSettingsFragment ContentLanguagesPreference mLanguageListPref = (ContentLanguagesPreference) findPreference(CONTENT_LANGUAGES_KEY); mLanguageListPref.initialize(this, getProfile(), getPrefService()); @@ -139,7 +139,7 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse } /** Setup the App Language section with a title and preference to choose the app language. */ -@@ -177,7 +140,7 @@ public class LanguageSettings extends ChromeBaseSettingsFragment +@@ -182,7 +145,7 @@ public class LanguageSettings extends ChromeBaseSettingsFragment * @param contentLanguagesPreference ContentLanguagesPreference reference to update about state * changes. */ @@ -148,7 +148,7 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse // Setup expandable advanced settings section. PreferenceCategory translationAdvancedSection = (PreferenceCategory) findPreference(TRANSLATION_ADVANCED_SECTION); -@@ -255,7 +218,7 @@ public class LanguageSettings extends ChromeBaseSettingsFragment +@@ -260,7 +223,7 @@ public class LanguageSettings extends ChromeBaseSettingsFragment return getPrefService().isManagedPreference(Pref.OFFER_TRANSLATE_ENABLED); } }); @@ -157,7 +157,7 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse @Override public void onStart() { -@@ -294,12 +257,6 @@ public class LanguageSettings extends ChromeBaseSettingsFragment +@@ -300,12 +263,6 @@ public class LanguageSettings extends ChromeBaseSettingsFragment // Set the default target language to match the new app language. TranslateBridge.setDefaultTargetLanguage(getProfile(), code); } else if (requestCode == REQUEST_CODE_CHANGE_TARGET_LANGUAGE) { @@ -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 -@@ -2104,9 +2104,6 @@ Your Google account may have other forms of browsing history like searches and a +@@ -2109,9 +2109,6 @@ Your Google account may have other forms of browsing history like searches and a Let websites know the languages you speak. They’ll show content in those languages, when possible. diff --git a/build/patches/ungoogled-chromium-no-special-hosts-domains.patch b/build/patches/ungoogled-chromium-no-special-hosts-domains.patch index 0ee71968..9304d145 100644 --- a/build/patches/ungoogled-chromium-no-special-hosts-domains.patch +++ b/build/patches/ungoogled-chromium-no-special-hosts-domains.patch @@ -71,15 +71,15 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/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 -@@ -95,7 +95,6 @@ import org.chromium.chrome.browser.messages.MessageContainerObserver; - import org.chromium.chrome.browser.messages.MessagesResourceMapperInitializer; - import org.chromium.chrome.browser.metrics.UmaSessionStats; +@@ -99,7 +99,6 @@ import org.chromium.chrome.browser.metrics.UmaSessionStats; + import org.chromium.chrome.browser.multiwindow.MultiInstanceManager; + import org.chromium.chrome.browser.multiwindow.MultiWindowUtils; import org.chromium.chrome.browser.omnibox.OmniboxFocusReason; -import org.chromium.chrome.browser.omnibox.geo.GeolocationHeader; 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; -@@ -1154,10 +1153,8 @@ public class RootUiCoordinator +@@ -1161,10 +1160,8 @@ public class RootUiCoordinator String url = TemplateUrlServiceFactory.getForProfile(tab.getProfile()) .getUrlForSearchQuery(query); @@ -93,7 +93,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -908,10 +908,6 @@ static_library("browser") { +@@ -904,10 +904,6 @@ static_library("browser") { "page_info/privacy_policy_insights_service_factory.h", "page_load_metrics/observers/bookmark_bar_page_load_metrics_observer.cc", "page_load_metrics/observers/bookmark_bar_page_load_metrics_observer.h", @@ -104,7 +104,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "page_load_metrics/observers/core/amp_page_load_metrics_observer.cc", "page_load_metrics/observers/core/amp_page_load_metrics_observer.h", "page_load_metrics/observers/core/ukm_page_load_metrics_observer.cc", -@@ -920,10 +916,6 @@ static_library("browser") { +@@ -916,10 +912,6 @@ static_library("browser") { "page_load_metrics/observers/document_write_page_load_metrics_observer.h", "page_load_metrics/observers/foreground_duration_ukm_observer.cc", "page_load_metrics/observers/foreground_duration_ukm_observer.h", @@ -115,7 +115,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "page_load_metrics/observers/histogram_suffixes.cc", "page_load_metrics/observers/histogram_suffixes.h", "page_load_metrics/observers/https_engagement_metrics/https_engagement_page_load_metrics_observer.cc", -@@ -1579,8 +1571,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", @@ -124,7 +124,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "supervised_user/supervised_user_interstitial_tab_closer.cc", "supervised_user/supervised_user_interstitial_tab_closer.h", "supervised_user/supervised_user_metrics_service_factory.cc", -@@ -1769,10 +1759,7 @@ static_library("browser") { +@@ -1764,10 +1754,7 @@ static_library("browser") { "//chrome/browser/content_settings:impl", "//chrome/browser/devtools", "//chrome/browser/favicon", @@ -135,7 +135,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", -@@ -1855,7 +1842,6 @@ static_library("browser") { +@@ -1850,7 +1837,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 +166,7 @@ diff --git a/chrome/browser/android/metrics/uma_session_stats.cc b/chrome/browse diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc --- a/chrome/browser/browser_process_impl.cc +++ b/chrome/browser/browser_process_impl.cc -@@ -1239,7 +1239,6 @@ BrowserProcessImpl::component_updater() { +@@ -1261,7 +1261,6 @@ BrowserProcessImpl::component_updater() { std::make_unique(); std::string brand; @@ -177,7 +177,7 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc --- a/chrome/browser/chrome_browser_main.cc +++ b/chrome/browser/chrome_browser_main.cc -@@ -462,11 +462,6 @@ void ProcessSingletonNotificationCallbackImpl( +@@ -463,11 +463,6 @@ void ProcessSingletonNotificationCallbackImpl( StartupBrowserCreator::ProcessCommandLineAlreadyRunning( command_line, current_directory, startup_profile_path_info); @@ -189,7 +189,7 @@ diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_brows } #endif // BUILDFLAG(ENABLE_PROCESS_SINGLETON) -@@ -1717,11 +1712,6 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { +@@ -1722,11 +1717,6 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { upgrade_util::SaveLastModifiedTimeOfExe(); #endif @@ -204,7 +204,7 @@ diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_brows diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -2990,7 +2990,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( +@@ -3025,7 +3025,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( switches::kForcePNaClSubzero, #endif switches::kForceUIDirection, @@ -212,7 +212,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch switches::kJavaScriptHarmony, switches::kEnableExperimentalWebAssemblyFeatures, embedder_support::kOriginTrialDisabledFeatures, -@@ -5420,9 +5419,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( +@@ -5464,9 +5463,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( &throttles); #endif @@ -222,7 +222,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch MaybeAddThrottle( supervised_user::MaybeCreateClassifyUrlNavigationThrottleFor(handle), -@@ -6041,7 +6037,8 @@ GetClientDataHeader(content::FrameTreeNodeId frame_tree_node_id) { +@@ -6100,7 +6096,8 @@ GetClientDataHeader(content::FrameTreeNodeId frame_tree_node_id) { } #endif @@ -232,7 +232,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch #if BUILDFLAG(IS_ANDROID) const std::string& client_data_header, #endif -@@ -6081,7 +6078,7 @@ std::unique_ptr CreateGoogleURLLoaderThrottle( +@@ -6140,7 +6137,7 @@ std::unique_ptr CreateGoogleURLLoaderThrottle( std::move(bound_session_request_throttled_handler), #endif std::move(dynamic_params)); @@ -241,7 +241,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch std::vector> ChromeContentBrowserClient::CreateURLLoaderThrottles( -@@ -6138,15 +6135,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottles( +@@ -6197,15 +6194,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottles( GetClientDataHeader(frame_tree_node_id); #endif @@ -257,9 +257,9 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch { auto* factory = ProtocolHandlerRegistryFactory::GetForBrowserContext(browser_context); -@@ -6201,20 +6189,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottlesForKeepAlive( - } - #endif +@@ -6249,20 +6237,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottlesForKeepAlive( + Profile* profile = Profile::FromBrowserContext(browser_context); + DCHECK(profile); -#if BUILDFLAG(IS_ANDROID) - auto [client_data_header, unused_is_custom_tab] = @@ -327,21 +327,21 @@ 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 -@@ -313,7 +313,6 @@ source_set("extensions") { +@@ -421,7 +421,6 @@ source_set("extensions") { "//chrome/browser/extensions:cws_item_service_proto", "//chrome/browser/extensions/api:api_registration", "//chrome/browser/favicon", - "//chrome/browser/google", + "//chrome/browser/lifetime:termination_notification", "//chrome/browser/prefetch", "//chrome/browser/prefs", - "//chrome/browser/preloading:prefs", diff --git a/chrome/browser/feedback/BUILD.gn b/chrome/browser/feedback/BUILD.gn --- a/chrome/browser/feedback/BUILD.gn +++ b/chrome/browser/feedback/BUILD.gn -@@ -101,7 +101,6 @@ source_set("feedback_impl") { - "//chrome/browser/crash_upload_list", +@@ -102,7 +102,6 @@ source_set("feedback_impl") { "//chrome/browser/devtools", "//chrome/browser/extensions", + "//chrome/browser/first_party_sets", - "//chrome/browser/google", "//chrome/browser/profiles:profile", "//chrome/browser/sync", @@ -398,7 +398,7 @@ diff --git a/chrome/browser/google/BUILD.gn b/chrome/browser/google/BUILD.gn sources = [ "google_brand.cc", "google_brand.h", -@@ -86,7 +86,7 @@ source_set("unit_tests") { +@@ -89,7 +89,7 @@ source_set("unit_tests") { sources = [ "google_update_settings_unittest.cc" ] deps = [ @@ -454,7 +454,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 -@@ -601,7 +601,7 @@ ChromeMetricsServiceClient::GetNetworkTimeTracker() { +@@ -605,7 +605,7 @@ ChromeMetricsServiceClient::GetNetworkTimeTracker() { } bool ChromeMetricsServiceClient::GetBrand(std::string* brand_code) { @@ -584,7 +584,7 @@ diff --git a/chrome/browser/metrics/metrics_reporting_state.cc b/chrome/browser/ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc --- a/chrome/browser/net/system_network_context_manager.cc +++ b/chrome/browser/net/system_network_context_manager.cc -@@ -851,7 +851,6 @@ void SystemNetworkContextManager::AddSSLConfigToNetworkContextParams( +@@ -849,7 +849,6 @@ void SystemNetworkContextManager::AddSSLConfigToNetworkContextParams( void SystemNetworkContextManager::ConfigureDefaultNetworkContextParams( network::mojom::NetworkContextParams* network_context_params) { variations::UpdateCorsExemptHeaderForVariations(network_context_params); @@ -639,7 +639,7 @@ diff --git a/chrome/browser/page_load_metrics/observers/from_gws_page_load_metri diff --git a/chrome/browser/page_load_metrics/page_load_metrics_initialize.cc b/chrome/browser/page_load_metrics/page_load_metrics_initialize.cc --- a/chrome/browser/page_load_metrics/page_load_metrics_initialize.cc +++ b/chrome/browser/page_load_metrics/page_load_metrics_initialize.cc -@@ -168,14 +168,9 @@ void PageLoadMetricsEmbedder::RegisterObservers( +@@ -169,14 +169,9 @@ void PageLoadMetricsEmbedder::RegisterObservers( tracker->AddObserver(std::make_unique()); tracker->AddObserver(std::make_unique()); tracker->AddObserver(std::make_unique()); @@ -717,7 +717,7 @@ diff --git a/chrome/browser/search_engines/ui_thread_search_terms_data.cc b/chro diff --git a/chrome/browser/signin/android/signin_manager_android.cc b/chrome/browser/signin/android/signin_manager_android.cc --- a/chrome/browser/signin/android/signin_manager_android.cc +++ b/chrome/browser/signin/android/signin_manager_android.cc -@@ -70,6 +70,7 @@ class ProfileDataRemover : public content::BrowsingDataRemover::Observer { +@@ -72,6 +72,7 @@ class ProfileDataRemover : public content::BrowsingDataRemover::Observer { remover_(profile->GetBrowsingDataRemover()) { remover_->AddObserver(this); @@ -725,7 +725,7 @@ diff --git a/chrome/browser/signin/android/signin_manager_android.cc b/chrome/br if (all_data) { chrome_browsing_data_remover::DataType removed_types = chrome_browsing_data_remover::ALL_DATA_TYPES; -@@ -93,10 +94,6 @@ class ProfileDataRemover : public content::BrowsingDataRemover::Observer { +@@ -100,10 +101,6 @@ class ProfileDataRemover : public content::BrowsingDataRemover::Observer { // TODO(msramek): BrowsingDataFilterBuilder was not designed for // large filters. Optimize it. @@ -739,7 +739,7 @@ diff --git a/chrome/browser/signin/android/signin_manager_android.cc b/chrome/br diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -356,7 +356,6 @@ static_library("ui") { +@@ -358,7 +358,6 @@ static_library("ui") { "//chrome/browser/feedback:feedback_impl", "//chrome/browser/file_system_access", "//chrome/browser/fingerprinting_protection", @@ -762,7 +762,7 @@ diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/andr diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java -@@ -33,7 +33,6 @@ import org.chromium.chrome.browser.locale.LocaleManager; +@@ -37,7 +37,6 @@ import org.chromium.chrome.browser.locale.LocaleManager; import org.chromium.chrome.browser.merchant_viewer.MerchantTrustSignalsCoordinator; import org.chromium.chrome.browser.omnibox.LocationBarMediator.OmniboxUma; import org.chromium.chrome.browser.omnibox.LocationBarMediator.SaveOfflineButtonState; @@ -770,7 +770,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.omnibox.status.StatusCoordinator; import org.chromium.chrome.browser.omnibox.status.StatusCoordinator.PageInfoAction; import org.chromium.chrome.browser.omnibox.status.StatusView; -@@ -381,7 +380,6 @@ public class LocationBarCoordinator +@@ -419,7 +418,6 @@ public class LocationBarCoordinator mLocationBarMediator.destroy(); mLocationBarMediator = null; @@ -781,7 +781,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java -@@ -53,7 +53,6 @@ import org.chromium.chrome.browser.lifecycle.PauseResumeWithNativeObserver; +@@ -56,7 +56,6 @@ import org.chromium.chrome.browser.lifecycle.PauseResumeWithNativeObserver; import org.chromium.chrome.browser.locale.LocaleManager; import org.chromium.chrome.browser.omnibox.UrlBar.UrlBarDelegate; import org.chromium.chrome.browser.omnibox.UrlBarCoordinator.SelectionState; @@ -789,7 +789,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.omnibox.status.StatusCoordinator; import org.chromium.chrome.browser.omnibox.styles.OmniboxResourceProvider; import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteCoordinator; -@@ -313,24 +312,6 @@ class LocationBarMediator +@@ -323,24 +322,6 @@ class LocationBarMediator if (!mUrlFocusedWithoutAnimations) handleUrlFocusAnimation(hasFocus); @@ -814,7 +814,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow if (!hasFocus && mLocationBarDataProvider.hasTab()) { setUrl( mLocationBarDataProvider.getCurrentGurl(), -@@ -346,8 +327,6 @@ class LocationBarMediator +@@ -356,8 +337,6 @@ class LocationBarMediator templateUrlService.addObserver(this); if (OmniboxFeatures.sUseFusedLocationProvider.isEnabled() && templateUrlService.isDefaultSearchEngineGoogle()) { @@ -823,7 +823,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow } }); -@@ -580,7 +559,6 @@ class LocationBarMediator +@@ -591,7 +570,6 @@ class LocationBarMediator LoadUrlParams loadUrlParams = new LoadUrlParams(url); try (TimingMetric record = TimingMetric.shortUptime("Android.Omnibox.SetGeolocationHeadersTime")) { @@ -831,7 +831,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow } loadUrlParams.setTransitionType( omniboxLoadUrlParams.transitionType | PageTransition.FROM_ADDRESS_BAR); -@@ -1579,8 +1557,6 @@ class LocationBarMediator +@@ -1603,8 +1581,6 @@ class LocationBarMediator if (OmniboxFeatures.sUseFusedLocationProvider.isEnabled() && mProfileSupplier.hasValue() && mTemplateUrlServiceSupplier.hasValue()) { @@ -840,7 +840,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow } } -@@ -1588,7 +1564,6 @@ class LocationBarMediator +@@ -1612,7 +1588,6 @@ class LocationBarMediator public void onPauseWithNative() { OmniboxFeatures.updateLastExitTimestamp(); if (OmniboxFeatures.sUseFusedLocationProvider.isEnabled()) { @@ -851,7 +851,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 -@@ -483,12 +483,6 @@ content::WebUIDataSource* CreateAndAddNewTabPageUiHtmlSource(Profile* profile) { +@@ -478,12 +478,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. @@ -883,7 +883,7 @@ diff --git a/chrome/browser/upgrade_detector/upgrade_detector_impl.cc b/chrome/b diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn --- a/chrome/common/BUILD.gn +++ b/chrome/common/BUILD.gn -@@ -140,8 +140,6 @@ static_library("common_lib") { +@@ -141,8 +141,6 @@ static_library("common_lib") { "content_restriction.h", "crash_keys.cc", "crash_keys.h", @@ -929,7 +929,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 -@@ -6504,7 +6504,6 @@ test("unit_tests") { +@@ -6597,7 +6597,6 @@ test("unit_tests") { "//chrome/browser/file_system_access:unit_tests", "//chrome/browser/fingerprinting_protection", "//chrome/browser/first_party_sets", @@ -1882,7 +1882,7 @@ diff --git a/net/base/url_util.cc b/net/base/url_util.cc diff --git a/services/network/network_context.cc b/services/network/network_context.cc --- a/services/network/network_context.cc +++ b/services/network/network_context.cc -@@ -3025,7 +3025,7 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( +@@ -3012,7 +3012,7 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( } #endif // BUILDFLAG(IS_CT_SUPPORTED) diff --git a/build/patches/webview-Hard-no-to-persistent-histograms.patch b/build/patches/webview-Hard-no-to-persistent-histograms.patch index 5dd5a19d..c0e7bbd2 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 -@@ -73,13 +73,6 @@ void AwFeatureOverrides::OverrideFeatureWithFieldTrial( +@@ -74,13 +74,6 @@ void AwFeatureOverrides::OverrideFeatureWithFieldTrial( } // namespace internal void AwFieldTrials::OnVariationsSetupComplete() { From d2be0313f08c23ba585305d64fd080141a4da010 Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Fri, 23 May 2025 17:00:40 +0200 Subject: [PATCH 2/8] Patches for v137 (need some work) --- ...dd-Alt-D-hotkey-to-focus-address-bar.patch | 23 +- .../Add-an-always-incognito-mode.patch | 256 ++++++++++-------- .../Add-menu-item-to-bookmark-all-tabs.patch | 49 ++-- .../Add-menu-item-to-view-source.patch | 53 ++-- build/patches/Add-search-engine.patch | 96 ++++--- .../Add-setting-to-clear-data-on-exit.patch | 38 +-- ...d-setting-to-invert-tap-and-long-tap.patch | 74 ++--- ...ow-building-without-enable_reporting.patch | 28 +- ...ow-building-without-supervised-users.patch | 44 ++- .../patches/Chrome-web-store-protection.patch | 126 +++++---- .../Content-settings-infrastructure.patch | 104 +++---- build/patches/Disable-privacy-sandbox.patch | 84 +++--- .../Enable-native-Android-autofill.patch | 88 +++--- ...le-search-engine-settings-desktop-ui.patch | 130 ++++----- ...arily-disable-Tab-Group-Sync-Android.patch | 30 +- 15 files changed, 611 insertions(+), 612 deletions(-) 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 84a7969d..e4eae079 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 @@ -4,19 +4,22 @@ Subject: Add Alt+D hotkey to focus address bar License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../java/src/org/chromium/chrome/browser/KeyboardShortcuts.java | 2 ++ - 1 file changed, 2 insertions(+) + .../src/org/chromium/chrome/browser/KeyboardShortcuts.java | 5 +++++ + 1 file changed, 5 insertions(+) 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 -@@ -628,6 +628,8 @@ public class KeyboardShortcuts { - R.string.keyboard_shortcut_address_bar, - KeyEvent.KEYCODE_L, - KeyEvent.META_CTRL_ON); -+ addShortcut(context, chromeFeatureShortcutGroup, R.string.keyboard_shortcut_address_bar, -+ KeyEvent.KEYCODE_D, KeyEvent.META_ALT_ON); - shortcutGroups.add(chromeFeatureShortcutGroup); +@@ -830,6 +830,11 @@ public class KeyboardShortcuts { + KeyEvent.KEYCODE_B, + (KeyEvent.META_CTRL_ON | KeyEvent.META_SHIFT_ON)); + } ++ addShortcut(context, ++ shortcutGroupsById.get(R.string.keyboard_shortcut_chrome_feature_group_header), ++ R.string.keyboard_shortcut_address_bar, ++ KeyEvent.KEYCODE_D, ++ KeyEvent.META_ALT_ON); + return new ArrayList<>(shortcutGroupsById.values()); + } - KeyboardShortcutGroup webpageShortcutGroup = -- diff --git a/build/patches/Add-an-always-incognito-mode.patch b/build/patches/Add-an-always-incognito-mode.patch index 8cd14b20..f9172ba3 100644 --- a/build/patches/Add-an-always-incognito-mode.patch +++ b/build/patches/Add-an-always-incognito-mode.patch @@ -26,12 +26,12 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../AlwaysIncognitoLinkInterceptor.java | 54 ++++++ .../chrome/browser/ChromeTabbedActivity.java | 28 ++- .../chrome/browser/app/ChromeActivity.java | 4 + - .../AppMenuPropertiesDelegateImpl.java | 28 ++- + .../AppMenuPropertiesDelegateImpl.java | 7 +- .../ChromeContextMenuPopulator.java | 6 +- .../CustomTabActivityLifecycleUmaTracker.java | 39 ----- .../CustomTabAppMenuPropertiesDelegate.java | 4 + .../CustomTabIntentDataProvider.java | 10 ++ - .../browser/download/DownloadUtils.java | 16 +- + .../browser/download/DownloadUtils.java | 13 +- .../history/HistoryContentManager.java | 7 +- .../browser/history/HistoryManager.java | 27 ++- .../chrome/browser/history/HistoryPage.java | 16 ++ @@ -42,6 +42,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../HistoricalTabModelObserver.java | 5 +- .../tab/tab_restore/HistoricalTabSaver.java | 2 +- .../tab_restore/HistoricalTabSaverImpl.java | 17 +- + .../TabbedAppMenuPropertiesDelegate.java | 17 +- .../tabbed_mode/TabbedRootUiCoordinator.java | 4 +- .../browser/tabmodel/ChromeTabCreator.java | 5 +- .../tabmodel/TabModelSelectorImpl.java | 3 + @@ -68,6 +69,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/profiles/profile_selections.h | 7 +- .../browser/ui/android/native_page/BUILD.gn | 2 + .../browser/ui/native_page/NativePage.java | 22 ++- + .../browser/omnibox/LocationBarMediator.java | 12 +- .../strings/android_chrome_strings.grd | 25 +++ .../browser/toolbar/LocationBarModel.java | 5 +- chrome/browser/ui/messages/android/BUILD.gn | 1 + @@ -86,7 +88,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../add-an-always-incognito-mode.inc | 1 + .../add-an-always-incognito-mode.inc | 3 + .../add-an-always-incognito-mode.inc | 1 + - 67 files changed, 796 insertions(+), 112 deletions(-) + 69 files changed, 800 insertions(+), 113 deletions(-) create mode 100644 chrome/android/java/res/xml/incognito_preferences.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java @@ -99,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 -@@ -645,6 +645,7 @@ chrome_java_resources = [ +@@ -648,6 +648,7 @@ chrome_java_resources = [ "java/res/xml/main_preferences_legacy.xml", "java/res/xml/manage_sync_preferences.xml", "java/res/xml/personalize_google_services_preferences.xml", @@ -118,7 +120,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java "java/src/com/google/android/apps/chrome/appwidget/bookmarks/BookmarkThumbnailWidgetProvider.java", "java/src/org/chromium/chrome/browser/ActivityTabProvider.java", "java/src/org/chromium/chrome/browser/ActivityUtils.java", -@@ -880,6 +881,7 @@ chrome_java_sources = [ +@@ -898,6 +899,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/privacy/settings/IncognitoLockSettings.java", "java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl.java", "java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java", @@ -171,7 +173,7 @@ new file mode 100644 diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -91,6 +91,11 @@ found in the LICENSE file. +@@ -90,6 +90,11 @@ found in the LICENSE file. android:key="secure_dns" android:title="@string/settings_secure_dns_title" android:fragment="org.chromium.chrome.browser.privacy.secure_dns.SecureDnsSettings" /> @@ -245,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 -@@ -72,6 +72,10 @@ import org.chromium.base.task.TaskTraits; +@@ -73,6 +73,10 @@ import org.chromium.base.task.TaskTraits; import org.chromium.build.annotations.UsedByReflection; import org.chromium.cc.input.BrowserControlsState; import org.chromium.chrome.R; @@ -256,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; -@@ -705,14 +709,19 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -720,14 +724,19 @@ public class ChromeTabbedActivity extends ChromeActivity { Profile profile = mTabModelSelector.getCurrentModel().getProfile(); // For saving non-incognito tab closures for Recent Tabs. @@ -283,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( -@@ -2733,8 +2742,9 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -2798,8 +2807,9 @@ public class ChromeTabbedActivity extends ChromeActivity { // We determine the model as soon as possible so every systems get initialized coherently. boolean startIncognito = @@ -304,9 +306,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv import org.chromium.chrome.browser.devtools.DevToolsWindowAndroid; +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; import org.chromium.chrome.browser.dom_distiller.DomDistillerUiUtils; + import org.chromium.chrome.browser.dom_distiller.ReaderModeManager; import org.chromium.chrome.browser.download.DownloadManagerService; - import org.chromium.chrome.browser.download.DownloadUtils; -@@ -1977,6 +1978,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -1967,6 +1968,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity throw new IllegalStateException( "Attempting to access TabCreator before initialization"); } @@ -319,58 +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 -@@ -41,6 +41,8 @@ import org.chromium.build.BuildConfig; - import org.chromium.chrome.R; - import org.chromium.chrome.browser.ActivityTabProvider; - import org.chromium.chrome.browser.ai.AiAssistantService; -+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; -+import org.chromium.chrome.browser.profiles.ProfileManager; - import org.chromium.chrome.browser.bookmarks.BookmarkModel; - import org.chromium.chrome.browser.bookmarks.PowerBookmarkUtils; - import org.chromium.chrome.browser.commerce.ShoppingServiceFactory; -@@ -106,6 +108,10 @@ import java.util.ArrayList; +@@ -89,6 +89,8 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; -+import org.chromium.components.prefs.PrefService; -+import org.chromium.components.user_prefs.UserPrefs; -+import org.chromium.chrome.browser.preferences.Pref; ++import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; + /** * Base implementation of {@link AppMenuPropertiesDelegate} that handles hiding and showing menu * items based on activity state. -@@ -617,6 +623,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate - } - - private void prepareCommonMenuItems(Menu menu, @MenuGroup int menuGroup, boolean isIncognito) { -+ boolean always_incognito = AlwaysIncognitoLinkInterceptor.isAlwaysIncognito(); -+ if (always_incognito) { -+ final MenuItem newTabOption = menu.findItem(R.id.new_tab_menu_id); -+ if (newTabOption != null) -+ newTabOption.setVisible(false); -+ } -+ - // 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; -@@ -676,7 +689,15 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate - } - - if (item.getItemId() == R.id.recent_tabs_menu_id) { -- item.setVisible(!isIncognito); -+ if (always_incognito) { -+ PrefService prefService = -+ UserPrefs.get(ProfileManager.getLastUsedRegularProfile()); -+ boolean historyEnabledInIncognito = -+ prefService.getBoolean(Pref.INCOGNITO_TAB_HISTORY_ENABLED); -+ item.setVisible(historyEnabledInIncognito); -+ } -+ else -+ item.setVisible(!isIncognito); - } - if (item.getItemId() == R.id.menu_select_tabs) { - item.setVisible(isMenuSelectTabsVisible); -@@ -884,8 +905,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -494,8 +496,9 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties && !isNativePage && !isFileScheme && !isContentScheme @@ -385,7 +345,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java -@@ -29,6 +29,7 @@ import org.chromium.base.ContextUtils; +@@ -31,6 +31,7 @@ import org.chromium.base.metrics.RecordUserAction; import org.chromium.base.shared_preferences.SharedPreferencesManager; import org.chromium.base.supplier.Supplier; import org.chromium.chrome.R; @@ -393,7 +353,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr import org.chromium.chrome.browser.bookmarks.BookmarkUtils; import org.chromium.chrome.browser.contextmenu.ChromeContextMenuItem.Item; import org.chromium.chrome.browser.contextmenu.ContextMenuCoordinator.ListItemType; -@@ -293,6 +294,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -347,6 +348,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { public List> buildContextMenu() { mShowEphemeralTabNewLabel = null; @@ -403,7 +363,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr List> groupedItems = new ArrayList<>(); if (mParams.isPage() && shouldShowEmptySpaceContextMenu()) { -@@ -350,7 +354,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -417,7 +421,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { } } if (FirstRunStatus.getFirstRunFlowComplete()) { @@ -472,7 +432,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust import org.chromium.chrome.browser.DefaultBrowserInfo; import org.chromium.chrome.browser.app.appmenu.AppMenuPropertiesDelegateImpl; import org.chromium.chrome.browser.app.appmenu.DividerLineMenuItemViewBinder; -@@ -218,6 +219,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat +@@ -224,6 +225,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat openInChromeItemVisible = false; tryAddingReadAloud = false; } @@ -485,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 -@@ -86,6 +86,9 @@ import org.chromium.components.embedder_support.util.UrlConstants; +@@ -93,6 +93,9 @@ import org.chromium.components.embedder_support.util.UrlConstants; import org.chromium.device.mojom.ScreenOrientationLockType; import org.chromium.net.NetId; @@ -531,24 +491,21 @@ 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,16 @@ public class DownloadUtils { - // Offline pages isn't supported in Incognito. This should be checked before calling - // OfflinePageBridge.getForProfile because OfflinePageBridge instance will not be found - // for incognito profile. -- if (tab.isIncognito()) return false; -+ boolean always_incognito = AlwaysIncognitoLinkInterceptor.isAlwaysIncognito(); -+ if (always_incognito) { -+ PrefService prefService = UserPrefs.get(ProfileManager.getLastUsedRegularProfile()); -+ boolean historyEnabledInIncognito = -+ prefService.getBoolean(Pref.INCOGNITO_TAB_HISTORY_ENABLED); -+ if (historyEnabledInIncognito == false) -+ return false; -+ } else { -+ if (tab.isIncognito()) return false; -+ } +@@ -302,7 +307,13 @@ public class DownloadUtils { + public static boolean isAllowedToDownloadPage(Tab tab) { + if (tab == null) return false; - // Check if the page url is supported for saving. Only HTTP and HTTPS pages are allowed. - if (!OfflinePageBridge.canSavePage(tab.getUrl())) return false; +- if (tab.isIncognito() ++ boolean historyEnabledInIncognito = false; ++ if (AlwaysIncognitoLinkInterceptor.isAlwaysIncognito()) { ++ PrefService prefService = UserPrefs.get(ProfileManager.getLastUsedRegularProfile()); ++ historyEnabledInIncognito = ++ prefService.getBoolean(Pref.INCOGNITO_TAB_HISTORY_ENABLED); ++ } ++ if (tab.isIncognito() && !historyEnabledInIncognito + && !ChromeFeatureList.isEnabled( + ChromeFeatureList.ENABLE_SAVE_PACKAGE_FOR_OFF_THE_RECORD)) { + return false; diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java @@ -917,7 +874,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme import org.chromium.components.browser_ui.accessibility.AccessibilitySettings; import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; import org.chromium.components.browser_ui.settings.FragmentSettingsNavigation; -@@ -239,6 +240,9 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl +@@ -244,6 +245,9 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl SigninAndHistorySyncActivityLauncherImpl.get(), new SettingsCustomTabLauncherImpl())); } @@ -1033,10 +990,51 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore void createHistoricalGroup( TabModel model, +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java +@@ -24,6 +24,7 @@ import org.chromium.base.supplier.Supplier; + import org.chromium.build.BuildConfig; + import org.chromium.build.annotations.Nullable; + import org.chromium.chrome.R; ++import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; + 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 + } + + private void prepareCommonMenuItems(Menu menu, @MenuGroup int menuGroup, boolean isIncognito) { ++ boolean always_incognito = AlwaysIncognitoLinkInterceptor.isAlwaysIncognito(); ++ if (always_incognito) { ++ final MenuItem newTabOption = menu.findItem(R.id.new_tab_menu_id); ++ if (newTabOption != null) ++ newTabOption.setVisible(false); ++ } ++ + // 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 + } + + if (item.getItemId() == R.id.recent_tabs_menu_id) { +- item.setVisible(!isIncognito); ++ if (always_incognito) { ++ boolean historyEnabledInIncognito = ++ UserPrefs.get(currentTab.getProfile()).getBoolean(Pref.INCOGNITO_TAB_HISTORY_ENABLED); ++ item.setVisible(historyEnabledInIncognito); ++ } ++ else { ++ item.setVisible(!isIncognito); ++ } + } + if (item.getItemId() == R.id.menu_select_tabs) { + item.setVisible(isMenuSelectTabsVisible); 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 -@@ -201,6 +201,8 @@ import org.chromium.ui.InsetObserver; +@@ -207,6 +207,8 @@ import org.chromium.ui.InsetObserver; import org.chromium.ui.UiUtils; import org.chromium.ui.base.ActivityWindowAndroid; import org.chromium.ui.base.DeviceFormFactor; @@ -1045,7 +1043,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab import org.chromium.ui.base.IntentRequestTracker; import org.chromium.ui.base.LocalizationUtils; import org.chromium.ui.dragdrop.DragDropGlobalState; -@@ -1174,7 +1176,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1182,7 +1184,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { () -> { mTabCreatorManagerSupplier .get() @@ -1068,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 { -@@ -520,7 +524,6 @@ public class ChromeTabCreator extends TabCreator +@@ -523,7 +527,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) { @@ -1085,9 +1083,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabMod import org.chromium.base.supplier.Supplier; +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; import org.chromium.chrome.browser.flags.ActivityType; + import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.ntp.RecentlyClosedBridge; - import org.chromium.chrome.browser.profiles.ProfileProvider; -@@ -121,6 +122,8 @@ public class TabModelSelectorImpl extends TabModelSelectorBase implements TabMod +@@ -119,6 +120,8 @@ public class TabModelSelectorImpl extends TabModelSelectorBase implements TabMod ProfileProvider profileProvider = mProfileProviderSupplier.get(); assert profileProvider != null; @@ -1099,7 +1097,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabMod diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java -@@ -50,6 +50,8 @@ import org.chromium.chrome.browser.tabpersistence.TabStateFileManager; +@@ -51,6 +51,8 @@ import org.chromium.chrome.browser.tabwindow.TabWindowManager; import org.chromium.components.embedder_support.util.UrlUtilities; import org.chromium.content_public.browser.LoadUrlParams; @@ -1108,7 +1106,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPer import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.ByteArrayInputStream; -@@ -833,6 +835,13 @@ public class TabPersistentStore { +@@ -835,6 +837,13 @@ public class TabPersistentStore { } } } @@ -1131,9 +1129,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar import org.chromium.chrome.browser.ActivityTabProvider; +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; import org.chromium.chrome.browser.IntentHandler; - import org.chromium.chrome.browser.app.tabmodel.TabWindowManagerSingleton; + import org.chromium.chrome.browser.app.tabwindow.TabWindowManagerSingleton; import org.chromium.chrome.browser.back_press.BackPressManager; -@@ -754,7 +755,7 @@ public class ToolbarManager +@@ -807,7 +808,7 @@ public class ToolbarManager TraceEvent.end("isOfflinePage"); return ret; } @@ -1257,8 +1255,8 @@ 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 -@@ -376,6 +376,15 @@ ChromeAutocompleteProviderClient::GetProviderStateService() const { - return ProviderStateServiceFactory::GetForProfile(profile_); +@@ -409,6 +409,15 @@ ChromeAutocompleteProviderClient::GetTabGroupSyncService() const { + return tab_groups::TabGroupSyncServiceFactory::GetForProfile(profile_); } +bool ChromeAutocompleteProviderClient::IsAlwaysIncognitoEnabled() const { @@ -1276,9 +1274,9 @@ diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.h b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.h --- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.h +++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.h -@@ -89,6 +89,7 @@ class ChromeAutocompleteProviderClient : public AutocompleteProviderClient { - OnDeviceTailModelService* GetOnDeviceTailModelService() const override; +@@ -96,6 +96,7 @@ class ChromeAutocompleteProviderClient : public AutocompleteProviderClient { ProviderStateService* GetProviderStateService() const override; + tab_groups::TabGroupSyncService* GetTabGroupSyncService() const override; bool IsOffTheRecord() const override; + bool IsAlwaysIncognitoEnabled() const override; bool IsIncognitoProfile() const override; @@ -1344,7 +1342,7 @@ diff --git a/chrome/browser/content_settings/host_content_settings_map_factory.c #include "components/content_settings/core/browser/content_settings_pref_provider.h" #include "components/content_settings/core/browser/host_content_settings_map.h" #include "components/permissions/features.h" -@@ -105,9 +106,25 @@ scoped_refptr +@@ -117,9 +118,25 @@ scoped_refptr GetForProfile(original_profile); bool should_record_metrics = profiles::IsRegularUserProfile(profile); @@ -1371,9 +1369,9 @@ diff --git a/chrome/browser/content_settings/host_content_settings_map_factory.c /*store_last_modified=*/true, profile->ShouldRestoreOldSessionCookies(), should_record_metrics)); -@@ -116,6 +133,9 @@ scoped_refptr - settings_map->RegisterProvider(ProviderType::kWebuiAllowlistProvider, - std::move(allowlist_provider)); +@@ -137,6 +154,9 @@ scoped_refptr + std::move(component_extension_provider)); + #endif // BUILDFLAG(IS_CHROMEOS) + if (always_incognito_enabled) + return settings_map; @@ -1394,7 +1392,7 @@ diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/histo #else #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_finder.h" -@@ -549,6 +552,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) { +@@ -570,6 +573,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) { history::HistoryService* HistoryTabHelper::GetHistoryService() { Profile* profile = Profile::FromBrowserContext(web_contents()->GetBrowserContext()); @@ -1408,7 +1406,7 @@ diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/histo if (profile->IsOffTheRecord()) return nullptr; -@@ -556,6 +566,16 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() { +@@ -577,6 +587,16 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() { profile, ServiceAccessType::IMPLICIT_ACCESS); } @@ -1757,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 -@@ -244,6 +244,7 @@ +@@ -252,6 +252,7 @@ #if BUILDFLAG(IS_ANDROID) #include "chrome/browser/accessibility/accessibility_prefs/android/accessibility_prefs_controller.h" @@ -1765,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" -@@ -2008,6 +2009,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -2033,6 +2034,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, usage_stats::UsageStatsBridge::RegisterProfilePrefs(registry); variations::VariationsService::RegisterProfilePrefs(registry); webapps::InstallPromptPrefs::RegisterProfilePrefs(registry); @@ -1923,10 +1921,42 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/ return NativePageType.RECENT_TABS; } else if (UrlConstants.EXPLORE_HOST.equals(host)) { return NativePageType.EXPLORE; +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 +@@ -89,6 +89,10 @@ import org.chromium.ui.base.WindowAndroid; + import org.chromium.ui.interpolators.Interpolators; + import org.chromium.url.GURL; + ++import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; ++import org.chromium.components.user_prefs.UserPrefs; ++import org.chromium.components.prefs.PrefService; ++ + import java.util.ArrayList; + import java.util.List; + import java.util.function.BooleanSupplier; +@@ -1223,10 +1227,16 @@ class LocationBarMediator + } + Tab tab = mLocationBarDataProvider.getTab(); + if (tab == null) return false; ++ boolean historyEnabledInIncognito = false; ++ if (AlwaysIncognitoLinkInterceptor.isAlwaysIncognito()) { ++ PrefService prefService = UserPrefs.get(ProfileManager.getLastUsedRegularProfile()); ++ historyEnabledInIncognito = ++ prefService.getBoolean(Pref.INCOGNITO_TAB_HISTORY_ENABLED); ++ } + // The save offline button should not be shown on native pages. Currently, trying to + // save an offline page in incognito crashes, so don't show it on incognito either. + return shouldShowPageActionButtons() +- && (!tab.isOffTheRecord() ++ && (!tab.isOffTheRecord() || historyEnabledInIncognito + || ChromeFeatureList.isEnabled( + ChromeFeatureList.ENABLE_SAVE_PACKAGE_FOR_OFF_THE_RECORD)); + } 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 -@@ -6574,6 +6574,31 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -6647,6 +6647,31 @@ To change this setting, BEGIN_LINKdelete the Chrome d Cookies, cache, and other site data @@ -1961,7 +1991,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 -@@ -160,6 +160,7 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro +@@ -163,6 +163,7 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro protected GURL mVisibleGurl = GURL.emptyGURL(); protected String mFormattedFullUrl; protected String mUrlForDisplay; @@ -1969,12 +1999,12 @@ 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 -@@ -183,7 +184,9 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro +@@ -186,7 +187,9 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro Context context, NewTabPageDelegate newTabPageDelegate, - @NonNull UrlFormatter urlFormatter, -- @NonNull OfflineStatus offlineStatus) { -+ @NonNull OfflineStatus offlineStatus, + UrlFormatter urlFormatter, +- OfflineStatus offlineStatus) { ++ OfflineStatus offlineStatus, + boolean isAlwaysIncognito) { + mIsAlwaysIncognito = isAlwaysIncognito; // (uazo) to do, check mContext = context; @@ -2050,7 +2080,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 -@@ -4070,6 +4070,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] = +@@ -4097,6 +4097,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] = "net.out_of_process_system_dns_resolution_enabled"; #endif // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) @@ -2116,7 +2146,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 -@@ -247,6 +247,7 @@ struct ContentSettingEntry { +@@ -268,6 +268,7 @@ struct ContentSettingEntry { HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, bool is_off_the_record, @@ -2124,7 +2154,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map. bool store_last_modified, bool restore_session, bool should_record_metrics) -@@ -256,6 +257,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, +@@ -277,6 +278,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, #endif prefs_(prefs), is_off_the_record_(is_off_the_record), @@ -2132,7 +2162,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()) { -@@ -269,7 +271,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, +@@ -290,7 +292,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, policy_provider->AddObserver(this); auto pref_provider_ptr = std::make_unique( @@ -2164,7 +2194,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 -@@ -51,3 +51,7 @@ base::WeakPtr +@@ -53,3 +53,7 @@ base::WeakPtr AutocompleteProviderClient::GetWeakPtr() { return nullptr; } @@ -2175,7 +2205,7 @@ diff --git a/components/omnibox/browser/autocomplete_provider_client.cc b/compon diff --git a/components/omnibox/browser/autocomplete_provider_client.h b/components/omnibox/browser/autocomplete_provider_client.h --- a/components/omnibox/browser/autocomplete_provider_client.h +++ b/components/omnibox/browser/autocomplete_provider_client.h -@@ -143,6 +143,7 @@ class AutocompleteProviderClient : public OmniboxAction::Client { +@@ -152,6 +152,7 @@ class AutocompleteProviderClient : public OmniboxAction::Client { virtual bool IsOffTheRecord() const = 0; virtual bool IsIncognitoProfile() const = 0; virtual bool IsGuestSession() const = 0; @@ -2186,7 +2216,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 -@@ -394,7 +394,7 @@ bool BaseSearchProvider::CanSendSuggestRequest( +@@ -392,7 +392,7 @@ bool BaseSearchProvider::CanSendSuggestRequest( // Don't make a suggest request if in incognito mode; unless for the Lens // searchboxes. diff --git a/build/patches/Add-menu-item-to-bookmark-all-tabs.patch b/build/patches/Add-menu-item-to-bookmark-all-tabs.patch index 464cf7ed..43569e04 100644 --- a/build/patches/Add-menu-item-to-bookmark-all-tabs.patch +++ b/build/patches/Add-menu-item-to-bookmark-all-tabs.patch @@ -45,7 +45,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re -@@ -204,6 +208,9 @@ found in the LICENSE file. +@@ -207,6 +211,9 @@ found in the LICENSE file. @@ -58,15 +58,15 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -101,6 +101,7 @@ import org.chromium.chrome.browser.bookmarks.BookmarkUtils; - import org.chromium.chrome.browser.bookmarks.bar.BookmarkBarUtils; +@@ -102,6 +102,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; +import org.chromium.chrome.browser.bookmarks.BookmarkModel; import org.chromium.chrome.browser.compositor.layouts.Layout; import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChrome; import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromePhone; -@@ -263,12 +264,17 @@ import org.chromium.chrome.browser.ui.RootUiCoordinator; +@@ -273,6 +274,9 @@ import org.chromium.chrome.browser.ui.RootUiCoordinator; import org.chromium.chrome.browser.ui.appmenu.AppMenuPropertiesDelegate; import org.chromium.chrome.browser.ui.desktop_windowing.AppHeaderUtils; import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeUtils; @@ -75,7 +75,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct +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.undo_tab_close_snackbar.UndoBarController; + import org.chromium.chrome.browser.ui.signin.BottomSheetSigninAndHistorySyncConfig; +@@ -282,6 +286,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; @@ -84,7 +85,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; import org.chromium.components.browser_ui.edge_to_edge.SystemBarColorHelper; import org.chromium.components.browser_ui.edge_to_edge.TabbedSystemBarColorHelper; -@@ -3233,6 +3239,8 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -3316,6 +3322,8 @@ public class ChromeTabbedActivity extends ChromeActivity { getTabModelSelectorSupplier().get(), closeAllTabsRunnable); RecordUserAction.record("MobileMenuCloseAllTabs"); @@ -93,7 +94,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct } else if (id == R.id.close_all_incognito_tabs_menu_id) { // Close only incognito tabs Runnable closeAllTabsRunnable = -@@ -3331,6 +3339,41 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -3418,6 +3426,41 @@ public class ChromeTabbedActivity extends ChromeActivity { getTabModalLifetimeHandler().onOmniboxFocusChanged(hasFocus); } @@ -180,7 +181,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse bookmark_model_->bookmark_bar_node(), bookmark_model_->other_node(), }; -@@ -531,6 +559,9 @@ std::vector BookmarkBridge::GetTopLevelFolderIdsImpl( +@@ -546,6 +574,9 @@ std::vector BookmarkBridge::GetTopLevelFolderIdsImpl( top_level_folders.push_back(other_node); } @@ -189,8 +190,8 @@ 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(ignore_visibility, reading_list_node)) { -@@ -1256,6 +1287,17 @@ void BookmarkBridge::GetBookmarksOfType( + if (IsPermanentFolderVisible( +@@ -1273,6 +1304,17 @@ void BookmarkBridge::GetBookmarksOfType( AddBookmarkNodesToBookmarkIdList(env, j_list, results); } @@ -211,7 +212,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser/bookmarks/android/bookmark_bridge.h --- a/chrome/browser/bookmarks/android/bookmark_bridge.h +++ b/chrome/browser/bookmarks/android/bookmark_bridge.h -@@ -79,6 +79,10 @@ class BookmarkBridge : public ProfileObserver, +@@ -106,6 +106,10 @@ class BookmarkBridge : public ProfileObserver, jboolean AreAccountBookmarkFoldersActive(JNIEnv* env); @@ -222,7 +223,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser base::android::ScopedJavaLocalRef GetMostRecentlyAddedUserBookmarkIdForUrl(JNIEnv* env, const GURL& url); const bookmarks::BookmarkNode* GetMostRecentlyAddedUserBookmarkIdForUrlImpl( -@@ -223,6 +227,10 @@ class BookmarkBridge : public ProfileObserver, +@@ -250,6 +254,10 @@ class BookmarkBridge : public ProfileObserver, const base::android::JavaParamRef& j_list, jint type); @@ -260,7 +261,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows private final ObserverList mObservers = new ObserverList<>(); private final Profile mProfile; -@@ -383,6 +386,16 @@ class BookmarkBridge { +@@ -384,6 +387,16 @@ class BookmarkBridge { return mMobileFolderId; } @@ -277,7 +278,7 @@ 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() { ThreadUtils.assertOnUiThread(); -@@ -894,6 +907,29 @@ class BookmarkBridge { +@@ -895,6 +908,29 @@ class BookmarkBridge { .addToReadingList(mNativeBookmarkBridge, parentId, title, url); } @@ -307,7 +308,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows /** * Helper method to mark an item as read. * -@@ -1111,6 +1147,9 @@ class BookmarkBridge { +@@ -1112,6 +1148,9 @@ class BookmarkBridge { BookmarkId getMostRecentlyAddedUserBookmarkIdForUrl( long nativeBookmarkBridge, @JniType("GURL") GURL url); @@ -317,7 +318,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows BookmarkItem getBookmarkById(long nativeBookmarkBridge, long id, int type); void getTopLevelFolderIds( -@@ -1132,6 +1171,8 @@ class BookmarkBridge { +@@ -1133,6 +1172,8 @@ class BookmarkBridge { BookmarkId getRootFolderId(long nativeBookmarkBridge); @@ -406,7 +407,7 @@ diff --git a/chrome/browser/bookmarks/permanent_folder_ordering_tracker.cc b/chr NOTREACHED(); case bookmarks::BookmarkNode::BOOKMARK_BAR: -@@ -291,6 +292,7 @@ void PermanentFolderOrderingTracker::SetTrackedPermanentNodes() { +@@ -303,6 +304,7 @@ void PermanentFolderOrderingTracker::SetTrackedPermanentNodes() { switch (tracked_type_) { case bookmarks::BookmarkNode::URL: case bookmarks::BookmarkNode::FOLDER: @@ -417,7 +418,7 @@ diff --git a/chrome/browser/bookmarks/permanent_folder_ordering_tracker.cc b/chr diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java --- a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java +++ b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java -@@ -85,7 +85,7 @@ public class DownloadLocationCustomView extends ScrollView +@@ -88,7 +88,7 @@ public class DownloadLocationCustomView extends ScrollView mDirectoryAdapter.update(); } @@ -426,7 +427,7 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse mTitle.setText(title); } -@@ -93,7 +93,7 @@ public class DownloadLocationCustomView extends ScrollView +@@ -96,7 +96,7 @@ public class DownloadLocationCustomView extends ScrollView mSubtitleView.setText(subtitle); } @@ -438,7 +439,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 -@@ -4497,6 +4497,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4525,6 +4525,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d Select tabs @@ -713,7 +714,7 @@ diff --git a/components/bookmarks/browser/bookmark_load_details.h b/components/b diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmarks/browser/bookmark_model.cc --- a/components/bookmarks/browser/bookmark_model.cc +++ b/components/bookmarks/browser/bookmark_model.cc -@@ -835,7 +835,7 @@ bool BookmarkModel::HasBookmarks() const { +@@ -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() && @@ -722,7 +723,7 @@ diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmar } bool BookmarkModel::IsBookmarked(const GURL& url) const { -@@ -1167,6 +1167,7 @@ void BookmarkModel::DoneLoading(std::unique_ptr details) { +@@ -1222,6 +1222,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(); @@ -735,10 +736,10 @@ diff --git a/components/bookmarks/browser/bookmark_model.h b/components/bookmark +++ b/components/bookmarks/browser/bookmark_model.h @@ -150,6 +150,12 @@ class BookmarkModel : public BookmarkUndoProvider, // bookmarks in the account storage). - const BookmarkNode* account_mobile_node() const; + const BookmarkPermanentNode* account_mobile_node() const; + // Returns the 'mobile' node. This is NULL until loaded. -+ const BookmarkNode* tabs_collection_node() const { ++ const BookmarkPermanentNode* tabs_collection_node() const { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + return tabs_collection_node_; + } diff --git a/build/patches/Add-menu-item-to-view-source.patch b/build/patches/Add-menu-item-to-view-source.patch index 2ea47a95..63d6e6d3 100644 --- a/build/patches/Add-menu-item-to-view-source.patch +++ b/build/patches/Add-menu-item-to-view-source.patch @@ -4,19 +4,20 @@ Subject: Add menu item to view source License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../android/java/res/menu/custom_tabs_menu.xml | 3 +++ - chrome/android/java/res/menu/main_menu.xml | 3 +++ - .../chrome/browser/ChromeTabbedActivity.java | 2 ++ - .../chrome/browser/app/ChromeActivity.java | 5 +++++ - .../appmenu/AppMenuPropertiesDelegateImpl.java | 18 ++++++++++++++++++ - .../CustomTabAppMenuPropertiesDelegate.java | 1 + - .../android/strings/android_chrome_strings.grd | 4 ++++ - 7 files changed, 36 insertions(+) + .../android/java/res/menu/custom_tabs_menu.xml | 3 +++ + chrome/android/java/res/menu/main_menu.xml | 3 +++ + .../chrome/browser/ChromeTabbedActivity.java | 2 ++ + .../chrome/browser/app/ChromeActivity.java | 5 +++++ + .../appmenu/AppMenuPropertiesDelegateImpl.java | 17 +++++++++++++++++ + .../CustomTabAppMenuPropertiesDelegate.java | 1 + + .../TabbedAppMenuPropertiesDelegate.java | 2 +- + .../android/strings/android_chrome_strings.grd | 4 ++++ + 8 files changed, 36 insertions(+), 1 deletion(-) 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 -@@ -58,6 +58,9 @@ found in the LICENSE file. +@@ -69,6 +69,9 @@ found in the LICENSE file. @@ -29,7 +30,7 @@ diff --git a/chrome/android/java/res/menu/custom_tabs_menu.xml b/chrome/android/ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml --- a/chrome/android/java/res/menu/main_menu.xml +++ b/chrome/android/java/res/menu/main_menu.xml -@@ -128,6 +128,9 @@ found in the LICENSE file. +@@ -131,6 +131,9 @@ found in the LICENSE file. @@ -42,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 -@@ -3273,6 +3273,8 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -3356,6 +3356,8 @@ public class ChromeTabbedActivity extends ChromeActivity { NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_DOWNLOADS_MANAGER); } RecordUserAction.record("MobileMenuDownloadManager"); @@ -54,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 -@@ -2556,6 +2556,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -2563,6 +2563,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity return doOpenWebApk(currentTab); } @@ -69,16 +70,8 @@ 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 -@@ -595,6 +595,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate - isNativePage, isFileScheme, isContentScheme, isIncognito, url)); - - updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */, isNativePage); -+ updateViewSourceMenuItem(menu, currentTab); - - updateAutoDarkMenuItem(menu, currentTab, isNativePage); - -@@ -1336,6 +1337,23 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate - findInPageMenuRow.setVisible(itemVisible); +@@ -862,6 +862,23 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties + } } + /** @@ -104,7 +97,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java -@@ -304,6 +304,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat +@@ -320,6 +320,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat updateRequestDesktopSiteMenuItem( menu, currentTab, requestDesktopSiteVisible, isNativePage); @@ -112,10 +105,22 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust prepareAddToHomescreenMenuItem(menu, currentTab, addToHomeScreenVisible); } } +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 +@@ -296,7 +296,7 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm + isNativePage, isFileScheme, isContentScheme, isIncognito, url)); + + updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */, isNativePage); +- ++ updateViewSourceMenuItem(menu, currentTab); + updateAutoDarkMenuItem(menu, currentTab, isNativePage); + + // Only display reader mode settings menu option if the current page is in reader mode. 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 -@@ -318,6 +318,10 @@ CHAR_LIMIT guidelines: +@@ -321,6 +321,10 @@ CHAR_LIMIT guidelines: Collaboration diff --git a/build/patches/Add-search-engine.patch b/build/patches/Add-search-engine.patch index c3684987..10b7697d 100644 --- a/build/patches/Add-search-engine.patch +++ b/build/patches/Add-search-engine.patch @@ -15,13 +15,13 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../cromite/cromite_prepopulated_engines.json | 37 ++++++++++++++++++ .../search_engine_choice_utils.cc | 5 +-- .../search_engines/search_engine_type.h | 5 +++ - .../template_url_prepopulate_data.cc | 15 ++++++- - .../template_url_prepopulate_data.h | 7 ---- + .../template_url_prepopulate_data.cc | 21 +++++++++- + .../template_url_prepopulate_data.h | 9 ----- tools/json_to_struct/json_to_struct.gni | 9 +++++ tools/json_to_struct/json_to_struct.py | 26 ++++++++---- tools/json_to_struct/struct_generator.py | 10 +++-- tools/variations/fieldtrial_to_struct.py | 4 +- - 13 files changed, 108 insertions(+), 26 deletions(-) + 13 files changed, 114 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 @@ -67,15 +67,15 @@ diff --git a/components/resources/search_engine_choice_scaled_resources.grdp b/c diff --git a/components/search_engines/BUILD.gn b/components/search_engines/BUILD.gn --- a/components/search_engines/BUILD.gn +++ b/components/search_engines/BUILD.gn -@@ -73,6 +73,7 @@ static_library("search_engines") { +@@ -72,6 +72,7 @@ static_library("search_engines") { + "//third_party/metrics_proto", "//third_party/omnibox_proto", "//third_party/search_engines_data:prepopulated_engines", - "//third_party/search_engines_data:regional_settings", + "cromite:cromite_prepopulated_engines", ] deps = [ -@@ -159,6 +160,7 @@ source_set("search_engine_utils") { +@@ -158,6 +159,7 @@ source_set("search_engine_utils") { ":search_engine_type", "//components/google/core/common", "//third_party/search_engines_data:prepopulated_engines", @@ -83,7 +83,7 @@ diff --git a/components/search_engines/BUILD.gn b/components/search_engines/BUIL ] deps = [ "//url" ] -@@ -242,6 +244,7 @@ source_set("unit_tests") { +@@ -246,6 +248,7 @@ source_set("unit_tests") { "//testing/gmock", "//testing/gtest", "//third_party/search_engines_data:prepopulated_engines", @@ -153,7 +153,7 @@ new file mode 100644 diff --git a/components/search_engines/search_engine_choice/search_engine_choice_utils.cc b/components/search_engines/search_engine_choice/search_engine_choice_utils.cc --- a/components/search_engines/search_engine_choice/search_engine_choice_utils.cc +++ b/components/search_engines/search_engine_choice/search_engine_choice_utils.cc -@@ -183,10 +183,7 @@ void RecordChoiceScreenDefaultSearchProviderType( +@@ -187,10 +187,7 @@ void RecordChoiceScreenDefaultSearchProviderType( } void RecordChoiceScreenSelectedIndex(int selected_engine_index) { @@ -188,49 +188,61 @@ diff --git a/components/search_engines/search_engine_type.h b/components/search_ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/components/search_engines/template_url_prepopulate_data.cc --- a/components/search_engines/template_url_prepopulate_data.cc +++ b/components/search_engines/template_url_prepopulate_data.cc -@@ -30,6 +30,8 @@ +@@ -28,6 +28,8 @@ + #include "components/search_engines/template_url_data_util.h" #include "third_party/search_engines_data/resources/definitions/prepopulated_engines.h" - #include "third_party/search_engines_data/resources/definitions/regional_settings.h" +#include "components/search_engines/cromite/cromite_prepopulated_engines.h" + namespace TemplateURLPrepopulateData { // Helpers -------------------------------------------------------------------- -@@ -85,11 +87,10 @@ GetPrepopulatedEnginesForEeaRegionCountries(CountryId country_id, - generator.seed(profile_seed); - std::shuffle(t_urls.begin(), t_urls.end(), generator); - -- CHECK_LE(t_urls.size(), kMaxEeaPrepopulatedEngines); - return t_urls; +@@ -123,7 +125,7 @@ int GetDataVersion(PrefService* prefs) { + kCurrentDataVersion; } --std::vector> GetPrepopulatedTemplateURLData( -+std::vector> GetPrepopulatedTemplateURLDataChromium( - CountryId country_id, - PrefService& prefs) { - if (regional_capabilities::HasSearchEngineCountryListOverride()) { -@@ -115,6 +116,16 @@ std::vector> GetPrepopulatedTemplateURLData( +-std::vector> GetPrepopulatedEngines( ++std::vector> GetPrepopulatedEnginesChromium( + PrefService& prefs, + std::vector + regional_prepopulated_engines) { +@@ -139,6 +141,17 @@ std::vector> GetPrepopulatedEngines( &PrepopulatedEngineToTemplateURLData); } -+std::vector> GetPrepopulatedTemplateURLData( -+ CountryId country_id, -+ PrefService& prefs) { ++std::vector> GetPrepopulatedEngines( ++ PrefService& prefs, ++ std::vector ++ regional_prepopulated_engines) { + std::vector> t_urls = -+ GetPrepopulatedTemplateURLDataChromium(country_id, prefs); ++ GetPrepopulatedEnginesChromium(prefs, regional_prepopulated_engines); + t_urls.push_back(TemplateURLDataFromPrepopulatedEngine(googleen)); + t_urls.push_back(TemplateURLDataFromPrepopulatedEngine(duckduckgo_light)); + return t_urls; +} + - // These values are persisted to logs. Entries should not be renumbered and - // numeric values should never be reused. - enum class SearchProviderOverrideStatus { + std::unique_ptr GetPrepopulatedEngine( + PrefService& prefs, + std::vector +@@ -160,9 +173,13 @@ std::vector> GetLocalPrepopulatedEngines( + return std::vector>(); + } + +- return base::ToVector( ++ std::vector> t_urls = ++ base::ToVector( + regional_capabilities::GetPrepopulatedEngines(country_id, prefs), + &PrepopulatedEngineToTemplateURLData); ++ t_urls.push_back(TemplateURLDataFromPrepopulatedEngine(googleen)); ++ t_urls.push_back(TemplateURLDataFromPrepopulatedEngine(duckduckgo_light)); ++ return t_urls; + } + + #endif diff --git a/components/search_engines/template_url_prepopulate_data.h b/components/search_engines/template_url_prepopulate_data.h --- a/components/search_engines/template_url_prepopulate_data.h +++ b/components/search_engines/template_url_prepopulate_data.h -@@ -32,13 +32,6 @@ struct PrepopulatedEngine; +@@ -27,15 +27,6 @@ struct PrepopulatedEngine; extern const int kMaxPrepopulatedEngineID; @@ -239,11 +251,13 @@ diff --git a/components/search_engines/template_url_prepopulate_data.h b/compone -// -// Note: If this is increased, please also increase the declared variant count -// for the `Search.ChoiceScreenShowedEngineAt.Index{Index}` histogram. +-// TODO(crbug.com/408932087): Investigate moving it to the file that actually +-// populates these, `//c/regional_capabilities/r*c*_util.cc`. -inline constexpr size_t kMaxEeaPrepopulatedEngines = 8; - // The maximum number of prepopulated search engines that can be returned in // in the rest of the world by `GetPrepopulatedEngines()`. - inline constexpr size_t kMaxRowPrepopulatedEngines = 5; + // TODO(crbug.com/408932087): Investigate deduping it with the constant 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 @@ -273,7 +287,7 @@ diff --git a/tools/json_to_struct/json_to_struct.gni b/tools/json_to_struct/json diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_to_struct.py --- a/tools/json_to_struct/json_to_struct.py +++ b/tools/json_to_struct/json_to_struct.py -@@ -100,7 +100,7 @@ def _GenerateHeaderGuard(h_filename): +@@ -103,7 +103,7 @@ def _GenerateHeaderGuard(h_filename): return re.sub(u'^_*', '', result) + u'_' # Remove leading underscores. @@ -282,7 +296,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. -@@ -136,11 +136,15 @@ def _GenerateH(basepath, fileroot, head, namespace, schema, description): +@@ -139,11 +139,15 @@ def _GenerateH(basepath, fileroot, head, namespace, schema, description): f.write(u'#include "%s"\n' % header) f.write(u'\n') @@ -299,7 +313,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') -@@ -175,7 +179,7 @@ def _GenerateH(basepath, fileroot, head, namespace, schema, description): +@@ -170,7 +174,7 @@ def _GenerateH(basepath, fileroot, head, namespace, schema, description): f.write(u'#endif // %s\n' % header_guard) @@ -308,7 +322,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. -@@ -210,7 +214,7 @@ def _GenerateCC(basepath, fileroot, head, namespace, schema, description): +@@ -205,7 +209,7 @@ def _GenerateCC(basepath, fileroot, head, namespace, schema, description): f.write(element_generator.GenerateElements(schema['type_name'], schema['schema'], description)) @@ -316,8 +330,8 @@ diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_ + if excludetype == False and not aggregation.export_items: f.write('\n} // anonymous namespace \n\n') - if aggregation.kind == AggregationKind.ARRAY: -@@ -315,7 +319,7 @@ def GenerateClass(basepath, + aggregated = GenerateCCAggregation(schema['type_name'], aggregation) +@@ -292,7 +296,7 @@ def GenerateClass(basepath, def GenerateStruct(basepath, output_root, namespace, schema, description, @@ -326,7 +340,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: -@@ -334,8 +338,8 @@ def GenerateStruct(basepath, output_root, namespace, schema, description, +@@ -311,8 +315,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) @@ -337,7 +351,7 @@ diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_ if __name__ == '__main__': parser = optparse.OptionParser( -@@ -350,11 +354,17 @@ if __name__ == '__main__': +@@ -327,11 +331,17 @@ if __name__ == '__main__': parser.add_option('-s', '--schema', help='path to the schema file, ' 'mandatory.') parser.add_option('-o', '--output', help='output filename, ') @@ -355,7 +369,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] -@@ -371,4 +381,4 @@ if __name__ == '__main__': +@@ -348,4 +358,4 @@ if __name__ == '__main__': schema = _Load(opts.schema) description = _Load(description_filename) GenerateStruct(basepath, output_root, opts.namespace, schema, description, @@ -395,7 +409,7 @@ diff --git a/tools/json_to_struct/struct_generator.py b/tools/json_to_struct/str diff --git a/tools/variations/fieldtrial_to_struct.py b/tools/variations/fieldtrial_to_struct.py --- a/tools/variations/fieldtrial_to_struct.py +++ b/tools/variations/fieldtrial_to_struct.py -@@ -232,14 +232,14 @@ def main(arguments): +@@ -235,14 +235,14 @@ def main(arguments): json_to_struct.GenerateStruct( basepath, output_root, opts.namespace, schema, description, os.path.split(description_filename)[1], os.path.split(opts.schema)[1], diff --git a/build/patches/Add-setting-to-clear-data-on-exit.patch b/build/patches/Add-setting-to-clear-data-on-exit.patch index 4edcf91b..d6419c1a 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 -@@ -254,6 +254,7 @@ chrome_java_sources = [ +@@ -260,6 +260,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataCheckBoxPreference.java", "java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFetcher.java", "java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java", @@ -74,7 +74,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -190,6 +190,7 @@ import org.chromium.chrome.browser.profiles.ProfileProvider; +@@ -198,6 +198,7 @@ import org.chromium.chrome.browser.profiles.ProfileProvider; import org.chromium.chrome.browser.quick_delete.QuickDeleteController; import org.chromium.chrome.browser.quick_delete.QuickDeleteDelegateImpl; import org.chromium.chrome.browser.quick_delete.QuickDeleteMetricsDelegate; @@ -82,7 +82,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.chrome.browser.read_later.ReadingListBackPressHandler; import org.chromium.chrome.browser.recent_tabs.CrossDevicePaneFactory; import org.chromium.chrome.browser.reengagement.ReengagementNotificationController; -@@ -1780,7 +1781,11 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -1803,7 +1804,11 @@ public class ChromeTabbedActivity extends ChromeActivity { Intent intent = getIntent(); boolean hadCipherData = @@ -334,7 +334,7 @@ new file mode 100644 diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp --- a/chrome/app/settings_strings.grdp +++ b/chrome/app/settings_strings.grdp -@@ -2228,6 +2228,16 @@ +@@ -2227,6 +2227,16 @@ Delete browsing data @@ -420,7 +420,7 @@ diff --git a/chrome/browser/android/browsing_data/browsing_data_bridge.cc b/chro diff --git a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc b/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc --- a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc +++ b/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc -@@ -311,8 +311,25 @@ void ChromeBrowsingDataLifetimeManager::Shutdown() { +@@ -324,8 +324,25 @@ void ChromeBrowsingDataLifetimeManager::Shutdown() { void ChromeBrowsingDataLifetimeManager::ClearBrowsingDataForOnExitPolicy( bool keep_browser_alive) { @@ -448,7 +448,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager. if (!data_types.empty() && IsConditionSatisfiedForBrowsingDataRemoval(GetSyncTypesForPolicyPref( -@@ -421,6 +438,7 @@ void ChromeBrowsingDataLifetimeManager::StartScheduledBrowsingDataRemoval() { +@@ -434,6 +451,7 @@ void ChromeBrowsingDataLifetimeManager::StartScheduledBrowsingDataRemoval() { bool ChromeBrowsingDataLifetimeManager:: IsConditionSatisfiedForBrowsingDataRemoval( const syncer::UserSelectableTypeSet sync_types) { @@ -515,7 +515,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate. diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chrome/browser/extensions/api/settings_private/prefs_util.cc --- a/chrome/browser/extensions/api/settings_private/prefs_util.cc +++ b/chrome/browser/extensions/api/settings_private/prefs_util.cc -@@ -541,6 +541,23 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { +@@ -543,6 +543,23 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { (*s_allowlist)[browsing_data::prefs::kLastClearBrowsingDataTab] = settings_api::PrefType::kNumber; @@ -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_ || -@@ -2121,7 +2134,7 @@ void ProfileManager::OnBrowserClosed(Browser* browser) { +@@ -2119,7 +2132,7 @@ void ProfileManager::OnBrowserClosed(Browser* browser) { Profile* original_profile = profile->GetOriginalProfile(); // Do nothing if the closed window is not the last window of the same profile. for (Browser* browser_iter : *BrowserList::GetInstance()) { @@ -691,7 +691,7 @@ diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -1590,6 +1590,9 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1581,6 +1581,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 -@@ -1910,6 +1910,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, +@@ -1945,6 +1945,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, {"clearedData", IDS_SETTINGS_CLEARED_DATA}, {"clearBrowsingData", IDS_SETTINGS_CLEAR_BROWSING_DATA}, {"clearBrowsingDataDescription", IDS_SETTINGS_CLEAR_DATA_DESCRIPTION}, @@ -748,7 +748,7 @@ diff --git a/components/browsing_data/content/browsing_data_helper.cc b/componen diff --git a/components/browsing_data/core/BUILD.gn b/components/browsing_data/core/BUILD.gn --- a/components/browsing_data/core/BUILD.gn +++ b/components/browsing_data/core/BUILD.gn -@@ -61,6 +61,10 @@ if (is_android) { +@@ -62,6 +62,10 @@ if (is_android) { visibility = [ ":*" ] sources = [ "browsing_data_utils.h" ] } @@ -759,7 +759,7 @@ diff --git a/components/browsing_data/core/BUILD.gn b/components/browsing_data/c java_cpp_enum("cookie_or_cache_deletion_choice_javagen") { # External code should depend on ":java" instead. visibility = [ ":*" ] -@@ -70,6 +74,7 @@ if (is_android) { +@@ -71,6 +75,7 @@ if (is_android) { android_library("java") { srcjar_deps = [ ":browsing_data_utils_javagen", @@ -826,7 +826,7 @@ diff --git a/components/browsing_data/core/browsing_data_policies_utils.h b/comp diff --git a/components/browsing_data/core/browsing_data_utils.cc b/components/browsing_data/core/browsing_data_utils.cc --- a/components/browsing_data/core/browsing_data_utils.cc +++ b/components/browsing_data/core/browsing_data_utils.cc -@@ -341,6 +341,37 @@ bool GetDeletionPreferenceFromDataType( +@@ -407,6 +407,37 @@ bool GetDeletionPreferenceFromDataType( BrowsingDataType data_type, ClearBrowsingDataTab clear_browsing_data_tab, std::string* out_pref) { @@ -976,7 +976,7 @@ diff --git a/components/search_engines/template_url_service.cc b/components/sear diff --git a/content/browser/btm/btm_service_impl.cc b/content/browser/btm/btm_service_impl.cc --- a/content/browser/btm/btm_service_impl.cc +++ b/content/browser/btm/btm_service_impl.cc -@@ -221,7 +221,7 @@ class StateClearer : public BrowsingDataRemover::Observer { +@@ -210,7 +210,7 @@ class StateClearer : public BrowsingDataRemover::Observer { remove_mask &= ~BrowsingDataRemover::DATA_TYPE_PRIVACY_SANDBOX; remover->RemoveWithFilterAndReply( base::Time::Min(), base::Time::Max(), @@ -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 -@@ -1528,6 +1528,7 @@ void StoragePartitionImpl::Initialize( +@@ -1511,6 +1511,7 @@ void StoragePartitionImpl::Initialize( .AppendASCII("Code Cache"); } DCHECK_GE(settings.size_in_bytes(), 0); @@ -999,7 +999,7 @@ diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage diff --git a/content/public/browser/browsing_data_remover.h b/content/public/browser/browsing_data_remover.h --- a/content/public/browser/browsing_data_remover.h +++ b/content/public/browser/browsing_data_remover.h -@@ -151,14 +151,19 @@ class BrowsingDataRemover { +@@ -151,9 +151,11 @@ class BrowsingDataRemover { static constexpr DataType DATA_TYPE_RELATED_WEBSITE_SETS_PERMISSIONS = 1 << 24; @@ -1010,9 +1010,11 @@ diff --git a/content/public/browser/browsing_data_remover.h b/content/public/bro - static constexpr DataType DATA_TYPE_DEVICE_BOUND_SESSIONS = 1 << 25; + static constexpr DataType DATA_TYPE_DEVICE_BOUND_SESSIONS = 1 << 26; + // Interest group data that should be cleared in response to user action, + // but not Clear-Site-Site data. +@@ -167,6 +169,9 @@ class BrowsingDataRemover { // Embedders can add more datatypes beyond this point. - static constexpr DataType DATA_TYPE_CONTENT_END = - DATA_TYPE_DEVICE_BOUND_SESSIONS; + static constexpr DataType DATA_TYPE_CONTENT_END = DATA_TYPE_PRERENDER_CACHE; + static_assert(DATA_TYPE_CONTENT_END == DATA_TYPE_DEVICE_BOUND_SESSIONS, + "Please check."); 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 4fb409cb..c96e630e 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 @@ -38,15 +38,15 @@ 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/contextmenu/AwContextMenuItemDelegate.java b/android_webview/java/src/org/chromium/android_webview/contextmenu/AwContextMenuItemDelegate.java --- a/android_webview/java/src/org/chromium/android_webview/contextmenu/AwContextMenuItemDelegate.java +++ b/android_webview/java/src/org/chromium/android_webview/contextmenu/AwContextMenuItemDelegate.java -@@ -11,6 +11,7 @@ import android.net.Uri; - import org.chromium.base.IntentUtils; +@@ -12,6 +12,7 @@ import org.chromium.base.IntentUtils; + import org.chromium.build.annotations.NullMarked; import org.chromium.components.embedder_support.contextmenu.ContextMenuItemDelegate; import org.chromium.components.embedder_support.contextmenu.ContextMenuParams; +import org.chromium.content_public.common.Referrer; import org.chromium.content_public.browser.WebContents; import org.chromium.ui.base.Clipboard; import org.chromium.url.GURL; -@@ -52,6 +53,9 @@ public class AwContextMenuItemDelegate implements ContextMenuItemDelegate { +@@ -54,6 +55,9 @@ public class AwContextMenuItemDelegate implements ContextMenuItemDelegate { IntentUtils.safeStartActivity(mActivity, intent); } @@ -59,7 +59,7 @@ diff --git a/android_webview/java/src/org/chromium/android_webview/contextmenu/A diff --git a/chrome/android/java/res/values/ids.xml b/chrome/android/java/res/values/ids.xml --- a/chrome/android/java/res/values/ids.xml +++ b/chrome/android/java/res/values/ids.xml -@@ -99,6 +99,7 @@ found in the LICENSE file. +@@ -104,6 +104,7 @@ found in the LICENSE file. @@ -98,29 +98,29 @@ 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 -@@ -118,8 +118,9 @@ class ChromeContextMenuItem { - int SAVE_PAGE = 35; - int SHARE_PAGE = 36; - int PRINT_PAGE = 37; -+ int FOLLOW_LINK = 38; +@@ -127,8 +127,9 @@ class ChromeContextMenuItem { + int RELOAD = 40; + // Developer Group + int INSPECT_ELEMENT = 41; ++ int FOLLOW_LINK = 42; // ALWAYS UPDATE! -- int NUM_ENTRIES = 38; -+ int NUM_ENTRIES = 39; +- int NUM_ENTRIES = 42; ++ int NUM_ENTRIES = 43; } /** Mapping from {@link Item} to the ID found in the ids.xml. */ -@@ -162,6 +163,7 @@ class ChromeContextMenuItem { - R.id.contextmenu_save_page, // Item.SAVE_PAGE - R.id.contextmenu_share_page, // Item.SHARE_PAGE - R.id.contextmenu_print_page, // Item.PRINT_PAGE +@@ -175,6 +176,7 @@ class ChromeContextMenuItem { + R.id.contextmenu_forward, // Item.FORWARD + R.id.contextmenu_reload, // Item.RELOAD + 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. */ -@@ -204,6 +206,7 @@ class ChromeContextMenuItem { - R.string.contextmenu_save_page, // Item.SAVE_PAGE - R.string.contextmenu_share_page, // Item.SHARE_PAGE - R.string.contextmenu_print_page, // Item.PRINT_PAGE +@@ -221,6 +223,7 @@ class ChromeContextMenuItem { + R.string.contextmenu_forward, // Item.FORWARD + R.string.contextmenu_reload, // Item.RELOAD + R.string.contextmenu_inspect_element, // Item.INSPECT_ELEMENT + R.string.contextmenu_open_in_tab, // Item.OPEN_IN_NEW_CHROME_TAB }; @@ -128,8 +128,8 @@ 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 -@@ -318,6 +318,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { - +@@ -380,6 +380,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { + } if (mParams.isAnchor()) { ModelList linkGroup = new ModelList(); + if (ChromeFeatureList.sShowAlwaysContextMenuOnLinks.isEnabled()) { @@ -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())) { -@@ -734,6 +737,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -817,6 +820,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { getProfile(), false); }); @@ -150,7 +150,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java -@@ -323,6 +323,14 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { +@@ -356,6 +356,14 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { mTab.loadUrl(loadUrlParams); } @@ -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 -@@ -350,6 +350,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -367,6 +367,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kTabGroupEntryPointsAndroid, &kTabGroupParityBottomSheetAndroid, &kToolbarPhoneCleanup, + &blink::features::kShowAlwaysContextMenuOnLinks, &kTabStateFlatBuffer, &kTabStripContextMenuAndroid, - &kTabStripGroupCollapseAndroid, + &kTabStripGroupDragDropAndroid, diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -423,6 +423,8 @@ public abstract class ChromeFeatureList { +@@ -438,6 +438,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 NOTIFICATION_PERMISSION_VARIANT = "NotificationPermissionVariant"; + public static final String NEW_TAB_SEARCH_ENGINE_URL_ANDROID = "NewTabSearchEngineUrlAndroid"; + public static final String NOTIFICATION_ONE_TAP_UNSUBSCRIBE = "NotificationOneTapUnsubscribe"; public static final String NOTIFICATION_PERMISSION_BOTTOM_SHEET = - "NotificationPermissionBottomSheet"; -@@ -805,6 +807,8 @@ public abstract class ChromeFeatureList { +@@ -809,6 +811,8 @@ public abstract class ChromeFeatureList { newCachedFlag(DISABLE_TOOLBAR_SWIPE_UP, false); public static final CachedFlag sMoveTopToolbarToBottom = newCachedFlag(MOVE_TOP_TOOLBAR_TO_BOTTOM, false); @@ -197,7 +197,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final CachedFlag sPaintPreviewDemo = newCachedFlag(PAINT_PREVIEW_DEMO, false); public static final CachedFlag sPostGetMyMemoryStateToBackground = newCachedFlag(POST_GET_MEMORY_PRESSURE_TO_BACKGROUND, true); -@@ -970,6 +974,7 @@ public abstract class ChromeFeatureList { +@@ -978,6 +982,7 @@ public abstract class ChromeFeatureList { sTabWindowManagerReportIndicesMismatch, sTraceBinderIpc, sUseChimeAndroidSdk, @@ -208,7 +208,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -1739,6 +1739,12 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1725,6 +1725,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 -@@ -3313,6 +3319,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -3326,6 +3332,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 -@@ -52,6 +52,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -54,6 +54,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; -@@ -138,6 +141,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -143,6 +146,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 -> { -@@ -219,6 +228,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -224,6 +233,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment } else if (PREF_DISABLE_TOOLBAR_SWIPE_UP.equals(preference.getKey())) { mDisableToolbarSwipeUpDelegate.setValue((Boolean) newValue); mDelegate.requestRestart(getActivity()); @@ -386,7 +386,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third Frame* target_frame = frame->Tree().FindOrCreateFrameForNavigation(frame_request, target).frame; -@@ -633,7 +654,7 @@ Element* HTMLAnchorElementBase::interestTargetElement() { +@@ -633,7 +654,7 @@ Element* HTMLAnchorElementBase::InterestTargetElement() const { html_names::kInteresttargetAttr); } @@ -428,7 +428,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.h b/third_ --- a/third_party/blink/renderer/core/html/html_anchor_element.h +++ b/third_party/blink/renderer/core/html/html_anchor_element.h @@ -112,6 +112,7 @@ class CORE_EXPORT HTMLAnchorElementBase : public HTMLElement, - Element* interestTargetElement() override; + Element* InterestTargetElement() const override; void Trace(Visitor*) const override; + void HandleClick(MouseEvent&, bool do_not_show_context_menu = false); diff --git a/build/patches/Allow-building-without-enable_reporting.patch b/build/patches/Allow-building-without-enable_reporting.patch index cc5b90a5..b18c177a 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 -@@ -1481,6 +1481,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) { +@@ -1482,6 +1482,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( -@@ -1494,6 +1495,7 @@ std::vector ComputeReportingURLs(RenderFrameHostImpl* frame_host) { +@@ -1495,6 +1496,7 @@ std::vector ComputeReportingURLs(RenderFrameHostImpl* frame_host) { }); return urls; } @@ -126,7 +126,7 @@ diff --git a/content/browser/network/reporting_service_proxy.cc b/content/browse diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc -@@ -15823,12 +15823,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport( +@@ -15967,12 +15967,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport( } } } @@ -284,7 +284,7 @@ diff --git a/net/reporting/reporting_header_parser.cc b/net/reporting/reporting_ diff --git a/net/reporting/reporting_service.cc b/net/reporting/reporting_service.cc --- a/net/reporting/reporting_service.cc +++ b/net/reporting/reporting_service.cc -@@ -225,6 +225,12 @@ class ReportingServiceImpl : public ReportingService { +@@ -236,6 +236,12 @@ class ReportingServiceImpl : public ReportingService { int depth, base::TimeTicks queued_ticks, ReportingTargetType target_type) { @@ -300,7 +300,7 @@ diff --git a/net/reporting/reporting_service.cc b/net/reporting/reporting_servic diff --git a/services/network/network_context.h b/services/network/network_context.h --- a/services/network/network_context.h +++ b/services/network/network_context.h -@@ -481,14 +481,14 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -485,14 +485,14 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext const GURL& url, const std::optional& reporting_source, const net::NetworkAnonymizationKey& network_anonymization_key, @@ -332,7 +332,7 @@ diff --git a/services/network/public/cpp/parsed_headers.cc b/services/network/pu diff --git a/services/network/public/mojom/BUILD.gn b/services/network/public/mojom/BUILD.gn --- a/services/network/public/mojom/BUILD.gn +++ b/services/network/public/mojom/BUILD.gn -@@ -1761,7 +1761,6 @@ mojom("mojom") { +@@ -1791,7 +1791,6 @@ mojom("mojom") { export_define_blink = "BLINK_PLATFORM_IMPLEMENTATION=1" export_header_blink = "third_party/blink/public/platform/web_common.h" if (enable_reporting) { @@ -343,7 +343,7 @@ diff --git a/services/network/public/mojom/BUILD.gn b/services/network/public/mo diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom --- a/services/network/public/mojom/network_context.mojom +++ b/services/network/public/mojom/network_context.mojom -@@ -1227,6 +1227,7 @@ interface NetworkContext { +@@ -1230,6 +1230,7 @@ interface NetworkContext { // provided `network_anonymization_key`. // // Spec: https://w3c.github.io/reporting/#concept-reports @@ -351,7 +351,7 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw QueueReport(string type, string group, url.mojom.Url url, -@@ -1234,6 +1235,7 @@ interface NetworkContext { +@@ -1237,6 +1238,7 @@ interface NetworkContext { NetworkAnonymizationKey network_anonymization_key, mojo_base.mojom.DictionaryValue body); @@ -359,7 +359,7 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw QueueEnterpriseReport(string type, string group, url.mojom.Url url, -@@ -1244,6 +1246,7 @@ interface NetworkContext { +@@ -1247,6 +1249,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`. @@ -377,8 +377,8 @@ diff --git a/third_party/blink/renderer/core/frame/csp/content_security_policy.c +#include "net/net_buildflags.h" #include "base/containers/contains.h" #include "base/debug/dump_without_crashing.h" - #include "services/network/public/cpp/web_sandbox_flags.h" -@@ -1345,6 +1346,7 @@ void ContentSecurityPolicy::ReportViolation( + #include "base/feature_list.h" +@@ -1303,6 +1304,7 @@ void ContentSecurityPolicy::ReportViolation( return; } @@ -386,7 +386,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); -@@ -1352,6 +1354,7 @@ void ContentSecurityPolicy::ReportViolation( +@@ -1310,6 +1312,7 @@ void ContentSecurityPolicy::ReportViolation( // `context_frame` (i.e. we're not processing 'frame-ancestors'). if (delegate_ && !context_frame) delegate_->DispatchViolationEvent(*violation_data, element); @@ -405,7 +405,7 @@ diff --git a/third_party/blink/renderer/core/frame/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" -@@ -2761,9 +2762,11 @@ DocumentResourceCoordinator* LocalFrame::GetDocumentResourceCoordinator() { +@@ -2772,9 +2773,11 @@ DocumentResourceCoordinator* LocalFrame::GetDocumentResourceCoordinator() { return CHECK_DEREF(GetDocument()).GetResourceCoordinator(); } @@ -428,7 +428,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/b #include "mojo/public/cpp/bindings/pending_associated_receiver.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "services/metrics/public/cpp/ukm_source_id.h" -@@ -659,7 +660,9 @@ class CORE_EXPORT LocalFrame final +@@ -662,7 +663,9 @@ class CORE_EXPORT LocalFrame final return client_hints_preferences_; } diff --git a/build/patches/Allow-building-without-supervised-users.patch b/build/patches/Allow-building-without-supervised-users.patch index 49f350dc..5a9e4ce1 100644 --- a/build/patches/Allow-building-without-supervised-users.patch +++ b/build/patches/Allow-building-without-supervised-users.patch @@ -16,14 +16,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../core/browser/supervised_user_pref_store.cc | 1 + .../core/browser/supervised_user_preferences.cc | 6 +++++- .../core/browser/supervised_user_service.cc | 5 +---- - .../supervised_user/core/browser/supervised_user_utils.cc | 1 + components/supervised_user/core/common/features.cc | 5 ++++- - 14 files changed, 15 insertions(+), 31 deletions(-) + 13 files changed, 14 insertions(+), 31 deletions(-) diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -789,7 +789,6 @@ if (current_toolchain == default_toolchain) { +@@ -803,7 +803,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", @@ -76,7 +75,7 @@ diff --git a/chrome/browser/prefs/chrome_pref_service_factory.cc b/chrome/browse diff --git a/chrome/browser/profiles/profile_attributes_entry.cc b/chrome/browser/profiles/profile_attributes_entry.cc --- a/chrome/browser/profiles/profile_attributes_entry.cc +++ b/chrome/browser/profiles/profile_attributes_entry.cc -@@ -469,7 +469,7 @@ bool ProfileAttributesEntry::IsSigninRequired() const { +@@ -467,7 +467,7 @@ bool ProfileAttributesEntry::IsSigninRequired() const { } std::string ProfileAttributesEntry::GetSupervisedUserId() const { @@ -121,7 +120,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); -@@ -1977,9 +1973,6 @@ void ProfileManager::AddProfileToStorage(Profile* profile) { +@@ -1975,9 +1971,6 @@ void ProfileManager::AddProfileToStorage(Profile* profile) { init_params.icon_index = profile->GetPrefs()->GetInteger(prefs::kProfileAvatarIndex); @@ -196,7 +195,7 @@ diff --git a/components/supervised_user/core/browser/supervised_user_preferences diff --git a/components/supervised_user/core/browser/supervised_user_service.cc b/components/supervised_user/core/browser/supervised_user_service.cc --- a/components/supervised_user/core/browser/supervised_user_service.cc +++ b/components/supervised_user/core/browser/supervised_user_service.cc -@@ -91,10 +91,6 @@ void SupervisedUserService::Init() { +@@ -92,10 +92,6 @@ void SupervisedUserService::Init() { DCHECK(settings_service_->IsReady()); pref_change_registrar_.Init(&user_prefs_.get()); @@ -204,10 +203,10 @@ diff --git a/components/supervised_user/core/browser/supervised_user_service.cc - prefs::kSupervisedUserId, - base::BindRepeating(&SupervisedUserService::OnSupervisedUserIdChanged, - base::Unretained(this))); - SetActive(supervised_user::IsSubjectToParentalControls(user_prefs_.get())); - } - -@@ -161,6 +157,7 @@ SupervisedUserService::SupervisedUserService( + pref_change_registrar_.Add( + policy::policy_prefs::kIncognitoModeAvailability, + base::BindRepeating( +@@ -183,6 +179,7 @@ void SupervisedUserService::SetSettingsServiceActive(bool active) { } void SupervisedUserService::SetActive(bool active) { @@ -215,29 +214,18 @@ diff --git a/components/supervised_user/core/browser/supervised_user_service.cc if (active_ == active) { return; } -diff --git a/components/supervised_user/core/browser/supervised_user_utils.cc b/components/supervised_user/core/browser/supervised_user_utils.cc ---- a/components/supervised_user/core/browser/supervised_user_utils.cc -+++ b/components/supervised_user/core/browser/supervised_user_utils.cc -@@ -314,6 +314,7 @@ GURL NormalizeUrl(const GURL& url) { - } - - bool AreWebFilterPrefsDefault(const PrefService& pref_service) { -+ if ((true)) return true; - return pref_service - .FindPreference(prefs::kDefaultSupervisedUserFilteringBehavior) - ->IsDefaultValue() || 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 -@@ -102,7 +102,6 @@ BASE_FEATURE(kEnableExtensionsPermissionsForSupervisedUsersOnDesktop, - "EnableExtensionsPermissionsForSupervisedUsersOnDesktop", - base::FEATURE_ENABLED_BY_DEFAULT); +@@ -35,7 +35,6 @@ BASE_FEATURE(kAllowSubframeLocalWebApprovals, + #else + base::FEATURE_DISABLED_BY_DEFAULT); #endif - - #if BUILDFLAG(ENABLE_EXTENSIONS) - BASE_FEATURE(kExposedParentalControlNeededForExtensionInstallation, - "ExposedParentalControlNeededForExtensionInstallation", -@@ -191,4 +190,8 @@ BASE_FEATURE(kWaitUntilAccessTokenAvailableForClassifyUrl, + #if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ + BUILDFLAG(IS_WIN) + const int kLocalWebApprovalBottomSheetLoadTimeoutDefaultValueMs = 5000; +@@ -141,4 +140,8 @@ BASE_FEATURE(kWaitUntilAccessTokenAvailableForClassifyUrl, #endif ); diff --git a/build/patches/Chrome-web-store-protection.patch b/build/patches/Chrome-web-store-protection.patch index a572be7d..acd7f2a6 100644 --- a/build/patches/Chrome-web-store-protection.patch +++ b/build/patches/Chrome-web-store-protection.patch @@ -16,8 +16,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html chrome/app/extensions_strings.grdp | 6 ++ .../developer_private_api.cc | 28 +++++++++ .../developer_private/developer_private_api.h | 3 + - .../developer_private_functions_desktop.cc | 1 + - .../developer_private_functions_shared.cc | 7 ++- + .../developer_private_functions_shared.cc | 8 ++- .../profile_info_generator.cc | 3 + .../webstore_private/webstore_private_api.cc | 15 ++++- .../extensions/chrome_extension_system.cc | 1 + @@ -50,7 +49,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html extensions/common/extension_features.cc | 14 +++++ extensions/common/extension_features.h | 2 + .../definitions/developer_private.d.ts | 2 + - 37 files changed, 252 insertions(+), 108 deletions(-) + 36 files changed, 252 insertions(+), 108 deletions(-) create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Webstore-protection.inc diff --git a/chrome/app/extensions_strings.grdp b/chrome/app/extensions_strings.grdp @@ -72,9 +71,9 @@ diff --git a/chrome/app/extensions_strings.grdp b/chrome/app/extensions_strings. diff --git a/chrome/browser/extensions/api/developer_private/developer_private_api.cc b/chrome/browser/extensions/api/developer_private/developer_private_api.cc --- a/chrome/browser/extensions/api/developer_private/developer_private_api.cc +++ b/chrome/browser/extensions/api/developer_private/developer_private_api.cc -@@ -21,6 +21,12 @@ - #include "extensions/browser/permissions_manager.h" - #endif // !BUILDFLAG(IS_ANDROID) +@@ -24,6 +24,12 @@ + #include "extensions/browser/app_window/app_window_registry.h" + #endif // BUILDFLAG(ENABLE_EXTENSIONS) +#include "chrome/browser/about_flags.h" +#include "chrome/browser/browser_process.h" @@ -85,7 +84,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_a namespace extensions { namespace developer = api::developer_private; -@@ -62,6 +68,28 @@ DeveloperPrivateAPI::GetFactoryInstance() { +@@ -65,6 +71,28 @@ DeveloperPrivateAPI::GetFactoryInstance() { return g_developer_private_api_factory.Pointer(); } @@ -127,10 +126,10 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_a // Convenience method to get the DeveloperPrivateAPI for a profile. static DeveloperPrivateAPI* Get(content::BrowserContext* context); -diff --git a/chrome/browser/extensions/api/developer_private/developer_private_functions_desktop.cc b/chrome/browser/extensions/api/developer_private/developer_private_functions_desktop.cc ---- a/chrome/browser/extensions/api/developer_private/developer_private_functions_desktop.cc -+++ b/chrome/browser/extensions/api/developer_private/developer_private_functions_desktop.cc -@@ -210,6 +210,7 @@ ExtensionFunction::ResponseAction DeveloperPrivateAutoUpdateFunction::Run() { +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() { ExtensionUpdater::CheckParams params; params.fetch_priority = DownloadFetchPriority::kForeground; params.install_immediately = true; @@ -138,10 +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)); -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 -@@ -360,7 +360,7 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() { +@@ -438,7 +439,7 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() { const developer::ProfileConfigurationUpdate& update = params->update; @@ -150,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)) { -@@ -377,6 +377,11 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() { +@@ -455,6 +456,11 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() { } #endif // !BUILDFLAG(IS_ANDROID) @@ -165,17 +161,17 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_f diff --git a/chrome/browser/extensions/api/developer_private/profile_info_generator.cc b/chrome/browser/extensions/api/developer_private/profile_info_generator.cc --- a/chrome/browser/extensions/api/developer_private/profile_info_generator.cc +++ b/chrome/browser/extensions/api/developer_private/profile_info_generator.cc -@@ -7,6 +7,7 @@ - #include "build/build_config.h" +@@ -9,6 +9,7 @@ #include "chrome/browser/prefs/incognito_mode_prefs.h" #include "chrome/browser/profiles/profile.h" + #include "chrome/browser/supervised_user/supervised_user_browser_utils.h" +#include "chrome/browser/extensions/api/developer_private/developer_private_api.h" #include "chrome/common/pref_names.h" #include "components/policy/core/common/policy_pref_names.h" #include "components/prefs/pref_service.h" -@@ -46,6 +47,8 @@ developer::ProfileInfo CreateProfileInfo(Profile* profile) { +@@ -44,6 +45,8 @@ developer::ProfileInfo CreateProfileInfo(Profile* profile) { ->DidUserAcknowledgeNoticeGlobally(); - #endif // !BUILDFLAG(IS_ANDROID) + #endif // BUILDFLAG(ENABLE_EXTENSIONS) + info.is_extension_autoupdate_enabled = + DeveloperPrivateAPI::IsExtensionAutoupdateEnabled(); @@ -185,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 -@@ -66,6 +66,7 @@ +@@ -61,6 +61,7 @@ #include "extensions/browser/extension_util.h" #include "extensions/browser/extensions_browser_client.h" #include "extensions/common/extension.h" @@ -193,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" -@@ -222,6 +223,8 @@ WebstorePrivateApi::Delegate* test_delegate = nullptr; +@@ -224,6 +225,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) { @@ -202,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); } -@@ -229,11 +232,15 @@ std::string GetWebstoreLogin(Profile* profile) { +@@ -231,11 +234,15 @@ std::string GetWebstoreLogin(Profile* profile) { } void SetWebstoreLogin(Profile* profile, const std::string& login) { @@ -218,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; -@@ -1156,7 +1163,8 @@ ExtensionFunction::ResponseAction +@@ -1160,7 +1167,8 @@ ExtensionFunction::ResponseAction WebstorePrivateIsInIncognitoModeFunction::Run() { Profile* profile = Profile::FromBrowserContext(browser_context()); return RespondNow(ArgumentList(IsInIncognitoMode::Results::Create( @@ -228,7 +224,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api } WebstorePrivateIsPendingCustodianApprovalFunction:: -@@ -1252,11 +1260,14 @@ WebstorePrivateGetReferrerChainFunction::Run() { +@@ -1256,11 +1264,14 @@ WebstorePrivateGetReferrerChainFunction::Run() { request.mutable_referrer_chain_options()->set_recent_navigations_to_collect( recent_navigations_to_collect); @@ -247,7 +243,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api diff --git a/chrome/browser/extensions/chrome_extension_system.cc b/chrome/browser/extensions/chrome_extension_system.cc --- a/chrome/browser/extensions/chrome_extension_system.cc +++ b/chrome/browser/extensions/chrome_extension_system.cc -@@ -85,6 +85,7 @@ UninstallPingSender::FilterResult ShouldSendUninstallPing( +@@ -92,6 +92,7 @@ UninstallPingSender::FilterResult ShouldSendUninstallPing( Profile* profile, const Extension* extension, UninstallReason reason) { @@ -271,7 +267,7 @@ diff --git a/chrome/browser/extensions/cws_info_service_factory.cc b/chrome/brow diff --git a/chrome/browser/extensions/extension_management.cc b/chrome/browser/extensions/extension_management.cc --- a/chrome/browser/extensions/extension_management.cc +++ b/chrome/browser/extensions/extension_management.cc -@@ -386,6 +386,7 @@ bool ExtensionManagement::IsExemptFromMV2DeprecationByPolicy( +@@ -391,6 +391,7 @@ bool ExtensionManagement::IsExemptFromMV2DeprecationByPolicy( bool ExtensionManagement::IsAllowedByUnpublishedAvailabilityPolicy( const Extension* extension) { @@ -295,16 +291,16 @@ diff --git a/chrome/browser/extensions/extension_safety_check_utils.cc b/chrome/ diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc --- a/chrome/browser/extensions/extension_service.cc +++ b/chrome/browser/extensions/extension_service.cc -@@ -248,8 +248,6 @@ ExtensionService::ExtensionService( - +@@ -244,8 +244,6 @@ ExtensionService::ExtensionService( UpgradeDetector::GetInstance()->AddObserver(this); + #endif - cws_info_service_observation_.Observe(CWSInfoService::Get(profile_)); - ExtensionManagementFactory::GetForBrowserContext(profile_)->AddObserver(this); if (autoupdate_enabled) { -@@ -1020,7 +1018,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. @@ -327,15 +323,15 @@ 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 -@@ -53,6 +53,7 @@ - #include "extensions/browser/updater/extension_update_data.h" +@@ -56,6 +56,7 @@ #include "extensions/common/constants.h" #include "extensions/common/extension.h" + #include "extensions/common/extension_id.h" +#include "extensions/common/extension_features.h" #include "extensions/common/extension_set.h" #include "extensions/common/extension_updater_uma.h" #include "extensions/common/extension_urls.h" -@@ -223,6 +224,10 @@ void ExtensionUpdater::Start() { +@@ -229,6 +230,10 @@ void ExtensionUpdater::Start() { DCHECK(!weak_ptr_factory_.HasWeakPtrs()); DCHECK(registry_); alive_ = true; @@ -346,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) -@@ -359,7 +364,8 @@ void ExtensionUpdater::AddToDownloader( +@@ -386,7 +391,8 @@ void ExtensionUpdater::AddToDownloader( const Extension& extension = **extension_iter; const ExtensionId& extension_id = extension.id(); if (!Manifest::IsAutoUpdateableLocation(extension.location())) { @@ -356,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 -@@ -373,7 +379,7 @@ void ExtensionUpdater::AddToDownloader( +@@ -400,7 +406,7 @@ void ExtensionUpdater::AddToDownloader( continue; } @@ -365,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, -@@ -412,6 +418,12 @@ bool ExtensionUpdater::AddExtensionToDownloader( +@@ -437,6 +443,12 @@ bool ExtensionUpdater::AddExtensionToDownloader( } void ExtensionUpdater::CheckNow(CheckParams params) { @@ -378,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 -@@ -421,7 +433,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -446,7 +458,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { int request_id = next_request_id_++; @@ -387,7 +383,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro if (params.ids.empty()) NotifyStarted(); -@@ -494,7 +506,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -514,7 +526,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { update_check_params.update_info[pending_id] = GetExtensionUpdateData(pending_id); } else if (!Manifest::IsAutoUpdateableLocation(info->install_source())) { @@ -396,7 +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 -@@ -504,7 +516,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -524,7 +536,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { // See https://crbug.com/904600 and https://crbug.com/965686. const bool is_high_priority_extension_pending = pending_extension_manager->HasHighPriorityPendingExtension(); @@ -405,7 +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 = -@@ -527,6 +539,8 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -547,6 +559,8 @@ void ExtensionUpdater::CheckNow(CheckParams params) { LOG(WARNING) << "Corrupt extension with id " << pending_id << " will be reinstalled with ExtensionDownloader."; } @@ -414,7 +410,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro } else { InstallStageTracker::Get(profile_)->ReportFailure( pending_id, -@@ -539,13 +553,6 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -559,13 +573,6 @@ void ExtensionUpdater::CheckNow(CheckParams params) { AddToDownloader(®istry_->disabled_extensions(), pending_ids, request_id, params.fetch_priority, &update_check_params); ExtensionSet remotely_disabled_extensions; @@ -428,7 +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 { -@@ -553,7 +560,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -573,7 +580,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { const Extension* extension = registry_->GetExtensionById(id, ExtensionRegistry::EVERYTHING); if (extension) { @@ -437,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)) { -@@ -697,7 +704,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished( +@@ -717,7 +724,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished( file.extension_id, InstallStageTracker::Stage::INSTALLING); UpdatePingData(file.extension_id, ping); @@ -446,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)); -@@ -708,6 +715,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished( +@@ -728,6 +735,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished( bool ExtensionUpdater::GetPingDataForExtension(const ExtensionId& id, DownloadPingData* ping_data) { @@ -454,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)); -@@ -823,7 +831,7 @@ bool ExtensionUpdater::CanUseUpdateService( +@@ -840,7 +848,7 @@ bool ExtensionUpdater::CanUseUpdateService( void ExtensionUpdater::InstallCRXFile(FetchedCRXFile crx_file) { std::set request_ids; @@ -463,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 -@@ -1031,7 +1039,7 @@ void ExtensionUpdater::NotifyIfFinished(int request_id) { +@@ -1048,7 +1056,7 @@ void ExtensionUpdater::NotifyIfFinished(int request_id) { InProgressCheck& request = requests_in_progress_[request_id]; if (!request.in_progress_ids.empty() || request.awaiting_update_service) return; // This request is not done yet. @@ -475,7 +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 -@@ -82,6 +82,8 @@ class ExtensionUpdater : public KeyedService, +@@ -93,6 +93,8 @@ class ExtensionUpdater : public KeyedService, // right away. bool install_immediately = false; @@ -484,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. -@@ -371,6 +373,8 @@ class ExtensionUpdater : public KeyedService, +@@ -402,6 +404,8 @@ class ExtensionUpdater : public KeyedService, base::TimeDelta frequency_; bool will_check_soon_ = false; @@ -508,7 +504,7 @@ diff --git a/chrome/browser/extensions/webstore_install_helper.cc b/chrome/brows diff --git a/chrome/browser/extensions/webstore_installer.cc b/chrome/browser/extensions/webstore_installer.cc --- a/chrome/browser/extensions/webstore_installer.cc +++ b/chrome/browser/extensions/webstore_installer.cc -@@ -594,7 +594,7 @@ void WebstoreInstaller::StartDownload( +@@ -591,7 +591,7 @@ void WebstoreInstaller::StartDownload( traffic_annotation)); params->set_file_path(file); params->set_initiator(render_frame_host->GetLastCommittedOrigin()); @@ -693,7 +689,7 @@ diff --git a/chrome/browser/ui/webui/extensions/extensions_ui.cc b/chrome/browse #include "chrome/browser/extensions/manifest_v2_experiment_manager.h" #include "chrome/browser/extensions/mv2_experiment_stage.h" #include "chrome/browser/extensions/permissions_url_constants.h" -@@ -379,6 +380,8 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile, +@@ -380,6 +381,8 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile, {"itemSuspiciousInstallLearnMore", IDS_EXTENSIONS_ADDED_WITHOUT_KNOWLEDGE_LEARN_MORE}, {"toolbarDevMode", IDS_EXTENSIONS_DEVELOPER_MODE}, @@ -702,7 +698,7 @@ diff --git a/chrome/browser/ui/webui/extensions/extensions_ui.cc b/chrome/browse {"toolbarLoadUnpacked", IDS_EXTENSIONS_TOOLBAR_LOAD_UNPACKED}, {"toolbarLoadUnpackedDone", IDS_EXTENSIONS_TOOLBAR_LOAD_UNPACKED_DONE}, {"toolbarPack", IDS_EXTENSIONS_TOOLBAR_PACK}, -@@ -463,6 +466,10 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile, +@@ -472,6 +475,10 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile, "hostPermissionsLearnMoreLink", extension_permissions_constants::kRuntimeHostPermissionsHelpURL); source->AddBoolean(kInDevModeKey, in_dev_mode); @@ -850,8 +846,8 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br +} + std::vector GetAvailableLaunchTypes( - const Extension& extension, - const ManagementAPIDelegate* delegate) { + const Extension& extension) { + std::vector launch_type_list; @@ -269,6 +294,8 @@ void AddExtensionInfo(const Extension* source_extension, const ExtensionSet& extensions, ExtensionInfoList* extension_list, @@ -861,7 +857,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br for (ExtensionSet::const_iterator iter = extensions.begin(); iter != extensions.end(); ++iter) { const Extension& extension = **iter; -@@ -314,10 +341,9 @@ ExtensionFunction::ResponseAction ManagementGetFunction::Run() { +@@ -311,10 +338,9 @@ ExtensionFunction::ResponseAction ManagementGetFunction::Run() { std::optional params = management::Get::Params::Create(args()); EXTENSION_FUNCTION_VALIDATE(params); @@ -873,7 +869,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br if (!target_extension) { return RespondNow(Error(keys::kNoExtensionError, params->id)); } -@@ -338,8 +364,7 @@ ManagementGetPermissionWarningsByIdFunction::Run() { +@@ -335,8 +361,7 @@ ManagementGetPermissionWarningsByIdFunction::Run() { EXTENSION_FUNCTION_VALIDATE(params); const Extension* extension = @@ -883,7 +879,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br if (!extension) { return RespondNow(Error(keys::kNoExtensionError, params->id)); } -@@ -407,8 +432,7 @@ ExtensionFunction::ResponseAction ManagementLaunchAppFunction::Run() { +@@ -404,8 +429,7 @@ ExtensionFunction::ResponseAction ManagementLaunchAppFunction::Run() { } const Extension* extension = @@ -893,7 +889,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br if (!extension) { return RespondNow(Error(keys::kNoExtensionError, params->id)); } -@@ -550,8 +574,8 @@ void ManagementSetEnabledFunction::CheckPermissionsIncrease() { +@@ -547,8 +571,8 @@ void ManagementSetEnabledFunction::CheckPermissionsIncrease() { // Extension could have been uninstalled externally while previous check was // happening. const Extension* extension = @@ -904,7 +900,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br if (!extension) { FinishEnable(Error(keys::kNoExtensionError)); return; -@@ -594,8 +618,8 @@ void ManagementSetEnabledFunction::CheckManifestV2Deprecation() { +@@ -591,8 +615,8 @@ void ManagementSetEnabledFunction::CheckManifestV2Deprecation() { // Extension can be uninstalled externally while the previous check was // happening async. const Extension* extension = @@ -915,7 +911,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br if (!extension) { FinishEnable(Error(keys::kNoExtensionError)); return; -@@ -739,8 +763,8 @@ void ManagementSetEnabledFunction::OnSupervisedExtensionApprovalDone( +@@ -736,8 +760,8 @@ void ManagementSetEnabledFunction::OnSupervisedExtensionApprovalDone( } const Extension* ManagementSetEnabledFunction::GetExtension() { @@ -926,7 +922,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br } ManagementUninstallFunctionBase::ManagementUninstallFunctionBase() = default; -@@ -765,8 +789,7 @@ ExtensionFunction::ResponseAction ManagementUninstallFunctionBase::Uninstall( +@@ -762,8 +786,7 @@ ExtensionFunction::ResponseAction ManagementUninstallFunctionBase::Uninstall( ->GetDelegate(); target_extension_id_ = target_extension_id; const Extension* target_extension = @@ -936,7 +932,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br ExtensionRegistry::EVERYTHING); if (!target_extension || !ShouldExposeViaManagementAPI(*target_extension)) { return RespondNow(Error(keys::kNoExtensionError, target_extension_id_)); -@@ -831,8 +854,7 @@ void ManagementUninstallFunctionBase::UninstallExtension() { +@@ -828,8 +851,7 @@ void ManagementUninstallFunctionBase::UninstallExtension() { // The extension can be uninstalled in another window while the UI was // showing. Do nothing in that case. const Extension* target_extension = @@ -946,7 +942,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br ExtensionRegistry::EVERYTHING); std::string error; bool success = false; -@@ -912,8 +934,7 @@ ExtensionFunction::ResponseAction ManagementCreateAppShortcutFunction::Run() { +@@ -909,8 +931,7 @@ ExtensionFunction::ResponseAction ManagementCreateAppShortcutFunction::Run() { management::CreateAppShortcut::Params::Create(args()); EXTENSION_FUNCTION_VALIDATE(params); const Extension* extension = @@ -956,7 +952,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br if (!extension) { return RespondNow(Error( ErrorUtils::FormatErrorMessage(keys::kNoExtensionError, params->id))); -@@ -967,8 +988,7 @@ ExtensionFunction::ResponseAction ManagementSetLaunchTypeFunction::Run() { +@@ -964,8 +985,7 @@ ExtensionFunction::ResponseAction ManagementSetLaunchTypeFunction::Run() { management::SetLaunchType::Params::Create(args()); EXTENSION_FUNCTION_VALIDATE(params); const Extension* extension = @@ -1205,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 -@@ -209,4 +209,18 @@ BASE_FEATURE(kExtensionBrowserNamespaceAlternative, +@@ -231,4 +231,18 @@ BASE_FEATURE(kExtensionBrowserNamespaceAlternative, "ExtensionBrowserNamespaceAlternative", base::FEATURE_DISABLED_BY_DEFAULT); @@ -1227,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 -@@ -252,6 +252,8 @@ BASE_DECLARE_FEATURE(kDebuggerAPIRestrictedToDevMode); +@@ -266,6 +266,8 @@ BASE_DECLARE_FEATURE(kDebuggerAPIRestrictedToDevMode); // `loadTimes` , `csi`, etc. or deprecated APIs (e.g. `app`). BASE_DECLARE_FEATURE(kExtensionBrowserNamespaceAlternative); diff --git a/build/patches/Content-settings-infrastructure.patch b/build/patches/Content-settings-infrastructure.patch index 6e3ef83d..221354ee 100644 --- a/build/patches/Content-settings-infrastructure.patch +++ b/build/patches/Content-settings-infrastructure.patch @@ -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 -@@ -1574,4 +1574,5 @@ +@@ -1595,4 +1595,5 @@ @@ -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, -@@ -170,6 +171,7 @@ function addPrivacyChildRoutes(r: Partial) { +@@ -172,6 +173,7 @@ function addPrivacyChildRoutes(r: Partial) { r.SITE_SETTINGS_LOCAL_NETWORK_ACCESS = r.SITE_SETTINGS.createChild('localNetworkAccess'); } @@ -315,13 +315,13 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d type: Object, value: SiteContentRadioSetting, @@ -114,6 +119,9 @@ export class SettingsCategoryDefaultRadioGroupElement extends - blockOptionLabel: string; - blockOptionSubLabel: string; - blockOptionIcon: string; -+ askOptionLabel: string; -+ askOptionSubLabel: string; -+ askOptionIcon: string; - private pref_: chrome.settingsPrivate.PrefObject; + declare blockOptionLabel: string; + declare blockOptionSubLabel: string; + declare blockOptionIcon: string; ++ declare askOptionLabel: string; ++ declare askOptionSubLabel: string; ++ declare askOptionIcon: string; + declare private pref_: chrome.settingsPrivate.PrefObject; selected: boolean; @@ -125,6 +133,13 @@ export class SettingsCategoryDefaultRadioGroupElement extends @@ -370,7 +370,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d diff --git a/chrome/browser/resources/settings/site_settings/site_details.html b/chrome/browser/resources/settings/site_settings/site_details.html --- a/chrome/browser/resources/settings/site_settings/site_details.html +++ b/chrome/browser/resources/settings/site_settings/site_details.html -@@ -333,4 +333,5 @@ +@@ -334,4 +334,5 @@ label="$i18n{siteSettingsLocalNetworkAccess}"> @@ -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 -@@ -1802,6 +1802,7 @@ static_library("ui") { +@@ -1816,6 +1816,7 @@ static_library("ui") { "//components/commerce/core/mojom:mojo_bindings", "//components/commerce/core/webui", "//components/endpoint_fetcher:endpoint_fetcher", @@ -718,7 +718,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn "//components/enterprise/common:files_scan_data", "//components/feedback/proto", "//components/headless/policy", -@@ -5028,6 +5029,7 @@ static_library("ui") { +@@ -5054,6 +5055,7 @@ static_library("ui") { "//components/power_bookmarks/storage", "//components/prefs", "//components/reading_list/features:flags", @@ -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 -@@ -96,6 +96,11 @@ class PageInfoViewFactory { +@@ -97,6 +97,11 @@ class PageInfoViewFactory { const PageInfo::PermissionInfo& info, bool blocked_on_system_level = false); @@ -1177,7 +1177,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide #include "build/branding_buildflags.h" #include "build/build_config.h" #include "build/buildflag.h" -@@ -76,6 +77,9 @@ +@@ -75,6 +76,9 @@ #include "components/dom_distiller/core/dom_distiller_features.h" #include "components/google/core/common/google_util.h" #include "components/history/core/common/pref_names.h" @@ -1187,7 +1187,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide #include "components/password_manager/core/browser/leak_detection_dialog_utils.h" #include "components/password_manager/core/browser/manage_passwords_referrer.h" #include "components/password_manager/core/common/password_manager_features.h" -@@ -3822,6 +3826,56 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, +@@ -3841,6 +3845,56 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, policy_indicator::AddLocalizedStrings(html_source); AddSecurityKeysStrings(html_source); @@ -1256,7 +1256,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b #include "components/content_settings/core/common/content_settings.h" #include "components/content_settings/core/common/content_settings_pattern.h" #include "components/content_settings/core/common/content_settings_types.h" -@@ -251,13 +253,13 @@ constexpr auto kContentSettingsTypeGroupNames = std::to_array< +@@ -258,13 +260,13 @@ constexpr auto kContentSettingsTypeGroupNames = std::to_array< {ContentSettingsType::REVOKED_DISRUPTIVE_NOTIFICATION_PERMISSIONS, nullptr}, }); @@ -1277,7 +1277,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b struct SiteSettingSourceStringMapping { SiteSettingSource source; -@@ -505,6 +507,13 @@ bool HasRegisteredGroupName(ContentSettingsType type) { +@@ -526,6 +528,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; } -@@ -518,11 +527,24 @@ ContentSettingsType ContentSettingsTypeFromGroupName(std::string_view name) { +@@ -539,11 +548,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 -@@ -537,7 +559,6 @@ std::string_view ContentSettingsTypeToGroupName(ContentSettingsType type) { +@@ -558,7 +580,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."; } -@@ -649,6 +670,13 @@ std::vector GetVisiblePermissionCategories( +@@ -670,6 +691,13 @@ std::vector GetVisiblePermissionCategories( base_types->push_back(ContentSettingsType::LOCAL_NETWORK_ACCESS); } @@ -1342,7 +1342,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b diff --git a/components/browser_ui/settings/android/BUILD.gn b/components/browser_ui/settings/android/BUILD.gn --- a/components/browser_ui/settings/android/BUILD.gn +++ b/components/browser_ui/settings/android/BUILD.gn -@@ -87,6 +87,7 @@ android_resources("java_resources") { +@@ -88,6 +88,7 @@ android_resources("java_resources") { "java/res/layout/managed_disclaimer_preference_for_radio_groups.xml", "java/res/layout/preference_chrome_image_view.xml", "java/res/layout/preference_spinner.xml", @@ -1536,7 +1536,7 @@ diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/b + allow_missing_resources = true sources = [ "java/res/drawable-hdpi/ic_volume_up_grey600_24dp.png", - "java/res/drawable-hdpi/permission_background_sync.png", + "java/res/drawable-hdpi/permission_popups.png", diff --git a/components/browser_ui/site_settings/android/java/res/xml/site_settings_preferences.xml b/components/browser_ui/site_settings/android/java/res/xml/site_settings_preferences.xml --- a/components/browser_ui/site_settings/android/java/res/xml/site_settings_preferences.xml +++ b/components/browser_ui/site_settings/android/java/res/xml/site_settings_preferences.xml @@ -2192,8 +2192,8 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c private final int mIcon; private final int mIconBlocked; private final int mTitle; -@@ -54,7 +54,29 @@ public class ContentSettingsResources { - private int mEnabledDescriptionText; +@@ -53,7 +53,29 @@ public class ContentSettingsResources { + private final int mDisabledPrimaryText; private int mDisabledDescriptionText; - ResourceItem( @@ -2223,7 +2223,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c int icon, int title, @ContentSettingValues @Nullable Integer defaultEnabledValue, -@@ -641,6 +663,8 @@ public class ContentSettingsResources { +@@ -629,6 +651,8 @@ public class ContentSettingsResources { R.string.website_settings_vr_ask, R.string.website_settings_vr_block); } @@ -2232,7 +2232,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c assert false; // NOTREACHED return assumeNonNull(null); } -@@ -799,6 +823,14 @@ public class ContentSettingsResources { +@@ -787,6 +811,14 @@ public class ContentSettingsResources { return getResourceItem(contentType).getDefaultDisabledValue(); } @@ -2247,7 +2247,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c /** * Returns the string resource id for a given ContentSetting to show with a permission category. * -@@ -973,6 +1005,8 @@ public class ContentSettingsResources { +@@ -961,6 +993,8 @@ public class ContentSettingsResources { */ public static int @Nullable [] getTriStateSettingDescriptionIDs( int contentType, boolean isPermissionSiteSettingsRadioButtonFeatureEnabled) { @@ -2259,7 +2259,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java -@@ -341,6 +341,10 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -343,6 +343,10 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment website.site() .getContentSetting( browserContextHandle, mCategory.getContentSettingsType()); @@ -2270,7 +2270,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c if (contentSetting != null) { return ContentSettingValues.BLOCK == contentSetting; } -@@ -529,6 +533,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -531,6 +535,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment ? new HashSet<>(getArguments().getStringArrayList(EXTRA_SELECTED_DOMAINS)) : null; @@ -2278,7 +2278,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c configureGlobalToggles(); if (mCategory.getType() == SiteSettingsCategory.Type.REQUEST_DESKTOP_SITE) { RecordUserAction.record("DesktopSiteContentSetting.SettingsPage.Entered"); -@@ -564,7 +569,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -566,7 +571,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment if (queryHasChanged) getInfoForOrigins(); }); @@ -2288,7 +2288,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c MenuItem help = menu.add( Menu.NONE, -@@ -576,12 +582,20 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -578,12 +584,20 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment getResources(), R.drawable.ic_help_and_feedback, getContext().getTheme())); @@ -2309,7 +2309,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()); -@@ -657,6 +671,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -659,6 +673,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment BrowserContextHandle browserContextHandle = getSiteSettingsDelegate().getBrowserContextHandle(); PrefService prefService = UserPrefs.get(browserContextHandle); @@ -2321,7 +2321,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(); -@@ -841,7 +860,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -837,7 +856,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; } @@ -2330,7 +2330,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } // OnPreferenceClickListener: -@@ -962,10 +981,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -957,10 +976,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment default: break; } @@ -2345,7 +2345,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c getPreferenceScreen() .addPreference( new AddExceptionPreference( -@@ -1150,8 +1170,16 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1145,8 +1165,16 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment private boolean isBlocked() { switch (mGlobalToggleLayout) { case GlobalToggleLayout.TRI_STATE_TOGGLE: @@ -2362,7 +2362,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 = -@@ -1298,7 +1326,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1293,7 +1321,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment } else if (res_id != -1) { infoText.setSummary(res_id); } else { @@ -2375,15 +2375,15 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } // Hide the anti-abuse text preferences, as needed. -@@ -1337,6 +1369,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1332,6 +1364,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment } else { screen.removePreference(mLocationTriStatePref); } + BromiteCustomContentSettingImpl.configureGlobalToggles(mCategory, this); - if (permissionBlockedByOs) { - maybeShowOsWarning(screen); -@@ -1526,6 +1559,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment + maybeShowReasonToggleDisabled(screen); + +@@ -1544,6 +1577,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment iconIds = ContentSettingsResources.getTriStateSettingIconIDs(contentType); } triStateToggle.initialize( @@ -2391,7 +2391,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c setting, descriptionIds, iconIds, -@@ -1685,6 +1719,14 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1703,6 +1737,14 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment @ContentSettingValues Integer value = site.getContentSetting(browserContextHandle, contentSettingsType); @@ -2417,7 +2417,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c /** Shows the permissions and other settings for a particular website. */ @NullMarked -@@ -185,7 +186,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -186,7 +187,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment case ContentSettingsType.FILE_SYSTEM_WRITE_GUARD: return "file_system_write_guard_permission_list"; default: @@ -2426,7 +2426,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } } -@@ -591,8 +592,21 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -592,8 +593,21 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment private void setupContentSettingsPreferences() { Preference permissionsHeaderPref = findPreference(PREF_PERMISSIONS_HEADER); mMaxPermissionOrder = permissionsHeaderPref.getOrder(); @@ -2450,7 +2450,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c preference.setKey(getPreferenceKey(type)); if (type == ContentSettingsType.ADS) { -@@ -1273,20 +1287,32 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1274,20 +1288,32 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment @ContentSettingValues @Nullable Integer value, boolean isEmbargoed, boolean isOneTime) { @@ -2491,7 +2491,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c AppCompatResources.getColorStateList(getContext(), mHighlightColor) .getDefaultColor()); } -@@ -1507,14 +1533,20 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1512,14 +1538,20 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment if (newValue instanceof Boolean) { permission = (Boolean) newValue ? getEnabledValue(type) : ContentSettingValues.BLOCK; } else { @@ -2826,7 +2826,7 @@ new file mode 100644 diff --git a/components/content_settings/android/BUILD.gn b/components/content_settings/android/BUILD.gn --- a/components/content_settings/android/BUILD.gn +++ b/components/content_settings/android/BUILD.gn -@@ -87,6 +87,7 @@ android_library("content_settings_enums_java") { +@@ -59,6 +59,7 @@ android_library("content_settings_enums_java") { } java_cpp_enum("content_settings_enums_javagen") { @@ -2868,7 +2868,7 @@ diff --git a/components/content_settings/core/browser/content_settings_registry. namespace content_settings { -@@ -871,6 +872,7 @@ void ContentSettingsRegistry::Init() { +@@ -873,6 +874,7 @@ void ContentSettingsRegistry::Init() { WebsiteSettingsRegistry::PLATFORM_ANDROID, ContentSettingsInfo::INHERIT_IF_LESS_PERMISSIVE, ContentSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY); @@ -2879,7 +2879,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 -@@ -216,11 +216,7 @@ void RecordContentSettingsHistogram(const std::string& name, +@@ -218,11 +218,7 @@ void RecordContentSettingsHistogram(const std::string& name, } int ContentSettingTypeToHistogramValue(ContentSettingsType content_setting) { @@ -2918,7 +2918,7 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.cc + rules->settings_rules.push_back(rule); + } + } - #if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_IOS) + #if !BUILDFLAG(IS_IOS) rules->mixed_content_rules = map->GetSettingsForOneType(ContentSettingsType::MIXEDSCRIPT); diff --git a/components/content_settings/core/browser/website_settings_info.h b/components/content_settings/core/browser/website_settings_info.h @@ -3422,7 +3422,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" -@@ -1271,6 +1272,14 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, +@@ -1281,6 +1282,14 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, // applies to permissions listed in |kPermissionType|. bool PageInfo::ShouldShowPermission( const PageInfo::PermissionInfo& info) const { @@ -3437,7 +3437,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) { -@@ -1387,7 +1396,19 @@ void PageInfo::PresentSitePermissions() { +@@ -1397,7 +1406,19 @@ void PageInfo::PresentSitePermissions() { HostContentSettingsMap* content_settings = GetContentSettings(); DCHECK(web_contents_); @@ -3546,7 +3546,7 @@ diff --git a/third_party/blink/public/platform/web_content_settings_client.h b/t namespace blink { class WebURL; -@@ -43,6 +48,14 @@ class WebContentSettingsClient { +@@ -42,6 +47,14 @@ class WebContentSettingsClient { // Blocks until done. virtual bool AllowStorageAccessSync(StorageType storage_type) { return true; } diff --git a/build/patches/Disable-privacy-sandbox.patch b/build/patches/Disable-privacy-sandbox.patch index 4e84f8e1..554850c3 100644 --- a/build/patches/Disable-privacy-sandbox.patch +++ b/build/patches/Disable-privacy-sandbox.patch @@ -13,11 +13,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/chrome_content_browser_client.cc | 5 ++++- .../first_party_sets_navigation_throttle.cc | 2 +- .../first_party_sets_policy_service.cc | 3 ++- - chrome/browser/prefs/browser_prefs.cc | 2 +- - .../privacy_sandbox_service_impl.cc | 2 +- + .../privacy_sandbox_service_impl.cc | 3 ++- .../privacy_sandbox_settings_delegate.cc | 1 + .../settings/privacy_page/cookies_page.ts | 2 +- - .../privacy_sandbox/privacy_sandbox_prompt.cc | 1 + .../site_settings/RwsCookieSettings.java | 4 ++-- .../history/core/browser/history_backend.cc | 13 +------------ .../privacy_sandbox_attestations.cc | 2 -- @@ -33,7 +31,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../features_cc/Disable-privacy-sandbox.inc | 1 + .../features_cc/Disable-privacy-sandbox.inc | 1 + third_party/blink/common/features.cc | 1 + - 23 files changed, 52 insertions(+), 33 deletions(-) + 21 files changed, 51 insertions(+), 32 deletions(-) create mode 100644 cromite_flags/content/common/features_cc/Disable-privacy-sandbox.inc create mode 100644 cromite_flags/content/public/common/content_features_cc/Disable-privacy-sandbox.inc create mode 100644 cromite_flags/services/network/public/cpp/features_cc/Disable-privacy-sandbox.inc @@ -42,7 +40,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -3509,6 +3509,9 @@ bool ChromeContentBrowserClient::IsAttributionReportingOperationAllowed( +@@ -3546,6 +3546,9 @@ bool ChromeContentBrowserClient::IsAttributionReportingOperationAllowed( const url::Origin* destination_origin, const url::Origin* reporting_origin, bool* can_bypass) { @@ -52,7 +50,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch Profile* profile = Profile::FromBrowserContext(browser_context); auto* privacy_sandbox_settings = -@@ -8252,7 +8255,7 @@ bool ChromeContentBrowserClient::ShouldDisableOriginAgentClusterDefault( +@@ -8303,7 +8306,7 @@ bool ChromeContentBrowserClient::ShouldDisableOriginAgentClusterDefault( } bool ChromeContentBrowserClient::WillProvidePublicFirstPartySets() { @@ -93,22 +91,18 @@ diff --git a/chrome/browser/first_party_sets/first_party_sets_policy_service.cc if (service_state_ == ServiceState::kPermanentlyDisabled) { OnReadyToNotifyDelegates(net::FirstPartySetsContextConfig(), net::FirstPartySetsCacheFilter()); -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 -@@ -1221,7 +1221,7 @@ void RegisterProfilePrefsForMigration( - #if BUILDFLAG(IS_CHROMEOS) - // Deprecated 04/2024. - registry->RegisterBooleanPref(kMetricsUserInheritOwnerConsent, true); -- registry->RegisterBooleanPref(kGlanceablesEnabled, true); -+ registry->RegisterBooleanPref(kGlanceablesEnabled, false); - - // Deprecated 05/2024. - registry->RegisterBooleanPref(kAccessibilityMouseKeysShortcutToPauseEnabled, diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_service_impl.cc b/chrome/browser/privacy_sandbox/privacy_sandbox_service_impl.cc --- a/chrome/browser/privacy_sandbox/privacy_sandbox_service_impl.cc +++ b/chrome/browser/privacy_sandbox/privacy_sandbox_service_impl.cc -@@ -1203,7 +1203,7 @@ bool PrivacySandboxServiceImpl::IsRestrictedNoticeEnabled() { +@@ -734,6 +734,7 @@ bool PrivacySandboxServiceImpl:: + PrivacySandboxService::PromptType + // TODO(crbug.com/352575567): Use the SurfaceType passed in. + PrivacySandboxServiceImpl::GetRequiredPromptType(SurfaceType surface_type) { ++ if ((true)) return PromptType::kNone; + // We delay emitting the metrics here so the profile manager can finish + // setting up and retrieving the profile buckets. + if (should_emit_dark_launch_startup_metrics_) { +@@ -1133,7 +1134,7 @@ bool PrivacySandboxServiceImpl::IsRestrictedNoticeEnabled() { void PrivacySandboxServiceImpl::SetRelatedWebsiteSetsDataAccessEnabled( bool enabled) { pref_service_->SetBoolean(prefs::kPrivacySandboxRelatedWebsiteSetsEnabled, @@ -131,7 +125,7 @@ diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_settings_delegate.cc diff --git a/chrome/browser/resources/settings/privacy_page/cookies_page.ts b/chrome/browser/resources/settings/privacy_page/cookies_page.ts --- a/chrome/browser/resources/settings/privacy_page/cookies_page.ts +++ b/chrome/browser/resources/settings/privacy_page/cookies_page.ts -@@ -272,7 +272,7 @@ export class SettingsCookiesPageElement extends SettingsCookiesPageElementBase { +@@ -249,7 +249,7 @@ export class SettingsCookiesPageElement extends SettingsCookiesPageElementBase { } private relatedWebsiteSetsToggleDisabled_() { @@ -140,20 +134,10 @@ diff --git a/chrome/browser/resources/settings/privacy_page/cookies_page.ts b/ch CookieControlsMode.BLOCK_THIRD_PARTY; } -diff --git a/chrome/browser/ui/privacy_sandbox/privacy_sandbox_prompt.cc b/chrome/browser/ui/privacy_sandbox/privacy_sandbox_prompt.cc ---- a/chrome/browser/ui/privacy_sandbox/privacy_sandbox_prompt.cc -+++ b/chrome/browser/ui/privacy_sandbox/privacy_sandbox_prompt.cc -@@ -8,5 +8,6 @@ - - void ShowPrivacySandboxPrompt(Browser* browser, - PrivacySandboxService::PromptType prompt_type) { -+ if ((true)) return; - ShowPrivacySandboxDialog(browser, prompt_type); - } diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/RwsCookieSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/RwsCookieSettings.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/RwsCookieSettings.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/RwsCookieSettings.java -@@ -135,7 +135,7 @@ public class RwsCookieSettings extends BaseSiteSettingsFragment +@@ -148,7 +148,7 @@ public class RwsCookieSettings extends BaseSiteSettingsFragment mAllowRwsPreference.setChecked( getSiteSettingsDelegate().isRelatedWebsiteSetsDataAccessEnabled()); @@ -162,7 +146,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c mAllowRwsPreference.setEnabled(false); } mAllowRwsPreference.setOnPreferenceChangeListener(this); -@@ -151,7 +151,7 @@ public class RwsCookieSettings extends BaseSiteSettingsFragment +@@ -164,7 +164,7 @@ public class RwsCookieSettings extends BaseSiteSettingsFragment public boolean onPreferenceChange(Preference preference, Object newValue) { String key = preference.getKey(); if (ALLOW_RWS_COOKIE_PREFERENCE.equals(key)) { @@ -197,7 +181,7 @@ diff --git a/components/history/core/browser/history_backend.cc b/components/his diff --git a/components/privacy_sandbox/privacy_sandbox_attestations/privacy_sandbox_attestations.cc b/components/privacy_sandbox/privacy_sandbox_attestations/privacy_sandbox_attestations.cc --- a/components/privacy_sandbox/privacy_sandbox_attestations/privacy_sandbox_attestations.cc +++ b/components/privacy_sandbox/privacy_sandbox_attestations/privacy_sandbox_attestations.cc -@@ -406,8 +406,6 @@ void PrivacySandboxAttestations::OnAttestationsParsed( +@@ -467,8 +467,6 @@ void PrivacySandboxAttestations::OnAttestationsParsed( if (attestations_map.has_value() && (!file_version_.IsValid() || file_version_.CompareTo(version) < 0)) { // Parsing succeeded and the attestations file has newer version. @@ -209,7 +193,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_attestations/privacy_san diff --git a/components/privacy_sandbox/privacy_sandbox_features.cc b/components/privacy_sandbox/privacy_sandbox_features.cc --- a/components/privacy_sandbox/privacy_sandbox_features.cc +++ b/components/privacy_sandbox/privacy_sandbox_features.cc -@@ -288,4 +288,7 @@ BASE_FEATURE(kPrivacySandboxMigratePrefsToSchemaV2, +@@ -278,4 +278,7 @@ BASE_FEATURE(kPrivacySandboxMigratePrefsToSchemaV2, BASE_FEATURE(kPrivacySandboxFirstTimeNoticeV2, "PrivacySandboxFirstTimeNoticeV2", base::FEATURE_DISABLED_BY_DEFAULT); @@ -220,7 +204,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_features.cc b/components diff --git a/components/privacy_sandbox/privacy_sandbox_prefs.cc b/components/privacy_sandbox/privacy_sandbox_prefs.cc --- a/components/privacy_sandbox/privacy_sandbox_prefs.cc +++ b/components/privacy_sandbox/privacy_sandbox_prefs.cc -@@ -25,7 +25,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { +@@ -24,7 +24,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { registry->RegisterBooleanPref(prefs::kPrivacySandboxM1FledgeEnabled, false); registry->RegisterBooleanPref(prefs::kPrivacySandboxM1AdMeasurementEnabled, false); @@ -229,7 +213,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_prefs.cc b/components/pr registry->RegisterTimePref(prefs::kPrivacySandboxTopicsDataAccessibleSince, base::Time()); -@@ -50,7 +50,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { +@@ -49,7 +49,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { prefs::kPrivacySandboxRelatedWebsiteSetsDataAccessAllowedInitialized, false); registry->RegisterBooleanPref( @@ -250,7 +234,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo } // static -@@ -262,7 +262,8 @@ PrivacySandboxSettingsImpl::GetFinchPrioritizedTopics() { +@@ -257,7 +257,8 @@ PrivacySandboxSettingsImpl::GetFinchPrioritizedTopics() { return finch_prioritized_topics_; } @@ -260,7 +244,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo Status status = GetM1TopicAllowedStatus(); JoinHistogram(kIsTopicsAllowedHistogram, status); return IsAllowed(status); -@@ -294,7 +295,8 @@ bool PrivacySandboxSettingsImpl::IsTopicsAllowedForContext( +@@ -289,7 +290,8 @@ bool PrivacySandboxSettingsImpl::IsTopicsAllowedForContext( return IsAllowed(status); } @@ -270,7 +254,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo const auto& blocked_topics = pref_service_->GetList(prefs::kPrivacySandboxBlockedTopics); -@@ -497,6 +499,7 @@ bool PrivacySandboxSettingsImpl:: +@@ -500,6 +502,7 @@ bool PrivacySandboxSettingsImpl:: void PrivacySandboxSettingsImpl::SetFledgeJoiningAllowed( const std::string& top_frame_etld_plus1, bool allowed) { @@ -278,7 +262,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo ScopedDictPrefUpdate scoped_pref_update( pref_service_, prefs::kPrivacySandboxFledgeJoinBlocked); -@@ -566,7 +569,8 @@ void PrivacySandboxSettingsImpl::ClearFledgeJoiningAllowedSettings( +@@ -569,7 +572,8 @@ void PrivacySandboxSettingsImpl::ClearFledgeJoiningAllowedSettings( } bool PrivacySandboxSettingsImpl::IsFledgeJoiningAllowed( @@ -288,7 +272,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo ScopedDictPrefUpdate scoped_pref_update( pref_service_, prefs::kPrivacySandboxFledgeJoinBlocked); auto& pref_data = scoped_pref_update.Get(); -@@ -916,7 +920,10 @@ void PrivacySandboxSettingsImpl::SetDelegateForTesting( +@@ -902,7 +906,10 @@ void PrivacySandboxSettingsImpl::SetDelegateForTesting( delegate_ = std::move(delegate); } @@ -300,7 +284,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo pref_service_->SetTime(prefs::kPrivacySandboxTopicsDataAccessibleSince, base::Time::Now()); -@@ -929,6 +936,7 @@ PrivacySandboxSettingsImpl::Status +@@ -915,6 +922,7 @@ PrivacySandboxSettingsImpl::Status PrivacySandboxSettingsImpl::GetSiteAccessAllowedStatus( const url::Origin& top_frame_origin, const GURL& url) const { @@ -308,7 +292,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo // Relying on |host_content_settings_map_| instead of |cookie_settings_| // allows to query whether the site associated with the |url| is allowed to // access Site data (aka ContentSettingsType::COOKIES) without considering any -@@ -943,6 +951,7 @@ PrivacySandboxSettingsImpl::GetSiteAccessAllowedStatus( +@@ -929,6 +937,7 @@ PrivacySandboxSettingsImpl::GetSiteAccessAllowedStatus( PrivacySandboxSettingsImpl::Status PrivacySandboxSettingsImpl::GetPrivacySandboxAllowedStatus( bool should_ignore_restriction /*=false*/) const { @@ -319,18 +303,18 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo diff --git a/components/privacy_sandbox/tracking_protection_prefs.cc b/components/privacy_sandbox/tracking_protection_prefs.cc --- a/components/privacy_sandbox/tracking_protection_prefs.cc +++ b/components/privacy_sandbox/tracking_protection_prefs.cc -@@ -53,9 +53,9 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { - - // TODO(https://b/333527273): Deprecate +@@ -24,9 +24,9 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { + // TODO(https://b/333527273): The following prefs should be deprecated. + // Still in use for Mode B. registry->RegisterBooleanPref( - prefs::kBlockAll3pcToggleEnabled, false, + prefs::kBlockAll3pcToggleEnabled, false, // with true enables FPS user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); - registry->RegisterBooleanPref(prefs::kTrackingProtection3pcdEnabled, false); + registry->RegisterBooleanPref(prefs::kTrackingProtection3pcdEnabled, false); // with true enables FPS - registry->RegisterBooleanPref(prefs::kAllowAll3pcToggleEnabled, false); registry->RegisterIntegerPref( - prefs::kTrackingProtectionLevel, + prefs::kTrackingProtectionOnboardingStatus, + static_cast(TrackingProtectionOnboardingStatus::kIneligible)); diff --git a/components/signin/public/identity_manager/account_capabilities.cc b/components/signin/public/identity_manager/account_capabilities.cc --- a/components/signin/public/identity_manager/account_capabilities.cc +++ b/components/signin/public/identity_manager/account_capabilities.cc @@ -365,7 +349,7 @@ diff --git a/content/browser/shared_storage/shared_storage_document_service_impl diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc --- a/content/public/browser/content_browser_client.cc +++ b/content/public/browser/content_browser_client.cc -@@ -1677,7 +1677,7 @@ bool ContentBrowserClient::ShouldPreconnectNavigation( +@@ -1676,7 +1676,7 @@ bool ContentBrowserClient::ShouldPreconnectNavigation( } bool ContentBrowserClient::IsFirstPartySetsEnabled() { @@ -401,7 +385,7 @@ new file mode 100644 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 -@@ -2845,6 +2845,7 @@ BASE_FEATURE(kNoReferrerForPreloadFromSubresource, +@@ -2858,6 +2858,7 @@ BASE_FEATURE(kNoReferrerForPreloadFromSubresource, // constants for features in the section above. bool IsAllowURNsInIframeEnabled() { diff --git a/build/patches/Enable-native-Android-autofill.patch b/build/patches/Enable-native-Android-autofill.patch index e4367411..1f0d5369 100644 --- a/build/patches/Enable-native-Android-autofill.patch +++ b/build/patches/Enable-native-Android-autofill.patch @@ -37,7 +37,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/content_autofill_driver.cc | 11 +++ .../content/browser/content_autofill_driver.h | 10 +++ .../content_autofill_driver_factory.cc | 12 +++ - .../content/renderer/autofill_agent.cc | 6 ++ + .../content/renderer/autofill_agent.cc | 4 + .../renderer/password_autofill_agent.cc | 5 +- .../browser/foundations/autofill_driver.h | 2 + .../foundations/autofill_driver_factory.cc | 4 + @@ -48,7 +48,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../autofill/core/common/autofill_features.h | 22 ----- .../autofill/core/common/autofill_prefs.cc | 4 +- .../autofill/core/common/autofill_prefs.h | 5 ++ - 33 files changed, 277 insertions(+), 165 deletions(-) + 33 files changed, 275 insertions(+), 165 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 @@ -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 -@@ -473,8 +473,7 @@ public class MainSettings extends ChromeBaseSettingsFragment +@@ -474,8 +474,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 -@@ -101,6 +101,13 @@ import java.lang.annotation.RetentionPolicy; +@@ -103,6 +103,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. -@@ -1061,6 +1068,11 @@ class TabImpl implements Tab { +@@ -1081,6 +1088,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); -@@ -1354,6 +1366,7 @@ class TabImpl implements Tab { +@@ -1385,6 +1397,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; -@@ -2139,16 +2152,21 @@ class TabImpl implements Tab { +@@ -2169,16 +2182,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(), -@@ -2157,7 +2175,16 @@ class TabImpl implements Tab { +@@ -2187,7 +2205,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 -@@ -3624,28 +3624,6 @@ const FeatureEntry::FeatureVariation kLinkPreviewTriggerTypeVariations[] = { +@@ -3789,28 +3789,6 @@ const FeatureEntry::FeatureVariation kLinkPreviewTriggerTypeVariations[] = { std::size(kLinkPreviewTriggerTypeLongPress), nullptr}}; #endif // !BUILDFLAG(IS_ANDROID) @@ -315,7 +315,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc const FeatureEntry::FeatureParam kPrerender2WarmUpCompositorTriggerPointDidCommitLoad[] = { {"trigger_point", "did_commit_load"}}; -@@ -6143,15 +6121,6 @@ const FeatureEntry kFeatureEntries[] = { +@@ -6345,15 +6323,6 @@ const FeatureEntry kFeatureEntries[] = { #endif // BUILDFLAG(IS_CHROMEOS) #if BUILDFLAG(IS_ANDROID) @@ -334,7 +334,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/android/tab_android.cc b/chrome/browser/android/tab_android.cc --- a/chrome/browser/android/tab_android.cc +++ b/chrome/browser/android/tab_android.cc -@@ -389,8 +389,7 @@ void TabAndroid::InitializeAutofillIfNecessary(JNIEnv* env) { +@@ -419,8 +419,7 @@ void TabAndroid::InitializeAutofillIfNecessary(JNIEnv* env) { ->MaybeInitKeyboardSuppressor(); return; } @@ -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 -@@ -148,7 +148,7 @@ android_library("bottom_sheet_utils_java") { +@@ -149,7 +149,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 -@@ -55,8 +55,8 @@ public class AutofillClientProviderUtils { +@@ -79,8 +79,8 @@ public class AutofillClientProviderUtils { * @return {@link AndroidAutofillAvailabilityStatus.AVAILABLE} if Android Autofill can be used * or a reason why it can't. */ @@ -372,9 +372,9 @@ 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 -@@ -847,12 +847,6 @@ const char kAutofillVcnEnrollRequestTimeoutDescription[] = - "VCN enrollment request. Upon timeout, the client will terminate the VCN " - "enrollment UI, but the request may still succeed server-side."; +@@ -869,12 +869,6 @@ const char kAutofillVcnEnrollStrikeExpiryTimeDescription[] = + "When enabled, changes the amount of time required for VCN enrollment " + "prompt strikes to expire."; -const char kAutofillVirtualViewStructureAndroidName[] = - "Enable the setting to provide a virtual view structure for Autofill"; @@ -388,9 +388,9 @@ 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 -@@ -497,9 +497,6 @@ extern const char kAutofillUploadCardRequestTimeoutDescription[]; - extern const char kAutofillVcnEnrollRequestTimeoutName[]; - extern const char kAutofillVcnEnrollRequestTimeoutDescription[]; +@@ -510,9 +510,6 @@ extern const char kAutofillVcnEnrollRequestTimeoutDescription[]; + extern const char kAutofillVcnEnrollStrikeExpiryTimeName[]; + extern const char kAutofillVcnEnrollStrikeExpiryTimeDescription[]; -extern const char kAutofillVirtualViewStructureAndroidName[]; -extern const char kAutofillVirtualViewStructureAndroidDescription[]; @@ -401,7 +401,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio 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 -@@ -700,6 +700,12 @@ For more settings that use data to improve your Chrome experience, go to Save passwords @@ -597,7 +597,7 @@ diff --git a/components/android_autofill/browser/java/src/org/chromium/component if (event == EVENT_INPUT_SHOWN) manager.notifyInputUiChange(); } } -@@ -99,6 +100,7 @@ public class AutofillManagerWrapper { +@@ -102,6 +103,7 @@ public class AutofillManagerWrapper { // Uses Exception to catch various cases. (refer to crbug.com/1186406) Log.e(TAG, "getAutofillServiceComponentName", e); } @@ -605,7 +605,7 @@ diff --git a/components/android_autofill/browser/java/src/org/chromium/component if (componentName != null) { mPackageName = componentName.getPackageName(); mIsAwGCurrentAutofillService = -@@ -266,7 +268,7 @@ public class AutofillManagerWrapper { +@@ -274,7 +276,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,7 +614,7 @@ diff --git a/components/android_autofill/browser/java/src/org/chromium/component } public static boolean isLoggable() { -@@ -279,6 +281,7 @@ public class AutofillManagerWrapper { +@@ -287,6 +289,7 @@ 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); @@ -770,7 +770,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_; -@@ -306,6 +312,10 @@ class ContentAutofillDriver : public AutofillDriver, +@@ -305,6 +311,10 @@ class ContentAutofillDriver : public AutofillDriver, // The factory that created this driver. Outlives `this`. const raw_ref owner_; @@ -813,7 +813,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 -@@ -1431,12 +1431,16 @@ void AutofillAgent::ShowSuggestions( +@@ -1529,14 +1529,18 @@ void AutofillAgent::ShowSuggestions( password_generation_agent_->ShowPasswordGenerationSuggestions( input_element, form_cache)) { is_popup_possibly_visible_ = true; @@ -821,23 +821,11 @@ diff --git a/components/autofill/content/renderer/autofill_agent.cc b/components return; +#endif } - if (password_autofill_agent_->ShowSuggestions(input_element, trigger_source, - form_cache)) { - is_popup_possibly_visible_ = true; + bool password_agent_handled_request = TryShowPasswordSuggestions( + input_element, IsPasswordsAutofillManuallyTriggered(trigger_source), + password_request); +#if !BUILDFLAG(IS_ANDROID) - return; -+#endif - } - - // Password field elements should only have suggestions shown by the -@@ -1444,11 +1448,13 @@ void AutofillAgent::ShowSuggestions( - // `FormControlTypeForAutofill()` because we are interested in whether the - // field is *currently* a password field, not whether it has ever been a - // password field. -+#if !BUILDFLAG(IS_ANDROID) - if (input_element.FormControlType() == // nocheck - blink::mojom::FormControlType::kInputPassword && - !config_.query_password_suggestions) { + if (password_agent_handled_request) { return; } +#endif @@ -847,7 +835,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 -@@ -849,7 +849,10 @@ void PasswordAutofillAgent::UpdatePasswordStateForTextChange( +@@ -853,7 +853,10 @@ void PasswordAutofillAgent::UpdatePasswordStateForTextChange( void PasswordAutofillAgent::TrackAutofilledElement( const WebFormControlElement& element) { @@ -888,7 +876,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 -@@ -225,6 +225,8 @@ class AutofillManager +@@ -222,6 +222,8 @@ class AutofillManager LifecycleState new_state, base::PassKey pass_key); @@ -900,7 +888,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 -@@ -703,6 +703,8 @@ base::WeakPtr BrowserAutofillManager::GetWeakPtr() { +@@ -712,6 +712,8 @@ base::WeakPtr BrowserAutofillManager::GetWeakPtr() { return weak_ptr_factory_.GetWeakPtr(); } @@ -912,7 +900,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 -@@ -117,6 +117,8 @@ class BrowserAutofillManager : public AutofillManager { +@@ -119,6 +119,8 @@ class BrowserAutofillManager : public AutofillManager { ~BrowserAutofillManager() override; @@ -924,10 +912,10 @@ 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 -@@ -840,7 +840,7 @@ BASE_FEATURE(kAutofillThirdPartyModeContentProvider, +@@ -850,7 +850,7 @@ BASE_FEATURE(kAutofillThirdPartyModeContentProvider, BASE_FEATURE(kAutofillVirtualViewStructureAndroid, "AutofillVirtualViewStructureAndroid", - base::FEATURE_DISABLED_BY_DEFAULT); + base::FEATURE_ENABLED_BY_DEFAULT); - +SET_CROMITE_FEATURE_ENABLED(kAutofillVirtualViewStructureAndroid); #endif // BUILDFLAG(IS_ANDROID) @@ -936,7 +924,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 -@@ -295,28 +295,6 @@ COMPONENT_EXPORT(AUTOFILL) +@@ -308,28 +308,6 @@ COMPONENT_EXPORT(AUTOFILL) BASE_DECLARE_FEATURE(kAutofillThirdPartyModeContentProvider); COMPONENT_EXPORT(AUTOFILL) BASE_DECLARE_FEATURE(kAutofillVirtualViewStructureAndroid); @@ -977,7 +965,7 @@ diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/auto registry->RegisterIntegerPref(kAutocompleteLastVersionRetentionPolicy, 0); registry->RegisterStringPref(kAutofillUploadEncodingSeed, ""); registry->RegisterDictionaryPref(kAutofillVoteUploadEvents); -@@ -86,7 +88,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -87,7 +89,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { false); #if BUILDFLAG(IS_ANDROID) @@ -989,7 +977,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 -@@ -98,6 +98,11 @@ inline constexpr char kAutofillUploadEventsLastResetTimestamp[] = +@@ -104,6 +104,11 @@ inline constexpr char kAutofillUploadEventsLastResetTimestamp[] = // retention policy was run. inline constexpr char kAutocompleteLastVersionRetentionPolicy[] = "autocomplete.retention_policy_last_version"; diff --git a/build/patches/Enable-search-engine-settings-desktop-ui.patch b/build/patches/Enable-search-engine-settings-desktop-ui.patch index 8fbb5330..08d98d58 100644 --- a/build/patches/Enable-search-engine-settings-desktop-ui.patch +++ b/build/patches/Enable-search-engine-settings-desktop-ui.patch @@ -38,7 +38,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../template_url_table_model.cc | 9 +- .../search_engines/template_url_table_model.h | 6 +- .../browser/ui/webui/chrome_web_ui_configs.cc | 8 + - chrome/browser/ui/webui/favicon_source.cc | 14 + + chrome/browser/ui/webui/favicon_source.cc | 12 + chrome/browser/ui/webui/favicon_source.h | 2 + .../webui/settings/search_engines_handler.cc | 28 +- .../webui/settings/search_engines_handler.h | 3 +- @@ -77,7 +77,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html ui/webui/resources/images/BUILD.gn | 2 +- ui/webui/resources/js/BUILD.gn | 2 +- ui/webui/resources/js/load_time_data.ts | 17 +- - 70 files changed, 1152 insertions(+), 69 deletions(-) + 70 files changed, 1150 insertions(+), 69 deletions(-) create mode 100644 chrome/app/settings_strings_android.grdp create mode 100644 chrome/browser/search_engines/android/java/res/layout/search_engine_layout.xml create mode 100644 chrome/browser/ui/webui/settings/settings_localized_strings_provider_android.cc @@ -140,7 +140,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 -@@ -2398,6 +2398,9 @@ +@@ -2397,6 +2397,9 @@ URL with %s in place of query @@ -418,7 +418,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 -@@ -3562,6 +3562,9 @@ static_library("browser") { +@@ -3573,6 +3573,9 @@ static_library("browser") { "//components/user_scripts/android", ] } @@ -431,7 +431,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 -@@ -84,6 +84,9 @@ +@@ -88,6 +88,9 @@ #endif #if BUILDFLAG(IS_ANDROID) @@ -444,7 +444,7 @@ diff --git a/chrome/browser/chrome_browser_interface_binders.cc b/chrome/browser diff --git a/chrome/browser/chrome_browser_interface_binders_webui.cc b/chrome/browser/chrome_browser_interface_binders_webui.cc --- a/chrome/browser/chrome_browser_interface_binders_webui.cc +++ b/chrome/browser/chrome_browser_interface_binders_webui.cc -@@ -65,6 +65,12 @@ +@@ -70,6 +70,12 @@ #include "components/signin/public/base/signin_switches.h" #endif @@ -457,7 +457,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" -@@ -470,6 +476,15 @@ void PopulateChromeWebUIFrameBinders( +@@ -477,6 +483,15 @@ void PopulateChromeWebUIFrameBinders( } #endif @@ -473,7 +473,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>( -@@ -601,6 +616,9 @@ void PopulateChromeWebUIFrameBinders( +@@ -611,6 +626,9 @@ void PopulateChromeWebUIFrameBinders( RegisterWebUIControllerInterfaceBinder(map); @@ -483,7 +483,7 @@ diff --git a/chrome/browser/chrome_browser_interface_binders_webui.cc b/chrome/b RegisterWebUIControllerInterfaceBinder< customize_color_scheme_mode::mojom:: CustomizeColorSchemeModeHandlerFactory, -@@ -621,6 +639,9 @@ void PopulateChromeWebUIFrameBinders( +@@ -631,6 +649,9 @@ void PopulateChromeWebUIFrameBinders( CertificateManagerUI>(map); #endif // BUILDFLAG(CHROME_ROOT_STORE_CERT_MANAGEMENT_UI) @@ -596,13 +596,13 @@ diff --git a/chrome/browser/resources/settings/search_engines_page/search_engine actionButtonText_: String, cancelButtonHidden_: Boolean, @@ -79,6 +80,7 @@ export class SettingsSearchEngineEditDialogElement extends - private searchEngine_: string; - private keyword_: string; - private queryUrl_: string; -+ private suggestionUrl_: string; - private dialogTitle_: string; - private actionButtonText_: string; - private cancelButtonHidden_: boolean; + declare private searchEngine_: string; + declare private keyword_: string; + declare private queryUrl_: string; ++ declare private suggestionUrl_: string; + declare private dialogTitle_: string; + declare private actionButtonText_: string; + declare private cancelButtonHidden_: boolean; @@ -108,7 +110,7 @@ export class SettingsSearchEngineEditDialogElement extends this.searchEngine_ = this.model.name; this.keyword_ = this.model.keyword; @@ -801,8 +801,8 @@ diff --git a/chrome/browser/search/background/BUILD.gn b/chrome/browser/search/b +if (!is_android) { source_set("background") { public = [ - "ntp_background_data.h", -@@ -60,6 +61,7 @@ source_set("background") { + "ntp_background_service_factory.h", +@@ -58,6 +59,7 @@ source_set("background") { "//ui/gfx/codec", ] } @@ -854,7 +854,7 @@ new file mode 100644 diff --git a/chrome/browser/search_engines/android/java/src/org/chromium/chrome/browser/search_engines/settings/SearchEngineSettings.java b/chrome/browser/search_engines/android/java/src/org/chromium/chrome/browser/search_engines/settings/SearchEngineSettings.java --- a/chrome/browser/search_engines/android/java/src/org/chromium/chrome/browser/search_engines/settings/SearchEngineSettings.java +++ b/chrome/browser/search_engines/android/java/src/org/chromium/chrome/browser/search_engines/settings/SearchEngineSettings.java -@@ -8,6 +8,10 @@ import android.os.Bundle; +@@ -9,6 +9,10 @@ import android.os.Bundle; import android.view.View; import android.widget.ListView; @@ -865,16 +865,16 @@ diff --git a/chrome/browser/search_engines/android/java/src/org/chromium/chrome/ import androidx.fragment.app.ListFragment; import org.chromium.base.supplier.ObservableSupplier; -@@ -16,6 +20,8 @@ import org.chromium.chrome.browser.profiles.Profile; +@@ -19,6 +23,8 @@ import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.regional_capabilities.RegionalCapabilitiesServiceFactory; import org.chromium.chrome.browser.search_engines.R; import org.chromium.chrome.browser.settings.ProfileDependentSetting; +import org.chromium.chrome.browser.settings.SettingsNavigationFactory; +import org.chromium.components.browser_ui.settings.SettingsNavigation; import org.chromium.components.browser_ui.settings.EmbeddableSettingsPage; + import org.chromium.components.browser_ui.settings.SettingsFragment; import org.chromium.components.regional_capabilities.RegionalCapabilitiesService; - -@@ -57,6 +63,21 @@ public class SearchEngineSettings extends ListFragment +@@ -62,6 +68,21 @@ public class SearchEngineSettings extends ListFragment return mPageTitle; } @@ -894,12 +894,12 @@ diff --git a/chrome/browser/search_engines/android/java/src/org/chromium/chrome/ + } + @Override - public void onViewCreated(View view, Bundle savedInstanceState) { + public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); 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 -@@ -699,6 +699,12 @@ static_library("ui") { +@@ -702,6 +702,12 @@ static_library("ui") { "//v8:v8_version", ] @@ -912,10 +912,10 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn if (is_chrome_branded) { deps += [ "//components/plus_addresses/resources:vector_icons" ] } -@@ -986,6 +992,21 @@ static_library("ui") { - # TODO(b/335257259): Resolve circular deps. - # Any circular includes must depend on the target "//chrome/browser:browser_public_dependencies". - allow_circular_includes_from += [ "//chrome/browser/facilitated_payments" ] +@@ -1000,6 +1006,21 @@ static_library("ui") { + "android/toolbar/extension_actions_bridge_factory.h", + ] + } + sources += [ + "webui/settings/settings_ui_android.cc", + "webui/settings/settings_ui_android.h", @@ -1058,7 +1058,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 -@@ -206,7 +206,8 @@ void TemplateURLTableModel::Remove(size_t index) { +@@ -207,7 +207,8 @@ void TemplateURLTableModel::Remove(size_t index) { void TemplateURLTableModel::Add(size_t index, const std::u16string& short_name, const std::u16string& keyword, @@ -1068,7 +1068,7 @@ diff --git a/chrome/browser/ui/search_engines/template_url_table_model.cc b/chro DCHECK(index <= RowCount()); DCHECK(!url.empty()); TemplateURLData data; -@@ -214,13 +215,15 @@ void TemplateURLTableModel::Add(size_t index, +@@ -215,13 +216,15 @@ void TemplateURLTableModel::Add(size_t index, data.SetKeyword(keyword); data.SetURL(url); data.is_active = TemplateURLData::ActiveStatus::kTrue; @@ -1085,7 +1085,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); -@@ -229,7 +232,7 @@ void TemplateURLTableModel::ModifyTemplateURL(size_t index, +@@ -230,7 +233,7 @@ void TemplateURLTableModel::ModifyTemplateURL(size_t index, DCHECK(template_url_service_->GetDefaultSearchProvider() != template_url || template_url->SupportsReplacement( template_url_service_->search_terms_data())); @@ -1118,7 +1118,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 -@@ -60,6 +60,11 @@ +@@ -61,6 +61,11 @@ #include "components/user_scripts/browser/ui/user_scripts_ui.h" #endif @@ -1130,7 +1130,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 -@@ -409,4 +414,7 @@ void RegisterChromeWebUIConfigs() { +@@ -420,4 +425,7 @@ void RegisterChromeWebUIConfigs() { #if BUILDFLAG(IS_ANDROID) map.AddWebUIConfig(std::make_unique()); #endif @@ -1141,19 +1141,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/u diff --git a/chrome/browser/ui/webui/favicon_source.cc b/chrome/browser/ui/webui/favicon_source.cc --- a/chrome/browser/ui/webui/favicon_source.cc +++ b/chrome/browser/ui/webui/favicon_source.cc -@@ -22,9 +22,11 @@ - #include "components/history/core/browser/top_sites.h" - #include "content/public/browser/browser_thread.h" - #include "content/public/browser/web_contents.h" -+#if !BUILDFLAG(IS_ANDROID) - #include "extensions/browser/extension_registry.h" - #include "extensions/common/constants.h" - #include "extensions/common/manifest.h" -+#endif - #include "third_party/skia/include/core/SkBitmap.h" - #include "ui/base/resource/resource_bundle.h" - #include "ui/base/resource/resource_scale_factor.h" -@@ -226,6 +228,7 @@ bool FaviconSource::ShouldServiceRequest( +@@ -230,6 +230,7 @@ bool FaviconSource::ShouldServiceRequest( render_process_id); } @@ -1161,7 +1149,7 @@ diff --git a/chrome/browser/ui/webui/favicon_source.cc b/chrome/browser/ui/webui ui::NativeTheme* FaviconSource::GetNativeTheme( const content::WebContents::Getter& wc_getter) { #if BUILDFLAG(IS_ANDROID) -@@ -234,6 +237,7 @@ ui::NativeTheme* FaviconSource::GetNativeTheme( +@@ -238,6 +239,7 @@ ui::NativeTheme* FaviconSource::GetNativeTheme( return webui::GetNativeThemeDeprecated(wc_getter.Run()); #endif } @@ -1169,7 +1157,7 @@ diff --git a/chrome/browser/ui/webui/favicon_source.cc b/chrome/browser/ui/webui void FaviconSource::OnFaviconDataAvailable( content::URLDataSource::GotDataCallback callback, -@@ -257,7 +261,11 @@ void FaviconSource::SendDefaultResponse( +@@ -261,7 +263,11 @@ void FaviconSource::SendDefaultResponse( parsed.device_scale_factor, parsed.force_light_mode ? false @@ -1181,7 +1169,7 @@ diff --git a/chrome/browser/ui/webui/favicon_source.cc b/chrome/browser/ui/webui return; } int icon_size = std::ceil(parsed.size_in_dip * parsed.device_scale_factor); -@@ -277,7 +285,11 @@ void FaviconSource::SendDefaultResponse( +@@ -281,7 +287,11 @@ void FaviconSource::SendDefaultResponse( SendDefaultResponse(std::move(callback), 16, 1.0f, force_light_mode ? false @@ -1193,15 +1181,15 @@ diff --git a/chrome/browser/ui/webui/favicon_source.cc b/chrome/browser/ui/webui } void FaviconSource::SendDefaultResponse( -@@ -287,6 +299,7 @@ void FaviconSource::SendDefaultResponse( - bool dark_mode) { +@@ -292,6 +302,7 @@ void FaviconSource::SendDefaultResponse( + base::UmaHistogramBoolean(kDefaultResponseHistogramName, true); int resource_id; switch (size_in_dip) { +#if !BUILDFLAG(IS_ANDROID) case 64: resource_id = dark_mode ? IDR_DEFAULT_FAVICON_DARK_64 : IDR_DEFAULT_FAVICON_64; -@@ -295,6 +308,7 @@ void FaviconSource::SendDefaultResponse( +@@ -300,6 +311,7 @@ void FaviconSource::SendDefaultResponse( resource_id = dark_mode ? IDR_DEFAULT_FAVICON_DARK_32 : IDR_DEFAULT_FAVICON_32; break; @@ -1248,7 +1236,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome // Dummy number used for indicating that a new search engine is added. const int kNewSearchEngineIndex = -1; -@@ -225,9 +228,10 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine( +@@ -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)); @@ -1260,7 +1248,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome dict.Set("urlLocked", ((template_url->prepopulate_id() > 0) || (template_url->starter_pack_id() > 0))); GURL icon_url = template_url->favicon_url(); -@@ -235,6 +239,8 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine( +@@ -262,6 +266,8 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine( dict.Set("iconURL", icon_url.spec()); } @@ -1269,7 +1257,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome // The icons that are used for search engines in the EEA region are bundled // with Chrome. We use the favicon service for countries outside the EEA // region to guarantee having icons for all search engines. -@@ -253,6 +259,7 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine( +@@ -280,6 +286,7 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine( dict.Set("iconPath", base::StrCat({icon_path, "@2x"})); } } @@ -1277,7 +1265,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome dict.Set("modelIndex", base::checked_cast(index)); -@@ -269,6 +276,7 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine( +@@ -296,6 +303,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); @@ -1285,7 +1273,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 = -@@ -285,6 +293,7 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine( +@@ -312,6 +320,7 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine( dict.Set("extension", std::move(ext_info)); } } @@ -1293,7 +1281,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome return dict; } -@@ -403,12 +412,13 @@ void SearchEnginesHandler::HandleSearchEngineEditStarted( +@@ -414,12 +423,13 @@ void SearchEnginesHandler::HandleSearchEngineEditStarted( void SearchEnginesHandler::OnEditedKeyword(TemplateURL* template_url, const std::u16string& title, const std::u16string& keyword, @@ -1310,7 +1298,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome } edit_controller_.reset(); -@@ -438,6 +448,8 @@ bool SearchEnginesHandler::CheckFieldValidity(const std::string& field_name, +@@ -449,6 +459,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); @@ -1319,7 +1307,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome } else { NOTREACHED(); } -@@ -460,18 +472,20 @@ void SearchEnginesHandler::HandleSearchEngineEditCompleted( +@@ -471,18 +483,20 @@ void SearchEnginesHandler::HandleSearchEngineEditCompleted( return; } @@ -1359,7 +1347,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 -@@ -2452,6 +2452,8 @@ void AddSearchEnginesStrings(content::WebUIDataSource* html_source) { +@@ -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}, @@ -1368,7 +1356,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide {"searchEnginesMakeDefault", IDS_SETTINGS_SEARCH_ENGINES_MAKE_DEFAULT}, {"searchEnginesActivate", IDS_SETTINGS_SEARCH_ENGINES_ACTIVATE}, {"searchEnginesDeactivate", IDS_SETTINGS_SEARCH_ENGINES_DEACTIVATE}, -@@ -3819,6 +3821,12 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, +@@ -3838,6 +3840,12 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, AddSystemStrings(html_source); #endif @@ -1861,7 +1849,7 @@ new file mode 100644 diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni --- a/chrome/chrome_paks.gni +++ b/chrome/chrome_paks.gni -@@ -168,6 +168,17 @@ template("chrome_extra_paks") { +@@ -169,6 +169,17 @@ template("chrome_extra_paks") { sources += invoker.additional_paks } @@ -1917,7 +1905,7 @@ diff --git a/components/search_engines/android/template_url_service_android.cc b diff --git a/components/search_engines/search_engines_switches.cc b/components/search_engines/search_engines_switches.cc --- a/components/search_engines/search_engines_switches.cc +++ b/components/search_engines/search_engines_switches.cc -@@ -45,6 +45,7 @@ COMPONENT_EXPORT(SEARCH_ENGINES_SWITCHES) +@@ -51,6 +51,7 @@ COMPONENT_EXPORT(SEARCH_ENGINES_SWITCHES) BASE_FEATURE(kSearchEngineChoiceTrigger, "SearchEngineChoiceTrigger", base::FEATURE_ENABLED_BY_DEFAULT); @@ -1991,7 +1979,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 -@@ -256,7 +256,8 @@ class TemplateURLService final : public WebDataServiceConsumer, +@@ -260,7 +260,8 @@ class TemplateURLService final : public WebDataServiceConsumer, TemplateURL* AddWithOverrides(std::unique_ptr template_url, const std::u16string& short_name, const std::u16string& keyword, @@ -2001,7 +1989,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. -@@ -342,7 +343,8 @@ class TemplateURLService final : public WebDataServiceConsumer, +@@ -346,7 +347,8 @@ class TemplateURLService final : public WebDataServiceConsumer, void ResetTemplateURL(TemplateURL* url, const std::u16string& title, const std::u16string& keyword, @@ -2280,7 +2268,7 @@ diff --git a/ui/webui/resources/cr_components/theme_color_picker/BUILD.gn b/ui/w diff --git a/ui/webui/resources/cr_elements/BUILD.gn b/ui/webui/resources/cr_elements/BUILD.gn --- a/ui/webui/resources/cr_elements/BUILD.gn +++ b/ui/webui/resources/cr_elements/BUILD.gn -@@ -37,7 +37,7 @@ build_webui("build") { +@@ -33,7 +33,7 @@ build_webui("build") { "cr_tabs/cr_tabs.css", ] @@ -2288,17 +2276,17 @@ diff --git a/ui/webui/resources/cr_elements/BUILD.gn b/ui/webui/resources/cr_ele + if ((!is_ios) || is_desktop_android) { web_component_files += [ "cr_a11y_announcer/cr_a11y_announcer.ts" ] - non_web_component_files += [ -@@ -145,7 +145,7 @@ build_webui("build") { + ts_files += [ +@@ -141,7 +141,7 @@ build_webui("build") { ] } - if (!is_android && !is_ios) { + if (!is_ios) { - non_web_component_files += [ + ts_files += [ "cr_container_shadow_mixin.ts", "cr_radio_button/cr_radio_button_mixin.ts", -@@ -241,7 +241,7 @@ build_webui("build") { +@@ -237,7 +237,7 @@ build_webui("build") { "../js:build_ts", "//third_party/lit/v3_0:build_ts", ] diff --git a/build/patches/Temporarily-disable-Tab-Group-Sync-Android.patch b/build/patches/Temporarily-disable-Tab-Group-Sync-Android.patch index 4afb1874..499276ba 100644 --- a/build/patches/Temporarily-disable-Tab-Group-Sync-Android.patch +++ b/build/patches/Temporarily-disable-Tab-Group-Sync-Android.patch @@ -3,26 +3,26 @@ Date: Mon, 3 Mar 2025 14:33:03 +0000 Subject: Temporarily disable Tab Group Sync Android --- - .../org/chromium/chrome/browser/flags/ChromeFeatureList.java | 2 +- + .../src/org/chromium/chrome/browser/ChromeTabbedActivity.java | 2 -- components/saved_tab_groups/public/features.cc | 3 +++ - 2 files changed, 4 insertions(+), 1 deletion(-) + 2 files changed, 3 insertions(+), 2 deletions(-) -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 -@@ -841,7 +841,7 @@ public abstract class ChromeFeatureList { - public static final CachedFlag sTabClosureMethodRefactor = - newCachedFlag(TAB_CLOSURE_METHOD_REFACTOR, false); - public static final CachedFlag sTabGroupPaneAndroid = -- newCachedFlag(TAB_GROUP_PANE_ANDROID, /* defaultValue= */ true); -+ newCachedFlag(TAB_GROUP_PANE_ANDROID, /* defaultValue= */ false); - public static final CachedFlag sTabStateFlatBuffer = - newCachedFlag( - TAB_STATE_FLAT_BUFFER, +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 { + builder.registerPane( + PaneId.INCOGNITO_TAB_SWITCHER, + LazyOneshotSupplier.fromSupplier(() -> createTabSwitcherPane(true))); +- builder.registerPane( +- PaneId.TAB_GROUPS, LazyOneshotSupplier.fromSupplier(this::createTabGroupsPane)); + if (ChromeFeatureList.sCrossDeviceTabPaneAndroid.isEnabled()) { + builder.registerPane( + PaneId.CROSS_DEVICE, 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 -@@ -140,4 +140,7 @@ base::TimeDelta GetOriginatingSavedGroupCleanUpTimeInterval() { +@@ -136,4 +136,7 @@ base::TimeDelta GetOriginatingSavedGroupCleanUpTimeInterval() { return base::Seconds(time_in_seconds); } From e8574300e01ecfa56a2a40b63600e2804d5e3b00 Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Fri, 23 May 2025 17:01:32 +0200 Subject: [PATCH 3/8] Bump to 137.0.7151.44 --- build/RELEASE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/RELEASE b/build/RELEASE index a41fbcc7..10791ae2 100644 --- a/build/RELEASE +++ b/build/RELEASE @@ -1 +1 @@ -136.0.7103.125 \ No newline at end of file +137.0.7151.44 \ No newline at end of file From 08ce2310fec76ee7dd544d64cbb5dbe4e66f0a9b Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Sun, 25 May 2025 16:33:47 +0200 Subject: [PATCH 4/8] Patches for v137 --- .../Add-an-always-incognito-mode.patch | 18 ++--- .../Add-menu-item-to-bookmark-all-tabs.patch | 24 +++++- .../Add-menu-item-to-view-source.patch | 22 +++++- .../Add-setting-to-clear-data-on-exit.patch | 21 ++---- ...ow-building-without-enable_reporting.patch | 14 +++- ...ow-building-without-supervised-users.patch | 33 +++++++-- ...Ask-for-restart-on-connection-change.patch | 26 ++++++- .../Content-settings-infrastructure.patch | 13 ++-- ...romite-Branding--improve-settings-ui.patch | 27 ++++--- build/patches/Cromite-Branding.patch | 23 +++++- .../patches/Disable-all-predictors-code.patch | 15 +++- ...e-privacy-issues-in-password-manager.patch | 24 +++++- build/patches/Disable-safety-check.patch | 44 ++++++++++- .../Enable-Global-Privacy-Control.patch | 8 +- build/patches/Enable-component-updater.patch | 6 +- .../patches/Enable-gwp-asan-on-Android.patch | 2 +- .../Enable-native-Android-autofill.patch | 7 +- ...le-search-engine-settings-desktop-ui.patch | 17 ++++- .../Experimental-user-scripts-support.patch | 22 ++++-- build/patches/Fix-chromium-build-bugs.patch | 19 ++++- .../Force-use-vpython3-for-some-scripts.patch | 53 ++++++++++++- ...story-number-of-days-privacy-setting.patch | 10 +-- .../patches/Improve-the-browser-sandbox.patch | 2 +- build/patches/Internal-firewall.patch | 6 +- .../Move-navigation-bar-to-bottom.patch | 61 +++++++++++++-- ...nt-settings-back-to-privacy-settings.patch | 17 ++--- .../patches/Partition-HSTS-cache-by-NAK.patch | 12 ++- .../Partition-blobs-by-top-frame-URL.patch | 46 +++++------- ...ning-all-cookies-by-top-frame-domain.patch | 74 ++++++++++++++++++- ...referrals-in-cross-origin-navigation.patch | 6 +- .../Remove-binary-blob-integrations.patch | 14 +++- .../Restore-Simplified-NTP-launch.patch | 30 +++++++- ...-button-in-top-toolbar-customization.patch | 2 +- ...arily-disable-Tab-Group-Sync-Android.patch | 9 +-- build/patches/User-agent-customization.patch | 21 ++---- build/patches/add-browser-policy.patch | 7 +- build/patches/eyeo-133.0.6943.49-base.patch | 2 +- build/patches/kill-Auth.patch | 13 ++-- 38 files changed, 587 insertions(+), 183 deletions(-) diff --git a/build/patches/Add-an-always-incognito-mode.patch b/build/patches/Add-an-always-incognito-mode.patch index f9172ba3..818cdfb2 100644 --- a/build/patches/Add-an-always-incognito-mode.patch +++ b/build/patches/Add-an-always-incognito-mode.patch @@ -69,7 +69,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/profiles/profile_selections.h | 7 +- .../browser/ui/android/native_page/BUILD.gn | 2 + .../browser/ui/native_page/NativePage.java | 22 ++- - .../browser/omnibox/LocationBarMediator.java | 12 +- + .../browser/omnibox/LocationBarMediator.java | 10 +- .../strings/android_chrome_strings.grd | 25 +++ .../browser/toolbar/LocationBarModel.java | 5 +- chrome/browser/ui/messages/android/BUILD.gn | 1 + @@ -88,7 +88,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../add-an-always-incognito-mode.inc | 1 + .../add-an-always-incognito-mode.inc | 3 + .../add-an-always-incognito-mode.inc | 1 + - 69 files changed, 800 insertions(+), 113 deletions(-) + 69 files changed, 798 insertions(+), 113 deletions(-) create mode 100644 chrome/android/java/res/xml/incognito_preferences.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java @@ -1924,27 +1924,25 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java -@@ -89,6 +89,10 @@ import org.chromium.ui.base.WindowAndroid; +@@ -89,6 +89,11 @@ import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.interpolators.Interpolators; import org.chromium.url.GURL; -+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; +import org.chromium.components.user_prefs.UserPrefs; +import org.chromium.components.prefs.PrefService; ++import org.chromium.chrome.browser.profiles.ProfileManager; ++import org.chromium.chrome.browser.preferences.Pref; + import java.util.ArrayList; import java.util.List; import java.util.function.BooleanSupplier; -@@ -1223,10 +1227,16 @@ class LocationBarMediator +@@ -1223,10 +1228,13 @@ class LocationBarMediator } Tab tab = mLocationBarDataProvider.getTab(); if (tab == null) return false; -+ boolean historyEnabledInIncognito = false; -+ if (AlwaysIncognitoLinkInterceptor.isAlwaysIncognito()) { -+ PrefService prefService = UserPrefs.get(ProfileManager.getLastUsedRegularProfile()); -+ historyEnabledInIncognito = ++ PrefService prefService = UserPrefs.get(ProfileManager.getLastUsedRegularProfile()); ++ boolean historyEnabledInIncognito = + prefService.getBoolean(Pref.INCOGNITO_TAB_HISTORY_ENABLED); -+ } // The save offline button should not be shown on native pages. Currently, trying to // save an offline page in incognito crashes, so don't show it on incognito either. return shouldShowPageActionButtons() 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 43569e04..ce8c4274 100644 --- a/build/patches/Add-menu-item-to-bookmark-all-tabs.patch +++ b/build/patches/Add-menu-item-to-bookmark-all-tabs.patch @@ -28,8 +28,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../bookmarks/browser/bookmark_uuids.cc | 3 ++ components/bookmarks/browser/bookmark_uuids.h | 1 + components/bookmarks/browser/model_loader.cc | 8 +++- + ...ookmark_model_merger_comparison_metrics.cc | 4 ++ .../bookmark_specifics_conversions.cc | 1 + - 25 files changed, 241 insertions(+), 14 deletions(-) + 26 files changed, 245 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 @@ -878,6 +879,27 @@ diff --git a/components/bookmarks/browser/model_loader.cc b/components/bookmarks &sync_metadata_str)) { details->set_local_or_syncable_sync_metadata_str( std::move(sync_metadata_str)); +diff --git a/components/sync_bookmarks/bookmark_model_merger_comparison_metrics.cc b/components/sync_bookmarks/bookmark_model_merger_comparison_metrics.cc +--- a/components/sync_bookmarks/bookmark_model_merger_comparison_metrics.cc ++++ b/components/sync_bookmarks/bookmark_model_merger_comparison_metrics.cc +@@ -38,6 +38,7 @@ const char kOtherBookmarksTag[] = "other_bookmarks"; + constexpr char16_t kBookmarkBarFolderName[] = u"__Bookmarks bar__"; + constexpr char16_t kOtherBookmarksFolderName[] = u"__Other bookmarks__"; + constexpr char16_t kMobileBookmarksFolderName[] = u"__Mobile bookmarks__"; ++constexpr char16_t kTabsCollectionBookmarksFolderName[] = u"__Tabs collection__"; + + using RemoteForest = BookmarkModelMerger::RemoteForest; + using RemoteTreeNode = BookmarkModelMerger::RemoteTreeNode; +@@ -129,6 +130,9 @@ std::u16string_view GetBookmarkNodeTitle(const bookmarks::BookmarkNode* node) { + return kOtherBookmarksFolderName; + case bookmarks::BookmarkNode::MOBILE: + return kMobileBookmarksFolderName; ++ case bookmarks::BookmarkNode::TABS_COLLECTION: ++ return kTabsCollectionBookmarksFolderName; ++ + } + NOTREACHED(); + } diff --git a/components/sync_bookmarks/bookmark_specifics_conversions.cc b/components/sync_bookmarks/bookmark_specifics_conversions.cc --- a/components/sync_bookmarks/bookmark_specifics_conversions.cc +++ b/components/sync_bookmarks/bookmark_specifics_conversions.cc diff --git a/build/patches/Add-menu-item-to-view-source.patch b/build/patches/Add-menu-item-to-view-source.patch index 63d6e6d3..f2af3d95 100644 --- a/build/patches/Add-menu-item-to-view-source.patch +++ b/build/patches/Add-menu-item-to-view-source.patch @@ -10,9 +10,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../chrome/browser/app/ChromeActivity.java | 5 +++++ .../appmenu/AppMenuPropertiesDelegateImpl.java | 17 +++++++++++++++++ .../CustomTabAppMenuPropertiesDelegate.java | 1 + - .../TabbedAppMenuPropertiesDelegate.java | 2 +- + .../TabbedAppMenuPropertiesDelegate.java | 6 +++--- .../android/strings/android_chrome_strings.grd | 4 ++++ - 8 files changed, 36 insertions(+), 1 deletion(-) + 8 files changed, 38 insertions(+), 3 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 @@ -108,6 +108,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/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 + if (menuGroup == MenuGroup.PAGE_MENU) { + preparePageMenu(menu, currentTab, handler, isIncognito); + } +- prepareCommonMenuItems(menu, menuGroup, isIncognito); ++ prepareCommonMenuItems(menu, menuGroup, isIncognito, currentTab); + } + + private void setMenuGroupVisibility(@MenuGroup int menuGroup, Menu menu) { @@ -296,7 +296,7 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm isNativePage, isFileScheme, isContentScheme, isIncognito, url)); @@ -117,6 +126,15 @@ 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()); + } + +- private void prepareCommonMenuItems(Menu menu, @MenuGroup int menuGroup, boolean isIncognito) { ++ private void prepareCommonMenuItems(Menu menu, @MenuGroup int menuGroup, boolean isIncognito, Tab currentTab) { + boolean always_incognito = AlwaysIncognitoLinkInterceptor.isAlwaysIncognito(); + if (always_incognito) { + final MenuItem newTabOption = menu.findItem(R.id.new_tab_menu_id); 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/Add-setting-to-clear-data-on-exit.patch b/build/patches/Add-setting-to-clear-data-on-exit.patch index d6419c1a..4981bf60 100644 --- a/build/patches/Add-setting-to-clear-data-on-exit.patch +++ b/build/patches/Add-setting-to-clear-data-on-exit.patch @@ -999,24 +999,19 @@ diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage diff --git a/content/public/browser/browsing_data_remover.h b/content/public/browser/browsing_data_remover.h --- a/content/public/browser/browsing_data_remover.h +++ b/content/public/browser/browsing_data_remover.h -@@ -151,9 +151,11 @@ class BrowsingDataRemover { - static constexpr DataType DATA_TYPE_RELATED_WEBSITE_SETS_PERMISSIONS = 1 - << 24; +@@ -162,11 +162,16 @@ class BrowsingDataRemover { -+ static constexpr DataType DATA_TYPE_SKIP_SSL_HOST_STATE = 1 << 25; -+ - // Device bound sessions - // (https://github.com/WICG/dbsc/blob/main/README.md) -- static constexpr DataType DATA_TYPE_DEVICE_BOUND_SESSIONS = 1 << 25; -+ static constexpr DataType DATA_TYPE_DEVICE_BOUND_SESSIONS = 1 << 26; + // Clear-Site-Data Interaction with Prefetch and Prerender. + static constexpr DataType DATA_TYPE_PREFETCH_CACHE = 1 << 27; +- static constexpr DataType DATA_TYPE_PRERENDER_CACHE = 1 << 28; ++ static constexpr DataType DATA_TYPE_PRERENDER_CACHE = 1 << 29; - // Interest group data that should be cleared in response to user action, - // but not Clear-Site-Site data. -@@ -167,6 +169,9 @@ class BrowsingDataRemover { // Embedders can add more datatypes beyond this point. static constexpr DataType DATA_TYPE_CONTENT_END = DATA_TYPE_PRERENDER_CACHE; -+ static_assert(DATA_TYPE_CONTENT_END == DATA_TYPE_DEVICE_BOUND_SESSIONS, ++ static constexpr DataType DATA_TYPE_SKIP_SSL_HOST_STATE = 1 << 28; ++ ++ static_assert(DATA_TYPE_CONTENT_END == DATA_TYPE_PRERENDER_CACHE, + "Please check."); + // All data stored by the Attribution Reporting API. diff --git a/build/patches/Allow-building-without-enable_reporting.patch b/build/patches/Allow-building-without-enable_reporting.patch index b18c177a..efe24a7d 100644 --- a/build/patches/Allow-building-without-enable_reporting.patch +++ b/build/patches/Allow-building-without-enable_reporting.patch @@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/network/reporting_service_proxy.cc | 3 +++ .../renderer_host/render_frame_host_impl.cc | 6 ------ .../coop/cross_origin_opener_policy_reporter.cc | 16 +++++++--------- - .../dip/document_isolation_policy_reporter.cc | 2 ++ + .../dip/document_isolation_policy_reporter.cc | 3 +++ .../web_package/signed_exchange_reporter.cc | 2 ++ ...content_switch_dependent_feature_overrides.cc | 1 + .../Allow-building-without-enable_reporting.inc | 2 ++ @@ -26,7 +26,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../renderer/core/frame/reporting_context.cc | 9 +++++++++ .../renderer/core/frame/reporting_context.h | 7 +++++-- .../renderer/core/frame/reporting_observer.cc | 3 +-- - 22 files changed, 63 insertions(+), 25 deletions(-) + 22 files changed, 64 insertions(+), 25 deletions(-) create mode 100644 cromite_flags/services/network/public/cpp/features_cc/Allow-building-without-enable_reporting.inc diff --git a/chrome/browser/net/chrome_report_sender.cc b/chrome/browser/net/chrome_report_sender.cc @@ -219,7 +219,15 @@ diff --git a/content/browser/security/coop/cross_origin_opener_policy_reporter.c diff --git a/content/browser/security/dip/document_isolation_policy_reporter.cc b/content/browser/security/dip/document_isolation_policy_reporter.cc --- a/content/browser/security/dip/document_isolation_policy_reporter.cc +++ b/content/browser/security/dip/document_isolation_policy_reporter.cc -@@ -94,11 +94,13 @@ void DocumentIsolationPolicyReporter::QueueAndNotify( +@@ -7,6 +7,7 @@ + #include + + #include "base/values.h" ++#include "net/net_buildflags.h" + #include "content/public/browser/storage_partition.h" + #include "services/network/public/cpp/request_destination.h" + #include "services/network/public/mojom/network_context.mojom.h" +@@ -94,11 +95,13 @@ void DocumentIsolationPolicyReporter::QueueAndNotify( } body_to_pass.Set("disposition", disposition); diff --git a/build/patches/Allow-building-without-supervised-users.patch b/build/patches/Allow-building-without-supervised-users.patch index 5a9e4ce1..7417decf 100644 --- a/build/patches/Allow-building-without-supervised-users.patch +++ b/build/patches/Allow-building-without-supervised-users.patch @@ -11,13 +11,15 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/profiles/profile_attributes_entry.cc | 2 +- chrome/browser/profiles/profile_impl.cc | 5 +---- chrome/browser/profiles/profile_manager.cc | 7 ------- + .../supervised_user/supervised_user_browser_utils.cc | 1 + chrome/browser/ui/webui/managed_ui_handler.cc | 4 ---- .../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 +---- - components/supervised_user/core/common/features.cc | 5 ++++- - 13 files changed, 14 insertions(+), 31 deletions(-) + components/supervised_user/core/common/features.cc | 2 +- + extensions/browser/api/management/management_api.cc | 1 + + 15 files changed, 13 insertions(+), 31 deletions(-) diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn @@ -130,6 +132,17 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile #if BUILDFLAG(IS_CHROMEOS) user_manager::User* user = ash::ProfileHelper::Get()->GetUserByProfile(profile); +diff --git a/chrome/browser/supervised_user/supervised_user_browser_utils.cc b/chrome/browser/supervised_user/supervised_user_browser_utils.cc +--- a/chrome/browser/supervised_user/supervised_user_browser_utils.cc ++++ b/chrome/browser/supervised_user/supervised_user_browser_utils.cc +@@ -99,6 +99,7 @@ bool SupervisedUserCanSkipExtensionParentApprovals(const Profile* profile) { + } + + bool AreExtensionsPermissionsEnabled(Profile* profile) { ++ if ((true)) return false; + #if BUILDFLAG(ENABLE_EXTENSIONS_CORE) + return profile->IsChild(); + #else diff --git a/chrome/browser/ui/webui/managed_ui_handler.cc b/chrome/browser/ui/webui/managed_ui_handler.cc --- a/chrome/browser/ui/webui/managed_ui_handler.cc +++ b/chrome/browser/ui/webui/managed_ui_handler.cc @@ -225,13 +238,21 @@ 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,8 @@ BASE_FEATURE(kWaitUntilAccessTokenAvailableForClassifyUrl, +@@ -141,4 +140,5 @@ BASE_FEATURE(kWaitUntilAccessTokenAvailableForClassifyUrl, #endif ); +SET_CROMITE_FEATURE_DISABLED(kLocalWebApprovals); -+#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) -+SET_CROMITE_FEATURE_DISABLED(kEnableExtensionsPermissionsForSupervisedUsersOnDesktop); -+#endif } // namespace supervised_user +diff --git a/extensions/browser/api/management/management_api.cc b/extensions/browser/api/management/management_api.cc +--- a/extensions/browser/api/management/management_api.cc ++++ b/extensions/browser/api/management/management_api.cc +@@ -310,6 +310,7 @@ void AddExtensionInfo(const Extension* source_extension, + } + + bool PlatformSupportsApprovalFlowForExtensions() { ++ if ((true)) return false; + #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ + BUILDFLAG(IS_WIN) + return true; -- diff --git a/build/patches/Ask-for-restart-on-connection-change.patch b/build/patches/Ask-for-restart-on-connection-change.patch index 7ff64dca..0d280b1f 100644 --- a/build/patches/Ask-for-restart-on-connection-change.patch +++ b/build/patches/Ask-for-restart-on-connection-change.patch @@ -32,6 +32,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../browser/tabwindow/TabWindowManager.java | 2 + .../tabwindow/TabWindowManagerImpl.java | 10 ++ .../Ask-for-restart-on-connection-change.grdp | 15 +++ + .../java/res/layout/floating_snackbar.xml | 10 ++ .../android/java/res/layout/snackbar.xml | 10 ++ .../ui/messages/snackbar/Snackbar.java | 16 +++ .../ui/messages/snackbar/SnackbarManager.java | 6 + @@ -49,7 +50,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../blink/renderer/core/frame/local_frame.cc | 2 + .../main_thread/frame_scheduler_impl.cc | 2 + .../main_thread/page_scheduler_impl.cc | 9 +- - 29 files changed, 322 insertions(+), 10 deletions(-) + 30 files changed, 332 insertions(+), 10 deletions(-) create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sAskForRestartOnConnectionChange.java create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Ask-for-restart-on-connection-change.grdp create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Ask-for-restart-on-connection-change.inc @@ -98,7 +99,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in +import org.chromium.base.supplier.ObservableSupplier; +import org.chromium.url.GURL; +import org.chromium.chrome.R; -+import org.chromium.chrome.browser.app.tabmodel.TabWindowManagerSingleton; ++import org.chromium.chrome.browser.app.tabwindow.TabWindowManagerSingleton; +import org.chromium.chrome.browser.layouts.LayoutManager; +import org.chromium.chrome.browser.compositor.layouts.Layout; +import org.chromium.chrome.browser.compositor.layouts.LayoutManagerImpl; @@ -111,7 +112,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in +import org.chromium.chrome.browser.tab.Tab; +import org.chromium.chrome.browser.tabmodel.TabModelUtils; +import org.chromium.chrome.browser.tabmodel.TabModelSelector; -+import org.chromium.chrome.browser.tabmodel.TabWindowManager; ++import org.chromium.chrome.browser.tabwindow.TabWindowManager; +import org.chromium.chrome.browser.lifetime.ApplicationLifetime; +import org.chromium.content_public.browser.WebContentsObserver; +import org.chromium.content_public.browser.WebContents; @@ -452,6 +453,25 @@ new file mode 100644 + Not now + + +diff --git a/chrome/browser/ui/messages/android/java/res/layout/floating_snackbar.xml b/chrome/browser/ui/messages/android/java/res/layout/floating_snackbar.xml +--- a/chrome/browser/ui/messages/android/java/res/layout/floating_snackbar.xml ++++ b/chrome/browser/ui/messages/android/java/res/layout/floating_snackbar.xml +@@ -50,5 +50,15 @@ found in the LICENSE file. + android:paddingEnd="@dimen/snackbar_button_padding" + android:paddingStart="@dimen/snackbar_button_padding" + style="@style/TextButton" /> ++ ++ + + diff --git a/chrome/browser/ui/messages/android/java/res/layout/snackbar.xml b/chrome/browser/ui/messages/android/java/res/layout/snackbar.xml --- a/chrome/browser/ui/messages/android/java/res/layout/snackbar.xml +++ b/chrome/browser/ui/messages/android/java/res/layout/snackbar.xml diff --git a/build/patches/Content-settings-infrastructure.patch b/build/patches/Content-settings-infrastructure.patch index 221354ee..8eda6617 100644 --- a/build/patches/Content-settings-infrastructure.patch +++ b/build/patches/Content-settings-infrastructure.patch @@ -43,7 +43,7 @@ Require: bromite-build-utils.patch .../BromiteCustomContentSetting.java | 155 +++++++ .../BromiteCustomContentSettingImpl.java | 412 ++++++++++++++++++ ...tomTriStateSiteSettingsPreferenceImpl.java | 24 + - .../ContentSettingsResources.java | 38 +- + .../ContentSettingsResources.java | 37 +- .../site_settings/SingleCategorySettings.java | 54 ++- .../site_settings/SingleWebsiteSettings.java | 58 ++- .../site_settings/SiteSettings.java | 33 +- @@ -84,7 +84,7 @@ Require: bromite-build-utils.patch .../platform/web_content_settings_client.h | 13 + .../execution_context/execution_context.cc | 16 + .../execution_context/execution_context.h | 5 + - 73 files changed, 1964 insertions(+), 102 deletions(-) + 73 files changed, 1963 insertions(+), 102 deletions(-) create mode 100644 components/browser_ui/settings/android/java/res/layout/preference_spinner_single_widget.xml create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSetting.java create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSettingImpl.java @@ -2192,7 +2192,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c private final int mIcon; private final int mIconBlocked; private final int mTitle; -@@ -53,7 +53,29 @@ public class ContentSettingsResources { +@@ -53,7 +53,28 @@ public class ContentSettingsResources { private final int mDisabledPrimaryText; private int mDisabledDescriptionText; @@ -2215,7 +2215,6 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c + mSummaryOverrideForScreenReader = summaryOverrideForScreenReader; + mEnabledPrimaryText = 0; + mDisabledPrimaryText = 0; -+ mEnabledDescriptionText = 0; + mDisabledDescriptionText = 0; + } + @@ -2223,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 +651,8 @@ public class ContentSettingsResources { +@@ -629,6 +650,8 @@ public class ContentSettingsResources { R.string.website_settings_vr_ask, R.string.website_settings_vr_block); } @@ -2232,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 +811,14 @@ public class ContentSettingsResources { +@@ -787,6 +810,14 @@ public class ContentSettingsResources { return getResourceItem(contentType).getDefaultDisabledValue(); } @@ -2247,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 +993,8 @@ public class ContentSettingsResources { +@@ -961,6 +992,8 @@ public class ContentSettingsResources { */ public static int @Nullable [] getTriStateSettingDescriptionIDs( int contentType, boolean isPermissionSiteSettingsRadioButtonFeatureEnabled) { diff --git a/build/patches/Cromite-Branding--improve-settings-ui.patch b/build/patches/Cromite-Branding--improve-settings-ui.patch index 033f7074..0155b209 100644 --- a/build/patches/Cromite-Branding--improve-settings-ui.patch +++ b/build/patches/Cromite-Branding--improve-settings-ui.patch @@ -8,10 +8,10 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- chrome/android/chrome_java_resources.gni | 2 +- .../android/java/res/xml/main_preferences.xml | 4 +- - .../res/xml/privacy_preferences_cromite.xml | 192 ++++++++++++++++++ + .../res/xml/privacy_preferences_cromite.xml | 191 ++++++++++++++++++ .../privacy/settings/PrivacySettings.java | 12 +- .../Cromite-settings-ui.grdp | 15 ++ - 5 files changed, 217 insertions(+), 8 deletions(-) + 5 files changed, 216 insertions(+), 8 deletions(-) create mode 100644 chrome/android/java/res/xml/privacy_preferences_cromite.xml create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Cromite-settings-ui.grdp @@ -52,7 +52,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences_cromite.xml b/chrom new file mode 100644 --- /dev/null +++ b/chrome/android/java/res/xml/privacy_preferences_cromite.xml -@@ -0,0 +1,192 @@ +@@ -0,0 +1,191 @@ + ++ + + -+ + + 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 -@@ -189,7 +189,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -188,7 +188,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment public void onCreatePreferencesCromite(Bundle savedInstanceState, String rootKey) { mPageTitle.set(getString(R.string.prefs_privacy_security)); @@ -257,7 +256,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting Preference incognitoTrackingProtectionsPreference = findPreference(PREF_INCOGNITO_TRACKING_PROTECTIONS); -@@ -280,10 +280,12 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -279,10 +279,12 @@ public class PrivacySettings extends ChromeBaseSettingsFragment ChromeSwitchPreference passwordLeakTogglePref = (ChromeSwitchPreference) findPreference(PREF_PASSWORD_LEAK_DETECTION); diff --git a/build/patches/Cromite-Branding.patch b/build/patches/Cromite-Branding.patch index 00a6ea65..e5948f8a 100644 --- a/build/patches/Cromite-Branding.patch +++ b/build/patches/Cromite-Branding.patch @@ -35,6 +35,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../theme/chromium/win/tiles/SmallLogo.png | Bin 9784 -> 12363 bytes .../chromium/product_logo_32.png | Bin 822 -> 2301 bytes chrome/browser/BUILD.gn | 1 + + .../browser/flags/ChromeFeatureList.java | 2 +- .../chrome/browser/omaha/UpdateConfigs.java | 2 +- chrome/browser/prefs/BUILD.gn | 1 + .../prefs/chrome_pref_service_factory.cc | 6 +- @@ -58,8 +59,10 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../webui/version/resources/about_version.ts | 4 +- .../resources/about_version_mobile.css | 9 ++ content/child/runtime_features.cc | 44 ++++----- + .../Cromite-Branding.inc | 1 + tools/grit/grit/grd_reader.py | 35 +++++++ - 55 files changed, 201 insertions(+), 128 deletions(-) + 57 files changed, 203 insertions(+), 129 deletions(-) + create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Cromite-Branding.inc diff --git a/build/BUILD.gn b/build/BUILD.gn --- a/build/BUILD.gn @@ -13163,6 +13166,18 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "//cc", "//chrome:extra_resources", "//chrome:resources", +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 +@@ -1073,7 +1073,7 @@ public abstract class ChromeFeatureList { + public static final MutableFlagWithSafeDefault sSuppressToolbarCapturesAtGestureEnd = + newMutableFlagWithSafeDefault(SUPPRESS_TOOLBAR_CAPTURES_AT_GESTURE_END, false); + public static final MutableFlagWithSafeDefault sSwapNewTabAndNewTabInGroupAndroid = +- newMutableFlagWithSafeDefault(SWAP_NEW_TAB_AND_NEW_TAB_IN_GROUP_ANDROID, false); ++ newMutableFlagWithSafeDefault(SWAP_NEW_TAB_AND_NEW_TAB_IN_GROUP_ANDROID, true); + public static final MutableFlagWithSafeDefault sTabGroupEntryPointsAndroid = + newMutableFlagWithSafeDefault(TAB_GROUP_ENTRY_POINTS_ANDROID, false); + public static final MutableFlagWithSafeDefault sTabGroupParityBottomSheetAndroid = diff --git a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/omaha/UpdateConfigs.java b/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/omaha/UpdateConfigs.java --- a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/omaha/UpdateConfigs.java +++ b/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/omaha/UpdateConfigs.java @@ -19067,6 +19082,12 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. << "PermissionElement cannot be enabled in this configuration. Use --" << switches::kEnableFeatures << "=" << blink::features::kPermissionElement.name << " instead."; +diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Cromite-Branding.inc b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Cromite-Branding.inc +new file mode 100644 +--- /dev/null ++++ b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Cromite-Branding.inc +@@ -0,0 +1 @@ ++SET_CROMITE_FEATURE_DISABLED(kSwapNewTabAndNewTabInGroupAndroid); diff --git a/tools/grit/grit/grd_reader.py b/tools/grit/grit/grd_reader.py --- a/tools/grit/grit/grd_reader.py +++ b/tools/grit/grit/grd_reader.py diff --git a/build/patches/Disable-all-predictors-code.patch b/build/patches/Disable-all-predictors-code.patch index d8876311..3e82b956 100644 --- a/build/patches/Disable-all-predictors-code.patch +++ b/build/patches/Disable-all-predictors-code.patch @@ -28,6 +28,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../read_anything/read_anything_app_controller.h | 4 ++++ chrome/utility/BUILD.gn | 2 +- chrome/utility/services.cc | 8 -------- + components/BUILD.gn | 2 +- .../autofill_optimization_guide.cc | 5 +++-- .../omnibox/browser/autocomplete_controller.cc | 4 ++++ .../omnibox/browser/base_search_provider.cc | 4 ++-- @@ -53,7 +54,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../core/html/parser/html_document_parser.cc | 1 + .../document_speculation_rules.cc | 1 + .../platform/runtime_enabled_features.json5 | 2 +- - 48 files changed, 122 insertions(+), 47 deletions(-) + 49 files changed, 123 insertions(+), 48 deletions(-) create mode 100644 cromite_flags/chrome/browser/browser_features_cc/Disable-all-predictors-code.inc create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-all-predictors-code.inc create mode 100644 cromite_flags/chrome/common/chrome_features_cc/Disable-all-predictors-code.inc @@ -583,6 +584,18 @@ diff --git a/chrome/utility/services.cc b/chrome/utility/services.cc services.Add(RunScreenAIServiceFactory); #endif // !BUILDFLAG(IS_ANDROID) +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") { + "//components/media_router/common/providers/cast/channel:unit_tests", + "//components/page_info:unit_tests", + "//components/permissions:unit_tests", +- "//components/permissions/prediction_service:unit_tests", ++ # "//components/permissions/prediction_service:unit_tests", + "//components/privacy_sandbox:unit_tests", + "//components/privacy_sandbox/privacy_sandbox_attestations:unit_tests", + "//components/safety_check:unit_tests", diff --git a/components/autofill/core/browser/integrators/optimization_guide/autofill_optimization_guide.cc b/components/autofill/core/browser/integrators/optimization_guide/autofill_optimization_guide.cc --- a/components/autofill/core/browser/integrators/optimization_guide/autofill_optimization_guide.cc +++ b/components/autofill/core/browser/integrators/optimization_guide/autofill_optimization_guide.cc diff --git a/build/patches/Disable-privacy-issues-in-password-manager.patch b/build/patches/Disable-privacy-issues-in-password-manager.patch index d90bbb5b..b4361384 100644 --- a/build/patches/Disable-privacy-issues-in-password-manager.patch +++ b/build/patches/Disable-privacy-issues-in-password-manager.patch @@ -16,8 +16,9 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../affiliation/password_affiliation_source_adapter.cc | 4 ++++ .../leak_detection/leak_detection_check_factory_impl.cc | 5 +++++ .../browser/leak_detection/leak_detection_check_impl.cc | 3 +-- + .../password_manager/core/browser/password_manager.cc | 4 ++-- .../Disable-privacy-issues-in-password-manager.inc | 1 + - 12 files changed, 24 insertions(+), 15 deletions(-) + 13 files changed, 26 insertions(+), 17 deletions(-) create mode 100644 cromite_flags/components/password_manager/core/browser/features/password_features_cc/Disable-privacy-issues-in-password-manager.inc diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml @@ -168,6 +169,27 @@ diff --git a/components/password_manager/core/browser/leak_detection/leak_detect } void LeakDetectionCheckImpl::Start(LeakDetectionInitiator initiator, +diff --git a/components/password_manager/core/browser/password_manager.cc b/components/password_manager/core/browser/password_manager.cc +--- a/components/password_manager/core/browser/password_manager.cc ++++ b/components/password_manager/core/browser/password_manager.cc +@@ -498,7 +498,7 @@ void PasswordManager::RegisterProfilePrefs( + #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) || \ + BUILDFLAG(IS_CHROMEOS) + registry->RegisterBooleanPref(prefs::kBiometricAuthenticationBeforeFilling, +- false); ++ true); + #endif // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) || + // BUILDFLAG(IS_CHROMEOS) + #if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_IOS) // Desktop +@@ -531,7 +531,7 @@ void PasswordManager::RegisterProfilePrefs( + registry->RegisterBooleanPref(prefs::kAccountStoreMigratedToOSCryptAsync, + false); + registry->RegisterBooleanPref( +- prefs::kAutomaticPasskeyUpgrades, true, ++ prefs::kAutomaticPasskeyUpgrades, false, + user_prefs::PrefRegistrySyncable::SYNCABLE_PRIORITY_PREF); + } + diff --git a/cromite_flags/components/password_manager/core/browser/features/password_features_cc/Disable-privacy-issues-in-password-manager.inc b/cromite_flags/components/password_manager/core/browser/features/password_features_cc/Disable-privacy-issues-in-password-manager.inc new file mode 100644 --- /dev/null diff --git a/build/patches/Disable-safety-check.patch b/build/patches/Disable-safety-check.patch index 7243dfa8..870ab60f 100644 --- a/build/patches/Disable-safety-check.patch +++ b/build/patches/Disable-safety-check.patch @@ -12,11 +12,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../chrome/browser/settings/MainSettings.java | 2 +- .../settings/SettingsNavigationImpl.java | 13 +---- chrome/browser/BUILD.gn | 1 - + chrome/browser/safety_check/android/BUILD.gn | 2 - + .../safety_check/SafetyCheckBridge.java | 4 +- .../suggestions/action/OmniboxPedal.java | 3 - chrome/browser/ui/tab_helpers.cc | 2 +- .../site_settings/SiteSettings.java | 2 +- .../Disable-safety-check.inc | 1 + - 12 files changed, 9 insertions(+), 113 deletions(-) + 14 files changed, 11 insertions(+), 117 deletions(-) create mode 100644 cromite_flags/chrome/common/chrome_features_cc/Disable-safety-check.inc diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn @@ -291,6 +293,46 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "//chrome/browser/safety_hub/android", "//chrome/browser/search_resumption:jni_headers", "//chrome/browser/serial/android:jni_headers", +diff --git a/chrome/browser/safety_check/android/BUILD.gn b/chrome/browser/safety_check/android/BUILD.gn +--- a/chrome/browser/safety_check/android/BUILD.gn ++++ b/chrome/browser/safety_check/android/BUILD.gn +@@ -14,7 +14,6 @@ generate_jni("jni_headers") { + source_set("android") { + sources = [ "safety_check_bridge.cc" ] + deps = [ +- ":jni_headers", + "//chrome/browser/signin:identity_manager_provider", + "//components/password_manager/core/browser/leak_detection", + "//components/prefs", +@@ -73,7 +72,6 @@ android_library("java") { + + srcjar_deps = [ + ":bulk_leak_check_service_enums", +- ":jni_headers", + ":safety_check_enums", + ] + resources_package = "org.chromium.chrome.browser.safety_check" +diff --git a/chrome/browser/safety_check/android/java/src/org/chromium/chrome/browser/safety_check/SafetyCheckBridge.java b/chrome/browser/safety_check/android/java/src/org/chromium/chrome/browser/safety_check/SafetyCheckBridge.java +--- a/chrome/browser/safety_check/android/java/src/org/chromium/chrome/browser/safety_check/SafetyCheckBridge.java ++++ b/chrome/browser/safety_check/android/java/src/org/chromium/chrome/browser/safety_check/SafetyCheckBridge.java +@@ -26,7 +26,7 @@ public class SafetyCheckBridge { + + /** Returns whether the user is signed in for the purposes of password check. */ + boolean userSignedIn() { +- return SafetyCheckBridgeJni.get().userSignedIn(mProfile); ++ return false; + } + + /** +@@ -37,7 +37,7 @@ public class SafetyCheckBridge { + */ + @SafeBrowsingStatus + int checkSafeBrowsing() { +- return SafetyCheckBridgeJni.get().checkSafeBrowsing(mProfile); ++ return SafeBrowsingStatus.DISABLED; + } + + /** C++ method signatures. */ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/action/OmniboxPedal.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/action/OmniboxPedal.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/action/OmniboxPedal.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/action/OmniboxPedal.java diff --git a/build/patches/Enable-Global-Privacy-Control.patch b/build/patches/Enable-Global-Privacy-Control.patch index e651b598..92cf2bac 100644 --- a/build/patches/Enable-Global-Privacy-Control.patch +++ b/build/patches/Enable-Global-Privacy-Control.patch @@ -172,7 +172,7 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -126,6 +126,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -125,6 +125,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private static final String PREF_HTTPS_FIRST_MODE_LEGACY = "https_first_mode_legacy"; private static final String PREF_SECURE_DNS = "secure_dns"; private static final String PREF_USAGE_STATS = "usage_stats_reporting"; @@ -180,7 +180,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting private static final String PREF_SAFE_BROWSING = "safe_browsing"; private static final String PREF_PASSWORD_LEAK_DETECTION = "password_leak_detection"; private static final String PREF_SYNC_AND_SERVICES_LINK = "sync_and_services_link"; -@@ -570,6 +571,14 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -569,6 +570,14 @@ public class PrivacySettings extends ChromeBaseSettingsFragment : R.string.text_off); } @@ -368,8 +368,8 @@ new file mode 100644 + }; + } + -+ prefs: {enable_gpc: chrome.settingsPrivate.PrefObject}; -+ private showDialog_: boolean; ++ declare prefs: {enable_gpc: chrome.settingsPrivate.PrefObject}; ++ declare private showDialog_: boolean; + + private onDomChange_() { + if (this.showDialog_) { diff --git a/build/patches/Enable-component-updater.patch b/build/patches/Enable-component-updater.patch index 25cf3f39..31a1e75b 100644 --- a/build/patches/Enable-component-updater.patch +++ b/build/patches/Enable-component-updater.patch @@ -255,8 +255,8 @@ diff --git a/components/component_updater/component_installer.cc b/components/co base::DeletePathRecursively(unpack_path); if (result.result.category != update_client::ErrorCategory::kNone) { + LOG(ERROR) << "ComponentInstaller:" -+ << " Install error " << result.result.code_ -+ << " extra " << result.result.extra_; ++ << " Install error " << result.result.code ++ << " extra " << result.result.extra; main_task_runner_->PostTask(FROM_HERE, base::BindOnce(std::move(callback), result)); return; @@ -686,7 +686,7 @@ diff --git a/components/update_client/utils.cc b/components/update_client/utils. hasher->Finish(sha256_hash); + DLOG(INFO) << "VerifyFileHash256 " -+ << "actual_hash=" << base::HexEncode(actual_hash); ++ << "sha256_hash=" << base::HexEncode(sha256_hash); + return base::span(sha256_hash) == base::span(expected_hash); } diff --git a/build/patches/Enable-gwp-asan-on-Android.patch b/build/patches/Enable-gwp-asan-on-Android.patch index 2802e300..e49ebc2f 100644 --- a/build/patches/Enable-gwp-asan-on-Android.patch +++ b/build/patches/Enable-gwp-asan-on-Android.patch @@ -248,7 +248,7 @@ diff --git a/components/memory_system/memory_system.cc b/components/memory_syste if (gwp_asan_parameters) { InitializeGwpASan(*gwp_asan_parameters, initialization_data); -+ LOG(INFO) << "MemorySystem: Gwp Asan Initialized."; ++ DLOG(INFO) << "MemorySystem: Gwp Asan Initialized."; } if (profiling_client_parameters) { diff --git a/build/patches/Enable-native-Android-autofill.patch b/build/patches/Enable-native-Android-autofill.patch index 1f0d5369..62ad7855 100644 --- a/build/patches/Enable-native-Android-autofill.patch +++ b/build/patches/Enable-native-Android-autofill.patch @@ -37,7 +37,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/content_autofill_driver.cc | 11 +++ .../content/browser/content_autofill_driver.h | 10 +++ .../content_autofill_driver_factory.cc | 12 +++ - .../content/renderer/autofill_agent.cc | 4 + + .../content/renderer/autofill_agent.cc | 5 ++ .../renderer/password_autofill_agent.cc | 5 +- .../browser/foundations/autofill_driver.h | 2 + .../foundations/autofill_driver_factory.cc | 4 + @@ -48,7 +48,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../autofill/core/common/autofill_features.h | 22 ----- .../autofill/core/common/autofill_prefs.cc | 4 +- .../autofill/core/common/autofill_prefs.h | 5 ++ - 33 files changed, 275 insertions(+), 165 deletions(-) + 33 files changed, 276 insertions(+), 165 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 @@ -813,7 +813,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,18 @@ void AutofillAgent::ShowSuggestions( +@@ -1529,14 +1529,19 @@ void AutofillAgent::ShowSuggestions( password_generation_agent_->ShowPasswordGenerationSuggestions( input_element, form_cache)) { is_popup_possibly_visible_ = true; @@ -821,6 +821,7 @@ diff --git a/components/autofill/content/renderer/autofill_agent.cc b/components return; +#endif } ++ [[maybe_unused]] bool password_agent_handled_request = TryShowPasswordSuggestions( input_element, IsPasswordsAutofillManuallyTriggered(trigger_source), password_request); diff --git a/build/patches/Enable-search-engine-settings-desktop-ui.patch b/build/patches/Enable-search-engine-settings-desktop-ui.patch index 08d98d58..83c90568 100644 --- a/build/patches/Enable-search-engine-settings-desktop-ui.patch +++ b/build/patches/Enable-search-engine-settings-desktop-ui.patch @@ -14,6 +14,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html chrome/browser/BUILD.gn | 3 + .../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/settings/BUILD.gn | 2 +- .../resources/settings/page_visibility.ts | 36 ++- @@ -77,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 +- - 70 files changed, 1150 insertions(+), 69 deletions(-) + 71 files changed, 1151 insertions(+), 70 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 @@ -493,6 +494,18 @@ diff --git a/chrome/browser/chrome_browser_interface_binders_webui.cc b/chrome/b RegisterWebUIControllerInterfaceBinder< help_bubble::mojom::HelpBubbleHandlerFactory, UserEducationInternalsUI, settings::SettingsUI, ReadingListUI, NewTabPageUI, CustomizeChromeUI, +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 @@ + #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; 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 @@ -929,7 +942,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn + "webui/favicon_source.h", + ] + deps += [ -+ "//chrome/browser/search/background:ntp_background_proto", ++ "//components/themes:ntp_background_proto", + ] } else { # !is_android diff --git a/build/patches/Experimental-user-scripts-support.patch b/build/patches/Experimental-user-scripts-support.patch index 42d65eb6..f5ebbbbf 100644 --- a/build/patches/Experimental-user-scripts-support.patch +++ b/build/patches/Experimental-user-scripts-support.patch @@ -124,7 +124,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../user_scripts/renderer/user_script_set.cc | 264 ++++++ .../user_scripts/renderer/user_script_set.h | 101 +++ .../renderer/user_script_set_manager.cc | 76 ++ - .../renderer/user_script_set_manager.h | 63 ++ + .../renderer/user_script_set_manager.h | 64 ++ .../renderer/user_scripts_dispatcher.cc | 36 + .../renderer/user_scripts_dispatcher.h | 49 ++ .../renderer/user_scripts_renderer_client.cc | 108 +++ @@ -132,10 +132,11 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../renderer/web_ui_injection_host.cc | 40 + .../renderer/web_ui_injection_host.h | 31 + .../strings/userscripts_strings.grdp | 54 ++ + content/common/features.gni | 2 +- .../Experimental-user-scripts-support.inc | 13 + ipc/ipc_message_start.h | 1 + tools/gritsettings/resource_ids.spec | 6 + - 108 files changed, 9354 insertions(+), 2 deletions(-) + 109 files changed, 9356 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 @@ -3265,7 +3266,7 @@ new file mode 100755 + return {}; + + // Copy the pickle to shared memory. -+ memcpy(shared_memory.mapping.memory(), pickle.data(), pickle.size()); ++ shared_memory.mapping.GetMemoryAsSpan().copy_prefix_from(pickle); + return std::move(shared_memory.region); +} + @@ -9852,7 +9853,7 @@ diff --git a/components/user_scripts/renderer/user_script_set_manager.h b/compon new file mode 100755 --- /dev/null +++ b/components/user_scripts/renderer/user_script_set_manager.h -@@ -0,0 +1,63 @@ +@@ -0,0 +1,64 @@ +#ifndef USERSCRIPTS_RENDER_SET_MANAGER_H_ +#define USERSCRIPTS_RENDER_SET_MANAGER_H_ + @@ -9861,6 +9862,7 @@ new file mode 100755 +#include +#include + ++#include "ipc/ipc_message.h" +#include "base/memory/read_only_shared_memory_region.h" +#include "base/observer_list.h" +#include "content/public/renderer/render_thread_observer.h" @@ -10079,7 +10081,7 @@ new file mode 100755 +void UserScriptsRendererClient::RenderFrameCreated( + content::RenderFrame* render_frame, + service_manager::BinderRegistry* registry) { -+ ++ if (!chrome_observer_) return; + auto params = chrome_observer_->GetDynamicParams(); + enabled_ = params->allow_userscript; + if (!enabled_) return; @@ -10308,6 +10310,16 @@ new file mode 100755 + + + +diff --git a/content/common/features.gni b/content/common/features.gni +--- a/content/common/features.gni ++++ b/content/common/features.gni +@@ -20,5 +20,5 @@ declare_args() { + mbi_mode = is_linux || is_chromeos || is_mac || is_win || is_android + + # We allow legacy IPC to be enabled for Pepper usage. +- content_enable_legacy_ipc = enable_ppapi ++ content_enable_legacy_ipc = true + } diff --git a/cromite_flags/chrome/browser/about_flags_cc/Experimental-user-scripts-support.inc b/cromite_flags/chrome/browser/about_flags_cc/Experimental-user-scripts-support.inc new file mode 100644 --- /dev/null diff --git a/build/patches/Fix-chromium-build-bugs.patch b/build/patches/Fix-chromium-build-bugs.patch index f7cd5a29..a7559718 100644 --- a/build/patches/Fix-chromium-build-bugs.patch +++ b/build/patches/Fix-chromium-build-bugs.patch @@ -6,6 +6,7 @@ because of https://bugs.chromium.org/p/chromium/issues/detail?id=1491776#c10 --- BUILD.gn | 1 - + build/config/compiler/BUILD.gn | 6 +++++- .../navigation_predictor_metrics_document_data.h | 2 ++ chrome/browser/safe_browsing/BUILD.gn | 1 + .../component_updater/installer_policies/BUILD.gn | 1 + @@ -16,7 +17,7 @@ https://bugs.chromium.org/p/chromium/issues/detail?id=1491776#c10 content/browser/browser_interface_binders.cc | 1 + net/BUILD.gn | 1 + services/webnn/dml/graph_impl_dml.cc | 2 ++ - 11 files changed, 16 insertions(+), 16 deletions(-) + 12 files changed, 21 insertions(+), 17 deletions(-) diff --git a/BUILD.gn b/BUILD.gn --- a/BUILD.gn @@ -29,6 +30,22 @@ diff --git a/BUILD.gn b/BUILD.gn "//android_webview/tools/sdk_sandbox", "//android_webview/tools/system_webview_shell", "//chrome/android:chrome_junit_tests", +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 +@@ -1674,7 +1674,11 @@ config("clang_revision") { + _expected_clang_revision = "$_py_revision-$_py_subrevision" + + assert( +- _clang_revision == _expected_clang_revision, ++ filter_include([ _clang_revision ], ++ [ ++ _expected_clang_revision, ++ "$_expected_clang_revision,*", ++ ]) != [], + "clang_revision=\"$_clang_revision\" but update.py expected \"$_expected_clang_revision\". Did you forget to gclient sync?") + } + } diff --git a/chrome/browser/navigation_predictor/navigation_predictor_metrics_document_data.h b/chrome/browser/navigation_predictor/navigation_predictor_metrics_document_data.h --- a/chrome/browser/navigation_predictor/navigation_predictor_metrics_document_data.h +++ b/chrome/browser/navigation_predictor/navigation_predictor_metrics_document_data.h diff --git a/build/patches/Force-use-vpython3-for-some-scripts.patch b/build/patches/Force-use-vpython3-for-some-scripts.patch index 6d64f1e3..e3339a0a 100644 --- a/build/patches/Force-use-vpython3-for-some-scripts.patch +++ b/build/patches/Force-use-vpython3-for-some-scripts.patch @@ -8,11 +8,37 @@ required by the chromium build tools. License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- - components/search_engines/BUILD.gn | 4 +++- - components/variations/field_trial_config/BUILD.gn | 4 +++- - tools/json_to_struct/json_to_struct.gni | 4 +++- - 3 files changed, 9 insertions(+), 3 deletions(-) + components/metrics/generate_expired_histograms_array.gni | 7 +++++-- + components/search_engines/BUILD.gn | 4 +++- + components/variations/field_trial_config/BUILD.gn | 4 +++- + tools/json_to_struct/json_to_struct.gni | 4 +++- + tools/metrics/generate_allowlist_from_histograms_file.gni | 5 +++-- + 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 ++++ b/components/metrics/generate_expired_histograms_array.gni +@@ -30,7 +30,7 @@ template("generate_expired_histograms_array") { + action(target_name) { + header_filename = "$target_gen_dir/" + invoker.header_filename + +- script = "//tools/metrics/histograms/generate_expired_histograms_array.py" ++ script = "//build/gn_run_binary.py" + outputs = [ header_filename ] + + inputs = histograms_xml_files +@@ -38,7 +38,10 @@ template("generate_expired_histograms_array") { + major_branch_date_filepath = invoker.major_branch_date_filepath + milestone_filepath = invoker.milestone_filepath + +- args = [] ++ args = [ ++ rebase_path("//third_party/depot_tools/vpython3"), ++ rebase_path("//tools/metrics/histograms/generate_expired_histograms_array.py") ++ ] + + if (defined(invoker.namespace) && invoker.namespace != "") { + args += [ "-n" + invoker.namespace ] diff --git a/components/search_engines/BUILD.gn b/components/search_engines/BUILD.gn --- a/components/search_engines/BUILD.gn +++ b/components/search_engines/BUILD.gn @@ -76,4 +102,23 @@ diff --git a/tools/json_to_struct/json_to_struct.gni b/tools/json_to_struct/json rebase_path(invoker.source, root_build_dir), "--destbase=" + rebase_path(out_dir, root_build_dir), "--namespace=" + invoker.namespace, +diff --git a/tools/metrics/generate_allowlist_from_histograms_file.gni b/tools/metrics/generate_allowlist_from_histograms_file.gni +--- a/tools/metrics/generate_allowlist_from_histograms_file.gni ++++ b/tools/metrics/generate_allowlist_from_histograms_file.gni +@@ -26,12 +26,13 @@ template("generate_allowlist_from_histograms_file") { + action(target_name) { + output_file = "$target_gen_dir/" + invoker.output_file + +- script = +- "//tools/metrics/histograms/generate_allowlist_from_histograms_file.py" ++ script = "//build/gn_run_binary.py" + outputs = [ output_file ] + sources = [ invoker.input_xml_file ] + + args = [ ++ rebase_path("//third_party/depot_tools/vpython3"), ++ rebase_path("//tools/metrics/histograms/generate_allowlist_from_histograms_file.py"), + "--allow_list_name=" + invoker.allow_list_name, + "--namespace=" + invoker.namespace, + "--tag=" + invoker.tag, -- diff --git a/build/patches/History-number-of-days-privacy-setting.patch b/build/patches/History-number-of-days-privacy-setting.patch index 03f0941f..90baa3f9 100644 --- a/build/patches/History-number-of-days-privacy-setting.patch +++ b/build/patches/History-number-of-days-privacy-setting.patch @@ -64,7 +64,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import org.chromium.components.browser_ui.site_settings.ContentSettingsResources; import org.chromium.components.browser_ui.site_settings.SingleCategorySettings; import org.chromium.components.browser_ui.site_settings.WebsitePreferenceBridge; -@@ -96,6 +97,9 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; +@@ -95,6 +96,9 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate; @@ -74,7 +74,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting /** Fragment to keep track of the all the privacy related preferences. */ public class PrivacySettings extends ChromeBaseSettingsFragment implements Preference.OnPreferenceChangeListener { -@@ -161,6 +165,8 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -160,6 +164,8 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private ChromeSwitchPreference allowCustomTabIntentsPref; private ChromeSwitchPreference openExternalLinksPref; @@ -83,7 +83,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting @Override public void onCreatePreferencesCromite(Bundle savedInstanceState, String rootKey) { mPageTitle.set(getString(R.string.prefs_privacy_security)); -@@ -311,6 +317,40 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -310,6 +316,40 @@ public class PrivacySettings extends ChromeBaseSettingsFragment Preference syncAndServicesLink = findPreference(PREF_SYNC_AND_SERVICES_LINK); syncAndServicesLink.setSummary(buildFooterString()); @@ -124,7 +124,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting Preference thirdPartyCookies = findPreference(PREF_THIRD_PARTY_COOKIES); if (showTrackingProtectionUi()) { if (thirdPartyCookies != null) thirdPartyCookies.setVisible(false); -@@ -650,6 +690,29 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -649,6 +689,29 @@ public class PrivacySettings extends ChromeBaseSettingsFragment || ((System.currentTimeMillis() - updateTimeMs) < TimeUnit.DAYS.toMillis(90)); } @@ -248,7 +248,7 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.ts b/ch }; } -+ private historyExpireDaysThresholdOptions_: object[]; ++ declare private historyExpireDaysThresholdOptions_: object[]; declare private isGuest_: boolean; declare private showPersistentPermissions_: boolean; declare private showClearBrowsingDataDialog_: boolean; diff --git a/build/patches/Improve-the-browser-sandbox.patch b/build/patches/Improve-the-browser-sandbox.patch index 5ff24b48..f758b407 100644 --- a/build/patches/Improve-the-browser-sandbox.patch +++ b/build/patches/Improve-the-browser-sandbox.patch @@ -26,7 +26,7 @@ new file mode 100644 --- /dev/null +++ b/cromite_flags/content/public/common/content_features_cc/Improve-the-browser-sandbox.inc @@ -0,0 +1 @@ -+SET_CROMITE_FEATURE_ENABLED(kUseBrowserCalculatedOrigin); ++// intentionally empty diff --git a/sandbox/policy/features.cc b/sandbox/policy/features.cc --- a/sandbox/policy/features.cc +++ b/sandbox/policy/features.cc diff --git a/build/patches/Internal-firewall.patch b/build/patches/Internal-firewall.patch index 09a02aab..eaa8f67a 100644 --- a/build/patches/Internal-firewall.patch +++ b/build/patches/Internal-firewall.patch @@ -1794,11 +1794,11 @@ diff --git a/services/network/public/cpp/simple_url_loader.cc b/services/network string_upload_data_pipe_getter_->GetRemoteForNewUpload()); } + if (firewall_service_ && -+ !firewall_service_->IsAllowed(annotation_tag_.unique_id_hash_code)) { -+ auto entry = firewall_service_->GetEntry(annotation_tag_.unique_id_hash_code); ++ !firewall_service_->IsAllowed(annotation_tag_->unique_id_hash_code)) { ++ auto entry = firewall_service_->GetEntry(annotation_tag_->unique_id_hash_code); + LOG(INFO) << "---ABORTED SimpleURLLoaderImpl: " + << (entry.has_value() ? entry->name : "no-name") -+ << "(" << annotation_tag_.unique_id_hash_code << ")" ++ << "(" << annotation_tag_->unique_id_hash_code << ")" + << " url: " << resource_request_->url.possibly_invalid_spec() + << " path: " << (entry.has_value() ? entry->path : "no-path"); + diff --git a/build/patches/Move-navigation-bar-to-bottom.patch b/build/patches/Move-navigation-bar-to-bottom.patch index 1a3ef35d..dee89f4f 100644 --- a/build/patches/Move-navigation-bar-to-bottom.patch +++ b/build/patches/Move-navigation-bar-to-bottom.patch @@ -27,6 +27,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../tab_management/TabSwitcherPaneBase.java | 9 + .../browser/feed/FeedSurfaceCoordinator.java | 4 + .../ChromeAccessibilitySettingsDelegate.java | 70 ++++++++ + .../HeadlessBrowserControlsStateProvider.java | 5 + .../compositor/CompositorViewHolder.java | 7 + .../layouts/LayoutManagerChrome.java | 12 +- .../layouts/LayoutManagerChromeTablet.java | 4 +- @@ -38,7 +39,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../scene_layer/TabStripSceneLayer.java | 20 ++- .../browser/findinpage/FindToolbarTablet.java | 10 +- .../fullscreen/BrowserControlsManager.java | 12 ++ - .../messages/MessageContainerCoordinator.java | 16 +- + .../messages/MessageContainerCoordinator.java | 15 +- .../modaldialog/ChromeTabModalPresenter.java | 2 +- .../chrome/browser/ntp/NewTabPage.java | 14 +- .../chrome/browser/ntp/NewTabPageLayout.java | 10 +- @@ -67,6 +68,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/prefs/browser_prefs.cc | 2 +- .../chrome/browser/ui/appmenu/AppMenu.java | 40 ++++- .../ui/appmenu/AppMenuHandlerImpl.java | 10 ++ + .../EdgeToEdgeControllerFactory.java | 1 + + .../EdgeToEdgeControllerImpl.java | 1 + + .../ui/edge_to_edge/EdgeToEdgeUtils.java | 1 + ...rredIMEWindowInsetApplicationCallback.java | 7 + .../omnibox/LocationBarCoordinator.java | 1 + ...mniboxSuggestionsDropdownEmbedderImpl.java | 31 ++++ @@ -94,7 +98,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../AccessibilitySettingsDelegate.java | 9 + .../render_widget_host_view_android.cc | 3 + .../Move-navigation-bar-to-bottom.inc | 17 ++ - 81 files changed, 1039 insertions(+), 77 deletions(-) + 85 files changed, 1046 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 @@ -822,6 +826,21 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s @Override public BrowserContextHandle getBrowserContextHandle() { return mProfile; +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 + return 0; + } + ++ @Override ++ public int getTopControlsHeightRealOffset() { ++ return 0; ++ } ++ + @Override + public int getTopControlsMinHeight() { + return 0; 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 @@ -1274,14 +1293,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/messages/Messag mContainer.setLayoutParams(params); } -@@ -132,6 +140,12 @@ public class MessageContainerCoordinator implements BrowserControlsStateProvider +@@ -132,6 +140,11 @@ public class MessageContainerCoordinator implements BrowserControlsStateProvider /** @return Offset of the message container from the top of the screen. */ private int getContainerTopOffset() { + if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + return mControlsManager.getContentOffset() -+ + (mControlsManager.getBottomControlsHeight() - mControlsManager.getBottomControlOffset()) -+ + mContainer.getMessageShadowTopMargin(); ++ + (mControlsManager.getBottomControlsHeight() - mControlsManager.getBottomControlOffset()); + } + if (mControlsManager.getContentOffset() == 0) return 0; @@ -2250,6 +2268,39 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch ContextThemeWrapper wrapper = new ContextThemeWrapper(mContext, R.style.OverflowMenuThemeOverlay); +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 { + * to the window. + */ + public static boolean isSupportedConfiguration(Activity activity) { ++ if ((true)) return false; + // Make sure we test SDK version before checking the Feature so Field Trials only collect + // from qualifying devices. + if (!EdgeToEdgeFieldTrial.getBottomChinOverrides().isEnabledForManufacturerVersion()) { +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 + * the system insets due to the keyboard or the bottom controls being visible. + */ + private boolean shouldPadAdjusters() { ++ if ((true)) return false; + // Never pad the adjusters if the keyboard is visible. + if (mKeyboardInsets != null && mKeyboardInsets.bottom > 0) return false; + +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 { + * @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 = 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 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 b952e561..600e2fc7 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 @@ -6,10 +6,10 @@ Search suggestions, autofill assistant and contextual search License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../java/res/xml/privacy_preferences.xml | 13 +++++++ - .../privacy/settings/PrivacySettings.java | 34 +++++++++++++++++++ + .../java/res/xml/privacy_preferences.xml | 13 ++++++++ + .../privacy/settings/PrivacySettings.java | 33 +++++++++++++++++++ .../strings/android_chrome_strings.grd | 4 +++ - 3 files changed, 51 insertions(+) + 3 files changed, 50 insertions(+) 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 @@ -37,11 +37,10 @@ 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,14 @@ import org.chromium.ui.text.SpanApplier; +@@ -76,6 +76,13 @@ import org.chromium.ui.text.SpanApplier; import java.util.concurrent.TimeUnit; import java.util.function.Consumer; -+import androidx.annotation.Nullable; +import androidx.preference.PreferenceCategory; +import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager; +import org.chromium.base.shared_preferences.SharedPreferencesManager; @@ -52,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 +104,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -96,6 +103,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"; @@ -69,7 +68,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting @VisibleForTesting static final String PREF_THIRD_PARTY_COOKIES = "third_party_cookies"; @VisibleForTesting static final String PREF_TRACKING_PROTECTION = "tracking_protection"; private static final String PREF_ADVANCED_PROTECTION_INFO = "advanced_protection_info"; -@@ -211,6 +229,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -211,6 +228,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment passwordLeakTogglePref.setVisible(false); } @@ -86,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 +387,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -359,6 +386,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); @@ -96,7 +95,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting } return true; } -@@ -371,6 +402,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -371,6 +401,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment /** Updates the preferences. */ public void updatePreferences() { diff --git a/build/patches/Partition-HSTS-cache-by-NAK.patch b/build/patches/Partition-HSTS-cache-by-NAK.patch index ae47b5c7..032508f7 100644 --- a/build/patches/Partition-HSTS-cache-by-NAK.patch +++ b/build/patches/Partition-HSTS-cache-by-NAK.patch @@ -24,9 +24,9 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../url_request_context_builder.cc | 14 --- net/url_request/url_request_http_job.cc | 5 +- services/network/network_context.cc | 37 ++++--- - services/network/network_context.h | 14 ++- + services/network/network_context.h | 15 ++- .../public/mojom/network_context.mojom | 10 +- - 22 files changed, 180 insertions(+), 104 deletions(-) + 22 files changed, 181 insertions(+), 104 deletions(-) create mode 100644 cromite_flags/net/base/features_cc/Partition-HSTS-cache-by-NAK.inc diff --git a/chrome/browser/ssl/https_upgrades_interceptor.cc b/chrome/browser/ssl/https_upgrades_interceptor.cc @@ -993,6 +993,14 @@ diff --git a/services/network/network_context.h b/services/network/network_conte const std::string& ocsp_result, const std::string& sct_list, CTVerificationMode ct_verification_mode, +@@ -975,6 +981,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext + VerifyCertCallback callback; + scoped_refptr certificate; + net::HostPortPair host_port; ++ net::NetworkAnonymizationKey network_anonymization_key; + }; + std::map> + cert_verifier_requests_; 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 diff --git a/build/patches/Partition-blobs-by-top-frame-URL.patch b/build/patches/Partition-blobs-by-top-frame-URL.patch index e4c7e70f..df9a0130 100644 --- a/build/patches/Partition-blobs-by-top-frame-URL.patch +++ b/build/patches/Partition-blobs-by-top-frame-URL.patch @@ -10,12 +10,12 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- .../renderer_host/render_frame_host_impl.cc | 2 + .../Partition-blobs-by-top-frame-URL.inc | 1 + - storage/browser/blob/blob_url_store_impl.cc | 73 ++++++++++++++++++- + storage/browser/blob/blob_url_store_impl.cc | 63 ++++++++++++++++++- storage/browser/blob/blob_url_store_impl.h | 13 ++++ storage/browser/blob/features.cc | 1 + - .../public/mojom/blob/blob_url_store.mojom | 8 +- + .../public/mojom/blob/blob_url_store.mojom | 8 ++- .../core/fileapi/public_url_manager.cc | 17 +++++ - 7 files changed, 112 insertions(+), 3 deletions(-) + 7 files changed, 101 insertions(+), 4 deletions(-) create mode 100644 cromite_flags/third_party/blink/common/features_cc/Partition-blobs-by-top-frame-URL.inc diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc @@ -39,26 +39,7 @@ new file mode 100644 diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/blob_url_store_impl.cc --- a/storage/browser/blob/blob_url_store_impl.cc +++ b/storage/browser/blob/blob_url_store_impl.cc -@@ -33,6 +33,18 @@ bool IsBlobUrlAccessCrossPartitionSameOrigin( - } - } // namespace - -+namespace { -+ -+// this code only serves to break the build in v137 -+// when https://chromium-review.googlesource.com/c/chromium/src/+/6430562 is inserted. -+// (UAZO) BlobURLStoreImpl::ShouldPartitionBlobUrlAccess => true -+[[maybe_unused]] bool IsBlobUrlAccessCrossPartitionSameOrigin( -+ BlobUrlRegistry::MappingStatus mapping_status) { -+ return false; -+} -+ -+} -+ - // Self deletes when the last binding to it is closed. - class BlobURLTokenImpl : public blink::mojom::BlobURLToken { - public: -@@ -105,6 +117,30 @@ BlobURLStoreImpl::~BlobURLStoreImpl() { +@@ -105,6 +105,30 @@ BlobURLStoreImpl::~BlobURLStoreImpl() { } } @@ -89,7 +70,7 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/ void BlobURLStoreImpl::Register( mojo::PendingRemote blob, const GURL& url, -@@ -119,6 +155,14 @@ void BlobURLStoreImpl::Register( +@@ -119,6 +143,14 @@ void BlobURLStoreImpl::Register( return; } @@ -104,7 +85,16 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/ if (registry_) registry_->AddUrlMapping(url, std::move(blob), storage_key_, renderer_origin_, render_process_host_id_, -@@ -155,26 +199,38 @@ bool BlobURLStoreImpl::ShouldPartitionBlobUrlAccess( +@@ -144,7 +176,7 @@ bool BlobURLStoreImpl::ShouldPartitionBlobUrlAccess( + features::kBlockCrossPartitionBlobUrlFetching) && + !partitioning_disabled_by_policy_; + +- const bool should_bypass_partitioning = ++ const bool should_bypass_partitioning = ((false)) && + has_storage_access_handle && + mapping_status == + BlobUrlRegistry::MappingStatus:: +@@ -155,26 +187,38 @@ bool BlobURLStoreImpl::ShouldPartitionBlobUrlAccess( void BlobURLStoreImpl::ResolveAsURLLoaderFactory( const GURL& url, mojo::PendingReceiver receiver, @@ -144,7 +134,7 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/ partitioning_blob_url_closure_.Run(url, blink::mojom::PartitioningBlobURLInfo:: kBlockedCrossPartitionFetching); -@@ -186,6 +242,12 @@ void BlobURLStoreImpl::FinishResolveAsURLLoaderFactory( +@@ -186,6 +230,12 @@ void BlobURLStoreImpl::FinishResolveAsURLLoaderFactory( partitioning_blob_url_closure_.Run(url, std::nullopt); } @@ -157,7 +147,7 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/ BlobURLLoaderFactory::Create(registry_->GetBlobFromUrl(url), url, std::move(receiver)); // When a fragment URL is present, registry_->GetUnsafeAgentClusterID(url) and -@@ -200,12 +262,15 @@ void BlobURLStoreImpl::ResolveAsBlobURLToken( +@@ -200,12 +250,15 @@ void BlobURLStoreImpl::ResolveAsBlobURLToken( const GURL& url, mojo::PendingReceiver token, bool is_top_level_navigation, @@ -173,7 +163,7 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/ std::move(callback), storage_access_check_callback_.Run()); } -@@ -214,8 +279,14 @@ void BlobURLStoreImpl::FinishResolveAsBlobURLToken( +@@ -214,8 +267,14 @@ void BlobURLStoreImpl::FinishResolveAsBlobURLToken( const GURL& url, mojo::PendingReceiver token, bool is_top_level_navigation, 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 46382e85..d52bd662 100644 --- a/build/patches/Partitioning-all-cookies-by-top-frame-domain.patch +++ b/build/patches/Partitioning-all-cookies-by-top-frame-domain.patch @@ -27,17 +27,21 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html net/cookies/cookie_deletion_info.cc | 3 +- net/cookies/cookie_monster.cc | 1 + net/cookies/cookie_util.cc | 1 + + net/cookies/cookie_util.h | 4 +- net/cookies/parsed_cookie.h | 6 +- .../sqlite/sqlite_persistent_cookie_store.cc | 8 +++ - net/url_request/url_request_http_job.cc | 10 +--- + net/url_request/url_request.cc | 3 +- + net/url_request/url_request_http_job.cc | 11 ++-- services/network/cookie_settings.cc | 6 +- + services/network/cors/cors_url_loader.cc | 1 + services/network/restricted_cookie_manager.cc | 6 ++ + services/network/url_loader.cc | 1 + .../modules/cookie_store/cookie_init.idl | 2 +- .../modules/cookie_store/cookie_store.cc | 3 + .../cookie_store_delete_options.idl | 2 +- ui/webui/webui_allowlist.cc | 1 + url/url_features.cc | 1 + - 28 files changed, 88 insertions(+), 85 deletions(-) + 32 files changed, 94 insertions(+), 89 deletions(-) create mode 100644 cromite_flags/components/content_settings/core/common/features_cc/Partitioning-all-cookies-by-top-frame-domain.inc create mode 100644 cromite_flags/components/permissions/features_cc/Partitioning-all-cookies-by-top-frame-domain.inc create mode 100644 cromite_flags/content/public/common/content_features_cc/Partitioning-all-cookies-by-top-frame-domain.inc @@ -315,7 +319,7 @@ new file mode 100644 --- /dev/null +++ b/cromite_flags/services/network/public/cpp/features_cc/Partitioning-all-cookies-by-top-frame-domain.inc @@ -0,0 +1 @@ -+SET_CROMITE_FEATURE_DISABLED(kStorageAccessHeaders); ++// intentionally empty diff --git a/net/cookies/canonical_cookie.cc b/net/cookies/canonical_cookie.cc --- a/net/cookies/canonical_cookie.cc +++ b/net/cookies/canonical_cookie.cc @@ -364,6 +368,27 @@ diff --git a/net/cookies/cookie_util.cc b/net/cookies/cookie_util.cc if (!is_partitioned) { return true; } +diff --git a/net/cookies/cookie_util.h b/net/cookies/cookie_util.h +--- a/net/cookies/cookie_util.h ++++ b/net/cookies/cookie_util.h +@@ -131,7 +131,7 @@ enum class SecFetchStorageAccessOutcome { + enum class ActivateStorageAccessLoadOutcome { + // Applies when the `Activate-Storage-Access` header behavior is not enabled + // under the existing feature flags or content settings. +- // kFailureHeaderDisabled = 0, // Deprecated (feature is always enabled). ++ kFailureHeaderDisabled = 0, // Deprecated (feature is always enabled). + // Applies when a response includes the `Activate-Storage-Access: load` + // header, but its corresponding request either has an omitted storage access + // status, or has a storage access status of `none`. +@@ -152,7 +152,7 @@ enum class ActivateStorageAccessLoadOutcome { + enum class ActivateStorageAccessRetryOutcome { + // Applies when the `Activate-Storage-Access` header behavior is not enabled + // under the existing feature flags or content settings. +- // kFailureHeaderDisabled = 0, // Deprecated (feature is always enabled). ++ kFailureHeaderDisabled = 0, // Deprecated (feature is always enabled). + // Applies when a response includes a well-formed + // `Activate-Storage-Access: retry; ..." header, but the corresponding + // request's `Sec-Fetch-Storage-Access` header is not `inactive`. diff --git a/net/cookies/parsed_cookie.h b/net/cookies/parsed_cookie.h --- a/net/cookies/parsed_cookie.h +++ b/net/cookies/parsed_cookie.h @@ -405,6 +430,19 @@ diff --git a/net/extras/sqlite/sqlite_persistent_cookie_store.cc b/net/extras/sq return true; } +diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc +--- a/net/url_request/url_request.cc ++++ b/net/url_request/url_request.cc +@@ -1415,8 +1415,7 @@ StorageAccessStatusCache URLRequest::CalculateStorageAccessStatus() const { + // `deferred_redirect_info_` that has to be used when calculating new storage + // access status. + std::optional storage_access_status = +- network_delegate()->GetStorageAccessStatus(*this, +- deferred_redirect_info_); ++ std::nullopt; // disable storage access headers + base::UmaHistogramEnumeration( + "API.StorageAccessHeader.StorageAccessStatusOutcome", + storage_access_status diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc --- a/net/url_request/url_request_http_job.cc +++ b/net/url_request/url_request_http_job.cc @@ -425,6 +463,14 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque if (!maybe_included_cookies.empty()) { std::string cookie_line = +@@ -1614,6 +1610,7 @@ bool URLRequestHttpJob::NeedsRetryWithStorageAccess() { + auto determine_storage_access_retry_outcome = + [&]() -> cookie_util::ActivateStorageAccessRetryOutcome { + using enum cookie_util::ActivateStorageAccessRetryOutcome; ++ if ((true)) return kFailureHeaderDisabled; // disable storage access headers + if (!ShouldAddCookieHeader() || + request_->storage_access_status() != + cookie_util::StorageAccessStatus::kInactive || diff --git a/services/network/cookie_settings.cc b/services/network/cookie_settings.cc --- a/services/network/cookie_settings.cc +++ b/services/network/cookie_settings.cc @@ -448,6 +494,17 @@ diff --git a/services/network/cookie_settings.cc b/services/network/cookie_setti } // static +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 +@@ -903,6 +903,7 @@ void CorsURLLoader::StartRequest() { + } + + if (request_.credentials_mode == mojom::CredentialsMode::kInclude && ++ ((false)) && // storage access headers disabled by default + GetStorageAccessStatus() == + net::cookie_util::StorageAccessStatus::kInactive) { + // Lower layers will add the Sec-Fetch-Storage-Access header, and the diff --git a/services/network/restricted_cookie_manager.cc b/services/network/restricted_cookie_manager.cc --- a/services/network/restricted_cookie_manager.cc +++ b/services/network/restricted_cookie_manager.cc @@ -464,6 +521,17 @@ diff --git a/services/network/restricted_cookie_manager.cc b/services/network/re net::CookieInclusionStatus status; std::unique_ptr parsed_cookie = net::CanonicalCookie::Create( +diff --git a/services/network/url_loader.cc b/services/network/url_loader.cc +--- a/services/network/url_loader.cc ++++ b/services/network/url_loader.cc +@@ -2629,6 +2629,7 @@ bool URLLoader::ShouldSetLoadWithStorageAccess() const { + + auto determine_storage_access_load_outcome = + [&]() -> net::cookie_util::ActivateStorageAccessLoadOutcome { ++ if ((true)) return net::cookie_util::ActivateStorageAccessLoadOutcome::kFailureHeaderDisabled; + if (!url_request_->storage_access_status().IsSet()) { + url_request_->set_storage_access_status( + url_request_->CalculateStorageAccessStatus()); diff --git a/third_party/blink/renderer/modules/cookie_store/cookie_init.idl b/third_party/blink/renderer/modules/cookie_store/cookie_init.idl --- a/third_party/blink/renderer/modules/cookie_store/cookie_init.idl +++ b/third_party/blink/renderer/modules/cookie_store/cookie_init.idl 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 e813e574..59da8633 100644 --- a/build/patches/Remove-HTTP-referrals-in-cross-origin-navigation.patch +++ b/build/patches/Remove-HTTP-referrals-in-cross-origin-navigation.patch @@ -178,7 +178,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import org.chromium.chrome.browser.privacy.secure_dns.SecureDnsSettings; import org.chromium.chrome.browser.privacy_guide.PrivacyGuideInteractions; import org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxBridge; -@@ -113,6 +114,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -112,6 +113,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private static final String PREF_SAFE_BROWSING = "safe_browsing"; private static final String PREF_PASSWORD_LEAK_DETECTION = "password_leak_detection"; private static final String PREF_SYNC_AND_SERVICES_LINK = "sync_and_services_link"; @@ -186,7 +186,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox"; private static final String PREF_PROXY_OPTIONS = "proxy"; private static final String PREF_PRIVACY_GUIDE = "privacy_guide"; -@@ -530,6 +532,10 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -529,6 +531,10 @@ public class PrivacySettings extends ChromeBaseSettingsFragment : R.string.text_off); } @@ -468,7 +468,7 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.ts b/ch declare private isPrivacySandboxRestrictedNoticeEnabled_: boolean; declare private enableAutomaticFullscreenContentSetting_: boolean; declare private enablePermissionSiteSettingsRadioButton_: boolean; -+ private referersPolicyOptions_: object[]; ++ declare private referersPolicyOptions_: object[]; private privateStateTokensEnabled_: boolean; declare private autoPictureInPictureEnabled_: boolean; declare private capturedSurfaceControlEnabled_: boolean; diff --git a/build/patches/Remove-binary-blob-integrations.patch b/build/patches/Remove-binary-blob-integrations.patch index da3f4b51..372a3e7d 100644 --- a/build/patches/Remove-binary-blob-integrations.patch +++ b/build/patches/Remove-binary-blob-integrations.patch @@ -46,6 +46,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../PasswordManagerHelper.java | 9 - ...swordSyncControllerDelegateBridgeImpl.java | 7 - .../push_messaging_service_factory.cc | 8 +- + .../notification_telemetry_service.cc | 1 + chrome/browser/ui/BUILD.gn | 3 - chrome/browser/ui/android/omnibox/BUILD.gn | 4 - .../FullscreenSigninMediator.java | 4 +- @@ -108,7 +109,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../gms/ChromiumPlayServicesAvailability.java | 10 +- third_party/androidx/customizations.gni | 14 +- third_party/cardboard/BUILD.gn | 4 - - 84 files changed, 120 insertions(+), 2179 deletions(-) + 85 files changed, 121 insertions(+), 2179 deletions(-) create mode 100644 components/webauthn/android/java/src/org/chromium/components/webauthn/ConditionalUiState.java diff --git a/android_webview/expectations/system_webview_bundle.AndroidManifest.expected b/android_webview/expectations/system_webview_bundle.AndroidManifest.expected @@ -833,6 +834,17 @@ diff --git a/chrome/browser/push_messaging/push_messaging_service_factory.cc b/c } // static +diff --git a/chrome/browser/safe_browsing/notification_telemetry/notification_telemetry_service.cc b/chrome/browser/safe_browsing/notification_telemetry/notification_telemetry_service.cc +--- a/chrome/browser/safe_browsing/notification_telemetry/notification_telemetry_service.cc ++++ b/chrome/browser/safe_browsing/notification_telemetry/notification_telemetry_service.cc +@@ -116,6 +116,7 @@ NotificationTelemetryService::NotificationTelemetryService( + // Notification Telemetry Service is a keyed service and will outlive + // any invocations of the callback being registered with the push messaging + // service (also a keyed service). ++ if (push_messaging_service) + push_messaging_service->SetSubscribeFromWorkerCallback(base::BindRepeating( + &NotificationTelemetryService::OnNewNotificationServiceWorkerSubscription, + base::Unretained(this))); 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 diff --git a/build/patches/Restore-Simplified-NTP-launch.patch b/build/patches/Restore-Simplified-NTP-launch.patch index b42112d4..a1a60dab 100644 --- a/build/patches/Restore-Simplified-NTP-launch.patch +++ b/build/patches/Restore-Simplified-NTP-launch.patch @@ -27,9 +27,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../suggestions/SuggestionsConfig.java | 2 +- .../SuggestionsNavigationDelegate.java | 27 +- .../tile/MostVisitedTilesCoordinator.java | 6 +- - .../tile/MostVisitedTilesGridLayout.java | 283 ++++++++++++++++++ + .../tile/MostVisitedTilesGridLayout.java | 287 ++++++++++++++++++ .../tile/MostVisitedTilesMediator.java | 4 +- - .../suggestions/tile/TileRenderer.java | 4 +- + .../suggestions/tile/TileRenderer.java | 8 +- .../suggestions/tile/TilesLinearLayout.java | 2 +- .../engagement/important_sites_util.cc | 2 +- .../flags/android/chrome_feature_list.cc | 1 + @@ -39,7 +39,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../Restore-Simplified-NTP-launch.inc | 12 + .../Restore-Simplified-NTP-launch.inc | 5 + .../Restore-Simplified-NTP-launch.inc | 1 + - 33 files changed, 528 insertions(+), 45 deletions(-) + 33 files changed, 534 insertions(+), 47 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 @@ -696,7 +696,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til new file mode 100644 --- /dev/null +++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesGridLayout.java -@@ -0,0 +1,283 @@ +@@ -0,0 +1,287 @@ +// 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. @@ -937,6 +937,10 @@ new file mode 100644 + mTileList.add(tileView); + } + ++ public void addNonTileViewWithWidth(View view, float widthDp) { ++ super.addView(view); ++ } ++ + /** + * Specialized getChildCount() for tiles. + * @@ -1022,6 +1026,24 @@ 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 { + return tileView; + } + +- View buildDivider(TilesLinearLayout parent) { ++ View buildDivider(MostVisitedTilesGridLayout parent) { + return (View) + LayoutInflater.from(parent.getContext()) + .inflate(R.layout.suggestions_tile_vertical_divider, parent, false); +@@ -343,7 +343,7 @@ public class TileRenderer { + } + + TileView buildAddCustomLinksButton( +- TilesLinearLayout parent, TileGroup.TileSetupDelegate setupDelegate) { ++ MostVisitedTilesGridLayout parent, TileGroup.TileSetupDelegate setupDelegate) { + Resources res = mContext.getResources(); + String title = res.getString(R.string.most_visited_add_new); + Drawable plusIcon = diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TilesLinearLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TilesLinearLayout.java --- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TilesLinearLayout.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TilesLinearLayout.java 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 09bf1678..66aa3b72 100644 --- a/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch +++ b/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch @@ -189,7 +189,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow private @Nullable RadioButtonWithDescription mAddToBookmarksButton; private @Nullable RadioButtonWithDescription mReadAloudButton; private @Nullable RadioButtonWithDescription mPageSummaryButton; -+ private @NonNull RadioButtonWithDescription mReaderMode; ++ private @Nullable RadioButtonWithDescription mReaderMode; private @AdaptiveToolbarButtonVariant int mSelected; private @AdaptiveToolbarButtonVariant int mAutoButtonCaption; private @Nullable AdaptiveToolbarStatePredictor mStatePredictor; diff --git a/build/patches/Temporarily-disable-Tab-Group-Sync-Android.patch b/build/patches/Temporarily-disable-Tab-Group-Sync-Android.patch index 499276ba..787a6341 100644 --- a/build/patches/Temporarily-disable-Tab-Group-Sync-Android.patch +++ b/build/patches/Temporarily-disable-Tab-Group-Sync-Android.patch @@ -3,9 +3,9 @@ Date: Mon, 3 Mar 2025 14:33:03 +0000 Subject: Temporarily disable Tab Group Sync Android --- - .../src/org/chromium/chrome/browser/ChromeTabbedActivity.java | 2 -- - components/saved_tab_groups/public/features.cc | 3 +++ - 2 files changed, 3 insertions(+), 2 deletions(-) + .../src/org/chromium/chrome/browser/ChromeTabbedActivity.java | 2 -- + components/saved_tab_groups/public/features.cc | 2 ++ + 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java @@ -22,12 +22,11 @@ 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,7 @@ base::TimeDelta GetOriginatingSavedGroupCleanUpTimeInterval() { +@@ -136,4 +136,6 @@ base::TimeDelta GetOriginatingSavedGroupCleanUpTimeInterval() { return base::Seconds(time_in_seconds); } +SET_CROMITE_FEATURE_DISABLED(kTabGroupSyncAndroid); -+SET_CROMITE_FEATURE_DISABLED(kTabGroupPaneAndroid); +SET_CROMITE_FEATURE_ENABLED(kTabGroupSyncDisableNetworkLayer); } // namespace tab_groups -- diff --git a/build/patches/User-agent-customization.patch b/build/patches/User-agent-customization.patch index cdccf748..071b66b0 100644 --- a/build/patches/User-agent-customization.patch +++ b/build/patches/User-agent-customization.patch @@ -24,7 +24,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../settings/UserAgentPreferences.java | 183 ++++++++++++++++++ .../browser/tab/RequestDesktopUtils.java | 1 + .../chromium/chrome/browser/tab/TabImpl.java | 64 +++++- - .../chromium/chrome/browser/tab/TabUtils.java | 11 +- + .../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 ++++++++++++ @@ -46,7 +46,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/web_contents/web_contents_impl.cc | 6 +- .../framehost/NavigationControllerImpl.java | 3 +- content/renderer/render_thread_impl.cc | 1 - - 36 files changed, 798 insertions(+), 17 deletions(-) + 36 files changed, 794 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 @@ -408,8 +408,8 @@ 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.chrome.browser.app.tabmodel.TabWindowManagerSingleton; -+import org.chromium.chrome.browser.tabmodel.TabWindowManager; ++import org.chromium.chrome.browser.app.tabwindow.TabWindowManagerSingleton; ++import org.chromium.chrome.browser.tabwindow.TabWindowManager; +import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImpl; +import org.chromium.chrome.browser.profiles.Profile; +import org.chromium.chrome.browser.settings.ProfileDependentSetting; @@ -671,18 +671,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.java -@@ -41,6 +41,10 @@ import org.chromium.ui.display.DisplayAndroidManager; - import org.chromium.ui.display.DisplayUtil; - import org.chromium.url.GURL; - -+import org.chromium.chrome.browser.app.tabmodel.TabWindowManagerSingleton; -+import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; -+import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; -+ - import java.lang.annotation.Retention; - import java.lang.annotation.RetentionPolicy; - -@@ -125,11 +129,8 @@ public class TabUtils { +@@ -125,11 +125,8 @@ public class TabUtils { * @param switchToDesktop Whether switching the user agent to desktop. * @param caller The caller of this method. */ diff --git a/build/patches/add-browser-policy.patch b/build/patches/add-browser-policy.patch index d4abc25f..87f36f83 100644 --- a/build/patches/add-browser-policy.patch +++ b/build/patches/add-browser-policy.patch @@ -8,7 +8,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html chrome/android/java/AndroidManifest.xml | 4 - .../privacy_preferences_manager_impl.cc | 5 + .../metrics/chrome_feature_list_creator.cc | 12 ++ - .../search_engine_preconnector.cc | 2 + + .../search_engine_preconnector.cc | 1 + .../policy/chrome_browser_policy_connector.cc | 3 - ...nfiguration_policy_handler_list_factory.cc | 6 +- .../account_consistency_mode_manager.cc | 7 +- @@ -37,7 +37,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../gaia_cookie_manager_service.cc | 4 + google_apis/gaia/gaia_auth_fetcher.cc | 1 + net/socket/ssl_client_socket_impl.cc | 3 + - 33 files changed, 322 insertions(+), 158 deletions(-) + 33 files changed, 321 insertions(+), 158 deletions(-) diff --git a/base/win/win_util.cc b/base/win/win_util.cc --- a/base/win/win_util.cc @@ -202,12 +202,11 @@ 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,8 @@ BASE_FEATURE(kPreconnectFromKeyedService, +@@ -55,6 +55,7 @@ BASE_FEATURE(kPreconnectFromKeyedService, BASE_FEATURE(kPreconnectToSearch, "PreconnectToSearch", base::FEATURE_ENABLED_BY_DEFAULT); +SET_CROMITE_FEATURE_DISABLED(kPreconnectToSearch); -+SET_CROMITE_FEATURE_DISABLED(kPreconnectToSearchWithPrivacyModeEnabled); } // namespace features WebContentVisibilityManager::WebContentVisibilityManager() diff --git a/build/patches/eyeo-133.0.6943.49-base.patch b/build/patches/eyeo-133.0.6943.49-base.patch index 00888673..846d28ff 100644 --- a/build/patches/eyeo-133.0.6943.49-base.patch +++ b/build/patches/eyeo-133.0.6943.49-base.patch @@ -18691,7 +18691,7 @@ new file mode 100644 +build_webui("build") { + grd_prefix = "adblock_internals" + static_files = [ "adblock_internals.html" ] -+ non_web_component_files = [ "adblock_internals.ts" ] ++ ts_files = [ "adblock_internals.ts" ] + mojo_files_deps = [ "//components/adblock/content/browser/mojom:adblock_internals_ts__generator" ] + mojo_files = [ "$root_gen_dir/components/adblock/content/browser/mojom/adblock_internals.mojom-webui.ts" ] + ts_definitions = [ "//tools/typescript/definitions/chrome_send.d.ts" ] diff --git a/build/patches/kill-Auth.patch b/build/patches/kill-Auth.patch index 4ecbf6a9..62f18a0a 100644 --- a/build/patches/kill-Auth.patch +++ b/build/patches/kill-Auth.patch @@ -4,8 +4,8 @@ Subject: kill Auth License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../signin/SystemAccountManagerDelegate.java | 77 +------------------ - 1 file changed, 3 insertions(+), 74 deletions(-) + .../signin/SystemAccountManagerDelegate.java | 78 +------------------ + 1 file changed, 4 insertions(+), 74 deletions(-) diff --git a/components/signin/public/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java b/components/signin/public/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java --- a/components/signin/public/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java @@ -39,7 +39,7 @@ diff --git a/components/signin/public/android/java/src/org/chromium/components/s // Don't report any accounts if we don't have permission. // TODO(crbug.com/40942462): Throw an exception if permission was denied. return new Account[] {}; -@@ -116,43 +101,12 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { +@@ -116,43 +101,13 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { public AccessTokenData getAccessToken(Account account, String authTokenScope) throws AuthException { ThreadUtils.assertOnBackgroundThread(); @@ -63,7 +63,8 @@ diff --git a/components/signin/public/android/java/src/org/chromium/components/s - new GoogleServiceAuthError(GoogleServiceAuthErrorState.CONNECTION_FAILED)); - } + throw new AuthException(AuthException.NONTRANSIENT, -+ "Error while getting token for scope '" + authTokenScope + "'"); ++ "Error while getting token for scope '" + authTokenScope + "'", ++ new IOException()); } @Override @@ -85,7 +86,7 @@ diff --git a/components/signin/public/android/java/src/org/chromium/components/s } protected boolean hasFeatures(Account account, String[] features) { -@@ -184,24 +138,6 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { +@@ -184,24 +139,6 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { @SuppressLint("MissingPermission") @Override public void createAddAccountIntent(Callback<@Nullable Intent> callback) { @@ -110,7 +111,7 @@ diff --git a/components/signin/public/android/java/src/org/chromium/components/s } // No permission is needed on 23+ and Chrome always has MANAGE_ACCOUNTS permission on lower APIs -@@ -235,14 +171,7 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { +@@ -235,14 +172,7 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { @Override public @Nullable GaiaId getAccountGaiaId(String accountEmail) { From 8ce1b5f7271072cd50c73e7c17970515ebd82807 Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Sun, 25 May 2025 16:34:12 +0200 Subject: [PATCH 5/8] Patches for v137 (no changes) --- build/patches/Add-a-proxy-configuration-page.patch | 2 +- .../Add-custom-tab-intents-privacy-option.patch | 10 +++++----- build/patches/Add-option-to-disable-snapshots.patch | 10 +++++----- ...dd-option-to-not-persist-tabs-across-sessions.patch | 6 +++--- .../Dictionary-suggestions-for-the-Omnibox.patch | 2 +- .../Private-network-access-content-settings.patch | 4 ++-- build/patches/Remove-help-menu-item.patch | 2 +- build/patches/eyeo-133.0.6943.49-android_api.patch | 2 +- 8 files changed, 19 insertions(+), 19 deletions(-) diff --git a/build/patches/Add-a-proxy-configuration-page.patch b/build/patches/Add-a-proxy-configuration-page.patch index f97b450e..b5245fdd 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 -@@ -101,6 +101,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -100,6 +100,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"; diff --git a/build/patches/Add-custom-tab-intents-privacy-option.patch b/build/patches/Add-custom-tab-intents-privacy-option.patch index 63e08282..0032d282 100644 --- a/build/patches/Add-custom-tab-intents-privacy-option.patch +++ b/build/patches/Add-custom-tab-intents-privacy-option.patch @@ -192,10 +192,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting +import org.chromium.base.IntentUtils; +import org.chromium.base.PackageManagerUtils; + - import androidx.annotation.Nullable; import androidx.preference.PreferenceCategory; import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager; -@@ -149,6 +158,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment + import org.chromium.base.shared_preferences.SharedPreferencesManager; +@@ -148,6 +157,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment startTag, endTag, new ChromeClickableSpan(context, onClickCallback)); } @@ -205,7 +205,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting @Override public void onCreatePreferencesCromite(Bundle savedInstanceState, String rootKey) { mPageTitle.set(getString(R.string.prefs_privacy_security)); -@@ -380,6 +392,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -379,6 +391,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(); -@@ -400,6 +415,31 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -399,6 +414,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; } -@@ -432,6 +472,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -431,6 +471,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment UserPrefs.get(getProfile()).getBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED)); } diff --git a/build/patches/Add-option-to-disable-snapshots.patch b/build/patches/Add-option-to-disable-snapshots.patch index 27e95866..b037b0d1 100644 --- a/build/patches/Add-option-to-disable-snapshots.patch +++ b/build/patches/Add-option-to-disable-snapshots.patch @@ -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; -@@ -98,12 +99,26 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; +@@ -97,12 +98,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"; -@@ -206,6 +221,21 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -205,6 +220,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( -@@ -436,6 +466,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -435,6 +465,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) { -@@ -482,6 +513,13 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -481,6 +512,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; } -@@ -532,6 +570,10 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -531,6 +569,10 @@ public class PrivacySettings extends ChromeBaseSettingsFragment : R.string.text_off); } 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 8a1adcf4..c55d564d 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 @@ -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; -@@ -113,6 +116,8 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -112,6 +115,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"; -@@ -377,7 +382,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -376,7 +381,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)) { -@@ -437,6 +446,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -436,6 +445,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment getContext(), getProfile())); } diff --git a/build/patches/Dictionary-suggestions-for-the-Omnibox.patch b/build/patches/Dictionary-suggestions-for-the-Omnibox.patch index 0d6fa7b5..ec98a949 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 -@@ -312,8 +312,17 @@ class LocationBarMediator +@@ -313,8 +313,17 @@ class LocationBarMediator if (!mUrlFocusedWithPastedText && !shouldRetainOmniboxOnFocus && mLocationBarLayout.shouldClearTextOnFocus()) { diff --git a/build/patches/Private-network-access-content-settings.patch b/build/patches/Private-network-access-content-settings.patch index e3da4dae..59945408 100644 --- a/build/patches/Private-network-access-content-settings.patch +++ b/build/patches/Private-network-access-content-settings.patch @@ -175,7 +175,7 @@ new file mode 100644 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 -@@ -1093,7 +1093,7 @@ std::optional CorsURLLoader::ConvertPreflightResult( +@@ -1094,7 +1094,7 @@ std::optional CorsURLLoader::ConvertPreflightResult( } // Private Network Access warning: ignore net and CORS errors. @@ -184,7 +184,7 @@ diff --git a/services/network/cors/cors_url_loader.cc b/services/network/cors/co CHECK(ShouldIgnorePrivateNetworkAccessErrors( request_.required_ip_address_space)); CHECK_EQ(*reason, PreflightRequiredReason::kPrivateNetworkAccess); -@@ -1411,12 +1411,6 @@ bool CorsURLLoader::ShouldIgnorePrivateNetworkAccessErrors( +@@ -1412,12 +1412,6 @@ bool CorsURLLoader::ShouldIgnorePrivateNetworkAccessErrors( if (!state) { return false; } diff --git a/build/patches/Remove-help-menu-item.patch b/build/patches/Remove-help-menu-item.patch index ccc39e4a..f7bdaae8 100644 --- a/build/patches/Remove-help-menu-item.patch +++ b/build/patches/Remove-help-menu-item.patch @@ -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 -@@ -593,6 +593,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -592,6 +592,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment help.setIcon( TraceEventVectorDrawableCompat.create( getResources(), R.drawable.ic_help_and_feedback, getActivity().getTheme())); 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 c4391c94..23b1e78a 100644 --- a/build/patches/eyeo-133.0.6943.49-android_api.patch +++ b/build/patches/eyeo-133.0.6943.49-android_api.patch @@ -269,7 +269,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn @@ -1025,6 +1025,12 @@ static_library("ui") { deps += [ - "//chrome/browser/search/background:ntp_background_proto", + "//components/themes:ntp_background_proto", ] + ### Android API module start + deps += [ From e1aa94c59e6fc5514e7867170a5e665e048937d7 Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Sun, 25 May 2025 16:36:41 +0200 Subject: [PATCH 6/8] Permit PGO for debug builds: allow the use of pgo even in debug builds, since in cromite clang does not crash and the version without pgo is really too slow --- build/cromite_patches_list.txt | 1 + .../patches/Permit-PGO-for-debug-builds.patch | 21 +++++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 build/patches/Permit-PGO-for-debug-builds.patch diff --git a/build/cromite_patches_list.txt b/build/cromite_patches_list.txt index 10779853..cabdd877 100644 --- a/build/cromite_patches_list.txt +++ b/build/cromite_patches_list.txt @@ -3,6 +3,7 @@ Do-not-check-for-the-presence-of-use-remoteexec.patch bromite-build-utils.patch Add-cromite-flags-support.patch Force-use-vpython3-for-some-scripts.patch +Permit-PGO-for-debug-builds.patch Fix-chromium-vanilla.patch Final-patch-for-chromium-vanilla.patch diff --git a/build/patches/Permit-PGO-for-debug-builds.patch b/build/patches/Permit-PGO-for-debug-builds.patch new file mode 100644 index 00000000..c53053e9 --- /dev/null +++ b/build/patches/Permit-PGO-for-debug-builds.patch @@ -0,0 +1,21 @@ +From: uazo +Date: Sun, 25 May 2025 12:42:26 +0000 +Subject: Permit PGO for debug builds + +License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html +--- + build/config/compiler/pgo/pgo.gni | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/build/config/compiler/pgo/pgo.gni b/build/config/compiler/pgo/pgo.gni +--- a/build/config/compiler/pgo/pgo.gni ++++ b/build/config/compiler/pgo/pgo.gni +@@ -43,5 +43,5 @@ declare_args() { + + # TODO(crbug.com/409738601): Remove assert once clang no + # longer crashes with PGO enabled for a debug build. +-assert(!is_debug || chrome_pgo_phase == 0, +- "Cannot have a debug build optimized with PGO") ++# assert(!is_debug || chrome_pgo_phase == 0, ++# "Cannot have a debug build optimized with PGO") +-- From b52e2f10b227dfb5aaca96019bec5660e2045a85 Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Sun, 25 May 2025 16:39:10 +0200 Subject: [PATCH 7/8] [TOOLS] Disable android java static analysis Java static analyses, which are active only in the debug version, are currently not working. --- build/cromite.gn_args | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/build/cromite.gn_args b/build/cromite.gn_args index 0b26f49d..f827aae4 100644 --- a/build/cromite.gn_args +++ b/build/cromite.gn_args @@ -4,10 +4,8 @@ build_contextual_search=false build_with_tflite_lib=false chrome_pgo_phase=0 dcheck_always_on=false -dfmify_dev_ui=false disable_android_lint=true disable_fieldtrial_testing_config=true -enable_gvr_services=false enable_hangout_services_extension=false enable_iterator_debugging=false enable_mdns=false @@ -119,6 +117,9 @@ if (target_os == "android") { chrome_pgo_phase = 2 # enable pgo + # do not split Developer UI split into a separate Dynamic Feature Module + dfmify_dev_ui = false + if (getenv("USE_KEYSTORE") != "") { android_keystore_path = "/home/lg/working_dir/cromite.keystore" android_keystore_name = "cromite" @@ -136,6 +137,9 @@ if (target_os == "android") { symbol_level = 1 strip_debug_info = false generate_linker_map = false + + # Disable static analysis + android_static_analysis = "off" } else { generate_linker_map = true } From 878f07dc05fe68bbe804ddce49a52b894be4b4db Mon Sep 17 00:00:00 2001 From: uazo <29201891+uazo@users.noreply.github.com> Date: Sun, 25 May 2025 14:42:25 +0000 Subject: [PATCH 8/8] [AUTO] Patches auto-rebase --- build/patches/Permit-PGO-for-debug-builds.patch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/patches/Permit-PGO-for-debug-builds.patch b/build/patches/Permit-PGO-for-debug-builds.patch index c53053e9..d2ee607d 100644 --- a/build/patches/Permit-PGO-for-debug-builds.patch +++ b/build/patches/Permit-PGO-for-debug-builds.patch @@ -1,6 +1,6 @@ From: uazo Date: Sun, 25 May 2025 12:42:26 +0000 -Subject: Permit PGO for debug builds +Subject: Permit PGO for debug builds License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html ---