From 39b833a5c15ea11b258c1a6a59bdf2f07f921f9c Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Sun, 14 Apr 2024 14:13:16 +0200 Subject: [PATCH 1/3] patches for v124 --- build/RELEASE | 2 +- build/cromite_patches_list.txt | 3 + .../AImageReader-CFI-crash-mitigations.patch | 10 +- .../Add-AllowUserCertificates-flag.patch | 16 +- .../Add-a-flag-to-disable-GamePad-API.patch | 2 +- .../Add-a-proxy-configuration-page.patch | 20 +- .../Add-an-always-incognito-mode.patch | 229 +++++----- build/patches/Add-autoplay-site-setting.patch | 4 +- .../Add-bookmark-import-export-actions.patch | 89 ++-- build/patches/Add-cromite-flags-support.patch | 92 ++-- ...dd-custom-tab-intents-privacy-option.patch | 24 +- build/patches/Add-exit-menu-item.patch | 35 +- ...g-for-omnibox-autocomplete-filtering.patch | 2 +- .../Add-flag-to-disable-IPv6-probes.patch | 6 +- .../Add-flag-to-disable-vibration.patch | 4 +- ...-switch-for-unsupported-clangd-flags.patch | 11 +- ...Add-lifetime-options-for-permissions.patch | 208 ++++----- .../Add-menu-item-to-bookmark-all-tabs.patch | 83 ++-- .../Add-menu-item-to-view-source.patch | 12 +- .../Add-option-to-disable-snapshots.patch | 26 +- .../Add-option-to-force-tablet-UI.patch | 107 ++--- ...-to-not-persist-tabs-across-sessions.patch | 18 +- .../Add-option-to-use-home-page-as-NTP.patch | 18 +- build/patches/Add-search-engine.patch | 49 ++- .../Add-setting-to-clear-data-on-exit.patch | 48 +- ...d-setting-to-invert-tap-and-long-tap.patch | 132 +++--- build/patches/Add-site-engagement-flag.patch | 4 +- ...-support-for-ISupportHelpAndFeedback.patch | 4 +- build/patches/Add-support-to-jxl.patch | 40 +- build/patches/Add-webGL-site-setting.patch | 8 +- build/patches/Add-webRTC-site-settings.patch | 6 +- ...ow-building-without-enable_reporting.patch | 20 +- ...ow-building-without-supervised-users.patch | 40 +- .../Allow-playing-audio-in-background.patch | 6 +- ...ioBuffer-AnalyserNode-fp-mitigations.patch | 8 +- ...Block-gateway-attacks-via-websockets.patch | 10 +- .../Block-qjz9zk-or-trk-requests.patch | 20 +- build/patches/Bromite-auto-updater.patch | 18 +- build/patches/Bromite-package-name.patch | 2 +- .../Bromite-subresource-adblocker.patch | 90 ++-- .../patches/Chrome-web-store-protection.patch | 48 +- build/patches/Client-hints-overrides.patch | 10 +- ...ress-libchrome-to-free-up-some-space.patch | 2 +- .../Content-settings-infrastructure.patch | 260 ++++------- build/patches/Cromite-Branding.patch | 12 +- build/patches/Customize-selection-popup.patch | 20 +- .../Deprecate-Data-URL-in-SVGUseElement.patch | 2 +- ...ble-Accessibility-service-by-default.patch | 4 +- build/patches/Disable-Compose-feature.patch | 15 +- ...ble-Compression-Dictionary-Transport.patch | 2 +- .../Disable-FLoC-and-privacy-sandbox.patch | 51 ++- build/patches/Disable-FedCm.patch | 2 +- ...-FirstPartySets-and-StorageAccessAPI.patch | 4 +- build/patches/Disable-GSA-by-default.patch | 4 +- .../Disable-GetInstalledRelatedApps-API.patch | 8 +- build/patches/Disable-PrivacyGuide.patch | 15 +- build/patches/Disable-Real-Box.patch | 22 +- .../Disable-StartSurface-feature.patch | 4 +- build/patches/Disable-TLS-resumption.patch | 16 +- build/patches/Disable-WebGPU.patch | 8 +- .../patches/Disable-all-predictors-code.patch | 179 ++------ build/patches/Disable-all-promo-dialogs.patch | 14 +- .../Disable-conversion-measurement-api.patch | 66 +-- build/patches/Disable-crash-reporting.patch | 2 +- build/patches/Disable-csp-reports.patch | 4 +- .../Disable-feeds-support-by-default.patch | 4 +- ...Disable-fetching-of-all-field-trials.patch | 6 +- build/patches/Disable-idle-detection.patch | 4 +- ...-lock-icon-in-address-bar-by-default.patch | 2 +- ...media-router-and-remoting-by-default.patch | 8 +- .../patches/Disable-plugins-enumeration.patch | 2 +- ...ers-reduced-transparency-media-query.patch | 2 +- ...e-privacy-issues-in-password-manager.patch | 27 +- build/patches/Disable-safety-check.patch | 49 ++- .../Disable-smart-selection-by-default.patch | 8 +- ...isable-speechSynthesis-getVoices-API.patch | 8 +- .../Disable-text-fragments-by-default.patch | 14 +- .../Disable-third-party-origin-trials.patch | 18 +- build/patches/Disable-various-metrics.patch | 10 +- ...allow-Android-App-Scheme-as-referrer.patch | 2 +- .../Do-not-build-API-keys-infobar.patch | 11 +- .../Do-not-compile-QR-code-sharing.patch | 24 +- ...ore-download-location-prompt-setting.patch | 2 +- .../patches/Do-not-link-with-libatomic.patch | 2 +- build/patches/DoH-improvements.patch | 4 +- ...ndroid-Dynamic-Performance-Framework.patch | 2 +- .../Enable-Certificate-Transparency.patch | 16 +- ...le-Document-Open-Inheritance-Removal.patch | 4 +- build/patches/Enable-HEVC-by-default.patch | 2 +- .../Enable-ImprovedBookmarks-by-default.patch | 10 +- ...ctOriginIsolation-and-SitePerProcess.patch | 6 +- ...e-darken-websites-checkbox-in-themes.patch | 4 +- .../patches/Enable-gwp-asan-on-Android.patch | 8 +- .../Enable-native-Android-autofill.patch | 140 +++--- ...e-percent-based-scrolling-on-Windows.patch | 2 +- ...le-platform-aac-audio-and-h264-video.patch | 2 +- ...le-search-engine-settings-desktop-ui.patch | 26 +- build/patches/Enable-share-intent.patch | 28 +- ...ivation-of-the-js-debugger-statement.patch | 18 +- .../Experimental-user-scripts-support.patch | 66 +-- .../Eyeo-Adblock-Remove-Privacy-Issues.patch | 58 +-- build/patches/Fix-chromium-build-bugs.patch | 20 +- .../Fonts-fingerprinting-mitigation.patch | 4 +- .../Guard-for-user-agent-reduction.patch | 6 +- ...story-number-of-days-privacy-setting.patch | 32 +- .../patches/Improve-the-browser-sandbox.patch | 2 +- ...ripts-for-AMP-tracking-ads-and-video.patch | 14 +- build/patches/Internal-firewall.patch | 38 +- build/patches/JIT-site-settings.patch | 2 +- .../Keep-Side-Panel-Companion-disabled.patch | 2 +- .../patches/Keep-disabled-FetchLaterAPI.patch | 38 +- .../Keep-empty-tabs-between-sessions.patch | 4 +- ...-allow-screenshots-in-Incognito-mode.patch | 2 +- build/patches/Keyboard-protection-flag.patch | 2 +- ...ing-attributes-in-some-html-elements.patch | 14 +- build/patches/Logcat-crash-reports-UI.patch | 58 +-- .../patches/Modify-default-preferences.patch | 24 +- .../Move-navigation-bar-to-bottom.patch | 414 +++++++++--------- ...nt-settings-back-to-privacy-settings.patch | 20 +- .../Multiple-fingerprinting-mitigations.patch | 42 +- ...uiltin-autocomplete-for-chrome-flags.patch | 2 +- build/patches/OpenSearch-miscellaneous.patch | 2 +- .../patches/Override-Navigator-Language.patch | 2 +- .../Partition-Blink-memory-cache.patch | 18 +- .../patches/Partition-HSTS-cache-by-NAK.patch | 46 +- .../Partition-MediaDeviceId-by-default.patch | 2 +- .../Partition-blobs-by-top-frame-URL.patch | 8 +- ...ning-all-cookies-by-top-frame-domain.patch | 52 +-- ...-modal-dialog-flag-to-close-all-tabs.patch | 8 +- ...e-introduce-override_build_timestamp.patch | 4 +- ...referrals-in-cross-origin-navigation.patch | 38 +- ...th-header-upon-cross-origin-redirect.patch | 4 +- .../Remove-binary-blob-integrations.patch | 180 ++++---- .../Remove-detection-of-captive-portals.patch | 2 +- build/patches/Remove-help-menu-item.patch | 18 +- ...t-for-device-memory-and-cpu-recovery.patch | 2 +- ...Remove-voice-recognition-integration.patch | 162 +++---- ...ndow-name-on-cross-origin-navigation.patch | 4 +- .../Restore-LastTabStandingTracker.patch | 8 +- .../Restore-Search-Ready-Omnibox-flag.patch | 26 +- .../Restore-Simplified-NTP-launch.patch | 34 +- ...-button-in-top-toolbar-customization.patch | 10 +- .../Restore-classic-new-tab-page.patch | 2 +- .../Restore-offline-indicator-v2-flag.patch | 8 +- ...emove-disable-pull-to-refresh-effect.patch | 2 +- ...l-of-execution-context-address-space.patch | 65 ++- ...wimage-content-setting-secondary-url.patch | 259 +++++++++++ ...script-content-setting-secondary-url.patch | 372 ++++++++++++++++ build/patches/Show-NTP-at-startup.patch | 6 +- build/patches/Temp-Alert-for-CC-revert.patch | 45 ++ ...ileSystemAccessPersistentPermissions.patch | 4 +- build/patches/Timezone-customization.patch | 26 +- .../Use-4-tile-rows-never-show-logo.patch | 6 +- .../Use-list-mode-for-tab-switcher.patch | 8 +- build/patches/User-agent-customization.patch | 48 +- build/patches/Viewport-Protection-flag.patch | 50 +-- build/patches/WIN-Disable-sharing-hub.patch | 2 +- build/patches/WIN-Fix-log-to-file.patch | 41 +- build/patches/WIN-enable-pdf-plugin.patch | 2 +- ...message-for-unsupported-hardware-aes.patch | 12 +- build/patches/Welcome-screen.patch | 125 +++--- build/patches/add-browser-policy.patch | 44 +- build/patches/autofill-miscellaneous.patch | 8 +- build/patches/bromite-build-utils.patch | 6 +- ...build-remove-calling-untrusted-hooks.patch | 6 +- .../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 +- .../eyeo-beta-118.0.5993.48-android_api.patch | 32 +- ...-beta-118.0.5993.48-android_settings.patch | 15 +- .../eyeo-beta-118.0.5993.48-base.patch | 54 +-- ...eta-118.0.5993.48-chrome_integration.patch | 139 ++---- ...yeo-beta-118.0.5993.48-extension_api.patch | 22 +- build/patches/kill-Vision.patch | 2 +- ...always-prompt-for-download-directory.patch | 2 +- ...gled-chromium-Disable-profile-avatar.patch | 2 +- ...romium-Disable-translate-integration.patch | 6 +- ...chromium-Disable-webRTC-log-uploader.patch | 2 +- ...ed-chromium-no-special-hosts-domains.patch | 42 +- ...RTC-do-not-expose-local-IP-addresses.patch | 6 +- 181 files changed, 3034 insertions(+), 2716 deletions(-) create mode 100644 build/patches/Revert-remove-allowimage-content-setting-secondary-url.patch create mode 100644 build/patches/Revert-remove-allowscript-content-setting-secondary-url.patch create mode 100644 build/patches/Temp-Alert-for-CC-revert.patch diff --git a/build/RELEASE b/build/RELEASE index 6bbf80daf..3b5c82b7f 100644 --- a/build/RELEASE +++ b/build/RELEASE @@ -1 +1 @@ -123.0.6312.122 \ No newline at end of file +124.0.6367.42 \ No newline at end of file diff --git a/build/cromite_patches_list.txt b/build/cromite_patches_list.txt index e0e79aac6..2de6ab7bb 100644 --- a/build/cromite_patches_list.txt +++ b/build/cromite_patches_list.txt @@ -236,6 +236,9 @@ Add-webGL-site-setting.patch Add-webRTC-site-settings.patch Show-site-settings-for-cookies-javascript-and-ads.patch Viewport-Protection-flag.patch +Revert-remove-allowscript-content-setting-secondary-url.patch +Revert-remove-allowimage-content-setting-secondary-url.patch +Temp-Alert-for-CC-revert.patch Timezone-customization.patch Change-popup-site-setting.patch Disable-speechSynthesis-getVoices-API.patch diff --git a/build/patches/AImageReader-CFI-crash-mitigations.patch b/build/patches/AImageReader-CFI-crash-mitigations.patch index 47d66c343..43484f675 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 -@@ -3046,9 +3046,9 @@ +@@ -3101,9 +3101,9 @@ "expiry_milestone": 125 }, { @@ -173,7 +173,7 @@ diff --git a/gpu/config/gpu_finch_features.h b/gpu/config/gpu_finch_features.h diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc --- a/gpu/config/gpu_util.cc +++ b/gpu/config/gpu_util.cc -@@ -122,6 +122,9 @@ GpuFeatureStatus GetAndroidSurfaceControlFeatureStatus( +@@ -124,6 +124,9 @@ GpuFeatureStatus GetAndroidSurfaceControlFeatureStatus( #if !BUILDFLAG(IS_ANDROID) return kGpuFeatureStatusDisabled; #else @@ -183,7 +183,7 @@ diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc if (!gpu_preferences.enable_android_surface_control) return kGpuFeatureStatusDisabled; -@@ -368,6 +371,11 @@ void AdjustGpuFeatureStatusToWorkarounds(GpuFeatureInfo* gpu_feature_info) { +@@ -390,6 +393,11 @@ void AdjustGpuFeatureStatusToWorkarounds(GpuFeatureInfo* gpu_feature_info) { gpu_feature_info->status_values[GPU_FEATURE_TYPE_CANVAS_OOP_RASTERIZATION] = kGpuFeatureStatusBlocklisted; } @@ -209,7 +209,7 @@ diff --git a/gpu/config/gpu_workaround_list.txt b/gpu/config/gpu_workaround_list diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc --- a/gpu/ipc/service/gpu_init.cc +++ b/gpu/ipc/service/gpu_init.cc -@@ -65,6 +65,7 @@ +@@ -69,6 +69,7 @@ #if BUILDFLAG(IS_ANDROID) #include "ui/gfx/android/android_surface_control_compat.h" @@ -217,7 +217,7 @@ diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc #endif #if BUILDFLAG(ENABLE_VULKAN) -@@ -662,6 +663,13 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line, +@@ -708,6 +709,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 de341491a..d1d3cc94d 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 -@@ -230,6 +230,7 @@ import org.chromium.content_public.browser.ScreenOrientationProvider; +@@ -232,6 +232,7 @@ import org.chromium.content_public.browser.ScreenOrientationProvider; 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; -@@ -1064,6 +1065,8 @@ public abstract class ChromeActivity +@@ -1058,6 +1059,8 @@ public abstract class ChromeActivity super.onStartWithNative(); ChromeActivitySessionTracker.getInstance().onStartWithNative(); ChromeCachedFlags.getInstance().cacheNativeFlags(); @@ -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 -@@ -136,6 +136,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -132,6 +132,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &feed::kFeedShowSignInCommand, &feed::kFeedSignedOutViewDemotion, &feed::kFeedUserInteractionReliabilityReport, @@ -59,16 +59,16 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_TRANSLATE = "AdaptiveButtonInTopToolbarTranslate"; public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_ADD_TO_BOOKMARKS = -@@ -533,6 +534,8 @@ public abstract class ChromeFeatureList { - public static final CachedFlag sAndroidHub = newCachedFlag(ANDROID_HUB, false); +@@ -529,6 +530,8 @@ public abstract class ChromeFeatureList { public static final CachedFlag sAndroidTabGroupStableIds = newCachedFlag(ANDROID_TAB_GROUP_STABLE_IDS, false); + public static final CachedFlag sAppSpecificHistory = newCachedFlag(APP_SPECIFIC_HISTORY, false); + public static final CachedFlag sAllowUserCertificates = + newCachedFlag(ALLOW_USER_CERTIFICATES, false); public static final CachedFlag sArchiveTabService = newCachedFlag(ARCHIVE_TAB_SERVICE, false); - public static final CachedFlag sBackGestureActivityTabProvider = - newCachedFlag(BACK_GESTURE_ACTIVITY_TAB_PROVIDER, false); -@@ -679,6 +682,7 @@ public abstract class ChromeFeatureList { + public static final CachedFlag sAsyncNotificationManager = + newCachedFlag(ASYNC_NOTIFICATION_MANAGER, false); +@@ -680,6 +683,7 @@ public abstract class ChromeFeatureList { public static final List sFlagsCachedFullBrowser = List.of( 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 7ad835a9c..f0dda5591 100644 --- a/build/patches/Add-a-flag-to-disable-GamePad-API.patch +++ b/build/patches/Add-a-flag-to-disable-GamePad-API.patch @@ -14,7 +14,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -7195,9 +7195,9 @@ +@@ -7251,9 +7251,9 @@ "expiry_milestone": 125 }, { diff --git a/build/patches/Add-a-proxy-configuration-page.patch b/build/patches/Add-a-proxy-configuration-page.patch index 20c241c27..616acc3e6 100644 --- a/build/patches/Add-a-proxy-configuration-page.patch +++ b/build/patches/Add-a-proxy-configuration-page.patch @@ -77,7 +77,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -76,6 +76,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -78,6 +78,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private static final String PREF_SAFE_BROWSING = "safe_browsing"; private static final String PREF_SYNC_AND_SERVICES_LINK = "sync_and_services_link"; private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox"; @@ -88,7 +88,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 -@@ -308,6 +308,8 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() { +@@ -303,6 +303,8 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() { builtins_to_provide.push_back( base::ASCIIToUTF16(chrome::kChromeUISettingsURL)); #endif @@ -198,15 +198,15 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc @@ -191,6 +191,8 @@ - #include "printing/buildflags/buildflags.h" #include "rlz/buildflags/buildflags.h" + #include "services/screen_ai/buildflags/buildflags.h" +#include "chrome/browser/net/proxy_service_factory.h" + #if BUILDFLAG(ENABLE_BACKGROUND_MODE) #include "chrome/browser/background/background_mode_manager.h" #endif -@@ -1447,6 +1449,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) { +@@ -1476,6 +1478,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) { component_updater::RegisterPrefs(registry); domain_reliability::RegisterPrefs(registry); embedder_support::OriginTrialPrefs::RegisterPrefs(registry); @@ -661,7 +661,7 @@ new file mode 100644 diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -301,6 +301,8 @@ static_library("ui") { +@@ -306,6 +306,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_controller_factory.cc b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc --- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc +++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc -@@ -52,6 +52,7 @@ +@@ -53,6 +53,7 @@ #include "chrome/browser/ui/webui/ntp_tiles_internals_ui.h" #include "chrome/browser/ui/webui/omnibox/omnibox_ui.h" #include "chrome/browser/ui/webui/policy/policy_ui.h" @@ -681,7 +681,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrom #include "chrome/browser/ui/webui/predictors/predictors_ui.h" #include "chrome/browser/ui/webui/privacy_sandbox/privacy_sandbox_internals_ui.h" #include "chrome/browser/ui/webui/segmentation_internals/segmentation_internals_ui.h" -@@ -469,6 +470,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, +@@ -470,6 +471,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, return &NewWebUI; if (url.host_piece() == chrome::kChromeUINetExportHost) return &NewWebUI; @@ -1136,7 +1136,7 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons const char kChromeUIChromeURLsHost[] = "chrome-urls"; const char kChromeUIChromeURLsURL[] = "chrome://chrome-urls/"; const char kChromeUIComponentsHost[] = "components"; -@@ -460,6 +462,7 @@ bool IsSystemWebUIHost(base::StringPiece host) { +@@ -466,6 +468,7 @@ bool IsSystemWebUIHost(base::StringPiece host) { kChromeUILockScreenNetworkHost, kChromeUILockScreenStartReauthHost, kChromeUIMobileSetupHost, @@ -1144,7 +1144,7 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons kChromeUIMultiDeviceSetupHost, kChromeUINetworkHost, kChromeUINotificationTesterHost, -@@ -760,6 +763,7 @@ const char* const kChromeHostURLs[] = { +@@ -764,6 +767,7 @@ const char* const kChromeHostURLs[] = { #if !BUILDFLAG(IS_ANDROID) #if !BUILDFLAG(IS_CHROMEOS) kChromeUIAppLauncherPageHost, @@ -1155,7 +1155,7 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons diff --git a/chrome/common/webui_url_constants.h b/chrome/common/webui_url_constants.h --- a/chrome/common/webui_url_constants.h +++ b/chrome/common/webui_url_constants.h -@@ -134,6 +134,8 @@ extern const char kChromeUINTPTilesInternalsHost[]; +@@ -135,6 +135,8 @@ extern const char kChromeUINTPTilesInternalsHost[]; extern const char kChromeUINaClHost[]; extern const char kChromeUINetExportHost[]; extern const char kChromeUINetExportURL[]; diff --git a/build/patches/Add-an-always-incognito-mode.patch b/build/patches/Add-an-always-incognito-mode.patch index d9987bba7..0f970ac06 100644 --- a/build/patches/Add-an-always-incognito-mode.patch +++ b/build/patches/Add-an-always-incognito-mode.patch @@ -24,7 +24,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../java/res/xml/incognito_preferences.xml | 37 ++++ .../java/res/xml/privacy_preferences.xml | 5 + .../AlwaysIncognitoLinkInterceptor.java | 53 ++++++ - .../chrome/browser/ChromeTabbedActivity.java | 20 ++- + .../chrome/browser/ChromeTabbedActivity.java | 22 ++- .../chrome/browser/app/ChromeActivity.java | 4 + .../AppMenuPropertiesDelegateImpl.java | 27 ++- .../ChromeContextMenuPopulator.java | 7 +- @@ -39,7 +39,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../chrome/browser/ntp/RecentTabsManager.java | 28 ++- .../privacy/settings/IncognitoSettings.java | 160 ++++++++++++++++++ .../browser/settings/SettingsActivity.java | 4 + - .../HistoricalTabModelObserver.java | 6 +- + .../HistoricalTabModelObserver.java | 5 +- .../tab/tab_restore/HistoricalTabSaver.java | 2 +- .../tab_restore/HistoricalTabSaverImpl.java | 17 +- .../tabbed_mode/TabbedRootUiCoordinator.java | 4 +- @@ -66,7 +66,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/profiles/profile_selections.cc | 10 ++ chrome/browser/profiles/profile_selections.h | 7 +- .../browser/ui/android/native_page/BUILD.gn | 2 + - .../browser/ui/native_page/NativePage.java | 16 +- + .../browser/ui/native_page/NativePage.java | 14 +- .../strings/android_chrome_strings.grd | 31 ++++ .../browser/toolbar/LocationBarModel.java | 5 +- chrome/browser/ui/messages/android/BUILD.gn | 1 + @@ -85,7 +85,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../add-an-always-incognito-mode.inc | 3 + .../add-an-always-incognito-mode.inc | 1 + net/base/file_stream_context.cc | 2 +- - 66 files changed, 770 insertions(+), 102 deletions(-) + 66 files changed, 770 insertions(+), 101 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 @@ -98,9 +98,9 @@ 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 -@@ -644,6 +644,7 @@ chrome_java_resources = [ - "java/res/xml/main_preferences.xml", +@@ -646,6 +646,7 @@ chrome_java_resources = [ "java/res/xml/manage_sync_preferences.xml", + "java/res/xml/personalize_google_services_preferences.xml", "java/res/xml/phone_as_a_security_key_accessory_filter.xml", + "java/res/xml/incognito_preferences.xml", "java/res/xml/privacy_preferences.xml", @@ -117,8 +117,8 @@ 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", -@@ -979,6 +980,7 @@ chrome_java_sources = [ - "java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java", +@@ -981,6 +982,7 @@ chrome_java_sources = [ + "java/src/org/chromium/chrome/browser/privacy_sandbox/ChromeIpProtectionDelegate.java", "java/src/org/chromium/chrome/browser/privacy_sandbox/ChromeTrackingProtectionDelegate.java", "java/src/org/chromium/chrome/browser/privacy_sandbox/TrackingProtectionNoticeController.java", + "java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java", @@ -170,7 +170,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 -@@ -66,6 +66,11 @@ found in the LICENSE file. +@@ -77,6 +77,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" /> @@ -243,7 +243,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 -@@ -66,6 +66,10 @@ import org.chromium.base.task.TaskTraits; +@@ -68,6 +68,10 @@ import org.chromium.base.task.TaskTraits; import org.chromium.build.annotations.UsedByReflection; import org.chromium.cc.input.BrowserControlsState; import org.chromium.chrome.R; @@ -254,12 +254,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.chrome.browser.IntentHandler.TabOpenType; import org.chromium.chrome.browser.app.ChromeActivity; import org.chromium.chrome.browser.app.metrics.LaunchCauseMetrics; -@@ -676,9 +680,14 @@ public class ChromeTabbedActivity extends ChromeActivity +@@ -1998,6 +1999,9 @@ public abstract class ChromeActivity throw new IllegalStateException( "Attempting to access TabCreator before initialization"); } @@ -313,11 +315,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App import org.chromium.chrome.R; import org.chromium.chrome.browser.ActivityTabProvider; +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; - import org.chromium.chrome.browser.bookmarks.BookmarkFeatures; import org.chromium.chrome.browser.bookmarks.BookmarkModel; import org.chromium.chrome.browser.bookmarks.PowerBookmarkUtils; -@@ -103,6 +104,10 @@ import java.lang.annotation.RetentionPolicy; - import java.util.ArrayList; + import org.chromium.chrome.browser.commerce.ShoppingFeatures; +@@ -99,6 +100,10 @@ import java.util.ArrayList; + import java.util.Iterator; import java.util.List; +import org.chromium.components.prefs.PrefService; @@ -327,7 +329,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App /** * Base implementation of {@link AppMenuPropertiesDelegate} that handles hiding and showing menu * items based on activity state. -@@ -604,6 +609,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -593,6 +598,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate } private void prepareCommonMenuItems(Menu menu, @MenuGroup int menuGroup, boolean isIncognito) { @@ -341,7 +343,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App // We have to iterate all menu items since same menu item ID may be associated with more // than one menu items. boolean isOverviewModeMenu = menuGroup == MenuGroup.OVERVIEW_MODE_MENU; -@@ -667,7 +679,15 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -656,7 +668,15 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate } if (item.getItemId() == R.id.recent_tabs_menu_id) { @@ -358,7 +360,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App } if (item.getItemId() == R.id.menu_select_tabs) { item.setVisible(isMenuSelectTabsVisible); -@@ -876,8 +896,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -865,8 +885,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate && !isChromeScheme && !isFileScheme && !isContentScheme @@ -460,7 +462,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 +@@ -216,6 +217,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat openInChromeItemVisible = false; tryAddingReadAloud = false; } @@ -483,7 +485,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; -@@ -1291,7 +1294,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid +@@ -1296,7 +1299,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid @Override public boolean isIncognito() { @@ -503,7 +505,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo import org.chromium.chrome.browser.ChromeTabbedActivity; import org.chromium.chrome.browser.IntentHandler; import org.chromium.chrome.browser.app.download.home.DownloadActivityLauncher; -@@ -74,6 +75,10 @@ import org.chromium.url.GURL; +@@ -76,6 +77,10 @@ import org.chromium.url.GURL; import java.io.File; @@ -514,7 +516,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo /** A class containing some utility static methods. */ public class DownloadUtils { private static final String TAG = "download"; -@@ -286,7 +291,16 @@ public class DownloadUtils { +@@ -288,7 +293,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. @@ -535,7 +537,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java -@@ -239,7 +239,9 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver +@@ -246,7 +246,9 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver mHistoryAdapter.generateFooterItems(); // Listen to changes in sign in state. @@ -546,7 +548,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History // Create PrefChangeRegistrar to receive notifications on preference changes. mPrefChangeRegistrar = new PrefChangeRegistrar(); -@@ -275,7 +277,8 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver +@@ -282,7 +284,8 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver mHistoryAdapter.onDestroyed(); mLargeIconBridge.destroy(); mLargeIconBridge = null; @@ -560,14 +562,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History --- a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java @@ -23,6 +23,7 @@ import com.google.android.material.tabs.TabLayout; - import org.chromium.base.metrics.RecordHistogram; - import org.chromium.base.metrics.RecordUserAction; + + import org.chromium.base.IntentUtils; import org.chromium.base.supplier.ObservableSupplier; +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; import org.chromium.base.supplier.ObservableSupplierImpl; import org.chromium.base.supplier.Supplier; import org.chromium.chrome.R; -@@ -49,6 +50,12 @@ import org.chromium.ui.base.Clipboard; +@@ -50,6 +51,12 @@ import org.chromium.ui.base.Clipboard; import java.util.List; @@ -580,16 +582,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History /** Combines and manages the different UI components of browsing history. */ public class HistoryManager implements OnMenuItemClickListener, -@@ -133,7 +140,7 @@ public class HistoryManager +@@ -140,7 +147,7 @@ public class HistoryManager - recordUserAction("Show"); + mUmaRecorder.recordOpenHistory(); // If incognito placeholder is shown, we don't need to create History UI elements. - if (mIsIncognito) { + if (shouldShowIncognitoPlaceholder()) { mSelectableListLayout = null; mRootView = getIncognitoHistoryPlaceholderView(); return; -@@ -339,9 +346,22 @@ public class HistoryManager +@@ -349,9 +356,22 @@ public class HistoryManager onBackPressStateChanged(); } @@ -613,7 +615,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History // If Incognito placeholder is shown no need to call any destroy method. return; } -@@ -397,7 +417,7 @@ public class HistoryManager +@@ -407,7 +427,7 @@ public class HistoryManager * @return True if manager handles this event, false if it decides to ignore. */ private boolean onBackPressed() { @@ -672,20 +674,20 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat import org.chromium.chrome.browser.app.ChromeActivity; import org.chromium.chrome.browser.app.download.home.DownloadPage; import org.chromium.chrome.browser.bookmarks.BookmarkPage; -@@ -297,7 +298,8 @@ public class NativePageFactory { - String url, NativePage candidatePage, Tab tab, boolean isIncognito) { +@@ -308,7 +309,8 @@ public class NativePageFactory { + String url, NativePage candidatePage, Tab tab, boolean isIncognito, boolean isPdf) { NativePage page; -- switch (NativePage.nativePageType(url, candidatePage, isIncognito)) { +- switch (NativePage.nativePageType(url, candidatePage, isIncognito, isPdf)) { + boolean isAlwaysIncognito = AlwaysIncognitoLinkInterceptor.isAlwaysIncognito(); -+ switch (NativePage.nativePageType(url, candidatePage, isIncognito, isAlwaysIncognito)) { ++ switch (NativePage.nativePageType(url, candidatePage, isIncognito, isPdf, isAlwaysIncognito)) { case NativePageType.NONE: return null; case NativePageType.CANDIDATE: diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java -@@ -35,6 +35,15 @@ import org.chromium.components.signin.metrics.SigninAccessPoint; +@@ -36,6 +36,15 @@ import org.chromium.components.signin.metrics.SigninAccessPoint; import org.chromium.components.sync.SyncService; import org.chromium.url.GURL; @@ -701,7 +703,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM import java.util.HashMap; import java.util.List; import java.util.Map; -@@ -101,7 +110,8 @@ public class RecentTabsManager +@@ -102,7 +111,8 @@ public class RecentTabsManager Profile profile, Context context, Runnable showHistoryManager) { @@ -711,7 +713,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM mActiveTab = tab; mTabModelSelector = tabModelSelector; mShowHistoryManager = showHistoryManager; -@@ -263,6 +273,22 @@ public class RecentTabsManager +@@ -265,6 +275,22 @@ public class RecentTabsManager */ public void openRecentlyClosedTab(RecentlyClosedTab tab, int windowDisposition) { if (mIsDestroyed) return; @@ -902,15 +904,15 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java -@@ -75,6 +75,7 @@ import org.chromium.chrome.browser.signin.SyncConsentActivityLauncherImpl; +@@ -78,6 +78,7 @@ import org.chromium.chrome.browser.signin.SyncConsentActivityLauncherImpl; import org.chromium.chrome.browser.site_settings.ChromeSiteSettingsDelegate; import org.chromium.chrome.browser.sync.SyncServiceFactory; import org.chromium.chrome.browser.ui.device_lock.MissingDeviceLockLauncher; +import org.chromium.chrome.browser.ui.messages.snackbar.INeedSnackbarManager; import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarManageable; - import org.chromium.components.browser_ui.accessibility.AccessibilitySettings; -@@ -362,6 +363,9 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity + import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; +@@ -365,6 +366,9 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity ((PrivacySandboxSettingsBaseFragment) fragment) .setSnackbarManager(getSnackbarManager()); } @@ -923,7 +925,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver.java -@@ -13,6 +13,8 @@ import java.util.ArrayList; +@@ -21,6 +21,8 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -931,25 +933,19 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore + /** A tab model observer for managing bulk closures. */ public class HistoricalTabModelObserver implements TabModelObserver { - private final TabModel mTabModel; -@@ -38,7 +40,8 @@ public class HistoricalTabModelObserver implements TabModelObserver { + private final TabGroupModelFilter mTabGroupModelFilter; +@@ -52,9 +54,10 @@ public class HistoricalTabModelObserver implements TabModelObserver { if (tabs.isEmpty()) return; if (tabs.size() == 1) { -- mHistoricalTabSaver.createHistoricalTab(tabs.get(0)); + boolean is_always_incognito = AlwaysIncognitoLinkInterceptor.isAlwaysIncognito(); -+ mHistoricalTabSaver.createHistoricalTab(tabs.get(0), is_always_incognito); - return; - } - -@@ -69,7 +72,6 @@ public class HistoricalTabModelObserver implements TabModelObserver { - entries.add(historicalGroup); - idToGroup.put(groupId, historicalGroup); + Tab tab = tabs.get(0); + if (!isTabGroupWithOneTab(tab)) { +- mHistoricalTabSaver.createHistoricalTab(tab); ++ mHistoricalTabSaver.createHistoricalTab(tab, is_always_incognito); + return; + } } -- - mHistoricalTabSaver.createHistoricalBulkClosure(entries); - } - } diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaver.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaver.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaver.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaver.java @@ -965,7 +961,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaverImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaverImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaverImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaverImpl.java -@@ -26,6 +26,8 @@ import java.util.Arrays; +@@ -28,6 +28,8 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -974,7 +970,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore /** Creates historical entries in TabRestoreService. */ @JNINamespace("historical_tab_saver") public class HistoricalTabSaverImpl implements HistoricalTabSaver { -@@ -64,10 +66,10 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { +@@ -66,10 +68,10 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { // HistoricalTabSaver implementation. @Override @@ -987,7 +983,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore } @Override -@@ -119,7 +121,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { +@@ -126,7 +128,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { // If there is only a single valid tab remaining save it individually. if (validEntries.size() == 1 && validEntries.get(0).isSingleTab()) { @@ -996,7 +992,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore return; } -@@ -155,14 +157,15 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { +@@ -165,14 +167,15 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { CollectionUtil.integerCollectionToIntArray(savedStateVersions)); } @@ -1014,7 +1010,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore } /** -@@ -170,7 +173,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { +@@ -180,7 +183,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { * internal Chrome scheme, about:blank, or a native page and it cannot be incognito. */ private boolean shouldSave(Tab tab) { @@ -1023,7 +1019,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore // {@link GURL#getScheme()} is not available in unit tests. if (mIgnoreUrlSchemesForTesting) return true; -@@ -243,7 +246,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { +@@ -261,7 +264,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { @NativeMethods interface Natives { @@ -1035,7 +1031,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java -@@ -139,6 +139,8 @@ import org.chromium.components.webapps.bottomsheet.PwaBottomSheetController; +@@ -137,6 +137,8 @@ import org.chromium.components.webapps.bottomsheet.PwaBottomSheetController; import org.chromium.components.webapps.bottomsheet.PwaBottomSheetControllerFactory; import org.chromium.ui.base.ActivityWindowAndroid; import org.chromium.ui.base.DeviceFormFactor; @@ -1044,7 +1040,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.dragdrop.DragDropGlobalState; import org.chromium.ui.modaldialog.ModalDialogManager; -@@ -1011,7 +1013,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1006,7 +1008,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { () -> { mTabCreatorManagerSupplier .get() @@ -1107,7 +1103,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPer import java.io.BufferedInputStream; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; -@@ -670,6 +672,13 @@ public class TabPersistentStore { +@@ -671,6 +673,13 @@ public class TabPersistentStore { } } } @@ -1132,7 +1128,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar import org.chromium.chrome.browser.IntentHandler; import org.chromium.chrome.browser.app.tab_activity_glue.TabReparentingController; import org.chromium.chrome.browser.app.tabmodel.TabWindowManagerSingleton; -@@ -615,7 +616,7 @@ public class ToolbarManager +@@ -626,7 +627,7 @@ public class ToolbarManager TraceEvent.end("isOfflinePage"); return ret; } @@ -1189,7 +1185,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappI diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/android/historical_tab_saver.cc --- a/chrome/browser/android/historical_tab_saver.cc +++ b/chrome/browser/android/historical_tab_saver.cc -@@ -27,6 +27,11 @@ +@@ -29,6 +29,11 @@ #include "components/sessions/core/tab_restore_service.h" #include "content/public/browser/web_contents.h" @@ -1199,9 +1195,9 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and +#include "historical_tab_saver.h" + using base::android::JavaParamRef; + using base::android::JavaRef; using base::android::ScopedJavaLocalRef; - -@@ -39,7 +44,8 @@ constexpr int kInvalidGroupId = -1; +@@ -87,7 +92,8 @@ std::vector> JavaTokensToTabGroupIds( void CreateHistoricalTab( TabAndroid* tab_android, @@ -1211,7 +1207,7 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and if (!tab_android) { return; } -@@ -50,9 +56,14 @@ void CreateHistoricalTab( +@@ -98,9 +104,14 @@ void CreateHistoricalTab( return; } @@ -1228,16 +1224,16 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and if (!service) { return; } -@@ -100,7 +111,7 @@ void CreateHistoricalBulkClosure( - std::vector per_tab_android_group_id, +@@ -162,7 +173,7 @@ void CreateHistoricalBulkClosure( + std::vector per_tab_root_id, std::vector> tabs, std::vector web_contents_state) { - DCHECK(model); + if (!model) return; - DCHECK_EQ(android_group_ids.size(), group_titles.size()); - DCHECK_EQ(per_tab_android_group_id.size(), tabs.size()); - -@@ -235,11 +246,12 @@ static void JNI_HistoricalTabSaverImpl_CreateHistoricalTab( + DCHECK_EQ(root_ids.size(), group_titles.size()); + DCHECK_EQ(root_ids.size(), group_colors.size()); + DCHECK_EQ(root_ids.size(), optional_tab_group_ids.size()); +@@ -286,11 +297,12 @@ static void JNI_HistoricalTabSaverImpl_CreateHistoricalTab( JNIEnv* env, const JavaParamRef& jtab_android, const JavaParamRef& state, @@ -1251,11 +1247,11 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and + std::move(web_contents_state), is_always_incognito); } - // static + static void JNI_HistoricalTabSaverImpl_CreateHistoricalGroup( 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 -@@ -357,6 +357,15 @@ ChromeAutocompleteProviderClient::GetProviderStateService() const { +@@ -352,6 +352,15 @@ ChromeAutocompleteProviderClient::GetProviderStateService() const { return ProviderStateServiceFactory::GetForProfile(profile_); } @@ -1274,7 +1270,7 @@ 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 -@@ -85,6 +85,7 @@ class ChromeAutocompleteProviderClient : public AutocompleteProviderClient { +@@ -84,6 +84,7 @@ class ChromeAutocompleteProviderClient : public AutocompleteProviderClient { OnDeviceTailModelService* GetOnDeviceTailModelService() const override; ProviderStateService* GetProviderStateService() const override; bool IsOffTheRecord() const override; @@ -1737,7 +1733,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse #include "chrome/browser/android/bookmarks/partner_bookmarks_shim.h" #include "chrome/browser/android/ntp/recent_tabs_page_prefs.h" #include "chrome/browser/android/oom_intervention/oom_intervention_decider.h" -@@ -1856,6 +1857,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -1885,6 +1886,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, usage_stats::UsageStatsBridge::RegisterProfilePrefs(registry); variations::VariationsService::RegisterProfilePrefs(registry); webapps::InstallPromptPrefs::RegisterProfilePrefs(registry); @@ -1761,7 +1757,7 @@ diff --git a/chrome/browser/profiles/profile_selections.cc b/chrome/browser/prof #include "chrome/browser/profiles/profile.h" #include "components/profile_metrics/browser_profile_type.h" -@@ -110,6 +113,13 @@ Profile* ProfileSelections::ApplyProfileSelection(Profile* profile) const { +@@ -109,6 +112,13 @@ Profile* ProfileSelections::ApplyProfileSelection(Profile* profile) const { return nullptr; case ProfileSelection::kOriginalOnly: return profile->IsOffTheRecord() ? nullptr : profile; @@ -1802,20 +1798,19 @@ diff --git a/chrome/browser/profiles/profile_selections.h b/chrome/browser/profi diff --git a/chrome/browser/ui/android/native_page/BUILD.gn b/chrome/browser/ui/android/native_page/BUILD.gn --- a/chrome/browser/ui/android/native_page/BUILD.gn +++ b/chrome/browser/ui/android/native_page/BUILD.gn -@@ -28,7 +28,9 @@ robolectric_library("junit") { +@@ -28,6 +28,8 @@ robolectric_library("junit") { deps = [ ":java", + "//base:base_java", ++ "//components/embedder_support/android:util_java", "//base:base_junit_test_support", "//third_party/junit", -+ "//components/embedder_support/android:util_java", - ] - } + "//url:url_java", diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/browser/ui/native_page/NativePage.java b/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/browser/ui/native_page/NativePage.java --- a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/browser/ui/native_page/NativePage.java +++ b/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/browser/ui/native_page/NativePage.java -@@ -16,6 +16,8 @@ import org.chromium.url.GURL; +@@ -15,6 +15,8 @@ import org.chromium.url.GURL; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -1824,46 +1819,40 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/ /** An interface for pages that will be using Android views instead of html/rendered Web content. */ public interface NativePage { /** -@@ -118,12 +120,12 @@ public interface NativePage { - */ - @Deprecated // Use GURL-variant instead. - static boolean isNativePageUrl(String url, boolean isIncognito) { -- return nativePageType(url, null, isIncognito) != NativePageType.NONE; -+ return nativePageType(url, null, isIncognito, false) != NativePageType.NONE; - } - +@@ -127,7 +129,7 @@ public interface NativePage { static boolean isNativePageUrl(GURL url, boolean isIncognito) { + // TODO(shuyng): Propagate the real isPdf param. return url != null -- && nativePageType(url.getHost(), url.getScheme(), null, isIncognito) -+ && nativePageType(url.getHost(), url.getScheme(), null, isIncognito, false) +- && nativePageType(url, null, isIncognito, /* isPdf= */ false) ++ && nativePageType(url, null, isIncognito, /* isPdf= */ false, /*isAlwaysIncognito*/ false) != NativePageType.NONE; } -@@ -135,11 +137,12 @@ public interface NativePage { +@@ -140,11 +142,12 @@ public interface NativePage { */ // TODO(crbug/783819) - Convert to using GURL. static @NativePageType int nativePageType( -- String url, NativePage candidatePage, boolean isIncognito) { -+ String url, NativePage candidatePage, boolean isIncognito, +- String url, NativePage candidatePage, boolean isIncognito, boolean isPdf) { ++ String url, NativePage candidatePage, boolean isIncognito, boolean isPdf, + boolean isAlwaysIncognito) { if (url == null) return NativePageType.NONE; - Uri uri = Uri.parse(url); -- return nativePageType(uri.getHost(), uri.getScheme(), candidatePage, isIncognito); -+ return nativePageType(uri.getHost(), uri.getScheme(), candidatePage, isIncognito, isAlwaysIncognito); + GURL gurl = new GURL(url); +- return nativePageType(gurl, candidatePage, isIncognito, isPdf); ++ return nativePageType(gurl, candidatePage, isIncognito, isPdf, isAlwaysIncognito); } /** -@@ -148,7 +151,7 @@ public interface NativePage { +@@ -155,7 +158,7 @@ public interface NativePage { * @return Type of the native page defined in {@link NativePageType}. */ private static @NativePageType int nativePageType( -- String host, String scheme, NativePage candidatePage, boolean isIncognito) { -+ String host, String scheme, NativePage candidatePage, boolean isIncognito, boolean isAlwaysIncognito) { - if (!UrlConstants.CHROME_NATIVE_SCHEME.equals(scheme) - && !UrlConstants.CHROME_SCHEME.equals(scheme)) { - return NativePageType.NONE; -@@ -166,7 +169,8 @@ public interface NativePage { +- GURL url, NativePage candidatePage, boolean isIncognito, boolean isPdf) { ++ GURL url, NativePage candidatePage, boolean isIncognito, boolean isPdf, boolean isAlwaysIncognito) { + String host = url.getHost(); + String scheme = url.getScheme(); + if (!isPdf +@@ -180,7 +183,8 @@ public interface NativePage { return NativePageType.DOWNLOADS; } else if (UrlConstants.HISTORY_HOST.equals(host)) { return NativePageType.HISTORY; @@ -1876,7 +1865,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -1228,6 +1228,37 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1257,6 +1257,37 @@ Your Google account may have other forms of browsing history like searches and a Clears history from all synced devices @@ -1917,7 +1906,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 -@@ -165,6 +165,7 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro +@@ -162,6 +162,7 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro protected String mFormattedFullUrl; protected String mUrlForDisplay; private boolean mOmniboxUpdatedConnectionSecurityIndicatorsEnabled; @@ -1925,7 +1914,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow // notifyUrlChanged and notifySecurityStateChanged are usually called 3 times across a same // document navigation. The first call is usually necessary, which updates the UrlBar to reflect -@@ -188,7 +189,9 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro +@@ -185,7 +186,9 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro Context context, NewTabPageDelegate newTabPageDelegate, @NonNull UrlFormatter urlFormatter, @@ -1982,7 +1971,7 @@ new file mode 100644 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 -@@ -3957,6 +3957,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] = +@@ -3955,6 +3955,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] = "net.out_of_process_system_dns_resolution_enabled"; #endif // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) @@ -2107,7 +2096,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 -@@ -137,6 +137,7 @@ class AutocompleteProviderClient : public OmniboxAction::Client { +@@ -136,6 +136,7 @@ class AutocompleteProviderClient : public OmniboxAction::Client { virtual bool IsOffTheRecord() const = 0; virtual bool IsIncognitoProfile() const = 0; virtual bool IsGuestSession() const = 0; @@ -2118,7 +2107,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 -@@ -350,7 +350,7 @@ bool BaseSearchProvider::CanSendSuggestRequestWithoutPageURL( +@@ -332,7 +332,7 @@ bool BaseSearchProvider::CanSendSuggestRequestWithoutPageURL( } // Don't make a suggest request if in incognito mode. diff --git a/build/patches/Add-autoplay-site-setting.patch b/build/patches/Add-autoplay-site-setting.patch index 3c6d45a5c..c32db66fd 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 -@@ -255,7 +255,7 @@ void ContentSettingsRegistry::Init() { +@@ -245,7 +245,7 @@ void ContentSettingsRegistry::Init() { ContentSettingsInfo::INHERIT_IN_INCOGNITO, ContentSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY); @@ -329,7 +329,7 @@ diff --git a/third_party/blink/renderer/core/html/media/autoplay_policy.cc b/thi diff --git a/third_party/blink/renderer/core/html/media/autoplay_policy.h b/third_party/blink/renderer/core/html/media/autoplay_policy.h --- a/third_party/blink/renderer/core/html/media/autoplay_policy.h +++ b/third_party/blink/renderer/core/html/media/autoplay_policy.h -@@ -138,6 +138,10 @@ class CORE_EXPORT AutoplayPolicy final +@@ -142,6 +142,10 @@ class CORE_EXPORT AutoplayPolicy final // should use, if checking to see if an action is allowed. bool IsLockedPendingUserGesture() const; diff --git a/build/patches/Add-bookmark-import-export-actions.patch b/build/patches/Add-bookmark-import-export-actions.patch index 33ab53ef1..83638ce47 100644 --- a/build/patches/Add-bookmark-import-export-actions.patch +++ b/build/patches/Add-bookmark-import-export-actions.patch @@ -270,7 +270,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm /** * Provides the communication channel for Android to fetch and manipulate the bookmark model stored * in native. -@@ -483,6 +525,212 @@ class BookmarkBridge { +@@ -504,6 +546,212 @@ class BookmarkBridge { .getTotalBookmarkCount(mNativeBookmarkBridge, id.getId(), id.getType()); } @@ -483,8 +483,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm /** * Synchronously gets a list of bookmarks that match the specified search query. * -@@ -1036,6 +1284,39 @@ class BookmarkBridge { - depthList.add(depth); +@@ -1062,6 +1310,39 @@ class BookmarkBridge { + BookmarkUtils.clearLastUsedPrefs(); } + @CalledByNative @@ -523,7 +523,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm private static List> createPairsList(int[] left, int[] right) { List> pairList = new ArrayList<>(); for (int i = 0; i < left.length; i++) { -@@ -1094,6 +1375,10 @@ class BookmarkBridge { +@@ -1128,6 +1409,10 @@ class BookmarkBridge { void getChildIds( long nativeBookmarkBridge, long id, int type, List bookmarksList); @@ -583,16 +583,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java -@@ -53,6 +53,8 @@ import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelega - import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelegate.SelectionObserver; +@@ -54,6 +54,8 @@ import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelega import org.chromium.components.commerce.core.CommerceSubscription; import org.chromium.components.commerce.core.ShoppingService; + import org.chromium.components.commerce.core.SubscriptionsObserver; +import org.chromium.ui.base.ActivityWindowAndroid; +import org.chromium.ui.modaldialog.ModalDialogManager; import org.chromium.components.favicon.LargeIconBridge; import org.chromium.components.feature_engagement.EventConstants; import org.chromium.components.power_bookmarks.PowerBookmarkMeta; -@@ -82,6 +84,9 @@ class BookmarkManagerMediator +@@ -83,6 +85,9 @@ class BookmarkManagerMediator private static boolean sPreventLoadingForTesting; @@ -602,7 +602,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm /** Keeps track of whether drag is enabled / active for bookmark lists. */ private class BookmarkDragStateDelegate implements DragStateDelegate { private BookmarkDelegate mBookmarkDelegate; -@@ -554,6 +559,14 @@ class BookmarkManagerMediator +@@ -606,6 +611,14 @@ class BookmarkManagerMediator mNativePage = nativePage; } @@ -617,7 +617,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm /** See BookmarkManager(Coordinator)#updateForUrl */ void updateForUrl(String url) { // Bookmark model is null if the manager has been destroyed. -@@ -734,6 +747,16 @@ class BookmarkManagerMediator +@@ -786,6 +799,16 @@ class BookmarkManagerMediator } } @@ -723,7 +723,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java -@@ -132,6 +132,10 @@ class BookmarkToolbarMediator +@@ -131,6 +131,10 @@ class BookmarkToolbarMediator mBookmarkDelegate = bookmarkDelegate; mModel.set( BookmarkToolbarProperties.NAVIGATE_BACK_RUNNABLE, this::onNavigateBack); @@ -785,7 +785,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat import org.chromium.chrome.browser.app.download.home.DownloadPage; import org.chromium.chrome.browser.bookmarks.BookmarkPage; import org.chromium.chrome.browser.browser_controls.BrowserControlsMarginSupplier; -@@ -54,7 +55,7 @@ import org.chromium.ui.util.ColorUtils; +@@ -55,7 +56,7 @@ import org.chromium.ui.util.ColorUtils; * Creates NativePage objects to show chrome-native:// URLs using the native Android view system. */ public class NativePageFactory { @@ -794,7 +794,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat private final BottomSheetController mBottomSheetController; private final BrowserControlsManager mBrowserControlsManager; private final Supplier mCurrentTabSupplier; -@@ -74,7 +75,7 @@ public class NativePageFactory { +@@ -75,7 +76,7 @@ public class NativePageFactory { private NativePageBuilder mNativePageBuilder; public NativePageFactory( @@ -803,7 +803,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat @NonNull BottomSheetController sheetController, @NonNull BrowserControlsManager browserControlsManager, @NonNull Supplier currentTabSupplier, -@@ -140,7 +141,7 @@ public class NativePageFactory { +@@ -141,7 +142,7 @@ public class NativePageFactory { @VisibleForTesting static class NativePageBuilder { @@ -812,7 +812,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat private final BottomSheetController mBottomSheetController; private final Supplier mUma; private final BrowserControlsManager mBrowserControlsManager; -@@ -158,7 +159,7 @@ public class NativePageFactory { +@@ -159,7 +160,7 @@ public class NativePageFactory { private final OneshotSupplier mModuleRegistrySupplier; public NativePageBuilder( @@ -821,7 +821,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat Supplier uma, BottomSheetController sheetController, BrowserControlsManager browserControlsManager, -@@ -228,7 +229,7 @@ public class NativePageFactory { +@@ -229,7 +230,7 @@ public class NativePageFactory { mActivity.getComponentName(), mSnackbarManagerSupplier.get(), tab.getProfile(), @@ -842,7 +842,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", -@@ -1935,6 +1937,13 @@ static_library("browser") { +@@ -1942,6 +1944,13 @@ static_library("browser") { ] } @@ -856,7 +856,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn configs += [ "//build/config/compiler:wexit_time_destructors", "//build/config:precompiled_headers", -@@ -3649,8 +3658,6 @@ static_library("browser") { +@@ -3655,8 +3664,6 @@ static_library("browser") { "badging/badge_manager_factory.h", "banners/app_banner_manager_desktop.cc", "banners/app_banner_manager_desktop.h", @@ -868,9 +868,9 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browser/bookmarks/android/bookmark_bridge.cc --- a/chrome/browser/bookmarks/android/bookmark_bridge.cc +++ b/chrome/browser/bookmarks/android/bookmark_bridge.cc -@@ -59,6 +59,28 @@ - #include "content/public/browser/browser_thread.h" +@@ -63,6 +63,28 @@ #include "content/public/browser/web_contents.h" + #include "url/gurl.h" +#include "base/android/content_uri_utils.h" +#include "base/android/path_utils.h" @@ -897,7 +897,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse using base::android::AttachCurrentThread; using base::android::ConvertUTF16ToJavaString; using base::android::ConvertUTF8ToJavaString; -@@ -76,12 +98,96 @@ using bookmarks::android::JavaBookmarkIdGetType; +@@ -80,12 +102,96 @@ using bookmarks::android::JavaBookmarkIdGetType; using content::BrowserThread; using power_bookmarks::PowerBookmarkMeta; @@ -994,7 +994,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse class BookmarkTitleComparer { public: explicit BookmarkTitleComparer(BookmarkBridge* bookmark_bridge, -@@ -232,6 +338,10 @@ BookmarkBridge::~BookmarkBridge() { +@@ -242,6 +348,10 @@ BookmarkBridge::~BookmarkBridge() { partner_bookmarks_shim_observation_.Reset(); bookmark_model_observation_.Reset(); profile_observation_.Reset(); @@ -1004,8 +1004,8 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse + select_file_dialog_->ListenerDestroyed(); } - void BookmarkBridge::Destroy(JNIEnv*) { -@@ -668,6 +778,183 @@ jint BookmarkBridge::GetTotalBookmarkCount( + void BookmarkBridge::Destroy(JNIEnv* env) { +@@ -818,6 +928,183 @@ jint BookmarkBridge::GetTotalBookmarkCount( return count; } @@ -1200,8 +1200,8 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser #include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile_observer.h" #include "chrome/browser/reading_list/android/reading_list_manager.h" -@@ -33,6 +34,9 @@ - #include "components/prefs/pref_change_registrar.h" +@@ -39,6 +40,9 @@ + #include "components/signin/public/identity_manager/identity_manager.h" #include "url/android/gurl_android.h" +#include "components/search_engines/template_url.h" @@ -1210,17 +1210,17 @@ 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 -@@ -44,7 +48,8 @@ class BookmarkBridge : public ProfileObserver, - public bookmarks::BaseBookmarkModelObserver, - public PartnerBookmarksShim::Observer, +@@ -52,7 +56,8 @@ class BookmarkBridge : public ProfileObserver, public ReadingListManager::Observer, + public ReadingListModelObserver, + public signin::IdentityManager::Observer, - public base::SupportsUserData::Data { + public base::SupportsUserData::Data, + public ui::SelectFileDialog::Listener { public: - BookmarkBridge( - Profile* profile, -@@ -81,6 +86,12 @@ class BookmarkBridge : public ProfileObserver, + // All of the injected pointers must be non-null and must outlive `this`. + BookmarkBridge(Profile* profile, +@@ -97,6 +102,12 @@ class BookmarkBridge : public ProfileObserver, bool IsDoingExtensiveChanges(JNIEnv* env); @@ -1233,7 +1233,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser jboolean IsEditBookmarksEnabled(JNIEnv* env); void LoadEmptyPartnerBookmarkShimForTesting(JNIEnv* env); -@@ -93,6 +104,15 @@ class BookmarkBridge : public ProfileObserver, +@@ -109,6 +120,15 @@ class BookmarkBridge : public ProfileObserver, jlong id, jint type); @@ -1249,16 +1249,17 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser void GetAllFoldersWithDepths( JNIEnv* env, const base::android::JavaParamRef& j_folders_obj, -@@ -356,12 +376,16 @@ class BookmarkBridge : public ProfileObserver, - void DestroyJavaObject(); +@@ -384,6 +404,9 @@ class BookmarkBridge : public ProfileObserver, + void CreateOrDestroyAccountReadingListManagerIfNeeded(); - raw_ptr profile_; // weak + const raw_ptr profile_; // weak + base::FilePath export_path_; + raw_ptr observer_; // weak + base::android::ScopedJavaGlobalRef java_bookmark_model_; - raw_ptr bookmark_model_; // weak - raw_ptr managed_bookmark_service_; // weak + const raw_ptr bookmark_model_; // weak + const raw_ptr +@@ -400,6 +423,7 @@ class BookmarkBridge : public ProfileObserver, std::unique_ptr grouped_bookmark_actions_; PrefChangeRegistrar pref_change_registrar_; @@ -1266,7 +1267,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. -@@ -389,6 +413,10 @@ class BookmarkBridge : public ProfileObserver, +@@ -431,6 +455,10 @@ class BookmarkBridge : public ProfileObserver, bool suppress_observer_notifications_ = false; @@ -1383,19 +1384,19 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -176,6 +176,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -173,6 +173,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kCacheActivityTaskID, &kCastDeviceFilter, &kClearOmniboxFocusAfterNavigation, + &kBookmarksExportUseSaf, &kCreateNewTabInitializeRenderer, - &kCCTBrandTransparencyMemoryImprovement, &kCCTClientDataHeader, + &kCCTEmbedderSpecialBehaviorTrigger, 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 -@@ -502,6 +502,7 @@ public abstract class ChromeFeatureList { - public static final String USER_BYPASS_UI = "UserBypassUI"; +@@ -497,6 +497,7 @@ public abstract class ChromeFeatureList { + "UseLibunwindstackNativeUnwinderAndroid"; public static final String VERTICAL_AUTOMOTIVE_BACK_BUTTON_TOOLBAR = "VerticalAutomotiveBackButtonToolbar"; + public static final String BOOKMARKS_EXPORT_USESAF = "BookmarksExportUseSaf"; @@ -1457,7 +1458,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro /** * Whether Chrome is set as the default browser. -@@ -894,6 +896,7 @@ public final class ChromePreferenceKeys { +@@ -899,6 +901,7 @@ public final class ChromePreferenceKeys { AUTOFILL_ASSISTANT_PROACTIVE_HELP_ENABLED, APP_LAUNCH_LAST_KNOWN_ACTIVE_TAB_STATE, APP_LAUNCH_SEARCH_ENGINE_HAD_LOGO, @@ -1496,7 +1497,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 -@@ -404,6 +404,9 @@ static_library("common_lib") { +@@ -401,6 +401,9 @@ static_library("common_lib") { sources += [ "media/chrome_media_drm_bridge_client.cc", "media/chrome_media_drm_bridge_client.h", diff --git a/build/patches/Add-cromite-flags-support.patch b/build/patches/Add-cromite-flags-support.patch index d2cf5fcdd..a0b5b997d 100644 --- a/build/patches/Add-cromite-flags-support.patch +++ b/build/patches/Add-cromite-flags-support.patch @@ -120,7 +120,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 -@@ -212,6 +212,8 @@ buildflag_header("message_pump_buildflags") { +@@ -220,6 +220,8 @@ buildflag_header("message_pump_buildflags") { # 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") { @@ -129,7 +129,7 @@ diff --git a/base/BUILD.gn b/base/BUILD.gn sources = [ "allocator/allocator_check.cc", "allocator/allocator_check.h", -@@ -1055,7 +1057,7 @@ component("base") { +@@ -1060,7 +1062,7 @@ component("base") { "//build/config/compiler:wglobal_constructors", ] @@ -141,7 +141,7 @@ diff --git a/base/BUILD.gn b/base/BUILD.gn diff --git a/base/android/feature_map.cc b/base/android/feature_map.cc --- a/base/android/feature_map.cc +++ b/base/android/feature_map.cc -@@ -45,9 +45,15 @@ static jboolean JNI_FeatureMap_IsEnabled( +@@ -46,9 +46,15 @@ static jboolean JNI_FeatureMap_IsEnabled( JNIEnv* env, jlong jfeature_map, const android::JavaParamRef& jfeature_name) { @@ -153,8 +153,8 @@ diff --git a/base/android/feature_map.cc b/base/android/feature_map.cc + } FeatureMap* feature_map = reinterpret_cast(jfeature_map); const base::Feature* feature = feature_map->FindFeatureExposedToJava( -- StringPiece(ConvertJavaStringToUTF8(env, jfeature_name))); -+ StringPiece(feature_name)); +- std::string_view(ConvertJavaStringToUTF8(env, jfeature_name))); ++ std::string_view(feature_name)); return base::FeatureList::IsEnabled(*feature); } @@ -433,7 +433,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 -@@ -59,6 +59,10 @@ found in the LICENSE file. +@@ -70,6 +70,10 @@ found in the LICENSE file. android:title="@string/tabgrid_use_icons_title" android:summary="@string/tabgrid_use_icons_summary" android:defaultValue="false" /> @@ -459,7 +459,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settin diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -121,7 +121,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -128,7 +128,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private static final String PREF_HISTORY_EXPIRE_DAYS_THRESHOLD = "history_expire_days_threshold"; @Override @@ -479,15 +479,15 @@ 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; -@@ -74,6 +75,7 @@ import org.chromium.chrome.browser.ui.device_lock.MissingDeviceLockLauncher; +@@ -77,6 +78,7 @@ import org.chromium.chrome.browser.ui.device_lock.MissingDeviceLockLauncher; import org.chromium.chrome.browser.ui.messages.snackbar.INeedSnackbarManager; import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarManageable; +import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar; - import org.chromium.components.browser_ui.accessibility.AccessibilitySettings; import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; import org.chromium.components.browser_ui.bottomsheet.BottomSheetControllerFactory; -@@ -114,6 +116,36 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity + import org.chromium.components.browser_ui.bottomsheet.ManagedBottomSheetController; +@@ -117,6 +119,36 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity implements PreferenceFragmentCompat.OnPreferenceStartFragmentCallback, SnackbarManageable, DisplayStyleObserver { @@ -524,7 +524,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"; -@@ -367,6 +399,10 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -370,6 +402,10 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity ((AccessibilitySettings) fragment) .getDelegate()).setSnackbarManager(mSnackbarManager); } @@ -538,7 +538,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin 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 -@@ -371,6 +371,10 @@ using flags_ui::kOsLinux; +@@ -368,6 +368,10 @@ using flags_ui::kOsLinux; using flags_ui::kOsMac; using flags_ui::kOsWin; @@ -549,9 +549,9 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc namespace about_flags { namespace { -@@ -3710,6 +3714,10 @@ const FeatureEntry::Choice kAccountBookmarksAndReadingListBehindOptInChoices[] = - }; - #endif // BUILDFLAG(IS_ANDROID) +@@ -3789,6 +3793,10 @@ const FeatureEntry::FeatureVariation kDefaultBrowserPromptRefreshVariations[] = + kDefaultBrowserPromptRefreshTesting, + std::size(kDefaultBrowserPromptRefreshTesting), nullptr}}; +#define FEATURE_PARAM_SECTION +#include "cromite_flags/chrome_browser_about_flags_cc.inc" @@ -560,7 +560,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. -@@ -3736,6 +3744,9 @@ const FeatureEntry::Choice kAccountBookmarksAndReadingListBehindOptInChoices[] = +@@ -3815,6 +3823,9 @@ const FeatureEntry::FeatureVariation kDefaultBrowserPromptRefreshVariations[] = const FeatureEntry kFeatureEntries[] = { // Include generated flags for flag unexpiry; see //docs/flag_expiry.md and // //tools/flags/generate_unexpire_flags.py. @@ -573,9 +573,9 @@ 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 -@@ -368,4 +368,5 @@ BASE_FEATURE(kNetworkAnnotationMonitoring, - "NetworkAnnotationMonitoring", - base::FEATURE_DISABLED_BY_DEFAULT); +@@ -400,4 +400,5 @@ BASE_FEATURE(kWebUsbDeviceDetection, + "WebUsbDeviceDetection", + base::FEATURE_ENABLED_BY_DEFAULT); +#include "cromite_flags/chrome_browser_browser_features_cc.inc" } // namespace features @@ -621,9 +621,9 @@ 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 -@@ -978,5 +978,6 @@ BASE_FEATURE(kWebApkIconUpdateThreshold, +@@ -1008,5 +1008,6 @@ BASE_FEATURE(kWebApkIconUpdateThreshold, "WebApkIconUpdateThreshold", - base::FEATURE_DISABLED_BY_DEFAULT); + base::FEATURE_ENABLED_BY_DEFAULT); +#include "cromite_flags/chrome_browser_flags_android_chrome_feature_list_cc.inc" } // namespace android @@ -631,7 +631,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 -@@ -188,6 +188,7 @@ constexpr base::FeatureParam kAuxiliarySearchMaxTabsCountParam( +@@ -195,6 +195,7 @@ constexpr base::FeatureParam kAuxiliarySearchMaxTabsCountParam( "auxiliary_search_max_donation_tab", 100); @@ -653,7 +653,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f import java.util.List; import java.util.Map; -@@ -691,7 +695,7 @@ public abstract class ChromeFeatureList { +@@ -692,7 +696,7 @@ public abstract class ChromeFeatureList { public static final CachedFlag sVerticalAutomotiveBackButtonToolbar = newCachedFlag(VERTICAL_AUTOMOTIVE_BACK_BUTTON_TOOLBAR, true); @@ -662,7 +662,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f List.of( sAllowUserCertificates, sAndroidAppIntegration, -@@ -779,6 +783,13 @@ public abstract class ChromeFeatureList { +@@ -784,6 +788,13 @@ public abstract class ChromeFeatureList { sUseLibunwindstackNativeUnwinderAndroid, sVerticalAutomotiveBackButtonToolbar); @@ -829,7 +829,7 @@ new file mode 100644 diff --git a/chrome/browser/ui/ui_features.cc b/chrome/browser/ui/ui_features.cc --- a/chrome/browser/ui/ui_features.cc +++ b/chrome/browser/ui/ui_features.cc -@@ -450,4 +450,5 @@ BASE_FEATURE(kStopLoadingAnimationForHiddenWindow, +@@ -503,4 +503,5 @@ BASE_FEATURE(kStopLoadingAnimationForHiddenWindow, "StopLoadingAnimationForHiddenWindow", base::FEATURE_ENABLED_BY_DEFAULT); @@ -838,7 +838,7 @@ diff --git a/chrome/browser/ui/ui_features.cc b/chrome/browser/ui/ui_features.cc diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc --- a/chrome/common/chrome_features.cc +++ b/chrome/common/chrome_features.cc -@@ -1735,4 +1735,5 @@ BASE_FEATURE(kSupportsRtcWakeOver24Hours, +@@ -1660,4 +1660,5 @@ BASE_FEATURE(kSupportsRtcWakeOver24Hours, base::FEATURE_ENABLED_BY_DEFAULT); #endif // BUILDFLAG(IS_CHROMEOS_ASH) @@ -1303,7 +1303,7 @@ diff --git a/components/flags_ui/resources/flags_browser_proxy.ts b/components/f diff --git a/components/offline_pages/core/offline_page_feature.cc b/components/offline_pages/core/offline_page_feature.cc --- a/components/offline_pages/core/offline_page_feature.cc +++ b/components/offline_pages/core/offline_page_feature.cc -@@ -55,4 +55,5 @@ bool IsOfflinePagesNetworkStateLikelyUnknown() { +@@ -48,4 +48,5 @@ bool IsOfflinePagesNetworkStateLikelyUnknown() { return base::FeatureList::IsEnabled(kOfflinePagesNetworkStateLikelyUnknown); } @@ -1312,7 +1312,7 @@ diff --git a/components/offline_pages/core/offline_page_feature.cc b/components/ diff --git a/components/offline_pages/core/offline_page_feature.h b/components/offline_pages/core/offline_page_feature.h --- a/components/offline_pages/core/offline_page_feature.h +++ b/components/offline_pages/core/offline_page_feature.h -@@ -50,6 +50,7 @@ bool IsOnTheFlyMhtmlHashComputationEnabled(); +@@ -42,6 +42,7 @@ bool IsOnTheFlyMhtmlHashComputationEnabled(); // offline pages to avoid showing them even when the device is online. bool IsOfflinePagesNetworkStateLikelyUnknown(); @@ -1323,7 +1323,7 @@ diff --git a/components/offline_pages/core/offline_page_feature.h b/components/o diff --git a/components/permissions/features.cc b/components/permissions/features.cc --- a/components/permissions/features.cc +++ b/components/permissions/features.cc -@@ -139,6 +139,7 @@ BASE_FEATURE(kCpssQuietChipTextUpdate, +@@ -132,6 +132,7 @@ BASE_FEATURE(kCpssQuietChipTextUpdate, "CpssQuietChipTextUpdate", base::FEATURE_DISABLED_BY_DEFAULT); @@ -1346,7 +1346,7 @@ diff --git a/components/version_ui/version_handler_helper.cc b/components/versio diff --git a/content/common/features.cc b/content/common/features.cc --- a/content/common/features.cc +++ b/content/common/features.cc -@@ -596,4 +596,5 @@ BASE_FEATURE(kWindowOpenFileSelectFix, +@@ -595,4 +595,5 @@ BASE_FEATURE(kWindowOpenFileSelectFix, // Please keep features in alphabetical order. @@ -1355,7 +1355,7 @@ diff --git a/content/common/features.cc b/content/common/features.cc diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc --- a/content/public/common/content_features.cc +++ b/content/public/common/content_features.cc -@@ -1389,4 +1389,5 @@ bool IsVideoCaptureServiceEnabledForBrowserProcess() { +@@ -1402,4 +1402,5 @@ bool IsVideoCaptureServiceEnabledForBrowserProcess() { VideoCaptureServiceConfiguration::kEnabledForBrowserProcess; } @@ -1364,7 +1364,7 @@ diff --git a/content/public/common/content_features.cc b/content/public/common/c diff --git a/content/public/common/content_features.h b/content/public/common/content_features.h --- a/content/public/common/content_features.h +++ b/content/public/common/content_features.h -@@ -332,6 +332,7 @@ CONTENT_EXPORT BASE_DECLARE_FEATURE(kWebRtcPipeWireCapturer); +@@ -336,6 +336,7 @@ CONTENT_EXPORT BASE_DECLARE_FEATURE(kWebRtcPipeWireCapturer); CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForOutOfProcess(); CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForBrowserProcess(); @@ -1662,7 +1662,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 -@@ -1866,5 +1866,5 @@ uint32_t GetPassthroughAudioFormats() { +@@ -1913,5 +1913,5 @@ uint32_t GetPassthroughAudioFormats() { return 0; #endif // BUILDFLAG(ENABLE_PASSTHROUGH_AUDIO_CODECS) } @@ -1672,7 +1672,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 -@@ -547,5 +547,5 @@ MEDIA_EXPORT bool IsOutOfProcessVideoDecodingEnabled(); +@@ -557,5 +557,5 @@ MEDIA_EXPORT OOPVDMode GetOutOfProcessVideoDecodingMode(); MEDIA_EXPORT uint32_t GetPassthroughAudioFormats(); } // namespace media @@ -1682,18 +1682,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 -@@ -535,4 +535,5 @@ BASE_FEATURE(kTruncateBodyToContentLength, - "TruncateBodyToContentLength", +@@ -535,4 +535,5 @@ BASE_FEATURE(kReduceIPAddressChangeNotification, base::FEATURE_ENABLED_BY_DEFAULT); + #endif // BUILDFLAG(IS_MAC) +#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 -@@ -523,6 +523,7 @@ NET_EXPORT BASE_DECLARE_FEATURE(kTreatHTTPExpiresHeaderValueZeroAsExpired); - // Enables truncating the response body to the content length. - NET_EXPORT BASE_DECLARE_FEATURE(kTruncateBodyToContentLength); +@@ -521,6 +521,7 @@ NET_EXPORT BASE_DECLARE_FEATURE(kTruncateBodyToContentLength); + NET_EXPORT BASE_DECLARE_FEATURE(kReduceIPAddressChangeNotification); + #endif // BUILDFLAG(IS_MAC) +#include "cromite_flags/net_base_features_h.inc" } // namespace net::features @@ -1702,7 +1702,7 @@ 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 -@@ -467,4 +467,5 @@ const base::FeatureParam kSkipTpcdMitigationsForAdsTopLevelTrial{ +@@ -475,4 +475,5 @@ const base::FeatureParam kSkipTpcdMitigationsForAdsTopLevelTrial{ /*name=*/"SkipTpcdMitigationsForAdsTopLevelTrial", /*default_value=*/false}; @@ -1711,7 +1711,7 @@ diff --git a/services/network/public/cpp/features.cc b/services/network/public/c 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 -@@ -187,6 +187,7 @@ extern const base::FeatureParam kSkipTpcdMitigationsForAdsTrial; +@@ -193,6 +193,7 @@ extern const base::FeatureParam kSkipTpcdMitigationsForAdsTrial; COMPONENT_EXPORT(NETWORK_CPP) extern const base::FeatureParam kSkipTpcdMitigationsForAdsTopLevelTrial; @@ -1722,8 +1722,8 @@ 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 -@@ -2546,5 +2546,6 @@ BASE_FEATURE(kSimplifyLoadingTransparentPlaceholderImage, - "SimplifyLoadingTransparentPlaceholderImage", +@@ -2596,5 +2596,6 @@ BASE_FEATURE(kNoThrottlingVisibleAgent, + "NoThrottlingVisibleAgent", base::FEATURE_DISABLED_BY_DEFAULT); +#include "cromite_flags/third_party_blink_common_features_cc.inc" @@ -1732,9 +1732,9 @@ 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 -@@ -1638,6 +1638,7 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kInteractiveDetectorIgnoreFcp); - BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE( - kSimplifyLoadingTransparentPlaceholderImage); +@@ -1681,6 +1681,7 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE( + // Don't throttle frames that are same-agent with with a visible frame. + BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kNoThrottlingVisibleAgent); +#include "cromite_flags/third_party_blink_common_features_h.inc" } // namespace features diff --git a/build/patches/Add-custom-tab-intents-privacy-option.patch b/build/patches/Add-custom-tab-intents-privacy-option.patch index 4aaca446b..e70fc81b4 100644 --- a/build/patches/Add-custom-tab-intents-privacy-option.patch +++ b/build/patches/Add-custom-tab-intents-privacy-option.patch @@ -26,7 +26,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/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 -@@ -43,6 +43,16 @@ found in the LICENSE file. +@@ -54,6 +54,16 @@ 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" /> @@ -46,7 +46,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 -@@ -55,6 +55,9 @@ import java.lang.annotation.Retention; +@@ -53,6 +53,9 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.Set; @@ -56,7 +56,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis /** * Dispatches incoming intents to the appropriate activity based on the current configuration and * Intent fired. -@@ -244,6 +247,9 @@ public class LaunchIntentDispatcher { +@@ -242,6 +245,9 @@ public class LaunchIntentDispatcher { */ public static boolean isCustomTabIntent(Intent intent) { if (intent == null) return false; @@ -66,7 +66,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis Log.w( TAG, "CustomTabsIntent#shouldAlwaysUseBrowserUI() = " -@@ -265,6 +271,10 @@ public class LaunchIntentDispatcher { +@@ -263,6 +269,10 @@ public class LaunchIntentDispatcher { newIntent.setData(uri); newIntent.setClassName(context, CustomTabActivity.class.getName()); @@ -77,7 +77,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()); -@@ -410,6 +420,17 @@ public class LaunchIntentDispatcher { +@@ -411,6 +421,17 @@ public class LaunchIntentDispatcher { if (Intent.ACTION_VIEW.equals(newIntent.getAction()) && !IntentHandler.wasIntentSenderChrome(newIntent)) { @@ -98,7 +98,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/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 -@@ -850,6 +850,7 @@ public class CustomTabsConnection { +@@ -853,6 +853,7 @@ public class CustomTabsConnection { PostTask.postTask( TaskTraits.UI_DEFAULT, () -> { @@ -132,8 +132,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Inco diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -96,6 +96,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment - private ManagedPreferenceDelegate mManagedPreferenceDelegate; +@@ -103,6 +103,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment + private IncognitoLockSettings mIncognitoLockSettings; + private ChromeSwitchPreference allowCustomTabIntentsPref; @@ -142,7 +142,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { getActivity().setTitle(R.string.prefs_privacy_security); -@@ -274,6 +277,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -297,6 +300,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment new SpanApplier.SpanInfo("", "", servicesLink)); } @@ -152,7 +152,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(); -@@ -290,6 +296,14 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -313,6 +319,14 @@ public class PrivacySettings extends ChromeBaseSettingsFragment } else if (PREF_SEARCH_SUGGESTIONS.equals(key)) { UserPrefs.get(getProfile()) .setBoolean(Pref.SEARCH_SUGGEST_ENABLED, (boolean) newValue); @@ -167,7 +167,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting } return true; } -@@ -312,6 +326,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -335,6 +349,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment UserPrefs.get(getProfile()).getBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED)); } @@ -203,7 +203,7 @@ diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAsso diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -5152,6 +5152,20 @@ To change this setting, BEGIN_LINKclear the Chrome da +@@ -5204,6 +5204,20 @@ To change this setting, BEGIN_LINKclear the Chrome da Resume diff --git a/build/patches/Add-exit-menu-item.patch b/build/patches/Add-exit-menu-item.patch index c270af0b8..3d77823f0 100644 --- a/build/patches/Add-exit-menu-item.patch +++ b/build/patches/Add-exit-menu-item.patch @@ -10,14 +10,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../org/chromium/chrome/browser/ApplicationLifetime.java | 2 ++ .../org/chromium/chrome/browser/ChromeTabbedActivity.java | 4 ++++ .../src/org/chromium/chrome/browser/app/ChromeActivity.java | 6 ++++++ - .../chrome/browser/init/ChromeLifetimeController.java | 6 +++++- .../browser/ui/android/strings/android_chrome_strings.grd | 3 +++ - 6 files changed, 26 insertions(+), 1 deletion(-) + 5 files changed, 21 insertions(+) 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 -@@ -166,6 +166,9 @@ found in the LICENSE file. +@@ -160,6 +160,9 @@ found in the LICENSE file. @@ -27,7 +26,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re -@@ -192,6 +195,9 @@ found in the LICENSE file. +@@ -186,6 +189,9 @@ found in the LICENSE file. @@ -59,8 +58,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ApplicationLife 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 -@@ -267,6 +267,8 @@ import java.util.concurrent.atomic.AtomicBoolean; - import java.util.function.BooleanSupplier; +@@ -267,6 +267,8 @@ import java.util.Set; + import java.util.concurrent.atomic.AtomicBoolean; import java.util.function.DoubleConsumer; +import org.chromium.chrome.browser.ApplicationLifetime; @@ -68,7 +67,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct /** * This is the main activity for ChromeMobile when not running in document mode. All the tabs are * accessible via a chrome specific tab switching UI. -@@ -2925,6 +2927,8 @@ public class ChromeTabbedActivity extends ChromeActivity +@@ -2578,6 +2579,11 @@ public abstract class ChromeActivity return true; } @@ -100,26 +99,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv if (id == R.id.update_menu_id) { UpdateMenuItemHelper.getInstance( getProfileProviderSupplier().get().getOriginalProfile()) -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java -@@ -81,7 +81,11 @@ class ChromeLifetimeController - - // Kick off a timer to kill the process after a delay, which fires only if the Activities - // take too long to be finished. -- mHandler.postDelayed(mRestartRunnable, WATCHDOG_DELAY_MS); -+ if (restart) { -+ mHandler.postDelayed(mRestartRunnable, WATCHDOG_DELAY_MS); -+ } else { -+ fireBrowserRestartActivityIntent(); -+ } - } - - @Override 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 -@@ -3745,6 +3745,9 @@ To change this setting, BEGIN_LINKclear the Chrome da +@@ -3797,6 +3797,9 @@ To change this setting, BEGIN_LINKclear the Chrome da 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 be3279b58..48686a7b2 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" -@@ -392,6 +393,15 @@ AutocompleteController::AutocompleteController( +@@ -398,6 +399,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 7b1266f82..dfaaffec8 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 -@@ -1030,6 +1030,7 @@ component("net") { +@@ -1037,6 +1037,7 @@ component("net") { "//build:chromeos_buildflags", "//components/miracle_parameter/common", "//net/http:transport_security_state_generated_files", @@ -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 -@@ -113,6 +113,7 @@ +@@ -112,6 +112,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" -@@ -1373,6 +1374,13 @@ int HostResolverManager::StartIPv6ReachabilityCheck( +@@ -1351,6 +1352,13 @@ int HostResolverManager::StartIPv6ReachabilityCheck( return OK; } diff --git a/build/patches/Add-flag-to-disable-vibration.patch b/build/patches/Add-flag-to-disable-vibration.patch index 2d34235a3..ebd0a5789 100644 --- a/build/patches/Add-flag-to-disable-vibration.patch +++ b/build/patches/Add-flag-to-disable-vibration.patch @@ -20,7 +20,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc --- a/content/child/runtime_features.cc +++ b/content/child/runtime_features.cc -@@ -103,6 +103,7 @@ void SetRuntimeFeatureDefaultsForPlatform( +@@ -102,6 +102,7 @@ void SetRuntimeFeatureDefaultsForPlatform( if (command_line.HasSwitch(switches::kDisableMediaSessionAPI)) { WebRuntimeFeatures::EnableMediaSession(false); } @@ -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 -@@ -635,6 +635,10 @@ +@@ -656,6 +656,10 @@ status: {"Android": "stable"}, base_feature: "none", }, 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 d280221d6..a394157c8 100644 --- a/build/patches/Add-kill-switch-for-unsupported-clangd-flags.patch +++ b/build/patches/Add-kill-switch-for-unsupported-clangd-flags.patch @@ -14,14 +14,15 @@ 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 -@@ -1889,13 +1889,21 @@ config("default_warnings") { +@@ -1902,7 +1902,6 @@ config("default_warnings") { # TODO(https://crbug.com/1490607): Fix and re-enable. "-Wno-thread-safety-reference-return", ] - - if (!is_nacl) { - cflags_cc += [ - # TODO(https://crbug.com/1513724): Fix and re-enable. + cflags_cc += [ + # TODO(crbug.com/328490295): Fix and re-enable for C flags. + "-Wenum-compare-conditional", +@@ -1914,6 +1913,15 @@ config("default_warnings") { "-Wno-c++11-narrowing-const-reference", ] } @@ -40,7 +41,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 -@@ -62,6 +62,9 @@ declare_args() { +@@ -64,6 +64,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 bf0c088d8..168745d74 100644 --- a/build/patches/Add-lifetime-options-for-permissions.patch +++ b/build/patches/Add-lifetime-options-for-permissions.patch @@ -64,7 +64,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../strings/android/browser_ui_strings.grd | 5 ++ .../core/browser/content_settings_utils.cc | 36 ++++++++ .../core/browser/content_settings_utils.h | 6 ++ - .../common/content_settings_constraints.h | 9 ++ + .../core/common/content_settings_enums.mojom | 9 ++ .../page_info/PageInfoController.java | 4 +- .../PermissionParamsListBuilder.java | 13 ++- .../android/page_info_controller_android.cc | 10 ++- @@ -79,14 +79,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../android/permissions_android_strings.grd | 17 ++++ .../geolocation_permission_context_android.cc | 34 ++++++-- .../geolocation_permission_context_android.h | 13 ++- - .../permissions/permission_context_base.cc | 52 ++++++++++-- + .../permissions/permission_context_base.cc | 54 ++++++++++-- .../permissions/permission_context_base.h | 23 +++++- components/permissions/permission_prompt.h | 3 +- components/permissions/permission_request.cc | 30 ++++++- components/permissions/permission_request.h | 16 +++- .../permissions/permission_request_manager.cc | 45 ++++++---- .../permissions/permission_request_manager.h | 11 ++- - 34 files changed, 488 insertions(+), 61 deletions(-) + 34 files changed, 489 insertions(+), 62 deletions(-) diff --git a/chrome/browser/permissions/last_tab_standing_tracker.cc b/chrome/browser/permissions/last_tab_standing_tracker.cc --- a/chrome/browser/permissions/last_tab_standing_tracker.cc @@ -111,7 +111,7 @@ diff --git a/chrome/browser/permissions/last_tab_standing_tracker.cc b/chrome/br + GURL url = origin.GetURL(); + for (ContentSettingPatternSource& entry : session_settings) { + if (content_settings::IsConstraintSessionExpiration(entry, -+ content_settings::LifetimeMode::UntilOriginClosed) && ++ mojom::LifetimeMode::UNTIL_ORIGIN_CLOSED) && + entry.primary_pattern.Matches(url)) { + content_settings->SetWebsiteSettingCustomScope( + entry.primary_pattern, entry.secondary_pattern, @@ -158,7 +158,7 @@ diff --git a/chrome/browser/permissions/one_time_permissions_tracker.cc b/chrome + GURL url = origin.GetURL(); + for (ContentSettingPatternSource& entry : session_settings) { + if (content_settings::IsConstraintSessionExpiration(entry, -+ content_settings::LifetimeMode::UntilOriginClosed) && ++ mojom::LifetimeMode::UNTIL_ORIGIN_CLOSED) && + entry.primary_pattern.Matches(url)) { + content_settings->SetWebsiteSettingCustomScope( + entry.primary_pattern, entry.secondary_pattern, @@ -228,24 +228,24 @@ diff --git a/chrome/browser/permissions/one_time_permissions_tracker_factory.cc diff --git a/chrome/browser/ui/views/permissions/embedded_permission_prompt.cc b/chrome/browser/ui/views/permissions/embedded_permission_prompt.cc --- a/chrome/browser/ui/views/permissions/embedded_permission_prompt.cc +++ b/chrome/browser/ui/views/permissions/embedded_permission_prompt.cc -@@ -237,7 +237,7 @@ void EmbeddedPermissionPrompt::Allow() { +@@ -238,7 +238,7 @@ void EmbeddedPermissionPrompt::Allow() { } void EmbeddedPermissionPrompt::AllowThisTime() { - delegate_->AcceptThisTime(); -+ delegate_->AcceptThisTime(content_settings::LifetimeMode::OnlyThisTime); ++ delegate_->AcceptThisTime(mojom::LifetimeMode::ONLY_THIS_TIME); CloseCurrentViewAndMaybeShowNext(/*first_prompt=*/false); } 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 -@@ -267,7 +267,7 @@ void PermissionPromptBubbleBaseView::RunButtonCallback(int button_id) { +@@ -264,7 +264,7 @@ void PermissionPromptBubbleBaseView::RunButtonCallback(int button_id) { delegate_->Accept(); return; case PermissionDialogButton::kAcceptOnce: - delegate_->AcceptThisTime(); -+ delegate_->AcceptThisTime(content_settings::LifetimeMode::OnlyThisTime); ++ delegate_->AcceptThisTime(mojom::LifetimeMode::ONLY_THIS_TIME); return; case PermissionDialogButton::kDeny: delegate_->Deny(); @@ -317,40 +317,40 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.cc --- a/components/content_settings/core/browser/content_settings_utils.cc +++ b/components/content_settings/core/browser/content_settings_utils.cc @@ -174,6 +174,42 @@ bool IsConstraintPersistent(const ContentSettingConstraints& constraints) { - return constraints.session_model() == SessionModel::Durable; + return constraints.session_model() == mojom::SessionModel::DURABLE; } -+ContentSettingConstraints GetConstraintSessionExpiration(LifetimeMode lifetime_mode) { ++ContentSettingConstraints GetConstraintSessionExpiration(mojom::LifetimeMode lifetime_mode) { + int lifetime; + base::Time now; -+ if (lifetime_mode == LifetimeMode::OnlyThisTime) { ++ if (lifetime_mode == mojom::LifetimeMode::ONLY_THIS_TIME) { + // note: this content settings will be discarded immediately + // 1h is used as a magic constant to identify the one-time lifetime mode + lifetime = 1; -+ } else if (lifetime_mode == LifetimeMode::UntilOriginClosed) { ++ } else if (lifetime_mode == mojom::LifetimeMode::UNTIL_ORIGIN_CLOSED) { + now = base::Time::Now(); + lifetime = 24; + } else { + lifetime = 0; + } -+ content_settings::ContentSettingConstraints c(now); ++ mojom::ContentSettingConstraints c(now); + c.set_lifetime(base::Hours(lifetime)); -+ c.set_session_model(content_settings::SessionModel::UserSession); ++ c.set_session_model(mojom::SessionModel::USER_SESSION); + return c; +} + +bool IsConstraintSessionExpiration(const ContentSettingPatternSource& source, -+ LifetimeMode lifetime_mode) { ++ mojom::LifetimeMode lifetime_mode) { + if (source.metadata.session_model() != content_settings::SessionModel::UserSession) + return false; + + LifetimeMode type; + if (source.metadata.lifetime() == base::Hours(24)) { -+ type = LifetimeMode::UntilOriginClosed; ++ type = mojom::LifetimeMode::UNTIL_ORIGIN_CLOSED; + } else if (source.metadata.expiration() == (base::Time() + base::Hours(1))) { -+ type = LifetimeMode::OnlyThisTime; ++ type = mojom::LifetimeMode::ONLY_THIS_TIME; + } else { -+ type = LifetimeMode::UntilBrowserClosed; ++ type = mojom::LifetimeMode::UNTIL_BROWSER_CLOSED; + } + + return lifetime_mode == type; @@ -375,25 +375,22 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.h b // Get a timestamp with week-precision. base::Time GetCoarseVisitedTime(base::Time time); -diff --git a/components/content_settings/core/common/content_settings_constraints.h b/components/content_settings/core/common/content_settings_constraints.h ---- a/components/content_settings/core/common/content_settings_constraints.h -+++ b/components/content_settings/core/common/content_settings_constraints.h -@@ -33,6 +33,15 @@ enum class SessionModel : int32_t { - kMaxValue = OneTime, +diff --git a/components/content_settings/core/common/content_settings_enums.mojom b/components/content_settings/core/common/content_settings_enums.mojom +--- a/components/content_settings/core/common/content_settings_enums.mojom ++++ b/components/content_settings/core/common/content_settings_enums.mojom +@@ -39,3 +39,12 @@ enum SessionModel { + // tab from the origin is closed. + ONE_TIME, }; - ++ +// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.components.content_settings +// GENERATED_JAVA_CLASS_NAME_OVERRIDE: LifetimeMode +enum class LifetimeMode { -+ Always = 99, -+ OnlyThisTime = 1, -+ UntilOriginClosed = 2, -+ UntilBrowserClosed = 0, ++ ALWAYS = 99, ++ ONLY_THIS_TIME = 1, ++ UNTIL_ORIGIN_CLOSED = 2, ++ UNTIL_BROWSER_CLOSED = 0, +}; -+ - // Constraints to be applied when setting a content setting. - class ContentSettingConstraints { - public: 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 @@ -455,7 +452,7 @@ diff --git a/components/page_info/android/java/src/org/chromium/components/page_ diff --git a/components/page_info/android/page_info_controller_android.cc b/components/page_info/android/page_info_controller_android.cc --- a/components/page_info/android/page_info_controller_android.cc +++ b/components/page_info/android/page_info_controller_android.cc -@@ -154,6 +154,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( +@@ -151,6 +151,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( std::map user_specified_settings_to_display; @@ -464,7 +461,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp for (const auto& permission : permission_info_list) { if (base::Contains(permissions_to_display, permission.type)) { -@@ -162,6 +164,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( +@@ -159,6 +161,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( if (setting_to_display) { user_specified_settings_to_display[permission.type] = *setting_to_display; @@ -473,7 +470,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp } } } -@@ -178,7 +182,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( +@@ -175,7 +179,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( ConvertUTF16ToJavaString(env, setting_title), ConvertUTF16ToJavaString(env, setting_title_mid_sentence), static_cast(permission), @@ -483,7 +480,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp } } -@@ -191,7 +196,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( +@@ -188,7 +193,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( env, controller_jobject_, ConvertUTF16ToJavaString(env, object_title), ConvertUTF16ToJavaString(env, object_title), static_cast(chosen_object->ui_info->content_settings_type), @@ -496,10 +493,10 @@ 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 -@@ -1163,6 +1163,8 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, - permission_info.source = info.source; - permission_info.is_one_time = (info.metadata.session_model() == - content_settings::SessionModel::OneTime); +@@ -1157,6 +1157,8 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, + permission_info.is_one_time = + (info.metadata.session_model() == + content_settings::mojom::SessionModel::ONE_TIME); + permission_info.is_user_session = + (info.metadata.session_model() == content_settings::SessionModel::UserSession); @@ -508,7 +505,7 @@ diff --git a/components/page_info/page_info.cc b/components/page_info/page_info. diff --git a/components/page_info/page_info.h b/components/page_info/page_info.h --- a/components/page_info/page_info.h +++ b/components/page_info/page_info.h -@@ -199,6 +199,7 @@ class PageInfo : private content_settings::CookieControlsObserver { +@@ -151,6 +151,7 @@ class PageInfo : private content_settings::CookieControlsObserver { content_settings::SETTING_SOURCE_NONE; // Whether the permission is a one-time grant. bool is_one_time = false; @@ -575,7 +572,7 @@ diff --git a/components/permissions/android/java/src/org/chromium/components/per /** This class creates the model for the permission dialog. */ class PermissionDialogModelFactory { public static PropertyModel getModel( -@@ -60,6 +72,74 @@ class PermissionDialogModelFactory { +@@ -64,6 +76,74 @@ class PermissionDialogModelFactory { ModalDialogProperties.NEGATIVE_BUTTON_TEXT, delegate.getNegativeButtonText()); } @@ -670,10 +667,10 @@ diff --git a/components/permissions/android/permission_prompt/permission_dialog_ void PermissionDialogDelegate::Accept(JNIEnv* env, const JavaParamRef& obj) { CHECK(permission_prompt_); -+ content_settings::LifetimeMode lifetimeOption = -+ static_cast( ++ mojom::LifetimeMode lifetimeOption = ++ static_cast( + java_delegate_->GetSelectedLifetimeOption()); -+ if (lifetimeOption != content_settings::LifetimeMode::Always) { ++ if (lifetimeOption != mojom::LifetimeMode::ALWAYS) { + permission_prompt_->AcceptThisTime(lifetimeOption); + return; + } @@ -685,8 +682,8 @@ diff --git a/components/permissions/android/permission_prompt/permission_dialog_ const JavaParamRef& obj) { CHECK(permission_prompt_); - permission_prompt_->AcceptThisTime(); -+ content_settings::LifetimeMode lifetimeOption = -+ static_cast( ++ mojom::LifetimeMode lifetimeOption = ++ static_cast( + java_delegate_->GetSelectedLifetimeOption()); + permission_prompt_->AcceptThisTime(lifetimeOption); } @@ -694,10 +691,10 @@ diff --git a/components/permissions/android/permission_prompt/permission_dialog_ void PermissionDialogDelegate::Cancel(JNIEnv* env, const JavaParamRef& obj) { CHECK(permission_prompt_); -+ content_settings::LifetimeMode lifetimeOption = -+ static_cast( ++ mojom::LifetimeMode lifetimeOption = ++ static_cast( + java_delegate_->GetSelectedLifetimeOption()); -+ if (lifetimeOption != content_settings::LifetimeMode::Always) { ++ if (lifetimeOption != mojom::LifetimeMode::ALWAYS) { + permission_prompt_->DenyThisTime(lifetimeOption); + return; + } @@ -724,11 +721,11 @@ diff --git a/components/permissions/android/permission_prompt/permission_prompt_ -void PermissionPromptAndroid::AcceptThisTime() { - delegate_->AcceptThisTime(); -+void PermissionPromptAndroid::AcceptThisTime(content_settings::LifetimeMode lifetimeOption) { ++void PermissionPromptAndroid::AcceptThisTime(mojom::LifetimeMode lifetimeOption) { + delegate_->AcceptThisTime(lifetimeOption); +} + -+void PermissionPromptAndroid::DenyThisTime(content_settings::LifetimeMode lifetimeOption) { ++void PermissionPromptAndroid::DenyThisTime(mojom::LifetimeMode lifetimeOption) { + delegate_->DenyThisTime(lifetimeOption); } @@ -741,9 +738,9 @@ diff --git a/components/permissions/android/permission_prompt/permission_prompt_ void Closing(); void Accept(); - void AcceptThisTime(); -+ void AcceptThisTime(content_settings::LifetimeMode lifetimeOption); ++ void AcceptThisTime(mojom::LifetimeMode lifetimeOption); void Deny(); -+ void DenyThisTime(content_settings::LifetimeMode lifetimeOption); ++ void DenyThisTime(mojom::LifetimeMode lifetimeOption); void SetManageClicked(); void SetLearnMoreClicked(); bool ShouldCurrentRequestUseQuietUI(); @@ -783,7 +780,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr DCHECK(is_final_decision); + NotifyPermissionSetWithLifetime(id, requesting_origin, embedding_origin, + std::move(callback), persist, content_setting, is_one_time, is_final_decision, -+ content_settings::LifetimeMode::Always); ++ mojom::LifetimeMode::ALWAYS); +} +void GeolocationPermissionContextAndroid::NotifyPermissionSetWithLifetime( @@ -794,7 +791,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr + bool persist, + ContentSetting content_setting, + bool is_one_time, bool is_final_decision, -+ content_settings::LifetimeMode lifetime_option) { ++ mojom::LifetimeMode lifetime_option) { bool is_default_search = IsRequestingOriginDSE(requesting_origin); if (content_setting == CONTENT_SETTING_ALLOW && !location_settings_->IsSystemLocationSettingEnabled()) { @@ -839,7 +836,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr bool persist, ContentSetting content_setting, - bool is_one_time, -+ bool is_one_time, content_settings::LifetimeMode lifetime_option, ++ bool is_one_time, mojom::LifetimeMode lifetime_option, LocationSettingsDialogOutcome prompt_outcome) { bool is_default_search = IsRequestingOriginDSE(requesting_origin); if (prompt_outcome == GRANTED) { @@ -859,7 +856,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr ContentSetting content_setting, - bool is_one_time) { - GeolocationPermissionContext::NotifyPermissionSet( -+ bool is_one_time, content_settings::LifetimeMode lifetime_option) { ++ bool is_one_time, mojom::LifetimeMode lifetime_option) { + GeolocationPermissionContext::NotifyPermissionSetWithLifetime( id, requesting_origin, embedding_origin, std::move(callback), persist, - content_setting, is_one_time, /*is_final_decision=*/true); @@ -882,7 +879,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr + ContentSetting content_setting, + bool is_one_time, + bool is_final_decision, -+ content_settings::LifetimeMode lifetime_option) override; ++ mojom::LifetimeMode lifetime_option) override; content::PermissionResult UpdatePermissionStatusWithDeviceStatus( content::PermissionResult result, const GURL& requesting_origin, @@ -890,7 +887,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr bool persist, ContentSetting content_setting, bool is_one_time, -+ content_settings::LifetimeMode lifetime_option, ++ mojom::LifetimeMode lifetime_option, LocationSettingsDialogOutcome prompt_outcome); void FinishNotifyPermissionSet(const PermissionRequestID& id, @@ -900,7 +897,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr ContentSetting content_setting, - bool is_one_time); + bool is_one_time, -+ content_settings::LifetimeMode lifetime_option); ++ mojom::LifetimeMode lifetime_option); std::unique_ptr location_settings_; @@ -931,7 +928,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm bool is_one_time, - bool is_final_decision) { + bool is_final_decision, -+ content_settings::LifetimeMode lifetime_option) { ++ mojom::LifetimeMode lifetime_option) { DCHECK(content_setting == CONTENT_SETTING_ALLOW || content_setting == CONTENT_SETTING_BLOCK || content_setting == CONTENT_SETTING_DEFAULT); @@ -961,7 +958,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm + DCHECK(is_one_time == false); + NotifyPermissionSetWithLifetime(id, requesting_origin, embedding_origin, std::move(callback), + persist, content_setting, is_one_time, is_final_decision, -+ content_settings::LifetimeMode::Always); ++ mojom::LifetimeMode::ALWAYS); +} + +void PermissionContextBase::NotifyPermissionSetWithLifetime( @@ -973,7 +970,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm + ContentSetting content_setting, + bool is_one_time, + bool is_final_decision, -+ content_settings::LifetimeMode lifetime_option) { ++ mojom::LifetimeMode lifetime_option) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); if (persist) { @@ -983,26 +980,29 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm } if (is_final_decision) { -@@ -612,6 +641,15 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin, +@@ -612,15 +641,26 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin, const GURL& embedding_origin, ContentSetting content_setting, bool is_one_time) { + UpdateContentSetting(requesting_origin, embedding_origin, content_setting, -+ is_one_time, content_settings::LifetimeMode::Always); ++ is_one_time, mojom::LifetimeMode::ALWAYS); +} + +void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin, + const GURL& embedding_origin, + ContentSetting content_setting, + bool is_one_time, -+ content_settings::LifetimeMode lifetime_option) { ++ mojom::LifetimeMode lifetime_option) { DCHECK_EQ(requesting_origin, requesting_origin.DeprecatedGetOriginAsURL()); DCHECK_EQ(embedding_origin, embedding_origin.DeprecatedGetOriginAsURL()); DCHECK(content_setting == CONTENT_SETTING_ALLOW || -@@ -621,6 +659,8 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin, - constraints.set_session_model(is_one_time - ? content_settings::SessionModel::OneTime - : content_settings::SessionModel::Durable); + content_setting == CONTENT_SETTING_BLOCK); + +- content_settings::ContentSettingConstraints constraints; ++ mojom::ContentSettingConstraints constraints; + constraints.set_session_model( + is_one_time ? content_settings::mojom::SessionModel::ONE_TIME + : content_settings::mojom::SessionModel::DURABLE); + if (is_one_time) + constraints = content_settings::GetConstraintSessionExpiration(lifetime_option); @@ -1023,7 +1023,7 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi + ContentSetting content_setting, + bool is_one_time, + bool is_final_decision, -+ content_settings::LifetimeMode lifetime_option); ++ mojom::LifetimeMode lifetime_option); virtual void NotifyPermissionSet(const PermissionRequestID& id, const GURL& requesting_origin, const GURL& embedding_origin, @@ -1035,7 +1035,7 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi + const GURL& embedding_origin, + ContentSetting content_setting, + bool is_one_time, -+ content_settings::LifetimeMode lifetime_option); ++ mojom::LifetimeMode lifetime_option); virtual void UpdateContentSetting(const GURL& requesting_origin, const GURL& embedding_origin, ContentSetting content_setting, @@ -1058,7 +1058,7 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi bool is_one_time, - bool is_final_decision); + bool is_final_decision, -+ content_settings::LifetimeMode lifetime_option); ++ mojom::LifetimeMode lifetime_option); void NotifyObservers(const ContentSettingsPattern& primary_pattern, const ContentSettingsPattern& secondary_pattern, @@ -1070,9 +1070,9 @@ diff --git a/components/permissions/permission_prompt.h b/components/permissions virtual void Accept() = 0; - virtual void AcceptThisTime() = 0; -+ virtual void AcceptThisTime(content_settings::LifetimeMode lifetime_option) = 0; ++ virtual void AcceptThisTime(mojom::LifetimeMode lifetime_option) = 0; virtual void Deny() = 0; -+ virtual void DenyThisTime(content_settings::LifetimeMode lifetime_option) = 0; ++ virtual void DenyThisTime(mojom::LifetimeMode lifetime_option) = 0; virtual void Dismiss() = 0; virtual void Ignore() = 0; @@ -1094,13 +1094,13 @@ diff --git a/components/permissions/permission_request.cc b/components/permissio PermissionRequest::~PermissionRequest() { DCHECK(delete_callback_.is_null()); } -@@ -357,19 +365,37 @@ bool PermissionRequest::ShouldUseTwoOriginPrompt() const { - permissions::features::kPermissionStorageAccessAPI); +@@ -355,19 +363,37 @@ bool PermissionRequest::ShouldUseTwoOriginPrompt() const { + return request_type() == RequestType::kStorageAccess; } -void PermissionRequest::PermissionGranted(bool is_one_time) { +void PermissionRequest::PermissionGranted(bool is_one_time, -+ content_settings::LifetimeMode lifetime_option) { ++ mojom::LifetimeMode lifetime_option) { + if (permission_decided_callback_withlifetime_) { + std::move(permission_decided_callback_withlifetime_) + .Run(CONTENT_SETTING_ALLOW, is_one_time, /*is_final_decision=*/true, lifetime_option); @@ -1113,7 +1113,7 @@ diff --git a/components/permissions/permission_request.cc b/components/permissio -void PermissionRequest::PermissionDenied() { +void PermissionRequest::PermissionDenied(bool is_one_time, -+ content_settings::LifetimeMode lifetime_option) { ++ mojom::LifetimeMode lifetime_option) { + if (permission_decided_callback_withlifetime_) { + std::move(permission_decided_callback_withlifetime_) + .Run(CONTENT_SETTING_BLOCK, is_one_time, /*is_final_decision=*/true, lifetime_option); @@ -1128,7 +1128,7 @@ diff --git a/components/permissions/permission_request.cc b/components/permissio + if (permission_decided_callback_withlifetime_) { + std::move(permission_decided_callback_withlifetime_) + .Run(CONTENT_SETTING_DEFAULT, false, is_final_decision, -+ content_settings::LifetimeMode::Always); ++ mojom::LifetimeMode::ALWAYS); + return; + } if (permission_decided_callback_) { @@ -1144,7 +1144,7 @@ diff --git a/components/permissions/permission_request.h b/components/permission + using PermissionDecidedCallbackWithLifetime = + base::OnceCallback; ++ mojom::LifetimeMode /*lifetime_option*/)>; + // `permission_decided_callback` is called when the permission request is // resolved by the user (see comment on PermissionDecidedCallback above). @@ -1160,20 +1160,20 @@ diff --git a/components/permissions/permission_request.h b/components/permission PermissionRequest(const PermissionRequest&) = delete; PermissionRequest& operator=(const PermissionRequest&) = delete; -@@ -159,10 +168,10 @@ class PermissionRequest { +@@ -162,10 +171,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. - void PermissionGranted(bool is_one_time); -+ void PermissionGranted(bool is_one_time, content_settings::LifetimeMode lifetime_option); ++ void PermissionGranted(bool is_one_time, mojom::LifetimeMode lifetime_option); // Called when the user has denied the requested permission. - void PermissionDenied(); -+ void PermissionDenied(bool is_one_time, content_settings::LifetimeMode lifetime_option); ++ void PermissionDenied(bool is_one_time, mojom::LifetimeMode lifetime_option); // Called when the user has cancelled the permission request. This // corresponds to a denial, but is segregated in case the context needs to -@@ -216,6 +225,9 @@ class PermissionRequest { +@@ -219,6 +228,9 @@ class PermissionRequest { // Called once a decision is made about the permission. PermissionDecidedCallback permission_decided_callback_; @@ -1191,7 +1191,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p if (base::CommandLine::ForCurrentProcess()->HasSwitch( switches::kDenyPermissionPrompts)) { - request->PermissionDenied(); -+ request->PermissionDenied(/*is_one_time*/false, content_settings::LifetimeMode::Always); ++ request->PermissionDenied(/*is_one_time*/false, mojom::LifetimeMode::ALWAYS); request->RequestFinished(); return; } @@ -1200,7 +1200,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p if (url::Origin::Create(request->requesting_origin()) == auto_approval_origin.value()) { - request->PermissionGranted(/*is_one_time=*/false); -+ request->PermissionGranted(/*is_one_time=*/false, content_settings::LifetimeMode::Always); ++ request->PermissionGranted(/*is_one_time=*/false, mojom::LifetimeMode::ALWAYS); } request->RequestFinished(); return; @@ -1210,7 +1210,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p PermissionGrantedIncludingDuplicates(*requests_iter, - /*is_one_time=*/false); + /*is_one_time=*/false, -+ content_settings::LifetimeMode::Always); ++ mojom::LifetimeMode::ALWAYS); #if !BUILDFLAG(IS_ANDROID) std::optional content_settings_type = @@ -1219,7 +1219,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p } -void PermissionRequestManager::AcceptThisTime() { -+void PermissionRequestManager::AcceptThisTime(content_settings::LifetimeMode mode) { ++void PermissionRequestManager::AcceptThisTime(mojom::LifetimeMode mode) { if (ignore_callbacks_from_prompt_) return; DCHECK(view_); @@ -1237,15 +1237,15 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p } void PermissionRequestManager::Deny() { -+ Deny_(/*is_one_time*/ false, content_settings::LifetimeMode::Always); ++ Deny_(/*is_one_time*/ false, mojom::LifetimeMode::ALWAYS); +} + -+void PermissionRequestManager::DenyThisTime(content_settings::LifetimeMode mode) { ++void PermissionRequestManager::DenyThisTime(mojom::LifetimeMode mode) { + Deny_(/*is_one_time*/ true, mode); +} + +void PermissionRequestManager::Deny_(bool is_one_time, -+ content_settings::LifetimeMode lifetime_option) { ++ mojom::LifetimeMode lifetime_option) { if (ignore_callbacks_from_prompt_) return; DCHECK(view_); @@ -1263,7 +1263,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p void PermissionRequestManager::PermissionGrantedIncludingDuplicates( PermissionRequest* request, - bool is_one_time) { -+ bool is_one_time, content_settings::LifetimeMode lifetime_option) { ++ bool is_one_time, mojom::LifetimeMode lifetime_option) { DCHECK_EQ(1ul, base::ranges::count(requests_, request) + pending_permission_requests_.Count(request)) << "Only requests in [pending_permission_]requests_ can have duplicates"; @@ -1272,7 +1272,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p VisitDuplicateRequests( base::BindRepeating( - [](bool is_one_time, -+ [](bool is_one_time, content_settings::LifetimeMode lifetime_option, ++ [](bool is_one_time, mojom::LifetimeMode lifetime_option, const base::WeakPtr& weak_request) { - weak_request->PermissionGranted(is_one_time); + weak_request->PermissionGranted(is_one_time, lifetime_option); @@ -1284,7 +1284,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p void PermissionRequestManager::PermissionDeniedIncludingDuplicates( - PermissionRequest* request) { -+ PermissionRequest* request, bool is_one_time, content_settings::LifetimeMode lifetime_option) { ++ PermissionRequest* request, bool is_one_time, mojom::LifetimeMode lifetime_option) { DCHECK_EQ(1ul, base::ranges::count(requests_, request) + pending_permission_requests_.Count(request)) << "Only requests in [pending_permission_]requests_ can have duplicates"; @@ -1295,7 +1295,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p - [](const base::WeakPtr& weak_request) { - weak_request->PermissionDenied(); - }), -+ [](bool is_one_time, content_settings::LifetimeMode lifetime_option, const base::WeakPtr& weak_request) { ++ [](bool is_one_time, mojom::LifetimeMode lifetime_option, const base::WeakPtr& weak_request) { + weak_request->PermissionDenied(is_one_time, lifetime_option); + }, is_one_time, lifetime_option), request); @@ -1306,7 +1306,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p switch (auto_response_for_test_) { case ACCEPT_ONCE: - AcceptThisTime(); -+ AcceptThisTime(content_settings::LifetimeMode::OnlyThisTime); ++ AcceptThisTime(mojom::LifetimeMode::ONLY_THIS_TIME); break; case ACCEPT_ALL: Accept(); @@ -1318,10 +1318,10 @@ diff --git a/components/permissions/permission_request_manager.h b/components/pe GURL GetEmbeddingOrigin() const override; void Accept() override; - void AcceptThisTime() override; -+ void AcceptThisTime(content_settings::LifetimeMode lifetime_option) override; ++ void AcceptThisTime(mojom::LifetimeMode lifetime_option) override; void Deny() override; -+ void Deny_(bool is_one_time, content_settings::LifetimeMode lifetime_option); -+ void DenyThisTime(content_settings::LifetimeMode lifetime_option) override; ++ void Deny_(bool is_one_time, mojom::LifetimeMode lifetime_option); ++ void DenyThisTime(mojom::LifetimeMode lifetime_option) override; void Dismiss() override; void Ignore() override; void FinalizeCurrentRequests() override; @@ -1331,12 +1331,12 @@ diff --git a/components/permissions/permission_request_manager.h b/components/pe void PermissionGrantedIncludingDuplicates(PermissionRequest* request, - bool is_one_time); + bool is_one_time, -+ content_settings::LifetimeMode lifetime_option); ++ mojom::LifetimeMode lifetime_option); // Calls PermissionDenied on a request and all its duplicates. - void PermissionDeniedIncludingDuplicates(PermissionRequest* request); + void PermissionDeniedIncludingDuplicates(PermissionRequest* request, + bool is_one_time, -+ content_settings::LifetimeMode lifetime_option); ++ mojom::LifetimeMode lifetime_option); // Calls Cancelled on a request and all its duplicates. void CancelledIncludingDuplicates(PermissionRequest* request, bool is_final_decision = true); 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 25d8f6146..f519289b7 100644 --- a/build/patches/Add-menu-item-to-bookmark-all-tabs.patch +++ b/build/patches/Add-menu-item-to-bookmark-all-tabs.patch @@ -7,7 +7,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/android/java/res/menu/main_menu.xml | 7 ++ .../chrome/browser/ChromeTabbedActivity.java | 24 +++++++ .../browser/bookmarks/BookmarkBridge.java | 67 +++++++++++++++++++ - .../bookmarks/android/bookmark_bridge.cc | 44 ++++++++++++ + .../bookmarks/android/bookmark_bridge.cc | 42 ++++++++++++ .../bookmarks/android/bookmark_bridge.h | 8 +++ .../browser/bookmarks/bookmark_html_writer.cc | 11 ++- .../dialogs/DownloadLocationCustomView.java | 4 +- @@ -26,7 +26,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html components/bookmarks/browser/bookmark_uuids.h | 1 + components/bookmarks/browser/model_loader.cc | 8 ++- .../bookmark_specifics_conversions.cc | 1 + - 22 files changed, 236 insertions(+), 14 deletions(-) + 22 files changed, 234 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 @@ -42,7 +42,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re -@@ -186,6 +190,9 @@ found in the LICENSE file. +@@ -180,6 +184,9 @@ found in the LICENSE file. @@ -55,7 +55,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 -@@ -89,6 +89,7 @@ import org.chromium.chrome.browser.base.ColdStartTracker; +@@ -91,6 +91,7 @@ import org.chromium.chrome.browser.base.ColdStartTracker; import org.chromium.chrome.browser.bookmarks.BookmarkUtils; import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.compositor.CompositorViewHolder; @@ -63,7 +63,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.chrome.browser.compositor.layouts.Layout; import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChrome; import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromePhone; -@@ -2950,6 +2951,8 @@ public class ChromeTabbedActivity extends ChromeActivity getTabModelSelector().closeAllTabs()); RecordUserAction.record("MobileMenuCloseAllTabs"); @@ -72,7 +72,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 CloseAllTabsDialog.show( -@@ -3021,6 +3024,27 @@ public class ChromeTabbedActivity extends ChromeActivity @@ -254,7 +254,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse base::android::ScopedJavaLocalRef BookmarkBridge::GetMostRecentlyAddedUserBookmarkIdForUrl( JNIEnv* env, -@@ -482,6 +509,7 @@ void BookmarkBridge::GetAllFoldersWithDepths( +@@ -514,6 +541,7 @@ void BookmarkBridge::GetAllFoldersWithDepths( // Vector to temporarily contain all child bookmarks at same level for sorting std::vector bookmarks = { bookmark_model_->mobile_node(), @@ -262,19 +262,17 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse bookmark_model_->bookmark_bar_node(), bookmark_model_->other_node(), }; -@@ -539,6 +567,11 @@ std::vector BookmarkBridge::GetTopLevelFolderIdsImpl( - top_level_folders.push_back(root_child.get()); +@@ -607,6 +635,9 @@ std::vector BookmarkBridge::GetTopLevelFolderIdsImpl( + top_level_folders.push_back(other_node); } -+ for (const auto& node : bookmark_model_->tabs_collection_node()->children()) { -+ if (node->is_folder()) -+ top_level_folders.push_back(node.get()); -+ } ++ const BookmarkNode* tabs_collection_node = bookmark_model_->tabs_collection_node(); ++ top_level_folders.push_back(tabs_collection_node); + - if (account_reading_list_manager_ && - account_reading_list_manager_->GetRoot()) { - top_level_folders.push_back(account_reading_list_manager_->GetRoot()); -@@ -1176,6 +1209,17 @@ void BookmarkBridge::GetBookmarksOfType( + const BookmarkNode* reading_list_node = + local_or_syncable_reading_list_manager_->GetRoot(); + if (IsPermanentFolderVisible(ignore_visibility, reading_list_node)) { +@@ -1326,6 +1357,17 @@ void BookmarkBridge::GetBookmarksOfType( AddBookmarkNodesToBookmarkIdList(env, j_list, results); } @@ -295,9 +293,9 @@ 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 -@@ -77,6 +77,10 @@ class BookmarkBridge : public ProfileObserver, - const base::android::JavaParamRef& j_url, - const base::android::JavaParamRef& j_callback); +@@ -93,6 +93,10 @@ class BookmarkBridge : public ProfileObserver, + bool is_account_bookmark, + page_image_service::ImageService::ResultCallback callback); + base::android::ScopedJavaLocalRef GetBookmarkIdForTabsCollection( + JNIEnv* env, @@ -306,7 +304,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser base::android::ScopedJavaLocalRef GetMostRecentlyAddedUserBookmarkIdForUrl( JNIEnv* env, -@@ -227,6 +231,10 @@ class BookmarkBridge : public ProfileObserver, +@@ -245,6 +249,10 @@ class BookmarkBridge : public ProfileObserver, const base::android::JavaParamRef& j_list, jint type); @@ -384,7 +382,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 -@@ -3875,6 +3875,9 @@ To change this setting, BEGIN_LINKclear the Chrome da +@@ -3930,6 +3930,9 @@ To change this setting, BEGIN_LINKclear the Chrome da Select tabs @@ -505,7 +503,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar if (sync_metadata_str) { const std::string* sync_metadata_str_base64 = -@@ -459,11 +471,13 @@ void BookmarkCodec::DecodeMetaInfoHelper( +@@ -460,12 +472,14 @@ void BookmarkCodec::DecodeMetaInfoHelper( void BookmarkCodec::ReassignIDs(BookmarkNode* bb_node, BookmarkNode* other_node, @@ -513,6 +511,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar + BookmarkNode* mobile_node, + BookmarkNode* tabs_folder_node) { ids_.clear(); + reassigned_ids_per_old_id_.clear(); ReassignIDsHelper(bb_node); ReassignIDsHelper(other_node); ReassignIDsHelper(mobile_node); @@ -523,7 +522,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmarks/browser/bookmark_codec.h --- a/components/bookmarks/browser/bookmark_codec.h +++ b/components/bookmarks/browser/bookmark_codec.h -@@ -39,6 +39,7 @@ class BookmarkCodec { +@@ -40,6 +40,7 @@ class BookmarkCodec { const BookmarkNode* bookmark_bar_node, const BookmarkNode* other_folder_node, const BookmarkNode* mobile_folder_node, @@ -531,7 +530,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmark std::string sync_metadata_str); // Decodes the previously encoded value to the specified nodes as well as -@@ -57,6 +58,7 @@ class BookmarkCodec { +@@ -58,6 +59,7 @@ class BookmarkCodec { BookmarkNode* bb_node, BookmarkNode* other_folder_node, BookmarkNode* mobile_folder_node, @@ -539,7 +538,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmark int64_t* max_node_id, std::string* sync_metadata_str); -@@ -82,6 +84,7 @@ class BookmarkCodec { +@@ -89,6 +91,7 @@ class BookmarkCodec { static const char kBookmarkBarFolderNameKey[]; static const char kOtherBookmarkFolderNameKey[]; static const char kMobileBookmarkFolderNameKey[]; @@ -547,7 +546,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmark static const char kVersionKey[]; static const char kChecksumKey[]; static const char kIdKey[]; -@@ -114,6 +117,7 @@ class BookmarkCodec { +@@ -121,6 +124,7 @@ class BookmarkCodec { bool DecodeHelper(BookmarkNode* bb_node, BookmarkNode* other_folder_node, BookmarkNode* mobile_folder_node, @@ -555,7 +554,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmark const base::Value::Dict& value, std::string* sync_metadata_str); -@@ -124,7 +128,8 @@ class BookmarkCodec { +@@ -131,7 +135,8 @@ class BookmarkCodec { // Reassigns bookmark IDs for all nodes. void ReassignIDs(BookmarkNode* bb_node, BookmarkNode* other_node, @@ -600,7 +599,7 @@ diff --git a/components/bookmarks/browser/bookmark_load_details.cc b/components/ diff --git a/components/bookmarks/browser/bookmark_load_details.h b/components/bookmarks/browser/bookmark_load_details.h --- a/components/bookmarks/browser/bookmark_load_details.h +++ b/components/bookmarks/browser/bookmark_load_details.h -@@ -39,6 +39,7 @@ class BookmarkLoadDetails { +@@ -40,6 +40,7 @@ class BookmarkLoadDetails { BookmarkPermanentNode* bb_node() { return bb_node_; } BookmarkPermanentNode* mobile_folder_node() { return mobile_folder_node_; } BookmarkPermanentNode* other_folder_node() { return other_folder_node_; } @@ -608,7 +607,7 @@ diff --git a/components/bookmarks/browser/bookmark_load_details.h b/components/b // Account permanent nodes (null unless `AddAccountPermanentNodes()` is // called). -@@ -138,6 +139,7 @@ class BookmarkLoadDetails { +@@ -151,6 +152,7 @@ class BookmarkLoadDetails { raw_ptr bb_node_; raw_ptr other_folder_node_; raw_ptr mobile_folder_node_; @@ -619,7 +618,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 -@@ -846,7 +846,7 @@ bool BookmarkModel::HasBookmarks() const { +@@ -912,7 +912,7 @@ bool BookmarkModel::HasBookmarks() const { bool BookmarkModel::HasNoUserCreatedBookmarksOrFolders() const { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); return bookmark_bar_node_->children().empty() && @@ -628,7 +627,7 @@ diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmar } bool BookmarkModel::IsBookmarked(const GURL& url) const { -@@ -1191,6 +1191,7 @@ void BookmarkModel::DoneLoading(std::unique_ptr details) { +@@ -1244,6 +1244,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(); @@ -639,7 +638,7 @@ diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmar diff --git a/components/bookmarks/browser/bookmark_model.h b/components/bookmarks/browser/bookmark_model.h --- a/components/bookmarks/browser/bookmark_model.h +++ b/components/bookmarks/browser/bookmark_model.h -@@ -159,6 +159,12 @@ class BookmarkModel final : public BookmarkUndoProvider, +@@ -157,6 +157,12 @@ class BookmarkModel : public CoreBookmarkModel, // bookmarks in the account storage). const BookmarkNode* account_mobile_node() const; @@ -652,7 +651,7 @@ diff --git a/components/bookmarks/browser/bookmark_model.h b/components/bookmark bool is_root_node(const BookmarkNode* node) const { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); return node == root_; -@@ -619,6 +625,7 @@ class BookmarkModel final : public BookmarkUndoProvider, +@@ -635,6 +641,7 @@ class BookmarkModel : public CoreBookmarkModel, raw_ptr account_bookmark_bar_node_ = nullptr; raw_ptr account_other_node_ = nullptr; raw_ptr account_mobile_node_ = nullptr; @@ -699,7 +698,7 @@ diff --git a/components/bookmarks/browser/bookmark_node.h b/components/bookmarks MOBILE }; -@@ -231,6 +232,8 @@ class BookmarkPermanentNode : public BookmarkNode { +@@ -236,6 +237,8 @@ class BookmarkPermanentNode : public BookmarkNode { int64_t id); static std::unique_ptr CreateMobileBookmarks( int64_t id); @@ -773,7 +772,7 @@ diff --git a/components/bookmarks/browser/model_loader.cc b/components/bookmarks &sync_metadata_str)) { ids_assigned_to_account_nodes = codec.release_assigned_ids(); -@@ -110,7 +113,8 @@ std::unique_ptr LoadBookmarks( +@@ -122,7 +125,8 @@ std::unique_ptr LoadBookmarks( if (root_dict.has_value() && codec.Decode(*root_dict, std::move(ids_assigned_to_account_nodes), details->bb_node(), details->other_folder_node(), diff --git a/build/patches/Add-menu-item-to-view-source.patch b/build/patches/Add-menu-item-to-view-source.patch index ccc2db86a..e0944e4a2 100644 --- a/build/patches/Add-menu-item-to-view-source.patch +++ b/build/patches/Add-menu-item-to-view-source.patch @@ -29,7 +29,7 @@ diff --git a/chrome/android/java/res/menu/custom_tabs_menu.xml b/chrome/android/ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml --- a/chrome/android/java/res/menu/main_menu.xml +++ b/chrome/android/java/res/menu/main_menu.xml -@@ -113,6 +113,9 @@ found in the LICENSE file. +@@ -107,6 +107,9 @@ found in the LICENSE file. @@ -42,7 +42,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -2976,6 +2976,8 @@ public class ChromeTabbedActivity extends ChromeActivity diff --git a/build/patches/Add-option-to-disable-snapshots.patch b/build/patches/Add-option-to-disable-snapshots.patch index 4dc4b0f59..b9529082d 100644 --- a/build/patches/Add-option-to-disable-snapshots.patch +++ b/build/patches/Add-option-to-disable-snapshots.patch @@ -53,15 +53,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<>(); -@@ -160,6 +163,7 @@ public class TabProperties { +@@ -164,6 +167,7 @@ public class TabProperties { CARD_TYPE, CONTENT_DESCRIPTION_STRING, CLOSE_BUTTON_DESCRIPTION_STRING, + FAVICON, SHOPPING_PERSISTED_TAB_DATA_FETCHER, SHOULD_SHOW_PRICE_DROP_TOOLTIP, - QUICK_DELETE_ANIMATION_STATUS -@@ -172,6 +176,7 @@ public class TabProperties { + QUICK_DELETE_ANIMATION_STATUS, +@@ -177,6 +181,7 @@ public class TabProperties { TAB_CLOSED_LISTENER, FAVICON_FETCHED, FAVICON_FETCHER, @@ -72,7 +72,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 -@@ -54,6 +54,11 @@ found in the LICENSE file. +@@ -65,6 +65,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" /> @@ -87,7 +87,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 -@@ -145,6 +145,7 @@ import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; +@@ -146,6 +146,7 @@ import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; import org.chromium.chrome.browser.preferences.Pref; import org.chromium.chrome.browser.printing.TabPrinter; @@ -95,7 +95,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.readaloud.ReadAloudController; import org.chromium.chrome.browser.selection.SelectionPopupBackPressHandler; -@@ -704,7 +705,7 @@ public abstract class ChromeActivity +@@ -702,7 +703,7 @@ public abstract class ChromeActivity new TabContentManager( this, mBrowserControlsManagerSupplier.get(), @@ -107,7 +107,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/layouts/content/TabContentManager.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/content/TabContentManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/content/TabContentManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/content/TabContentManager.java -@@ -326,11 +326,14 @@ public class TabContentManager { +@@ -325,11 +325,14 @@ public class TabContentManager { */ public void getTabThumbnailWithCallback( @NonNull int tabId, @@ -127,7 +127,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo diff --git a/chrome/android/java/src/org/chromium/chrome/browser/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 -@@ -66,12 +66,25 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; +@@ -68,12 +68,25 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate; @@ -154,7 +154,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"; -@@ -140,6 +153,21 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -155,6 +168,21 @@ public class PrivacySettings extends ChromeBaseSettingsFragment } } @@ -176,7 +176,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( -@@ -321,6 +349,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -344,6 +372,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"; @@ -184,7 +184,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting @Override public boolean onPreferenceChange(Preference preference, Object newValue) { -@@ -346,6 +375,13 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -369,6 +398,13 @@ public class PrivacySettings extends ChromeBaseSettingsFragment SharedPreferences.Editor sharedPreferencesEditor = ContextUtils.getAppSharedPreferences().edit(); sharedPreferencesEditor.putBoolean(PREF_OPEN_EXTERNAL_LINKS_INCOGNITO, (boolean)newValue); sharedPreferencesEditor.apply(); @@ -198,7 +198,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting } return true; } -@@ -386,6 +422,10 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -417,6 +453,10 @@ public class PrivacySettings extends ChromeBaseSettingsFragment : R.string.text_off); } @@ -212,7 +212,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 -@@ -5371,6 +5371,14 @@ To change this setting, BEGIN_LINKclear the Chrome da +@@ -5423,6 +5423,14 @@ To change this setting, BEGIN_LINKclear the Chrome da 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 d53407aa7..a1e04643a 100644 --- a/build/patches/Add-option-to-force-tablet-UI.patch +++ b/build/patches/Add-option-to-force-tablet-UI.patch @@ -4,6 +4,7 @@ Subject: Add option to force tablet UI License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- + .../settings/AccessibilitySettings.java | 11 +++++++++++ .../ChromeAccessibilitySettingsDelegate.java | 19 +++++++++++++++++++ .../browser/tasks/ReturnToChromeUtil.java | 4 +++- .../chrome/browser/ui/RootUiCoordinator.java | 5 ++++- @@ -15,16 +16,50 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../strings/android_chrome_strings.grd | 7 +++++++ components/BUILD.gn | 6 +++--- .../res/xml/accessibility_preferences.xml | 5 +++++ - .../accessibility/AccessibilitySettings.java | 10 ++++++++++ .../AccessibilitySettingsDelegate.java | 2 ++ .../chromium/ui/base/DeviceFormFactor.java | 6 ++++++ - 14 files changed, 71 insertions(+), 6 deletions(-) + 14 files changed, 72 insertions(+), 6 deletions(-) +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java +@@ -46,6 +46,9 @@ public class AccessibilitySettings extends PreferenceFragmentCompat + public static final String PREF_ZOOM_INFO = "zoom_info"; + public static final String PREF_IMAGE_DESCRIPTIONS = "image_descriptions"; + ++ private BooleanPreferenceDelegate mForceTabletUIDelegate; ++ static final String PREF_FORCE_TABLET_UI = "force_tablet_ui"; ++ + private TextScalePreference mTextScalePref; + private PageZoomPreference mPageZoomDefaultZoomPref; + private ChromeSwitchPreference mPageZoomIncludeOSAdjustment; +@@ -143,6 +146,12 @@ public class AccessibilitySettings extends PreferenceFragmentCompat + mPrefService.getBoolean(Pref.READER_FOR_ACCESSIBILITY)); + readerForAccessibilityPref.setOnPreferenceChangeListener(this); + ++ ChromeSwitchPreference forceTabletUiPref = ++ (ChromeSwitchPreference) findPreference(PREF_FORCE_TABLET_UI); ++ mForceTabletUIDelegate = mDelegate.getForceTabletUIDelegate(); ++ forceTabletUiPref.setChecked(mForceTabletUIDelegate.isEnabled()); ++ forceTabletUiPref.setOnPreferenceChangeListener(this); ++ + Preference captions = findPreference(PREF_CAPTIONS); + captions.setOnPreferenceClickListener( + preference -> { +@@ -214,6 +223,8 @@ public class AccessibilitySettings extends PreferenceFragmentCompat + mFontSizePrefs.setUserFontScaleFactor((Float) newValue); + } else if (PREF_FORCE_ENABLE_ZOOM.equals(preference.getKey())) { + mFontSizePrefs.setForceEnableZoomFromUser((Boolean) newValue); ++ } else if (PREF_FORCE_TABLET_UI.equals(preference.getKey())) { ++ mForceTabletUIDelegate.setEnabled((Boolean) newValue); + } else if (PREF_READER_FOR_ACCESSIBILITY.equals(preference.getKey())) { + mPrefService.setBoolean(Pref.READER_FOR_ACCESSIBILITY, (Boolean) newValue); + } else if (PREF_PAGE_ZOOM_DEFAULT_ZOOM.equals(preference.getKey())) { diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java -@@ -94,6 +94,25 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting - return new TextSizeContrastAccessibilityDelegate(getBrowserContextHandle()); +@@ -38,6 +38,25 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting + } } + private static class ForceTabletUIDelegate implements BooleanPreferenceDelegate { @@ -46,13 +81,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s + return new ForceTabletUIDelegate(); + } + - @Override - public void addExtraPreferences(PreferenceFragmentCompat fragment) { - if (ImageDescriptionsController.getInstance().shouldShowImageDescriptionsMenuItem()) { + private final Profile mProfile; + + /** diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeUtil.java b/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeUtil.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeUtil.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeUtil.java -@@ -979,7 +979,9 @@ public final class ReturnToChromeUtil { +@@ -974,7 +974,9 @@ public final class ReturnToChromeUtil { public static boolean isScrollableMvtEnabled(Context context) { boolean isSurfacePolishEnabled = ChromeFeatureList.sSurfacePolish.isEnabled(); @@ -66,7 +101,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToC 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 -@@ -98,6 +98,7 @@ import org.chromium.chrome.browser.paint_preview.DemoPaintPreview; +@@ -97,6 +97,7 @@ 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.preferences.ChromeSharedPreferences; @@ -74,7 +109,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi import org.chromium.chrome.browser.price_tracking.PriceTrackingButtonController; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.ProfileManager; -@@ -1595,7 +1596,9 @@ public class RootUiCoordinator +@@ -1593,7 +1594,9 @@ public class RootUiCoordinator if (!mSupportsFindInPageSupplier.getAsBoolean()) return; int stubId = R.id.find_toolbar_stub; @@ -146,7 +181,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro 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 -@@ -771,7 +771,7 @@ public class LocationBarCoordinator +@@ -768,7 +768,7 @@ public class LocationBarCoordinator } private boolean isTabletWindow() { @@ -158,8 +193,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 -@@ -1564,6 +1564,13 @@ Your Google account may have other forms of browsing history like searches and a - Manage third-party cookies and tracking protections +@@ -1604,6 +1604,13 @@ Your Google account may have other forms of browsing history like searches and a + Hide your IP address + @@ -184,7 +219,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn disallowed_extension_deps_ = [ # Components should largely not depend on //extensions. Since // extensions # is not a component target and is linked with //chrome, depending on most -@@ -831,7 +831,7 @@ test("components_unittests") { +@@ -832,7 +832,7 @@ test("components_unittests") { # On other platforms, no components should depend on Chrome. # Since //chrome depends on //extensions, we also only assert_no_deps on # extensions targets for non-lacros builds. @@ -217,52 +252,18 @@ 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 -@@ -32,6 +32,8 @@ public class AccessibilitySettings extends PreferenceFragmentCompat - public static final String PREF_CAPTIONS = "captions"; - public static final String PREF_ZOOM_INFO = "zoom_info"; - -+ private BooleanPreferenceDelegate mForceTabletUIDelegate; -+ static final String PREF_FORCE_TABLET_UI = "force_tablet_ui"; - private TextScalePreference mTextScalePref; - private PageZoomPreference mPageZoomDefaultZoomPref; - private ChromeSwitchPreference mPageZoomIncludeOSAdjustment; -@@ -129,6 +131,12 @@ public class AccessibilitySettings extends PreferenceFragmentCompat - getPreferenceScreen().removePreference(readerForAccessibilityPref); - } - -+ ChromeSwitchPreference forceTabletUiPref = -+ (ChromeSwitchPreference) findPreference(PREF_FORCE_TABLET_UI); -+ mForceTabletUIDelegate = mDelegate.getForceTabletUIDelegate(); -+ forceTabletUiPref.setChecked(mForceTabletUIDelegate.isEnabled()); -+ forceTabletUiPref.setOnPreferenceChangeListener(this); -+ - Preference captions = findPreference(PREF_CAPTIONS); - captions.setOnPreferenceClickListener( - preference -> { -@@ -190,6 +198,8 @@ public class AccessibilitySettings extends PreferenceFragmentCompat - mFontSizePrefs.setUserFontScaleFactor((Float) newValue); - } else if (PREF_FORCE_ENABLE_ZOOM.equals(preference.getKey())) { - mFontSizePrefs.setForceEnableZoomFromUser((Boolean) newValue); -+ } else if (PREF_FORCE_TABLET_UI.equals(preference.getKey())) { -+ mForceTabletUIDelegate.setEnabled((Boolean) newValue); - } else if (PREF_READER_FOR_ACCESSIBILITY.equals(preference.getKey())) { - if (mReaderForAccessibilityDelegate != null) { - mReaderForAccessibilityDelegate.setEnabled((Boolean) newValue); diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java --- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java +++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java -@@ -52,6 +52,8 @@ public interface AccessibilitySettingsDelegate { - */ - IntegerPreferenceDelegate getTextSizeContrastAccessibilityDelegate(); +@@ -26,6 +26,8 @@ public interface AccessibilitySettingsDelegate { + /** @return The BrowserContextHandle that should be used to read and update settings. */ + BrowserContextHandle getBrowserContextHandle(); + BooleanPreferenceDelegate getForceTabletUIDelegate(); + /** - * Allows the embedder to add more preferences to the preference screen. - * + * @return the InterPreferenceDelegate instance that should be used for reading and setting the + * text size contrast value for accessibility settings. Return null to omit the preference. diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java --- a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java +++ b/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java 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 961e31e66..41ae33fb2 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 -@@ -71,6 +71,11 @@ found in the LICENSE file. +@@ -82,6 +82,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"/> @@ -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; -@@ -1614,8 +1615,10 @@ public class ChromeTabbedActivity extends ChromeActivityBEGIN_LINKclear the Chrome da +@@ -4860,6 +4860,12 @@ To change this setting, BEGIN_LINKclear the Chrome da 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 052f298b0..930ca44f9 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 @@ -23,15 +23,15 @@ 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 -@@ -22,6 +22,7 @@ import org.chromium.base.supplier.ObservableSupplier; - import org.chromium.base.supplier.Supplier; - import org.chromium.base.task.PostTask; +@@ -25,6 +25,7 @@ import org.chromium.base.task.PostTask; import org.chromium.base.task.TaskTraits; + import org.chromium.chrome.browser.data_sharing.SharedImageTilesCoordinator; + import org.chromium.chrome.browser.flags.ChromeFeatureList; +import org.chromium.chrome.browser.homepage.HomepageManager; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.TabCreationState; import org.chromium.chrome.browser.tab.TabLaunchType; -@@ -47,6 +48,7 @@ import org.chromium.ui.KeyboardVisibilityDelegate; +@@ -55,6 +56,7 @@ import org.chromium.ui.KeyboardVisibilityDelegate; import org.chromium.ui.base.DeviceFormFactor; import org.chromium.ui.modelutil.PropertyModel; import org.chromium.ui.text.EmptyTextWatcher; @@ -39,7 +39,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser import java.util.ArrayList; import java.util.List; -@@ -636,11 +638,16 @@ public class TabGridDialogMediator +@@ -688,11 +690,16 @@ public class TabGridDialogMediator assert relatedTabs.size() > 0; @@ -223,7 +223,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 -@@ -1337,6 +1337,9 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1369,6 +1369,9 @@ Your Google account may have other forms of browsing history like searches and a Last hour @@ -236,7 +236,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc --- a/chrome/browser/ui/browser_ui_prefs.cc +++ b/chrome/browser/ui/browser_ui_prefs.cc -@@ -73,6 +73,8 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -78,6 +78,8 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { GetHomeButtonAndHomePageIsNewTabPageFlags()); registry->RegisterBooleanPref(prefs::kShowHomeButton, false, GetHomeButtonAndHomePageIsNewTabPageFlags()); @@ -244,11 +244,11 @@ diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_u + PrefRegistry::NO_REGISTRATION_FLAGS); registry->RegisterInt64Pref(prefs::kDefaultBrowserLastDeclined, 0); - bool reset_check_default = false; + registry->RegisterBooleanPref(prefs::kWebAppCreateOnDesktop, true); diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h --- a/chrome/common/pref_names.h +++ b/chrome/common/pref_names.h -@@ -1285,6 +1285,10 @@ inline constexpr char kUsedPolicyCertificates[] = +@@ -1269,6 +1269,10 @@ inline constexpr char kUsedPolicyCertificates[] = // visible on the toolbar. inline constexpr char kShowHomeButton[] = "browser.show_home_button"; diff --git a/build/patches/Add-search-engine.patch b/build/patches/Add-search-engine.patch index 456a50f31..0f87bf87b 100644 --- a/build/patches/Add-search-engine.patch +++ b/build/patches/Add-search-engine.patch @@ -9,9 +9,10 @@ Add DuckDuckGo Lite License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- .../search_engines/prepopulated_engines.json | 31 +++++++++++++++++++ + .../search_engine_countries-inc.cc | 2 ++ .../search_engines/search_engine_type.h | 5 +++ - .../template_url_prepopulate_data.cc | 3 ++ - 3 files changed, 39 insertions(+) + .../template_url_prepopulate_data.cc | 1 + + 4 files changed, 39 insertions(+) diff --git a/components/search_engines/prepopulated_engines.json b/components/search_engines/prepopulated_engines.json --- a/components/search_engines/prepopulated_engines.json @@ -33,7 +34,7 @@ diff --git a/components/search_engines/prepopulated_engines.json b/components/se "ecosia": { "name": "Ecosia", "keyword": "ecosia.org", -@@ -171,6 +181,27 @@ +@@ -172,6 +182,27 @@ "id": 111 }, @@ -61,15 +62,26 @@ diff --git a/components/search_engines/prepopulated_engines.json b/components/se "mail_ru": { "name": "@MAIL.RU", "keyword": "mail.ru", +diff --git a/components/search_engines/search_engine_countries-inc.cc b/components/search_engines/search_engine_countries-inc.cc +--- a/components/search_engines/search_engine_countries-inc.cc ++++ b/components/search_engines/search_engine_countries-inc.cc +@@ -1443,5 +1443,7 @@ const std::vector GetPrepopulationSetFromCountryID( + for (size_t i = 0; i < num_engines; i++) { + t_url.push_back(engines[i]); + } ++ t_url.push_back({SearchEngineTier::kTopEngines, &googleen}); ++ t_url.push_back({SearchEngineTier::kTopEngines, &duckduckgo_light}); + return t_url; + } diff --git a/components/search_engines/search_engine_type.h b/components/search_engines/search_engine_type.h --- a/components/search_engines/search_engine_type.h +++ b/components/search_engines/search_engine_type.h -@@ -90,10 +90,15 @@ enum SearchEngineType { - SEARCH_ENGINE_KARMA = 71, +@@ -91,10 +91,15 @@ enum SearchEngineType { SEARCH_ENGINE_YOU = 72, SEARCH_ENGINE_STARTER_PACK_ASK_GOOGLE = 73, -+ SEARCH_ENGINE_GOOGLE_EN = 74, -+ SEARCH_ENGINE_DUCKDUCKGOLIGHT = 75, + SEARCH_ENGINE_LILO = 74, ++ SEARCH_ENGINE_GOOGLE_EN = 75, ++ SEARCH_ENGINE_DUCKDUCKGOLIGHT = 76, SEARCH_ENGINE_MAX // Bounding value needed for UMA histogram macro. }; @@ -83,21 +95,12 @@ 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 -@@ -63,6 +63,7 @@ struct EngineAndTier { - - // Default (for countries with no better engine set) - constexpr EngineAndTier engines_default[] = { +@@ -100,6 +100,7 @@ std::vector> GetPrepopulatedTemplateURLData( + std::vector engines = + GetPrepopulationSetFromCountryID(country_id); + for (const EngineAndTier& engine : engines) { + {SearchEngineTier::kTopEngines, &googleen}, - {SearchEngineTier::kTopEngines, &google}, - {SearchEngineTier::kTopEngines, &bing}, - {SearchEngineTier::kTopEngines, &yahoo}, -@@ -1683,6 +1684,8 @@ const std::vector GetPrepopulationSetFromCountryID( - for (size_t i = 0; i < num_engines; i++) { - t_url.push_back(engines[i]); - } -+ t_url.push_back({SearchEngineTier::kTopEngines, &googleen}); -+ t_url.push_back({SearchEngineTier::kTopEngines, &duckduckgo_light}); - return t_url; - } - + if (engine.tier == SearchEngineTier::kTopEngines) { + t_urls.push_back( + TemplateURLDataFromPrepopulatedEngine(*engine.search_engine)); -- 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 dd97b3939..83fe8e57e 100644 --- a/build/patches/Add-setting-to-clear-data-on-exit.patch +++ b/build/patches/Add-setting-to-clear-data-on-exit.patch @@ -35,7 +35,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 -@@ -307,6 +307,7 @@ chrome_java_sources = [ +@@ -308,6 +308,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragmentAdvanced.java", "java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragmentBasic.java", "java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataTabsFragment.java", @@ -46,7 +46,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java 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 -@@ -169,6 +169,7 @@ import org.chromium.chrome.browser.profiles.ProfileProvider; +@@ -170,6 +170,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; @@ -54,7 +54,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.reengagement.ReengagementNotificationController; import org.chromium.chrome.browser.search_engines.SearchEngineChoiceNotification; -@@ -1614,7 +1615,11 @@ public class ChromeTabbedActivity extends ChromeActivity Clear browsing data @@ -230,7 +230,7 @@ diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp diff --git a/chrome/browser/android/browsing_data/browsing_data_bridge.cc b/chrome/browser/android/browsing_data/browsing_data_bridge.cc --- a/chrome/browser/android/browsing_data/browsing_data_bridge.cc +++ b/chrome/browser/android/browsing_data/browsing_data_bridge.cc -@@ -331,7 +331,7 @@ static void JNI_BrowsingDataBridge_SetLastClearBrowsingDataTab( +@@ -353,7 +353,7 @@ static void JNI_BrowsingDataBridge_SetLastClearBrowsingDataTab( const JavaParamRef& jprofile, jint tab_index) { DCHECK_GE(tab_index, 0); @@ -281,7 +281,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager. diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc --- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc +++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc -@@ -436,6 +436,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -438,6 +438,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( CreateTaskCompletionClosure(TracingDataType::kHistory), &history_task_tracker_); } @@ -291,7 +291,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate. if (ClipboardRecentContent::GetInstance()) ClipboardRecentContent::GetInstance()->SuppressClipboardContent(); -@@ -486,7 +489,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -488,7 +491,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( prerender::NoStatePrefetchManager::CLEAR_PRERENDER_CONTENTS | prerender::NoStatePrefetchManager::CLEAR_PRERENDER_HISTORY); } @@ -301,7 +301,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate. // The saved Autofill profiles and credit cards can include the origin from // which these profiles and credit cards were learned. These are a form of // history, so clear them as well. -@@ -507,7 +512,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -509,7 +514,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( if (data_manager) data_manager->Refresh(); } @@ -311,7 +311,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate. base::ThreadPool::PostTaskAndReply( FROM_HERE, {base::TaskPriority::USER_VISIBLE, base::MayBlock()}, base::BindOnce( -@@ -582,9 +589,13 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -584,9 +591,13 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( } device_event_log::Clear(delete_begin_, delete_end_); @@ -328,7 +328,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 -@@ -513,6 +513,23 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { +@@ -514,6 +514,23 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { (*s_allowlist)[browsing_data::prefs::kLastClearBrowsingDataTab] = settings_api::PrefType::kNumber; @@ -386,7 +386,7 @@ diff --git a/chrome/browser/profiles/android/profile_manager_utils.cc b/chrome/b diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc --- a/chrome/browser/profiles/profile_manager.cc +++ b/chrome/browser/profiles/profile_manager.cc -@@ -1488,6 +1488,19 @@ void ProfileManager::DoFinalInit(ProfileInfo* profile_info, +@@ -1483,6 +1483,19 @@ void ProfileManager::DoFinalInit(ProfileInfo* profile_info, } } @@ -406,7 +406,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_ || -@@ -2155,7 +2168,7 @@ void ProfileManager::OnBrowserClosed(Browser* browser) { +@@ -2149,7 +2162,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()) { @@ -430,7 +430,7 @@ diff --git a/chrome/browser/profiles/profile_manager.h b/chrome/browser/profiles diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.html b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.html --- a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.html +++ b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.html -@@ -305,6 +305,50 @@ +@@ -306,6 +306,50 @@ disabled="[[clearingInProgress_]]" no-set-pref> @@ -484,7 +484,7 @@ diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_ diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.ts b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.ts --- a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.ts +++ b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.ts -@@ -302,6 +302,7 @@ export class SettingsClearBrowsingDataDialogElement extends +@@ -304,6 +304,7 @@ export class SettingsClearBrowsingDataDialogElement extends value: () => [loadTimeData.getString('basicPageTitle'), loadTimeData.getString('advancedPageTitle'), @@ -492,10 +492,10 @@ diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_ ], }, -@@ -425,6 +426,7 @@ export class SettingsClearBrowsingDataDialogElement extends +@@ -427,6 +428,7 @@ export class SettingsClearBrowsingDataDialogElement extends } this.clearButtonDisabled_ = - this.getSelectedDataTypes_(tab as HTMLElement).length === 0; + this.getSelectedDataTypes_(page as HTMLElement).length === 0; + if ((tab as HTMLElement).id == "atstart-tab") this.clearButtonDisabled_ = true; } @@ -503,7 +503,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 -@@ -1432,6 +1432,9 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1467,6 +1467,9 @@ Your Google account may have other forms of browsing history like searches and a Basic @@ -516,7 +516,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc --- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc +++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc -@@ -1674,6 +1674,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, +@@ -1675,6 +1675,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, {"clearedData", IDS_SETTINGS_CLEARED_DATA}, {"clearBrowsingData", IDS_SETTINGS_CLEAR_BROWSING_DATA}, {"clearBrowsingDataDescription", IDS_SETTINGS_CLEAR_DATA_DESCRIPTION}, @@ -631,8 +631,8 @@ diff --git a/components/browsing_data/core/clear_browsing_data_tab.h b/component // // A Java counterpart will be generated for this enum. // GENERATED_JAVA_ENUM_PACKAGE: org.chromium.chrome.browser.browsing_data --enum class ClearBrowsingDataTab { BASIC, ADVANCED, NUM_TYPES }; -+enum class ClearBrowsingDataTab { BASIC, ADVANCED, AT_START, NUM_TYPES }; +-enum class ClearBrowsingDataTab { BASIC, ADVANCED, MAX_VALUE = ADVANCED }; ++enum class ClearBrowsingDataTab { BASIC, ADVANCED, AT_START, MAX_VALUE = AT_START }; } // namespace browsing_data @@ -686,7 +686,7 @@ diff --git a/components/browsing_data/core/pref_names.h b/components/browsing_da 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 -@@ -1488,6 +1488,7 @@ void StoragePartitionImpl::Initialize( +@@ -1496,6 +1496,7 @@ void StoragePartitionImpl::Initialize( .AppendASCII("Code Cache"); } DCHECK_GE(settings.size_in_bytes(), 0); 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 9f7757ca1..84d8da265 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 @@ -9,6 +9,7 @@ Need: bromite-build-utils.patch License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- chrome/android/java/res/values/ids.xml | 1 + + .../settings/AccessibilitySettings.java | 12 +++++++ .../ChromeAccessibilitySettingsDelegate.java | 18 ++++++++++ .../contextmenu/ChromeContextMenuItem.java | 5 ++- .../ChromeContextMenuPopulator.java | 5 +++ @@ -18,7 +19,6 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../browser/flags/ChromeFeatureList.java | 5 +++ .../strings/android_chrome_strings.grd | 9 +++++ .../res/xml/accessibility_preferences.xml | 5 +++ - .../accessibility/AccessibilitySettings.java | 11 ++++++ .../AccessibilitySettingsDelegate.java | 2 ++ ...Add-setting-to-invert-tap-and-long-tap.inc | 8 +++++ ...Add-setting-to-invert-tap-and-long-tap.inc | 3 ++ @@ -29,7 +29,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../renderer/core/html/html_image_element.h | 2 ++ .../core/page/context_menu_controller.cc | 32 ++++++++++++----- .../core/page/context_menu_controller.h | 5 +-- - 21 files changed, 164 insertions(+), 21 deletions(-) + 21 files changed, 165 insertions(+), 21 deletions(-) create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-setting-to-invert-tap-and-long-tap.inc create mode 100644 cromite_flags/third_party/blink/common/features_cc/Add-setting-to-invert-tap-and-long-tap.inc create mode 100644 cromite_flags/third_party/blink/common/features_h/Add-setting-to-invert-tap-and-long-tap.inc @@ -45,10 +45,46 @@ diff --git a/chrome/android/java/res/values/ids.xml b/chrome/android/java/res/va +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java +@@ -52,6 +52,9 @@ public class AccessibilitySettings extends PreferenceFragmentCompat + static final String PREF_MOVE_TOOLBAR_TO_BOTTOM = "move_toolbar_bottom"; + private BooleanPreferenceDelegate mMoveTopToolbarToBottomDelegate; + ++ static final String PREF_ALWAYS_SHOW_CONTEXTMENU_ON_LINKS = "always_show_contextmenu_on_links"; ++ private BooleanPreferenceDelegate mShowAlwaysContextMenuOnLinksDelegate; ++ + private TextScalePreference mTextScalePref; + private PageZoomPreference mPageZoomDefaultZoomPref; + private ChromeSwitchPreference mPageZoomIncludeOSAdjustment; +@@ -165,6 +168,12 @@ public class AccessibilitySettings extends PreferenceFragmentCompat + mMoveToolbarToBottomPref.setChecked(mMoveTopToolbarToBottomDelegate.isEnabled()); + mMoveToolbarToBottomPref.setOnPreferenceChangeListener(this); + ++ ChromeSwitchPreference mShowAlwaysContextMenuOnLinksPref = ++ (ChromeSwitchPreference) findPreference(PREF_ALWAYS_SHOW_CONTEXTMENU_ON_LINKS); ++ mShowAlwaysContextMenuOnLinksDelegate = mDelegate.getShowAlwaysContextMenuOnLinksDelegate(); ++ mShowAlwaysContextMenuOnLinksPref.setChecked(mShowAlwaysContextMenuOnLinksDelegate.isEnabled()); ++ mShowAlwaysContextMenuOnLinksPref.setOnPreferenceChangeListener(this); ++ + Preference captions = findPreference(PREF_CAPTIONS); + captions.setOnPreferenceClickListener( + preference -> { +@@ -250,6 +259,9 @@ public class AccessibilitySettings extends PreferenceFragmentCompat + } else if (PREF_MOVE_TOOLBAR_TO_BOTTOM.equals(preference.getKey())) { + mMoveTopToolbarToBottomDelegate.setEnabled((Boolean) newValue); + mDelegate.requestRestart(getActivity()); ++ } else if (PREF_ALWAYS_SHOW_CONTEXTMENU_ON_LINKS.equals(preference.getKey())) { ++ mShowAlwaysContextMenuOnLinksDelegate.setEnabled((Boolean) newValue); ++ mDelegate.requestRestart(getActivity()); + } else if (PREF_PAGE_ZOOM_INCLUDE_OS_ADJUSTMENT.equals(preference.getKey())) { + // TODO(mschillaci): Implement the override behavior for OS level. + } diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java -@@ -163,6 +163,24 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting +@@ -117,6 +117,24 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting mSnackbarManager.showSnackbar(mSnackbar); } @@ -71,8 +107,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s + } + @Override - public void addExtraPreferences(PreferenceFragmentCompat fragment) { - if (ImageDescriptionsController.getInstance().shouldShowImageDescriptionsMenuItem()) { + public BrowserContextHandle getBrowserContextHandle() { + return mProfile; 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 @@ -169,7 +205,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 -@@ -342,6 +342,8 @@ public abstract class ChromeFeatureList { +@@ -338,6 +338,8 @@ public abstract class ChromeFeatureList { public static final String NOTIFICATION_ONE_TAP_UNSUBSCRIBE = "NotificationOneTapUnsubscribe"; public static final String MOVE_TOP_TOOLBAR_TO_BOTTOM = "MoveTopToolbarToBottom"; @@ -178,7 +214,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final String NOTIFICATION_PERMISSION_VARIANT = "NotificationPermissionVariant"; public static final String NOTIFICATION_PERMISSION_BOTTOM_SHEET = "NotificationPermissionBottomSheet"; -@@ -619,6 +621,8 @@ public abstract class ChromeFeatureList { +@@ -620,6 +622,8 @@ public abstract class ChromeFeatureList { newCachedFlag(OMNIBOX_MATCH_TOOLBAR_AND_STATUS_BAR_COLOR, false); public static final CachedFlag sMoveTopToolbarToBottom = newCachedFlag(MOVE_TOP_TOOLBAR_TO_BOTTOM, false); @@ -187,7 +223,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final CachedFlag sOmniboxModernizeVisualUpdate = newCachedFlag(OMNIBOX_MODERNIZE_VISUAL_UPDATE, true); public static final CachedFlag sOptimizationGuidePushNotifications = -@@ -771,6 +775,7 @@ public abstract class ChromeFeatureList { +@@ -776,6 +780,7 @@ public abstract class ChromeFeatureList { sTabWindowManagerReportIndicesMismatch, sToolbarUseHardwareBitmapDraw, sUseChimeAndroidSdk, @@ -198,7 +234,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 -@@ -1638,6 +1638,12 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1678,6 +1678,12 @@ Your Google account may have other forms of browsing history like searches and a Move toolbar to bottom @@ -211,7 +247,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro -@@ -2779,6 +2785,9 @@ To change this setting, BEGIN_LINKclear the Chrome da +@@ -2834,6 +2840,9 @@ To change this setting, BEGIN_LINKclear the Chrome da Open in new Chrome tab @@ -236,52 +272,10 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil { -@@ -226,6 +234,9 @@ public class AccessibilitySettings extends PreferenceFragmentCompat - } else if (PREF_MOVE_TOOLBAR_TO_BOTTOM.equals(preference.getKey())) { - mMoveTopToolbarToBottomDelegate.setEnabled((Boolean) newValue); - mDelegate.requestRestart(getActivity()); -+ } else if (PREF_ALWAYS_SHOW_CONTEXTMENU_ON_LINKS.equals(preference.getKey())) { -+ mShowAlwaysContextMenuOnLinksDelegate.setEnabled((Boolean) newValue); -+ mDelegate.requestRestart(getActivity()); - } else if (PREF_PAGE_ZOOM_INCLUDE_OS_ADJUSTMENT.equals(preference.getKey())) { - // TODO(mschillaci): Implement the override behavior for OS level. - } diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java --- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java +++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java -@@ -43,6 +43,8 @@ public interface AccessibilitySettingsDelegate { +@@ -29,6 +29,8 @@ public interface AccessibilitySettingsDelegate { BooleanPreferenceDelegate getMoveTopToolbarToBottomDelegate(); @@ -320,15 +314,15 @@ new file mode 100644 diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third_party/blink/renderer/core/html/html_anchor_element.cc --- a/third_party/blink/renderer/core/html/html_anchor_element.cc +++ b/third_party/blink/renderer/core/html/html_anchor_element.cc -@@ -59,6 +59,7 @@ - #include "third_party/blink/renderer/core/loader/ping_loader.h" +@@ -62,6 +62,7 @@ + #include "third_party/blink/renderer/core/loader/render_blocking_resource_manager.h" #include "third_party/blink/renderer/core/navigation_api/navigation_api.h" #include "third_party/blink/renderer/core/page/chrome_client.h" +#include "third_party/blink/renderer/core/page/context_menu_controller.h" #include "third_party/blink/renderer/core/page/page.h" #include "third_party/blink/renderer/core/speculation_rules/document_speculation_rules.h" #include "third_party/blink/renderer/platform/heap/garbage_collected.h" -@@ -467,6 +468,17 @@ void HTMLAnchorElement::NavigateToHyperlink(ResourceRequest request, +@@ -516,6 +517,17 @@ void HTMLAnchorElement::NavigateToHyperlink(ResourceRequest request, bool is_trusted, base::TimeTicks platform_time_stamp, KURL completed_url) { @@ -346,7 +340,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third LocalDOMWindow* window = GetDocument().domWindow(); if (!window) { return; -@@ -527,6 +539,15 @@ void HTMLAnchorElement::NavigateToHyperlink(ResourceRequest request, +@@ -576,6 +588,15 @@ void HTMLAnchorElement::NavigateToHyperlink(ResourceRequest request, /*element=*/this, request.HasUserGesture())); } @@ -362,8 +356,8 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third Frame* target_frame = frame->Tree().FindOrCreateFrameForNavigation(frame_request, target).frame; -@@ -559,7 +580,7 @@ void HTMLAnchorElement::SetHovered(bool hovered) { - HTMLElement::SetHovered(hovered); +@@ -629,7 +650,7 @@ AtomicString HTMLAnchorElement::interestAction() const { + return g_empty_atom; } -void HTMLAnchorElement::HandleClick(Event& event) { @@ -371,7 +365,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third event.SetDefaultHandled(); LocalDOMWindow* window = GetDocument().domWindow(); -@@ -656,13 +677,12 @@ void HTMLAnchorElement::HandleClick(Event& event) { +@@ -726,13 +747,12 @@ void HTMLAnchorElement::HandleClick(Event& event) { return; } @@ -389,7 +383,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third // We distinguish single/double click with some modifiers. // See the comment of `EventHandler.delayed_navigation_task_handle_`. auto task_handle = PostDelayedCancellableTask( -@@ -672,7 +692,9 @@ void HTMLAnchorElement::HandleClick(Event& event) { +@@ -742,7 +762,9 @@ void HTMLAnchorElement::HandleClick(Event& event) { frame->GetEventHandler().SetDelayedNavigationTaskHandle( std::move(task_handle)); } else { @@ -403,15 +397,15 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third diff --git a/third_party/blink/renderer/core/html/html_anchor_element.h b/third_party/blink/renderer/core/html/html_anchor_element.h --- a/third_party/blink/renderer/core/html/html_anchor_element.h +++ b/third_party/blink/renderer/core/html/html_anchor_element.h -@@ -106,6 +106,7 @@ class CORE_EXPORT HTMLAnchorElement : public HTMLElement, public DOMURLUtils { - void SetHovered(bool hovered) override; +@@ -110,6 +110,7 @@ class CORE_EXPORT HTMLAnchorElement : public HTMLElement, public DOMURLUtils { + AtomicString interestAction() const; void Trace(Visitor*) const override; + void HandleClick(Event&, bool do_not_show_context_menu = false); protected: void ParseAttribute(const AttributeModificationParams&) override; -@@ -130,12 +131,16 @@ class CORE_EXPORT HTMLAnchorElement : public HTMLElement, public DOMURLUtils { +@@ -136,12 +137,16 @@ class CORE_EXPORT HTMLAnchorElement : public HTMLElement, public DOMURLUtils { bool IsInteractiveContent() const final; InsertionNotificationRequest InsertedInto(ContainerNode&) override; void RemovedFrom(ContainerNode&) override; @@ -449,7 +443,7 @@ diff --git a/third_party/blink/renderer/core/html/html_image_element.cc b/third_ #include "third_party/blink/renderer/core/paint/timing/paint_timing.h" #include "third_party/blink/renderer/core/probe/core_probes.h" #include "third_party/blink/renderer/core/resize_observer/resize_observer_entry.h" -@@ -803,6 +805,21 @@ void HTMLImageElement::DidFinishLifecycleUpdate( +@@ -799,6 +801,21 @@ void HTMLImageElement::DidFinishLifecycleUpdate( } } @@ -486,7 +480,7 @@ diff --git a/third_party/blink/renderer/core/html/html_image_element.h b/third_p diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/third_party/blink/renderer/core/page/context_menu_controller.cc --- a/third_party/blink/renderer/core/page/context_menu_controller.cc +++ b/third_party/blink/renderer/core/page/context_menu_controller.cc -@@ -225,14 +225,16 @@ void ContextMenuController::DocumentDetached(Document* document) { +@@ -228,14 +228,16 @@ void ContextMenuController::DocumentDetached(Document* document) { } } @@ -506,7 +500,7 @@ diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/t mouse_event->SetDefaultHandled(); } -@@ -450,7 +452,8 @@ bool ContextMenuController::ShouldShowContextMenuFromTouch( +@@ -453,7 +455,8 @@ bool ContextMenuController::ShouldShowContextMenuFromTouch( bool ContextMenuController::ShowContextMenu(LocalFrame* frame, const PhysicalOffset& point, WebMenuSourceType source_type, @@ -516,7 +510,7 @@ diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/t // Displaying the context menu in this function is a big hack as we don't // have context, i.e. whether this is being invoked via a script or in // response to user input (Mouse event WM_RBUTTONDOWN, -@@ -473,6 +476,15 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame, +@@ -476,6 +479,15 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame, if (!result.InnerNodeOrImageMapImage()) return false; @@ -532,7 +526,7 @@ diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/t // Clear any previously set cached results if we are resetting the hit test // result. image_selection_cached_result_ = nullptr; -@@ -831,11 +843,13 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame, +@@ -830,11 +842,13 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame, SetAutofillData(result.InnerNode(), data); SetPasswordManagerData(result.InnerElement(), data); diff --git a/build/patches/Add-site-engagement-flag.patch b/build/patches/Add-site-engagement-flag.patch index c64a17c01..7d1e07403 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 -@@ -153,6 +153,7 @@ +@@ -154,6 +154,7 @@ #include "components/send_tab_to_self/features.h" #include "components/services/heap_profiling/public/cpp/switches.h" #include "components/services/storage/public/cpp/buckets/bucket_info.h" @@ -96,7 +96,7 @@ diff --git a/components/feature_engagement/public/feature_configurations.cc b/co #include "components/feature_engagement/public/configuration.h" #include "components/feature_engagement/public/event_constants.h" #include "components/feature_engagement/public/feature_constants.h" -@@ -111,6 +112,12 @@ std::optional GetClientSideFeatureConfig( +@@ -112,6 +113,12 @@ std::optional GetClientSideFeatureConfig( } #endif // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) diff --git a/build/patches/Add-support-for-ISupportHelpAndFeedback.patch b/build/patches/Add-support-for-ISupportHelpAndFeedback.patch index 51ce2fb6e..903b78e57 100644 --- a/build/patches/Add-support-for-ISupportHelpAndFeedback.patch +++ b/build/patches/Add-support-for-ISupportHelpAndFeedback.patch @@ -12,7 +12,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java -@@ -86,6 +86,7 @@ import org.chromium.components.browser_ui.settings.CustomDividerFragment; +@@ -88,6 +88,7 @@ import org.chromium.components.browser_ui.settings.CustomDividerFragment; import org.chromium.components.browser_ui.settings.FragmentSettingsLauncher; import org.chromium.components.browser_ui.settings.PaddedItemDecorationWithDivider; import org.chromium.components.browser_ui.settings.SettingsLauncher; @@ -20,7 +20,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin import org.chromium.components.browser_ui.site_settings.BaseSiteSettingsFragment; import org.chromium.components.browser_ui.site_settings.SiteSettingsCategory; import org.chromium.components.browser_ui.util.TraceEventVectorDrawableCompat; -@@ -457,8 +458,12 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -460,8 +461,12 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity finish(); 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 d85c8bce4..a03802a89 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 -@@ -489,6 +489,10 @@ vars = { +@@ -491,6 +491,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': '8f20644eca693cfb74aa795b0006b6779c370e7a', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling ffmpeg -@@ -1107,6 +1111,9 @@ deps = { +@@ -1102,6 +1106,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 -@@ -90,6 +90,7 @@ +@@ -91,6 +91,7 @@ /libgifcodec /libjingle/source /libupnp @@ -467,7 +467,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 -@@ -4294,6 +4294,7 @@ domain Emulation +@@ -4323,6 +4323,7 @@ domain Emulation experimental type DisabledImageType extends string enum avif @@ -478,7 +478,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 -@@ -502,10 +502,10 @@ AtomicString InspectorEmulationAgent::OverrideAcceptImageHeader( +@@ -501,10 +501,10 @@ AtomicString InspectorEmulationAgent::OverrideAcceptImageHeader( String header(network_utils::ImageAcceptHeader()); for (String type : *disabled_image_types) { // The header string is expected to be like @@ -492,7 +492,7 @@ diff --git a/third_party/blink/renderer/core/inspector/inspector_emulation_agent header.Replace(String(type + ","), ""); } return AtomicString(header); -@@ -850,6 +850,7 @@ protocol::Response InspectorEmulationAgent::setDisabledImageTypes( +@@ -849,6 +849,7 @@ protocol::Response InspectorEmulationAgent::setDisabledImageTypes( namespace DisabledImageTypeEnum = protocol::Emulation::DisabledImageTypeEnum; for (protocol::Emulation::DisabledImageType type : *disabled_types) { if (DisabledImageTypeEnum::Avif == type || @@ -608,7 +608,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 -@@ -2280,6 +2280,10 @@ source_set("blink_platform_unittests_sources") { +@@ -2289,6 +2289,10 @@ source_set("blink_platform_unittests_sources") { sources += [ "text/locale_icu_test.cc" ] } @@ -619,10 +619,10 @@ diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/re sources += [ "testing/run_all_tests.cc" ] configs += [ -@@ -2323,6 +2327,7 @@ source_set("blink_platform_unittests_sources") { +@@ -2331,6 +2335,7 @@ source_set("blink_platform_unittests_sources") { + "//third_party/blink/renderer/platform/network:unit_tests", "//third_party/blink/renderer/platform/scheduler:unit_tests", "//third_party/blink/renderer/platform/wtf", - "//third_party/libavif:libavif", + "//third_party/libjxl:libjxl", "//third_party/libyuv", "//third_party/webrtc/api/task_queue:task_queue_test", @@ -663,7 +663,7 @@ diff --git a/third_party/blink/renderer/platform/graphics/bitmap_image_metrics.c diff --git a/third_party/blink/renderer/platform/graphics/bitmap_image_metrics.h b/third_party/blink/renderer/platform/graphics/bitmap_image_metrics.h --- a/third_party/blink/renderer/platform/graphics/bitmap_image_metrics.h +++ b/third_party/blink/renderer/platform/graphics/bitmap_image_metrics.h -@@ -29,8 +29,8 @@ class PLATFORM_EXPORT BitmapImageMetrics { +@@ -32,8 +32,8 @@ class PLATFORM_EXPORT BitmapImageMetrics { kICO = 5, kBMP = 6, kAVIF = 7, @@ -696,15 +696,15 @@ diff --git a/third_party/blink/renderer/platform/image-decoders/BUILD.gn b/third diff --git a/third_party/blink/renderer/platform/image-decoders/image_decoder.cc b/third_party/blink/renderer/platform/image-decoders/image_decoder.cc --- a/third_party/blink/renderer/platform/image-decoders/image_decoder.cc +++ b/third_party/blink/renderer/platform/image-decoders/image_decoder.cc -@@ -23,6 +23,7 @@ - #include +@@ -24,6 +24,7 @@ + #include "base/containers/heap_array.h" #include "base/logging.h" +#include "base/feature_list.h" #include "base/numerics/safe_conversions.h" #include "base/sys_byteorder.h" #include "base/trace_event/trace_event.h" -@@ -30,6 +31,7 @@ +@@ -31,6 +32,7 @@ #include "media/media_buildflags.h" #include "skia/ext/cicp.h" #include "third_party/blink/public/common/buildflags.h" @@ -712,7 +712,7 @@ diff --git a/third_party/blink/renderer/platform/image-decoders/image_decoder.cc #include "third_party/blink/public/platform/platform.h" #include "third_party/blink/renderer/platform/image-decoders/bmp/bmp_image_decoder.h" #include "third_party/blink/renderer/platform/image-decoders/exif_reader.h" -@@ -47,6 +49,9 @@ +@@ -48,6 +50,9 @@ #include "third_party/blink/renderer/platform/image-decoders/avif/avif_image_decoder.h" #endif @@ -722,7 +722,7 @@ diff --git a/third_party/blink/renderer/platform/image-decoders/image_decoder.cc namespace blink { namespace { -@@ -74,6 +79,11 @@ cc::ImageType FileExtensionToImageType(String image_extension) { +@@ -75,6 +80,11 @@ cc::ImageType FileExtensionToImageType(String image_extension) { if (image_extension == "avif") { return cc::ImageType::kAVIF; } @@ -734,7 +734,7 @@ diff --git a/third_party/blink/renderer/platform/image-decoders/image_decoder.cc #endif return cc::ImageType::kInvalid; } -@@ -191,6 +201,12 @@ String SniffMimeTypeInternal(scoped_refptr reader) { +@@ -192,6 +202,12 @@ String SniffMimeTypeInternal(scoped_refptr reader) { return "image/avif"; } #endif @@ -747,7 +747,7 @@ diff --git a/third_party/blink/renderer/platform/image-decoders/image_decoder.cc return String(); } -@@ -296,6 +312,13 @@ std::unique_ptr ImageDecoder::CreateByMimeType( +@@ -297,6 +313,13 @@ std::unique_ptr ImageDecoder::CreateByMimeType( decoder = std::make_unique( alpha_option, high_bit_depth_decoding_option, color_behavior, max_decoded_bytes, animation_option); @@ -2222,7 +2222,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 -@@ -4559,6 +4559,12 @@ crbug.com/1199522 http/tests/devtools/layers/layers-3d-view-hit-testing.js [ Fai +@@ -4636,6 +4636,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 ] @@ -2653,7 +2653,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 -@@ -21104,6 +21104,7 @@ from previous Chrome versions. +@@ -21300,6 +21300,7 @@ from previous Chrome versions. @@ -2672,5 +2672,5 @@ diff --git a/tools/metrics/histograms/metadata/blink/enums.xml b/tools/metrics/h + - + -- diff --git a/build/patches/Add-webGL-site-setting.patch b/build/patches/Add-webGL-site-setting.patch index f51d1e5d0..34f9a5b1c 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 -@@ -311,6 +311,13 @@ void WebGLRenderingContextBase::InitializeWebGLContextLimits( +@@ -313,6 +313,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_); -@@ -584,25 +591,6 @@ static String ExtractWebGLContextCreationError( +@@ -586,25 +593,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('.'); -@@ -662,6 +650,12 @@ WebGLRenderingContextBase::CreateWebGraphicsContext3DProvider( +@@ -664,6 +652,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 -@@ -1960,6 +1960,8 @@ class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext, +@@ -1963,6 +1963,8 @@ class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext, DOMArrayBufferView* pixels, int64_t offset); diff --git a/build/patches/Add-webRTC-site-settings.patch b/build/patches/Add-webRTC-site-settings.patch index 69e8daa82..ed149c064 100644 --- a/build/patches/Add-webRTC-site-settings.patch +++ b/build/patches/Add-webRTC-site-settings.patch @@ -195,7 +195,7 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_d #include "third_party/blink/public/platform/web_url.h" #include "third_party/blink/public/web/modules/mediastream/media_stream_video_source.h" #include "third_party/blink/public/web/web_document.h" -@@ -847,6 +848,11 @@ PeerConnectionDependencyFactory::CreatePortAllocator( +@@ -838,6 +839,11 @@ PeerConnectionDependencyFactory::CreatePortAllocator( // origin. WebRTCIPHandlingPolicy policy = GetWebRTCIPHandlingPolicy(webrtc_ip_handling_policy); @@ -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" -@@ -287,6 +289,14 @@ RTCRtpCapabilities* RTCRtpReceiver::getCapabilities(ScriptState* state, +@@ -313,6 +315,14 @@ RTCRtpCapabilities* RTCRtpReceiver::getCapabilities(ScriptState* state, if (kind != "audio" && kind != "video") return nullptr; @@ -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" -@@ -1062,6 +1064,14 @@ RTCRtpCapabilities* RTCRtpSender::getCapabilities(ScriptState* state, +@@ -1073,6 +1075,14 @@ RTCRtpCapabilities* RTCRtpSender::getCapabilities(ScriptState* state, if (kind != "audio" && kind != "video") return nullptr; diff --git a/build/patches/Allow-building-without-enable_reporting.patch b/build/patches/Allow-building-without-enable_reporting.patch index 6090081c9..995555423 100644 --- a/build/patches/Allow-building-without-enable_reporting.patch +++ b/build/patches/Allow-building-without-enable_reporting.patch @@ -41,7 +41,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 -@@ -1400,6 +1400,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) { +@@ -1410,6 +1410,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) { } } @@ -49,7 +49,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->ForEachRenderFrameHostWithAction( -@@ -1413,6 +1414,7 @@ std::vector ComputeReportingURLs(RenderFrameHostImpl* frame_host) { +@@ -1423,6 +1424,7 @@ std::vector ComputeReportingURLs(RenderFrameHostImpl* frame_host) { }); return urls; } @@ -201,7 +201,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 -@@ -13787,12 +13787,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport( +@@ -13972,12 +13972,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport( base::Value::Dict body; if (!reason.empty()) body.Set("reason", reason); @@ -254,7 +254,7 @@ new file mode 100644 diff --git a/net/base/features.cc b/net/base/features.cc --- a/net/base/features.cc +++ b/net/base/features.cc -@@ -229,6 +229,7 @@ extern const base::FeatureParam kTimeoutTcpConnectAttemptMax( +@@ -218,6 +218,7 @@ extern const base::FeatureParam kTimeoutTcpConnectAttemptMax( base::Seconds(30)); #if BUILDFLAG(ENABLE_REPORTING) @@ -297,7 +297,7 @@ diff --git a/services/network/network_context.h b/services/network/network_conte 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 -@@ -1443,7 +1443,6 @@ mojom("mojom") { +@@ -1453,7 +1453,6 @@ mojom("mojom") { export_define_blink = "BLINK_PLATFORM_IMPLEMENTATION=1" export_header_blink = "third_party/blink/public/platform/web_common.h" if (enable_reporting) { @@ -308,7 +308,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 -@@ -1206,6 +1206,7 @@ interface NetworkContext { +@@ -1209,6 +1209,7 @@ interface NetworkContext { // provided |network_isolation_key|. // // Spec: https://w3c.github.io/reporting/#concept-reports @@ -316,7 +316,7 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw QueueReport(string type, string group, url.mojom.Url url, -@@ -1219,6 +1220,7 @@ interface NetworkContext { +@@ -1222,6 +1223,7 @@ interface NetworkContext { // Note that this queued report will never be delivered if no reporting // endpoint matching is registered for with the provided // |network_isolation_key|. @@ -362,8 +362,8 @@ 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" -@@ -2619,9 +2620,11 @@ void LocalFrame::MainFrameInteractive() { - v8_local_compile_hints_producer_->GenerateData(); +@@ -2650,9 +2651,11 @@ void LocalFrame::MainFrameFirstMeaningfulPaint() { + v8_local_compile_hints_producer_->GenerateData(kIsFinalData); } +#if BUILDFLAG(ENABLE_REPORTING) @@ -385,7 +385,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" -@@ -657,8 +658,9 @@ class CORE_EXPORT LocalFrame final +@@ -661,8 +662,9 @@ class CORE_EXPORT LocalFrame final void FinishedScrollSequence(); SmoothScrollSequencer* GetSmoothScrollSequencer() const; diff --git a/build/patches/Allow-building-without-supervised-users.patch b/build/patches/Allow-building-without-supervised-users.patch index f90233350..c52e17708 100644 --- a/build/patches/Allow-building-without-supervised-users.patch +++ b/build/patches/Allow-building-without-supervised-users.patch @@ -24,7 +24,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -3697,7 +3697,6 @@ generate_jni("chrome_jni_headers") { +@@ -3727,7 +3727,6 @@ generate_jni("chrome_jni_headers") { "java/src/org/chromium/chrome/browser/status_indicator/StatusIndicatorSceneLayer.java", "java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSites.java", "java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesBridge.java", @@ -35,7 +35,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -1085,7 +1085,6 @@ chrome_java_sources = [ +@@ -1087,7 +1087,6 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/suggestions/tile/TileGroupDelegateImpl.java", "java/src/org/chromium/chrome/browser/suggestions/tile/TileRenderer.java", "java/src/org/chromium/chrome/browser/suggestions/tile/TopSitesTileView.java", @@ -46,7 +46,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java --- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java +++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java -@@ -68,7 +68,6 @@ import org.chromium.components.browser_ui.widget.displaystyle.UiConfig; +@@ -67,7 +67,6 @@ import org.chromium.components.browser_ui.widget.displaystyle.UiConfig; import org.chromium.components.feature_engagement.EventConstants; import org.chromium.components.feature_engagement.Tracker; import org.chromium.components.prefs.PrefService; @@ -54,7 +54,7 @@ diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/ import org.chromium.components.user_prefs.UserPrefs; import org.chromium.third_party.android.swiperefresh.SwipeRefreshLayout; import org.chromium.ui.base.DeviceFormFactor; -@@ -775,9 +774,7 @@ public class FeedSurfaceCoordinator +@@ -759,9 +758,7 @@ public class FeedSurfaceCoordinator * Returns true if the supervised user feed should be displayed. */ public boolean shouldDisplaySupervisedFeed() { @@ -68,7 +68,7 @@ diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -3165,8 +3165,6 @@ static_library("browser") { +@@ -3171,8 +3171,6 @@ static_library("browser") { "feed/android/refresh_task_scheduler_impl.cc", "feed/android/refresh_task_scheduler_impl.h", "feed/android/web_feed_bridge.cc", @@ -77,7 +77,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "file_select_helper_contacts_android.cc", "file_select_helper_contacts_android.h", "first_run/android/first_run_prefs.cc", -@@ -3371,10 +3369,6 @@ static_library("browser") { +@@ -3377,10 +3375,6 @@ static_library("browser") { "ssl/chrome_security_state_model_delegate.h", "ssl/known_interception_disclosure_infobar.cc", "ssl/known_interception_disclosure_infobar.h", @@ -91,7 +91,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn 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 -@@ -1024,9 +1024,11 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { +@@ -1047,9 +1047,11 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { settings_api::PrefType::kBoolean; #endif @@ -106,7 +106,7 @@ diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chro diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc --- a/chrome/browser/profiles/profile_impl.cc +++ b/chrome/browser/profiles/profile_impl.cc -@@ -689,10 +689,12 @@ void ProfileImpl::DoFinalInit(CreateMode create_mode) { +@@ -693,10 +693,12 @@ void ProfileImpl::DoFinalInit(CreateMode create_mode) { prefs->SetTime(prefs::kProfileCreationTime, path_creation_time_); pref_change_registrar_.Init(prefs); @@ -119,7 +119,7 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p // Changes in the profile avatar. pref_change_registrar_.Add( -@@ -1627,11 +1629,13 @@ GURL ProfileImpl::GetHomePage() { +@@ -1638,11 +1640,13 @@ GURL ProfileImpl::GetHomePage() { } void ProfileImpl::UpdateSupervisedUserIdInStorage() { @@ -136,7 +136,7 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc --- a/chrome/browser/profiles/profile_manager.cc +++ b/chrome/browser/profiles/profile_manager.cc -@@ -1215,6 +1215,7 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) { +@@ -1214,6 +1214,7 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) { profile->GetPrefs()->SetString(prefs::kProfileName, profile_name); } @@ -144,7 +144,7 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); bool force_supervised_user_id = #if BUILDFLAG(IS_CHROMEOS_ASH) -@@ -1236,6 +1237,7 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) { +@@ -1231,6 +1232,7 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) { profile->GetPrefs()->SetString(prefs::kSupervisedUserId, supervised_user_id); } @@ -152,7 +152,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); -@@ -2035,8 +2037,10 @@ void ProfileManager::AddProfileToStorage(Profile* profile) { +@@ -2029,8 +2031,10 @@ void ProfileManager::AddProfileToStorage(Profile* profile) { init_params.icon_index = profile->GetPrefs()->GetInteger(prefs::kProfileAvatarIndex); @@ -211,19 +211,19 @@ diff --git a/components/supervised_user/buildflags.gni b/components/supervised_u diff --git a/components/supervised_user/core/browser/supervised_user_preferences.cc b/components/supervised_user/core/browser/supervised_user_preferences.cc --- a/components/supervised_user/core/browser/supervised_user_preferences.cc +++ b/components/supervised_user/core/browser/supervised_user_preferences.cc -@@ -173,7 +173,7 @@ bool IsChildAccountStatusKnown(const PrefService& pref_service) { +@@ -187,7 +187,7 @@ bool IsSafeSitesEnabled(const PrefService& pref_service) { } - bool IsChildAccount(const PrefService& pref_service) { + bool IsSubjectToParentalControls(const PrefService& pref_service) { - return pref_service.GetString(prefs::kSupervisedUserId) == kChildAccountSUID; + return false; } - bool IsSafeSitesEnabled(const PrefService& pref_service) { + bool AreExtensionsPermissionsEnabled(const PrefService& pref_service) { 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 -@@ -81,11 +81,15 @@ GURL NormalizeUrl(const GURL& url) { +@@ -97,11 +97,15 @@ GURL NormalizeUrl(const GURL& url) { } bool AreWebFilterPrefsDefault(const PrefService& pref_service) { @@ -242,7 +242,7 @@ diff --git a/components/supervised_user/core/browser/supervised_user_utils.cc b/ diff --git a/components/supervised_user/core/common/features.cc b/components/supervised_user/core/common/features.cc --- a/components/supervised_user/core/common/features.cc +++ b/components/supervised_user/core/common/features.cc -@@ -163,4 +163,5 @@ bool IsShadowKidsApiWithSafeSitesEnabled() { +@@ -119,4 +119,5 @@ bool IsShadowKidsApiWithSafeSitesEnabled() { return base::FeatureList::IsEnabled(kShadowKidsApiWithSafeSites); } @@ -262,7 +262,7 @@ diff --git a/components/supervised_user/core/common/pref_names.h b/components/su namespace prefs { // A bool pref that keeps whether the child status for this profile was already -@@ -132,4 +134,6 @@ inline constexpr char kFirstTimeInterstitialBannerState[] = +@@ -151,4 +153,6 @@ inline constexpr char kSupervisedUserLocallyParentApprovedExtensions[] = } // namespace prefs @@ -272,7 +272,7 @@ diff --git a/components/supervised_user/core/common/pref_names.h b/components/su diff --git a/components/supervised_user/core/common/supervised_user_constants.cc b/components/supervised_user/core/common/supervised_user_constants.cc --- a/components/supervised_user/core/common/supervised_user_constants.cc +++ b/components/supervised_user/core/common/supervised_user_constants.cc -@@ -70,6 +70,7 @@ const char kChromeOSAvatarIndex[] = "chromeos-avatar-index"; +@@ -69,6 +69,7 @@ const char kChromeOSAvatarIndex[] = "chromeos-avatar-index"; const char kChromeOSPasswordData[] = "chromeos-password-data"; @@ -280,7 +280,7 @@ diff --git a/components/supervised_user/core/common/supervised_user_constants.cc const char* const kCustodianInfoPrefs[] = { prefs::kSupervisedUserCustodianName, prefs::kSupervisedUserCustodianEmail, -@@ -82,6 +83,7 @@ const char* const kCustodianInfoPrefs[] = { +@@ -81,6 +82,7 @@ const char* const kCustodianInfoPrefs[] = { prefs::kSupervisedUserSecondCustodianProfileURL, prefs::kSupervisedUserSecondCustodianProfileImageURL, }; diff --git a/build/patches/Allow-playing-audio-in-background.patch b/build/patches/Allow-playing-audio-in-background.patch index 514ca2a80..07e5154b0 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 -@@ -1181,6 +1181,12 @@ bool WebMediaPlayerImpl::HasAudio() const { +@@ -1197,6 +1197,12 @@ bool WebMediaPlayerImpl::HasAudio() const { return pipeline_metadata_.has_audio; } @@ -24,7 +24,7 @@ diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc void WebMediaPlayerImpl::EnabledAudioTracksChanged( const WebVector& enabledTrackIds) { DCHECK(main_task_runner_->BelongsToCurrentThread()); -@@ -3524,7 +3530,10 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const { +@@ -3541,7 +3547,10 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const { : HasAudio(); // Audio only stream is allowed to play when in background. @@ -39,7 +39,7 @@ diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.h b/third_party/blink/renderer/platform/media/web_media_player_impl.h --- a/third_party/blink/renderer/platform/media/web_media_player_impl.h +++ b/third_party/blink/renderer/platform/media/web_media_player_impl.h -@@ -200,6 +200,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/AudioBuffer-AnalyserNode-fp-mitigations.patch b/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch index 297bce197..47511c417 100644 --- a/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch +++ b/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch @@ -117,7 +117,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/base_audio_context.cc b #include "third_party/blink/public/mojom/devtools/console_message.mojom-blink.h" #include "third_party/blink/public/mojom/frame/lifecycle.mojom-shared.h" #include "third_party/blink/public/platform/platform.h" -@@ -721,6 +722,17 @@ LocalDOMWindow* BaseAudioContext::GetWindow() const { +@@ -722,6 +723,17 @@ LocalDOMWindow* BaseAudioContext::GetWindow() const { return To(GetExecutionContext()); } @@ -134,11 +134,11 @@ diff --git a/third_party/blink/renderer/modules/webaudio/base_audio_context.cc b + void BaseAudioContext::NotifySourceNodeStartedProcessing(AudioNode* node) { DCHECK(IsMainThread()); - GraphAutoLocker locker(this); + DeferredTaskHandler::GraphAutoLocker locker(this); diff --git a/third_party/blink/renderer/modules/webaudio/base_audio_context.h b/third_party/blink/renderer/modules/webaudio/base_audio_context.h --- a/third_party/blink/renderer/modules/webaudio/base_audio_context.h +++ b/third_party/blink/renderer/modules/webaudio/base_audio_context.h -@@ -339,6 +339,8 @@ class MODULES_EXPORT BaseAudioContext +@@ -337,6 +337,8 @@ class MODULES_EXPORT BaseAudioContext // if the execution context does not exist. bool CheckExecutionContextAndThrowIfNecessary(ExceptionState&); @@ -150,7 +150,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/base_audio_context.h b/ diff --git a/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc b/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc --- a/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc +++ b/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc -@@ -368,6 +368,7 @@ void OfflineAudioContext::FireCompletionEvent() { +@@ -369,6 +369,7 @@ void OfflineAudioContext::FireCompletionEvent() { if (!rendered_buffer) { return; } diff --git a/build/patches/Block-gateway-attacks-via-websockets.patch b/build/patches/Block-gateway-attacks-via-websockets.patch index dbc463736..4e1fc87b3 100644 --- a/build/patches/Block-gateway-attacks-via-websockets.patch +++ b/build/patches/Block-gateway-attacks-via-websockets.patch @@ -72,7 +72,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 -@@ -593,6 +593,26 @@ bool FrameFetchContext::ShouldBlockRequestByInspector(const KURL& url) const { +@@ -589,6 +589,26 @@ bool FrameFetchContext::ShouldBlockRequestByInspector(const KURL& url) const { return should_block_request; } @@ -102,7 +102,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 -@@ -177,6 +177,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext, +@@ -166,6 +166,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext, bool ShouldBlockWebSocketByMixedContentCheck(const KURL&) const override; std::unique_ptr CreateWebSocketHandshakeThrottle() override; @@ -121,7 +121,7 @@ diff --git a/third_party/blink/renderer/core/loader/worker_fetch_context.cc b/th #include "third_party/blink/renderer/platform/runtime_enabled_features.h" #include "third_party/blink/renderer/platform/scheduler/public/virtual_time_controller.h" #include "third_party/blink/renderer/platform/supplementable.h" -@@ -94,6 +95,26 @@ bool WorkerFetchContext::ShouldBlockRequestByInspector(const KURL& url) const { +@@ -90,6 +91,26 @@ bool WorkerFetchContext::ShouldBlockRequestByInspector(const KURL& url) const { return should_block_request; } @@ -177,7 +177,7 @@ diff --git a/third_party/blink/renderer/core/workers/installed_scripts_manager.c diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.cc b/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.cc --- a/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.cc +++ b/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.cc -@@ -101,6 +101,30 @@ bool ShouldBlockDanglingMarkup(const KURL& request_url) { +@@ -102,6 +102,30 @@ bool ShouldBlockDanglingMarkup(const KURL& request_url) { request_url.ProtocolIsInHTTPFamily(); } @@ -208,7 +208,7 @@ diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetc scoped_refptr ExtractBlobHandle( Request* request, ExceptionState& exception_state) { -@@ -188,6 +212,13 @@ ScriptPromise BackgroundFetchManager::fetch( +@@ -189,6 +213,13 @@ ScriptPromiseTyped BackgroundFetchManager::fetch( exception_state); } diff --git a/build/patches/Block-qjz9zk-or-trk-requests.patch b/build/patches/Block-qjz9zk-or-trk-requests.patch index 0461642ea..e86cc93a9 100644 --- a/build/patches/Block-qjz9zk-or-trk-requests.patch +++ b/build/patches/Block-qjz9zk-or-trk-requests.patch @@ -108,7 +108,7 @@ diff --git a/components/url_formatter/url_fixer.cc b/components/url_formatter/ur diff --git a/content/browser/child_process_security_policy_impl.cc b/content/browser/child_process_security_policy_impl.cc --- a/content/browser/child_process_security_policy_impl.cc +++ b/content/browser/child_process_security_policy_impl.cc -@@ -849,6 +849,7 @@ ChildProcessSecurityPolicyImpl::ChildProcessSecurityPolicyImpl() +@@ -848,6 +848,7 @@ ChildProcessSecurityPolicyImpl::ChildProcessSecurityPolicyImpl() RegisterPseudoScheme(url::kJavaScriptScheme); RegisterPseudoScheme(kViewSourceScheme); RegisterPseudoScheme(kGoogleChromeScheme); @@ -119,7 +119,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 -@@ -997,6 +997,8 @@ component("net") { +@@ -1004,6 +1004,8 @@ component("net") { "url_request/url_request_http_job.cc", "url_request/url_request_http_job.h", "url_request/url_request_interceptor.cc", @@ -259,14 +259,14 @@ diff --git a/url/url_constants.cc b/url/url_constants.cc diff --git a/url/url_constants.h b/url/url_constants.h --- a/url/url_constants.h +++ b/url/url_constants.h -@@ -33,6 +33,7 @@ COMPONENT_EXPORT(URL) extern const char16_t kContentIDScheme16[]; - COMPONENT_EXPORT(URL) extern const char kDataScheme[]; - COMPONENT_EXPORT(URL) extern const char16_t kDataScheme16[]; - COMPONENT_EXPORT(URL) extern const char kFileScheme[]; -+COMPONENT_EXPORT(URL) extern const char kTraceScheme[]; - COMPONENT_EXPORT(URL) extern const char16_t kFileScheme16[]; - COMPONENT_EXPORT(URL) extern const char kFileSystemScheme[]; - COMPONENT_EXPORT(URL) extern const char16_t kFileSystemScheme16[]; +@@ -31,6 +31,7 @@ inline constexpr char kDataScheme[] = "data"; + inline constexpr char16_t kDataScheme16[] = u"data"; + inline constexpr char kFileScheme[] = "file"; + inline constexpr char16_t kFileScheme16[] = u"file"; ++inline constexpr char16_t kTraceScheme[] = "trk"; + inline constexpr char kFileSystemScheme[] = "filesystem"; + inline constexpr char16_t kFileSystemScheme16[] = u"filesystem"; + inline constexpr char kFtpScheme[] = "ftp"; diff --git a/url/url_util.cc b/url/url_util.cc --- a/url/url_util.cc +++ b/url/url_util.cc diff --git a/build/patches/Bromite-auto-updater.patch b/build/patches/Bromite-auto-updater.patch index 5cf4824ab..51e4acf25 100644 --- a/build/patches/Bromite-auto-updater.patch +++ b/build/patches/Bromite-auto-updater.patch @@ -78,7 +78,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 -@@ -883,6 +883,9 @@ chrome_java_sources = [ +@@ -884,6 +884,9 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/omaha/UpdateConfigs.java", "java/src/org/chromium/chrome/browser/omaha/UpdateMenuItemHelper.java", "java/src/org/chromium/chrome/browser/omaha/UpdateStatusProvider.java", @@ -1113,7 +1113,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 -@@ -3112,6 +3112,7 @@ static_library("browser") { +@@ -3121,6 +3121,7 @@ static_library("browser") { "download/android/service/download_task_scheduler.h", "download/android/string_utils.cc", "download/download_crx_util_android.cc", @@ -1121,7 +1121,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "enterprise/reporting/browser_report_generator_android.cc", "enterprise/reporting/browser_report_generator_android.h", "enterprise/reporting/profile_report_generator_android.cc", -@@ -3451,6 +3452,7 @@ static_library("browser") { +@@ -3456,6 +3457,7 @@ static_library("browser") { "//chrome/browser/content_extraction/android:jni_headers", "//chrome/browser/device_reauth/android:jni_headers", "//chrome/browser/download/internal/android", @@ -1618,24 +1618,24 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse &kPriceChangeModule, &kPwaRestoreUi, + &kInlineUpdateFlow, - &kPwaUniversalInstallUi, &kOmahaMinSdkVersionAndroid, &kShortCircuitUnfocusAnimation, + &kOmniboxNoopEditUrlSuggestionClicks, 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 -@@ -315,6 +315,7 @@ public abstract class ChromeFeatureList { +@@ -309,6 +309,7 @@ public abstract class ChromeFeatureList { "IncognitoReauthenticationForAndroid"; public static final String INCOGNITO_SCREENSHOT = "IncognitoScreenshot"; public static final String INSTANT_START = "InstantStart"; + public static final String INLINE_UPDATE_FLOW = "InlineUpdateFlow"; public static final String INTEREST_FEED_V2_HEARTS = "InterestFeedV2Hearts"; + public static final String IP_PROTECTION_UX = "IpProtectionUx"; public static final String KID_FRIENDLY_CONTENT_FEED = "KidFriendlyContentFeed"; - public static final String LENS_CAMERA_ASSISTED_SEARCH = "LensCameraAssistedSearch"; 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 -@@ -2050,6 +2050,12 @@ Your Google account may have other forms of browsing history like searches and a +@@ -2090,6 +2090,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 @@ -1648,7 +1648,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro -@@ -3732,7 +3738,10 @@ To change this setting, BEGIN_LINKclear the Chrome da +@@ -3784,7 +3790,10 @@ To change this setting, BEGIN_LINKclear the Chrome da @@ -1660,7 +1660,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro Newer version is available -@@ -3743,6 +3752,18 @@ To change this setting, BEGIN_LINKclear the Chrome da +@@ -3795,6 +3804,18 @@ To change this setting, BEGIN_LINKclear the Chrome da Android version is unsupported diff --git a/build/patches/Bromite-package-name.patch b/build/patches/Bromite-package-name.patch index 7f7d6e53a..139e2d540 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 -@@ -25,7 +25,7 @@ declare_args() { +@@ -26,7 +26,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 1e8066d8c..32b9601a6 100644 --- a/build/patches/Bromite-subresource-adblocker.patch +++ b/build/patches/Bromite-subresource-adblocker.patch @@ -46,10 +46,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html ...tent_subresource_filter_throttle_manager.h | 2 + .../content/browser/ruleset_service.cc | 42 ++- .../content/browser/ruleset_service.h | 7 +- - .../content/browser/ruleset_version.h | 4 + .../unindexed_ruleset_stream_generator.cc | 3 + - .../browser/verified_ruleset_dealer.cc | 3 + + .../core/browser/ruleset_version.h | 4 + .../browser/subresource_filter_features.cc | 116 +------- + .../core/browser/verified_ruleset_dealer.cc | 3 + .../core/common/indexed_ruleset.cc | 5 +- .../Bromite-subresource-adblocker.inc | 3 + 40 files changed, 1254 insertions(+), 127 deletions(-) @@ -68,7 +68,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 -@@ -303,6 +303,7 @@ if (current_toolchain == default_toolchain) { +@@ -334,6 +334,7 @@ if (current_toolchain == default_toolchain) { "//chrome/android/modules/cablev2_authenticator/public:java", "//chrome/android/modules/stack_unwinder/provider:java", "//chrome/android/webapk/libs/client:client_java", @@ -79,7 +79,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni --- a/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni -@@ -430,6 +430,7 @@ chrome_java_resources = [ +@@ -431,6 +431,7 @@ chrome_java_resources = [ "java/res/layout/account_chooser_dialog_title.xml", "java/res/layout/account_divider_preference.xml", "java/res/layout/account_management_account_row.xml", @@ -87,7 +87,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 = [ +@@ -634,6 +635,7 @@ chrome_java_resources = [ "java/res/xml/about_chrome_preferences.xml", "java/res/xml/account_management_preferences.xml", "java/res/xml/ad_services_config.xml", @@ -98,7 +98,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 -@@ -972,6 +972,8 @@ chrome_java_sources = [ +@@ -973,6 +973,8 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/permissions/PermissionSettingsBridge.java", "java/src/org/chromium/chrome/browser/permissions/PermissionUpdateRequester.java", "java/src/org/chromium/chrome/browser/photo_picker/DecoderServiceImpl.java", @@ -254,9 +254,9 @@ new file mode 100644 diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml --- a/chrome/android/java/res/xml/main_preferences.xml +++ b/chrome/android/java/res/xml/main_preferences.xml -@@ -78,6 +78,11 @@ found in the LICENSE file. - android:key="safety_check" - android:order="13" +@@ -83,6 +83,11 @@ found in the LICENSE file. + android:key="safety_hub" + android:order="14" android:title="@string/prefs_safety_check"/> + @@ -561,7 +561,7 @@ diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_proc diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc --- a/chrome/browser/chrome_browser_main.cc +++ b/chrome/browser/chrome_browser_main.cc -@@ -446,6 +446,9 @@ StartupProfileInfo CreateInitialProfile( +@@ -455,6 +455,9 @@ StartupProfileInfo CreateInitialProfile( // missing code in the above test. CHECK(profile_info.profile) << "Cannot get default profile."; @@ -738,7 +738,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h --- a/chrome/common/pref_names.h +++ b/chrome/common/pref_names.h -@@ -2653,6 +2653,11 @@ inline constexpr char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled"; +@@ -2657,6 +2657,11 @@ inline constexpr char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled"; inline constexpr char kAudioCaptureAllowedUrls[] = "hardware.audio_capture_allowed_urls"; @@ -1683,7 +1683,7 @@ diff --git a/components/subresource_filter/content/browser/ruleset_service.cc b/ + LOG(WARNING) << "RulesetService: failed to open: " << unindexed_ruleset_info.ruleset_path; RecordIndexAndWriteRulesetResult( IndexAndWriteRulesetResult::FAILED_OPENING_UNINDEXED_RULESET); - return IndexedRulesetVersion(); + return IndexedRulesetVersion(kSafeBrowsingFilterTag); @@ -286,6 +303,7 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( indexed_ruleset_base_dir, indexed_version); @@ -1691,14 +1691,14 @@ diff --git a/components/subresource_filter/content/browser/ruleset_service.cc b/ + LOG(WARNING) << "RulesetService: failed to create version dir: " << indexed_ruleset_version_dir; RecordIndexAndWriteRulesetResult( IndexAndWriteRulesetResult::FAILED_CREATING_VERSION_DIR); - return IndexedRulesetVersion(); + return IndexedRulesetVersion(kSafeBrowsingFilterTag); @@ -293,12 +311,11 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( SentinelFile sentinel_file(indexed_ruleset_version_dir); if (sentinel_file.IsPresent()) { - RecordIndexAndWriteRulesetResult( - IndexAndWriteRulesetResult::ABORTED_BECAUSE_SENTINEL_FILE_PRESENT); -- return IndexedRulesetVersion(); +- return IndexedRulesetVersion(kSafeBrowsingFilterTag); + LOG(WARNING) << "RulesetService: sentinel file is present in " << indexed_ruleset_version_dir; } @@ -1706,7 +1706,7 @@ diff --git a/components/subresource_filter/content/browser/ruleset_service.cc b/ + LOG(WARNING) << "RulesetService: cannot create sentinel file in " << indexed_ruleset_version_dir; RecordIndexAndWriteRulesetResult( IndexAndWriteRulesetResult::FAILED_CREATING_SENTINEL_FILE); - return IndexedRulesetVersion(); + return IndexedRulesetVersion(kSafeBrowsingFilterTag); @@ -311,6 +328,7 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( RulesetIndexer indexer; @@ -1714,7 +1714,7 @@ diff --git a/components/subresource_filter/content/browser/ruleset_service.cc b/ + LOG(WARNING) << "RulesetService: failed parsing."; RecordIndexAndWriteRulesetResult( IndexAndWriteRulesetResult::FAILED_PARSING_UNINDEXED_RULESET); - return IndexedRulesetVersion(); + return IndexedRulesetVersion(kSafeBrowsingFilterTag); @@ -328,8 +346,12 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( WriteRuleset(indexed_ruleset_version_dir, unindexed_ruleset_info.license_path, indexer.data()); @@ -1722,7 +1722,7 @@ diff --git a/components/subresource_filter/content/browser/ruleset_service.cc b/ - if (result != IndexAndWriteRulesetResult::SUCCESS) + if (result != IndexAndWriteRulesetResult::SUCCESS) { + LOG(INFO) << "RulesetService: failed to index."; - return IndexedRulesetVersion(); + return IndexedRulesetVersion(kSafeBrowsingFilterTag); + } + + LOG(INFO) << "RulesetService: successful parsing."; @@ -1769,20 +1769,6 @@ diff --git a/components/subresource_filter/content/browser/ruleset_service.h b/c // Reads the rules via the |unindexed_ruleset_stream_generator|, and indexes // them using |indexer|. Returns whether the entire ruleset could be parsed. static bool IndexRuleset( -diff --git a/components/subresource_filter/content/browser/ruleset_version.h b/components/subresource_filter/content/browser/ruleset_version.h ---- a/components/subresource_filter/content/browser/ruleset_version.h -+++ b/components/subresource_filter/content/browser/ruleset_version.h -@@ -53,6 +53,10 @@ struct UnindexedRulesetInfo { - // can be indicated not only by setting |license_path| to empty, but also by - // setting it to any non existent path. - base::FilePath license_path; -+ -+ // Whether to delete or not the ruleset path once done indexing; useful for disposal -+ // of temporary files. -+ bool delete_ruleset_path; - }; - - // Encapsulates the combination of the binary format version of the indexed diff --git a/components/subresource_filter/content/browser/unindexed_ruleset_stream_generator.cc b/components/subresource_filter/content/browser/unindexed_ruleset_stream_generator.cc --- a/components/subresource_filter/content/browser/unindexed_ruleset_stream_generator.cc +++ b/components/subresource_filter/content/browser/unindexed_ruleset_stream_generator.cc @@ -1803,19 +1789,20 @@ diff --git a/components/subresource_filter/content/browser/unindexed_ruleset_str copying_stream_ = std::make_unique( std::move(unindexed_ruleset_file)); ruleset_stream_ = -diff --git a/components/subresource_filter/content/browser/verified_ruleset_dealer.cc b/components/subresource_filter/content/browser/verified_ruleset_dealer.cc ---- a/components/subresource_filter/content/browser/verified_ruleset_dealer.cc -+++ b/components/subresource_filter/content/browser/verified_ruleset_dealer.cc -@@ -38,6 +38,9 @@ RulesetFilePtr VerifiedRulesetDealer::OpenAndSetRulesetFile( - TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("loading"), - "VerifiedRulesetDealer::OpenAndSetRulesetFile", "file_valid", - file->IsValid()); -+ -+ LOG(INFO) << "OpenAndSetRulesetFile: " << file_path << " is valid: " << file->IsValid(); +diff --git a/components/subresource_filter/core/browser/ruleset_version.h b/components/subresource_filter/core/browser/ruleset_version.h +--- a/components/subresource_filter/core/browser/ruleset_version.h ++++ b/components/subresource_filter/core/browser/ruleset_version.h +@@ -53,6 +53,10 @@ struct UnindexedRulesetInfo { + // can be indicated not only by setting |license_path| to empty, but also by + // setting it to any non existent path. + base::FilePath license_path; + - if (file->IsValid()) { - SetRulesetFile(file->Duplicate()); - expected_checksum_ = expected_checksum; ++ // Whether to delete or not the ruleset path once done indexing; useful for disposal ++ // of temporary files. ++ bool delete_ruleset_path; + }; + + // Encapsulates the combination of the binary format version of the indexed diff --git a/components/subresource_filter/core/browser/subresource_filter_features.cc b/components/subresource_filter/core/browser/subresource_filter_features.cc --- a/components/subresource_filter/core/browser/subresource_filter_features.cc +++ b/components/subresource_filter/core/browser/subresource_filter_features.cc @@ -1967,6 +1954,19 @@ diff --git a/components/subresource_filter/core/browser/subresource_filter_featu return configs; } +diff --git a/components/subresource_filter/core/browser/verified_ruleset_dealer.cc b/components/subresource_filter/core/browser/verified_ruleset_dealer.cc +--- a/components/subresource_filter/core/browser/verified_ruleset_dealer.cc ++++ b/components/subresource_filter/core/browser/verified_ruleset_dealer.cc +@@ -38,6 +38,9 @@ RulesetFilePtr VerifiedRulesetDealer::OpenAndSetRulesetFile( + TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("loading"), + "VerifiedRulesetDealer::OpenAndSetRulesetFile", "file_valid", + file->IsValid()); ++ ++ LOG(INFO) << "OpenAndSetRulesetFile: " << file_path << " is valid: " << file->IsValid(); ++ + if (file->IsValid()) { + SetRulesetFile(file->Duplicate()); + expected_checksum_ = expected_checksum; diff --git a/components/subresource_filter/core/common/indexed_ruleset.cc b/components/subresource_filter/core/common/indexed_ruleset.cc --- a/components/subresource_filter/core/common/indexed_ruleset.cc +++ b/components/subresource_filter/core/common/indexed_ruleset.cc diff --git a/build/patches/Chrome-web-store-protection.patch b/build/patches/Chrome-web-store-protection.patch index b1f985bac..e452eaecd 100644 --- a/build/patches/Chrome-web-store-protection.patch +++ b/build/patches/Chrome-web-store-protection.patch @@ -156,7 +156,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_a 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 -@@ -60,6 +60,7 @@ +@@ -61,6 +61,7 @@ #include "extensions/browser/extension_system.h" #include "extensions/browser/extension_util.h" #include "extensions/common/extension.h" @@ -164,7 +164,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" -@@ -230,12 +231,16 @@ WebstorePrivateApi::Delegate* test_delegate = nullptr; +@@ -227,12 +228,16 @@ 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) { @@ -181,7 +181,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api profile->GetPrefs()->SetString(kWebstoreLogin, login); } -@@ -245,6 +250,8 @@ void RecordWebstoreExtensionInstallResult(bool success) { +@@ -242,6 +247,8 @@ void RecordWebstoreExtensionInstallResult(bool success) { api::webstore_private::ExtensionInstallStatus ConvertExtensionInstallStatusForAPI(ExtensionInstallStatus status) { @@ -190,7 +190,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api switch (status) { case kCanRequest: return api::webstore_private::ExtensionInstallStatus::kCanRequest; -@@ -1163,7 +1170,8 @@ ExtensionFunction::ResponseAction +@@ -1199,7 +1206,8 @@ ExtensionFunction::ResponseAction WebstorePrivateIsInIncognitoModeFunction::Run() { Profile* profile = Profile::FromBrowserContext(browser_context()); return RespondNow(ArgumentList(IsInIncognitoMode::Results::Create( @@ -200,7 +200,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api } WebstorePrivateIsPendingCustodianApprovalFunction:: -@@ -1262,11 +1270,14 @@ WebstorePrivateGetReferrerChainFunction::Run() { +@@ -1298,11 +1306,14 @@ WebstorePrivateGetReferrerChainFunction::Run() { request.mutable_referrer_chain_options()->set_recent_navigations_to_collect( recent_navigations_to_collect); @@ -260,7 +260,7 @@ diff --git a/chrome/browser/extensions/updater/chrome_extension_downloader_facto diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/browser/extensions/updater/extension_updater.cc --- a/chrome/browser/extensions/updater/extension_updater.cc +++ b/chrome/browser/extensions/updater/extension_updater.cc -@@ -43,6 +43,7 @@ +@@ -44,6 +44,7 @@ #include "extensions/browser/updater/extension_update_data.h" #include "extensions/common/constants.h" #include "extensions/common/extension.h" @@ -268,7 +268,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro #include "extensions/common/extension_set.h" #include "extensions/common/extension_updater_uma.h" #include "extensions/common/extension_urls.h" -@@ -197,6 +198,10 @@ void ExtensionUpdater::Start() { +@@ -198,6 +199,10 @@ void ExtensionUpdater::Start() { DCHECK(!weak_ptr_factory_.HasWeakPtrs()); DCHECK(registry_); alive_ = true; @@ -279,7 +279,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) -@@ -329,7 +334,8 @@ void ExtensionUpdater::AddToDownloader( +@@ -330,7 +335,8 @@ void ExtensionUpdater::AddToDownloader( const Extension& extension = **extension_iter; const ExtensionId& extension_id = extension.id(); if (!Manifest::IsAutoUpdateableLocation(extension.location())) { @@ -289,7 +289,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 -@@ -343,7 +349,7 @@ void ExtensionUpdater::AddToDownloader( +@@ -344,7 +350,7 @@ void ExtensionUpdater::AddToDownloader( continue; } @@ -298,7 +298,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro update_check_params->update_info[extension_id] = ExtensionUpdateData(); } else if (AddExtensionToDownloader(extension, request_id, fetch_priority)) { -@@ -381,6 +387,12 @@ bool ExtensionUpdater::AddExtensionToDownloader( +@@ -382,6 +388,12 @@ bool ExtensionUpdater::AddExtensionToDownloader( } void ExtensionUpdater::CheckNow(CheckParams params) { @@ -311,7 +311,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro if (params.ids.empty()) { // Checking all extensions. Cancel pending DoCheckSoon() call if there's // one, as it would be redundant. -@@ -389,7 +401,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -390,7 +402,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { int request_id = next_request_id_++; @@ -320,7 +320,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro if (params.ids.empty()) NotifyStarted(); -@@ -461,7 +473,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -462,7 +474,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { << " is not a corrupt reinstall"; update_check_params.update_info[pending_id] = ExtensionUpdateData(); } else if (!Manifest::IsAutoUpdateableLocation(info->install_source())) { @@ -329,7 +329,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 -@@ -471,7 +483,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -472,7 +484,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(); @@ -338,7 +338,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro update_check_params.update_info[pending_id].is_corrupt_reinstall = is_corrupt_reinstall; if (is_corrupt_reinstall) { -@@ -492,6 +504,8 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -493,6 +505,8 @@ void ExtensionUpdater::CheckNow(CheckParams params) { LOG(WARNING) << "Corrupt extension with id " << pending_id << " will be reinstalled with ExtensionDownloader."; } @@ -347,7 +347,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro } else { InstallStageTracker::Get(profile_)->ReportFailure( pending_id, -@@ -504,13 +518,6 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -505,13 +519,6 @@ void ExtensionUpdater::CheckNow(CheckParams params) { AddToDownloader(®istry_->disabled_extensions(), pending_ids, request_id, params.fetch_priority, &update_check_params); ExtensionSet remotely_disabled_extensions; @@ -361,7 +361,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 { -@@ -518,7 +525,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -519,7 +526,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { const Extension* extension = registry_->GetExtensionById(id, ExtensionRegistry::EVERYTHING); if (extension) { @@ -370,7 +370,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro update_check_params.update_info[id] = ExtensionUpdateData(); } else if (AddExtensionToDownloader(*extension, request_id, params.fetch_priority)) { -@@ -659,7 +666,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished( +@@ -660,7 +667,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished( file.extension_id, InstallStageTracker::Stage::INSTALLING); UpdatePingData(file.extension_id, ping); @@ -379,7 +379,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)); -@@ -670,6 +677,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished( +@@ -671,6 +678,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished( bool ExtensionUpdater::GetPingDataForExtension(const ExtensionId& id, DownloadPingData* ping_data) { @@ -387,7 +387,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)); -@@ -768,7 +776,7 @@ bool ExtensionUpdater::CanUseUpdateService( +@@ -769,7 +777,7 @@ bool ExtensionUpdater::CanUseUpdateService( void ExtensionUpdater::InstallCRXFile(FetchedCRXFile crx_file) { std::set request_ids; @@ -396,7 +396,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro << crx_file.info.path.value(); // The ExtensionService is now responsible for cleaning up the temp file -@@ -877,7 +885,7 @@ void ExtensionUpdater::NotifyIfFinished(int request_id) { +@@ -878,7 +886,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. @@ -408,7 +408,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 -@@ -80,6 +80,8 @@ class ExtensionUpdater : public ExtensionDownloaderDelegate { +@@ -81,6 +81,8 @@ class ExtensionUpdater : public ExtensionDownloaderDelegate { // right away. bool install_immediately = false; @@ -417,7 +417,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. -@@ -327,6 +329,8 @@ class ExtensionUpdater : public ExtensionDownloaderDelegate { +@@ -328,6 +330,8 @@ class ExtensionUpdater : public ExtensionDownloaderDelegate { base::TimeDelta frequency_; bool will_check_soon_ = false; @@ -1057,7 +1057,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro diff --git a/extensions/browser/updater/extension_downloader.h b/extensions/browser/updater/extension_downloader.h --- a/extensions/browser/updater/extension_downloader.h +++ b/extensions/browser/updater/extension_downloader.h -@@ -112,7 +112,6 @@ class ExtensionDownloader { +@@ -113,7 +113,6 @@ class ExtensionDownloader { } void set_ping_enabled_domain(const std::string& domain) { @@ -1099,7 +1099,7 @@ diff --git a/extensions/browser/updater/manifest_fetch_data.cc b/extensions/brow diff --git a/extensions/browser/updater/safe_manifest_parser.cc b/extensions/browser/updater/safe_manifest_parser.cc --- a/extensions/browser/updater/safe_manifest_parser.cc +++ b/extensions/browser/updater/safe_manifest_parser.cc -@@ -202,6 +202,7 @@ void ParseXmlDone(ParseUpdateManifestCallback callback, +@@ -203,6 +203,7 @@ void ParseXmlDone(ParseUpdateManifestCallback callback, std::move(callback).Run(/*results=*/nullptr, std::move(error)); }); diff --git a/build/patches/Client-hints-overrides.patch b/build/patches/Client-hints-overrides.patch index f70656618..379908ce5 100644 --- a/build/patches/Client-hints-overrides.patch +++ b/build/patches/Client-hints-overrides.patch @@ -89,7 +89,7 @@ diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/clie diff --git a/content/browser/loader/navigation_url_loader_impl.cc b/content/browser/loader/navigation_url_loader_impl.cc --- a/content/browser/loader/navigation_url_loader_impl.cc +++ b/content/browser/loader/navigation_url_loader_impl.cc -@@ -1091,6 +1091,11 @@ void NavigationURLLoaderImpl::OnAcceptCHFrameReceived( +@@ -1179,6 +1179,11 @@ void NavigationURLLoaderImpl::OnAcceptCHFrameReceived( return; } @@ -235,8 +235,8 @@ diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.cc b/thir 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 -@@ -499,6 +499,10 @@ - name: "ByobFetch", +@@ -332,6 +332,10 @@ + name: "AsyncClipboardImplicitPermission", status: "stable", }, + { @@ -244,6 +244,6 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 + status: "experimental", // in bromite + }, { - name: "CacheStorageCodeCacheHint", - origin_trial_feature_name: "CacheStorageCodeCacheHint", + name: "AttributionReporting", + origin_trial_feature_name: "PrivacySandboxAdsAPIs", -- diff --git a/build/patches/Compress-libchrome-to-free-up-some-space.patch b/build/patches/Compress-libchrome-to-free-up-some-space.patch index e97e85563..c2169b983 100644 --- a/build/patches/Compress-libchrome-to-free-up-some-space.patch +++ b/build/patches/Compress-libchrome-to-free-up-some-space.patch @@ -13,7 +13,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/android/chrome_public_apk_tmpl.gni b/chrome/android/chrome_public_apk_tmpl.gni --- a/chrome/android/chrome_public_apk_tmpl.gni +++ b/chrome/android/chrome_public_apk_tmpl.gni -@@ -642,6 +642,7 @@ template("chrome_common_apk_or_module_tmpl") { +@@ -663,6 +663,7 @@ template("chrome_common_apk_or_module_tmpl") { [ "//components/crash/core/app:chrome_crashpad_handler_named_as_so" ] loadable_modules += [ "$root_out_dir/libchrome_crashpad_handler.so" ] library_always_compress += [ "libchrome_crashpad_handler.so" ] diff --git a/build/patches/Content-settings-infrastructure.patch b/build/patches/Content-settings-infrastructure.patch index c49add3ee..c704b6fab 100644 --- a/build/patches/Content-settings-infrastructure.patch +++ b/build/patches/Content-settings-infrastructure.patch @@ -12,7 +12,6 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html Require: bromite-build-utils.patch --- .../ChromeSiteSettingsDelegate.java | 17 +- - .../installable/installed_webapp_bridge.cc | 2 +- .../settings/privacy_page/privacy_page.html | 1 + .../settings/privacy_page/privacy_page.ts | 77 +++- chrome/browser/resources/settings/route.ts | 2 + @@ -32,9 +31,8 @@ Require: bromite-build-utils.patch .../views/page_info/page_info_view_factory.h | 3 + .../page_info/permission_toggle_row_view.cc | 163 ++++++- .../page_info/permission_toggle_row_view.h | 18 +- - .../privacy_sandbox_internals_handler.cc | 2 +- .../settings_localized_strings_provider.cc | 54 +++ - .../ui/webui/settings/site_settings_helper.cc | 34 +- + .../ui/webui/settings/site_settings_helper.cc | 32 +- .../browser_ui/settings/android/BUILD.gn | 1 + .../preference_spinner_single_widget.xml | 92 ++++ .../settings/SpinnerPreference.java | 24 + @@ -45,13 +43,13 @@ Require: bromite-build-utils.patch ...tomTriStateSiteSettingsPreferenceImpl.java | 24 + .../ContentSettingsResources.java | 16 +- .../site_settings/SingleCategorySettings.java | 50 ++- - .../site_settings/SingleWebsiteSettings.java | 58 ++- + .../site_settings/SingleWebsiteSettings.java | 54 ++- .../site_settings/SiteSettings.java | 31 +- .../site_settings/SiteSettingsCategory.java | 18 +- .../site_settings/SiteSettingsDelegate.java | 2 + .../TriStateSiteSettingsPreference.java | 13 +- .../browser_ui/site_settings/Website.java | 6 +- - .../WebsitePermissionsFetcher.java | 4 +- + .../WebsitePermissionsFetcher.java | 2 +- .../WebsitePreferenceBridge.java | 3 +- .../impl/include_all_directory.java | 1 + ...miteCustomContentSettingImplBase.java.tmpl | 48 ++ @@ -60,7 +58,7 @@ Require: bromite-build-utils.patch .../content_settings/core/browser/BUILD.gn | 7 + .../bromite_content_settings/placeholder.txt | 1 + .../core/browser/content_settings_registry.cc | 2 + - .../core/browser/content_settings_uma_util.cc | 3 +- + .../core/browser/content_settings_uma_util.cc | 1 + .../core/browser/content_settings_utils.cc | 12 + .../core/browser/website_settings_info.h | 38 ++ .../core/browser/website_settings_registry.cc | 6 + @@ -72,8 +70,7 @@ Require: bromite-build-utils.patch .../core/common/content_settings.mojom | 6 + .../common/content_settings_mojom_traits.cc | 12 +- .../common/content_settings_mojom_traits.h | 24 + - .../common/content_settings_param_traits.h | 2 +- - .../core/common/content_settings_types.mojom | 4 +- + .../core/common/content_settings_types.mojom | 2 + .../renderer/content_settings_agent_impl.cc | 33 ++ .../renderer/content_settings_agent_impl.h | 5 + .../PageInfoPermissionsController.java | 9 + @@ -85,7 +82,7 @@ Require: bromite-build-utils.patch .../platform/web_content_settings_client.h | 5 + .../execution_context/execution_context.cc | 16 + .../execution_context/execution_context.h | 5 + - 74 files changed, 1833 insertions(+), 86 deletions(-) + 71 files changed, 1824 insertions(+), 77 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 @@ -99,8 +96,8 @@ Require: bromite-build-utils.patch diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java -@@ -58,6 +58,10 @@ import org.chromium.url.GURL; - +@@ -60,6 +60,10 @@ import org.chromium.url.GURL; + import java.util.Map; import java.util.Set; +import android.content.Intent; @@ -110,7 +107,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/C /** A SiteSettingsDelegate instance that contains Chrome-specific Site Settings logic. */ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { public static final String EMBEDDED_CONTENT_HELP_CENTER_URL = -@@ -199,7 +203,7 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { +@@ -198,7 +202,7 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { @Override public boolean isHelpAndFeedbackEnabled() { @@ -119,7 +116,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/C } @Override -@@ -312,6 +316,17 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { +@@ -311,6 +315,17 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { return PrivacySandboxBridge.getFirstPartySetOwner(memberOrigin); } @@ -137,24 +134,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/C @Override public boolean canLaunchClearBrowsingDataDialog() { return true; -diff --git a/chrome/browser/installable/installed_webapp_bridge.cc b/chrome/browser/installable/installed_webapp_bridge.cc ---- a/chrome/browser/installable/installed_webapp_bridge.cc -+++ b/chrome/browser/installable/installed_webapp_bridge.cc -@@ -18,7 +18,7 @@ using base::android::ScopedJavaLocalRef; - static void JNI_InstalledWebappBridge_NotifyPermissionsChange(JNIEnv* env, - jlong j_provider, - int type) { -- DCHECK_LT(type, static_cast(ContentSettingsType::NUM_TYPES)); -+ DCHECK_LT(type, static_cast(ContentSettingsType::NUM_TYPES_BROMITE)); - InstalledWebappProvider* provider = - reinterpret_cast(j_provider); - provider->Notify(static_cast(type)); 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 -@@ -1369,4 +1369,5 @@ +@@ -1385,4 +1385,5 @@ - + +
@@ -264,9 +249,9 @@ diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resourc /** * Add all of the child routes that originate from the privacy route, -@@ -141,6 +142,7 @@ function addPrivacyChildRoutes(r: Partial) { - r.SITE_SETTINGS_STORAGE_ACCESS = - r.SITE_SETTINGS.createChild('storageAccess'); +@@ -142,6 +143,7 @@ function addPrivacyChildRoutes(r: Partial) { + r.SITE_SETTINGS_AUTOMATIC_FULLSCREEN = + r.SITE_SETTINGS.createChild('automaticFullscreen'); } + setupContentSettingsRoutes(r); } @@ -296,7 +281,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d diff --git a/chrome/browser/resources/settings/site_settings/settings_category_default_radio_group.ts b/chrome/browser/resources/settings/site_settings/settings_category_default_radio_group.ts --- a/chrome/browser/resources/settings/site_settings/settings_category_default_radio_group.ts +++ b/chrome/browser/resources/settings/site_settings/settings_category_default_radio_group.ts -@@ -30,6 +30,7 @@ import {ContentSettingProvider} from './site_settings_prefs_browser_proxy.js'; +@@ -31,6 +31,7 @@ import {ContentSettingProvider} from './site_settings_prefs_browser_proxy.js'; export enum SiteContentRadioSetting { DISABLED = 0, ENABLED = 1, @@ -304,7 +289,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d } export interface SettingsCategoryDefaultRadioGroupElement { -@@ -77,6 +78,10 @@ export class SettingsCategoryDefaultRadioGroupElement extends +@@ -79,6 +80,10 @@ export class SettingsCategoryDefaultRadioGroupElement extends blockOptionSubLabel: String, blockOptionIcon: String, @@ -315,7 +300,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d siteContentRadioSettingEnum_: { type: Object, value: SiteContentRadioSetting, -@@ -112,6 +117,9 @@ export class SettingsCategoryDefaultRadioGroupElement extends +@@ -114,6 +119,9 @@ export class SettingsCategoryDefaultRadioGroupElement extends blockOptionLabel: string; blockOptionSubLabel: string; blockOptionIcon: string; @@ -325,7 +310,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d private pref_: chrome.settingsPrivate.PrefObject; override ready() { -@@ -122,6 +130,13 @@ export class SettingsCategoryDefaultRadioGroupElement extends +@@ -124,6 +132,13 @@ export class SettingsCategoryDefaultRadioGroupElement extends (category: ContentSettingsTypes) => this.onCategoryChanged_(category)); } @@ -339,7 +324,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d private getAllowOptionForCategory_(): ContentSetting { switch (this.category) { case ContentSettingsTypes.ADS: -@@ -163,6 +178,8 @@ export class SettingsCategoryDefaultRadioGroupElement extends +@@ -166,6 +181,8 @@ export class SettingsCategoryDefaultRadioGroupElement extends // "Ask" vs "Blocked". return ContentSetting.ASK; default: @@ -348,7 +333,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d assertNotReached('Invalid category: ' + this.category); } } -@@ -187,6 +204,7 @@ export class SettingsCategoryDefaultRadioGroupElement extends +@@ -190,6 +207,7 @@ export class SettingsCategoryDefaultRadioGroupElement extends /** @type {!ContentSetting} */ (this.getAllowOptionForCategory_()); this.browserProxy.setDefaultValueForContentType( this.category, @@ -356,7 +341,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d this.categoryEnabled_ ? allowOption : ContentSetting.BLOCK); } -@@ -218,7 +236,9 @@ export class SettingsCategoryDefaultRadioGroupElement extends +@@ -221,7 +239,9 @@ export class SettingsCategoryDefaultRadioGroupElement extends } const enabled = this.computeIsSettingEnabled(update.setting); @@ -370,8 +355,8 @@ 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 -@@ -282,4 +282,5 @@ - label="$i18n{siteSettingsAutoPictureInPicture}"> +@@ -289,4 +289,5 @@ + label="$i18n{siteSettingsAutomaticFullscreen}"> +
@@ -589,7 +574,7 @@ diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_ { route: routes.SITE_SETTINGS_ADS, id: Id.ADS, -@@ -391,10 +391,36 @@ function getCategoryItemMap(): Map { +@@ -398,10 +398,36 @@ function getCategoryItemMap(): Map { disabledLabel: 'trackingProtectionLinkRowSubLabel', }); } @@ -626,7 +611,7 @@ diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_ function buildItemListFromIds(orderedIdList: ContentSettingsTypes[]): CategoryListItem[] { const map = getCategoryItemMap(); -@@ -486,7 +512,7 @@ export class SettingsSiteSettingsPageElement extends +@@ -484,7 +510,7 @@ export class SettingsSiteSettingsPageElement extends Id.IMAGES, Id.POPUPS, ]), @@ -693,7 +678,7 @@ diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_ /** * Determine localization string for i18n for a given content settings type. * Sorted alphabetically by |ContentSettingsType|. -@@ -92,6 +140,13 @@ export function getLocalizationStringForContentType( +@@ -94,6 +142,13 @@ export function getLocalizationStringForContentType( case ContentSettingsTypes.SITE_DATA: return null; default: @@ -710,7 +695,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 -@@ -2043,6 +2043,7 @@ static_library("ui") { +@@ -2069,6 +2069,7 @@ static_library("ui") { "//components/commerce/core:shopping_service", "//components/commerce/core/webui", "//components/endpoint_fetcher:endpoint_fetcher", @@ -721,7 +706,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn diff --git a/chrome/browser/ui/views/controls/rich_controls_container_view.h b/chrome/browser/ui/views/controls/rich_controls_container_view.h --- a/chrome/browser/ui/views/controls/rich_controls_container_view.h +++ b/chrome/browser/ui/views/controls/rich_controls_container_view.h -@@ -43,6 +43,13 @@ class RichControlsContainerView : public views::FlexLayoutView { +@@ -45,6 +45,13 @@ class RichControlsContainerView : public views::FlexLayoutView { return AddChildView(std::move(control_view)); } @@ -808,7 +793,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_main_view.cc b/chrome/b diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.cc b/chrome/browser/ui/views/page_info/page_info_view_factory.cc --- a/chrome/browser/ui/views/page_info/page_info_view_factory.cc +++ b/chrome/browser/ui/views/page_info/page_info_view_factory.cc -@@ -25,6 +25,8 @@ +@@ -26,6 +26,8 @@ #include "chrome/browser/ui/views/page_info/page_info_navigation_handler.h" #include "chrome/browser/ui/views/page_info/page_info_permission_content_view.h" #include "chrome/browser/ui/views/page_info/page_info_security_content_view.h" @@ -817,7 +802,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.cc b/chrom #include "components/page_info/core/features.h" #include "components/page_info/core/proto/about_this_site_metadata.pb.h" #include "components/page_info/page_info.h" -@@ -254,7 +256,13 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon( +@@ -256,7 +258,13 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon( ContentSetting setting = info.setting == CONTENT_SETTING_DEFAULT ? info.default_setting : info.setting; @@ -831,7 +816,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.cc b/chrom // For guard content settings and Automatic Picture-in-Picture, ASK is treated // as an "on" state. const bool show_blocked_badge = -@@ -509,6 +517,17 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon( +@@ -521,6 +529,17 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon( icon = &kFullscreenIcon; break; default: @@ -852,9 +837,9 @@ 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 -@@ -83,6 +83,9 @@ class PageInfoViewFactory { - static const ui::ImageModel GetPermissionIcon( - const PageInfo::PermissionInfo& info); +@@ -87,6 +87,9 @@ class PageInfoViewFactory { + const PageInfo::PermissionInfo& info, + bool blocked_on_system_level = false); + static const ui::ImageModel GetPermissionIcon( + const PageInfo::PermissionInfo& info, ContentSetting setting); @@ -865,8 +850,8 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.h b/chrome diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc --- a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc +++ b/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc -@@ -35,6 +35,30 @@ - #include "ui/views/controls/label.h" +@@ -37,6 +37,30 @@ + #include "ui/views/controls/styled_label.h" #include "ui/views/style/typography.h" #include "ui/views/view_class_properties.h" +#include "components/content_settings/core/browser/content_settings_registry.h" @@ -896,7 +881,7 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/c PermissionToggleRowView::PermissionToggleRowView( ChromePageInfoUiDelegate* delegate, -@@ -48,16 +72,12 @@ PermissionToggleRowView::PermissionToggleRowView( +@@ -50,16 +74,12 @@ PermissionToggleRowView::PermissionToggleRowView( // instead of adding it as the only child. SetUseDefaultFillLayout(true); row_view_ = AddChildView(std::make_unique()); @@ -914,7 +899,7 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/c if (permission.requesting_origin.has_value()) { std::u16string requesting_origin_string; switch (permission.type) { -@@ -115,6 +135,90 @@ void PermissionToggleRowView::PermissionChanged() { +@@ -143,6 +163,90 @@ void PermissionToggleRowView::PermissionChanged() { } } @@ -1005,7 +990,7 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/c void PermissionToggleRowView::OnToggleButtonPressed() { PageInfoUI::ToggleBetweenAllowAndBlock(permission_); PermissionChanged(); -@@ -123,24 +227,19 @@ void PermissionToggleRowView::OnToggleButtonPressed() { +@@ -151,24 +255,19 @@ void PermissionToggleRowView::OnToggleButtonPressed() { void PermissionToggleRowView::InitForUserSource( bool should_show_spacer_view, const std::u16string& toggle_accessible_name) { @@ -1036,8 +1021,8 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/c + choose_button_ = row_view_->AddControlUnderLabel(std::move(toggle_button)); const int icon_size = GetLayoutConstant(PAGE_INFO_ICON_SIZE); - // TODO(crbug.com/1011533): Remove separate handling of -@@ -187,9 +286,6 @@ void PermissionToggleRowView::InitForUserSource( + // TODO(crbug.com/1011533): Update below code to only display the updated +@@ -226,9 +325,6 @@ void PermissionToggleRowView::InitForUserSource( auto spacer_view = std::make_unique(); spacer_view->SetPreferredSize(gfx::Size(icon_size, icon_size)); spacer_view_ = row_view_->AddControl(std::move(spacer_view)); @@ -1047,7 +1032,7 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/c } } } -@@ -245,6 +341,33 @@ void PermissionToggleRowView::UpdateUiOnPermissionChanged() { +@@ -286,6 +382,33 @@ void PermissionToggleRowView::UpdateUiOnPermissionChanged() { state_label_ = row_view_->AddSecondaryLabel(state_text); } } @@ -1119,7 +1104,7 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.h b/ch void OnToggleButtonPressed(); void InitForUserSource(bool should_show_spacer_view, const std::u16string& toggle_accessible_name); -@@ -68,6 +80,10 @@ class PermissionToggleRowView : public views::View { +@@ -69,6 +81,10 @@ class PermissionToggleRowView : public views::View { raw_ptr toggle_button_ = nullptr; raw_ptr spacer_view_ = nullptr; @@ -1130,18 +1115,6 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.h b/ch raw_ptr delegate_ = nullptr; raw_ptr navigation_handler_ = nullptr; -diff --git a/chrome/browser/ui/webui/privacy_sandbox/privacy_sandbox_internals_handler.cc b/chrome/browser/ui/webui/privacy_sandbox/privacy_sandbox_internals_handler.cc ---- a/chrome/browser/ui/webui/privacy_sandbox/privacy_sandbox_internals_handler.cc -+++ b/chrome/browser/ui/webui/privacy_sandbox/privacy_sandbox_internals_handler.cc -@@ -41,7 +41,7 @@ void PrivacySandboxInternalsHandler::ReadPref(const std::string& pref_name, - void PrivacySandboxInternalsHandler::ReadContentSettings( - const ContentSettingsType type, - ReadContentSettingsCallback callback) { -- if (!IsKnownEnumValue(type) || type == ContentSettingsType::NUM_TYPES) { -+ if (!IsKnownEnumValue(type) || type == ContentSettingsType::NUM_TYPES_BROMITE) { - mojo::ReportBadMessage( - "ReadContentSettings received invalid ContentSettingsType"); - return; 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 @@ -1163,7 +1136,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" -@@ -3789,6 +3793,56 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, +@@ -3785,6 +3789,56 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, policy_indicator::AddLocalizedStrings(html_source); AddSecurityKeysStrings(html_source); @@ -1223,7 +1196,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/browser/ui/webui/settings/site_settings_helper.cc --- a/chrome/browser/ui/webui/settings/site_settings_helper.cc +++ b/chrome/browser/ui/webui/settings/site_settings_helper.cc -@@ -42,6 +42,8 @@ +@@ -43,6 +43,8 @@ #include "chrome/common/url_constants.h" #include "chrome/grit/generated_resources.h" #include "components/content_settings/core/browser/host_content_settings_map.h" @@ -1232,16 +1205,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_utils.h" -@@ -219,7 +221,7 @@ const ContentSettingsTypeNameEntry kContentSettingsTypeGroupNames[] = { - - static_assert(std::size(kContentSettingsTypeGroupNames) == - // ContentSettingsType starts at -1, so add 1 here. -- static_cast(ContentSettingsType::NUM_TYPES) + 1, -+ static_cast(ContentSettingsType::NUM_TYPES_CHROMIUM) + 1, - "kContentSettingsTypeGroupNames should have " - "CONTENT_SETTINGS_NUM_TYPES elements"); - -@@ -471,6 +473,13 @@ bool HasRegisteredGroupName(ContentSettingsType type) { +@@ -476,6 +478,13 @@ bool HasRegisteredGroupName(ContentSettingsType type) { return true; } } @@ -1255,7 +1219,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b return false; } -@@ -484,11 +493,24 @@ ContentSettingsType ContentSettingsTypeFromGroupName(base::StringPiece name) { +@@ -489,11 +498,24 @@ ContentSettingsType ContentSettingsTypeFromGroupName(base::StringPiece name) { return entry.type; } } @@ -1281,7 +1245,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 -@@ -503,7 +525,6 @@ base::StringPiece ContentSettingsTypeToGroupName(ContentSettingsType type) { +@@ -508,7 +530,6 @@ base::StringPiece ContentSettingsTypeToGroupName(ContentSettingsType type) { return entry.name ? entry.name : base::StringPiece(); } } @@ -1289,7 +1253,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."; return base::StringPiece(); -@@ -587,6 +608,13 @@ const std::vector& GetVisiblePermissionCategories() { +@@ -594,6 +615,13 @@ std::vector GetVisiblePermissionCategories( base_types->push_back(ContentSettingsType::SPEAKER_SELECTION); } @@ -1469,7 +1433,7 @@ diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/browser_ui/site_settings/android/BUILD.gn --- a/components/browser_ui/site_settings/android/BUILD.gn +++ b/components/browser_ui/site_settings/android/BUILD.gn -@@ -141,6 +141,23 @@ android_library("java") { +@@ -142,6 +142,23 @@ android_library("java") { ":site_settings_jni_headers", "//components/content_settings/android:java_pref_names_srcjar", ] @@ -1493,7 +1457,7 @@ diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/b } android_library("javatests") { -@@ -186,6 +203,7 @@ robolectric_library("junit") { +@@ -187,6 +204,7 @@ robolectric_library("junit") { } android_resources("java_resources") { @@ -2408,15 +2372,6 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } if (isSessionPermission(contentType)) { switchPreference.setSummary(switchPreference.getSummary() + " " + -@@ -1250,7 +1276,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment - if (mPreferenceMap == null) { - mPreferenceMap = new HashMap<>(); - for (@ContentSettingsType.EnumType int type = 0; -- type < ContentSettingsType.NUM_TYPES; -+ type < ContentSettingsType.NUM_TYPES_BROMITE; - type++) { - String key = getPreferenceKey(type); - if (key != null) { @@ -1288,14 +1314,20 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment permission = (Boolean) newValue ? ContentSettingValues.ALLOW : ContentSettingValues.BLOCK; @@ -2440,15 +2395,6 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c preference.setIcon(getContentSettingsIcon(type, permission)); if (mWebsiteSettingsObserver != null) { -@@ -1324,7 +1356,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment - // for its logic. This class should maintain its own data model, and only update the screen - // after a change is made. - for (@ContentSettingsType.EnumType int type = 0; -- type < ContentSettingsType.NUM_TYPES; -+ type < ContentSettingsType.NUM_TYPES_BROMITE; - type++) { - String key = getPreferenceKey(type); - if (key != null) { diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettings.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettings.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettings.java @@ -2587,7 +2533,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsDelegate.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsDelegate.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsDelegate.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsDelegate.java -@@ -149,6 +149,8 @@ public interface SiteSettingsDelegate { +@@ -150,6 +150,8 @@ public interface SiteSettingsDelegate { */ String getFirstPartySetOwner(String memberOrigin); @@ -2659,7 +2605,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java -@@ -108,7 +108,7 @@ public class WebsitePermissionsFetcher { +@@ -102,7 +102,7 @@ public class WebsitePermissionsFetcher { case ContentSettingsType.USB_GUARD: return WebsitePermissionsType.CHOSEN_OBJECT_INFO; default: @@ -2668,15 +2614,6 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } } -@@ -220,7 +220,7 @@ public class WebsitePermissionsFetcher { - addFetcherForStorage(queue); - queue.add(new CookiesInfoFetcher()); - for (@ContentSettingsType.EnumType int type = 0; -- type < ContentSettingsType.NUM_TYPES; -+ type < ContentSettingsType.NUM_TYPES_BROMITE; - type++) { - addFetcherForContentSettingsType(queue, type); - } diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java @@ -2765,7 +2702,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 -@@ -57,6 +57,7 @@ android_library("content_settings_enums_java") { +@@ -58,6 +58,7 @@ android_library("content_settings_enums_java") { } java_cpp_enum("content_settings_enums_javagen") { @@ -2807,9 +2744,9 @@ diff --git a/components/content_settings/core/browser/content_settings_registry. namespace content_settings { -@@ -730,6 +731,7 @@ void ContentSettingsRegistry::Init() { - WebsiteSettingsRegistry::ALL_PLATFORMS, - ContentSettingsInfo::INHERIT_IF_LESS_PERMISSIVE, +@@ -750,6 +751,7 @@ void ContentSettingsRegistry::Init() { + WebsiteSettingsRegistry::DESKTOP, + ContentSettingsInfo::INHERIT_IN_INCOGNITO, ContentSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY); +#include "components/content_settings/core/browser/bromite_content_settings.inc" } @@ -2818,17 +2755,14 @@ 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 -@@ -187,8 +187,9 @@ void RecordContentSettingsHistogram(const std::string& name, +@@ -190,6 +190,7 @@ void RecordContentSettingsHistogram(const std::string& name, } int ContentSettingTypeToHistogramValue(ContentSettingsType content_setting) { + if ((true)) return 0; - static_assert(kHistogramValue.size() == -- static_cast(ContentSettingsType::NUM_TYPES), -+ static_cast(ContentSettingsType::NUM_TYPES_CHROMIUM), - "Update content settings histogram lookup"); - - auto* found = kHistogramValue.find(content_setting); + static_assert( + kHistogramValue.size() == + // DEFAULT is not in the histogram, so we want [0, kMaxValue] diff --git a/components/content_settings/core/browser/content_settings_utils.cc b/components/content_settings/core/browser/content_settings_utils.cc --- a/components/content_settings/core/browser/content_settings_utils.cc +++ b/components/content_settings/core/browser/content_settings_utils.cc @@ -2943,7 +2877,7 @@ diff --git a/components/content_settings/core/browser/website_settings_registry. diff --git a/components/content_settings/core/common/BUILD.gn b/components/content_settings/core/common/BUILD.gn --- a/components/content_settings/core/common/BUILD.gn +++ b/components/content_settings/core/common/BUILD.gn -@@ -57,6 +57,13 @@ static_library("common") { +@@ -55,6 +55,13 @@ static_library("common") { "//net", "//url", ] @@ -2966,7 +2900,7 @@ new file mode 100644 diff --git a/components/content_settings/core/common/content_settings.cc b/components/content_settings/core/common/content_settings.cc --- a/components/content_settings/core/common/content_settings.cc +++ b/components/content_settings/core/common/content_settings.cc -@@ -15,6 +15,7 @@ +@@ -16,6 +16,7 @@ #include "components/content_settings/core/common/content_settings_metadata.h" #include "components/content_settings/core/common/content_settings_types.h" #include "components/content_settings/core/common/content_settings_utils.h" @@ -2974,7 +2908,7 @@ diff --git a/components/content_settings/core/common/content_settings.cc b/compo namespace { -@@ -103,6 +104,13 @@ std::ostream& operator<<(std::ostream& os, +@@ -104,6 +105,13 @@ std::ostream& operator<<(std::ostream& os, // static bool RendererContentSettingRules::IsRendererContentSetting( ContentSettingsType content_type) { @@ -2988,7 +2922,7 @@ diff --git a/components/content_settings/core/common/content_settings.cc b/compo return content_type == ContentSettingsType::IMAGES || content_type == ContentSettingsType::JAVASCRIPT || content_type == ContentSettingsType::POPUPS || -@@ -112,6 +120,9 @@ bool RendererContentSettingRules::IsRendererContentSetting( +@@ -113,6 +121,9 @@ bool RendererContentSettingRules::IsRendererContentSetting( void RendererContentSettingRules::FilterRulesByOutermostMainFrameURL( const GURL& outermost_main_frame_url) { @@ -2998,7 +2932,7 @@ diff --git a/components/content_settings/core/common/content_settings.cc b/compo FilterRulesForType(image_rules, outermost_main_frame_url); FilterRulesForType(script_rules, outermost_main_frame_url); FilterRulesForType(popup_redirect_rules, outermost_main_frame_url); -@@ -143,3 +154,10 @@ bool RendererContentSettingRules::operator==( +@@ -144,3 +155,10 @@ bool RendererContentSettingRules::operator==( other.popup_redirect_rules, other.mixed_content_rules, other.auto_dark_content_rules); } @@ -3036,7 +2970,7 @@ diff --git a/components/content_settings/core/common/content_settings.h b/compon diff --git a/components/content_settings/core/common/content_settings.mojom b/components/content_settings/core/common/content_settings.mojom --- a/components/content_settings/core/common/content_settings.mojom +++ b/components/content_settings/core/common/content_settings.mojom -@@ -78,6 +78,11 @@ struct RuleMetaData { +@@ -70,6 +70,11 @@ struct RuleMetaData { TpcdMetadataRuleSource tpcd_metadata_rule_source; }; @@ -3048,7 +2982,7 @@ diff --git a/components/content_settings/core/common/content_settings.mojom b/co // This mirrors the C++ type in content_settings.h. struct ContentSettingPatternSource { ContentSettingsPattern primary_pattern; -@@ -91,6 +96,7 @@ struct ContentSettingPatternSource { +@@ -83,6 +88,7 @@ struct ContentSettingPatternSource { // This mirrors the C++ type in content_settings.h. // TODO(https://crbug.com/1485360): This should be removed. struct RendererContentSettingRules { @@ -3059,7 +2993,7 @@ diff --git a/components/content_settings/core/common/content_settings.mojom b/co diff --git a/components/content_settings/core/common/content_settings_mojom_traits.cc b/components/content_settings/core/common/content_settings_mojom_traits.cc --- a/components/content_settings/core/common/content_settings_mojom_traits.cc +++ b/components/content_settings/core/common/content_settings_mojom_traits.cc -@@ -155,12 +155,22 @@ bool StructTraitsmetadata) && data.ReadSource(&out->source); } @@ -3086,7 +3020,7 @@ diff --git a/components/content_settings/core/common/content_settings_mojom_trai diff --git a/components/content_settings/core/common/content_settings_mojom_traits.h b/components/content_settings/core/common/content_settings_mojom_traits.h --- a/components/content_settings/core/common/content_settings_mojom_traits.h +++ b/components/content_settings/core/common/content_settings_mojom_traits.h -@@ -174,10 +174,34 @@ struct StructTraits< +@@ -164,10 +164,34 @@ struct StructTraits< ContentSettingPatternSource* out); }; @@ -3121,34 +3055,20 @@ diff --git a/components/content_settings/core/common/content_settings_mojom_trai static const std::vector& image_rules( const RendererContentSettingRules& r) { return r.image_rules; -diff --git a/components/content_settings/core/common/content_settings_param_traits.h b/components/content_settings/core/common/content_settings_param_traits.h ---- a/components/content_settings/core/common/content_settings_param_traits.h -+++ b/components/content_settings/core/common/content_settings_param_traits.h -@@ -9,7 +9,7 @@ - #include "ipc/ipc_message_macros.h" - - IPC_ENUM_TRAITS_MAX_VALUE(ContentSettingsType, -- static_cast(ContentSettingsType::NUM_TYPES) - -+ static_cast(ContentSettingsType::NUM_TYPES_BROMITE) - - 1) - - #endif // COMPONENTS_CONTENT_SETTINGS_CORE_COMMON_CONTENT_SETTINGS_PARAM_TRAITS_H_ diff --git a/components/content_settings/core/common/content_settings_types.mojom b/components/content_settings/core/common/content_settings_types.mojom --- a/components/content_settings/core/common/content_settings_types.mojom +++ b/components/content_settings/core/common/content_settings_types.mojom -@@ -399,5 +399,7 @@ enum ContentSettingsType { - SPEAKER_SELECTION, - - -- NUM_TYPES, -+ NUM_TYPES_CHROMIUM, +@@ -408,4 +408,6 @@ enum ContentSettingsType { + // Pointer Lock API allows a site to hide the cursor and have exclusive access + // to mouse inputs. + POINTER_LOCK, ++ +#include "components/content_settings/core/common/bromite_content_settings.inc" -+ NUM_TYPES_BROMITE, }; diff --git a/components/content_settings/renderer/content_settings_agent_impl.cc b/components/content_settings/renderer/content_settings_agent_impl.cc --- a/components/content_settings/renderer/content_settings_agent_impl.cc +++ b/components/content_settings/renderer/content_settings_agent_impl.cc -@@ -200,6 +200,39 @@ void ContentSettingsAgentImpl::SendRendererContentSettingRules( +@@ -206,6 +206,39 @@ void ContentSettingsAgentImpl::SendRendererContentSettingRules( std::move(renderer_settings)); } @@ -3191,7 +3111,7 @@ diff --git a/components/content_settings/renderer/content_settings_agent_impl.cc diff --git a/components/content_settings/renderer/content_settings_agent_impl.h b/components/content_settings/renderer/content_settings_agent_impl.h --- a/components/content_settings/renderer/content_settings_agent_impl.h +++ b/components/content_settings/renderer/content_settings_agent_impl.h -@@ -76,6 +76,11 @@ class ContentSettingsAgentImpl +@@ -80,6 +80,11 @@ class ContentSettingsAgentImpl static mojom::ContentSettingsManager::StorageType ConvertToMojoStorageType( StorageType storage_type); @@ -3244,9 +3164,9 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp #include "components/content_settings/core/common/content_settings.h" #include "components/content_settings/core/common/content_settings_types.h" #include "components/page_info/android/jni_headers/PageInfoController_jni.h" -@@ -152,6 +153,15 @@ void PageInfoControllerAndroid::SetPermissionInfo( - permissions_to_display.push_back(ContentSettingsType::STORAGE_ACCESS); +@@ -149,6 +150,15 @@ void PageInfoControllerAndroid::SetPermissionInfo( } + permissions_to_display.push_back(ContentSettingsType::STORAGE_ACCESS); + content_settings::WebsiteSettingsRegistry* website_settings = + content_settings::WebsiteSettingsRegistry::GetInstance(); @@ -3260,7 +3180,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp std::map user_specified_settings_to_display; std::map -@@ -211,6 +221,14 @@ std::optional PageInfoControllerAndroid::GetSettingToDisplay( +@@ -208,6 +218,14 @@ std::optional PageInfoControllerAndroid::GetSettingToDisplay( return permission.setting; } @@ -3286,7 +3206,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" -@@ -1225,6 +1226,14 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, +@@ -1219,6 +1220,14 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, // applies to permissions listed in |kPermissionType|. bool PageInfo::ShouldShowPermission( const PageInfo::PermissionInfo& info) const { @@ -3301,7 +3221,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) { -@@ -1331,7 +1340,19 @@ void PageInfo::PresentSitePermissions() { +@@ -1325,7 +1334,19 @@ void PageInfo::PresentSitePermissions() { HostContentSettingsMap* content_settings = GetContentSettings(); DCHECK(web_contents_); @@ -3359,7 +3279,7 @@ diff --git a/components/page_info/page_info_ui.cc b/components/page_info/page_in for (const PermissionUIInfo& info : GetContentSettingsUIInfo()) { if (info.type == type) return l10n_util::GetStringUTF16(info.string_id_mid_sentence); -@@ -1060,6 +1073,11 @@ bool PageInfoUI::ContentSettingsTypeInPageInfo(ContentSettingsType type) { +@@ -1063,6 +1076,11 @@ bool PageInfoUI::ContentSettingsTypeInPageInfo(ContentSettingsType type) { if (info.type == type) return true; } @@ -3392,17 +3312,17 @@ diff --git a/third_party/blink/public/platform/web_content_settings_client.h b/t #include "third_party/blink/public/common/client_hints/enabled_client_hints.h" #include "third_party/blink/public/mojom/navigation/renderer_content_settings.mojom.h" -@@ -51,6 +52,10 @@ class WebContentSettingsClient { - return enabled_per_settings; - } +@@ -46,6 +47,10 @@ class WebContentSettingsClient { + // Blocks until done. + virtual bool AllowStorageAccessSync(StorageType storage_type) { return true; } + virtual bool AllowContentSetting(ContentSettingsType type, bool enabled_per_settings) { + return enabled_per_settings; + } + - // Controls whether scripts are allowed to execute for this frame. - virtual bool AllowScript(bool enabled_per_settings) { - return enabled_per_settings; + // Controls whether insecure scripts are allowed to execute for this frame. + virtual bool AllowRunningInsecureContent(bool enabled_per_settings, + const WebURL&) { diff --git a/third_party/blink/renderer/core/execution_context/execution_context.cc b/third_party/blink/renderer/core/execution_context/execution_context.cc --- a/third_party/blink/renderer/core/execution_context/execution_context.cc +++ b/third_party/blink/renderer/core/execution_context/execution_context.cc diff --git a/build/patches/Cromite-Branding.patch b/build/patches/Cromite-Branding.patch index 00bd6fcae..11ae3fac4 100644 --- a/build/patches/Cromite-Branding.patch +++ b/build/patches/Cromite-Branding.patch @@ -9193,7 +9193,7 @@ diff --git a/chrome/app/extensions_strings.grdp b/chrome/app/extensions_strings. 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 -@@ -278,7 +278,7 @@ +@@ -287,7 +287,7 @@ Change @@ -13147,7 +13147,7 @@ e)fqMZZ`3a)Ds&5H @@ -13242,7 +13242,7 @@ diff --git a/chrome/common/url_constants.h b/chrome/common/url_constants.h 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 -@@ -994,7 +994,7 @@ +@@ -999,7 +999,7 @@ @@ -18202,8 +18202,8 @@ diff --git a/tools/grit/grit/grd_reader.py b/tools/grit/grit/grd_reader.py 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 -@@ -643,4 +643,6 @@ BASE_FEATURE(kUseGammaContrastRegistrySettings, - base::FEATURE_DISABLED_BY_DEFAULT); +@@ -648,4 +648,6 @@ BASE_FEATURE(kUseGammaContrastRegistrySettings, + base::FEATURE_ENABLED_BY_DEFAULT); #endif // BUILDFLAG(IS_WIN) +SET_CROMITE_FEATURE_ENABLED(kChromeRefresh2023); diff --git a/build/patches/Customize-selection-popup.patch b/build/patches/Customize-selection-popup.patch index 5085b7361..1d8fbe205 100644 --- a/build/patches/Customize-selection-popup.patch +++ b/build/patches/Customize-selection-popup.patch @@ -35,7 +35,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionMod diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -737,10 +737,17 @@ public class ChromeTabbedActivity extends ChromeActivity @@ -353,7 +353,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select if (isSelectionPassword || intentHandler == null) { addAdditionalTextProcessingItems(textProcessingItems, selectionActionMenuDelegate); return textProcessingItems; -@@ -431,7 +478,7 @@ public class SelectActionMenuHelper { +@@ -432,7 +479,7 @@ public class SelectActionMenuHelper { .setId(R.id.select_action_menu_cut) .setIconAttr(android.R.attr.actionModeCutDrawable) .setAlphabeticShortcut(ItemKeyShortcuts.CUT) @@ -362,7 +362,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select .setShowAsActionFlags( MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT) .setIsEnabled(isEnabled) -@@ -443,7 +490,7 @@ public class SelectActionMenuHelper { +@@ -444,7 +491,7 @@ public class SelectActionMenuHelper { .setId(R.id.select_action_menu_copy) .setIconAttr(android.R.attr.actionModeCopyDrawable) .setAlphabeticShortcut(ItemKeyShortcuts.COPY) @@ -371,7 +371,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select .setShowAsActionFlags( MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT) .setIsEnabled(isEnabled) -@@ -455,7 +502,7 @@ public class SelectActionMenuHelper { +@@ -456,7 +503,7 @@ public class SelectActionMenuHelper { .setId(R.id.select_action_menu_paste) .setIconAttr(android.R.attr.actionModePasteDrawable) .setAlphabeticShortcut(ItemKeyShortcuts.PASTE) @@ -380,7 +380,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select .setShowAsActionFlags( MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT) .setIsEnabled(isEnabled) -@@ -469,7 +516,7 @@ public class SelectActionMenuHelper { +@@ -470,7 +517,7 @@ public class SelectActionMenuHelper { return new SelectionMenuItem.Builder(context.getString(R.string.actionbar_share)) .setId(R.id.select_action_menu_share) .setIconAttr(android.R.attr.actionModeShareDrawable) @@ -389,7 +389,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select .setShowAsActionFlags( MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT) .setIsEnabled(isEnabled) -@@ -481,7 +528,7 @@ public class SelectActionMenuHelper { +@@ -482,7 +529,7 @@ public class SelectActionMenuHelper { .setId(R.id.select_action_menu_select_all) .setIconAttr(android.R.attr.actionModeSelectAllDrawable) .setAlphabeticShortcut(ItemKeyShortcuts.SELECT_ALL) @@ -398,7 +398,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select .setShowAsActionFlags( MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT) .setIsEnabled(isEnabled) -@@ -494,7 +541,7 @@ public class SelectActionMenuHelper { +@@ -495,7 +542,7 @@ public class SelectActionMenuHelper { SelectionMenuItem.Builder builder = new SelectionMenuItem.Builder(android.R.string.paste_as_plain_text) .setId(R.id.select_action_menu_paste_as_plain_text) @@ -407,7 +407,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select .setShowAsActionFlags( MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT) .setIsEnabled(isEnabled); -@@ -514,7 +561,7 @@ public class SelectActionMenuHelper { +@@ -515,7 +562,7 @@ public class SelectActionMenuHelper { return new SelectionMenuItem.Builder(context.getString(R.string.actionbar_web_search)) .setId(R.id.select_action_menu_web_search) .setIconAttr(android.R.attr.actionModeWebSearchDrawable) diff --git a/build/patches/Deprecate-Data-URL-in-SVGUseElement.patch b/build/patches/Deprecate-Data-URL-in-SVGUseElement.patch index 8905dbab4..2a41c8e60 100644 --- a/build/patches/Deprecate-Data-URL-in-SVGUseElement.patch +++ b/build/patches/Deprecate-Data-URL-in-SVGUseElement.patch @@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -3110,8 +3110,8 @@ +@@ -3208,8 +3208,8 @@ status: "stable", }, { diff --git a/build/patches/Disable-Accessibility-service-by-default.patch b/build/patches/Disable-Accessibility-service-by-default.patch index 65bf7ebb4..0cd6a927b 100644 --- a/build/patches/Disable-Accessibility-service-by-default.patch +++ b/build/patches/Disable-Accessibility-service-by-default.patch @@ -36,13 +36,13 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil + android:summary="@string/enable_accessibility_summary" + android:title="@string/enable_accessibility_title" /> + - RegisterTimePref(kPlusAddressLastFetchedTime, base::Time()); + + // Deprecated 03/2024. +- registry->RegisterBooleanPref(kPrivacySandboxApisEnabled, true); ++ registry->RegisterBooleanPref(kPrivacySandboxApisEnabled, false); + + // Deprecated 03/2024. + registry->RegisterBooleanPref(kDefaultSearchProviderChoicePendingDeprecated, diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_settings_delegate.cc b/chrome/browser/privacy_sandbox/privacy_sandbox_settings_delegate.cc --- a/chrome/browser/privacy_sandbox/privacy_sandbox_settings_delegate.cc +++ b/chrome/browser/privacy_sandbox/privacy_sandbox_settings_delegate.cc -@@ -159,6 +159,7 @@ bool PrivacySandboxSettingsDelegate::HasAppropriateTopicsConsent() const { +@@ -160,6 +160,7 @@ bool PrivacySandboxSettingsDelegate::HasAppropriateTopicsConsent() const { bool PrivacySandboxSettingsDelegate::PrivacySandboxRestrictedNoticeRequired() const { @@ -82,7 +96,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 -@@ -478,8 +478,6 @@ void PrivacySandboxAttestations::OnAttestationsParsed( +@@ -485,8 +485,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. @@ -94,7 +108,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 -@@ -167,4 +167,8 @@ BASE_FEATURE(kTrackingProtectionNoticeRequestTracking, +@@ -175,4 +175,8 @@ BASE_FEATURE(kTrackingProtectionNoticeRequestTracking, base::FEATURE_DISABLED_BY_DEFAULT); #endif // BUILDFLAG(IS_ANDROID) @@ -106,16 +120,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 -@@ -12,7 +12,7 @@ namespace privacy_sandbox { - - void RegisterProfilePrefs(PrefRegistrySimple* registry) { - registry->RegisterBooleanPref( -- prefs::kPrivacySandboxApisEnabled, true, -+ prefs::kPrivacySandboxApisEnabled, false, - user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); - registry->RegisterBooleanPref(prefs::kPrivacySandboxM1ConsentDecisionMade, - false); -@@ -27,7 +27,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { +@@ -24,7 +24,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { registry->RegisterBooleanPref(prefs::kPrivacySandboxM1FledgeEnabled, false); registry->RegisterBooleanPref(prefs::kPrivacySandboxM1AdMeasurementEnabled, false); @@ -202,6 +207,18 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo if (delegate_->IsIncognitoProfile()) { return Status::kIncognitoProfile; } +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 +@@ -82,7 +82,7 @@ signin::Tribool AccountCapabilities:: + + signin::Tribool AccountCapabilities::can_run_chrome_privacy_sandbox_trials() + const { +- return GetCapabilityByName(kCanRunChromePrivacySandboxTrialsCapabilityName); ++ return signin::Tribool::kFalse; + } + + signin::Tribool AccountCapabilities::is_opted_in_to_parental_supervision() diff --git a/cromite_flags/third_party/blink/common/features_cc/Disable-FLoC-and-privacy-sandbox.inc b/cromite_flags/third_party/blink/common/features_cc/Disable-FLoC-and-privacy-sandbox.inc new file mode 100644 --- /dev/null @@ -211,7 +228,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 -@@ -2462,6 +2462,7 @@ bool IsAllowPageWithIDBConnectionAndTransactionInBFCacheEnabled() { +@@ -2514,6 +2514,7 @@ bool IsAllowPageWithIDBConnectionAndTransactionInBFCacheEnabled() { } bool IsAllowURNsInIframeEnabled() { diff --git a/build/patches/Disable-FedCm.patch b/build/patches/Disable-FedCm.patch index 69c210313..126bdffb0 100644 --- a/build/patches/Disable-FedCm.patch +++ b/build/patches/Disable-FedCm.patch @@ -18,7 +18,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -1570,7 +1570,7 @@ +@@ -1604,7 +1604,7 @@ { name: "FedCm", public: true, diff --git a/build/patches/Disable-FirstPartySets-and-StorageAccessAPI.patch b/build/patches/Disable-FirstPartySets-and-StorageAccessAPI.patch index fec38d973..fd1cb6cc3 100644 --- a/build/patches/Disable-FirstPartySets-and-StorageAccessAPI.patch +++ b/build/patches/Disable-FirstPartySets-and-StorageAccessAPI.patch @@ -46,7 +46,7 @@ diff --git a/chrome/browser/first_party_sets/first_party_sets_policy_service.cc 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 -@@ -418,7 +418,7 @@ bool PrivacySandboxServiceImpl::IsRestrictedNoticeEnabled() { +@@ -419,7 +419,7 @@ bool PrivacySandboxServiceImpl::IsRestrictedNoticeEnabled() { void PrivacySandboxServiceImpl::SetFirstPartySetsDataAccessEnabled( bool enabled) { pref_service_->SetBoolean(prefs::kPrivacySandboxRelatedWebsiteSetsEnabled, @@ -58,7 +58,7 @@ diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_service_impl.cc b/ch 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 -@@ -51,7 +51,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { +@@ -48,7 +48,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { registry->RegisterBooleanPref( prefs::kPrivacySandboxFirstPartySetsDataAccessAllowedInitialized, false); registry->RegisterBooleanPref( diff --git a/build/patches/Disable-GSA-by-default.patch b/build/patches/Disable-GSA-by-default.patch index bd1b1ff5e..7b02db7a4 100644 --- a/build/patches/Disable-GSA-by-default.patch +++ b/build/patches/Disable-GSA-by-default.patch @@ -22,7 +22,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.j import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteControllerProvider; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.ProfileManager; -@@ -244,8 +243,6 @@ public class IntentHandler { +@@ -255,8 +254,6 @@ public class IntentHandler { private static int sReferrerId; private static String sPendingIncognitoUrl; @@ -31,7 +31,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.j private static final String PACKAGE_GMAIL = "com.google.android.gm"; private static final String PACKAGE_PLUS = "com.google.android.apps.plus"; private static final String PACKAGE_HANGOUTS = "com.google.android.talk"; -@@ -461,8 +458,6 @@ public class IntentHandler { +@@ -472,8 +469,6 @@ public class IntentHandler { return ExternalAppId.LINE; } else if (packageName.equals(PACKAGE_WHATSAPP)) { return ExternalAppId.WHATSAPP; diff --git a/build/patches/Disable-GetInstalledRelatedApps-API.patch b/build/patches/Disable-GetInstalledRelatedApps-API.patch index 009fa9f62..02c94bdf4 100644 --- a/build/patches/Disable-GetInstalledRelatedApps-API.patch +++ b/build/patches/Disable-GetInstalledRelatedApps-API.patch @@ -30,9 +30,9 @@ diff --git a/content/browser/installedapp/installed_app_provider_impl_win.cc b/c blink::mojom::InstalledAppProvider::FilterInstalledAppsCallback callback, const GURL frame_url) { + CHECK(true); - ComPtr launcher_statics; - HRESULT hr = base::win::RoActivateInstance( - base::win::ScopedHString::Create(RuntimeClass_Windows_System_Launcher) + ComPtr url_factory; + HRESULT hr = + base::win::GetActivationFactory +@@ -27,6 +27,7 @@ found in the LICENSE file. + app:isPreferenceVisible="false" /> IsChild(); +- base::FeatureList::IsEnabled(features::kPrivacyGuideForceAvailable) || +- (!chrome::ShouldDisplayManagedUi(profile) && !profile->IsChild()); + false; html_source->AddBoolean("showPrivacyGuide", show_privacy_guide); - html_source->AddBoolean("enablePrivacyGuide3", base::FeatureList::IsEnabled( + html_source->AddBoolean( diff --git a/cromite_flags/chrome/common/chrome_features_cc/Disable-PrivacyGuide.inc b/cromite_flags/chrome/common/chrome_features_cc/Disable-PrivacyGuide.inc new file mode 100644 --- /dev/null diff --git a/build/patches/Disable-Real-Box.patch b/build/patches/Disable-Real-Box.patch index 4d3f7c31a..b6e2d7951 100644 --- a/build/patches/Disable-Real-Box.patch +++ b/build/patches/Disable-Real-Box.patch @@ -4,16 +4,16 @@ Subject: Disable Real Box Real-box is search box in ntp --- - chrome/browser/prefs/browser_prefs.cc | 2 +- - chrome/browser/resources/new_tab_page/app.html | 5 ----- - chrome/browser/ui/webui/realbox/realbox_handler.cc | 2 +- - components/search/ntp_features.cc | 6 +++--- + chrome/browser/prefs/browser_prefs.cc | 2 +- + chrome/browser/resources/new_tab_page/app.html | 5 ----- + chrome/browser/ui/webui/searchbox/realbox_handler.cc | 2 +- + components/search/ntp_features.cc | 6 +++--- 4 files changed, 5 insertions(+), 10 deletions(-) diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc -@@ -2072,7 +2072,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -2101,7 +2101,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, registry->RegisterBooleanPref( prefs::kLensRegionSearchEnabled, true, user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); @@ -29,18 +29,18 @@ diff --git a/chrome/browser/resources/new_tab_page/app.html b/chrome/browser/res hidden$="[[!logoEnabled_]]">
-- -- +-