diff --git a/build/RELEASE b/build/RELEASE index b197a063..99ecb8a2 100644 --- a/build/RELEASE +++ b/build/RELEASE @@ -1 +1 @@ -127.0.6533.103 +128.0.6613.40 diff --git a/build/cromite.gn_args b/build/cromite.gn_args index d3270112..194f1dfe 100644 --- a/build/cromite.gn_args +++ b/build/cromite.gn_args @@ -31,7 +31,6 @@ use_sysroot=false webview_includes_weblayer=false enable_arcore=false enable_openxr=false -enable_gvr_services=false enable_feed_v2=false enable_cardboard=false is_high_end_android=true @@ -81,7 +80,7 @@ use_relr_relocations=false use_v8_context_snapshot = false # enable libjxl support by default -enable_jxl_decoder = true +enable_jxl_decoder = false # disable minikin engine # see https://github.com/uazo/cromite/issues/697 @@ -94,6 +93,13 @@ enable_bound_session_credentials = false # Use LogErrorNotReached() for NOTREACHED_IN_MIGRATION() enable_log_error_not_reached = true +# Allows building without //third_party/unrar included, for license reasons +safe_browsing_use_unrar = false + +# Keep disabled Google Request Header Integrity +# see https://chromium-review.googlesource.com/c/chromium/src/+/5778493 +enable_request_header_integrity = false + declare_args() { _is_debug_build = "" build_webview = false diff --git a/build/cromite_patches_list.txt b/build/cromite_patches_list.txt index 62d00323..e01bd1db 100644 --- a/build/cromite_patches_list.txt +++ b/build/cromite_patches_list.txt @@ -38,12 +38,10 @@ ungoogled-chromium-Disable-translate-integration.patch ungoogled-chromium-Disable-profile-avatar.patch ungoogled-chromium-Disable-intranet-detector.patch ungoogled-chromium-no-special-hosts-domains.patch -ungoogled-chromium-Disable-Gaia.patch ungoogled-chromium-Disable-Network-Time-Tracker.patch Disable-all-promo-dialogs.patch Disable-update-scheduler.patch Add-search-engine.patch -openH264-enable-ARM-ARM64-optimizations.patch Inject-scripts-for-AMP-tracking-ads-and-video.patch Allow-playing-audio-in-background.patch Add-flag-to-control-video-playback-resume-feature.patch @@ -65,7 +63,6 @@ Disable-privacy-sandbox.patch History-number-of-days-privacy-setting.patch Disable-fetching-of-all-field-trials.patch Disable-plugins-enumeration.patch -net-cert-increase-default-key-length.patch dns-send-IPv6-connectivity-probes-to-RIPE-DNS.patch Add-flag-to-disable-IPv6-probes.patch profile-resetter-disable-send-settings.patch @@ -73,7 +70,6 @@ Do-not-build-API-keys-infobar.patch autofill-miscellaneous.patch Enable-native-Android-autofill.patch translate-disable-fetching-of-languages-from-server.patch -Offer-builtin-autocomplete-for-chrome-flags.patch Disable-various-metrics.patch Enable-StrictOriginIsolation-and-SitePerProcess.patch Use-64-bit-WebView-processes.patch @@ -101,7 +97,6 @@ Add-menu-item-to-view-source.patch Revert-removal-of-execution-context-address-space.patch Block-gateway-attacks-via-websockets.patch Enable-prefetch-privacy-changes-by-default.patch -Disable-support-for-RAR-files-inspection.patch Enable-darken-websites-checkbox-in-themes.patch Remove-blocklisted-URLs-upon-bookmark-creation.patch Disable-the-DIAL-repeating-discovery.patch @@ -176,7 +171,6 @@ Partition-blobs-by-top-frame-URL.patch Override-Navigator-Language.patch Disable-add-to-home-screen-prompt.patch Remove-HTTP-referrals-in-cross-origin-navigation.patch -Disable-StartSurface-feature.patch Enable-third-party-storage-partitioning.patch Restore-adaptive-button-in-top-toolbar-customization.patch Add-kill-switch-for-unsupported-clangd-flags.patch @@ -203,7 +197,6 @@ Disable-BackForwardCache.patch Evict-the-entire-FrameTree-like-desktop.patch Disable-visited-pseudo-class.patch Add-setting-to-clear-data-on-exit.patch -WIN-Disable-sharing-hub.patch Improve-the-browser-sandbox.patch Disable-csp-reports.patch Fonts-fingerprinting-mitigation.patch @@ -224,7 +217,6 @@ Add-a-flag-to-disable-GamePad-API.patch Disable-WebGPU.patch Disable-GetInstalledRelatedApps-API.patch Disable-GSA-by-default.patch -Disable-PrivateStateTokens-API.patch Disallowing-MIDI-permission-by-default.patch Disable-Compression-Dictionary-Transport.patch Disallow-Android-App-Scheme-as-referrer.patch @@ -302,15 +294,12 @@ Ask-for-restart-on-connection-change.patch Bubble-Locking-on-UI-DevTools.patch # temporary or wip patches -Disable-wip-Android-Hub.patch Temp-PerformanceNavigationTiming-privacy-fix.patch Temp-disable-predictive-back-gesture.patch TEMP-Add-a-log-to-track-strange-behavior.patch Temp-guard-FileSystemAccessPersistentPermissions.patch Never-treat-Proguard-warnings-as-errors.patch Fix-chromium-build-bugs.patch -Downstream-validate-opaque-origins-checking-their-precursor.patch -Temp-try-to-fix-DIPS-service.patch # adblock patches eyeo-beta-118.0.5993.48-base.patch diff --git a/build/patches/AImageReader-CFI-crash-mitigations.patch b/build/patches/AImageReader-CFI-crash-mitigations.patch index 908d824c..c2944cbb 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 -@@ -3286,9 +3286,9 @@ +@@ -3355,9 +3355,9 @@ "expiry_milestone": 135 }, { @@ -121,7 +121,7 @@ new file mode 100644 diff --git a/gpu/config/gpu_driver_bug_list.json b/gpu/config/gpu_driver_bug_list.json --- a/gpu/config/gpu_driver_bug_list.json +++ b/gpu/config/gpu_driver_bug_list.json -@@ -2696,6 +2696,22 @@ +@@ -2618,6 +2618,22 @@ "no_downscaled_overlay_promotion" ] }, @@ -183,9 +183,9 @@ diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc if (!gpu_preferences.enable_android_surface_control) return kGpuFeatureStatusDisabled; -@@ -387,6 +390,11 @@ void AdjustGpuFeatureStatusToWorkarounds(GpuFeatureInfo* gpu_feature_info) { - gpu_feature_info->status_values[GPU_FEATURE_TYPE_CANVAS_OOP_RASTERIZATION] = - kGpuFeatureStatusBlocklisted; +@@ -401,6 +404,11 @@ void AdjustGpuFeatureStatusToWorkarounds(GpuFeatureInfo* gpu_feature_info, + kGpuFeatureStatusSoftware; + } } + + if (gpu_feature_info->IsWorkaroundEnabled(DISABLE_AIMAGEREADER)) { @@ -198,8 +198,8 @@ diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc diff --git a/gpu/config/gpu_workaround_list.txt b/gpu/config/gpu_workaround_list.txt --- a/gpu/config/gpu_workaround_list.txt +++ b/gpu/config/gpu_workaround_list.txt -@@ -10,6 +10,7 @@ clamp_texture_base_level_and_max_level - clear_pixel_unpack_buffer_before_copyteximage +@@ -7,6 +7,7 @@ check_egl_fence_before_wait + check_ycbcr_studio_g22_left_p709_for_nv12_support disable_2d_canvas_auto_flush disable_accelerated_av1_decode +disable_aimagereader @@ -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) -@@ -721,6 +722,13 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line, +@@ -718,6 +719,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 84a89666..267b1c03 100644 --- a/build/patches/Add-AllowUserCertificates-flag.patch +++ b/build/patches/Add-AllowUserCertificates-flag.patch @@ -28,8 +28,8 @@ 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; -@@ -1070,6 +1071,8 @@ public abstract class ChromeActivity - super.onStartWithNative(); +@@ -1043,6 +1044,8 @@ public abstract class ChromeActivity + ChromeActivitySessionTracker.getInstance().onStartWithNative(getProfileProviderSupplier()); ChromeCachedFlags.getInstance().cacheNativeFlags(); + X509Util.AllowUserCertificates = ChromeFeatureList.isEnabled( @@ -40,10 +40,10 @@ 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 -@@ -144,6 +144,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -148,6 +148,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { + &feed::kFeedPerformanceStudy, &feed::kFeedShowSignInCommand, &feed::kFeedSignedOutViewDemotion, - &feed::kFeedUserInteractionReliabilityReport, + &kAllowUserCertificates, &feed::kInterestFeedV2, &feed::kInterestFeedV2Hearts, @@ -59,23 +59,23 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_TRANSLATE = "AdaptiveButtonInTopToolbarTranslate"; public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_ADD_TO_BOOKMARKS = -@@ -559,6 +560,8 @@ public abstract class ChromeFeatureList { - public static final CachedFlag sAppInfoTabResumptionModule = - newCachedFlag(APP_INFO_TAB_RESUMPTION_MODULE, false); +@@ -576,6 +577,8 @@ public abstract class ChromeFeatureList { + public static final CachedFlag sAndroidTabGroupStableIds = + newCachedFlag(ANDROID_TAB_GROUP_STABLE_IDS, true); 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 sAsyncNotificationManager = newCachedFlag(ASYNC_NOTIFICATION_MANAGER, false); -@@ -708,6 +711,7 @@ public abstract class ChromeFeatureList { +@@ -734,6 +737,7 @@ public abstract class ChromeFeatureList { public static final List sFlagsCachedFullBrowserChromium = List.of( sAccountReauthenticationRecentTimeWindow, + sAllowUserCertificates, sAndroidAppIntegration, sAndroidElegantTextHeight, - sAndroidHub, + sAndroidGoogleSansText, diff --git a/cromite_flags/chrome/browser/about_flags_cc/Add-AllowUserCertificates-flag.inc b/cromite_flags/chrome/browser/about_flags_cc/Add-AllowUserCertificates-flag.inc new file mode 100644 --- /dev/null diff --git a/build/patches/Add-IsCleartextPermitted-flag.patch b/build/patches/Add-IsCleartextPermitted-flag.patch index f7453e5a..b97584d3 100644 --- a/build/patches/Add-IsCleartextPermitted-flag.patch +++ b/build/patches/Add-IsCleartextPermitted-flag.patch @@ -44,7 +44,7 @@ new file mode 100644 diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc --- a/net/url_request/url_request_http_job.cc +++ b/net/url_request/url_request_http_job.cc -@@ -360,6 +360,11 @@ std::unique_ptr URLRequestHttpJob::Create(URLRequest* request) { +@@ -390,6 +390,11 @@ std::unique_ptr URLRequestHttpJob::Create(URLRequest* request) { } } diff --git a/build/patches/Add-PartialLowEndModeOnMidRangeDevices-flag.patch b/build/patches/Add-PartialLowEndModeOnMidRangeDevices-flag.patch index bbdcc823..7764f10d 100644 --- a/build/patches/Add-PartialLowEndModeOnMidRangeDevices-flag.patch +++ b/build/patches/Add-PartialLowEndModeOnMidRangeDevices-flag.patch @@ -15,7 +15,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/base/features.cc b/base/features.cc --- a/base/features.cc +++ b/base/features.cc -@@ -90,6 +90,10 @@ BASE_FEATURE(kCollectAndroidFrameTimelineMetrics, +@@ -109,6 +109,10 @@ BASE_FEATURE(kPostPowerMonitorBroadcastReceiverInitToBackground, FEATURE_DISABLED_BY_DEFAULT); #endif // BUILDFLAG(IS_ANDROID) diff --git a/build/patches/Add-a-flag-to-disable-GamePad-API.patch b/build/patches/Add-a-flag-to-disable-GamePad-API.patch index fef16223..9c23eb2b 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 -@@ -7694,9 +7694,9 @@ +@@ -7866,9 +7866,9 @@ "expiry_milestone": 130 }, { @@ -29,7 +29,7 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -3109,7 +3109,7 @@ const char kResetShortcutCustomizationsDescription[] = +@@ -3206,7 +3206,7 @@ const char kResetShortcutCustomizationsDescription[] = const char kRestrictGamepadAccessName[] = "Restrict gamepad access"; const char kRestrictGamepadAccessDescription[] = @@ -50,7 +50,7 @@ diff --git a/device/gamepad/public/cpp/gamepad_features.cc b/device/gamepad/publ diff --git a/third_party/blink/renderer/modules/gamepad/navigator_gamepad.cc b/third_party/blink/renderer/modules/gamepad/navigator_gamepad.cc --- a/third_party/blink/renderer/modules/gamepad/navigator_gamepad.cc +++ b/third_party/blink/renderer/modules/gamepad/navigator_gamepad.cc -@@ -113,6 +113,10 @@ void RecordGamepadsForIdentifiabilityStudy( +@@ -118,6 +118,10 @@ void RecordGamepadsForIdentifiabilityStudy( HeapVector> NavigatorGamepad::getGamepads( Navigator& navigator, ExceptionState& exception_state) { @@ -61,7 +61,7 @@ diff --git a/third_party/blink/renderer/modules/gamepad/navigator_gamepad.cc b/t if (!navigator.DomWindow()) { // Using an existing NavigatorGamepad if one exists, but don't create one // for a detached window, as its subclasses depend on a non-null window. -@@ -435,6 +439,8 @@ void NavigatorGamepad::SampleAndCompareGamepadState() { +@@ -440,6 +444,8 @@ void NavigatorGamepad::SampleAndCompareGamepadState() { void NavigatorGamepad::DispatchGamepadEvent(const AtomicString& event_name, Gamepad* gamepad) { diff --git a/build/patches/Add-a-proxy-configuration-page.patch b/build/patches/Add-a-proxy-configuration-page.patch index 3ba04c7b..712d0409 100644 --- a/build/patches/Add-a-proxy-configuration-page.patch +++ b/build/patches/Add-a-proxy-configuration-page.patch @@ -18,7 +18,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/android/java/res/values/values.xml | 3 + .../java/res/xml/privacy_preferences.xml | 4 + .../privacy/settings/PrivacySettings.java | 1 + - .../chrome_autocomplete_provider_client.cc | 2 + + .../chrome_autocomplete_provider_client.cc | 1 + chrome/browser/browser_resources.grd | 3 + .../extensions/api/proxy/proxy_api_helpers.cc | 2 +- chrome/browser/net/proxy_service_factory.cc | 24 +- @@ -30,9 +30,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/resources/proxy_config.js | 278 +++++++++++++ chrome/browser/ui/BUILD.gn | 2 + .../webui/chrome_web_ui_controller_factory.cc | 3 + - chrome/browser/ui/webui/proxy_config_ui.cc | 392 ++++++++++++++++++ + chrome/browser/ui/webui/proxy_config_ui.cc | 389 ++++++++++++++++++ chrome/browser/ui/webui/proxy_config_ui.h | 31 ++ - chrome/common/webui_url_constants.cc | 4 + + chrome/common/webui_url_constants.cc | 2 + chrome/common/webui_url_constants.h | 2 + .../pref_proxy_config_tracker_impl.cc | 5 +- .../proxy_config/proxy_config_dictionary.cc | 30 +- @@ -40,7 +40,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../proxy_config/proxy_policy_handler.cc | 2 +- net/proxy_resolution/proxy_config.cc | 51 ++- net/proxy_resolution/proxy_config.h | 3 + - 25 files changed, 979 insertions(+), 17 deletions(-) + 25 files changed, 973 insertions(+), 17 deletions(-) create mode 100644 chrome/browser/resources/proxy_config.css create mode 100644 chrome/browser/resources/proxy_config.html create mode 100644 chrome/browser/resources/proxy_config.js @@ -88,19 +88,18 @@ 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 -@@ -309,6 +309,8 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() { - builtins_to_provide.push_back( - base::ASCIIToUTF16(chrome::kChromeUISettingsURL)); +@@ -319,6 +319,7 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() { + builtins_to_provide.push_back(chrome::kChromeUISettingsURL16); #endif -+ builtins_to_provide.push_back( -+ base::ASCIIToUTF16(chrome::kChromeUIProxyConfigURL)); - builtins_to_provide.push_back( - base::ASCIIToUTF16(chrome::kChromeUIVersionURL)); + builtins_to_provide.push_back(chrome::kChromeUIVersionURL16); ++ builtins_to_provide.push_back(chrome::kChromeUIProxyConfigURL16); return builtins_to_provide; + } + diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resources.grd --- a/chrome/browser/browser_resources.grd +++ b/chrome/browser/browser_resources.grd -@@ -241,6 +241,9 @@ +@@ -242,6 +242,9 @@ @@ -197,7 +196,7 @@ diff --git a/chrome/browser/net/proxy_service_factory.h b/chrome/browser/net/pro diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc -@@ -195,6 +195,8 @@ +@@ -200,6 +200,8 @@ #include "rlz/buildflags/buildflags.h" #include "services/screen_ai/buildflags/buildflags.h" @@ -206,7 +205,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse #if BUILDFLAG(ENABLE_BACKGROUND_MODE) #include "chrome/browser/background/background_mode_manager.h" #endif -@@ -1697,6 +1699,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) { +@@ -1465,6 +1467,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) { component_updater::RegisterPrefs(registry); domain_reliability::RegisterPrefs(registry); embedder_support::OriginTrialPrefs::RegisterPrefs(registry); @@ -661,7 +660,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 -@@ -327,6 +327,8 @@ static_library("ui") { +@@ -338,6 +338,8 @@ static_library("ui") { "webui/metrics_internals/metrics_internals_ui.h", "webui/net_export_ui.cc", "webui/net_export_ui.h", @@ -681,7 +680,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" -@@ -450,6 +451,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, +@@ -441,6 +442,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, #endif // BUILDFLAG(IS_CHROMEOS_ASH) if (url.host_piece() == chrome::kChromeUINetExportHost) return &NewWebUI; @@ -694,7 +693,7 @@ diff --git a/chrome/browser/ui/webui/proxy_config_ui.cc b/chrome/browser/ui/webu new file mode 100644 --- /dev/null +++ b/chrome/browser/ui/webui/proxy_config_ui.cc -@@ -0,0 +1,392 @@ +@@ -0,0 +1,389 @@ +/* + This file is part of Bromite. + @@ -756,7 +755,6 @@ new file mode 100644 +// this class's public methods are expected to run on the UI thread. +class ProxyConfigMessageHandler + : public WebUIMessageHandler, -+ public base::SupportsWeakPtr, + public net::ProxyConfigService::Observer { + public: + ProxyConfigMessageHandler(const ProxyConfigMessageHandler&) = delete; @@ -794,12 +792,10 @@ new file mode 100644 + + void apply(const net::ProxyConfig& config); + -+ base::WeakPtrFactory weak_ptr_factory_; ++ base::WeakPtrFactory weak_ptr_factory_{this}; +}; + -+ProxyConfigMessageHandler::ProxyConfigMessageHandler(Profile *profile) -+ : -+ weak_ptr_factory_(this) { ++ProxyConfigMessageHandler::ProxyConfigMessageHandler(Profile *profile) { + + // used to set new configuration preferences + pref_service_ = g_browser_process->local_state(); @@ -1126,16 +1122,7 @@ new file mode 100644 diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_constants.cc --- a/chrome/common/webui_url_constants.cc +++ b/chrome/common/webui_url_constants.cc -@@ -50,6 +50,8 @@ const char kChromeUICertificateViewerHost[] = "view-cert"; - const char kChromeUICertificateViewerURL[] = "chrome://view-cert/"; - const char kChromeUIChromeSigninHost[] = "chrome-signin"; - const char kChromeUIChromeSigninURL[] = "chrome://chrome-signin/"; -+const char kChromeUIProxyConfigHost[] = "proxy"; -+const char kChromeUIProxyConfigURL[] = "chrome://proxy/"; - const char kChromeUIChromeURLsHost[] = "chrome-urls"; - const char kChromeUIChromeURLsURL[] = "chrome://chrome-urls/"; - const char kChromeUIComponentsHost[] = "components"; -@@ -471,6 +473,7 @@ bool IsSystemWebUIHost(std::string_view host) { +@@ -53,6 +53,7 @@ bool IsSystemWebUIHost(std::string_view host) { kChromeUILockScreenNetworkHost, kChromeUILockScreenStartReauthHost, kChromeUIMobileSetupHost, @@ -1143,26 +1130,26 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons kChromeUIMultiDeviceSetupHost, kChromeUINetworkHost, kChromeUINotificationTesterHost, -@@ -766,6 +769,7 @@ const char* const kChromeHostURLs[] = { +@@ -75,6 +76,7 @@ bool IsSystemWebUIHost(std::string_view host) { + // These hosts will also be suggested by BuiltinProvider. + base::span ChromeURLHosts() { + static constexpr auto kChromeURLHosts = std::to_array({ ++ kChromeUIProxyConfigHost, + kChromeUIAboutHost, + kChromeUIAccessibilityHost, #if !BUILDFLAG(IS_ANDROID) - #if !BUILDFLAG(IS_CHROMEOS) - kChromeUIAppLauncherPageHost, -+ kChromeUIProxyConfigHost, - #endif - kChromeUIBookmarksHost, - kChromeUIDownloadsHost, 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 -@@ -137,6 +137,8 @@ extern const char kChromeUINTPTilesInternalsHost[]; - extern const char kChromeUINaClHost[]; - extern const char kChromeUINetExportHost[]; - extern const char kChromeUINetExportURL[]; -+extern const char kChromeUIProxyConfigHost[]; -+extern const char kChromeUIProxyConfigURL[]; - extern const char kChromeUINetInternalsHost[]; - extern const char kChromeUINetInternalsURL[]; - extern const char kChromeUINewTabHost[]; +@@ -171,6 +171,8 @@ inline constexpr char kChromeUINetExportURL[] = "chrome://net-export"; + inline constexpr char kChromeUINetInternalsHost[] = "net-internals"; + inline constexpr char kChromeUINetInternalsURL[] = "chrome://net-internals/"; + inline constexpr char kChromeUINewTabHost[] = "newtab"; ++inline constexpr char16_t kChromeUIProxyConfigURL16[] = u"chrome://proxy/"; ++inline constexpr char kChromeUIProxyConfigHost[] = "proxy"; + inline constexpr char kChromeUINewTabPageHost[] = "new-tab-page"; + inline constexpr char kChromeUINewTabPageThirdPartyHost[] = + "new-tab-page-third-party"; diff --git a/components/proxy_config/pref_proxy_config_tracker_impl.cc b/components/proxy_config/pref_proxy_config_tracker_impl.cc --- a/components/proxy_config/pref_proxy_config_tracker_impl.cc +++ b/components/proxy_config/pref_proxy_config_tracker_impl.cc diff --git a/build/patches/Add-an-always-incognito-mode.patch b/build/patches/Add-an-always-incognito-mode.patch index 18541c49..57d63816 100644 --- a/build/patches/Add-an-always-incognito-mode.patch +++ b/build/patches/Add-an-always-incognito-mode.patch @@ -30,7 +30,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../ChromeContextMenuPopulator.java | 7 +- .../CustomTabActivityLifecycleUmaTracker.java | 31 ---- .../CustomTabAppMenuPropertiesDelegate.java | 4 + - .../CustomTabIntentDataProvider.java | 5 +- + .../CustomTabIntentDataProvider.java | 10 ++ .../browser/download/DownloadUtils.java | 16 +- .../history/HistoryContentManager.java | 7 +- .../browser/history/HistoryManager.java | 27 ++- @@ -47,7 +47,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../tabmodel/TabModelSelectorImpl.java | 3 + .../browser/tabmodel/TabPersistentStore.java | 9 + .../browser/toolbar/ToolbarManager.java | 3 +- - .../webapps/WebappIntentDataProvider.java | 14 ++ + .../webapps/WebappIntentDataProvider.java | 15 ++ .../browser/android/historical_tab_saver.cc | 24 ++- .../chrome_autocomplete_provider_client.cc | 9 + .../chrome_autocomplete_provider_client.h | 1 + @@ -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 | 23 ++- + .../browser/ui/native_page/NativePage.java | 22 ++- .../strings/android_chrome_strings.grd | 25 +++ .../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, 775 insertions(+), 103 deletions(-) + 66 files changed, 781 insertions(+), 102 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 @@ -117,14 +117,14 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java "java/src/com/google/android/apps/chrome/appwidget/bookmarks/BookmarkThumbnailWidgetProvider.java", "java/src/org/chromium/chrome/browser/ActivityTabProvider.java", "java/src/org/chromium/chrome/browser/ActivityUtils.java", -@@ -967,6 +968,7 @@ chrome_java_sources = [ - "java/src/org/chromium/chrome/browser/privacy_sandbox/TrackingProtectionOnboardingType.java", - "java/src/org/chromium/chrome/browser/privacy_sandbox/TrackingProtectionOnboardingView.java", - "java/src/org/chromium/chrome/browser/privacy_sandbox/TrackingProtectionSnackbarController.java", +@@ -955,6 +956,7 @@ chrome_java_sources = [ + "java/src/org/chromium/chrome/browser/privacy/settings/IncognitoLockSettings.java", + "java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl.java", + "java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java", + "java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java", - "java/src/org/chromium/chrome/browser/provider/BaseColumns.java", - "java/src/org/chromium/chrome/browser/provider/BookmarkColumns.java", - "java/src/org/chromium/chrome/browser/provider/ChromeBrowserProviderImpl.java", + "java/src/org/chromium/chrome/browser/privacy_sandbox/CctHandler.java", + "java/src/org/chromium/chrome/browser/privacy_sandbox/ChromeTrackingProtectionDelegate.java", + "java/src/org/chromium/chrome/browser/privacy_sandbox/TrackingProtectionNoticeController.java", diff --git a/chrome/android/java/res/xml/incognito_preferences.xml b/chrome/android/java/res/xml/incognito_preferences.xml new file mode 100644 --- /dev/null @@ -255,7 +255,7 @@ 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; -@@ -694,10 +698,15 @@ public class ChromeTabbedActivity extends ChromeActivity +@@ -2006,6 +2007,9 @@ public abstract class ChromeActivity throw new IllegalStateException( "Attempting to access TabCreator before initialization"); } @@ -331,7 +331,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. -@@ -594,6 +600,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -583,6 +589,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate } private void prepareCommonMenuItems(Menu menu, @MenuGroup int menuGroup, boolean isIncognito) { @@ -345,7 +345,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; -@@ -657,7 +670,15 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -646,7 +659,15 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate } if (item.getItemId() == R.id.recent_tabs_menu_id) { @@ -362,7 +362,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); -@@ -866,8 +887,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -859,8 +880,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate && !isNativePage && !isFileScheme && !isContentScheme @@ -385,7 +385,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr import org.chromium.chrome.browser.compositor.bottombar.ephemeraltab.EphemeralTabCoordinator; import org.chromium.chrome.browser.contextmenu.ChromeContextMenuItem.Item; import org.chromium.chrome.browser.contextmenu.ContextMenuCoordinator.ListItemType; -@@ -258,6 +259,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -265,6 +266,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { public List> buildContextMenu() { mShowEphemeralTabNewLabel = null; @@ -395,7 +395,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr List> groupedItems = new ArrayList<>(); if (mParams.isAnchor()) { -@@ -268,6 +272,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -275,6 +279,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { if (mMode == ContextMenuMode.NORMAL) { linkGroup.add(createListItem(Item.OPEN_IN_NEW_TAB_IN_GROUP)); linkGroup.add(createListItem(Item.OPEN_IN_NEW_TAB)); @@ -403,7 +403,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr if (!mItemDelegate.isIncognito() && mItemDelegate.isIncognitoSupported()) { linkGroup.add(createListItem(Item.OPEN_IN_INCOGNITO_TAB)); } -@@ -292,7 +297,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -299,7 +304,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { } } if (FirstRunStatus.getFirstRunFlowComplete()) { @@ -464,7 +464,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; -@@ -216,6 +217,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat +@@ -218,6 +219,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat openInChromeItemVisible = false; tryAddingReadAloud = false; } @@ -477,7 +477,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java -@@ -88,6 +88,9 @@ import org.chromium.components.browser_ui.widget.TintedDrawable; +@@ -88,6 +88,9 @@ import org.chromium.components.embedder_support.util.Origin; import org.chromium.components.embedder_support.util.UrlConstants; import org.chromium.device.mojom.ScreenOrientationLockType; @@ -487,15 +487,20 @@ 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; -@@ -1390,7 +1393,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid - - @Override - public boolean isIncognito() { -- return false; -+ return AlwaysIncognitoLinkInterceptor.isAlwaysIncognito(); +@@ -1194,6 +1197,13 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid + return getInitialActivityWidth() > 0; } ++ @Override ++ public @CustomTabProfileType int getCustomTabMode() { ++ return AlwaysIncognitoLinkInterceptor.isAlwaysIncognito() ++ ? CustomTabProfileType.INCOGNITO ++ : CustomTabProfileType.REGULAR; ++ } ++ @Override + public boolean isPartialCustomTab() { + return isPartialHeightCustomTab() || isPartialWidthCustomTab(); diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java --- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java @@ -563,7 +568,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java -@@ -56,6 +56,14 @@ import org.chromium.ui.base.Clipboard; +@@ -57,6 +57,14 @@ import org.chromium.ui.base.Clipboard; import java.util.List; @@ -578,7 +583,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History /** Combines and manages the different UI components of browsing history. */ public class HistoryManager implements OnMenuItemClickListener, -@@ -168,7 +176,7 @@ public class HistoryManager +@@ -169,7 +177,7 @@ public class HistoryManager mUmaRecorder.recordOpenHistory(); // If incognito placeholder is shown, we don't need to create History UI elements. @@ -587,7 +592,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History mSelectableListLayout = null; mRootView = getIncognitoHistoryPlaceholderView(); return; -@@ -420,9 +428,22 @@ public class HistoryManager +@@ -436,9 +444,22 @@ public class HistoryManager onBackPressStateChanged(); } @@ -611,7 +616,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; } -@@ -482,7 +503,7 @@ public class HistoryManager +@@ -498,7 +519,7 @@ public class HistoryManager * @return True if manager handles this event, false if it decides to ignore. */ private boolean onBackPressed() { @@ -903,7 +908,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin 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; -@@ -410,6 +411,9 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -408,6 +409,9 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity ((ChromeBaseSettingsFragment)fragment).setRequestRestartDelegate( new RequestRestartDelegate(mSnackbarManager, this)); } @@ -1022,8 +1027,8 @@ 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 -@@ -154,6 +154,8 @@ import org.chromium.components.webapps.bottomsheet.PwaBottomSheetControllerFacto - import org.chromium.ui.InsetObserver; +@@ -149,6 +149,8 @@ import org.chromium.ui.InsetObserver; + import org.chromium.ui.UiUtils; import org.chromium.ui.base.ActivityWindowAndroid; import org.chromium.ui.base.DeviceFormFactor; +import org.chromium.base.ContextUtils; @@ -1031,7 +1036,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; -@@ -1045,7 +1047,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1036,7 +1038,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { () -> { mTabCreatorManagerSupplier .get() @@ -1043,7 +1048,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java -@@ -50,6 +50,10 @@ import org.chromium.ui.base.PageTransition; +@@ -47,6 +47,10 @@ import org.chromium.ui.base.PageTransition; import org.chromium.ui.base.WindowAndroid; import org.chromium.url.GURL; @@ -1053,8 +1058,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome + /** This class creates various kinds of new tabs and adds them to the right {@link TabModel}. */ public class ChromeTabCreator extends TabCreator { - /** Interface to handle showing overview instead of NTP if needed. */ -@@ -534,7 +538,6 @@ public class ChromeTabCreator extends TabCreator { + private final Activity mActivity; +@@ -500,7 +504,6 @@ public class ChromeTabCreator extends TabCreator { // TODO(crbug.com/40691614): Clean up the launches from SearchActivity/Chrome. public Tab launchUrlFromExternalApp( LoadUrlParams loadUrlParams, String appId, boolean forceNewTab, Intent intent) { @@ -1085,7 +1090,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabMod diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java -@@ -49,6 +49,8 @@ import org.chromium.chrome.features.start_surface.StartSurfaceUserData; +@@ -48,6 +48,8 @@ import org.chromium.chrome.browser.tabpersistence.TabStateFileManager; import org.chromium.components.embedder_support.util.UrlUtilities; import org.chromium.content_public.browser.LoadUrlParams; @@ -1094,7 +1099,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPer import java.io.BufferedInputStream; import java.io.ByteArrayInputStream; import java.io.DataInputStream; -@@ -764,6 +766,13 @@ public class TabPersistentStore { +@@ -766,6 +768,13 @@ public class TabPersistentStore { } } } @@ -1111,15 +1116,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPer diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java -@@ -42,6 +42,7 @@ import org.chromium.base.supplier.OneshotSupplier; +@@ -41,6 +41,7 @@ import org.chromium.base.supplier.OneshotSupplierImpl; import org.chromium.base.supplier.Supplier; import org.chromium.chrome.R; import org.chromium.chrome.browser.ActivityTabProvider; +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; import org.chromium.chrome.browser.IntentHandler; - import org.chromium.chrome.browser.app.tab_activity_glue.TabReparentingController; import org.chromium.chrome.browser.app.tabmodel.TabWindowManagerSingleton; -@@ -650,7 +651,7 @@ public class ToolbarManager + import org.chromium.chrome.browser.back_press.BackPressManager; +@@ -625,7 +626,7 @@ public class ToolbarManager TraceEvent.end("isOfflinePage"); return ret; } @@ -1131,17 +1136,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProvider.java --- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProvider.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProvider.java -@@ -33,6 +33,9 @@ import org.chromium.components.browser_ui.widget.TintedDrawable; +@@ -33,6 +33,8 @@ import org.chromium.components.browser_ui.widget.TintedDrawable; import org.chromium.device.mojom.ScreenOrientationLockType; import org.chromium.ui.util.ColorUtils; -+import org.chromium.base.ContextUtils; +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; + /** Stores info about a web app. */ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider { private final Drawable mCloseButtonIcon; -@@ -45,6 +48,8 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider +@@ -45,6 +47,8 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider private final ColorProviderImpl mColorProvider; private final ColorProviderImpl mDarkColorProvider; @@ -1150,7 +1154,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappI /** Returns the toolbar color to use if a custom color is not specified by the webapp. */ public static int getDefaultToolbarColor() { return Color.WHITE; -@@ -80,6 +85,10 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider +@@ -80,6 +84,10 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider mWebappExtras = webappExtras; mWebApkExtras = webApkExtras; mActivityType = (webApkExtras != null) ? ActivityType.WEB_APK : ActivityType.WEBAPP; @@ -1161,13 +1165,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappI } @Override -@@ -175,6 +184,11 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider +@@ -175,6 +183,13 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider return mWebApkExtras; } + @Override -+ public boolean isIncognito() { -+ return mIsIncognito; ++ public @CustomTabProfileType int getCustomTabMode() { ++ return mIsIncognito ++ ? CustomTabProfileType.INCOGNITO ++ : CustomTabProfileType.REGULAR; + } + @Override @@ -1176,7 +1182,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 -@@ -32,6 +32,11 @@ +@@ -33,6 +33,11 @@ // Must come after all headers that specialize FromJniType() / ToJniType(). #include "chrome/android/chrome_jni_headers/HistoricalTabSaverImpl_jni.h" @@ -1188,7 +1194,7 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and using base::android::JavaParamRef; using base::android::JavaRef; using base::android::ScopedJavaLocalRef; -@@ -106,7 +111,8 @@ std::vector> StringsToUuids( +@@ -107,7 +112,8 @@ std::vector> StringsToUuids( void CreateHistoricalTab( TabAndroid* tab_android, @@ -1198,7 +1204,7 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and if (!tab_android) { return; } -@@ -117,9 +123,14 @@ void CreateHistoricalTab( +@@ -118,9 +124,14 @@ void CreateHistoricalTab( return; } @@ -1215,7 +1221,7 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and if (!service) { return; } -@@ -185,7 +196,7 @@ void CreateHistoricalBulkClosure( +@@ -186,7 +197,7 @@ void CreateHistoricalBulkClosure( std::vector per_tab_root_id, std::vector> tabs, std::vector web_contents_state) { @@ -1224,7 +1230,7 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and DCHECK_EQ(root_ids.size(), group_titles.size()); DCHECK_EQ(root_ids.size(), group_colors.size()); DCHECK_EQ(root_ids.size(), optional_tab_group_ids.size()); -@@ -318,11 +329,12 @@ static void JNI_HistoricalTabSaverImpl_CreateHistoricalTab( +@@ -319,11 +330,12 @@ static void JNI_HistoricalTabSaverImpl_CreateHistoricalTab( JNIEnv* env, const JavaParamRef& jtab_android, const JavaParamRef& state, @@ -1242,7 +1248,7 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc --- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc +++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc -@@ -358,6 +358,15 @@ ChromeAutocompleteProviderClient::GetProviderStateService() const { +@@ -366,6 +366,15 @@ ChromeAutocompleteProviderClient::GetProviderStateService() const { return ProviderStateServiceFactory::GetForProfile(profile_); } @@ -1303,7 +1309,7 @@ diff --git a/chrome/browser/content_settings/host_content_settings_map_factory.c #include "components/content_settings/core/browser/content_settings_pref_provider.h" #include "components/content_settings/core/browser/host_content_settings_map.h" #include "components/permissions/features.h" -@@ -101,9 +102,25 @@ scoped_refptr +@@ -104,9 +105,25 @@ scoped_refptr if (profile->IsOffTheRecord() && !profile->IsGuestSession()) GetForProfile(original_profile); @@ -1330,7 +1336,7 @@ diff --git a/chrome/browser/content_settings/host_content_settings_map_factory.c /*store_last_modified=*/true, profile->ShouldRestoreOldSessionCookies(), profiles::IsRegularUserProfile(profile))); -@@ -112,6 +129,9 @@ scoped_refptr +@@ -115,6 +132,9 @@ scoped_refptr settings_map->RegisterProvider(ProviderType::kWebuiAllowlistProvider, std::move(allowlist_provider)); @@ -1716,7 +1722,7 @@ diff --git a/chrome/browser/offline_pages/request_coordinator_factory.h b/chrome diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc -@@ -248,6 +248,7 @@ +@@ -257,6 +257,7 @@ #if BUILDFLAG(IS_ANDROID) #include "chrome/browser/accessibility/accessibility_prefs/android/accessibility_prefs_controller.h" @@ -1724,7 +1730,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" -@@ -2126,6 +2127,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -1914,6 +1915,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, usage_stats::UsageStatsBridge::RegisterProfilePrefs(registry); variations::VariationsService::RegisterProfilePrefs(registry); webapps::InstallPromptPrefs::RegisterProfilePrefs(registry); @@ -1748,7 +1754,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" -@@ -109,6 +112,13 @@ Profile* ProfileSelections::ApplyProfileSelection(Profile* profile) const { +@@ -112,6 +115,13 @@ Profile* ProfileSelections::ApplyProfileSelection(Profile* profile) const { return nullptr; case ProfileSelection::kOriginalOnly: return profile->IsOffTheRecord() ? nullptr : profile; @@ -1768,13 +1774,13 @@ diff --git a/chrome/browser/profiles/profile_selections.h b/chrome/browser/profi @@ -6,7 +6,7 @@ #define CHROME_BROWSER_PROFILES_PROFILE_SELECTIONS_H_ - #include + #include - +#include "build/build_config.h" - #include "base/feature_list.h" - class Profile; -@@ -27,6 +27,11 @@ bool AreKeyedServicesDisabledForProfileByDefault(const Profile* profile); + + // A helper function that checks whether Keyed Services should be created for +@@ -25,6 +25,11 @@ bool AreKeyedServicesDisabledForProfileByDefault(const Profile* profile); enum class ProfileSelection { kNone, // Original: No Profile -- OTR: No Profile kOriginalOnly, // Original: Self -- OTR: No Profile @@ -1796,8 +1802,8 @@ diff --git a/chrome/browser/ui/android/native_page/BUILD.gn b/chrome/browser/ui/ + "//base:base_java", + "//components/embedder_support/android:util_java", "//base:base_junit_test_support", + "//third_party/android_deps:org_mockito_mockito_core_java", "//third_party/junit", - "//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 @@ -1810,18 +1816,17 @@ 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 { -@@ -157,7 +159,9 @@ public interface NativePage { - * @return Whether the URL would navigate to a native page. +@@ -158,7 +160,8 @@ public interface NativePage { */ - static boolean isNativePageUrl(GURL url, boolean isIncognito, boolean isPdf) { -- return url != null && nativePageType(url, null, isIncognito, isPdf) != NativePageType.NONE; -+ return url != null -+ && nativePageType(url, null, isIncognito, isPdf, /*isAlwaysIncognito*/ false) + static boolean isNativePageUrl(GURL url, boolean isIncognito, boolean hasPdfDownload) { + return url != null +- && nativePageType(url, null, isIncognito, hasPdfDownload) != NativePageType.NONE; ++ && nativePageType(url, null, isIncognito, hasPdfDownload, /*isAlwaysIncognito*/ false) + != NativePageType.NONE; } /** -@@ -167,7 +171,7 @@ public interface NativePage { +@@ -168,7 +171,7 @@ public interface NativePage { * not have chrome or chrome-native scheme. */ static boolean isChromePageUrl(GURL url, boolean isIncognito) { @@ -1830,35 +1835,41 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/ } /** -@@ -179,11 +183,12 @@ public interface NativePage { +@@ -180,11 +183,12 @@ public interface NativePage { */ // TODO(crbug.com/40549331) - Convert to using GURL. static @NativePageType int nativePageType( -- String url, NativePage candidatePage, boolean isIncognito, boolean isPdf) { -+ String url, NativePage candidatePage, boolean isIncognito, boolean isPdf, +- String url, NativePage candidatePage, boolean isIncognito, boolean hasPdfDownload) { ++ String url, NativePage candidatePage, boolean isIncognito, boolean hasPdfDownload, + boolean isAlwaysIncognito) { if (url == null) return NativePageType.NONE; GURL gurl = new GURL(url); -- return nativePageType(gurl, candidatePage, isIncognito, isPdf); -+ return nativePageType(gurl, candidatePage, isIncognito, isPdf, isAlwaysIncognito); +- return nativePageType(gurl, candidatePage, isIncognito, hasPdfDownload); ++ return nativePageType(gurl, candidatePage, isIncognito, hasPdfDownload, isAlwaysIncognito); } /** -@@ -194,9 +199,10 @@ public interface NativePage { +@@ -195,7 +199,8 @@ public interface NativePage { * @return Type of the native page defined in {@link NativePageType}. */ private static @NativePageType int nativePageType( -- GURL url, NativePage candidatePage, boolean isIncognito, boolean isPdf) { -+ GURL url, NativePage candidatePage, boolean isIncognito, boolean isPdf, +- GURL url, NativePage candidatePage, boolean isIncognito, boolean hasPdfDownload) { ++ GURL url, NativePage candidatePage, boolean isIncognito, boolean hasPdfDownload, + boolean isAlwaysIncognito) { - if (!isPdf) { + if (hasPdfDownload) { + // For navigation with associated pdf download (e.g. open a pdf link), pdf page should + // be created. +@@ -213,7 +218,7 @@ public interface NativePage { + // created after the pdf document is re-downloaded in other parts of the code. + return NativePageType.NONE; + } else { - return chromePageType(url, candidatePage, isIncognito); + return chromePageType(url, candidatePage, isIncognito, isAlwaysIncognito); } + } - if (candidatePage != null && candidatePage.getUrl().equals(url.getSpec())) { -@@ -214,7 +220,7 @@ public interface NativePage { +@@ -225,7 +230,7 @@ public interface NativePage { * which do not have chrome or chrome-native scheme. */ private static @NativePageType int chromePageType( @@ -1867,7 +1878,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/ String host = url.getHost(); String scheme = url.getScheme(); if (!UrlConstants.CHROME_NATIVE_SCHEME.equals(scheme) -@@ -234,7 +240,8 @@ public interface NativePage { +@@ -245,7 +250,8 @@ public interface NativePage { return NativePageType.DOWNLOADS; } else if (UrlConstants.HISTORY_HOST.equals(host)) { return NativePageType.HISTORY; @@ -1880,7 +1891,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 -@@ -1297,6 +1297,31 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1305,6 +1305,31 @@ Your Google account may have other forms of browsing history like searches and a Deletes history from all synced devices @@ -1915,7 +1926,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 -@@ -162,6 +162,7 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro +@@ -159,6 +159,7 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro protected String mFormattedFullUrl; protected String mUrlForDisplay; private boolean mOmniboxUpdatedConnectionSecurityIndicatorsEnabled; @@ -1923,7 +1934,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 -@@ -185,7 +186,9 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro +@@ -182,7 +183,9 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro Context context, NewTabPageDelegate newTabPageDelegate, @NonNull UrlFormatter urlFormatter, @@ -1980,7 +1991,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 -@@ -4077,6 +4077,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] = +@@ -4142,6 +4142,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] = "net.out_of_process_system_dns_resolution_enabled"; #endif // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) @@ -1996,7 +2007,7 @@ diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h diff --git a/components/content_settings/core/browser/content_settings_pref_provider.cc b/components/content_settings/core/browser/content_settings_pref_provider.cc --- a/components/content_settings/core/browser/content_settings_pref_provider.cc +++ b/components/content_settings/core/browser/content_settings_pref_provider.cc -@@ -96,10 +96,12 @@ void PrefProvider::RegisterProfilePrefs( +@@ -98,10 +98,12 @@ void PrefProvider::RegisterProfilePrefs( PrefProvider::PrefProvider(PrefService* prefs, bool off_the_record, @@ -2009,7 +2020,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov store_last_modified_(store_last_modified), clock_(base::DefaultClock::GetInstance()) { TRACE_EVENT_BEGIN("startup", "PrefProvider::PrefProvider"); -@@ -122,11 +124,13 @@ PrefProvider::PrefProvider(PrefService* prefs, +@@ -124,11 +126,13 @@ PrefProvider::PrefProvider(PrefService* prefs, WebsiteSettingsRegistry* website_settings = WebsiteSettingsRegistry::GetInstance(); for (const WebsiteSettingsInfo* info : *website_settings) { @@ -2046,7 +2057,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov diff --git a/components/content_settings/core/browser/host_content_settings_map.cc b/components/content_settings/core/browser/host_content_settings_map.cc --- a/components/content_settings/core/browser/host_content_settings_map.cc +++ b/components/content_settings/core/browser/host_content_settings_map.cc -@@ -270,6 +270,7 @@ struct ContentSettingEntry { +@@ -264,6 +264,7 @@ struct ContentSettingEntry { HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, bool is_off_the_record, @@ -2054,7 +2065,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map. bool store_last_modified, bool restore_session, bool should_record_metrics) -@@ -279,6 +280,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, +@@ -273,6 +274,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, #endif prefs_(prefs), is_off_the_record_(is_off_the_record), @@ -2062,7 +2073,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map. store_last_modified_(store_last_modified), allow_invalid_secondary_pattern_for_testing_(false), clock_(base::DefaultClock::GetInstance()) { -@@ -292,7 +294,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, +@@ -286,7 +288,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, policy_provider->AddObserver(this); auto pref_provider_ptr = std::make_unique( @@ -2082,7 +2093,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map. bool store_last_modified, bool restore_session, bool should_record_metrics); -@@ -507,6 +508,8 @@ class HostContentSettingsMap : public content_settings::Observer, +@@ -510,6 +511,8 @@ class HostContentSettingsMap : public content_settings::Observer, // Whether this settings map is for an incognito or guest session. bool is_off_the_record_; @@ -2094,7 +2105,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map. diff --git a/components/omnibox/browser/autocomplete_provider_client.cc b/components/omnibox/browser/autocomplete_provider_client.cc --- a/components/omnibox/browser/autocomplete_provider_client.cc +++ b/components/omnibox/browser/autocomplete_provider_client.cc -@@ -38,3 +38,7 @@ base::WeakPtr +@@ -46,3 +46,7 @@ base::WeakPtr AutocompleteProviderClient::GetWeakPtr() { return nullptr; } @@ -2116,7 +2127,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 -@@ -376,7 +376,7 @@ bool BaseSearchProvider::CanSendSuggestRequestWithoutPageURL( +@@ -386,7 +386,7 @@ bool BaseSearchProvider::CanSendSuggestRequestWithoutPageURL( } // Don't make a suggest request if in incognito mode. diff --git a/build/patches/Add-bookmark-import-export-actions.patch b/build/patches/Add-bookmark-import-export-actions.patch index de86251d..88987207 100644 --- a/build/patches/Add-bookmark-import-export-actions.patch +++ b/build/patches/Add-bookmark-import-export-actions.patch @@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../menu/bookmark_toolbar_menu_improved.xml | 14 + .../browser/TabbedModeTabDelegateFactory.java | 5 +- .../app/bookmarks/BookmarkActivity.java | 32 ++ - .../browser/bookmarks/BookmarkBridge.java | 285 +++++++++++++++++ + .../browser/bookmarks/BookmarkBridge.java | 285 ++++++++++++++++++ .../browser/bookmarks/BookmarkDelegate.java | 10 + .../bookmarks/BookmarkManagerCoordinator.java | 9 + .../bookmarks/BookmarkManagerMediator.java | 23 ++ @@ -26,8 +26,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../bookmarks/BookmarkToolbarViewBinder.java | 6 + .../native_page/NativePageFactory.java | 11 +- chrome/browser/BUILD.gn | 11 +- - .../bookmarks/android/bookmark_bridge.cc | 287 ++++++++++++++++++ - .../bookmarks/android/bookmark_bridge.h | 30 +- + .../bookmarks/android/bookmark_bridge.cc | 282 +++++++++++++++++ + .../bookmarks/android/bookmark_bridge.h | 29 +- .../browser/bookmarks/bookmark_html_writer.cc | 11 + .../dialogs/DownloadLocationCustomView.java | 8 +- .../DownloadLocationDialogCoordinator.java | 10 +- @@ -53,7 +53,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html ui/shell_dialogs/select_file_dialog_linux.cc | 4 + ui/shell_dialogs/select_file_dialog_linux.h | 2 + ui/shell_dialogs/select_file_dialog_win.cc | 5 + - 42 files changed, 919 insertions(+), 30 deletions(-) + 42 files changed, 913 insertions(+), 30 deletions(-) create mode 100644 cromite_flags/chrome/browser/about_flags_cc/add-bookmark-import-export-actions.inc create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/add-bookmark-import-export-actions.inc create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/add-bookmark-import-export-actions.inc @@ -542,7 +542,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm import org.chromium.ui.modaldialog.ModalDialogManager; import org.chromium.ui.modaldialog.ModalDialogManager.ModalDialogType; import org.chromium.ui.modelutil.MVCListAdapter.ModelList; -@@ -303,6 +305,13 @@ public class BookmarkManagerCoordinator +@@ -302,6 +304,13 @@ public class BookmarkManagerCoordinator // Public API implementation. @@ -559,15 +559,15 @@ 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 -@@ -52,6 +52,8 @@ import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelega +@@ -53,6 +53,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; + import org.chromium.components.power_bookmarks.PowerBookmarkType; @@ -81,6 +83,9 @@ class BookmarkManagerMediator private static boolean sPreventLoadingForTesting; @@ -578,7 +578,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; -@@ -568,6 +573,14 @@ class BookmarkManagerMediator +@@ -544,6 +549,14 @@ class BookmarkManagerMediator mNativePage = nativePage; } @@ -593,7 +593,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. -@@ -748,6 +761,16 @@ class BookmarkManagerMediator +@@ -724,6 +737,16 @@ class BookmarkManagerMediator } } @@ -814,7 +814,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -203,6 +203,8 @@ static_library("browser") { +@@ -201,6 +201,8 @@ static_library("browser") { "bluetooth/chrome_bluetooth_delegate_impl_client.h", "bookmarks/bookmark_model_factory.cc", "bookmarks/bookmark_model_factory.h", @@ -823,7 +823,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") { +@@ -1958,6 +1960,13 @@ static_library("browser") { ] } @@ -837,7 +837,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn configs += [ "//build/config/compiler:wexit_time_destructors", "//build/config:precompiled_headers", -@@ -3746,8 +3755,6 @@ static_library("browser") { +@@ -3727,8 +3736,6 @@ static_library("browser") { "badging/badge_manager_factory.h", "banners/app_banner_manager_desktop.cc", "banners/app_banner_manager_desktop.h", @@ -878,7 +878,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse // Must come after all headers that specialize FromJniType() / ToJniType(). #include "chrome/android/chrome_jni_headers/BookmarkBridge_jni.h" -@@ -77,12 +99,96 @@ using bookmarks::android::JavaBookmarkIdGetType; +@@ -77,12 +99,97 @@ using bookmarks::android::JavaBookmarkIdGetType; using content::BrowserThread; using power_bookmarks::PowerBookmarkMeta; @@ -910,14 +910,15 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse + return true; + + GURL fixed_url(url_formatter::FixupURL(url.spec(), std::string())); -+ for (size_t i = 0; i < chrome::kNumberOfChromeHostURLs; ++i) { -+ if (fixed_url.DomainIs(chrome::kChromeHostURLs[i])) ++ const base::span hosts = chrome::ChromeURLHosts(); ++ for (const base::cstring_view host : hosts) { ++ if (fixed_url.DomainIs(host)) { + return true; ++ } + } + -+ for (size_t i = 0; i < chrome::kNumberOfChromeDebugURLs; ++i) { -+ if (fixed_url == chrome::kChromeDebugURLs[i]) -+ return true; ++ if (base::Contains(chrome::ChromeDebugURLs(), fixed_url)) { ++ return true; + } + + // If url has either chrome:// or about: schemes but wasn't found in the @@ -975,7 +976,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse class BookmarkTitleComparer { public: explicit BookmarkTitleComparer(BookmarkBridge* bookmark_bridge, -@@ -223,6 +329,10 @@ BookmarkBridge::~BookmarkBridge() { +@@ -223,6 +330,10 @@ BookmarkBridge::~BookmarkBridge() { partner_bookmarks_shim_observation_.Reset(); bookmark_model_observation_.Reset(); profile_observation_.Reset(); @@ -986,7 +987,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse } void BookmarkBridge::Destroy(JNIEnv* env) { -@@ -762,6 +872,183 @@ jint BookmarkBridge::GetTotalBookmarkCount( +@@ -762,6 +873,177 @@ jint BookmarkBridge::GetTotalBookmarkCount( return count; } @@ -1007,10 +1008,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse + ui::SelectFileDialog::FileTypeInfo file_type_info; + + const std::vector v_accept_types = { u"text/html" }; -+ -+ // Android needs the original MIME types and an additional capture value. -+ std::pair, bool> accept_types = -+ std::make_pair(v_accept_types, /* use_media_capture */ false); ++ select_file_dialog_->SetAcceptTypes(v_accept_types); + + select_file_dialog_->SelectFile( + ui::SelectFileDialog::SELECT_OPEN_FILE, @@ -1019,8 +1017,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse + &file_type_info, + 0, + base::FilePath::StringType(), -+ window, -+ &accept_types ++ window + ); +} + @@ -1068,8 +1065,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse + return std::make_unique(data); +} + -+void BookmarkBridge::FileSelected(const ui::SelectedFileInfo& file, int index, -+ void* params) { ++void BookmarkBridge::FileSelected(const ui::SelectedFileInfo& file, int index) { + base::FilePath path = file.path(); + base::ThreadPool::PostTaskAndReplyWithResult( + FROM_HERE, {base::TaskPriority::BEST_EFFORT, base::MayBlock()}, @@ -1164,8 +1160,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse + LOG(INFO) << result; +} + -+void BookmarkBridge::FileSelectionCanceled(void* params) { -+} ++void BookmarkBridge::FileSelectionCanceled() {} + void BookmarkBridge::SetBookmarkTitle(JNIEnv* env, jlong id, @@ -1201,20 +1196,19 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser public: // All of the injected pointers must be non-null and must outlive `this`. BookmarkBridge(Profile* profile, -@@ -81,6 +86,12 @@ class BookmarkBridge : public ProfileObserver, +@@ -81,6 +86,11 @@ class BookmarkBridge : public ProfileObserver, bool IsDoingExtensiveChanges(JNIEnv* env); + // SelectFileDialog::Listener implementation. + void FileSelected(const ui::SelectedFileInfo& file, -+ int index, -+ void* params) override; -+ void FileSelectionCanceled(void* params) override; ++ int index) override; ++ void FileSelectionCanceled() override; + jboolean IsEditBookmarksEnabled(JNIEnv* env); void LoadEmptyPartnerBookmarkShimForTesting(JNIEnv* env); -@@ -93,6 +104,15 @@ class BookmarkBridge : public ProfileObserver, +@@ -93,6 +103,15 @@ class BookmarkBridge : public ProfileObserver, jlong id, jint type); @@ -1230,7 +1224,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser void GetAllFoldersWithDepths( JNIEnv* env, const base::android::JavaParamRef& j_folders_obj, -@@ -363,6 +383,9 @@ class BookmarkBridge : public ProfileObserver, +@@ -363,6 +382,9 @@ class BookmarkBridge : public ProfileObserver, void CreateOrDestroyAccountReadingListManagerIfNeeded(); const raw_ptr profile_; // weak @@ -1240,7 +1234,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser base::android::ScopedJavaGlobalRef java_bookmark_model_; const raw_ptr bookmark_model_; // weak const raw_ptr -@@ -377,6 +400,7 @@ class BookmarkBridge : public ProfileObserver, +@@ -377,6 +399,7 @@ class BookmarkBridge : public ProfileObserver, std::unique_ptr grouped_bookmark_actions_; PrefChangeRegistrar pref_change_registrar_; @@ -1248,7 +1242,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. -@@ -408,6 +432,10 @@ class BookmarkBridge : public ProfileObserver, +@@ -408,6 +431,10 @@ class BookmarkBridge : public ProfileObserver, bool suppress_observer_notifications_ = false; @@ -1365,7 +1359,7 @@ 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 -@@ -188,6 +188,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -192,6 +192,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kCacheActivityTaskID, &kCastDeviceFilter, &kCCTAuthView, @@ -1376,7 +1370,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 -@@ -521,6 +521,7 @@ public abstract class ChromeFeatureList { +@@ -538,6 +538,7 @@ public abstract class ChromeFeatureList { public static final String VERTICAL_AUTOMOTIVE_BACK_BUTTON_TOOLBAR = "VerticalAutomotiveBackButtonToolbar"; public static final String VISITED_URL_RANKING_SERVICE = "VisitedURLRankingService"; @@ -1439,7 +1433,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro /** Whether Chrome is set as the default browser. Default value is false. */ public static final String CHROME_DEFAULT_BROWSER = "applink.chrome_default_browser"; -@@ -921,6 +923,7 @@ public final class ChromePreferenceKeys { +@@ -914,6 +916,7 @@ public final class ChromePreferenceKeys { AUTOFILL_ASSISTANT_PROACTIVE_HELP_ENABLED, APP_LAUNCH_LAST_KNOWN_ACTIVE_TAB_STATE, APP_LAUNCH_SEARCH_ENGINE_HAD_LOGO, @@ -1478,7 +1472,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 -@@ -395,6 +395,9 @@ static_library("common_lib") { +@@ -402,6 +402,9 @@ static_library("common_lib") { sources += [ "media/chrome_media_drm_bridge_client.cc", "media/chrome_media_drm_bridge_client.h", @@ -1616,7 +1610,7 @@ diff --git a/chrome/utility/importer/bookmark_html_reader.h b/chrome/utility/imp diff --git a/components/headless/select_file_dialog/headless_select_file_dialog.cc b/components/headless/select_file_dialog/headless_select_file_dialog.cc --- a/components/headless/select_file_dialog/headless_select_file_dialog.cc +++ b/components/headless/select_file_dialog/headless_select_file_dialog.cc -@@ -58,6 +58,10 @@ class HeadlessSelectFileDialog : public ui::SelectFileDialog { +@@ -57,6 +57,10 @@ class HeadlessSelectFileDialog : public ui::SelectFileDialog { // ui::SelectFileDialog: bool HasMultipleFileTypeChoicesImpl() override { return false; } @@ -1752,7 +1746,7 @@ diff --git a/ui/android/java/strings/android_ui_strings.grd b/ui/android/java/st diff --git a/ui/shell_dialogs/select_file_dialog.h b/ui/shell_dialogs/select_file_dialog.h --- a/ui/shell_dialogs/select_file_dialog.h +++ b/ui/shell_dialogs/select_file_dialog.h -@@ -209,6 +209,8 @@ class SHELL_DIALOGS_EXPORT SelectFileDialog +@@ -220,6 +220,8 @@ class SHELL_DIALOGS_EXPORT SelectFileDialog const GURL* caller = nullptr); bool HasMultipleFileTypeChoices(); @@ -1764,7 +1758,7 @@ diff --git a/ui/shell_dialogs/select_file_dialog.h b/ui/shell_dialogs/select_fil diff --git a/ui/shell_dialogs/select_file_dialog_android.cc b/ui/shell_dialogs/select_file_dialog_android.cc --- a/ui/shell_dialogs/select_file_dialog_android.cc +++ b/ui/shell_dialogs/select_file_dialog_android.cc -@@ -139,6 +139,12 @@ void SelectFileDialogImpl::SelectFileImpl( +@@ -129,6 +129,12 @@ void SelectFileDialogImpl::SelectFileImpl( owning_window->GetJavaObject()); } @@ -1780,8 +1774,8 @@ diff --git a/ui/shell_dialogs/select_file_dialog_android.cc b/ui/shell_dialogs/s diff --git a/ui/shell_dialogs/select_file_dialog_android.h b/ui/shell_dialogs/select_file_dialog_android.h --- a/ui/shell_dialogs/select_file_dialog_android.h +++ b/ui/shell_dialogs/select_file_dialog_android.h -@@ -58,6 +58,8 @@ class SelectFileDialogImpl : public SelectFileDialog { - void* params, +@@ -52,6 +52,8 @@ class SelectFileDialogImpl : public SelectFileDialog { + gfx::NativeWindow owning_window, const GURL* caller) override; + void ShowToast(const std::string& message) override; @@ -1818,7 +1812,7 @@ diff --git a/ui/shell_dialogs/select_file_dialog_linux.h b/ui/shell_dialogs/sele diff --git a/ui/shell_dialogs/select_file_dialog_win.cc b/ui/shell_dialogs/select_file_dialog_win.cc --- a/ui/shell_dialogs/select_file_dialog_win.cc +++ b/ui/shell_dialogs/select_file_dialog_win.cc -@@ -195,6 +195,7 @@ class SelectFileDialogImpl : public ui::SelectFileDialog, +@@ -193,6 +193,7 @@ class SelectFileDialogImpl : public ui::SelectFileDialog, int index); bool HasMultipleFileTypeChoicesImpl() override; @@ -1826,7 +1820,7 @@ diff --git a/ui/shell_dialogs/select_file_dialog_win.cc b/ui/shell_dialogs/selec // Returns the filter to be used while displaying the open/save file dialog. // This is computed from the extensions for the file types being opened. -@@ -273,6 +274,10 @@ bool SelectFileDialogImpl::HasMultipleFileTypeChoicesImpl() { +@@ -270,6 +271,10 @@ bool SelectFileDialogImpl::HasMultipleFileTypeChoicesImpl() { return has_multiple_file_type_choices_; } diff --git a/build/patches/Add-cromite-flags-support.patch b/build/patches/Add-cromite-flags-support.patch index 65f0436e..08bc9137 100644 --- a/build/patches/Add-cromite-flags-support.patch +++ b/build/patches/Add-cromite-flags-support.patch @@ -46,8 +46,8 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html components/components_strings.grd | 1 + .../content_settings/core/common/features.cc | 1 + .../placeholder.txt | 1 + - components/flags_ui/flags_state.cc | 55 +++++- - components/flags_ui/resources/app.html | 42 ++++- + components/flags_ui/flags_state.cc | 54 ++++++ + components/flags_ui/resources/app.html | 40 +++++ components/flags_ui/resources/app.ts | 41 ++++- components/flags_ui/resources/experiment.html | 7 +- components/flags_ui/resources/experiment.ts | 16 ++ @@ -96,7 +96,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html third_party/blink/public/common/features.h | 1 + ui/base/ui_base_features.cc | 1 + ui/base/ui_base_features.h | 1 + - 83 files changed, 771 insertions(+), 22 deletions(-) + 83 files changed, 770 insertions(+), 20 deletions(-) create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/include_all_directory.java create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/java_template/CromiteCachedFlag.java.tmpl create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-cromite-flags-support.grdp @@ -132,7 +132,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 -@@ -202,6 +202,8 @@ buildflag_header("message_pump_buildflags") { +@@ -196,6 +196,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") { @@ -141,7 +141,7 @@ diff --git a/base/BUILD.gn b/base/BUILD.gn sources = [ "allocator/allocator_check.cc", "allocator/allocator_check.h", -@@ -1054,7 +1056,7 @@ component("base") { +@@ -1050,7 +1052,7 @@ component("base") { "//build/config/compiler:wglobal_constructors", ] @@ -558,7 +558,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"; -@@ -373,6 +405,10 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -371,6 +403,10 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity ((PrivacySandboxSettingsBaseFragment) fragment) .setSnackbarManager(getSnackbarManager()); } @@ -572,7 +572,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 -@@ -370,6 +370,10 @@ using flags_ui::kOsLinux; +@@ -375,6 +375,10 @@ using flags_ui::kOsLinux; using flags_ui::kOsMac; using flags_ui::kOsWin; @@ -583,9 +583,9 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc namespace about_flags { namespace { -@@ -4089,6 +4093,10 @@ const FeatureEntry::FeatureVariation kAutofillUpstreamUpdatedUiOptions[] = { - kAutofillUpstreamUpdatedUi_Education_Animated, - std::size(kAutofillUpstreamUpdatedUi_Education_Animated), nullptr}}; +@@ -4162,6 +4166,10 @@ const FeatureEntry::FeatureVariation + nullptr}}; + #endif // BUILDFLAG(ENABLE_EXTENSIONS) +#define FEATURE_PARAM_SECTION +#include "cromite_flags/chrome_browser_about_flags_cc.inc" @@ -594,7 +594,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. -@@ -4115,6 +4123,9 @@ const FeatureEntry::FeatureVariation kAutofillUpstreamUpdatedUiOptions[] = { +@@ -4188,6 +4196,9 @@ const FeatureEntry::FeatureVariation const FeatureEntry kFeatureEntries[] = { // Include generated flags for flag unexpiry; see //docs/flag_expiry.md and // //tools/flags/generate_unexpire_flags.py. @@ -607,7 +607,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/browser_features.cc b/chrome/browser/browser_features.cc --- a/chrome/browser/browser_features.cc +++ b/chrome/browser/browser_features.cc -@@ -401,4 +401,5 @@ BASE_FEATURE(kBrowserDynamicCodeDisabled, +@@ -378,4 +378,5 @@ BASE_FEATURE(kBrowserDynamicCodeDisabled, base::FEATURE_DISABLED_BY_DEFAULT); #endif // BUILDFLAG(IS_WIN) @@ -655,7 +655,7 @@ diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -1018,5 +1018,6 @@ BASE_FEATURE(kWebApkAllowIconUpdate, +@@ -1052,5 +1052,6 @@ BASE_FEATURE(kWebApkAllowIconUpdate, "WebApkAllowIconUpdate", base::FEATURE_DISABLED_BY_DEFAULT); @@ -665,9 +665,9 @@ 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 -@@ -193,6 +193,7 @@ constexpr base::FeatureParam kAuxiliarySearchMaxTabsCountParam( - "auxiliary_search_max_donation_tab", - 100); +@@ -204,6 +204,7 @@ constexpr base::FeatureParam kQuickDeleteAndroidSurveyTriggerId( + "trigger_id", + /*default_value=*/""); +#include "cromite_flags/chrome_browser_flags_android_chrome_feature_list_h.inc" } // namespace android @@ -687,18 +687,18 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f import java.util.List; import java.util.Map; -@@ -695,7 +699,7 @@ public abstract class ChromeFeatureList { - public static final CachedFlag sVerticalAutomotiveBackButtonToolbar = - newCachedFlag(VERTICAL_AUTOMOTIVE_BACK_BUTTON_TOOLBAR, true); +@@ -721,7 +725,7 @@ public abstract class ChromeFeatureList { + public static final CachedFlag sWebApkMinShellApkVersion = + newCachedFlag(WEB_APK_MIN_SHELL_APK_VERSION, true); - public static final List sFlagsCachedFullBrowser = + public static final List sFlagsCachedFullBrowserChromium = List.of( sAccountReauthenticationRecentTimeWindow, sAndroidAppIntegration, -@@ -788,6 +792,13 @@ public abstract class ChromeFeatureList { - sUseLibunwindstackNativeUnwinderAndroid, - sVerticalAutomotiveBackButtonToolbar); +@@ -817,6 +821,13 @@ public abstract class ChromeFeatureList { + sVerticalAutomotiveBackButtonToolbar, + sWebApkMinShellApkVersion); + private static List concatenateLists(List... collections) { + return Arrays.stream(collections).flatMap(x -> x.stream()).collect(Collectors.toList()); @@ -771,7 +771,7 @@ new file mode 100644 diff --git a/chrome/browser/settings/BUILD.gn b/chrome/browser/settings/BUILD.gn --- a/chrome/browser/settings/BUILD.gn +++ b/chrome/browser/settings/BUILD.gn -@@ -14,6 +14,7 @@ android_library("java") { +@@ -32,6 +32,7 @@ android_library("java") { deps = [ "//base:base_java", "//chrome/browser/feedback/android:java", @@ -877,16 +877,16 @@ 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 -@@ -517,4 +517,5 @@ BASE_FEATURE(kStopLoadingAnimationForHiddenWindow, - "StopLoadingAnimationForHiddenWindow", +@@ -463,4 +463,5 @@ BASE_FEATURE(kUsePortalAccentColor, base::FEATURE_ENABLED_BY_DEFAULT); + #endif +#include "cromite_flags/chrome_browser_ui_ui_features_cc.inc" } // namespace features 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 -@@ -1674,4 +1674,5 @@ BASE_FEATURE(kEventBasedLogUpload, +@@ -1744,4 +1744,5 @@ BASE_FEATURE(kPeriodicLogUploadMigration, base::FEATURE_DISABLED_BY_DEFAULT); #endif // BUILDFLAG(IS_CHROMEOS_ASH) @@ -993,11 +993,10 @@ new file mode 100644 diff --git a/components/flags_ui/flags_state.cc b/components/flags_ui/flags_state.cc --- a/components/flags_ui/flags_state.cc +++ b/components/flags_ui/flags_state.cc -@@ -359,7 +359,21 @@ void FlagsState::GetSwitchesAndFeaturesFromFlags( +@@ -360,6 +360,21 @@ void FlagsState::GetSwitchesAndFeaturesFromFlags( for (const std::string& entry_name : enabled_entries) { const auto& entry_it = name_to_switch_map.find(entry_name); -- DCHECK(entry_it != name_to_switch_map.end()); + if (entry_it == name_to_switch_map.end()) { + // check if is a cromite feature + std::string::size_type pos = entry_name.find('@'); @@ -1013,10 +1012,10 @@ diff --git a/components/flags_ui/flags_state.cc b/components/flags_ui/flags_stat + } + NOTREACHED_NORETURN(); + } + CHECK(entry_it != name_to_switch_map.end(), base::NotFatalUntil::M130); const SwitchEntry& entry = entry_it->second; - if (!entry.switch_name.empty()) -@@ -676,6 +690,27 @@ void FlagsState::GetFlagFeatureEntries( +@@ -677,6 +692,27 @@ void FlagsState::GetFlagFeatureEntries( data.Set("links", std::move(links)); } @@ -1044,7 +1043,7 @@ diff --git a/components/flags_ui/flags_state.cc b/components/flags_ui/flags_stat switch (entry.type) { case FeatureEntry::SINGLE_VALUE: case FeatureEntry::SINGLE_DISABLE_VALUE: -@@ -804,6 +839,16 @@ void FlagsState::AddSwitchesToCommandLine( +@@ -805,6 +841,16 @@ void FlagsState::AddSwitchesToCommandLine( for (const std::string& entry_name : enabled_entries) { const auto& entry_it = name_to_switch_map.find(entry_name); if (entry_it == name_to_switch_map.end()) { @@ -1061,7 +1060,7 @@ diff --git a/components/flags_ui/flags_state.cc b/components/flags_ui/flags_stat NOTREACHED_IN_MIGRATION(); continue; } -@@ -1056,6 +1101,14 @@ const FeatureEntry* FlagsState::FindFeatureEntryByName( +@@ -1057,6 +1103,14 @@ const FeatureEntry* FlagsState::FindFeatureEntryByName( bool FlagsState::IsSupportedFeature(const FlagsStorage* storage, const std::string& name, int platform_mask) const { @@ -1112,9 +1111,9 @@ diff --git a/components/flags_ui/resources/app.html b/components/flags_ui/resour + + + diff --git a/components/flags_ui/resources/app.ts b/components/flags_ui/resources/app.ts @@ -1383,16 +1379,16 @@ diff --git a/components/offline_pages/core/offline_page_feature.h b/components/o diff --git a/components/password_manager/core/browser/features/password_features.cc b/components/password_manager/core/browser/features/password_features.cc --- a/components/password_manager/core/browser/features/password_features.cc +++ b/components/password_manager/core/browser/features/password_features.cc -@@ -207,4 +207,5 @@ BASE_FEATURE(kUsernameFirstFlowWithIntermediateValuesVoting, - "UsernameFirstFlowWithIntermediateValuesVoting", - base::FEATURE_ENABLED_BY_DEFAULT); +@@ -192,4 +192,5 @@ BASE_FEATURE(kUseAsyncOsCryptInLoginDatabase, + "UseAsyncOsCryptInLoginDatabase", + base::FEATURE_DISABLED_BY_DEFAULT); +#include "cromite_flags/components_password_manager_core_browser_features_password_features_cc.inc" } // namespace password_manager::features diff --git a/components/permissions/features.cc b/components/permissions/features.cc --- a/components/permissions/features.cc +++ b/components/permissions/features.cc -@@ -149,6 +149,7 @@ BASE_FEATURE(kCpssQuietChipTextUpdate, +@@ -150,6 +150,7 @@ BASE_FEATURE(kCpssQuietChipTextUpdate, "CpssQuietChipTextUpdate", base::FEATURE_DISABLED_BY_DEFAULT); @@ -1415,7 +1411,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 -@@ -584,4 +584,5 @@ BASE_FEATURE(kScrollBubblingFix, +@@ -607,4 +607,5 @@ BASE_FEATURE(kScrollBubblingFix, // Please keep features in alphabetical order. @@ -1424,7 +1420,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 -@@ -1295,4 +1295,5 @@ bool IsVideoCaptureServiceEnabledForBrowserProcess() { +@@ -1334,4 +1334,5 @@ bool IsVideoCaptureServiceEnabledForBrowserProcess() { VideoCaptureServiceConfiguration::kEnabledForBrowserProcess; } @@ -1433,7 +1429,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 -@@ -286,6 +286,7 @@ CONTENT_EXPORT BASE_DECLARE_FEATURE(kWebRtcPipeWireCapturer); +@@ -292,6 +292,7 @@ CONTENT_EXPORT BASE_DECLARE_FEATURE(kWebRtcPipeWireCapturer); CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForOutOfProcess(); CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForBrowserProcess(); @@ -1767,7 +1763,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 -@@ -1904,5 +1904,5 @@ uint32_t GetPassthroughAudioFormats() { +@@ -1917,5 +1917,5 @@ uint32_t GetPassthroughAudioFormats() { return 0; #endif // BUILDFLAG(ENABLE_PASSTHROUGH_AUDIO_CODECS) } @@ -1777,7 +1773,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 -@@ -576,5 +576,5 @@ MEDIA_EXPORT OOPVDMode GetOutOfProcessVideoDecodingMode(); +@@ -583,5 +583,5 @@ MEDIA_EXPORT OOPVDMode GetOutOfProcessVideoDecodingMode(); MEDIA_EXPORT uint32_t GetPassthroughAudioFormats(); } // namespace media @@ -1787,18 +1783,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 -@@ -549,4 +549,5 @@ BASE_FEATURE(kSpdySessionForProxyAdditionalChecks, - "SpdySessionForProxyAdditionalChecks", - base::FEATURE_ENABLED_BY_DEFAULT); +@@ -570,4 +570,5 @@ BASE_FEATURE(kOptimizeParsingDataUrls, + "OptimizeParsingDataUrls", + base::FEATURE_DISABLED_BY_DEFAULT); +#include "cromite_flags/net_base_features_cc.inc" } // namespace net::features diff --git a/net/base/features.h b/net/base/features.h --- a/net/base/features.h +++ b/net/base/features.h -@@ -522,6 +522,7 @@ NET_EXPORT BASE_DECLARE_FEATURE(kStorageAccessHeaders); - // not causing any problems. - NET_EXPORT BASE_DECLARE_FEATURE(kSpdySessionForProxyAdditionalChecks); +@@ -562,6 +562,7 @@ NET_EXPORT BASE_DECLARE_FEATURE(kReportingApiEnableEnterpriseCookieIssues); + // Optimize parsing data: URLs. + NET_EXPORT BASE_DECLARE_FEATURE(kOptimizeParsingDataUrls); +#include "cromite_flags/net_base_features_h.inc" } // namespace net::features @@ -1807,7 +1803,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 -@@ -518,4 +518,5 @@ const base::FeatureParam kNetworkContextPrefetchMaxLoaders{ +@@ -474,4 +474,5 @@ const base::FeatureParam kNetworkContextPrefetchMaxLoaders{ &kNetworkContextPrefetch, /*name=*/"max_loaders", /*default_value=*/10}; @@ -1816,7 +1812,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 -@@ -212,6 +212,7 @@ BASE_DECLARE_FEATURE(kNetworkContextPrefetch); +@@ -187,6 +187,7 @@ BASE_DECLARE_FEATURE(kNetworkContextPrefetch); COMPONENT_EXPORT(NETWORK_CPP) extern const base::FeatureParam kNetworkContextPrefetchMaxLoaders; @@ -1827,7 +1823,7 @@ diff --git a/services/network/public/cpp/features.h b/services/network/public/cp diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc --- a/third_party/blink/common/features.cc +++ b/third_party/blink/common/features.cc -@@ -2677,5 +2677,6 @@ BASE_FEATURE(kOptimizeLoadingDataUrls, +@@ -2691,5 +2691,6 @@ BASE_FEATURE(kOptimizeLoadingDataUrls, "OptimizeLoadingDataUrls", base::FEATURE_DISABLED_BY_DEFAULT); @@ -1837,7 +1833,7 @@ diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/fea diff --git a/third_party/blink/public/common/features.h b/third_party/blink/public/common/features.h --- a/third_party/blink/public/common/features.h +++ b/third_party/blink/public/common/features.h -@@ -1744,6 +1744,7 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kRenderSizeInScoreAdBrowserSignals); +@@ -1787,6 +1787,7 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kRenderSizeInScoreAdBrowserSignals); // Optimize loading data: URLs. BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kOptimizeLoadingDataUrls); @@ -1848,8 +1844,8 @@ diff --git a/third_party/blink/public/common/features.h b/third_party/blink/publ diff --git a/ui/base/ui_base_features.cc b/ui/base/ui_base_features.cc --- a/ui/base/ui_base_features.cc +++ b/ui/base/ui_base_features.cc -@@ -521,4 +521,5 @@ BASE_FEATURE(kEnableGestureBeginEndTypes, - "EnableGestureBeginEndTypes", +@@ -546,4 +546,5 @@ BASE_FEATURE(kAsyncFullscreenWindowState, + "AsyncFullscreenWindowState", base::FEATURE_DISABLED_BY_DEFAULT); +#include "cromite_flags/ui_base_features_cc.inc" @@ -1857,9 +1853,9 @@ diff --git a/ui/base/ui_base_features.cc b/ui/base/ui_base_features.cc diff --git a/ui/base/ui_base_features.h b/ui/base/ui_base_features.h --- a/ui/base/ui_base_features.h +++ b/ui/base/ui_base_features.h -@@ -245,6 +245,7 @@ BASE_DECLARE_FEATURE(kBubbleFrameViewTitleIsHeading); +@@ -261,6 +261,7 @@ BASE_DECLARE_FEATURE(kUseUtf8EncodingForSvgImage); COMPONENT_EXPORT(UI_BASE_FEATURES) - BASE_DECLARE_FEATURE(kEnableGestureBeginEndTypes); + BASE_DECLARE_FEATURE(kAsyncFullscreenWindowState); +#include "cromite_flags/ui_base_features_h.inc" } // namespace features diff --git a/build/patches/Add-custom-tab-intents-privacy-option.patch b/build/patches/Add-custom-tab-intents-privacy-option.patch index 533b8f7c..b52d9089 100644 --- a/build/patches/Add-custom-tab-intents-privacy-option.patch +++ b/build/patches/Add-custom-tab-intents-privacy-option.patch @@ -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 -@@ -867,6 +867,7 @@ public class CustomTabsConnection { +@@ -912,6 +912,7 @@ public class CustomTabsConnection { PostTask.postTask( TaskTraits.UI_DEFAULT, () -> { @@ -119,7 +119,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Inco /** * A model class that parses the incoming intent for incognito and ephemeral Custom Tabs specific * customization data. -@@ -130,6 +133,9 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD +@@ -131,6 +134,9 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD } private static boolean isIntentFromThirdPartyAllowed() { @@ -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 -@@ -5449,6 +5449,20 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -5699,6 +5699,20 @@ To change this setting, BEGIN_LINKdelete the Chrome d Resume diff --git a/build/patches/Add-exit-menu-item.patch b/build/patches/Add-exit-menu-item.patch index 389c2894..0f7265ea 100644 --- a/build/patches/Add-exit-menu-item.patch +++ b/build/patches/Add-exit-menu-item.patch @@ -16,7 +16,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml --- a/chrome/android/java/res/menu/main_menu.xml +++ b/chrome/android/java/res/menu/main_menu.xml -@@ -160,6 +160,9 @@ found in the LICENSE file. +@@ -163,6 +163,9 @@ found in the LICENSE file. @@ -26,7 +26,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re -@@ -186,6 +189,9 @@ found in the LICENSE file. +@@ -192,6 +195,9 @@ found in the LICENSE file. @@ -58,7 +58,7 @@ 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 -@@ -268,6 +268,8 @@ import java.util.Set; +@@ -263,6 +263,8 @@ import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; import java.util.function.DoubleConsumer; @@ -67,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. -@@ -2960,6 +2962,8 @@ public class ChromeTabbedActivity extends ChromeActivity +@@ -2518,6 +2519,11 @@ public abstract class ChromeActivity return true; } @@ -102,7 +102,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv 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 -@@ -4064,6 +4064,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4296,6 +4296,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d Dark theme diff --git a/build/patches/Add-flag-for-omnibox-autocomplete-filtering.patch b/build/patches/Add-flag-for-omnibox-autocomplete-filtering.patch index 3f1f7ecc..ca6859b5 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" -@@ -500,6 +501,15 @@ AutocompleteController::AutocompleteController( +@@ -530,6 +531,15 @@ AutocompleteController::AutocompleteController( provider_client_->GetOmniboxTriggeredFeatureService()), steady_state_omnibox_position_( metrics::OmniboxEventProto::UNKNOWN_POSITION) { @@ -45,7 +45,7 @@ diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/ diff --git a/components/omnibox/browser/history_url_provider.cc b/components/omnibox/browser/history_url_provider.cc --- a/components/omnibox/browser/history_url_provider.cc +++ b/components/omnibox/browser/history_url_provider.cc -@@ -487,6 +487,9 @@ void HistoryURLProvider::Start(const AutocompleteInput& input, +@@ -488,6 +488,9 @@ void HistoryURLProvider::Start(const AutocompleteInput& input, if (fixed_up_input.type() != metrics::OmniboxInputType::QUERY) matches_.push_back(what_you_typed_match); diff --git a/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch b/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch index dfceddc8..fbc9bdad 100644 --- a/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch +++ b/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch @@ -59,7 +59,7 @@ diff --git a/components/network_session_configurator/common/network_switch_list. diff --git a/components/url_formatter/spoof_checks/top_domains/BUILD.gn b/components/url_formatter/spoof_checks/top_domains/BUILD.gn --- a/components/url_formatter/spoof_checks/top_domains/BUILD.gn +++ b/components/url_formatter/spoof_checks/top_domains/BUILD.gn -@@ -89,6 +89,7 @@ executable("make_top_domain_list_variables") { +@@ -90,6 +90,7 @@ executable("make_top_domain_list_variables") { "//base:i18n", "//components/url_formatter/spoof_checks/common_words:common", "//third_party/icu", diff --git a/build/patches/Add-flag-to-disable-IPv6-probes.patch b/build/patches/Add-flag-to-disable-IPv6-probes.patch index fd65a850..26d33b91 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 -@@ -1047,6 +1047,7 @@ component("net") { +@@ -1077,6 +1077,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 @@ +@@ -114,6 +114,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" -@@ -1429,6 +1430,13 @@ int HostResolverManager::StartIPv6ReachabilityCheck( +@@ -1430,6 +1431,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 9d4b7e34..3b483be7 100644 --- a/build/patches/Add-flag-to-disable-vibration.patch +++ b/build/patches/Add-flag-to-disable-vibration.patch @@ -104,7 +104,7 @@ diff --git a/third_party/blink/renderer/platform/exported/web_runtime_features.c diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -672,6 +672,10 @@ +@@ -721,6 +721,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 a508e05e..7b6ebc5f 100644 --- a/build/patches/Add-kill-switch-for-unsupported-clangd-flags.patch +++ b/build/patches/Add-kill-switch-for-unsupported-clangd-flags.patch @@ -7,14 +7,14 @@ Allows build with clangd by suppressing unsupported parameters Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - build/config/compiler/BUILD.gn | 10 +++++++++- + build/config/compiler/BUILD.gn | 11 ++++++++++- build_overrides/build.gni | 3 +++ - 2 files changed, 12 insertions(+), 1 deletion(-) + 2 files changed, 13 insertions(+), 1 deletion(-) 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 -@@ -1920,7 +1920,6 @@ config("default_warnings") { +@@ -1950,7 +1950,6 @@ config("default_warnings") { # TODO(crbug.com/40284799): Fix and re-enable. "-Wno-thread-safety-reference-return", ] @@ -22,9 +22,9 @@ diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn cflags_cc += [ # TODO(crbug.com/328490295): Fix and re-enable for C flags. "-Wenum-compare-conditional", -@@ -1937,6 +1936,15 @@ config("default_warnings") { - cflags_cc += [ "-Wno-missing-template-arg-list-after-template-kw" ] - } +@@ -1965,6 +1964,16 @@ config("default_warnings") { + # TODO(crbug.com/344680447): Fix and re-enable. + cflags_cc += [ "-Wno-missing-template-arg-list-after-template-kw" ] } + if (skip_clangd_unsupported_options) { + cflags -= [ @@ -33,6 +33,7 @@ diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn + ] + cflags_cc -= [ + "-Wno-c++11-narrowing-const-reference", ++ "-Wno-missing-template-arg-list-after-template-kw", + ] + } } diff --git a/build/patches/Add-lifetime-options-for-permissions.patch b/build/patches/Add-lifetime-options-for-permissions.patch index 3c5ab86b..9c10bbb5 100644 --- a/build/patches/Add-lifetime-options-for-permissions.patch +++ b/build/patches/Add-lifetime-options-for-permissions.patch @@ -207,7 +207,7 @@ diff --git a/chrome/browser/permissions/one_time_permissions_tracker.h b/chrome/ ~OneTimePermissionsTracker() override; OneTimePermissionsTracker(const OneTimePermissionsTracker&) = delete; -@@ -139,7 +140,7 @@ class OneTimePermissionsTracker : public KeyedService { +@@ -138,7 +139,7 @@ class OneTimePermissionsTracker : public KeyedService { base::ObserverList observer_list_; std::map origin_tracker_; @@ -219,7 +219,7 @@ diff --git a/chrome/browser/permissions/one_time_permissions_tracker.h b/chrome/ diff --git a/chrome/browser/permissions/one_time_permissions_tracker_factory.cc b/chrome/browser/permissions/one_time_permissions_tracker_factory.cc --- a/chrome/browser/permissions/one_time_permissions_tracker_factory.cc +++ b/chrome/browser/permissions/one_time_permissions_tracker_factory.cc -@@ -41,5 +41,5 @@ bool OneTimePermissionsTrackerFactory::ServiceIsCreatedWithBrowserContext() +@@ -44,5 +44,5 @@ bool OneTimePermissionsTrackerFactory::ServiceIsCreatedWithBrowserContext() std::unique_ptr OneTimePermissionsTrackerFactory::BuildServiceInstanceForBrowserContext( content::BrowserContext* context) const { @@ -229,7 +229,7 @@ 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 -@@ -658,7 +658,7 @@ void EmbeddedPermissionPrompt::SendDelegateAction(Action action) { +@@ -650,7 +650,7 @@ void EmbeddedPermissionPrompt::SendDelegateAction(Action action) { delegate_->Accept(); break; case Action::kAllowThisTime: @@ -509,7 +509,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.cc --- a/components/page_info/page_info.cc +++ b/components/page_info/page_info.cc -@@ -1171,6 +1171,8 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, +@@ -1178,6 +1178,8 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, permission_info.is_one_time = (info.metadata.session_model() == content_settings::mojom::SessionModel::ONE_TIME); @@ -731,7 +731,7 @@ diff --git a/components/permissions/android/permission_prompt/permission_dialog_ diff --git a/components/permissions/android/permission_prompt/permission_prompt_android.cc b/components/permissions/android/permission_prompt/permission_prompt_android.cc --- a/components/permissions/android/permission_prompt/permission_prompt_android.cc +++ b/components/permissions/android/permission_prompt/permission_prompt_android.cc -@@ -62,8 +62,12 @@ void PermissionPromptAndroid::Accept() { +@@ -67,8 +67,12 @@ void PermissionPromptAndroid::Accept() { delegate_->Accept(); } @@ -749,7 +749,7 @@ diff --git a/components/permissions/android/permission_prompt/permission_prompt_ diff --git a/components/permissions/android/permission_prompt/permission_prompt_android.h b/components/permissions/android/permission_prompt/permission_prompt_android.h --- a/components/permissions/android/permission_prompt/permission_prompt_android.h +++ b/components/permissions/android/permission_prompt/permission_prompt_android.h -@@ -47,8 +47,9 @@ class PermissionPromptAndroid : public PermissionPrompt { +@@ -49,8 +49,9 @@ class PermissionPromptAndroid : public PermissionPrompt { void Closing(); void Accept(); @@ -920,7 +920,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr diff --git a/components/permissions/permission_context_base.cc b/components/permissions/permission_context_base.cc --- a/components/permissions/permission_context_base.cc +++ b/components/permissions/permission_context_base.cc -@@ -265,6 +265,17 @@ bool PermissionContextBase::UsesAutomaticEmbargo() const { +@@ -266,6 +266,17 @@ bool PermissionContextBase::UsesAutomaticEmbargo() const { return true; } @@ -938,7 +938,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm content::PermissionResult PermissionContextBase::GetPermissionStatus( content::RenderFrameHost* render_frame_host, const GURL& requesting_origin, -@@ -501,7 +512,8 @@ void PermissionContextBase::PermissionDecided(const PermissionRequestID& id, +@@ -502,7 +513,8 @@ void PermissionContextBase::PermissionDecided(const PermissionRequestID& id, const GURL& embedding_origin, ContentSetting content_setting, bool is_one_time, @@ -948,7 +948,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm DCHECK(content_setting == CONTENT_SETTING_ALLOW || content_setting == CONTENT_SETTING_BLOCK || content_setting == CONTENT_SETTING_DEFAULT); -@@ -516,13 +528,14 @@ void PermissionContextBase::PermissionDecided(const PermissionRequestID& id, +@@ -517,13 +529,14 @@ void PermissionContextBase::PermissionDecided(const PermissionRequestID& id, // missing if a permission prompt was preignored and we already notified an // origin about it. if (request->second.second) { @@ -967,7 +967,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm } } -@@ -590,11 +603,27 @@ void PermissionContextBase::NotifyPermissionSet( +@@ -591,11 +604,27 @@ void PermissionContextBase::NotifyPermissionSet( ContentSetting content_setting, bool is_one_time, bool is_final_decision) { @@ -996,7 +996,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm } if (is_final_decision) { -@@ -634,6 +663,15 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin, +@@ -635,6 +664,15 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin, const GURL& embedding_origin, ContentSetting content_setting, bool is_one_time) { @@ -1012,7 +1012,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm DCHECK_EQ(requesting_origin, requesting_origin.DeprecatedGetOriginAsURL()); DCHECK_EQ(embedding_origin, embedding_origin.DeprecatedGetOriginAsURL()); DCHECK(content_setting == CONTENT_SETTING_ALLOW || -@@ -643,6 +681,8 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin, +@@ -644,6 +682,8 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin, constraints.set_session_model( is_one_time ? content_settings::mojom::SessionModel::ONE_TIME : content_settings::mojom::SessionModel::DURABLE); @@ -1078,7 +1078,7 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi diff --git a/components/permissions/permission_prompt.h b/components/permissions/permission_prompt.h --- a/components/permissions/permission_prompt.h +++ b/components/permissions/permission_prompt.h -@@ -67,8 +67,9 @@ class PermissionPrompt { +@@ -68,8 +68,9 @@ class PermissionPrompt { virtual GURL GetEmbeddingOrigin() const = 0; virtual void Accept() = 0; @@ -1107,7 +1107,7 @@ diff --git a/components/permissions/permission_request.cc b/components/permissio PermissionRequest::~PermissionRequest() { DCHECK(delete_callback_.is_null()); } -@@ -370,19 +378,37 @@ bool PermissionRequest::ShouldUseTwoOriginPrompt() const { +@@ -386,19 +394,37 @@ bool PermissionRequest::ShouldUseTwoOriginPrompt() const { return request_type() == RequestType::kStorageAccess; } @@ -1199,7 +1199,7 @@ diff --git a/components/permissions/permission_request.h b/components/permission diff --git a/components/permissions/permission_request_manager.cc b/components/permissions/permission_request_manager.cc --- a/components/permissions/permission_request_manager.cc +++ b/components/permissions/permission_request_manager.cc -@@ -169,7 +169,7 @@ void PermissionRequestManager::AddRequest( +@@ -172,7 +172,7 @@ void PermissionRequestManager::AddRequest( if (base::CommandLine::ForCurrentProcess()->HasSwitch( switches::kDenyPermissionPrompts)) { @@ -1208,7 +1208,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p request->RequestFinished(); return; } -@@ -246,7 +246,7 @@ void PermissionRequestManager::AddRequest( +@@ -249,7 +249,7 @@ void PermissionRequestManager::AddRequest( if (should_auto_approve_request) { if (should_auto_approve_request == PermissionAction::GRANTED) { @@ -1217,7 +1217,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p } request->RequestFinished(); return; -@@ -615,7 +615,8 @@ void PermissionRequestManager::Accept() { +@@ -618,7 +618,8 @@ void PermissionRequestManager::Accept() { (*requests_iter)->request_type(), PermissionAction::GRANTED); PermissionGrantedIncludingDuplicates(*requests_iter, @@ -1227,7 +1227,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p #if !BUILDFLAG(IS_ANDROID) std::optional content_settings_type = -@@ -633,7 +634,7 @@ void PermissionRequestManager::Accept() { +@@ -636,7 +637,7 @@ void PermissionRequestManager::Accept() { CurrentRequestsDecided(PermissionAction::GRANTED); } @@ -1236,7 +1236,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p if (ignore_callbacks_from_prompt_) return; DCHECK(view_); -@@ -645,7 +646,8 @@ void PermissionRequestManager::AcceptThisTime() { +@@ -648,7 +649,8 @@ void PermissionRequestManager::AcceptThisTime() { (*requests_iter)->request_type(), PermissionAction::GRANTED_ONCE); PermissionGrantedIncludingDuplicates(*requests_iter, @@ -1246,7 +1246,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p } NotifyRequestDecided(PermissionAction::GRANTED_ONCE); -@@ -653,6 +655,15 @@ void PermissionRequestManager::AcceptThisTime() { +@@ -656,6 +658,15 @@ void PermissionRequestManager::AcceptThisTime() { } void PermissionRequestManager::Deny() { @@ -1262,7 +1262,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p if (ignore_callbacks_from_prompt_) return; DCHECK(view_); -@@ -676,7 +687,7 @@ void PermissionRequestManager::Deny() { +@@ -679,7 +690,7 @@ void PermissionRequestManager::Deny() { StorePermissionActionForUMA((*requests_iter)->requesting_origin(), (*requests_iter)->request_type(), PermissionAction::DENIED); @@ -1271,7 +1271,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p } NotifyRequestDecided(PermissionAction::DENIED); -@@ -1243,32 +1254,32 @@ PermissionRequestManager::VisitDuplicateRequests( +@@ -1255,32 +1266,32 @@ PermissionRequestManager::VisitDuplicateRequests( void PermissionRequestManager::PermissionGrantedIncludingDuplicates( PermissionRequest* request, @@ -1314,7 +1314,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p request); } -@@ -1529,7 +1540,7 @@ void PermissionRequestManager::DoAutoResponseForTesting() { +@@ -1541,7 +1552,7 @@ void PermissionRequestManager::DoAutoResponseForTesting() { } switch (auto_response_for_test_) { case ACCEPT_ONCE: @@ -1326,7 +1326,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p diff --git a/components/permissions/permission_request_manager.h b/components/permissions/permission_request_manager.h --- a/components/permissions/permission_request_manager.h +++ b/components/permissions/permission_request_manager.h -@@ -162,8 +162,10 @@ class PermissionRequestManager +@@ -165,8 +165,10 @@ class PermissionRequestManager GURL GetRequestingOrigin() const override; GURL GetEmbeddingOrigin() const override; void Accept() override; @@ -1338,7 +1338,7 @@ diff --git a/components/permissions/permission_request_manager.h b/components/pe void Dismiss() override; void Ignore() override; void FinalizeCurrentRequests() override; -@@ -372,9 +374,12 @@ class PermissionRequestManager +@@ -375,9 +377,12 @@ class PermissionRequestManager // Calls PermissionGranted on a request and all its duplicates. void PermissionGrantedIncludingDuplicates(PermissionRequest* request, diff --git a/build/patches/Add-menu-item-to-bookmark-all-tabs.patch b/build/patches/Add-menu-item-to-bookmark-all-tabs.patch index 295dae88..c5fff237 100644 --- a/build/patches/Add-menu-item-to-bookmark-all-tabs.patch +++ b/build/patches/Add-menu-item-to-bookmark-all-tabs.patch @@ -31,7 +31,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml --- a/chrome/android/java/res/menu/main_menu.xml +++ b/chrome/android/java/res/menu/main_menu.xml -@@ -71,6 +71,10 @@ found in the LICENSE file. +@@ -74,6 +74,10 @@ found in the LICENSE file. @@ -42,10 +42,10 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re -@@ -180,6 +184,9 @@ found in the LICENSE file. - +@@ -186,6 +190,9 @@ found in the LICENSE file. + + @@ -63,16 +63,16 @@ 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; -@@ -2985,6 +2986,8 @@ public class ChromeTabbedActivity extends ChromeActivityGetJavaObject(), @@ -229,7 +229,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse result == Result::kSuccess); delete this; } -@@ -349,6 +349,33 @@ jboolean BookmarkBridge::AreAccountBookmarkFoldersActive(JNIEnv* env) { +@@ -350,6 +350,33 @@ jboolean BookmarkBridge::AreAccountBookmarkFoldersActive(JNIEnv* env) { return bookmark_model_->account_mobile_node() != nullptr; } @@ -263,7 +263,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse base::android::ScopedJavaLocalRef BookmarkBridge::GetMostRecentlyAddedUserBookmarkIdForUrl(JNIEnv* env, const GURL& url) { -@@ -461,6 +488,7 @@ void BookmarkBridge::GetAllFoldersWithDepths( +@@ -462,6 +489,7 @@ void BookmarkBridge::GetAllFoldersWithDepths( // Vector to temporarily contain all child bookmarks at same level for sorting std::vector bookmarks = { bookmark_model_->mobile_node(), @@ -271,7 +271,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse bookmark_model_->bookmark_bar_node(), bookmark_model_->other_node(), }; -@@ -554,6 +582,9 @@ std::vector BookmarkBridge::GetTopLevelFolderIdsImpl( +@@ -555,6 +583,9 @@ std::vector BookmarkBridge::GetTopLevelFolderIdsImpl( top_level_folders.push_back(other_node); } @@ -281,7 +281,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse const BookmarkNode* reading_list_node = local_or_syncable_reading_list_manager_->GetRoot(); if (IsPermanentFolderVisible(ignore_visibility, reading_list_node)) { -@@ -1266,6 +1297,17 @@ void BookmarkBridge::GetBookmarksOfType( +@@ -1261,6 +1292,17 @@ void BookmarkBridge::GetBookmarksOfType( AddBookmarkNodesToBookmarkIdList(env, j_list, results); } @@ -313,7 +313,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser base::android::ScopedJavaLocalRef GetMostRecentlyAddedUserBookmarkIdForUrl(JNIEnv* env, const GURL& url); const bookmarks::BookmarkNode* GetMostRecentlyAddedUserBookmarkIdForUrlImpl( -@@ -223,6 +227,10 @@ class BookmarkBridge : public ProfileObserver, +@@ -222,6 +226,10 @@ class BookmarkBridge : public ProfileObserver, const base::android::JavaParamRef& j_list, jint type); @@ -391,7 +391,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 -@@ -4191,6 +4191,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4423,6 +4423,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d Select tabs @@ -654,7 +654,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 -@@ -914,7 +914,7 @@ bool BookmarkModel::HasBookmarks() const { +@@ -802,7 +802,7 @@ bool BookmarkModel::HasBookmarks() const { bool BookmarkModel::HasNoUserCreatedBookmarksOrFolders() const { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); return bookmark_bar_node_->children().empty() && @@ -663,7 +663,7 @@ diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmar } bool BookmarkModel::IsBookmarked(const GURL& url) const { -@@ -1246,6 +1246,7 @@ void BookmarkModel::DoneLoading(std::unique_ptr details) { +@@ -1110,6 +1110,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(); @@ -674,7 +674,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 -@@ -157,6 +157,12 @@ class BookmarkModel : public CoreBookmarkModel, +@@ -149,6 +149,12 @@ class BookmarkModel : public BookmarkUndoProvider, // bookmarks in the account storage). const BookmarkNode* account_mobile_node() const; @@ -687,7 +687,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_; -@@ -639,6 +645,7 @@ class BookmarkModel : public CoreBookmarkModel, +@@ -566,6 +572,7 @@ class BookmarkModel : public BookmarkUndoProvider, raw_ptr account_bookmark_bar_node_ = nullptr; raw_ptr account_other_node_ = nullptr; raw_ptr account_mobile_node_ = nullptr; @@ -789,7 +789,7 @@ diff --git a/components/bookmarks/browser/bookmark_uuids.h b/components/bookmark diff --git a/components/bookmarks/browser/model_loader.cc b/components/bookmarks/browser/model_loader.cc --- a/components/bookmarks/browser/model_loader.cc +++ b/components/bookmarks/browser/model_loader.cc -@@ -71,6 +71,8 @@ std::unique_ptr LoadBookmarks( +@@ -70,6 +70,8 @@ std::unique_ptr LoadBookmarks( BookmarkPermanentNode::CreateOtherBookmarks(0); std::unique_ptr account_mobile_folder_node = BookmarkPermanentNode::CreateMobileBookmarks(0); @@ -798,7 +798,7 @@ diff --git a/components/bookmarks/browser/model_loader.cc b/components/bookmarks std::optional root_dict = LoadFileToDict(account_file_path); -@@ -78,7 +80,8 @@ std::unique_ptr LoadBookmarks( +@@ -77,7 +79,8 @@ std::unique_ptr LoadBookmarks( if (root_dict.has_value() && codec.Decode(*root_dict, /*already_assigned_ids=*/{}, account_bb_node.get(), account_other_folder_node.get(), @@ -808,7 +808,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(); -@@ -127,7 +130,8 @@ std::unique_ptr LoadBookmarks( +@@ -119,7 +122,8 @@ std::unique_ptr LoadBookmarks( if (root_dict.has_value() && codec.Decode(*root_dict, std::move(ids_assigned_to_account_nodes), details->bb_node(), details->other_folder_node(), diff --git a/build/patches/Add-menu-item-to-view-source.patch b/build/patches/Add-menu-item-to-view-source.patch index 6f875232..b0657efc 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 -@@ -107,6 +107,9 @@ found in the LICENSE file. +@@ -110,6 +110,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 -@@ -3011,6 +3011,8 @@ public class ChromeTabbedActivity extends ChromeActivity +@@ -2674,6 +2674,11 @@ public abstract class ChromeActivity return doOpenWebApk(currentTab); } @@ -69,7 +69,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java -@@ -576,6 +576,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -565,6 +565,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate isNativePage, isFileScheme, isContentScheme, isIncognito, url)); updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */, isNativePage); @@ -77,7 +77,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App updateAutoDarkMenuItem(menu, currentTab, isNativePage); -@@ -1304,6 +1305,23 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -1297,6 +1298,23 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate findInPageMenuRow.setVisible(itemVisible); } @@ -104,7 +104,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java -@@ -294,6 +294,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat +@@ -292,6 +292,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat updateRequestDesktopSiteMenuItem( menu, currentTab, requestDesktopSiteVisible, isNativePage); diff --git a/build/patches/Add-option-to-disable-snapshots.patch b/build/patches/Add-option-to-disable-snapshots.patch index 4221eb6f..04c14c9a 100644 --- a/build/patches/Add-option-to-disable-snapshots.patch +++ b/build/patches/Add-option-to-disable-snapshots.patch @@ -9,14 +9,13 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../java/res/xml/privacy_preferences.xml | 5 +++ .../chrome/browser/app/ChromeActivity.java | 3 +- .../privacy/settings/PrivacySettings.java | 43 ++++++++++++++++++- - .../browser/tab_ui/TabContentManager.java | 6 ++- .../strings/android_chrome_strings.grd | 8 ++++ - 7 files changed, 73 insertions(+), 7 deletions(-) + 6 files changed, 69 insertions(+), 5 deletions(-) diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java -@@ -350,9 +350,12 @@ class TabGridViewBinder { +@@ -333,9 +333,12 @@ class TabGridViewBinder { // Adjust bitmap to thumbnail. TabUtils.setBitmapAndUpdateImageMatrix(thumbnail, result, thumbnailSize); } else if (isMostRecentRequest) { @@ -32,7 +31,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser } }; if (sThumbnailFetcherForTesting != null) { -@@ -391,6 +394,7 @@ class TabGridViewBinder { +@@ -374,6 +377,7 @@ class TabGridViewBinder { ViewLookupCachingFrameLayout rootView, PropertyModel model, TabListFaviconProvider.TabFavicon favicon) { @@ -43,7 +42,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java -@@ -74,6 +74,9 @@ public class TabProperties { +@@ -77,6 +77,9 @@ public class TabProperties { public static final WritableBooleanPropertyKey FAVICON_FETCHED = new WritableBooleanPropertyKey(); @@ -87,7 +86,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -144,6 +144,7 @@ import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; +@@ -142,6 +142,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,15 +94,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.ProfileProvider; import org.chromium.chrome.browser.readaloud.ReadAloudController; -@@ -721,7 +722,7 @@ public abstract class ChromeActivity +@@ -718,7 +719,7 @@ public abstract class ChromeActivity new TabContentManager( this, mBrowserControlsManagerSupplier.get(), - !SysUtils.isLowEndDevice(), + !ContextUtils.getAppSharedPreferences().getBoolean(PrivacySettings.PREF_TABGRID_USE_ICONS, false), - tabModelSelector != null ? tabModelSelector::getTabById : null)); + tabModelSelector != null ? tabModelSelector::getTabById : null, + TabWindowManagerSingleton.getInstance())); - getBrowserControlsManager() 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 @@ -190,26 +189,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting Preference refererPolicyPref = findPreference(PREF_REFERER_POLICY); refererPolicyPref.setSummary( RefererSettingsFragment.getRefererSummaryString(getContext())); -diff --git a/chrome/browser/tab_ui/android/java/src/org/chromium/chrome/browser/tab_ui/TabContentManager.java b/chrome/browser/tab_ui/android/java/src/org/chromium/chrome/browser/tab_ui/TabContentManager.java ---- a/chrome/browser/tab_ui/android/java/src/org/chromium/chrome/browser/tab_ui/TabContentManager.java -+++ b/chrome/browser/tab_ui/android/java/src/org/chromium/chrome/browser/tab_ui/TabContentManager.java -@@ -328,8 +328,10 @@ public class TabContentManager { - @NonNull Callback callback, - boolean forceUpdate, - boolean writeBack) { -- if (!mSnapshotsEnabled) return; -- -+ if (!mSnapshotsEnabled) { -+ callback.onResult(null); -+ return; -+ } - // TODO(crbug.com/40267864): Remove forceUpdate and writeBack params once the following - // features - // launch: 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 -@@ -5659,6 +5659,14 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -5909,6 +5909,14 @@ To change this setting, BEGIN_LINKdelete the Chrome d Your %1$swww.amazon.com timer ran out. It'll start again tomorrow. diff --git a/build/patches/Add-option-to-force-tablet-UI.patch b/build/patches/Add-option-to-force-tablet-UI.patch index 542280c0..eb9fd9d0 100644 --- a/build/patches/Add-option-to-force-tablet-UI.patch +++ b/build/patches/Add-option-to-force-tablet-UI.patch @@ -7,41 +7,41 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../start_surface/StartSurfaceMediator.java | 5 +++- .../layout/custom_tabs_control_container.xml | 2 +- .../java/res/layout/recent_tabs_page.xml | 2 +- - .../java/res/values-sw600dp/dimens.xml | 4 +-- - chrome/android/java/res/values/dimens.xml | 6 +++- - .../chrome/browser/ChromeTabbedActivity.java | 4 ++- + .../java/res/values-sw600dp/dimens.xml | 4 ++-- + chrome/android/java/res/values/dimens.xml | 6 ++++- .../chrome/browser/WarmupManager.java | 5 +++- - .../settings/AccessibilitySettings.java | 13 +++++++++ - .../ChromeAccessibilitySettingsDelegate.java | 19 +++++++++++++ - .../chrome/browser/app/ChromeActivity.java | 4 ++- - .../overlays/strip/StripLayoutHelper.java | 10 +++++-- - .../strip/StripLayoutHelperManager.java | 7 ++++- + .../settings/AccessibilitySettings.java | 13 ++++++++++ + .../ChromeAccessibilitySettingsDelegate.java | 19 +++++++++++++++ + .../chrome/browser/app/ChromeActivity.java | 4 +++- + .../overlays/strip/StripLayoutHelper.java | 10 ++++++-- + .../strip/StripLayoutHelperManager.java | 7 +++++- + .../tabbed_mode/TabbedRootUiCoordinator.java | 4 +++- .../chrome/browser/ui/RootUiCoordinator.java | 5 +++- chrome/browser/preferences/BUILD.gn | 1 + .../preferences/ChromePreferenceKeys.java | 1 + - .../preferences/ChromeSharedPreferences.java | 8 ++++++ + .../preferences/ChromeSharedPreferences.java | 8 +++++++ .../LegacyChromePreferenceKeys.java | 1 + .../SingleTabSwitcherOnNtpMediator.java | 1 + .../omnibox/LocationBarCoordinator.java | 2 +- - .../strings/android_chrome_strings.grd | 7 +++++ - .../java/res/layout/control_container.xml | 12 ++++---- + .../strings/android_chrome_strings.grd | 7 ++++++ + .../java/res/layout/control_container.xml | 10 ++++---- .../java/res/layout/toolbar_tablet.xml | 2 +- .../java/res/values-sw600dp/dimens.xml | 5 ++-- .../toolbar/java/res/values/dimens.xml | 5 ++-- .../browser/toolbar/ControlContainer.java | 2 +- - .../top/TabStripTransitionCoordinator.java | 2 +- - .../toolbar/top/ToolbarControlContainer.java | 28 ++++++++++++++++++- + .../toolbar/top/ToolbarControlContainer.java | 24 ++++++++++++++++++- .../browser/toolbar/top/ToolbarLayout.java | 5 +++- - components/BUILD.gn | 6 ++-- + .../TabStripTransitionCoordinator.java | 2 +- + components/BUILD.gn | 6 ++--- .../res/xml/accessibility_preferences.xml | 5 ++++ - .../AccessibilitySettingsDelegate.java | 11 ++++++++ - .../chromium/ui/base/DeviceFormFactor.java | 9 ++++++ - 32 files changed, 167 insertions(+), 32 deletions(-) + .../AccessibilitySettingsDelegate.java | 11 +++++++++ + .../chromium/ui/base/DeviceFormFactor.java | 9 +++++++ + 32 files changed, 162 insertions(+), 31 deletions(-) diff --git a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java --- a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java +++ b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java -@@ -97,6 +97,7 @@ import org.chromium.components.browser_ui.widget.gesture.BackPressHandler; +@@ -90,6 +90,7 @@ import org.chromium.components.browser_ui.widget.gesture.BackPressHandler; import org.chromium.components.embedder_support.util.UrlUtilities; import org.chromium.components.prefs.PrefService; import org.chromium.content_public.browser.LoadUrlParams; @@ -49,7 +49,7 @@ diff --git a/chrome/android/features/start_surface/java/src/org/chromium/chrome/ import org.chromium.ui.modelutil.PropertyModel; import org.chromium.ui.text.EmptyTextWatcher; import org.chromium.ui.util.ColorUtils; -@@ -1124,7 +1125,9 @@ class StartSurfaceMediator +@@ -992,7 +993,9 @@ class StartSurfaceMediator int getTopToolbarPlaceholderHeight() { // If logo is visible in Start surface instead of in the toolbar, we don't need to show the // top margin of the fake search box. @@ -101,7 +101,7 @@ diff --git a/chrome/android/java/res/values-sw600dp/dimens.xml b/chrome/android/ diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res/values/dimens.xml --- a/chrome/android/java/res/values/dimens.xml +++ b/chrome/android/java/res/values/dimens.xml -@@ -120,9 +120,13 @@ found in the LICENSE file. +@@ -118,9 +118,13 @@ found in the LICENSE file. 16dp @@ -116,33 +116,19 @@ diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res 375dp 60dp -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 -@@ -2280,7 +2280,9 @@ public class ChromeTabbedActivity extends ChromeActivity +@@ -859,7 +859,9 @@ public abstract class ChromeActivity // Inflate the correct toolbar layout for the device. int toolbarLayoutId = getToolbarLayoutId(); if (toolbarLayoutId != ActivityUtils.NO_RESOURCE_ID && controlContainer != null) { @@ -242,15 +228,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java -@@ -84,6 +84,7 @@ import org.chromium.components.feature_engagement.Tracker; - import org.chromium.components.prefs.PrefService; +@@ -87,6 +87,7 @@ import org.chromium.components.prefs.PrefService; import org.chromium.components.tab_groups.TabGroupColorId; import org.chromium.components.user_prefs.UserPrefs; + import org.chromium.ui.MotionEventUtils; +import org.chromium.ui.base.DeviceFormFactor; import org.chromium.ui.base.LocalizationUtils; import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.interpolators.Interpolators; -@@ -5059,8 +5060,13 @@ public class StripLayoutHelper implements StripLayoutTabDelegate, StripLayoutGro +@@ -5190,8 +5191,13 @@ public class StripLayoutHelper implements StripLayoutTabDelegate, StripLayoutGro mTabMenu.setAnchorView(tabView); // 3. Set the vertical offset to align the tab menu with bottom of the tab strip int tabHeight = mManagerHost.getHeight(); @@ -269,7 +255,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java -@@ -80,6 +80,7 @@ import org.chromium.chrome.browser.ui.system.StatusBarColorController; +@@ -87,6 +87,7 @@ import org.chromium.chrome.browser.ui.system.StatusBarColorController; import org.chromium.components.browser_ui.styles.SemanticColorUtils; import org.chromium.components.browser_ui.widget.scrim.ScrimProperties; import org.chromium.content_public.browser.LoadUrlParams; @@ -277,7 +263,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over import org.chromium.ui.base.LocalizationUtils; import org.chromium.ui.base.PageTransition; import org.chromium.ui.base.WindowAndroid; -@@ -405,11 +406,15 @@ public class StripLayoutHelperManager +@@ -446,11 +447,15 @@ public class StripLayoutHelperManager mIsLayoutOptimizationsEnabled = ToolbarFeatures.isTabStripWindowLayoutOptimizationEnabled(true); @@ -293,19 +279,33 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over + mTopPadding = mHeight - mScrollableStripHeight; mDesktopWindowStateProvider = desktopWindowStateProvider; + mStripVisibilityStateSupplier = new ObservableSupplierImpl<>(StripVisibilityState.UNKNOWN); +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 +@@ -535,7 +535,9 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { + @Override + public int getControlContainerHeightResource() { +- return R.dimen.control_container_height; ++ if (DeviceFormFactor.isForceTabletUI()) ++ return R.dimen.control_container_height_tabletui; ++ return R.dimen.control_container_height_cromite; + } + + @Override 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.password_manager.ManagePasswordsReferrer; +@@ -100,6 +100,7 @@ import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer; import org.chromium.chrome.browser.password_manager.PasswordManagerLauncher; import org.chromium.chrome.browser.pdf.PdfPage; import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; +import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; + import org.chromium.chrome.browser.price_insights.PriceInsightsButtonController; import org.chromium.chrome.browser.price_tracking.CurrentTabPriceTrackingStateSupplier; import org.chromium.chrome.browser.price_tracking.PriceTrackingButtonController; - import org.chromium.chrome.browser.profiles.Profile; -@@ -1611,7 +1612,9 @@ public class RootUiCoordinator +@@ -1724,7 +1725,9 @@ public class RootUiCoordinator if (!mSupportsFindInPageSupplier.getAsBoolean()) return; int stubId = R.id.find_toolbar_stub; @@ -377,7 +377,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro diff --git a/chrome/browser/single_tab/android/java/src/org/chromium/chrome/browser/single_tab/SingleTabSwitcherOnNtpMediator.java b/chrome/browser/single_tab/android/java/src/org/chromium/chrome/browser/single_tab/SingleTabSwitcherOnNtpMediator.java --- a/chrome/browser/single_tab/android/java/src/org/chromium/chrome/browser/single_tab/SingleTabSwitcherOnNtpMediator.java +++ b/chrome/browser/single_tab/android/java/src/org/chromium/chrome/browser/single_tab/SingleTabSwitcherOnNtpMediator.java -@@ -40,6 +40,7 @@ import org.chromium.components.browser_ui.widget.displaystyle.HorizontalDisplayS +@@ -41,6 +41,7 @@ import org.chromium.components.browser_ui.widget.displaystyle.HorizontalDisplayS import org.chromium.components.browser_ui.widget.displaystyle.UiConfig; import org.chromium.components.browser_ui.widget.displaystyle.UiConfig.DisplayStyle; import org.chromium.components.embedder_support.util.UrlUtilities; @@ -388,7 +388,7 @@ diff --git a/chrome/browser/single_tab/android/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java -@@ -778,7 +778,7 @@ public class LocationBarCoordinator +@@ -765,7 +765,7 @@ public class LocationBarCoordinator } private boolean isTabletWindow() { @@ -400,7 +400,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -1659,6 +1659,13 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1667,6 +1667,13 @@ Your Google account may have other forms of browsing history like searches and a Hide your IP address @@ -453,7 +453,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/res/layout/control_container android:layout_width="match_parent" android:layout_height="@dimen/toolbar_height_no_shadow" android:layout="@layout/find_toolbar" /> -@@ -55,14 +55,14 @@ found in the LICENSE file. +@@ -55,7 +55,7 @@ found in the LICENSE file. android:id="@+id/target_view_stub" android:inflatedId="@+id/toolbar_drag_drop_target_view" android:layout_width="match_parent" @@ -461,15 +461,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/res/layout/control_container + android:layout_marginTop="@dimen/tab_strip_height_cromite" android:layout_height="@dimen/toolbar_height_no_shadow" android:layout="@layout/drag_drop_target_view" /> - - + diff --git a/chrome/browser/ui/android/toolbar/java/res/layout/toolbar_tablet.xml b/chrome/browser/ui/android/toolbar/java/res/layout/toolbar_tablet.xml --- a/chrome/browser/ui/android/toolbar/java/res/layout/toolbar_tablet.xml +++ b/chrome/browser/ui/android/toolbar/java/res/layout/toolbar_tablet.xml @@ -522,18 +514,6 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow /** * @return The {@link ViewResourceAdapter} that exposes this {@link View} as a CC resource. -diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TabStripTransitionCoordinator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TabStripTransitionCoordinator.java ---- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TabStripTransitionCoordinator.java -+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TabStripTransitionCoordinator.java -@@ -155,7 +155,7 @@ public class TabStripTransitionCoordinator implements ComponentCallbacks, AppHea - mTabStripReservedTopPadding = - controlContainerView() - .getResources() -- .getDimensionPixelSize(R.dimen.tab_strip_reserved_top_padding); -+ .getDimensionPixelSize(R.dimen.tab_strip_reserved_top_padding_cromite); - - mOnLayoutChangedListener = - (view, left, top, right, bottom, oldLeft, oldTop, oldRight, oldBottom) -> { diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java @@ -545,7 +525,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow import android.graphics.Canvas; import android.graphics.PorterDuff; import android.graphics.Rect; -@@ -119,8 +120,33 @@ public class ToolbarControlContainer extends OptimizedFrameLayout +@@ -119,8 +120,29 @@ public class ToolbarControlContainer extends OptimizedFrameLayout } @Override @@ -572,10 +552,6 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow + view = findViewById(R.id.target_view_stub); + if (view != null) + ((MarginLayoutParams)view.getLayoutParams()).topMargin = tab_strip_height; -+ -+ view = findViewById(R.id.tab_switcher_toolbar_stub); -+ if (view != null) -+ ((MarginLayoutParams)view.getLayoutParams()).topMargin = tab_strip_height; + } mToolbarContainer = (ToolbarViewResourceFrameLayout) findViewById(R.id.toolbar_container); @@ -591,7 +567,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow import org.chromium.ui.util.TokenHolder; import org.chromium.url.GURL; -@@ -596,7 +597,9 @@ public abstract class ToolbarLayout extends FrameLayout +@@ -644,7 +645,9 @@ public abstract class ToolbarLayout extends FrameLayout * not have a tab strip. */ protected int getTabStripHeightFromResource() { @@ -602,6 +578,18 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow } /** Triggered when the content view for the specified tab has changed. */ +diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/TabStripTransitionCoordinator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/TabStripTransitionCoordinator.java +--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/TabStripTransitionCoordinator.java ++++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/TabStripTransitionCoordinator.java +@@ -151,7 +151,7 @@ public class TabStripTransitionCoordinator implements ComponentCallbacks, AppHea + mTabStripReservedTopPadding = + controlContainerView() + .getResources() +- .getDimensionPixelSize(R.dimen.tab_strip_reserved_top_padding); ++ .getDimensionPixelSize(R.dimen.tab_strip_reserved_top_padding_cromite); + + mOnLayoutChangedListener = + (view, left, top, right, bottom, oldLeft, oldTop, oldRight, oldBottom) -> { diff --git a/components/BUILD.gn b/components/BUILD.gn --- a/components/BUILD.gn +++ b/components/BUILD.gn @@ -614,7 +602,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 -@@ -851,7 +851,7 @@ test("components_unittests") { +@@ -853,7 +853,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. @@ -623,7 +611,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn assert_no_deps = [ "//chrome/*" ] assert_no_deps += disallowed_extension_deps_ } -@@ -1137,7 +1137,7 @@ if (use_blink) { +@@ -1145,7 +1145,7 @@ if (use_blink) { # dependency. 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. 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 d190312e..f6798dbc 100644 --- a/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch +++ b/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch @@ -36,7 +36,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.base.IntentUtils; import org.chromium.base.Log; import org.chromium.base.MemoryPressureListener; -@@ -1644,8 +1645,10 @@ public class ChromeTabbedActivity extends ChromeActivityBEGIN_LINKdelete the Chrome d +@@ -5400,6 +5400,12 @@ To change this setting, BEGIN_LINKdelete the Chrome d IMAGE diff --git a/build/patches/Add-option-to-use-home-page-as-NTP.patch b/build/patches/Add-option-to-use-home-page-as-NTP.patch index 316f5a31..411dc26a 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 -@@ -29,6 +29,7 @@ import org.chromium.chrome.browser.data_sharing.DataSharingNotificationManager; - import org.chromium.chrome.browser.data_sharing.SharedImageTilesCoordinator; +@@ -30,6 +30,7 @@ import org.chromium.base.task.TaskTraits; + import org.chromium.chrome.browser.data_sharing.DataSharingNotificationManager; + import org.chromium.chrome.browser.data_sharing.ui.shared_image_tiles.SharedImageTilesCoordinator; import org.chromium.chrome.browser.flags.ChromeFeatureList; - import org.chromium.chrome.browser.hub.HubFieldTrial; +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; -@@ -62,6 +63,7 @@ import org.chromium.ui.KeyboardVisibilityDelegate; +@@ -65,6 +66,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; -@@ -802,11 +804,16 @@ public class TabGridDialogMediator +@@ -820,11 +822,16 @@ public class TabGridDialogMediator assert relatedTabs.size() > 0; @@ -68,7 +68,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser import org.chromium.chrome.browser.layouts.LayoutStateProvider; import org.chromium.chrome.browser.layouts.LayoutStateProvider.LayoutStateObserver; import org.chromium.chrome.browser.layouts.LayoutType; -@@ -422,10 +423,15 @@ public class TabGroupUiMediator implements BackPressHandler { +@@ -427,10 +428,15 @@ public class TabGroupUiMediator implements BackPressHandler { assert relatedTabs.size() > 0; parentTabToAttach = relatedTabs.get(relatedTabs.size() - 1); @@ -181,10 +181,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.new_tab_url.DseNewTabUrlManager; +import org.chromium.chrome.browser.homepage.HomepageManager; - import org.chromium.chrome.browser.ntp.NewTabPageLaunchOrigin; - import org.chromium.chrome.browser.ntp.NewTabPageUtils; import org.chromium.chrome.browser.prefetch.settings.PreloadPagesSettingsBridge; -@@ -518,6 +519,13 @@ public class ChromeTabCreator extends TabCreator { + import org.chromium.chrome.browser.prefetch.settings.PreloadPagesState; + import org.chromium.chrome.browser.profiles.Profile; +@@ -484,6 +485,13 @@ public class ChromeTabCreator extends TabCreator { * @return the created tab. */ public Tab launchUrl(String url, @TabLaunchType int type, Intent intent, long intentTimestamp) { @@ -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 -@@ -1406,6 +1406,9 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1414,6 +1414,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 -@@ -85,6 +85,8 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -89,6 +89,8 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref( prefs::kShowForwardButton, true, GetHomeAndForwardButtonAndHomePageIsNewTabPageFlags()); @@ -248,7 +248,7 @@ diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_u diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h --- a/chrome/common/pref_names.h +++ b/chrome/common/pref_names.h -@@ -1321,6 +1321,10 @@ inline constexpr char kShowHomeButton[] = "browser.show_home_button"; +@@ -1350,6 +1350,10 @@ inline constexpr char kShowHomeButton[] = "browser.show_home_button"; // toolbar. inline constexpr char kShowForwardButton[] = "browser.show_forward_button"; @@ -256,7 +256,7 @@ diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h +// instead of the New Tab page. +inline constexpr char kNewTabPageIsHomePage[] = "newtabpage_is_homepage"; + - // Boolean pref to define the default setting for "block offensive words". - // The old key value is kept to avoid unnecessary migration code. - inline constexpr char kSpeechRecognitionFilterProfanities[] = + // Comma separated list of domain names (e.g. "google.com,school.edu"). + // When this pref is set, the user will be able to access Google Apps + // only using an account that belongs to one of the domains from this pref. -- diff --git a/build/patches/Add-search-engine.patch b/build/patches/Add-search-engine.patch index d60f6e9e..dac1f866 100644 --- a/build/patches/Add-search-engine.patch +++ b/build/patches/Add-search-engine.patch @@ -74,7 +74,7 @@ diff --git a/components/search_engines/prepopulated_engines.json b/components/se "ecosia": { "name": "Ecosia", "keyword": "ecosia.org", -@@ -174,6 +184,27 @@ +@@ -182,6 +192,27 @@ "id": 111 }, 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 753a8345..05767a0c 100644 --- a/build/patches/Add-setting-to-clear-data-on-exit.patch +++ b/build/patches/Add-setting-to-clear-data-on-exit.patch @@ -39,7 +39,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 -@@ -306,6 +306,7 @@ chrome_java_sources = [ +@@ -309,6 +309,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", @@ -57,8 +57,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct +import org.chromium.chrome.browser.profiles.ProfileManagerUtils; import org.chromium.chrome.browser.read_later.ReadingListBackPressHandler; import org.chromium.chrome.browser.reengagement.ReengagementNotificationController; - import org.chromium.chrome.browser.search_engines.SearchEngineChoiceNotification; -@@ -1644,7 +1645,11 @@ public class ChromeTabbedActivity extends ChromeActivity Delete browsing data @@ -298,7 +298,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_constants 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 -@@ -442,6 +442,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -455,6 +455,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( CreateTaskCompletionClosure(TracingDataType::kHistory), &history_task_tracker_); } @@ -308,7 +308,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate. if (ClipboardRecentContent::GetInstance()) ClipboardRecentContent::GetInstance()->SuppressClipboardContent(); -@@ -492,7 +495,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -505,7 +508,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( prerender::NoStatePrefetchManager::CLEAR_PRERENDER_CONTENTS | prerender::NoStatePrefetchManager::CLEAR_PRERENDER_HISTORY); } @@ -318,7 +318,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. -@@ -513,7 +518,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -526,7 +531,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( if (data_manager) data_manager->Refresh(); } @@ -328,7 +328,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( -@@ -560,6 +567,11 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -573,6 +580,11 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( // and SSL host state are scoped to hosts and represent them as std::string. // Rename the method to indicate its more general usage. if (profile_->GetSSLHostStateDelegate()) { @@ -340,7 +340,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate. profile_->GetSSLHostStateDelegate()->Clear( filter_builder->MatchesAllOriginsAndDomains() ? base::RepeatingCallback() -@@ -588,9 +600,13 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -601,9 +613,13 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( } device_event_log::Clear(delete_begin_, delete_end_); @@ -354,7 +354,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate. content::BackgroundTracingManager::GetInstance().DeleteTracesInDateRange( delete_begin_, delete_end_); -@@ -1257,6 +1273,8 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -1289,6 +1305,8 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( if (should_clear_zero_suggest_and_session_token && template_url_service) template_url_service->ClearSessionToken(); @@ -366,7 +366,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate. diff --git a/chrome/browser/dips/dips_service.cc b/chrome/browser/dips/dips_service.cc --- a/chrome/browser/dips/dips_service.cc +++ b/chrome/browser/dips/dips_service.cc -@@ -193,7 +193,7 @@ class StateClearer : public content::BrowsingDataRemover::Observer { +@@ -188,7 +188,7 @@ class StateClearer : public content::BrowsingDataRemover::Observer { } remover->RemoveWithFilterAndReply( base::Time::Min(), base::Time::Max(), @@ -378,7 +378,7 @@ diff --git a/chrome/browser/dips/dips_service.cc b/chrome/browser/dips/dips_serv 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 -@@ -526,6 +526,23 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { +@@ -532,6 +532,23 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { (*s_allowlist)[browsing_data::prefs::kLastClearBrowsingDataTab] = settings_api::PrefType::kNumber; @@ -436,7 +436,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 -@@ -1477,6 +1477,19 @@ void ProfileManager::DoFinalInit(ProfileInfo* profile_info, +@@ -1479,6 +1479,19 @@ void ProfileManager::DoFinalInit(ProfileInfo* profile_info, } } @@ -456,7 +456,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_ || -@@ -2141,7 +2154,7 @@ void ProfileManager::OnBrowserClosed(Browser* browser) { +@@ -2144,7 +2157,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()) { @@ -553,7 +553,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 -@@ -1501,6 +1501,9 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1509,6 +1509,9 @@ Your Google account may have other forms of browsing history like searches and a Some of your history might not show up here. To see all your Chrome history, open full Chrome history. Also, your Google Account may have other forms of browsing history at <link>myactivity.google.com</link>. @@ -566,7 +566,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 -@@ -1775,6 +1775,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, +@@ -1792,6 +1792,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, {"clearedData", IDS_SETTINGS_CLEARED_DATA}, {"clearBrowsingData", IDS_SETTINGS_CLEAR_BROWSING_DATA}, {"clearBrowsingDataDescription", IDS_SETTINGS_CLEAR_DATA_DESCRIPTION}, @@ -752,7 +752,7 @@ diff --git a/components/browsing_data/core/pref_names.h b/components/browsing_da diff --git a/components/search_engines/template_url_service.cc b/components/search_engines/template_url_service.cc --- a/components/search_engines/template_url_service.cc +++ b/components/search_engines/template_url_service.cc -@@ -819,6 +819,7 @@ void TemplateURLService::RemoveAutoGeneratedForUrlsBetween( +@@ -798,6 +798,7 @@ void TemplateURLService::RemoveAutoGeneratedForUrlsBetween( if (turl->date_created() >= created_after && (created_before.is_null() || turl->date_created() < created_before) && turl->safe_for_autoreplace() && turl->prepopulate_id() == 0 && @@ -763,7 +763,7 @@ diff --git a/components/search_engines/template_url_service.cc b/components/sear 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 -@@ -1533,6 +1533,7 @@ void StoragePartitionImpl::Initialize( +@@ -1473,6 +1473,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 a1bef41f..fb7e393f 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 @@ -14,12 +14,12 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../contextmenu/ChromeContextMenuItem.java | 5 ++- .../ChromeContextMenuPopulator.java | 5 +++ .../tab/TabContextMenuItemDelegate.java | 8 +++++ - .../contextmenu/ContextMenuItemDelegate.java | 2 ++ .../flags/android/chrome_feature_list.cc | 1 + .../browser/flags/ChromeFeatureList.java | 5 +++ .../strings/android_chrome_strings.grd | 9 +++++ .../res/xml/accessibility_preferences.xml | 5 +++ .../AccessibilitySettingsDelegate.java | 2 ++ + .../contextmenu/ContextMenuItemDelegate.java | 3 ++ ...Add-setting-to-invert-tap-and-long-tap.inc | 8 +++++ ...Add-setting-to-invert-tap-and-long-tap.inc | 3 ++ ...Add-setting-to-invert-tap-and-long-tap.inc | 1 + @@ -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 | 33 ++++++++++++----- .../core/page/context_menu_controller.h | 5 +-- - 21 files changed, 165 insertions(+), 20 deletions(-) + 21 files changed, 166 insertions(+), 20 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 @@ -37,7 +37,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/android/java/res/values/ids.xml b/chrome/android/java/res/values/ids.xml --- a/chrome/android/java/res/values/ids.xml +++ b/chrome/android/java/res/values/ids.xml -@@ -91,6 +91,7 @@ found in the LICENSE file. +@@ -88,6 +88,7 @@ found in the LICENSE file. @@ -142,7 +142,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java -@@ -266,6 +266,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -273,6 +273,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { if (mParams.isAnchor()) { ModelList linkGroup = new ModelList(); @@ -152,7 +152,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr if (FirstRunStatus.getFirstRunFlowComplete() && !isEmptyUrl(mParams.getUrl()) && UrlUtilities.isAcceptedScheme(mParams.getUrl())) { -@@ -631,6 +634,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -638,6 +641,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { getProfile(), false); }); @@ -164,7 +164,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java -@@ -297,6 +297,14 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { +@@ -328,6 +328,14 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { mTab.loadUrl(loadUrlParams); } @@ -175,28 +175,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM + loadUrlParams.setReferrer(referrer); + mTab.loadUrl(loadUrlParams); + } -+ - @Override - public void onOpenImageInNewTab(GURL url, Referrer referrer) { - LoadUrlParams loadUrlParams = new LoadUrlParams(url.getSpec()); -diff --git a/chrome/browser/contextmenu/java/src/org/chromium/chrome/browser/contextmenu/ContextMenuItemDelegate.java b/chrome/browser/contextmenu/java/src/org/chromium/chrome/browser/contextmenu/ContextMenuItemDelegate.java ---- a/chrome/browser/contextmenu/java/src/org/chromium/chrome/browser/contextmenu/ContextMenuItemDelegate.java -+++ b/chrome/browser/contextmenu/java/src/org/chromium/chrome/browser/contextmenu/ContextMenuItemDelegate.java -@@ -110,6 +110,8 @@ public interface ContextMenuItemDelegate { - */ - void onOpenImageUrl(GURL url, Referrer referrer); - -+ void onOpenUrl(GURL url, Referrer referrer); + /** - * Called when the {@code url} is of an image and should be opened in a new tab. - * @param url The image URL to open. + * Called when the {@code url} is of an image and should be opened in a new page. + * 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 -@@ -293,6 +293,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -304,6 +304,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { + &kTabGroupCreationDialogAndroid, &kTabGroupParityAndroid, - &kTabIdMapAndroid, &kTabletTabSwitcherLongPressMenu, + &blink::features::kShowAlwaysContextMenuOnLinks, &kTabletToolbarReordering, @@ -205,7 +193,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 -@@ -370,6 +370,8 @@ public abstract class ChromeFeatureList { +@@ -379,6 +379,8 @@ public abstract class ChromeFeatureList { "DisableToolbarSwipeUp"; public static final String MOVE_TOP_TOOLBAR_TO_BOTTOM = "MoveTopToolbarToBottom"; @@ -214,7 +202,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"; -@@ -654,6 +656,8 @@ public abstract class ChromeFeatureList { +@@ -679,6 +681,8 @@ public abstract class ChromeFeatureList { newCachedFlag(DISABLE_TOOLBAR_SWIPE_UP, false); public static final CachedFlag sMoveTopToolbarToBottom = newCachedFlag(MOVE_TOP_TOOLBAR_TO_BOTTOM, false); @@ -223,18 +211,18 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final CachedFlag sPrivacyGuidePreloadAndroid = newCachedFlag(PRIVACY_GUIDE_PRELOAD_ANDROID, false); public static final CachedFlag sOptimizationGuidePushNotifications = -@@ -812,6 +816,7 @@ public abstract class ChromeFeatureList { +@@ -840,6 +844,7 @@ public abstract class ChromeFeatureList { sTabWindowManagerIndexReassignmentActivityNotInAppTasks, sTabWindowManagerReportIndicesMismatch, sUseChimeAndroidSdk, + sShowAlwaysContextMenuOnLinks, sUseLibunwindstackNativeUnwinderAndroid, - sVerticalAutomotiveBackButtonToolbar); - + sVerticalAutomotiveBackButtonToolbar, + sWebApkMinShellApkVersion); diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -1724,6 +1724,12 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1732,6 +1732,12 @@ Your Google account may have other forms of browsing history like searches and a Disable toolbar swipe up @@ -247,7 +235,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro -@@ -3011,6 +3017,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -3240,6 +3246,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d Open in new Chrome tab @@ -284,6 +272,26 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c /** @return The BrowserContextHandle that should be used to read and update settings. */ BrowserContextHandle getBrowserContextHandle(); +diff --git a/components/embedder_support/android/java/src/org/chromium/components/embedder_support/contextmenu/ContextMenuItemDelegate.java b/components/embedder_support/android/java/src/org/chromium/components/embedder_support/contextmenu/ContextMenuItemDelegate.java +--- a/components/embedder_support/android/java/src/org/chromium/components/embedder_support/contextmenu/ContextMenuItemDelegate.java ++++ b/components/embedder_support/android/java/src/org/chromium/components/embedder_support/contextmenu/ContextMenuItemDelegate.java +@@ -9,6 +9,7 @@ import android.net.Uri; + import androidx.annotation.IntDef; + + import org.chromium.content_public.browser.WebContents; ++import org.chromium.content_public.common.Referrer; + import org.chromium.url.GURL; + + import java.lang.annotation.Retention; +@@ -148,6 +149,8 @@ public interface ContextMenuItemDelegate { + */ + GURL getPageUrl(); + ++ void onOpenUrl(GURL url, Referrer referrer); ++ + /** + * Called when the current embedder app is not the default to handle a View Intent. + * diff --git a/cromite_flags/chrome/browser/about_flags_cc/Add-setting-to-invert-tap-and-long-tap.inc b/cromite_flags/chrome/browser/about_flags_cc/Add-setting-to-invert-tap-and-long-tap.inc new file mode 100644 --- /dev/null @@ -340,7 +348,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third LocalDOMWindow* window = GetDocument().domWindow(); if (!window) { return; -@@ -576,6 +588,15 @@ void HTMLAnchorElement::NavigateToHyperlink(ResourceRequest request, +@@ -581,6 +593,15 @@ void HTMLAnchorElement::NavigateToHyperlink(ResourceRequest request, request.GetReferrerPolicy())); } @@ -356,7 +364,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third Frame* target_frame = frame->Tree().FindOrCreateFrameForNavigation(frame_request, target).frame; -@@ -629,7 +650,7 @@ AtomicString HTMLAnchorElement::interestAction() const { +@@ -634,7 +655,7 @@ AtomicString HTMLAnchorElement::interestAction() const { return g_empty_atom; } @@ -365,7 +373,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third event.SetDefaultHandled(); LocalDOMWindow* window = GetDocument().domWindow(); -@@ -725,13 +746,12 @@ void HTMLAnchorElement::HandleClick(MouseEvent& event) { +@@ -730,13 +751,12 @@ void HTMLAnchorElement::HandleClick(MouseEvent& event) { return; } @@ -383,7 +391,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( -@@ -741,7 +761,9 @@ void HTMLAnchorElement::HandleClick(MouseEvent& event) { +@@ -746,7 +766,9 @@ void HTMLAnchorElement::HandleClick(MouseEvent& event) { frame->GetEventHandler().SetDelayedNavigationTaskHandle( std::move(task_handle)); } else { @@ -397,7 +405,7 @@ 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 -@@ -112,6 +112,7 @@ class CORE_EXPORT HTMLAnchorElement : public HTMLElement, public DOMURLUtils { +@@ -116,6 +116,7 @@ class CORE_EXPORT HTMLAnchorElement : public HTMLElement, public DOMURLUtils { AtomicString interestAction() const override; void Trace(Visitor*) const override; @@ -405,7 +413,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.h b/third_ protected: void ParseAttribute(const AttributeModificationParams&) override; -@@ -143,7 +144,11 @@ class CORE_EXPORT HTMLAnchorElement : public HTMLElement, public DOMURLUtils { +@@ -147,7 +148,11 @@ class CORE_EXPORT HTMLAnchorElement : public HTMLElement, public DOMURLUtils { bool is_trusted, base::TimeTicks platform_time_stamp, KURL); @@ -429,7 +437,7 @@ diff --git a/third_party/blink/renderer/core/html/html_image_element.cc b/third_ #include "third_party/blink/renderer/core/frame/attribution_src_loader.h" #include "third_party/blink/renderer/core/frame/deprecation/deprecation.h" #include "third_party/blink/renderer/core/frame/local_dom_window.h" -@@ -64,6 +65,7 @@ +@@ -63,6 +64,7 @@ #include "third_party/blink/renderer/core/media_type_names.h" #include "third_party/blink/renderer/core/page/chrome_client.h" #include "third_party/blink/renderer/core/page/page.h" @@ -437,7 +445,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" -@@ -800,6 +802,21 @@ void HTMLImageElement::DidFinishLifecycleUpdate( +@@ -799,6 +801,21 @@ void HTMLImageElement::DidFinishLifecycleUpdate( } } @@ -521,7 +529,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; -@@ -833,11 +846,13 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame, +@@ -831,11 +844,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 a1b329e5..b481a94a 100644 --- a/build/patches/Add-site-engagement-flag.patch +++ b/build/patches/Add-site-engagement-flag.patch @@ -24,14 +24,14 @@ 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 -@@ -155,6 +155,7 @@ +@@ -153,6 +153,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" +#include "components/site_engagement/core/features.h" #include "components/shared_highlighting/core/common/shared_highlighting_features.h" + #include "components/sharing_message/features.h" #include "components/signin/core/browser/dice_account_reconcilor_delegate.h" - #include "components/signin/public/base/signin_buildflags.h" diff --git a/chrome/browser/engagement/important_sites_util.cc b/chrome/browser/engagement/important_sites_util.cc --- a/chrome/browser/engagement/important_sites_util.cc +++ b/chrome/browser/engagement/important_sites_util.cc @@ -108,7 +108,7 @@ diff --git a/components/feature_engagement/public/feature_configurations.cc b/co + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \ BUILDFLAG(IS_CHROMEOS) - if (kIPHPasswordsAccountStorageFeature.name == feature->name) { + if (kIPHPasswordsManagementBubbleAfterSaveFeature.name == feature->name) { diff --git a/components/site_engagement/content/site_engagement_score.cc b/components/site_engagement/content/site_engagement_score.cc --- a/components/site_engagement/content/site_engagement_score.cc +++ b/components/site_engagement/content/site_engagement_score.cc diff --git a/build/patches/Add-support-for-ISupportHelpAndFeedback.patch b/build/patches/Add-support-for-ISupportHelpAndFeedback.patch index 8bcd0a17..c23470f1 100644 --- a/build/patches/Add-support-for-ISupportHelpAndFeedback.patch +++ b/build/patches/Add-support-for-ISupportHelpAndFeedback.patch @@ -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; -@@ -517,8 +518,12 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -515,8 +516,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-for-writing-URIs.patch b/build/patches/Add-support-for-writing-URIs.patch index 49feadee..53157613 100644 --- a/build/patches/Add-support-for-writing-URIs.patch +++ b/build/patches/Add-support-for-writing-URIs.patch @@ -9,14 +9,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- base/android/content_uri_utils.cc | 10 ++++++ base/android/content_uri_utils.h | 4 +++ - .../org/chromium/base/ContentUriUtils.java | 33 +++++++++++++++++++ - 3 files changed, 47 insertions(+) + .../org/chromium/base/ContentUriUtils.java | 34 +++++++++++++++++++ + 3 files changed, 48 insertions(+) diff --git a/base/android/content_uri_utils.cc b/base/android/content_uri_utils.cc --- a/base/android/content_uri_utils.cc +++ b/base/android/content_uri_utils.cc -@@ -32,6 +32,16 @@ File OpenContentUriForRead(const FilePath& content_uri) { - return File(fd); +@@ -39,6 +39,16 @@ int64_t GetContentUriFileSize(const FilePath& content_uri) { + return Java_ContentUriUtils_getContentUriFileSize(env, j_uri); } +File OpenContentUriForWrite(const FilePath& content_uri) { @@ -43,13 +43,21 @@ diff --git a/base/android/content_uri_utils.h b/base/android/content_uri_utils.h +// Returns -1 if the URI is invalid. +BASE_EXPORT File OpenContentUriForWrite(const FilePath& content_uri); + - // Check whether a content URI exists. - BASE_EXPORT bool ContentUriExists(const FilePath& content_uri); + // Gets file size, or -1 if file is unknown length. + BASE_EXPORT int64_t GetContentUriFileSize(const FilePath& content_uri); diff --git a/base/android/java/src/org/chromium/base/ContentUriUtils.java b/base/android/java/src/org/chromium/base/ContentUriUtils.java --- a/base/android/java/src/org/chromium/base/ContentUriUtils.java +++ b/base/android/java/src/org/chromium/base/ContentUriUtils.java -@@ -23,6 +23,9 @@ import org.jni_zero.CalledByNative; +@@ -10,6 +10,7 @@ import android.content.res.AssetFileDescriptor; + import android.database.Cursor; + import android.net.Uri; + import android.os.Build; ++import android.os.ParcelFileDescriptor; + import android.provider.DocumentsContract; + import android.provider.MediaStore; + import android.text.TextUtils; +@@ -22,6 +23,9 @@ import org.jni_zero.CalledByNative; import java.io.File; import java.io.IOException; @@ -59,7 +67,7 @@ diff --git a/base/android/java/src/org/chromium/base/ContentUriUtils.java b/base /** This class provides methods to access content URI schemes. */ public abstract class ContentUriUtils { private static final String TAG = "ContentUriUtils"; -@@ -87,6 +90,36 @@ public abstract class ContentUriUtils { +@@ -86,6 +90,36 @@ public abstract class ContentUriUtils { return -1; } diff --git a/build/patches/Add-support-to-jxl.patch b/build/patches/Add-support-to-jxl.patch index e3bcd3ca..852ae9bd 100644 --- a/build/patches/Add-support-to-jxl.patch +++ b/build/patches/Add-support-to-jxl.patch @@ -36,7 +36,7 @@ Enabled by default .../platform/graphics/bitmap_image_metrics.h | 4 +- .../renderer/platform/image-decoders/BUILD.gn | 9 + .../platform/image-decoders/image_decoder.cc | 23 + - .../image-decoders/jxl/jxl_image_decoder.cc | 685 ++++++++++++++++++ + .../image-decoders/jxl/jxl_image_decoder.cc | 686 ++++++++++++++++++ .../image-decoders/jxl/jxl_image_decoder.h | 123 ++++ .../jxl/jxl_image_decoder_test.cc | 626 ++++++++++++++++ .../blink/tools/commit_stats/git-dirs.txt | 1 + @@ -58,7 +58,7 @@ Enabled by default .../libjxl/gen_headers/jxl/jxl_export.h | 11 + tools/metrics/histograms/enums.xml | 1 + .../histograms/metadata/blink/enums.xml | 2 +- - 53 files changed, 1997 insertions(+), 17 deletions(-) + 53 files changed, 1998 insertions(+), 17 deletions(-) create mode 100644 build/linux/unbundle/libjxl.gn create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-support-to-jxl.inc create mode 100644 cromite_flags/third_party/blink/common/features_cc/Add-support-to-jxl.inc @@ -95,7 +95,7 @@ diff --git a/DEPS b/DEPS 'highway_revision': '8295336dd70f1201d42c22ab5b0861de38cf8fbf', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling ffmpeg -@@ -1604,6 +1608,9 @@ deps = { +@@ -1632,6 +1636,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 -@@ -92,6 +92,7 @@ +@@ -89,6 +89,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 -@@ -4431,6 +4431,7 @@ domain Emulation +@@ -4473,6 +4473,7 @@ domain Emulation experimental type DisabledImageType extends string enum avif @@ -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 -@@ -2351,6 +2351,10 @@ source_set("blink_platform_unittests_sources") { +@@ -2365,6 +2365,10 @@ source_set("blink_platform_unittests_sources") { sources += [ "text/locale_icu_test.cc" ] } @@ -619,7 +619,7 @@ diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/re sources += [ "testing/run_all_tests.cc" ] configs += [ -@@ -2396,6 +2400,7 @@ source_set("blink_platform_unittests_sources") { +@@ -2411,6 +2415,7 @@ source_set("blink_platform_unittests_sources") { "//third_party/blink/renderer/platform/wtf", "//third_party/dawn/src/dawn/native", "//third_party/dawn/src/dawn/wire", @@ -696,7 +696,7 @@ 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 -@@ -24,6 +24,7 @@ +@@ -29,6 +29,7 @@ #include "base/containers/heap_array.h" #include "base/logging.h" @@ -704,7 +704,7 @@ diff --git a/third_party/blink/renderer/platform/image-decoders/image_decoder.cc #include "base/numerics/byte_conversions.h" #include "base/numerics/safe_conversions.h" #include "base/trace_event/trace_event.h" -@@ -50,6 +51,10 @@ +@@ -55,6 +56,10 @@ #include "third_party/blink/renderer/platform/image-decoders/avif/crabbyavif_image_decoder.h" #endif @@ -715,7 +715,7 @@ diff --git a/third_party/blink/renderer/platform/image-decoders/image_decoder.cc namespace blink { namespace { -@@ -77,6 +82,11 @@ cc::ImageType FileExtensionToImageType(String image_extension) { +@@ -82,6 +87,11 @@ cc::ImageType FileExtensionToImageType(String image_extension) { if (image_extension == "avif") { return cc::ImageType::kAVIF; } @@ -727,7 +727,7 @@ diff --git a/third_party/blink/renderer/platform/image-decoders/image_decoder.cc #endif return cc::ImageType::kInvalid; } -@@ -198,6 +208,12 @@ String SniffMimeTypeInternal(scoped_refptr reader) { +@@ -203,6 +213,12 @@ String SniffMimeTypeInternal(scoped_refptr reader) { return "image/avif"; } #endif @@ -740,7 +740,7 @@ diff --git a/third_party/blink/renderer/platform/image-decoders/image_decoder.cc return String(); } -@@ -309,6 +325,13 @@ std::unique_ptr ImageDecoder::CreateByMimeType( +@@ -314,6 +330,13 @@ std::unique_ptr ImageDecoder::CreateByMimeType( alpha_option, high_bit_depth_decoding_option, color_behavior, max_decoded_bytes, animation_option); } @@ -758,7 +758,7 @@ diff --git a/third_party/blink/renderer/platform/image-decoders/jxl/jxl_image_de new file mode 100644 --- /dev/null +++ b/third_party/blink/renderer/platform/image-decoders/jxl/jxl_image_decoder.cc -@@ -0,0 +1,685 @@ +@@ -0,0 +1,686 @@ +// Copyright 2021 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. @@ -785,9 +785,10 @@ new file mode 100644 + const skcms_TransferFunction& tf) { + // Override the transfer function with a known parametric curve. + profile.has_trc = true; ++ auto list = base::span(profile.trc); + for (int c = 0; c < 3; c++) { -+ profile.trc[c].table_entries = 0; -+ profile.trc[c].parametric = tf; ++ list[c].table_entries = 0; ++ list[c].parametric = tf; + } + return profile; +} @@ -1550,7 +1551,7 @@ new file mode 100644 + bool have_color_info_ = false; + + // Preserved for JXL pixel callback. Not owned. -+ ColorProfileTransform* xform_; ++ raw_ptr xform_; + + // Fields for animation support. + @@ -2217,7 +2218,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 -@@ -4730,6 +4730,12 @@ crbug.com/1199522 http/tests/devtools/layers/layers-3d-view-hit-testing.js [ Fai +@@ -4713,6 +4713,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 ] @@ -2233,8 +2234,8 @@ diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/we diff --git a/third_party/blink/web_tests/VirtualTestSuites b/third_party/blink/web_tests/VirtualTestSuites --- a/third_party/blink/web_tests/VirtualTestSuites +++ b/third_party/blink/web_tests/VirtualTestSuites -@@ -444,6 +444,15 @@ - "--disable-threaded-compositing", "--disable-threaded-animation"], +@@ -437,6 +437,15 @@ + "args": ["--enable-blink-features=FractionalScrollOffsets"], "expires": "Jun 1, 2025" }, + { @@ -2648,7 +2649,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 -@@ -20882,6 +20882,7 @@ from previous Chrome versions. +@@ -21311,6 +21311,7 @@ from previous Chrome versions. diff --git a/build/patches/Add-webGL-site-setting.patch b/build/patches/Add-webGL-site-setting.patch index db0931a5..30d2a0ad 100644 --- a/build/patches/Add-webGL-site-setting.patch +++ b/build/patches/Add-webGL-site-setting.patch @@ -206,7 +206,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context diff --git a/third_party/blink/renderer/core/execution_context/execution_context.h b/third_party/blink/renderer/core/execution_context/execution_context.h --- a/third_party/blink/renderer/core/execution_context/execution_context.h +++ b/third_party/blink/renderer/core/execution_context/execution_context.h -@@ -116,6 +116,8 @@ enum ReasonForCallingCanExecuteScripts { +@@ -117,6 +117,8 @@ enum ReasonForCallingCanExecuteScripts { enum ReferrerPolicySource { kPolicySourceHttpHeader, kPolicySourceMetaTag }; @@ -218,7 +218,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc --- a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc +++ b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc -@@ -289,6 +289,13 @@ void WebGLRenderingContextBase::InitializeWebGLContextLimits( +@@ -294,6 +294,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_); -@@ -558,25 +565,6 @@ static String ExtractWebGLContextCreationError( +@@ -563,25 +570,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('.'); -@@ -636,6 +624,12 @@ WebGLRenderingContextBase::CreateWebGraphicsContext3DProvider( +@@ -641,6 +629,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 -@@ -1967,6 +1967,8 @@ class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext, +@@ -1933,6 +1933,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 96bbfdbf..8d57657d 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" -@@ -841,6 +842,11 @@ PeerConnectionDependencyFactory::CreatePortAllocator( +@@ -871,6 +872,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" -@@ -286,6 +288,14 @@ RTCRtpCapabilities* RTCRtpReceiver::getCapabilities(ScriptState* state, +@@ -267,6 +269,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" -@@ -1044,6 +1046,14 @@ RTCRtpCapabilities* RTCRtpSender::getCapabilities(ScriptState* state, +@@ -1024,6 +1026,14 @@ RTCRtpCapabilities* RTCRtpSender::getCapabilities(ScriptState* state, if (kind != "audio" && kind != "video") return nullptr; diff --git a/build/patches/Allow-DocumentPiP-if-PopupsAndRedirects-are-active.patch b/build/patches/Allow-DocumentPiP-if-PopupsAndRedirects-are-active.patch index 7ee18f85..e70ee91e 100644 --- a/build/patches/Allow-DocumentPiP-if-PopupsAndRedirects-are-active.patch +++ b/build/patches/Allow-DocumentPiP-if-PopupsAndRedirects-are-active.patch @@ -6,17 +6,25 @@ Allow documentPiP api use only with content setting popup allowed License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- - .../picture_in_picture_controller_impl.cc | 7 +++++++ - 1 file changed, 7 insertions(+) + .../picture_in_picture_controller_impl.cc | 8 ++++++++ + 1 file changed, 8 insertions(+) diff --git a/third_party/blink/renderer/modules/document_picture_in_picture/picture_in_picture_controller_impl.cc b/third_party/blink/renderer/modules/document_picture_in_picture/picture_in_picture_controller_impl.cc --- a/third_party/blink/renderer/modules/document_picture_in_picture/picture_in_picture_controller_impl.cc +++ b/third_party/blink/renderer/modules/document_picture_in_picture/picture_in_picture_controller_impl.cc -@@ -383,6 +383,13 @@ void PictureInPictureControllerImpl::CreateDocumentPictureInPictureWindow( +@@ -27,6 +27,7 @@ + #include "third_party/blink/renderer/core/html/media/html_media_element.h" + #include "third_party/blink/renderer/core/html/media/html_video_element.h" + #include "third_party/blink/renderer/core/layout/layout_video.h" ++#include "third_party/blink/renderer/core/loader/document_loader.h" + #include "third_party/blink/renderer/modules/picture_in_picture/picture_in_picture_event.h" + #include "third_party/blink/renderer/platform/heap/garbage_collected.h" + #include "third_party/blink/renderer/platform/runtime_enabled_features.h" +@@ -383,6 +384,13 @@ void PictureInPictureControllerImpl::CreateDocumentPictureInPictureWindow( return; } -+ if (!opener.GetFrame()->GetContentSettings()->allow_popup) { ++ if (!opener.GetFrame()->Loader().GetDocumentLoader()->GetContentSettings()->allow_popup) { + exception_state.ThrowDOMException(DOMExceptionCode::kNotAllowedError, + "Document PiP requires user popup permission"); + resolver->Reject(exception_state); diff --git a/build/patches/Allow-building-without-enable_reporting.patch b/build/patches/Allow-building-without-enable_reporting.patch index bfb87749..82e6386a 100644 --- a/build/patches/Allow-building-without-enable_reporting.patch +++ b/build/patches/Allow-building-without-enable_reporting.patch @@ -15,16 +15,16 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../Allow-building-without-enable_reporting.inc | 2 ++ net/base/features.cc | 1 + net/reporting/reporting_service.cc | 6 ++++++ - services/network/network_context.h | 4 ++-- + services/network/network_context.h | 6 +++--- services/network/public/mojom/BUILD.gn | 1 - - .../network/public/mojom/network_context.mojom | 2 ++ + .../network/public/mojom/network_context.mojom | 3 +++ .../core/frame/csp/content_security_policy.cc | 3 +++ .../blink/renderer/core/frame/local_frame.cc | 3 +++ .../blink/renderer/core/frame/local_frame.h | 4 +++- .../renderer/core/frame/reporting_context.cc | 9 +++++++++ .../renderer/core/frame/reporting_context.h | 7 +++++-- .../renderer/core/frame/reporting_observer.cc | 3 +-- - 20 files changed, 58 insertions(+), 25 deletions(-) + 20 files changed, 60 insertions(+), 26 deletions(-) create mode 100644 cromite_flags/services/network/public/cpp/features_cc/Allow-building-without-enable_reporting.inc diff --git a/chrome/browser/net/chrome_report_sender.cc b/chrome/browser/net/chrome_report_sender.cc @@ -87,8 +87,8 @@ diff --git a/content/browser/network/cross_origin_embedder_policy_reporter.cc b/ if (endpoint) { base::Value::Dict body_to_pass; for (const auto& pair : body) { -@@ -126,6 +128,7 @@ void CrossOriginEmbedderPolicyReporter::QueueAndNotify( - /*user_agent=*/std::nullopt, std::move(body_to_pass)); +@@ -125,6 +127,7 @@ void CrossOriginEmbedderPolicyReporter::QueueAndNotify( + network_anonymization_key_, std::move(body_to_pass)); } } +#endif @@ -116,7 +116,7 @@ diff --git a/content/browser/network/reporting_service_proxy.cc b/content/browse return; rph->GetStoragePartition()->GetNetworkContext()->QueueReport( type, group, url, reporting_source_, network_anonymization_key_, - /*user_agent=*/std::nullopt, std::move(body)); + std::move(body)); +#endif } @@ -124,7 +124,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 -@@ -14404,12 +14404,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport( +@@ -14675,12 +14675,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport( } } } @@ -133,7 +133,7 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/b - GetProcess()->GetStoragePartition()->GetNetworkContext()->QueueReport( - /*type=*/"crash", /*group=*/"default", last_committed_url_, - GetReportingSource(), isolation_info_.network_anonymization_key(), -- /*user_agent=*/std::nullopt, std::move(body)); +- std::move(body)); } void RenderFrameHostImpl::SendCommitNavigation( @@ -175,15 +175,15 @@ diff --git a/content/browser/security/coop/cross_origin_opener_policy_reporter.c std::string ToString(network::mojom::CrossOriginOpenerPolicyValue coop_value) { switch (coop_value) { case network::mojom::CrossOriginOpenerPolicyValue::kUnsafeNone: -@@ -62,6 +55,7 @@ std::string ToString(network::mojom::CrossOriginOpenerPolicyValue coop_value) { - return "restrict-properties-plus-coep"; +@@ -64,6 +57,7 @@ std::string ToString(network::mojom::CrossOriginOpenerPolicyValue coop_value) { + return "noopener-allow-popups"; } } +#endif FrameTreeNode* TopLevelOpener(FrameTreeNode* frame) { FrameTreeNode* opener = -@@ -233,6 +227,7 @@ void CrossOriginOpenerPolicyReporter::QueueAccessReport( +@@ -235,6 +229,7 @@ void CrossOriginOpenerPolicyReporter::QueueAccessReport( network::mojom::SourceLocationPtr source_location, const std::string& reported_window_url, const std::string& initial_popup_url) const { @@ -191,10 +191,10 @@ diff --git a/content/browser/security/coop/cross_origin_opener_policy_reporter.c // Cross-Origin-Opener-Policy-Report-Only is not required to provide // endpoints. if (!coop_.report_only_reporting_endpoint) -@@ -280,12 +275,14 @@ void CrossOriginOpenerPolicyReporter::QueueAccessReport( +@@ -282,12 +277,14 @@ void CrossOriginOpenerPolicyReporter::QueueAccessReport( storage_partition_->GetNetworkContext()->QueueReport( "coop", endpoint, context_url_, reporting_source_, - network_anonymization_key_, std::nullopt, std::move(body)); + network_anonymization_key_, std::move(body)); +#endif } @@ -206,10 +206,10 @@ diff --git a/content/browser/security/coop/cross_origin_opener_policy_reporter.c body.Set(kDisposition, is_report_only ? kDispositionReporting : kDispositionEnforce); body.Set(kEffectivePolicy, -@@ -294,6 +291,7 @@ void CrossOriginOpenerPolicyReporter::QueueNavigationReport( +@@ -295,6 +292,7 @@ void CrossOriginOpenerPolicyReporter::QueueNavigationReport( + storage_partition_->GetNetworkContext()->QueueReport( "coop", endpoint, context_url_, reporting_source_, - network_anonymization_key_, - /*user_agent=*/std::nullopt, std::move(body)); + network_anonymization_key_, std::move(body)); +#endif } @@ -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 -@@ -196,6 +196,7 @@ extern const base::FeatureParam kTimeoutTcpConnectAttemptMax( +@@ -201,6 +201,7 @@ extern const base::FeatureParam kTimeoutTcpConnectAttemptMax( base::Seconds(30)); #if BUILDFLAG(ENABLE_REPORTING) @@ -265,10 +265,10 @@ diff --git a/net/base/features.cc b/net/base/features.cc diff --git a/net/reporting/reporting_service.cc b/net/reporting/reporting_service.cc --- a/net/reporting/reporting_service.cc +++ b/net/reporting/reporting_service.cc -@@ -214,6 +214,12 @@ class ReportingServiceImpl : public ReportingService { - base::Value::Dict body, +@@ -216,6 +216,12 @@ class ReportingServiceImpl : public ReportingService { int depth, - base::TimeTicks queued_ticks) { + base::TimeTicks queued_ticks, + ReportingTargetType target_type) { +#if BUILDFLAG(ENABLE_REPORTING) + if ((true)) + return; @@ -276,17 +276,22 @@ diff --git a/net/reporting/reporting_service.cc b/net/reporting/reporting_servic +#error Attempting to build with enable_reporting +#endif DCHECK(initialized_); - context_->cache()->AddReport( - reporting_source, network_anonymization_key, sanitized_url, user_agent, + context_->cache()->AddReport(reporting_source, network_anonymization_key, + sanitized_url, user_agent, group, type, diff --git a/services/network/network_context.h b/services/network/network_context.h --- a/services/network/network_context.h +++ b/services/network/network_context.h -@@ -467,10 +467,10 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -463,14 +463,14 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext + const GURL& url, const std::optional& reporting_source, const net::NetworkAnonymizationKey& network_anonymization_key, - const std::optional& user_agent, - base::Value::Dict body) override; + base::Value::Dict body); + void QueueEnterpriseReport(const std::string& type, + const std::string& group, + const GURL& url, +- base::Value::Dict body) override; ++ base::Value::Dict body); void QueueSignedExchangeReport( mojom::SignedExchangeReportPtr report, - const net::NetworkAnonymizationKey& network_anonymization_key) override; @@ -297,7 +302,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 -@@ -1491,7 +1491,6 @@ mojom("mojom") { +@@ -1486,7 +1486,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 +313,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 -@@ -1223,6 +1223,7 @@ interface NetworkContext { +@@ -1241,6 +1241,7 @@ interface NetworkContext { // provided |network_isolation_key|. // // Spec: https://w3c.github.io/reporting/#concept-reports @@ -316,7 +321,15 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw QueueReport(string type, string group, url.mojom.Url url, -@@ -1236,6 +1237,7 @@ interface NetworkContext { +@@ -1248,6 +1249,7 @@ interface NetworkContext { + NetworkAnonymizationKey network_anonymization_key, + mojo_base.mojom.DictionaryValue body); + ++ [EnableIf=enable_reporting] + QueueEnterpriseReport(string type, + string group, + url.mojom.Url url, +@@ -1258,6 +1260,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,7 +375,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ #include "services/network/public/cpp/features.h" #include "services/network/public/mojom/content_security_policy.mojom-blink.h" #include "services/network/public/mojom/source_location.mojom-blink.h" -@@ -2760,9 +2761,11 @@ void LocalFrame::MainFrameFirstMeaningfulPaint() { +@@ -2769,9 +2770,11 @@ void LocalFrame::MainFrameFirstMeaningfulPaint() { v8_local_compile_hints_producer_->GenerateData(kIsFinalData); } @@ -385,7 +398,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" -@@ -661,8 +662,9 @@ class CORE_EXPORT LocalFrame final +@@ -662,8 +663,9 @@ class CORE_EXPORT LocalFrame final void FinishedScrollSequence(); SmoothScrollSequencer* GetSmoothScrollSequencer() const; @@ -404,7 +417,7 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_context.cc b/third_ #include "third_party/blink/renderer/core/frame/reporting_context.h" +#include "net/net_buildflags.h" - #include "third_party/blink/public/common/browser_interface_broker_proxy.h" + #include "third_party/blink/public/platform/browser_interface_broker_proxy.h" #include "third_party/blink/public/platform/platform.h" #include "third_party/blink/public/platform/task_type.h" @@ -53,7 +54,9 @@ const char ReportingContext::kSupplementName[] = "ReportingContext"; diff --git a/build/patches/Allow-building-without-supervised-users.patch b/build/patches/Allow-building-without-supervised-users.patch index 185ce0de..a03e049b 100644 --- a/build/patches/Allow-building-without-supervised-users.patch +++ b/build/patches/Allow-building-without-supervised-users.patch @@ -6,7 +6,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- chrome/android/BUILD.gn | 1 - .../browser/feed/FeedSurfaceCoordinator.java | 5 +---- + .../feedback/ChromeFeedbackCollector.java | 1 - chrome/browser/BUILD.gn | 2 -- + chrome/browser/feedback/android/BUILD.gn | 2 -- .../prefs/chrome_pref_service_factory.cc | 2 +- .../profiles/profile_attributes_entry.cc | 2 +- chrome/browser/profiles/profile_impl.cc | 5 +---- @@ -18,19 +20,19 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../core/browser/supervised_user_service.cc | 5 +---- .../core/browser/supervised_user_utils.cc | 1 + .../supervised_user/core/common/features.cc | 6 ++++++ - 14 files changed, 18 insertions(+), 46 deletions(-) + 16 files changed, 18 insertions(+), 49 deletions(-) diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -757,7 +757,6 @@ if (current_toolchain == default_toolchain) { +@@ -780,7 +780,6 @@ if (current_toolchain == default_toolchain) { "//components/dom_distiller/core:distiller_type_java", "//components/ntp_tiles:ntp_tiles_enums_java", "//components/offline_pages/core:offline_page_model_enums_java", - "//components/supervised_user/core/browser:supervised_user_utils_enum_javagen", - "//net:effective_connection_type_java", ] + # From java_sources.gni. 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 @@ -42,7 +44,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; -@@ -788,9 +787,7 @@ public class FeedSurfaceCoordinator +@@ -784,9 +783,7 @@ public class FeedSurfaceCoordinator * Returns true if the supervised user feed should be displayed. */ public boolean shouldDisplaySupervisedFeed() { @@ -53,22 +55,52 @@ diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/ } /** +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java b/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java +@@ -85,7 +85,6 @@ public class ChromeFeedbackCollector extends FeedbackCollectorSetManagedPolicies(policy_service, policy_connector); factory->SetRecommendedPolicies(policy_service, policy_connector); @@ -80,7 +112,7 @@ diff --git a/chrome/browser/prefs/chrome_pref_service_factory.cc b/chrome/browse diff --git a/chrome/browser/profiles/profile_attributes_entry.cc b/chrome/browser/profiles/profile_attributes_entry.cc --- a/chrome/browser/profiles/profile_attributes_entry.cc +++ b/chrome/browser/profiles/profile_attributes_entry.cc -@@ -422,7 +422,7 @@ bool ProfileAttributesEntry::IsSigninRequired() const { +@@ -459,7 +459,7 @@ bool ProfileAttributesEntry::IsSigninRequired() const { } std::string ProfileAttributesEntry::GetSupervisedUserId() const { @@ -103,7 +135,7 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p // Changes in the profile avatar. pref_change_registrar_.Add( -@@ -1624,6 +1620,7 @@ GURL ProfileImpl::GetHomePage() { +@@ -1629,6 +1625,7 @@ GURL ProfileImpl::GetHomePage() { } void ProfileImpl::UpdateSupervisedUserIdInStorage() { @@ -114,7 +146,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 -@@ -1210,23 +1210,6 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) { +@@ -1212,23 +1212,6 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) { profile->GetPrefs()->SetString(prefs::kProfileName, profile_name); } @@ -138,7 +170,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); -@@ -2038,9 +2021,6 @@ void ProfileManager::AddProfileToStorage(Profile* profile) { +@@ -2041,9 +2024,6 @@ void ProfileManager::AddProfileToStorage(Profile* profile) { init_params.icon_index = profile->GetPrefs()->GetInteger(prefs::kProfileAvatarIndex); @@ -165,7 +197,7 @@ diff --git a/chrome/browser/ui/webui/managed_ui_handler.cc b/chrome/browser/ui/w diff --git a/chrome/browser/ui/webui/management/management_ui_handler.cc b/chrome/browser/ui/webui/management/management_ui_handler.cc --- a/chrome/browser/ui/webui/management/management_ui_handler.cc +++ b/chrome/browser/ui/webui/management/management_ui_handler.cc -@@ -546,10 +546,6 @@ bool ManagementUIHandler::managed() const { +@@ -557,10 +557,6 @@ bool ManagementUIHandler::managed() const { void ManagementUIHandler::RegisterPrefChange( PrefChangeRegistrar& pref_registrar) { @@ -190,7 +222,7 @@ diff --git a/components/supervised_user/core/browser/supervised_user_pref_store. diff --git a/components/supervised_user/core/browser/supervised_user_preferences.cc b/components/supervised_user/core/browser/supervised_user_preferences.cc --- a/components/supervised_user/core/browser/supervised_user_preferences.cc +++ b/components/supervised_user/core/browser/supervised_user_preferences.cc -@@ -164,6 +164,10 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { +@@ -165,6 +165,10 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { } void EnableParentalControls(PrefService& pref_service) { @@ -201,7 +233,7 @@ diff --git a/components/supervised_user/core/browser/supervised_user_preferences pref_service.SetString(prefs::kSupervisedUserId, supervised_user::kChildAccountSUID); SetIsChildAccountStatusKnown(pref_service); -@@ -186,7 +190,7 @@ bool IsSafeSitesEnabled(const PrefService& pref_service) { +@@ -187,7 +191,7 @@ bool IsSafeSitesEnabled(const PrefService& pref_service) { } bool IsSubjectToParentalControls(const PrefService& pref_service) { @@ -224,7 +256,7 @@ diff --git a/components/supervised_user/core/browser/supervised_user_service.cc FirstTimeInterstitialBannerState banner_state = static_cast( user_prefs_->GetInteger(prefs::kFirstTimeInterstitialBannerState)); -@@ -189,6 +185,7 @@ FirstTimeInterstitialBannerState SupervisedUserService::GetUpdatedBannerState( +@@ -190,6 +186,7 @@ FirstTimeInterstitialBannerState SupervisedUserService::GetUpdatedBannerState( } void SupervisedUserService::SetActive(bool active) { @@ -246,8 +278,8 @@ 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 -@@ -143,4 +143,10 @@ bool IsShadowKidsApiWithSafeSitesEnabled() { - return base::FeatureList::IsEnabled(kShadowKidsApiWithSafeSites); +@@ -179,4 +179,10 @@ bool IsKidFriendlyContentFeedAvailable() { + return base::FeatureList::IsEnabled(kKidFriendlyContentFeed); } +SET_CROMITE_FEATURE_DISABLED(kKidFriendlyContentFeed); diff --git a/build/patches/Allow-playing-audio-in-background.patch b/build/patches/Allow-playing-audio-in-background.patch index 24157a0a..e200abf3 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 -@@ -1230,6 +1230,12 @@ bool WebMediaPlayerImpl::HasAudio() const { +@@ -1240,6 +1240,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()); -@@ -3576,7 +3582,10 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const { +@@ -3591,7 +3597,10 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const { : HasAudio(); // Audio only stream is allowed to play when in background. diff --git a/build/patches/Always-open-browser-controls-in-new-tab.patch b/build/patches/Always-open-browser-controls-in-new-tab.patch index 67ffbf28..2f14a549 100644 --- a/build/patches/Always-open-browser-controls-in-new-tab.patch +++ b/build/patches/Always-open-browser-controls-in-new-tab.patch @@ -17,7 +17,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM import org.chromium.chrome.browser.DefaultBrowserInfo; import org.chromium.chrome.browser.IntentHandler; import org.chromium.chrome.browser.bookmarks.BookmarkModel; -@@ -36,6 +37,7 @@ import org.chromium.chrome.browser.multiwindow.MultiWindowUtils; +@@ -35,6 +36,7 @@ import org.chromium.chrome.browser.multiwindow.MultiWindowUtils; import org.chromium.chrome.browser.offlinepages.OfflinePageBridge; import org.chromium.chrome.browser.offlinepages.RequestCoordinatorBridge; import org.chromium.chrome.browser.profiles.Profile; @@ -25,7 +25,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM import org.chromium.chrome.browser.tabmodel.TabModelSelector; import org.chromium.chrome.browser.tabmodel.document.ChromeAsyncTabLauncher; import org.chromium.chrome.browser.tasks.tab_groups.TabGroupModelFilter; -@@ -234,6 +236,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { +@@ -250,6 +252,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { Referrer referrer, boolean navigateToTab, @Nullable AdditionalNavigationParams additionalNavigationParams) { @@ -33,9 +33,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM RecordUserAction.record("MobileNewTabOpened"); RecordUserAction.record("LinkOpenedInNewTab"); LoadUrlParams loadUrlParams = new LoadUrlParams(url.getSpec()); -@@ -250,6 +253,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { - - @Override +@@ -270,6 +273,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { + * @param url The URL to open. + */ public void onOpenInNewTabInGroup(GURL url, Referrer referrer) { + TabBrowserControlsConstraintsHelper.get(mTab).update(BrowserControlsState.SHOWN, true); RecordUserAction.record("MobileNewTabOpened"); diff --git a/build/patches/Ask-for-restart-on-connection-change.patch b/build/patches/Ask-for-restart-on-connection-change.patch index 698f277c..07740fe0 100644 --- a/build/patches/Ask-for-restart-on-connection-change.patch +++ b/build/patches/Ask-for-restart-on-connection-change.patch @@ -90,7 +90,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in +import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; +import org.chromium.chrome.browser.ui.messages.snackbar.INeedSnackbarManager; +import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar; -+import org.chromium.chrome.browser.tasks.tab_management.TabSwitcherLayout; ++import org.chromium.chrome.browser.hub.HubLayout; +import org.chromium.chrome.browser.tab.Tab; +import org.chromium.chrome.browser.tabmodel.TabModelUtils; +import org.chromium.chrome.browser.tabmodel.TabModelSelector; @@ -205,7 +205,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in + // TabWindowManager.Observer + @Override + public void onSceneChange(Layout layout) { -+ if (!(layout instanceof TabSwitcherLayout)) { ++ if (!(layout instanceof HubLayout)) { + SnackbarManager snackbarManager = mSnackbarManagerSupplier.get(); + snackbarManager.dismissSnackbars(this); + } @@ -264,7 +264,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java -@@ -1196,7 +1196,10 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1189,7 +1189,10 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { mActivity, mStatusIndicatorCoordinator, isUrlBarFocusedSupplier, @@ -279,7 +279,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java -@@ -305,6 +305,13 @@ public abstract class TabModelSelectorBase +@@ -317,6 +317,13 @@ public abstract class TabModelSelectorBase return null; } @@ -333,7 +333,7 @@ new file mode 100644 diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java --- a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java +++ b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java -@@ -121,6 +121,8 @@ public interface TabModelSelector { +@@ -138,6 +138,8 @@ public interface TabModelSelector { /** Close all tabs across all tab models */ void closeAllTabs(); @@ -345,7 +345,7 @@ diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browse diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelUtils.java b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelUtils.java --- a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelUtils.java +++ b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelUtils.java -@@ -13,10 +13,14 @@ import org.chromium.chrome.browser.flags.ChromeFeatureList; +@@ -12,10 +12,14 @@ import org.chromium.base.supplier.ObservableSupplier; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.TabSelectionType; import org.chromium.content_public.browser.WebContents; @@ -360,7 +360,7 @@ diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browse /** * A set of convenience methods used for interacting with {@link TabList}s and {@link TabModel}s. -@@ -79,6 +83,20 @@ public class TabModelUtils { +@@ -78,6 +82,20 @@ public class TabModelUtils { return TabModel.INVALID_TAB_INDEX; } @@ -379,7 +379,7 @@ diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browse + } + /** - * Find the {@link Tab} with the specified id. + * Find the {@link Tab} index whose URL matches the specified URL. * diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManager.java b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManager.java --- a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManager.java @@ -396,7 +396,7 @@ diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browse diff --git a/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManagerImpl.java b/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManagerImpl.java --- a/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManagerImpl.java +++ b/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManagerImpl.java -@@ -449,6 +449,16 @@ public class TabWindowManagerImpl implements ActivityStateListener, TabWindowMan +@@ -456,6 +456,16 @@ public class TabWindowManagerImpl implements ActivityStateListener, TabWindowMan return null; } @@ -449,7 +449,7 @@ diff --git a/chrome/browser/ui/messages/android/java/res/layout/snackbar.xml b/c diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/Snackbar.java b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/Snackbar.java --- a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/Snackbar.java +++ b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/Snackbar.java -@@ -127,6 +127,8 @@ public class Snackbar { +@@ -130,6 +130,8 @@ public class Snackbar { private String mTemplateText; private String mActionText; private Object mActionData; @@ -458,7 +458,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro private String mAccessibilityActionAnnouncement; private int mBackgroundColor; private int mTextApperanceResId; -@@ -195,6 +197,20 @@ public class Snackbar { +@@ -198,6 +200,20 @@ public class Snackbar { return this; } @@ -482,7 +482,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager.java b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager.java --- a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager.java +++ b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager.java -@@ -285,6 +285,12 @@ public class SnackbarManager +@@ -287,6 +287,12 @@ public class SnackbarManager new SnackbarView( mActivity, this, @@ -553,7 +553,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro diff --git a/content/browser/web_contents/web_contents_android.cc b/content/browser/web_contents/web_contents_android.cc --- a/content/browser/web_contents/web_contents_android.cc +++ b/content/browser/web_contents/web_contents_android.cc -@@ -890,6 +890,22 @@ void WebContentsAndroid::SetFocus(JNIEnv* env, jboolean focused) { +@@ -883,6 +883,22 @@ void WebContentsAndroid::SetFocus(JNIEnv* env, jboolean focused) { view->SetFocus(focused); } @@ -579,7 +579,7 @@ diff --git a/content/browser/web_contents/web_contents_android.cc b/content/brow diff --git a/content/browser/web_contents/web_contents_android.h b/content/browser/web_contents/web_contents_android.h --- a/content/browser/web_contents/web_contents_android.h +++ b/content/browser/web_contents/web_contents_android.h -@@ -195,6 +195,7 @@ class CONTENT_EXPORT WebContentsAndroid { +@@ -199,6 +199,7 @@ class CONTENT_EXPORT WebContentsAndroid { void OnScaleFactorChanged(JNIEnv* env); void SetFocus(JNIEnv* env, jboolean focused); @@ -590,7 +590,7 @@ diff --git a/content/browser/web_contents/web_contents_android.h b/content/brows diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -3532,8 +3532,10 @@ void WebContentsImpl::Stop() { +@@ -3539,8 +3539,10 @@ void WebContentsImpl::Stop() { void WebContentsImpl::SetPageFrozen(bool frozen) { TRACE_EVENT1("content", "WebContentsImpl::SetPageFrozen", "frozen", frozen); @@ -604,7 +604,7 @@ diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser diff --git a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java --- a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java +++ b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java -@@ -1169,6 +1169,12 @@ public class WebContentsImpl implements WebContents, RenderFrameHostDelegate, Wi +@@ -1161,6 +1161,12 @@ public class WebContentsImpl implements WebContents, RenderFrameHostDelegate, Wi WebContentsImplJni.get().setFocus(mNativeWebContentsAndroid, hasFocus); } @@ -617,7 +617,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/webcon @Override public void setDisplayCutoutSafeArea(Rect insets) { if (mNativeWebContentsAndroid == 0) return; -@@ -1444,6 +1450,8 @@ public class WebContentsImpl implements WebContents, RenderFrameHostDelegate, Wi +@@ -1440,6 +1446,8 @@ public class WebContentsImpl implements WebContents, RenderFrameHostDelegate, Wi void setFocus(long nativeWebContentsAndroid, boolean focused); @@ -629,7 +629,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/webcon diff --git a/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java b/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java --- a/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java +++ b/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java -@@ -293,6 +293,8 @@ public interface WebContents extends Parcelable { +@@ -286,6 +286,8 @@ public interface WebContents extends Parcelable { */ void setFocus(boolean hasFocus); @@ -641,7 +641,7 @@ diff --git a/content/public/android/java/src/org/chromium/content_public/browser diff --git a/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java b/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java --- a/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java +++ b/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java -@@ -199,6 +199,9 @@ public class MockWebContents implements WebContents { +@@ -191,6 +191,9 @@ public class MockWebContents implements WebContents { @Override public void setFocus(boolean hasFocus) {} @@ -686,7 +686,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc --- a/third_party/blink/renderer/core/dom/document.cc +++ b/third_party/blink/renderer/core/dom/document.cc -@@ -4331,6 +4331,7 @@ void Document::DispatchUnloadEvents(UnloadEventTimingInfo* unload_timing_info) { +@@ -4338,6 +4338,7 @@ void Document::DispatchUnloadEvents(UnloadEventTimingInfo* unload_timing_info) { } void Document::DispatchFreezeEvent() { @@ -697,7 +697,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc -@@ -3197,6 +3197,7 @@ void LocalFrame::DidFreeze() { +@@ -3206,6 +3206,7 @@ void LocalFrame::DidFreeze() { LoaderFreezeMode freeze_mode = GetLoaderFreezeMode(); GetDocument()->Fetcher()->SetDefersLoading(freeze_mode); Loader().SetDefersLoading(freeze_mode); @@ -705,7 +705,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ } void LocalFrame::DidResume() { -@@ -3211,6 +3212,7 @@ void LocalFrame::DidResume() { +@@ -3220,6 +3221,7 @@ void LocalFrame::DidResume() { GetDocument()->Fetcher()->SetDefersLoading(LoaderFreezeMode::kNone); Loader().SetDefersLoading(LoaderFreezeMode::kNone); diff --git a/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch b/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch index 4be7ed87..750ffd57 100644 --- a/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch +++ b/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch @@ -52,7 +52,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer.cc b/third_party/blink/renderer/modules/webaudio/audio_buffer.cc --- a/third_party/blink/renderer/modules/webaudio/audio_buffer.cc +++ b/third_party/blink/renderer/modules/webaudio/audio_buffer.cc -@@ -196,6 +196,20 @@ AudioBuffer::AudioBuffer(AudioBus* bus) +@@ -201,6 +201,20 @@ AudioBuffer::AudioBuffer(AudioBus* bus) } } @@ -89,14 +89,14 @@ diff --git a/third_party/blink/renderer/modules/webaudio/audio_context.cc b/thir --- a/third_party/blink/renderer/modules/webaudio/audio_context.cc +++ b/third_party/blink/renderer/modules/webaudio/audio_context.cc @@ -12,6 +12,7 @@ - #include "third_party/blink/public/common/browser_interface_broker_proxy.h" #include "third_party/blink/public/common/features.h" #include "third_party/blink/public/common/mediastream/media_devices.h" + #include "third_party/blink/public/platform/browser_interface_broker_proxy.h" +#include "third_party/blink/public/common/features.h" #include "third_party/blink/public/platform/modules/webrtc/webrtc_logging.h" #include "third_party/blink/public/platform/web_audio_latency_hint.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h" -@@ -586,7 +587,9 @@ double AudioContext::baseLatency() const { +@@ -585,7 +586,9 @@ double AudioContext::baseLatency() const { DCHECK(IsMainThread()); DCHECK(destination()); @@ -162,7 +162,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/offline_audio_context.c diff --git a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc b/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc --- a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc +++ b/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc -@@ -31,6 +31,7 @@ +@@ -36,6 +36,7 @@ #include #include @@ -170,7 +170,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc b/ #include "third_party/blink/renderer/platform/audio/audio_bus.h" #include "third_party/blink/renderer/platform/audio/audio_utilities.h" #include "third_party/blink/renderer/platform/audio/vector_math.h" -@@ -155,6 +156,7 @@ void RealtimeAnalyser::GetFloatTimeDomainData( +@@ -160,6 +161,7 @@ void RealtimeAnalyser::GetFloatTimeDomainData( input_buffer[(i + write_index - fft_size + kInputBufferSize) % kInputBufferSize]; @@ -178,7 +178,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc b/ destination[i] = value; } } -@@ -182,6 +184,8 @@ void RealtimeAnalyser::GetByteTimeDomainData(DOMUint8Array* destination_array) { +@@ -187,6 +189,8 @@ void RealtimeAnalyser::GetByteTimeDomainData(DOMUint8Array* destination_array) { input_buffer[(i + write_index - fft_size + kInputBufferSize) % kInputBufferSize]; @@ -187,7 +187,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc b/ // Scale from nominal -1 -> +1 to unsigned byte. double scaled_value = 128 * (value + 1); -@@ -301,6 +305,8 @@ void RealtimeAnalyser::ConvertToByteData(DOMUint8Array* destination_array) { +@@ -306,6 +310,8 @@ void RealtimeAnalyser::ConvertToByteData(DOMUint8Array* destination_array) { double scaled_value = UCHAR_MAX * (db_mag - min_decibels) * range_scale_factor; @@ -196,7 +196,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc b/ // Clip to valid range. destination[i] = static_cast(ClampTo(scaled_value, 0, UCHAR_MAX)); -@@ -320,6 +326,7 @@ void RealtimeAnalyser::ConvertFloatToDb(DOMFloat32Array* destination_array) { +@@ -325,6 +331,7 @@ void RealtimeAnalyser::ConvertFloatToDb(DOMFloat32Array* destination_array) { float linear_value = source[i]; double db_mag = audio_utilities::LinearToDecibels(linear_value); destination[i] = static_cast(db_mag); @@ -207,7 +207,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc b/ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -375,8 +375,8 @@ +@@ -396,8 +396,8 @@ { // AudioContext.playoutStats interface. // https://chromestatus.com/feature/5172818344148992 diff --git a/build/patches/Block-gateway-attacks-via-websockets.patch b/build/patches/Block-gateway-attacks-via-websockets.patch index d99bb1c8..d5851107 100644 --- a/build/patches/Block-gateway-attacks-via-websockets.patch +++ b/build/patches/Block-gateway-attacks-via-websockets.patch @@ -49,7 +49,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context diff --git a/third_party/blink/renderer/core/execution_context/execution_context.h b/third_party/blink/renderer/core/execution_context/execution_context.h --- a/third_party/blink/renderer/core/execution_context/execution_context.h +++ b/third_party/blink/renderer/core/execution_context/execution_context.h -@@ -391,6 +391,7 @@ class CORE_EXPORT ExecutionContext : public Supplementable, +@@ -392,6 +392,7 @@ class CORE_EXPORT ExecutionContext : public Supplementable, void SetAddressSpace(network::mojom::blink::IPAddressSpace ip_address_space); HeapObserverSet& ContextLifecycleObserverSet(); @@ -60,7 +60,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.h b/third_party/blink/renderer/core/loader/base_fetch_context.h --- a/third_party/blink/renderer/core/loader/base_fetch_context.h +++ b/third_party/blink/renderer/core/loader/base_fetch_context.h -@@ -86,6 +86,7 @@ class CORE_EXPORT BaseFetchContext : public FetchContext { +@@ -94,6 +94,7 @@ class CORE_EXPORT BaseFetchContext : public FetchContext { virtual SubresourceFilter* GetSubresourceFilter() const = 0; virtual bool ShouldBlockWebSocketByMixedContentCheck(const KURL&) const = 0; @@ -71,7 +71,7 @@ diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.h b/third diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/third_party/blink/renderer/core/loader/frame_fetch_context.cc --- a/third_party/blink/renderer/core/loader/frame_fetch_context.cc +++ b/third_party/blink/renderer/core/loader/frame_fetch_context.cc -@@ -624,6 +624,26 @@ bool FrameFetchContext::ShouldBlockRequestByInspector(const KURL& url) const { +@@ -611,6 +611,26 @@ bool FrameFetchContext::ShouldBlockRequestByInspector(const KURL& url) const { return should_block_request; } @@ -224,7 +224,7 @@ diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetc diff --git a/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc b/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc --- a/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc +++ b/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc -@@ -277,6 +277,11 @@ bool WebSocketChannelImpl::Connect(const KURL& url, const String& protocol) { +@@ -284,6 +284,11 @@ bool WebSocketChannelImpl::Connect(const KURL& url, const String& protocol) { return false; } diff --git a/build/patches/Block-qjz9zk-or-trk-requests.patch b/build/patches/Block-qjz9zk-or-trk-requests.patch index d08f6743..5ed13741 100644 --- a/build/patches/Block-qjz9zk-or-trk-requests.patch +++ b/build/patches/Block-qjz9zk-or-trk-requests.patch @@ -64,7 +64,7 @@ diff --git a/chrome/browser/ui/singleton_tabs.cc b/chrome/browser/ui/singleton_t diff --git a/components/omnibox/browser/autocomplete_input.cc b/components/omnibox/browser/autocomplete_input.cc --- a/components/omnibox/browser/autocomplete_input.cc +++ b/components/omnibox/browser/autocomplete_input.cc -@@ -91,10 +91,15 @@ void OffsetComponentsExcludingScheme(url::Parsed* parts, int offset) { +@@ -92,10 +92,15 @@ void OffsetComponentsExcludingScheme(url::Parsed* parts, int offset) { bool HasScheme(const std::u16string& input, const char* scheme) { std::string utf8_input(base::UTF16ToUTF8(input)); url::Component view_source_scheme; @@ -80,7 +80,7 @@ diff --git a/components/omnibox/browser/autocomplete_input.cc b/components/omnib return url::FindAndCompareScheme(utf8_input, scheme, nullptr); } -@@ -582,7 +587,8 @@ void AutocompleteInput::ParseForEmphasizeComponents( +@@ -592,7 +597,8 @@ void AutocompleteInput::ParseForEmphasizeComponents( // For the view-source and blob schemes, we should emphasize the host of the // URL qualified by the view-source or blob prefix. if ((base::EqualsCaseInsensitiveASCII(scheme_str, kViewSourceScheme) || @@ -107,7 +107,7 @@ diff --git a/components/url_formatter/url_fixer.cc b/components/url_formatter/ur diff --git a/content/browser/child_process_security_policy_impl.cc b/content/browser/child_process_security_policy_impl.cc --- a/content/browser/child_process_security_policy_impl.cc +++ b/content/browser/child_process_security_policy_impl.cc -@@ -864,6 +864,7 @@ ChildProcessSecurityPolicyImpl::ChildProcessSecurityPolicyImpl() +@@ -867,6 +867,7 @@ ChildProcessSecurityPolicyImpl::ChildProcessSecurityPolicyImpl() RegisterPseudoScheme(url::kJavaScriptScheme); RegisterPseudoScheme(kViewSourceScheme); RegisterPseudoScheme(kGoogleChromeScheme); @@ -118,7 +118,7 @@ diff --git a/content/browser/child_process_security_policy_impl.cc b/content/bro diff --git a/net/BUILD.gn b/net/BUILD.gn --- a/net/BUILD.gn +++ b/net/BUILD.gn -@@ -1014,6 +1014,8 @@ component("net") { +@@ -1044,6 +1044,8 @@ component("net") { "url_request/url_request_http_job.cc", "url_request/url_request_http_job.h", "url_request/url_request_interceptor.cc", @@ -195,15 +195,15 @@ new file mode 100644 diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc --- a/net/url_request/url_request.cc +++ b/net/url_request/url_request.cc -@@ -13,6 +13,7 @@ - #include "base/metrics/histogram_macros.h" +@@ -14,6 +14,7 @@ + #include "base/notreached.h" #include "base/rand_util.h" #include "base/strings/utf_string_conversions.h" +#include "base/strings/string_util.h" #include "base/synchronization/lock.h" #include "base/task/single_thread_task_runner.h" #include "base/types/pass_key.h" -@@ -49,6 +50,7 @@ +@@ -51,6 +52,7 @@ #include "net/url_request/url_request_redirect_job.h" #include "url/gurl.h" #include "url/origin.h" @@ -211,7 +211,7 @@ diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc namespace net { -@@ -605,6 +607,12 @@ URLRequest::URLRequest(base::PassKey pass_key, +@@ -618,6 +620,12 @@ URLRequest::URLRequest(base::PassKey pass_key, // Sanity check out environment. DCHECK(base::SingleThreadTaskRunner::HasCurrentDefault()); @@ -227,7 +227,7 @@ diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc diff --git a/net/url_request/url_request_context_builder.cc b/net/url_request/url_request_context_builder.cc --- a/net/url_request/url_request_context_builder.cc +++ b/net/url_request/url_request_context_builder.cc -@@ -48,6 +48,7 @@ +@@ -49,6 +49,7 @@ #include "net/socket/network_binding_client_socket_factory.h" #include "net/ssl/ssl_config_service_defaults.h" #include "net/url_request/static_http_user_agent_settings.h" @@ -235,7 +235,7 @@ diff --git a/net/url_request/url_request_context_builder.cc b/net/url_request/ur #include "net/url_request/url_request_context.h" #include "net/url_request/url_request_job_factory.h" #include "url/url_constants.h" -@@ -582,6 +583,8 @@ std::unique_ptr URLRequestContextBuilder::Build() { +@@ -590,6 +591,8 @@ std::unique_ptr URLRequestContextBuilder::Build() { job_factory->SetProtocolHandler(scheme_handler.first, std::move(scheme_handler.second)); } @@ -247,7 +247,7 @@ diff --git a/net/url_request/url_request_context_builder.cc b/net/url_request/ur diff --git a/url/url_constants.h b/url/url_constants.h --- a/url/url_constants.h +++ b/url/url_constants.h -@@ -36,6 +36,7 @@ inline constexpr char16_t kDataScheme16[] = u"data"; +@@ -34,6 +34,7 @@ inline constexpr char16_t kDataScheme16[] = u"data"; inline constexpr char kDrivefsScheme[] = "drivefs"; inline constexpr char kFileScheme[] = "file"; inline constexpr char16_t kFileScheme16[] = u"file"; @@ -258,7 +258,7 @@ diff --git a/url/url_constants.h b/url/url_constants.h diff --git a/url/url_util.cc b/url/url_util.cc --- a/url/url_util.cc +++ b/url/url_util.cc -@@ -48,6 +48,7 @@ struct SchemeRegistry { +@@ -53,6 +53,7 @@ struct SchemeRegistry { std::vector standard_schemes = { {kHttpsScheme, SCHEME_WITH_HOST_PORT_AND_USER_INFORMATION}, {kHttpScheme, SCHEME_WITH_HOST_PORT_AND_USER_INFORMATION}, @@ -266,7 +266,7 @@ diff --git a/url/url_util.cc b/url/url_util.cc // Yes, file URLs can have a hostname, so file URLs should be handled as // "standard". File URLs never have a port as specified by the SchemeType // field. Unlike other SCHEME_WITH_HOST schemes, the 'host' in a file -@@ -93,6 +94,7 @@ struct SchemeRegistry { +@@ -98,6 +99,7 @@ struct SchemeRegistry { kAboutScheme, kJavaScriptScheme, kDataScheme, diff --git a/build/patches/Bromite-auto-updater.patch b/build/patches/Bromite-auto-updater.patch index 72c20028..5c0c577a 100644 --- a/build/patches/Bromite-auto-updater.patch +++ b/build/patches/Bromite-auto-updater.patch @@ -31,7 +31,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../chrome/browser/omaha/OmahaPrefUtils.java | 52 +++- .../chrome/browser/omaha/UpdateConfigs.java | 27 +- .../browser/omaha/UpdateStatusProvider.java | 168 +++++++---- - .../browser/omaha/VersionNumberGetter.java | 3 +- + .../browser/omaha/VersionNumberGetter.java | 4 +- .../omaha/inline/InlineUpdateController.java | 57 ++++ .../safety_hub/SafetyHubFetchService.java | 5 - .../strings/android_chrome_strings.grd | 23 +- @@ -39,7 +39,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../endpoint_fetcher/endpoint_fetcher.h | 23 +- .../Bromite-auto-updater.inc | 3 + .../Bromite-auto-updater.inc | 1 + - 31 files changed, 1225 insertions(+), 74 deletions(-) + 31 files changed, 1225 insertions(+), 75 deletions(-) create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/omaha/CromiteUpdateStatusProvider.java create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/BromiteInlineUpdateController.java create mode 100644 chrome/browser/endpoint_fetcher/BUILD.gn @@ -81,7 +81,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 -@@ -869,6 +869,8 @@ chrome_java_sources = [ +@@ -865,6 +865,8 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/omaha/OmahaBase.java", "java/src/org/chromium/chrome/browser/omaha/OmahaDelegate.java", "java/src/org/chromium/chrome/browser/omaha/OmahaDelegateBase.java", @@ -672,7 +672,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 -@@ -2779,6 +2779,12 @@ static_library("browser") { +@@ -2766,6 +2766,12 @@ static_library("browser") { } if (is_android) { @@ -1085,7 +1085,7 @@ new file mode 100644 diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -253,6 +253,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -264,6 +264,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kPriceChangeModule, &kPwaRestoreUi, &kPwaRestoreUiAtStartup, @@ -1096,7 +1096,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 -@@ -339,6 +339,7 @@ public abstract class ChromeFeatureList { +@@ -345,6 +345,7 @@ public abstract class ChromeFeatureList { public static final String INCOGNITO_REAUTHENTICATION_FOR_ANDROID = "IncognitoReauthenticationForAndroid"; public static final String INCOGNITO_SCREENSHOT = "IncognitoScreenshot"; @@ -1574,16 +1574,17 @@ diff --git a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/o diff --git a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/omaha/VersionNumberGetter.java b/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/omaha/VersionNumberGetter.java --- a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/omaha/VersionNumberGetter.java +++ b/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/omaha/VersionNumberGetter.java -@@ -51,7 +51,8 @@ public class VersionNumberGetter { - private static VersionNumberGetter sInstanceForTests; +@@ -30,8 +30,8 @@ public class VersionNumberGetter { - /** If false, OmahaClient will never report that a newer version is available. */ -- private static boolean sEnableUpdateDetection = true; -+ // it must be false to disable version control via Omaha server -+ private static boolean sEnableUpdateDetection = false; + private static VersionNumberGetter sInstance = new VersionNumberGetter(); - protected VersionNumberGetter() {} +- /** If true, OmahaClient will never report that a newer version is available. */ +- private static boolean sDisableUpdateDetectionForTesting; ++ /** it must be true to disable version control via Omaha server. */ ++ private static boolean sDisableUpdateDetectionForTesting = true; + @VisibleForTesting + static VersionNumberGetter getInstance() { diff --git a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateController.java b/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateController.java new file mode 100644 --- /dev/null @@ -1649,19 +1650,19 @@ new file mode 100644 diff --git a/chrome/browser/safety_hub/android/java/src/org/chromium/chrome/browser/safety_hub/SafetyHubFetchService.java b/chrome/browser/safety_hub/android/java/src/org/chromium/chrome/browser/safety_hub/SafetyHubFetchService.java --- a/chrome/browser/safety_hub/android/java/src/org/chromium/chrome/browser/safety_hub/SafetyHubFetchService.java +++ b/chrome/browser/safety_hub/android/java/src/org/chromium/chrome/browser/safety_hub/SafetyHubFetchService.java -@@ -53,9 +53,6 @@ public class SafetyHubFetchService implements SyncService.SyncStateChangedListen - if (syncService != null) { - syncService.addSyncStateChangedListener(this); +@@ -65,9 +65,6 @@ public class SafetyHubFetchService implements SigninManager.SignInStateObserver, + if (mSigninManager != null) { + mSigninManager.addSignInStateObserver(this); } - - // Fetch latest update status. - UpdateStatusProvider.getInstance().addObserver(mUpdateCallback); } - @Override -@@ -64,8 +61,6 @@ public class SafetyHubFetchService implements SyncService.SyncStateChangedListen - if (syncService != null) { - syncService.removeSyncStateChangedListener(this); + void addObserver(Observer observer) { +@@ -83,8 +80,6 @@ public class SafetyHubFetchService implements SigninManager.SignInStateObserver, + if (mSigninManager != null) { + mSigninManager.removeSignInStateObserver(this); } - - UpdateStatusProvider.getInstance().removeObserver(mUpdateCallback); @@ -1671,7 +1672,7 @@ diff --git a/chrome/browser/safety_hub/android/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -2194,6 +2194,12 @@ Your Google account may have other forms of browsing history like searches and a +@@ -2373,6 +2373,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 @@ -1684,7 +1685,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro -@@ -4045,7 +4051,10 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4274,7 +4280,10 @@ To change this setting, BEGIN_LINKdelete the Chrome d @@ -1696,7 +1697,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro Newer version is available -@@ -4056,6 +4065,18 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4285,6 +4294,18 @@ To change this setting, BEGIN_LINKdelete the Chrome d Android version is unsupported diff --git a/build/patches/Bromite-subresource-adblocker.patch b/build/patches/Bromite-subresource-adblocker.patch index 1668c529..10dd07cb 100644 --- a/build/patches/Bromite-subresource-adblocker.patch +++ b/build/patches/Bromite-subresource-adblocker.patch @@ -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 -@@ -338,6 +338,7 @@ if (current_toolchain == default_toolchain) { +@@ -353,6 +353,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 -@@ -426,6 +426,7 @@ chrome_java_resources = [ +@@ -428,6 +428,7 @@ chrome_java_resources = [ "java/res/layout/account_divider_preference.xml", "java/res/layout/account_management_account_row.xml", "java/res/layout/app_history_filter.xml", @@ -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 -@@ -954,6 +954,8 @@ chrome_java_sources = [ +@@ -950,6 +950,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", @@ -182,7 +182,7 @@ new file mode 100644 diff --git a/chrome/android/java/res/values/styles.xml b/chrome/android/java/res/values/styles.xml --- a/chrome/android/java/res/values/styles.xml +++ b/chrome/android/java/res/values/styles.xml -@@ -253,6 +253,24 @@ found in the LICENSE file. +@@ -256,6 +256,24 @@ found in the LICENSE file. @@ -428,7 +428,7 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java -@@ -865,7 +865,7 @@ public class TabModelImpl extends TabModelJniBridge { +@@ -860,7 +860,7 @@ public class TabModelImpl extends TabModelJniBridge { protected boolean createTabWithWebContents( Tab parent, Profile profile, WebContents webContents) { return getTabCreator(profile.isOffTheRecord()) @@ -440,7 +440,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabMod diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd -@@ -15679,6 +15679,16 @@ Please help our engineers fix this problem. Tell us what happened right before y +@@ -15796,6 +15796,16 @@ Please help our engineers fix this problem. Tell us what happened right before y Never show this again. @@ -489,7 +489,7 @@ diff --git a/chrome/browser/browser_process.h b/chrome/browser/browser_process.h class BackgroundModeManager; class BrowserProcessPlatformPart; -@@ -71,6 +72,10 @@ namespace component_updater { +@@ -72,6 +73,10 @@ namespace component_updater { class ComponentUpdateService; } @@ -500,7 +500,7 @@ diff --git a/chrome/browser/browser_process.h b/chrome/browser/browser_process.h namespace extensions { class EventRouterForwarder; } -@@ -254,6 +259,7 @@ class BrowserProcess { +@@ -255,6 +260,7 @@ class BrowserProcess { #endif virtual component_updater::ComponentUpdateService* component_updater() = 0; @@ -542,7 +542,7 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_process_impl.h --- a/chrome/browser/browser_process_impl.h +++ b/chrome/browser/browser_process_impl.h -@@ -215,6 +215,7 @@ class BrowserProcessImpl : public BrowserProcess, +@@ -214,6 +214,7 @@ class BrowserProcessImpl : public BrowserProcess, #endif component_updater::ComponentUpdateService* component_updater() override; @@ -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 -@@ -470,6 +470,9 @@ StartupProfileInfo CreateInitialProfile( +@@ -474,6 +474,9 @@ StartupProfileInfo CreateInitialProfile( // missing code in the above test. CHECK(profile_info.profile) << "Cannot get default profile."; @@ -672,7 +672,7 @@ new file mode 100755 diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc --- a/chrome/browser/net/system_network_context_manager.cc +++ b/chrome/browser/net/system_network_context_manager.cc -@@ -642,6 +642,10 @@ SystemNetworkContextManager::~SystemNetworkContextManager() { +@@ -630,6 +630,10 @@ SystemNetworkContextManager::~SystemNetworkContextManager() { void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) { StubResolverConfigReader::RegisterPrefs(registry); @@ -726,7 +726,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 -@@ -2754,6 +2754,11 @@ inline constexpr char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled"; +@@ -2779,6 +2779,11 @@ inline constexpr char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled"; inline constexpr char kAudioCaptureAllowedUrls[] = "hardware.audio_capture_allowed_urls"; @@ -741,7 +741,7 @@ diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h diff --git a/components/browser_ui/strings/android/site_settings.grdp b/components/browser_ui/strings/android/site_settings.grdp --- a/components/browser_ui/strings/android/site_settings.grdp +++ b/components/browser_ui/strings/android/site_settings.grdp -@@ -368,6 +368,9 @@ +@@ -371,6 +371,9 @@ This site shows intrusive or misleading ads @@ -1550,7 +1550,7 @@ new file mode 100644 diff --git a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc --- a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc +++ b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc -@@ -17,6 +17,9 @@ +@@ -18,6 +18,9 @@ #include "base/strings/stringprintf.h" #include "base/trace_event/trace_event.h" #include "base/trace_event/traced_value.h" @@ -1560,7 +1560,7 @@ diff --git a/components/subresource_filter/content/browser/content_subresource_f #include "components/subresource_filter/content/browser/ad_tagging_utils.h" #include "components/subresource_filter/content/browser/content_subresource_filter_web_contents_helper.h" #include "components/subresource_filter/content/browser/profile_interaction_manager.h" -@@ -108,6 +111,7 @@ ContentSubresourceFilterThrottleManager:: +@@ -110,6 +113,7 @@ ContentSubresourceFilterThrottleManager:: profile_interaction_manager_( std::make_unique( profile_context)), @@ -1568,7 +1568,7 @@ diff --git a/components/subresource_filter/content/browser/content_subresource_f web_contents_helper_(web_contents_helper) {} ContentSubresourceFilterThrottleManager:: -@@ -641,6 +645,17 @@ ContentSubresourceFilterThrottleManager:: +@@ -668,6 +672,17 @@ ContentSubresourceFilterThrottleManager:: throttle->NotifyPageActivationWithRuleset(EnsureRulesetHandle(), ad_tagging_state); } @@ -1589,7 +1589,7 @@ diff --git a/components/subresource_filter/content/browser/content_subresource_f diff --git a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.h b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.h --- a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.h +++ b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.h -@@ -413,6 +413,8 @@ class ContentSubresourceFilterThrottleManager +@@ -411,6 +411,8 @@ class ContentSubresourceFilterThrottleManager std::unique_ptr profile_interaction_manager_; @@ -1601,7 +1601,7 @@ diff --git a/components/subresource_filter/content/browser/content_subresource_f diff --git a/components/subresource_filter/content/shared/browser/ruleset_service.cc b/components/subresource_filter/content/shared/browser/ruleset_service.cc --- a/components/subresource_filter/content/shared/browser/ruleset_service.cc +++ b/components/subresource_filter/content/shared/browser/ruleset_service.cc -@@ -52,9 +52,7 @@ namespace { +@@ -51,9 +51,7 @@ namespace { void RecordIndexAndWriteRulesetResult( std::string_view uma_tag, RulesetService::IndexAndWriteRulesetResult result) { @@ -1612,7 +1612,7 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic } // Implements operations on a `sentinel file`, which is used as a safeguard to -@@ -235,10 +233,13 @@ RulesetService::RulesetService( +@@ -234,10 +232,13 @@ RulesetService::RulesetService( RulesetService::~RulesetService() {} void RulesetService::IndexAndStoreAndPublishRulesetIfNeeded( @@ -1628,7 +1628,7 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic // Trying to store a ruleset with the same version for a second time would // not only be futile, but would fail on Windows due to "File System // Tunneling" as long as the previously stored copy of the rules is still -@@ -248,13 +249,16 @@ void RulesetService::IndexAndStoreAndPublishRulesetIfNeeded( +@@ -247,13 +248,16 @@ void RulesetService::IndexAndStoreAndPublishRulesetIfNeeded( if (most_recently_indexed_version.IsCurrentFormatVersion() && most_recently_indexed_version.content_version == unindexed_ruleset_info.content_version) { @@ -1645,7 +1645,7 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic return; } -@@ -274,6 +278,23 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( +@@ -273,6 +277,23 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( const RulesetConfig& config, const base::FilePath& indexed_ruleset_base_dir, const UnindexedRulesetInfo& unindexed_ruleset_info) { @@ -1669,7 +1669,7 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic base::ScopedBlockingCall scoped_blocking_call(FROM_HERE, base::BlockingType::MAY_BLOCK); -@@ -281,6 +302,7 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( +@@ -280,6 +301,7 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( unindexed_ruleset_info); if (!unindexed_ruleset_stream_generator.ruleset_stream()) { @@ -1677,7 +1677,7 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic RecordIndexAndWriteRulesetResult( config.uma_tag, IndexAndWriteRulesetResult::FAILED_OPENING_UNINDEXED_RULESET); -@@ -295,6 +317,7 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( +@@ -294,6 +316,7 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( indexed_ruleset_base_dir, indexed_version); if (!base::CreateDirectory(indexed_ruleset_version_dir)) { @@ -1685,7 +1685,7 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic RecordIndexAndWriteRulesetResult( config.uma_tag, IndexAndWriteRulesetResult::FAILED_CREATING_VERSION_DIR); -@@ -303,13 +326,11 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( +@@ -302,13 +325,11 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( SentinelFile sentinel_file(indexed_ruleset_version_dir); if (sentinel_file.IsPresent()) { @@ -1701,7 +1701,7 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic RecordIndexAndWriteRulesetResult( config.uma_tag, IndexAndWriteRulesetResult::FAILED_CREATING_SENTINEL_FILE); -@@ -324,6 +345,7 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( +@@ -323,6 +344,7 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( RulesetIndexer indexer; if (!(*g_index_ruleset_func)(config, &unindexed_ruleset_stream_generator, &indexer)) { @@ -1709,7 +1709,7 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic RecordIndexAndWriteRulesetResult( config.uma_tag, IndexAndWriteRulesetResult::FAILED_PARSING_UNINDEXED_RULESET); -@@ -343,8 +365,12 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( +@@ -342,8 +364,12 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( WriteRuleset(indexed_ruleset_version_dir, unindexed_ruleset_info.license_path, indexer.data()); RecordIndexAndWriteRulesetResult(config.uma_tag, result); @@ -1723,7 +1723,7 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic CHECK(indexed_version.IsValid(), base::NotFatalUntil::M129); return indexed_version; -@@ -472,6 +498,7 @@ void RulesetService::IndexAndStoreRuleset( +@@ -467,6 +493,7 @@ void RulesetService::IndexAndStoreRuleset( void RulesetService::OnWrittenRuleset(WriteRulesetCallback result_callback, const IndexedRulesetVersion& version) { CHECK(!result_callback.is_null(), base::NotFatalUntil::M129); @@ -1952,7 +1952,7 @@ diff --git a/components/subresource_filter/core/browser/verified_ruleset_dealer. #include "base/not_fatal_until.h" #include "base/notreached.h" #include "base/task/sequenced_task_runner.h" -@@ -39,6 +40,9 @@ RulesetFilePtr VerifiedRulesetDealer::OpenAndSetRulesetFile( +@@ -40,6 +41,9 @@ RulesetFilePtr VerifiedRulesetDealer::OpenAndSetRulesetFile( TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("loading"), "VerifiedRulesetDealer::OpenAndSetRulesetFile", "file_valid", file->IsValid()); @@ -1970,10 +1970,10 @@ diff --git a/components/subresource_filter/core/common/indexed_ruleset.cc b/comp #include "base/check.h" #include "base/hash/hash.h" +#include "base/logging.h" - #include "base/metrics/histogram_macros.h" + #include "base/metrics/histogram_functions.h" #include "base/not_fatal_until.h" - #include "base/trace_event/trace_event.h" -@@ -37,7 +38,9 @@ VerifyStatus GetVerifyStatus(base::span buffer, + #include "base/strings/strcat.h" +@@ -38,7 +39,9 @@ VerifyStatus GetVerifyStatus(base::span buffer, // least once. The verifier detects a subset of the errors detected by the // checksum, and is unneeded once expected_checksum is consistently nonzero. flatbuffers::Verifier verifier(buffer.data(), buffer.size()); diff --git a/build/patches/Bubble-Locking-on-UI-DevTools.patch b/build/patches/Bubble-Locking-on-UI-DevTools.patch index 6273880f..c8d5a202 100644 --- a/build/patches/Bubble-Locking-on-UI-DevTools.patch +++ b/build/patches/Bubble-Locking-on-UI-DevTools.patch @@ -33,7 +33,7 @@ diff --git a/chrome/browser/ui/views/toolbar/reload_button.cc b/chrome/browser/u diff --git a/ui/views/widget/widget.h b/ui/views/widget/widget.h --- a/ui/views/widget/widget.h +++ b/ui/views/widget/widget.h -@@ -1230,6 +1230,19 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, +@@ -1239,6 +1239,19 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, void SetAllowScreenshots(bool allow); bool AreScreenshotsAllowed(); @@ -53,7 +53,7 @@ diff --git a/ui/views/widget/widget.h b/ui/views/widget/widget.h protected: // Creates the RootView to be used within this Widget. Subclasses may override // to create custom RootViews that do specialized event processing. -@@ -1269,13 +1282,6 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, +@@ -1278,13 +1291,6 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, ui::ColorProviderKey GetColorProviderKey() const override; private: @@ -67,7 +67,7 @@ diff --git a/ui/views/widget/widget.h b/ui/views/widget/widget.h class PaintAsActiveLockImpl; friend class ButtonTest; -@@ -1286,11 +1292,6 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, +@@ -1295,11 +1301,6 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, friend class ui_devtools::PageAgentViews; friend void DisableActivationChangeHandlingForTests(); diff --git a/build/patches/Chrome-web-store-protection.patch b/build/patches/Chrome-web-store-protection.patch index b94a44dd..da1d3ddc 100644 --- a/build/patches/Chrome-web-store-protection.patch +++ b/build/patches/Chrome-web-store-protection.patch @@ -13,37 +13,37 @@ Auto-update is disabled by default: it is possible to activate it with chrome:// License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- - chrome/app/extensions_strings.grdp | 6 +++ - .../developer_private_api.cc | 37 ++++++++++++- - .../developer_private/developer_private_api.h | 3 ++ - .../webstore_private/webstore_private_api.cc | 15 +++++- + chrome/app/extensions_strings.grdp | 6 ++ + .../developer_private_api.cc | 38 +++++++++++- + .../developer_private/developer_private_api.h | 3 + + .../webstore_private/webstore_private_api.cc | 15 ++++- chrome/browser/extensions/cws_info_service.cc | 1 + .../extensions/extension_system_impl.cc | 2 + .../chrome_extension_downloader_factory.cc | 1 - - .../extensions/updater/extension_updater.cc | 40 ++++++++------ + .../extensions/updater/extension_updater.cc | 40 ++++++++----- .../extensions/updater/extension_updater.h | 4 ++ .../extensions/webstore_install_helper.cc | 2 +- .../browser/extensions/webstore_installer.cc | 2 +- .../browser/resources/extensions/manager.html | 1 + .../browser/resources/extensions/manager.ts | 7 +++ .../browser/resources/extensions/service.ts | 5 ++ - .../browser/resources/extensions/toolbar.html | 12 +++++ + .../browser/resources/extensions/toolbar.html | 12 ++++ .../browser/resources/extensions/toolbar.ts | 20 +++++++ .../resources/webstore_app/manifest.json | 7 +-- .../ui/webui/extensions/extensions_ui.cc | 8 +++ - .../chrome_update_query_params_delegate.cc | 13 ++--- + .../chrome_update_query_params_delegate.cc | 13 ++-- .../extensions/api/developer_private.idl | 2 + - .../update_client/update_query_params.cc | 7 ++- - .../about_flags_cc/Webstore-protection.inc | 19 +++++++ - .../browser/api/management/management_api.cc | 50 +++++++++++------ - .../browser/updater/extension_downloader.cc | 53 +++++++------------ + .../update_client/update_query_params.cc | 7 +-- + .../about_flags_cc/Webstore-protection.inc | 19 ++++++ + .../browser/api/management/management_api.cc | 60 ++++++++++++------- + .../browser/updater/extension_downloader.cc | 53 +++++++--------- .../browser/updater/extension_downloader.h | 1 - .../browser/updater/manifest_fetch_data.cc | 8 +-- .../browser/updater/safe_manifest_parser.cc | 1 + - extensions/common/extension_features.cc | 15 ++++++ + extensions/common/extension_features.cc | 15 +++++ extensions/common/extension_features.h | 4 ++ .../definitions/developer_private.d.ts | 2 + - 30 files changed, 251 insertions(+), 97 deletions(-) + 30 files changed, 256 insertions(+), 103 deletions(-) create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Webstore-protection.inc diff --git a/chrome/app/extensions_strings.grdp b/chrome/app/extensions_strings.grdp @@ -65,7 +65,7 @@ diff --git a/chrome/app/extensions_strings.grdp b/chrome/app/extensions_strings. diff --git a/chrome/browser/extensions/api/developer_private/developer_private_api.cc b/chrome/browser/extensions/api/developer_private/developer_private_api.cc --- a/chrome/browser/extensions/api/developer_private/developer_private_api.cc +++ b/chrome/browser/extensions/api/developer_private/developer_private_api.cc -@@ -129,6 +129,12 @@ +@@ -130,6 +130,12 @@ #include "url/gurl.h" #include "url/origin.h" @@ -78,10 +78,11 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_a namespace extensions { namespace developer = api::developer_private; -@@ -471,9 +477,32 @@ std::unique_ptr DeveloperPrivateAPI::CreateProfileInfo( - info->is_mv2_deprecation_warning_dismissed = +@@ -475,10 +481,32 @@ std::unique_ptr DeveloperPrivateAPI::CreateProfileInfo( + info->is_mv2_deprecation_notice_dismissed = ManifestV2ExperimentManager::Get(profile) - ->DidUserAcknowledgeWarningGlobally(); + ->DidUserAcknowledgeNoticeGlobally(); +- + info->is_extension_autoupdate_enabled = DeveloperPrivateAPI::IsExtensionAutoupdateEnabled(); return info; } @@ -111,7 +112,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_a template <> void BrowserContextKeyedAPIFactory< DeveloperPrivateAPI>::DeclareFactoryDependencies() { -@@ -907,6 +936,7 @@ ExtensionFunction::ResponseAction DeveloperPrivateAutoUpdateFunction::Run() { +@@ -916,6 +944,7 @@ ExtensionFunction::ResponseAction DeveloperPrivateAutoUpdateFunction::Run() { ExtensionUpdater::CheckParams params; params.fetch_priority = DownloadFetchPriority::kForeground; params.install_immediately = true; @@ -119,7 +120,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_a params.callback = base::BindOnce(&DeveloperPrivateAutoUpdateFunction::OnComplete, this); updater->CheckNow(std::move(params)); -@@ -1047,7 +1077,7 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() { +@@ -1056,7 +1085,7 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() { const developer::ProfileConfigurationUpdate& update = params->update; @@ -128,8 +129,8 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_a Profile* profile = Profile::FromBrowserContext(browser_context()); CHECK(profile); if (supervised_user::AreExtensionsPermissionsEnabled( -@@ -1062,6 +1092,11 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() { - ->MarkWarningAsAcknowledgedGlobally(); +@@ -1071,6 +1100,11 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() { + ->MarkNoticeAsAcknowledgedGlobally(); } + if (update.is_extension_autoupdate_enabled.has_value()) { @@ -143,7 +144,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_a diff --git a/chrome/browser/extensions/api/developer_private/developer_private_api.h b/chrome/browser/extensions/api/developer_private/developer_private_api.h --- a/chrome/browser/extensions/api/developer_private/developer_private_api.h +++ b/chrome/browser/extensions/api/developer_private/developer_private_api.h -@@ -236,6 +236,9 @@ class DeveloperPrivateAPI : public BrowserContextKeyedAPI, +@@ -234,6 +234,9 @@ class DeveloperPrivateAPI : public BrowserContextKeyedAPI, static std::unique_ptr CreateProfileInfo( Profile* profile); @@ -190,7 +191,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api switch (status) { case kCanRequest: return api::webstore_private::ExtensionInstallStatus::kCanRequest; -@@ -1165,7 +1172,8 @@ ExtensionFunction::ResponseAction +@@ -1168,7 +1175,8 @@ ExtensionFunction::ResponseAction WebstorePrivateIsInIncognitoModeFunction::Run() { Profile* profile = Profile::FromBrowserContext(browser_context()); return RespondNow(ArgumentList(IsInIncognitoMode::Results::Create( @@ -200,7 +201,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api } WebstorePrivateIsPendingCustodianApprovalFunction:: -@@ -1260,11 +1268,14 @@ WebstorePrivateGetReferrerChainFunction::Run() { +@@ -1263,11 +1271,14 @@ WebstorePrivateGetReferrerChainFunction::Run() { request.mutable_referrer_chain_options()->set_recent_navigations_to_collect( recent_navigations_to_collect); @@ -260,7 +261,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 -@@ -44,6 +44,7 @@ +@@ -47,6 +47,7 @@ #include "extensions/browser/updater/extension_update_data.h" #include "extensions/common/constants.h" #include "extensions/common/extension.h" @@ -268,7 +269,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" -@@ -198,6 +199,10 @@ void ExtensionUpdater::Start() { +@@ -201,6 +202,10 @@ void ExtensionUpdater::Start() { DCHECK(!weak_ptr_factory_.HasWeakPtrs()); DCHECK(registry_); alive_ = true; @@ -279,7 +280,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) -@@ -330,7 +335,8 @@ void ExtensionUpdater::AddToDownloader( +@@ -333,7 +338,8 @@ void ExtensionUpdater::AddToDownloader( const Extension& extension = **extension_iter; const ExtensionId& extension_id = extension.id(); if (!Manifest::IsAutoUpdateableLocation(extension.location())) { @@ -289,16 +290,16 @@ 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 -@@ -344,7 +350,7 @@ void ExtensionUpdater::AddToDownloader( +@@ -347,7 +353,7 @@ void ExtensionUpdater::AddToDownloader( continue; } - if (CanUseUpdateService(extension_id)) { + if ((false) && CanUseUpdateService(extension_id)) { - update_check_params->update_info[extension_id] = ExtensionUpdateData(); + update_check_params->update_info[extension_id] = + GetExtensionUpdateData(extension_id); } else if (AddExtensionToDownloader(extension, request_id, - fetch_priority)) { -@@ -382,6 +388,12 @@ bool ExtensionUpdater::AddExtensionToDownloader( +@@ -386,6 +392,12 @@ bool ExtensionUpdater::AddExtensionToDownloader( } void ExtensionUpdater::CheckNow(CheckParams params) { @@ -311,7 +312,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. -@@ -390,7 +402,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -394,7 +406,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { int request_id = next_request_id_++; @@ -320,25 +321,25 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro if (params.ids.empty()) NotifyStarted(); -@@ -462,7 +474,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { - << " is not a corrupt reinstall"; - update_check_params.update_info[pending_id] = ExtensionUpdateData(); +@@ -467,7 +479,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { + update_check_params.update_info[pending_id] = + GetExtensionUpdateData(pending_id); } else if (!Manifest::IsAutoUpdateableLocation(info->install_source())) { - VLOG(2) << "Extension " << pending_id << " is not auto updateable"; + LOG(INFO) << "Extension " << pending_id << " is not auto updateable"; continue; } // We have to mark high-priority extensions (such as policy-forced -@@ -472,7 +484,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -477,7 +489,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(); - if (CanUseUpdateService(pending_id)) { + if ((false) && CanUseUpdateService(pending_id)) { + update_check_params.update_info[pending_id] = + GetExtensionUpdateData(pending_id); update_check_params.update_info[pending_id].is_corrupt_reinstall = - is_corrupt_reinstall; - if (is_corrupt_reinstall) { -@@ -493,6 +505,8 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -500,6 +512,8 @@ void ExtensionUpdater::CheckNow(CheckParams params) { LOG(WARNING) << "Corrupt extension with id " << pending_id << " will be reinstalled with ExtensionDownloader."; } @@ -347,7 +348,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro } else { InstallStageTracker::Get(profile_)->ReportFailure( pending_id, -@@ -505,13 +519,6 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -512,13 +526,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,16 +362,16 @@ 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 { -@@ -519,7 +526,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -526,7 +533,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { const Extension* extension = registry_->GetExtensionById(id, ExtensionRegistry::EVERYTHING); if (extension) { - if (CanUseUpdateService(id)) { + if ((false) && CanUseUpdateService(id)) { - update_check_params.update_info[id] = ExtensionUpdateData(); + update_check_params.update_info[id] = GetExtensionUpdateData(id); } else if (AddExtensionToDownloader(*extension, request_id, params.fetch_priority)) { -@@ -660,7 +667,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished( +@@ -667,7 +674,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished( file.extension_id, InstallStageTracker::Stage::INSTALLING); UpdatePingData(file.extension_id, ping); @@ -379,7 +380,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)); -@@ -671,6 +678,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished( +@@ -678,6 +685,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished( bool ExtensionUpdater::GetPingDataForExtension(const ExtensionId& id, DownloadPingData* ping_data) { @@ -387,7 +388,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)); -@@ -769,7 +777,7 @@ bool ExtensionUpdater::CanUseUpdateService( +@@ -790,7 +798,7 @@ bool ExtensionUpdater::CanUseUpdateService( void ExtensionUpdater::InstallCRXFile(FetchedCRXFile crx_file) { std::set request_ids; @@ -396,7 +397,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 -@@ -878,7 +886,7 @@ void ExtensionUpdater::NotifyIfFinished(int request_id) { +@@ -899,7 +907,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 +409,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 -@@ -81,6 +81,8 @@ class ExtensionUpdater : public ExtensionDownloaderDelegate { +@@ -82,6 +82,8 @@ class ExtensionUpdater : public ExtensionDownloaderDelegate { // right away. bool install_immediately = false; @@ -417,7 +418,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. -@@ -328,6 +330,8 @@ class ExtensionUpdater : public ExtensionDownloaderDelegate { +@@ -333,6 +335,8 @@ class ExtensionUpdater : public ExtensionDownloaderDelegate { base::TimeDelta frequency_; bool will_check_soon_ = false; @@ -465,7 +466,7 @@ diff --git a/chrome/browser/resources/extensions/manager.ts b/chrome/browser/res --- a/chrome/browser/resources/extensions/manager.ts +++ b/chrome/browser/resources/extensions/manager.ts @@ -127,6 +127,11 @@ export class ExtensionsManagerElement extends ExtensionsManagerElementBase { - value: () => loadTimeData.getBoolean('MV2DeprecationPanelDismissed'), + value: () => loadTimeData.getBoolean('MV2DeprecationNoticeDismissed'), }, + isExtUpdateEnabled: { @@ -479,15 +480,15 @@ diff --git a/chrome/browser/resources/extensions/manager.ts b/chrome/browser/res @@ -229,6 +234,7 @@ export class ExtensionsManagerElement extends ExtensionsManagerElementBase { delegate: Service; inDevMode: boolean; - isMv2DeprecationWarningDismissed: boolean; + isMv2DeprecationNoticeDismissed: boolean; + isExtUpdateEnabled: boolean; showActivityLog: boolean; enableEnhancedSiteControls: boolean; devModeControlledByPolicy: boolean; @@ -301,6 +307,7 @@ export class ExtensionsManagerElement extends ExtensionsManagerElementBase { this.canLoadUnpacked = profileInfo.canLoadUnpacked; - this.isMv2DeprecationWarningDismissed = - profileInfo.isMv2DeprecationWarningDismissed; + this.isMv2DeprecationNoticeDismissed = + profileInfo.isMv2DeprecationNoticeDismissed; + this.isExtUpdateEnabled = profileInfo.isExtensionAutoupdateEnabled; }; service.getProfileStateChangedTarget().addListener(onProfileStateChanged); @@ -495,7 +496,7 @@ diff --git a/chrome/browser/resources/extensions/manager.ts b/chrome/browser/res diff --git a/chrome/browser/resources/extensions/service.ts b/chrome/browser/resources/extensions/service.ts --- a/chrome/browser/resources/extensions/service.ts +++ b/chrome/browser/resources/extensions/service.ts -@@ -291,6 +291,11 @@ export class Service implements ServiceInterface { +@@ -290,6 +290,11 @@ export class Service implements ServiceInterface { {inDeveloperMode: inDevMode}); } @@ -622,7 +623,7 @@ diff --git a/chrome/browser/ui/webui/extensions/extensions_ui.cc b/chrome/browse namespace extensions { namespace { -@@ -359,6 +361,8 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile, +@@ -374,6 +376,8 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile, {"itemSuspiciousInstallLearnMore", IDS_EXTENSIONS_ADDED_WITHOUT_KNOWLEDGE_LEARN_MORE}, {"toolbarDevMode", IDS_EXTENSIONS_DEVELOPER_MODE}, @@ -631,7 +632,7 @@ diff --git a/chrome/browser/ui/webui/extensions/extensions_ui.cc b/chrome/browse {"toolbarLoadUnpacked", IDS_EXTENSIONS_TOOLBAR_LOAD_UNPACKED}, {"toolbarLoadUnpackedDone", IDS_EXTENSIONS_TOOLBAR_LOAD_UNPACKED_DONE}, {"toolbarPack", IDS_EXTENSIONS_TOOLBAR_PACK}, -@@ -431,6 +435,10 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile, +@@ -446,6 +450,10 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile, source->AddString("hostPermissionsLearnMoreLink", chrome_extension_constants::kRuntimeHostPermissionsHelpURL); source->AddBoolean(kInDevModeKey, in_dev_mode); @@ -671,15 +672,15 @@ diff --git a/chrome/common/extensions/api/developer_private.idl b/chrome/common/ @@ -292,6 +292,7 @@ namespace developerPrivate { boolean isIncognitoAvailable; boolean isChildAccount; - boolean isMv2DeprecationWarningDismissed; + boolean isMv2DeprecationNoticeDismissed; + boolean isExtensionAutoupdateEnabled; }; // DEPRECATED: Prefer ExtensionInfo. -@@ -352,6 +353,7 @@ namespace developerPrivate { +@@ -351,6 +352,7 @@ namespace developerPrivate { dictionary ProfileConfigurationUpdate { boolean? inDeveloperMode; - boolean? isMv2DeprecationWarningDismissed; + boolean? isMv2DeprecationNoticeDismissed; + boolean? isExtensionAutoupdateEnabled; }; @@ -745,7 +746,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br #include "extensions/browser/api/extensions_api_client.h" #include "extensions/browser/api/management/management_api_constants.h" #include "extensions/browser/disable_reason.h" -@@ -39,6 +42,7 @@ +@@ -40,6 +43,7 @@ #include "extensions/common/api/management.h" #include "extensions/common/error_utils.h" #include "extensions/common/extension.h" @@ -753,7 +754,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br #include "extensions/common/extension_id.h" #include "extensions/common/extension_urls.h" #include "extensions/common/icons/extension_icon_set.h" -@@ -90,6 +94,27 @@ std::vector CreateWarningsList(const Extension* extension) { +@@ -91,6 +95,27 @@ std::vector CreateWarningsList(const Extension* extension) { return warnings_list; } @@ -781,7 +782,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br std::vector GetAvailableLaunchTypes( const Extension& extension, const ManagementAPIDelegate* delegate) { -@@ -263,6 +288,8 @@ void AddExtensionInfo(const Extension* source_extension, +@@ -268,6 +293,8 @@ void AddExtensionInfo(const Extension* source_extension, const ExtensionSet& extensions, ExtensionInfoList* extension_list, content::BrowserContext* context) { @@ -790,7 +791,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br for (ExtensionSet::const_iterator iter = extensions.begin(); iter != extensions.end(); ++iter) { const Extension& extension = **iter; -@@ -308,10 +335,9 @@ ExtensionFunction::ResponseAction ManagementGetFunction::Run() { +@@ -313,10 +340,9 @@ ExtensionFunction::ResponseAction ManagementGetFunction::Run() { std::optional params = management::Get::Params::Create(args()); EXTENSION_FUNCTION_VALIDATE(params); @@ -799,39 +800,63 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br const Extension* target_extension = - registry->GetExtensionById(params->id, ExtensionRegistry::EVERYTHING); + GetExtensionById(GetSenderWebContents(), browser_context(), params->id, ExtensionRegistry::EVERYTHING); - if (!target_extension) + if (!target_extension) { return RespondNow(Error(keys::kNoExtensionError, params->id)); - -@@ -331,8 +357,7 @@ ManagementGetPermissionWarningsByIdFunction::Run() { + } +@@ -337,8 +363,7 @@ ManagementGetPermissionWarningsByIdFunction::Run() { EXTENSION_FUNCTION_VALIDATE(params); const Extension* extension = - ExtensionRegistry::Get(browser_context()) - ->GetExtensionById(params->id, ExtensionRegistry::EVERYTHING); + GetExtensionById(GetSenderWebContents(), browser_context(), params->id, ExtensionRegistry::EVERYTHING); - if (!extension) + if (!extension) { return RespondNow(Error(keys::kNoExtensionError, params->id)); - -@@ -398,8 +423,7 @@ ExtensionFunction::ResponseAction ManagementLaunchAppFunction::Run() { - return RespondNow(Error(keys::kNotAllowedInKioskError)); + } +@@ -406,8 +431,7 @@ ExtensionFunction::ResponseAction ManagementLaunchAppFunction::Run() { + } const Extension* extension = - ExtensionRegistry::Get(browser_context()) - ->GetExtensionById(params->id, ExtensionRegistry::EVERYTHING); + GetExtensionById(GetSenderWebContents(), browser_context(), params->id, ExtensionRegistry::EVERYTHING); - if (!extension) + if (!extension) { return RespondNow(Error(keys::kNoExtensionError, params->id)); - if (!extension->is_app()) -@@ -434,7 +458,7 @@ ExtensionFunction::ResponseAction ManagementSetEnabledFunction::Run() { - ->GetDelegate(); - - const Extension* target_extension = -- registry->GetExtensionById(extension_id_, ExtensionRegistry::EVERYTHING); -+ GetExtensionById(GetSenderWebContents(), browser_context(), extension_id_, ExtensionRegistry::EVERYTHING); - if (!target_extension || !ShouldExposeViaManagementAPI(*target_extension)) { - return RespondNow(Error(keys::kNoExtensionError, extension_id_)); } -@@ -644,8 +668,7 @@ ExtensionFunction::ResponseAction ManagementUninstallFunctionBase::Uninstall( +@@ -548,8 +572,8 @@ void ManagementSetEnabledFunction::CheckPermissionsIncrease() { + // Extension could have been uninstalled externally while previous check was + // happening. + const Extension* extension = +- ExtensionRegistry::Get(browser_context()) +- ->GetExtensionById(extension_id_, ExtensionRegistry::EVERYTHING); ++ GetExtensionById(GetSenderWebContents(), browser_context(), extension_id_, ++ ExtensionRegistry::EVERYTHING); + if (!extension) { + FinishEnable(Error(keys::kNoExtensionError)); + return; +@@ -592,8 +616,8 @@ void ManagementSetEnabledFunction::CheckManifestV2Deprecation() { + // Extension can be uninstalled externally while the previous check was + // happening async. + const Extension* extension = +- ExtensionRegistry::Get(browser_context()) +- ->GetExtensionById(extension_id_, ExtensionRegistry::EVERYTHING); ++ GetExtensionById(GetSenderWebContents(), browser_context(), extension_id_, ++ ExtensionRegistry::EVERYTHING); + if (!extension) { + FinishEnable(Error(keys::kNoExtensionError)); + return; +@@ -737,8 +761,8 @@ void ManagementSetEnabledFunction::OnSupervisedExtensionApprovalDone( + } + + const Extension* ManagementSetEnabledFunction::GetExtension() { +- return ExtensionRegistry::Get(browser_context()) +- ->GetExtensionById(extension_id_, ExtensionRegistry::EVERYTHING); ++ return GetExtensionById(GetSenderWebContents(), browser_context(), extension_id_, ++ ExtensionRegistry::EVERYTHING); + } + + ManagementUninstallFunctionBase::ManagementUninstallFunctionBase() = default; +@@ -763,8 +787,7 @@ ExtensionFunction::ResponseAction ManagementUninstallFunctionBase::Uninstall( ->GetDelegate(); target_extension_id_ = target_extension_id; const Extension* target_extension = @@ -841,7 +866,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br ExtensionRegistry::EVERYTHING); if (!target_extension || !ShouldExposeViaManagementAPI(*target_extension)) { return RespondNow(Error(keys::kNoExtensionError, target_extension_id_)); -@@ -709,8 +732,7 @@ void ManagementUninstallFunctionBase::UninstallExtension() { +@@ -829,8 +852,7 @@ void ManagementUninstallFunctionBase::UninstallExtension() { // The extension can be uninstalled in another window while the UI was // showing. Do nothing in that case. const Extension* target_extension = @@ -851,7 +876,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br ExtensionRegistry::EVERYTHING); std::string error; bool success = false; -@@ -791,8 +813,7 @@ ExtensionFunction::ResponseAction ManagementCreateAppShortcutFunction::Run() { +@@ -907,8 +929,7 @@ ExtensionFunction::ResponseAction ManagementCreateAppShortcutFunction::Run() { management::CreateAppShortcut::Params::Create(args()); EXTENSION_FUNCTION_VALIDATE(params); const Extension* extension = @@ -861,7 +886,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br if (!extension) { return RespondNow(Error( ErrorUtils::FormatErrorMessage(keys::kNoExtensionError, params->id))); -@@ -842,8 +863,7 @@ ExtensionFunction::ResponseAction ManagementSetLaunchTypeFunction::Run() { +@@ -961,8 +982,7 @@ ExtensionFunction::ResponseAction ManagementSetLaunchTypeFunction::Run() { management::SetLaunchType::Params::Create(args()); EXTENSION_FUNCTION_VALIDATE(params); const Extension* extension = @@ -1110,7 +1135,7 @@ diff --git a/extensions/browser/updater/safe_manifest_parser.cc b/extensions/bro diff --git a/extensions/common/extension_features.cc b/extensions/common/extension_features.cc --- a/extensions/common/extension_features.cc +++ b/extensions/common/extension_features.cc -@@ -179,4 +179,19 @@ BASE_FEATURE(kUseNewServiceWorkerTaskQueue, +@@ -183,4 +183,19 @@ BASE_FEATURE(kUseNewServiceWorkerTaskQueue, "UseNewServiceWorkerTaskQueue", base::FEATURE_DISABLED_BY_DEFAULT); @@ -1133,7 +1158,7 @@ diff --git a/extensions/common/extension_features.cc b/extensions/common/extensi diff --git a/extensions/common/extension_features.h b/extensions/common/extension_features.h --- a/extensions/common/extension_features.h +++ b/extensions/common/extension_features.h -@@ -211,6 +211,10 @@ BASE_DECLARE_FEATURE(kUseItemSnippetsAPI); +@@ -217,6 +217,10 @@ BASE_DECLARE_FEATURE(kUseItemSnippetsAPI); // If enabled, use the new simpler, more efficient service worker task queue. BASE_DECLARE_FEATURE(kUseNewServiceWorkerTaskQueue); @@ -1150,15 +1175,15 @@ diff --git a/tools/typescript/definitions/developer_private.d.ts b/tools/typescr @@ -277,6 +277,7 @@ declare global { isIncognitoAvailable: boolean; isChildAccount: boolean; - isMv2DeprecationWarningDismissed: boolean; + isMv2DeprecationNoticeDismissed: boolean; + isExtensionAutoupdateEnabled: boolean; } export interface ExtensionConfigurationUpdate { -@@ -295,6 +296,7 @@ declare global { +@@ -293,6 +294,7 @@ declare global { export interface ProfileConfigurationUpdate { inDeveloperMode?: boolean; - isMv2DeprecationWarningDismissed?: boolean; + isMv2DeprecationNoticeDismissed?: boolean; + isExtensionAutoupdateEnabled?: boolean; } diff --git a/build/patches/Clear-CORS-Preflight-Cache-on-clearing-data.patch b/build/patches/Clear-CORS-Preflight-Cache-on-clearing-data.patch index ec7b5ecf..c728f2fa 100644 --- a/build/patches/Clear-CORS-Preflight-Cache-on-clearing-data.patch +++ b/build/patches/Clear-CORS-Preflight-Cache-on-clearing-data.patch @@ -9,8 +9,8 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html services/network/cors/preflight_controller.cc | 4 ++++ services/network/cors/preflight_controller.h | 2 ++ services/network/cors/preflight_result.cc | 2 +- - services/network/network_context.cc | 2 ++ - 6 files changed, 15 insertions(+), 1 deletion(-) + services/network/network_context.cc | 1 + + 6 files changed, 14 insertions(+), 1 deletion(-) diff --git a/services/network/cors/preflight_cache.cc b/services/network/cors/preflight_cache.cc --- a/services/network/cors/preflight_cache.cc @@ -41,7 +41,7 @@ diff --git a/services/network/cors/preflight_cache.h b/services/network/cors/pre diff --git a/services/network/cors/preflight_controller.cc b/services/network/cors/preflight_controller.cc --- a/services/network/cors/preflight_controller.cc +++ b/services/network/cors/preflight_controller.cc -@@ -811,6 +811,10 @@ void PreflightController::ClearCorsPreflightCache( +@@ -835,6 +835,10 @@ void PreflightController::ClearCorsPreflightCache( cache_.ClearCache(std::move(url_filter)); } @@ -51,7 +51,7 @@ diff --git a/services/network/cors/preflight_controller.cc b/services/network/co + void PreflightController::RemoveLoader(PreflightLoader* loader) { auto it = loaders_.find(loader); - DCHECK(it != loaders_.end()); + CHECK(it != loaders_.end(), base::NotFatalUntil::M130); diff --git a/services/network/cors/preflight_controller.h b/services/network/cors/preflight_controller.h --- a/services/network/cors/preflight_controller.h +++ b/services/network/cors/preflight_controller.h @@ -79,13 +79,12 @@ diff --git a/services/network/cors/preflight_result.cc b/services/network/cors/p diff --git a/services/network/network_context.cc b/services/network/network_context.cc --- a/services/network/network_context.cc +++ b/services/network/network_context.cc -@@ -1247,6 +1247,8 @@ void NetworkContext::ClearHttpCache(base::Time start_time, - base::BindOnce(&NetworkContext::OnHttpCacheCleared, - base::Unretained(this), std::move(callback)))); - +@@ -1255,6 +1255,7 @@ void NetworkContext::ClearHttpCache(base::Time start_time, + base::Time end_time, + mojom::ClearDataFilterPtr filter, + ClearHttpCacheCallback callback) { + cors_preflight_controller_.ClearCache(); -+ - NetworkServiceMemoryCache* memory_cache = GetMemoryCache(); - if (memory_cache) - memory_cache->Clear(); + // It's safe to use Unretained below as the HttpCacheDataRemover is owned by + // |this| and guarantees it won't call its callback if deleted. + http_cache_data_removers_.push_back(HttpCacheDataRemover::CreateAndStart( -- diff --git a/build/patches/Client-hints-overrides.patch b/build/patches/Client-hints-overrides.patch index 9583bb15..8be078fb 100644 --- a/build/patches/Client-hints-overrides.patch +++ b/build/patches/Client-hints-overrides.patch @@ -62,7 +62,7 @@ diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/clie return network::IsOriginPotentiallyTrustworthy(origin); } -@@ -723,7 +725,8 @@ void UpdateNavigationRequestClientUaHeadersImpl( +@@ -722,7 +724,8 @@ void UpdateNavigationRequestClientUaHeadersImpl( // value, disable them. This overwrites previous decision from UI. disable_due_to_custom_ua = !ua_metadata.has_value(); } @@ -72,7 +72,7 @@ diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/clie if (!disable_due_to_custom_ua) { if (!ua_metadata.has_value()) ua_metadata = delegate->GetUserAgentMetadata(); -@@ -905,10 +908,12 @@ void AddRequestClientHintsHeaders( +@@ -904,10 +907,12 @@ void AddRequestClientHintsHeaders( AddEctHeader(headers, network_quality_tracker, url); } @@ -92,7 +92,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 -@@ -1202,6 +1202,11 @@ void NavigationURLLoaderImpl::OnAcceptCHFrameReceived( +@@ -1206,6 +1206,11 @@ void NavigationURLLoaderImpl::OnAcceptCHFrameReceived( return; } @@ -266,7 +266,7 @@ diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.cc b/thir if (ShouldSendClientHint(policy, resource_origin, is_1p_origin, WebClientHintsType::kUAArch, hints_preferences)) { SetHttpHeader(WebClientHintsType::kUAArch, -@@ -667,6 +667,8 @@ bool BaseFetchContext::ShouldSendClientHint( +@@ -682,6 +682,8 @@ bool BaseFetchContext::ShouldSendClientHint( bool is_1p_origin, network::mojom::blink::WebClientHintsType type, const ClientHintsPreferences& hints_preferences) const { @@ -278,7 +278,7 @@ 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 -@@ -337,6 +337,11 @@ +@@ -361,6 +361,11 @@ name: "AtomicMoveAPI", status: "test", }, @@ -289,5 +289,5 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 + }, { name: "AttributionReporting", - origin_trial_feature_name: "PrivacySandboxAdsAPIs", + status: "stable", -- diff --git a/build/patches/Close-Sessions-On-Ip-Change.patch b/build/patches/Close-Sessions-On-Ip-Change.patch index 4d4dc023..7db9bfc6 100644 --- a/build/patches/Close-Sessions-On-Ip-Change.patch +++ b/build/patches/Close-Sessions-On-Ip-Change.patch @@ -87,7 +87,7 @@ new file mode 100644 diff --git a/net/base/features.cc b/net/base/features.cc --- a/net/base/features.cc +++ b/net/base/features.cc -@@ -436,7 +436,7 @@ const base::FeatureParam kIpPrivacyDebugExperimentArm{ +@@ -437,7 +437,7 @@ const base::FeatureParam kIpPrivacyDebugExperimentArm{ // NetworkChangeNotifier::AreNetworkHandlesSupported). #if BUILDFLAG(IS_ANDROID) inline constexpr auto kMigrateSessionsOnNetworkChangeV2Default = diff --git a/build/patches/Content-settings-infrastructure.patch b/build/patches/Content-settings-infrastructure.patch index 16f9ffc2..4ecd533b 100644 --- a/build/patches/Content-settings-infrastructure.patch +++ b/build/patches/Content-settings-infrastructure.patch @@ -97,7 +97,7 @@ Require: bromite-build-utils.patch diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java -@@ -59,6 +59,10 @@ import org.chromium.url.GURL; +@@ -58,6 +58,10 @@ import org.chromium.url.GURL; import java.util.Set; @@ -108,7 +108,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 = -@@ -216,7 +220,7 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { +@@ -215,7 +219,7 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { @Override public boolean isHelpAndFeedbackEnabled() { @@ -117,7 +117,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/C } @Override -@@ -337,6 +341,17 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { +@@ -336,6 +340,17 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { return mPrivacySandboxBridge.getFirstPartySetOwner(memberOrigin); } @@ -150,7 +150,7 @@ diff --git a/chrome/browser/content_settings/page_specific_content_settings_dele diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.html b/chrome/browser/resources/settings/privacy_page/privacy_page.html --- a/chrome/browser/resources/settings/privacy_page/privacy_page.html +++ b/chrome/browser/resources/settings/privacy_page/privacy_page.html -@@ -1489,4 +1489,5 @@ +@@ -1474,4 +1474,5 @@ @@ -262,7 +262,7 @@ diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resourc /** * Add all of the child routes that originate from the privacy route, -@@ -156,6 +157,7 @@ function addPrivacyChildRoutes(r: Partial) { +@@ -158,6 +159,7 @@ function addPrivacyChildRoutes(r: Partial) { r.SITE_SETTINGS_AUTOMATIC_FULLSCREEN = r.SITE_SETTINGS.createChild('automaticFullScreen'); } @@ -369,7 +369,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d diff --git a/chrome/browser/resources/settings/site_settings/site_details.html b/chrome/browser/resources/settings/site_settings/site_details.html --- a/chrome/browser/resources/settings/site_settings/site_details.html +++ b/chrome/browser/resources/settings/site_settings/site_details.html -@@ -308,4 +308,5 @@ +@@ -309,4 +309,5 @@ label="$i18n{siteSettingsPointerLock}"> @@ -709,7 +709,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 -@@ -2165,6 +2165,7 @@ static_library("ui") { +@@ -2041,6 +2041,7 @@ static_library("ui") { "//components/commerce/core:shopping_service", "//components/commerce/core/webui", "//components/endpoint_fetcher:endpoint_fetcher", @@ -720,7 +720,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 -@@ -45,6 +45,13 @@ class RichControlsContainerView : public views::FlexLayoutView { +@@ -48,6 +48,13 @@ class RichControlsContainerView : public views::FlexLayoutView { return AddChildView(std::move(control_view)); } @@ -1154,7 +1154,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" -@@ -3717,6 +3721,56 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, +@@ -3739,6 +3743,56 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, policy_indicator::AddLocalizedStrings(html_source); AddSecurityKeysStrings(html_source); @@ -1223,8 +1223,8 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b #include "components/content_settings/core/common/content_settings.h" #include "components/content_settings/core/common/content_settings_pattern.h" #include "components/content_settings/core/common/content_settings_types.h" -@@ -231,13 +233,13 @@ const ContentSettingsTypeNameEntry kContentSettingsTypeGroupNames[] = { - {ContentSettingsType::TOP_LEVEL_TPCD_ORIGIN_TRIAL, nullptr}, +@@ -234,13 +236,13 @@ const ContentSettingsTypeNameEntry kContentSettingsTypeGroupNames[] = { + {ContentSettingsType::STORAGE_ACCESS_HEADER_ORIGIN_TRIAL, nullptr}, }; -static_assert( @@ -1244,7 +1244,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b struct SiteSettingSourceStringMapping { SiteSettingSource source; -@@ -469,6 +471,13 @@ bool HasRegisteredGroupName(ContentSettingsType type) { +@@ -472,6 +474,13 @@ bool HasRegisteredGroupName(ContentSettingsType type) { return true; } } @@ -1258,7 +1258,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b return false; } -@@ -482,11 +491,24 @@ ContentSettingsType ContentSettingsTypeFromGroupName(std::string_view name) { +@@ -485,11 +494,24 @@ ContentSettingsType ContentSettingsTypeFromGroupName(std::string_view name) { return entry.type; } } @@ -1284,7 +1284,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 -@@ -501,7 +523,6 @@ std::string_view ContentSettingsTypeToGroupName(ContentSettingsType type) { +@@ -504,7 +526,6 @@ std::string_view ContentSettingsTypeToGroupName(ContentSettingsType type) { return entry.name ? entry.name : std::string_view(); } } @@ -1292,7 +1292,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b NOTREACHED_IN_MIGRATION() << static_cast(type) << " is not a recognized content settings type."; return std::string_view(); -@@ -599,6 +620,13 @@ std::vector GetVisiblePermissionCategories( +@@ -602,6 +623,13 @@ std::vector GetVisiblePermissionCategories( base_types->push_back(ContentSettingsType::POINTER_LOCK); } @@ -2189,7 +2189,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java -@@ -332,6 +332,10 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -331,6 +331,10 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment website.site() .getContentSetting( browserContextHandle, mCategory.getContentSettingsType()); @@ -2200,7 +2200,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c if (contentSetting != null) { return ContentSettingValues.BLOCK == contentSetting; } -@@ -496,6 +500,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -495,6 +499,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment ? new HashSet<>(getArguments().getStringArrayList(EXTRA_SELECTED_DOMAINS)) : null; @@ -2208,7 +2208,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c configureGlobalToggles(); if (mCategory.getType() == SiteSettingsCategory.Type.REQUEST_DESKTOP_SITE) { RecordUserAction.record("DesktopSiteContentSetting.SettingsPage.Entered"); -@@ -526,7 +531,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -525,7 +530,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment if (queryHasChanged) getInfoForOrigins(); }); @@ -2218,7 +2218,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c MenuItem help = menu.add( Menu.NONE, -@@ -538,12 +544,20 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -537,12 +543,20 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment getResources(), R.drawable.ic_help_and_feedback, getContext().getTheme())); @@ -2239,7 +2239,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c if (mCategory.getType() == SiteSettingsCategory.Type.PROTECTED_MEDIA) { getSiteSettingsDelegate() .launchProtectedContentHelpAndFeedbackActivity(getActivity()); -@@ -615,6 +629,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -614,6 +628,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment BrowserContextHandle browserContextHandle = getSiteSettingsDelegate().getBrowserContextHandle(); PrefService prefService = UserPrefs.get(browserContextHandle); @@ -2251,7 +2251,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c if (BINARY_TOGGLE_KEY.equals(preference.getKey())) { assert !mCategory.isManaged(); boolean toggleValue = (boolean) newValue; -@@ -809,6 +828,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -808,6 +827,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment .website_settings_allowed_group_heading_request_desktop_site; break; } @@ -2260,7 +2260,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c assert resource > 0; return getString(resource); } -@@ -924,6 +945,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -923,6 +944,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment default: break; } @@ -2269,7 +2269,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c if (allowSpecifyingExceptions) { getPreferenceScreen() .addPreference( -@@ -1110,8 +1133,16 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1109,8 +1132,16 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment private boolean isBlocked() { switch (mGlobalToggleLayout) { case GlobalToggleLayout.TRI_STATE_TOGGLE: @@ -2286,7 +2286,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c return (triStateToggle.getCheckedSetting() == ContentSettingValues.BLOCK); case GlobalToggleLayout.TRI_STATE_COOKIE_TOGGLE: TriStateCookieSettingsPreference triStateCookieToggle = -@@ -1178,7 +1209,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1177,7 +1208,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment } else if (mCategory.getType() == SiteSettingsCategory.Type.STORAGE_ACCESS) { infoText.setSummary(getStorageAccessSummary()); } else { @@ -2299,7 +2299,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } // Hide the anti-abuse text preferences, as needed. -@@ -1215,6 +1250,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1214,6 +1249,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment } else { screen.removePreference(mLocationTriStatePref); } @@ -2307,7 +2307,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c if (permissionBlockedByOs) { maybeShowOsWarning(screen); -@@ -1372,7 +1408,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1370,7 +1406,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment getSiteSettingsDelegate().getBrowserContextHandle(), contentType); int[] descriptionIds = ContentSettingsResources.getTriStateSettingDescriptionIDs(contentType); @@ -2316,7 +2316,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } private void configureBinaryToggle(ChromeSwitchPreference binaryToggle, int contentType) { -@@ -1496,6 +1532,14 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1494,6 +1530,14 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment @ContentSettingValues Integer value = site.getContentSetting(browserContextHandle, contentSettingsType); @@ -2440,7 +2440,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/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 -@@ -34,6 +34,7 @@ public class SiteSettings extends BaseSiteSettingsFragment +@@ -46,6 +46,7 @@ public class SiteSettings extends BaseSiteSettingsFragment SettingsUtils.addPreferencesFromResource(this, R.xml.site_settings_preferences); getActivity().setTitle(getContext().getString(R.string.prefs_site_settings)); @@ -2448,7 +2448,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c configurePreferences(); updatePreferenceStates(); } -@@ -55,7 +56,7 @@ public class SiteSettings extends BaseSiteSettingsFragment +@@ -67,7 +68,7 @@ public class SiteSettings extends BaseSiteSettingsFragment // Remove unsupported settings categories. for (@SiteSettingsCategory.Type int type = 0; @@ -2457,7 +2457,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c type++) { if (!getSiteSettingsDelegate().isCategoryVisible(type)) { getPreferenceScreen().removePreference(findPreference(type)); -@@ -71,7 +72,7 @@ public class SiteSettings extends BaseSiteSettingsFragment +@@ -89,7 +90,7 @@ public class SiteSettings extends BaseSiteSettingsFragment @CookieControlsMode int cookieControlsMode = UserPrefs.get(browserContextHandle).getInteger(COOKIE_CONTROLS_MODE); @@ -2466,7 +2466,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c Preference p = findPreference(prefCategory); int contentType = SiteSettingsCategory.contentSettingsType(prefCategory); // p can be null if the Preference was removed in configurePreferences. -@@ -140,19 +141,21 @@ public class SiteSettings extends BaseSiteSettingsFragment +@@ -158,19 +159,21 @@ public class SiteSettings extends BaseSiteSettingsFragment } else if (Type.ZOOM == prefCategory) { // Don't want to set a summary for Zoom because we don't want any message to display // under the Zoom row on site settings. @@ -2647,7 +2647,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 -@@ -106,7 +106,7 @@ public class WebsitePermissionsFetcher { +@@ -107,7 +107,7 @@ public class WebsitePermissionsFetcher { case ContentSettingsType.USB_GUARD: return WebsitePermissionsType.CHOSEN_OBJECT_INFO; default: @@ -2786,10 +2786,10 @@ diff --git a/components/content_settings/core/browser/content_settings_registry. namespace content_settings { -@@ -779,6 +780,7 @@ void ContentSettingsRegistry::Init() { - WebsiteSettingsRegistry::PLATFORM_ANDROID, - ContentSettingsInfo::INHERIT_IN_INCOGNITO, - ContentSettingsInfo::EXCEPTIONS_ON_SECURE_AND_INSECURE_ORIGINS); +@@ -813,6 +814,7 @@ void ContentSettingsRegistry::Init() { + WebsiteSettingsRegistry::DESKTOP, + ContentSettingsInfo::DONT_INHERIT_IN_INCOGNITO, + ContentSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY); +#include "components/content_settings/core/browser/bromite_content_settings.inc" } @@ -2797,7 +2797,7 @@ diff --git a/components/content_settings/core/browser/content_settings_registry. diff --git a/components/content_settings/core/browser/content_settings_uma_util.cc b/components/content_settings/core/browser/content_settings_uma_util.cc --- a/components/content_settings/core/browser/content_settings_uma_util.cc +++ b/components/content_settings/core/browser/content_settings_uma_util.cc -@@ -198,11 +198,7 @@ void RecordContentSettingsHistogram(const std::string& name, +@@ -203,11 +203,7 @@ void RecordContentSettingsHistogram(const std::string& name, } int ContentSettingTypeToHistogramValue(ContentSettingsType content_setting) { @@ -2842,7 +2842,7 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.cc diff --git a/components/content_settings/core/browser/website_settings_info.h b/components/content_settings/core/browser/website_settings_info.h --- a/components/content_settings/core/browser/website_settings_info.h +++ b/components/content_settings/core/browser/website_settings_info.h -@@ -135,6 +135,32 @@ class WebsiteSettingsInfo { +@@ -128,6 +128,32 @@ class WebsiteSettingsInfo { ScopingType scoping_type() const { return scoping_type_; } IncognitoBehavior incognito_behavior() const { return incognito_behavior_; } @@ -2875,7 +2875,7 @@ diff --git a/components/content_settings/core/browser/website_settings_info.h b/ private: const ContentSettingsType type_; const std::string name_; -@@ -147,6 +173,18 @@ class WebsiteSettingsInfo { +@@ -140,6 +166,18 @@ class WebsiteSettingsInfo { const LossyStatus lossy_status_; const ScopingType scoping_type_; const IncognitoBehavior incognito_behavior_; @@ -3121,13 +3121,13 @@ diff --git a/components/content_settings/core/common/content_settings_mojom_trai diff --git a/components/content_settings/core/common/content_settings_types.mojom b/components/content_settings/core/common/content_settings_types.mojom --- a/components/content_settings/core/common/content_settings_types.mojom +++ b/components/content_settings/core/common/content_settings_types.mojom -@@ -429,5 +429,6 @@ enum ContentSettingsType { - // BLOCK: Protections enabled. This is the default state. - // ALLOW: Protections disabled. - TRACKING_PROTECTION, +@@ -452,5 +452,6 @@ enum ContentSettingsType { + // origins to retry a request or load with storage access. + // BLOCK (default): no effect. + STORAGE_ACCESS_HEADER_ORIGIN_TRIAL, +#include "components/content_settings/core/common/bromite_content_settings.inc" }; - // LINT.ThenChange(/tools/metrics/histograms/metadata/settings/enums.xml:SafetyHubPermissionType) + // LINT.ThenChange(//tools/metrics/histograms/metadata/settings/enums.xml:SafetyHubPermissionType) 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 @@ -3299,7 +3299,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" -@@ -1232,6 +1233,14 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, +@@ -1239,6 +1240,14 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, // applies to permissions listed in |kPermissionType|. bool PageInfo::ShouldShowPermission( const PageInfo::PermissionInfo& info) const { @@ -3314,7 +3314,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) { -@@ -1339,7 +1348,19 @@ void PageInfo::PresentSitePermissions() { +@@ -1346,7 +1355,19 @@ void PageInfo::PresentSitePermissions() { HostContentSettingsMap* content_settings = GetContentSettings(); DCHECK(web_contents_); @@ -3346,7 +3346,7 @@ diff --git a/components/page_info/page_info_ui.cc b/components/page_info/page_in #include "components/page_info/core/features.h" #include "components/page_info/page_info.h" #include "components/page_info/page_info_ui_delegate.h" -@@ -610,6 +611,12 @@ PageInfoUI::~PageInfoUI() = default; +@@ -618,6 +619,12 @@ PageInfoUI::~PageInfoUI() = default; // static std::u16string PageInfoUI::PermissionTypeToUIString(ContentSettingsType type) { @@ -3359,7 +3359,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); -@@ -621,6 +628,12 @@ std::u16string PageInfoUI::PermissionTypeToUIString(ContentSettingsType type) { +@@ -629,6 +636,12 @@ std::u16string PageInfoUI::PermissionTypeToUIString(ContentSettingsType type) { // static std::u16string PageInfoUI::PermissionTypeToUIStringMidSentence( ContentSettingsType type) { @@ -3372,7 +3372,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); -@@ -1058,6 +1071,11 @@ bool PageInfoUI::ContentSettingsTypeInPageInfo(ContentSettingsType type) { +@@ -1074,6 +1087,11 @@ bool PageInfoUI::ContentSettingsTypeInPageInfo(ContentSettingsType type) { if (info.type == type) return true; } @@ -3449,7 +3449,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context diff --git a/third_party/blink/renderer/core/execution_context/execution_context.h b/third_party/blink/renderer/core/execution_context/execution_context.h --- a/third_party/blink/renderer/core/execution_context/execution_context.h +++ b/third_party/blink/renderer/core/execution_context/execution_context.h -@@ -43,6 +43,7 @@ +@@ -44,6 +44,7 @@ #include "third_party/blink/public/mojom/permissions_policy/permissions_policy_feature.mojom-blink-forward.h" #include "third_party/blink/public/mojom/permissions_policy/policy_disposition.mojom-blink-forward.h" #include "third_party/blink/public/mojom/v8_cache_options.mojom-blink-forward.h" @@ -3457,7 +3457,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context #include "third_party/blink/renderer/bindings/core/v8/sanitize_script_errors.h" #include "third_party/blink/renderer/core/core_export.h" #include "third_party/blink/renderer/core/execution_context/security_context.h" -@@ -103,6 +104,10 @@ class SecurityOrigin; +@@ -104,6 +105,10 @@ class SecurityOrigin; class ScriptState; class ScriptWrappable; class TrustedTypePolicyFactory; diff --git a/build/patches/Cromite-Branding.patch b/build/patches/Cromite-Branding.patch index b538fc2d..f6940a6f 100644 --- a/build/patches/Cromite-Branding.patch +++ b/build/patches/Cromite-Branding.patch @@ -9169,7 +9169,7 @@ diff --git a/chrome/app/extensions_strings.grdp b/chrome/app/extensions_strings. No description provided -@@ -515,7 +515,7 @@ +@@ -518,7 +518,7 @@ My extensions @@ -9181,7 +9181,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 -@@ -414,7 +414,7 @@ +@@ -415,7 +415,7 @@ Change @@ -13135,7 +13135,7 @@ e)fqMZZ`3a)Ds&5H CreateProfilePrefStoreManager( +@@ -291,10 +292,7 @@ std::unique_ptr CreateProfilePrefStoreManager( #endif std::string seed; CHECK(ui::ResourceBundle::HasSharedInstance()); @@ -13224,7 +13224,7 @@ diff --git a/chrome/browser/resources/settings/settings_menu/settings_menu.html diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -2259,7 +2259,7 @@ Your Google account may have other forms of browsing history like searches and a +@@ -2438,7 +2438,7 @@ Your Google account may have other forms of browsing history like searches and a About Chrome @@ -13236,7 +13236,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/common/url_constants.h b/chrome/common/url_constants.h --- a/chrome/common/url_constants.h +++ b/chrome/common/url_constants.h -@@ -132,7 +132,7 @@ inline constexpr char kChromeHelpViaMenuURL[] = +@@ -136,7 +136,7 @@ inline constexpr char kChromeHelpViaMenuURL[] = #endif // BUILDFLAG(IS_CHROMEOS_ASH) inline constexpr char kChromeHelpViaWebUIURL[] = @@ -13245,7 +13245,7 @@ diff --git a/chrome/common/url_constants.h b/chrome/common/url_constants.h #if BUILDFLAG(IS_CHROMEOS_ASH) inline constexpr char kChromeOsHelpViaWebUIURL[] = #if BUILDFLAG(GOOGLE_CHROME_BRANDING) -@@ -195,7 +195,7 @@ inline constexpr char kChromeUIUntrustedNewTabPageUrl[] = +@@ -199,7 +199,7 @@ inline constexpr char kChromeUIUntrustedNewTabPageUrl[] = "chrome-untrusted://new-tab-page/"; // The URL for the Chromium project used in the About dialog. @@ -13257,7 +13257,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 -@@ -977,7 +977,7 @@ +@@ -983,7 +983,7 @@ @@ -18894,7 +18894,7 @@ diff --git a/components/version_ui/resources/about_version_mobile.css b/componen 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 -@@ -620,7 +620,7 @@ void ResolveInvalidConfigurations() { +@@ -617,7 +617,7 @@ void ResolveInvalidConfigurations() { base::FeatureList::IsEnabled( features::kPrivacySandboxAdsAPIsM1Override)) && !base::FeatureList::IsEnabled(blink::features::kFencedFrames)) { @@ -18903,7 +18903,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. << "Fenced frames cannot be enabled in this configuration. Use --" << switches::kEnableFeatures << "=" << blink::features::kFencedFrames.name << " instead."; -@@ -630,9 +630,8 @@ void ResolveInvalidConfigurations() { +@@ -627,9 +627,8 @@ void ResolveInvalidConfigurations() { if (!base::FeatureList::IsEnabled(blink::features::kFencedFrames) && base::FeatureList::IsEnabled( blink::features::kFencedFramesLocalUnpartitionedDataAccess)) { @@ -18915,7 +18915,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. << "Fenced frames must be enabled in order to enable local " "unpartitioned " << "data access. Use --" << switches::kEnableFeatures << "=" -@@ -645,7 +644,7 @@ void ResolveInvalidConfigurations() { +@@ -642,7 +641,7 @@ void ResolveInvalidConfigurations() { // The Document API should be additionally gated by the // `kBrowsingTopicsDocumentAPI` feature. if (!base::FeatureList::IsEnabled(blink::features::kBrowsingTopics)) { @@ -18924,7 +18924,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. << "Topics cannot be enabled in this configuration. Use --" << switches::kEnableFeatures << "=" << blink::features::kBrowsingTopics.name << " in addition."; -@@ -665,7 +664,7 @@ void ResolveInvalidConfigurations() { +@@ -662,7 +661,7 @@ void ResolveInvalidConfigurations() { } if (!base::FeatureList::IsEnabled(blink::features::kSharedStorageAPI)) { @@ -18933,7 +18933,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. << "SharedStorage cannot be enabled in this " "configuration. Use --" << switches::kEnableFeatures << "=" -@@ -675,7 +674,7 @@ void ResolveInvalidConfigurations() { +@@ -672,7 +671,7 @@ void ResolveInvalidConfigurations() { if (!base::FeatureList::IsEnabled(blink::features::kSharedStorageAPIM118) || !base::FeatureList::IsEnabled(blink::features::kSharedStorageAPI)) { @@ -18942,7 +18942,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. << "SharedStorage for M118+ cannot be enabled in this " "configuration. Use --" << switches::kEnableFeatures << "=" -@@ -686,7 +685,7 @@ void ResolveInvalidConfigurations() { +@@ -683,7 +682,7 @@ void ResolveInvalidConfigurations() { if (!base::FeatureList::IsEnabled(blink::features::kSharedStorageAPIM125) || !base::FeatureList::IsEnabled(blink::features::kSharedStorageAPI)) { @@ -18951,7 +18951,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. << "SharedStorage for M125+ cannot be enabled in this " "configuration. Use --" << switches::kEnableFeatures << "=" -@@ -697,7 +696,7 @@ void ResolveInvalidConfigurations() { +@@ -694,7 +693,7 @@ void ResolveInvalidConfigurations() { if (!base::FeatureList::IsEnabled( attribution_reporting::features::kConversionMeasurement)) { @@ -18960,7 +18960,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. << "AttributionReporting cannot be enabled in this " "configuration. Use --" << switches::kEnableFeatures << "=" -@@ -710,8 +709,8 @@ void ResolveInvalidConfigurations() { +@@ -707,8 +706,8 @@ void ResolveInvalidConfigurations() { attribution_reporting::features::kConversionMeasurement) || !base::FeatureList::IsEnabled( network::features::kAttributionReportingCrossAppWeb)) { @@ -18971,7 +18971,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. << "AttributionReportingCrossAppWeb cannot be enabled in this " "configuration. Use --" << switches::kEnableFeatures << "=" -@@ -722,7 +721,7 @@ void ResolveInvalidConfigurations() { +@@ -719,7 +718,7 @@ void ResolveInvalidConfigurations() { } if (!base::FeatureList::IsEnabled(blink::features::kInterestGroupStorage)) { diff --git a/build/patches/Customize-selection-popup.patch b/build/patches/Customize-selection-popup.patch index c0adc3f8..b9de21e3 100644 --- a/build/patches/Customize-selection-popup.patch +++ b/build/patches/Customize-selection-popup.patch @@ -15,19 +15,19 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../chrome/browser/ui/RootUiCoordinator.java | 8 +- .../Customize-selection-popup.grdp | 34 +++++ .../res/xml/accessibility_preferences.xml | 24 ++++ - .../selection/SelectActionMenuHelper.java | 131 ++++++++++++------ + .../selection/SelectActionMenuHelper.java | 129 ++++++++++++------ .../selection/SmartSelectionClient.java | 4 + - 10 files changed, 193 insertions(+), 52 deletions(-) + 10 files changed, 192 insertions(+), 51 deletions(-) create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Customize-selection-popup.grdp diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionModeHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionModeHandler.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionModeHandler.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionModeHandler.java -@@ -148,9 +148,7 @@ public class ChromeActionModeHandler { +@@ -154,9 +154,7 @@ public class ChromeActionModeHandler { | ActionModeCallbackHelper.MENU_ITEM_SHARE; // Disable options that expose additional Chrome functionality prior to the FRE being // completed (i.e. creation of a new tab). -- if (FirstRunStatus.getFirstRunFlowComplete()) { +- if (FirstRunStatus.getFirstRunFlowComplete() && mShowWebSearch) { - allowedActionModes |= ActionModeCallbackHelper.MENU_ITEM_WEB_SEARCH; - } + allowedActionModes |= ActionModeCallbackHelper.MENU_ITEM_WEB_SEARCH; @@ -37,7 +37,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionMod diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -756,10 +756,17 @@ public class ChromeTabbedActivity extends ChromeActivity menuItemBuilders = new ArrayList<>(); menuItemBuilders.add(cut(delegate.canCut())); menuItemBuilders.add(copy(delegate.canCopy())); -@@ -304,7 +351,7 @@ public class SelectActionMenuHelper { - // these menu items. +@@ -257,7 +304,7 @@ public class SelectActionMenuHelper { + // menu items if there is selected text. + @IdRes int groupId = selectedText.isEmpty() ? Menu.NONE : android.R.id.textAssist; SelectionMenuGroup secondaryAssistItems = - new SelectionMenuGroup( -- android.R.id.textAssist, GroupItemOrder.SECONDARY_ASSIST_ITEMS); -+ android.R.id.textAssist, GroupItemOrderChromium.SECONDARY_ASSIST_ITEMS()); +- new SelectionMenuGroup(groupId, GroupItemOrder.SECONDARY_ASSIST_ITEMS); ++ new SelectionMenuGroup(groupId, GroupItemOrderChromium.SECONDARY_ASSIST_ITEMS()); - // First action is reserved for primary action so start at index 1. - final int startIndex = 1; -@@ -337,7 +384,7 @@ public class SelectActionMenuHelper { + if (selectedText.isEmpty() && selectionActionMenuDelegate != null) { + List additionalMenuItems = +@@ -319,7 +366,7 @@ public class SelectActionMenuHelper { SelectionMenuGroup textProcessingItems = new SelectionMenuGroup( R.id.select_action_menu_text_processing_items, @@ -398,7 +389,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select if (isSelectionPassword || intentHandler == null) { addAdditionalTextProcessingItems(textProcessingItems, selectionActionMenuDelegate); return textProcessingItems; -@@ -444,7 +491,7 @@ public class SelectActionMenuHelper { +@@ -426,7 +473,7 @@ public class SelectActionMenuHelper { .setId(R.id.select_action_menu_cut) .setIconAttr(android.R.attr.actionModeCutDrawable) .setAlphabeticShortcut(ItemKeyShortcuts.CUT) @@ -407,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) -@@ -456,7 +503,7 @@ public class SelectActionMenuHelper { +@@ -438,7 +485,7 @@ public class SelectActionMenuHelper { .setId(R.id.select_action_menu_copy) .setIconAttr(android.R.attr.actionModeCopyDrawable) .setAlphabeticShortcut(ItemKeyShortcuts.COPY) @@ -416,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) -@@ -468,7 +515,7 @@ public class SelectActionMenuHelper { +@@ -450,7 +497,7 @@ public class SelectActionMenuHelper { .setId(R.id.select_action_menu_paste) .setIconAttr(android.R.attr.actionModePasteDrawable) .setAlphabeticShortcut(ItemKeyShortcuts.PASTE) @@ -425,7 +416,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) -@@ -482,7 +529,7 @@ public class SelectActionMenuHelper { +@@ -464,7 +511,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) @@ -434,7 +425,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 { +@@ -476,7 +523,7 @@ public class SelectActionMenuHelper { .setId(R.id.select_action_menu_select_all) .setIconAttr(android.R.attr.actionModeSelectAllDrawable) .setAlphabeticShortcut(ItemKeyShortcuts.SELECT_ALL) @@ -443,7 +434,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) -@@ -507,7 +554,7 @@ public class SelectActionMenuHelper { +@@ -489,7 +536,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) @@ -452,7 +443,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); -@@ -527,7 +574,7 @@ public class SelectActionMenuHelper { +@@ -509,7 +556,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 e73a9631..6e96e939 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 -@@ -3305,8 +3305,8 @@ +@@ -3395,8 +3395,8 @@ status: "stable", }, { diff --git a/build/patches/Dictionary-suggestions-for-the-Omnibox.patch b/build/patches/Dictionary-suggestions-for-the-Omnibox.patch index 0c454dc6..466b384c 100644 --- a/build/patches/Dictionary-suggestions-for-the-Omnibox.patch +++ b/build/patches/Dictionary-suggestions-for-the-Omnibox.patch @@ -27,7 +27,7 @@ diff --git a/chrome/android/java/res/layout/url_bar.xml b/chrome/android/java/re diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java -@@ -293,8 +293,17 @@ class LocationBarMediator +@@ -294,8 +294,17 @@ class LocationBarMediator if (mNativeInitialized) RecordUserAction.record("FocusLocation"); // Don't clear Omnibox if the user just pasted text to NTP Omnibox. if (mShouldClearOmniboxOnFocus) { @@ -58,15 +58,15 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import android.os.SystemClock; import android.text.Editable; import android.text.InputType; -@@ -102,6 +103,7 @@ public abstract class UrlBar extends AutocompleteEditText { - private boolean mFocused; +@@ -114,6 +115,7 @@ public class UrlBar extends AutocompleteEditText { private boolean mAllowFocus = true; + private boolean mTypingStartedEventSent; + private boolean mPendingSelectAll; private boolean mPendingScroll; - private int mLocationBarVerticalInset; -@@ -298,6 +300,27 @@ public abstract class UrlBar extends AutocompleteEditText { + // Captures the current intended text scroll type. +@@ -355,6 +357,27 @@ public class UrlBar extends AutocompleteEditText { mPendingScroll = false; } fixupTextDirection(); diff --git a/build/patches/Disable-CSS-blink-feature-support.patch b/build/patches/Disable-CSS-blink-feature-support.patch index e6466d68..7a119918 100644 --- a/build/patches/Disable-CSS-blink-feature-support.patch +++ b/build/patches/Disable-CSS-blink-feature-support.patch @@ -28,7 +28,7 @@ diff --git a/third_party/blink/renderer/core/css/parser/css_supports_parser.cc b diff --git a/third_party/blink/renderer/core/speculation_rules/document_rule_predicate.cc b/third_party/blink/renderer/core/speculation_rules/document_rule_predicate.cc --- a/third_party/blink/renderer/core/speculation_rules/document_rule_predicate.cc +++ b/third_party/blink/renderer/core/speculation_rules/document_rule_predicate.cc -@@ -604,7 +604,7 @@ DocumentRulePredicate* DocumentRulePredicate::Parse( +@@ -587,7 +587,7 @@ DocumentRulePredicate* DocumentRulePredicate::Parse( HeapVector> selectors; HeapVector arena; CSSPropertyValueSet* empty_properties = diff --git a/build/patches/Disable-Component-Updates.patch b/build/patches/Disable-Component-Updates.patch index dc955920..42547d69 100644 --- a/build/patches/Disable-Component-Updates.patch +++ b/build/patches/Disable-Component-Updates.patch @@ -12,7 +12,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/component_updater/registration.cc b/chrome/browser/component_updater/registration.cc --- a/chrome/browser/component_updater/registration.cc +++ b/chrome/browser/component_updater/registration.cc -@@ -99,6 +99,7 @@ +@@ -100,6 +100,7 @@ namespace component_updater { void RegisterComponentsForUpdate() { diff --git a/build/patches/Disable-Compose-feature.patch b/build/patches/Disable-Compose-feature.patch index d0f1d552..bf6fd5ec 100644 --- a/build/patches/Disable-Compose-feature.patch +++ b/build/patches/Disable-Compose-feature.patch @@ -4,31 +4,14 @@ Subject: Disable Compose feature License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- - chrome/browser/extensions/api/settings_private/prefs_util.cc | 2 ++ - components/compose/core/browser/compose_features.cc | 2 ++ - components/compose/features.gni | 2 +- - 3 files changed, 5 insertions(+), 1 deletion(-) + components/compose/core/browser/compose_features.cc | 2 ++ + components/compose/features.gni | 2 +- + 2 files changed, 3 insertions(+), 1 deletion(-) -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 -@@ -487,10 +487,12 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { - (*s_allowlist) - [::permissions::prefs::kUnusedSitePermissionsRevocationEnabled] = - settings_api::PrefType::kBoolean; -+#if BUILDFLAG(ENABLE_COMPOSE) - (*s_allowlist)[prefs::kEnableProactiveNudge] = - settings_api::PrefType::kBoolean; - (*s_allowlist)[prefs::kProactiveNudgeDisabledSitesWithTime] = - settings_api::PrefType::kDictionary; -+#endif - - // Clear browsing data settings. - (*s_allowlist)[browsing_data::prefs::kDeleteBrowsingHistory] = diff --git a/components/compose/core/browser/compose_features.cc b/components/compose/core/browser/compose_features.cc --- a/components/compose/core/browser/compose_features.cc +++ b/components/compose/core/browser/compose_features.cc -@@ -83,4 +83,6 @@ BASE_FEATURE(kEnableNudgeForUnspecifiedHint, +@@ -91,4 +91,6 @@ BASE_FEATURE(kEnableNudgeForUnspecifiedHint, BASE_FEATURE(kEnableAdditionalTextMetrics, "EnableAdditionalTextMetrics", base::FEATURE_ENABLED_BY_DEFAULT); @@ -38,11 +21,11 @@ diff --git a/components/compose/core/browser/compose_features.cc b/components/co diff --git a/components/compose/features.gni b/components/compose/features.gni --- a/components/compose/features.gni +++ b/components/compose/features.gni -@@ -4,5 +4,5 @@ +@@ -6,5 +6,5 @@ import("//build/config/chromeos/ui_mode.gni") declare_args() { # Whether Compose is enabled in the build. -- enable_compose = is_mac || is_win || is_linux || is_chromeos +- enable_compose = is_mac || is_win || is_linux || is_chromeos_ash + enable_compose = false } -- diff --git a/build/patches/Disable-Compression-Dictionary-Transport.patch b/build/patches/Disable-Compression-Dictionary-Transport.patch index c5c37402..b67ecaff 100644 --- a/build/patches/Disable-Compression-Dictionary-Transport.patch +++ b/build/patches/Disable-Compression-Dictionary-Transport.patch @@ -10,25 +10,23 @@ 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 -@@ -689,16 +689,18 @@ +@@ -738,14 +738,16 @@ } }, { - name: "CompressionDictionaryTransport", + name: "CompressionDictionaryTransport", // need to be disabled ++ status: "experimental", base_feature: "none", origin_trial_feature_name: "CompressionDictionaryTransportV3", origin_trial_allows_third_party: true, public: true, -+ status: "experimental", }, { - name: "CompressionDictionaryTransportBackend", + name: "CompressionDictionaryTransportBackend", // need to be disabled ++ status: "experimental", base_feature: "none", public: true, -+ status: "experimental", }, - { - name: "ComputedAccessibilityInfo", -- diff --git a/build/patches/Disable-FedCm.patch b/build/patches/Disable-FedCm.patch index 6c41bd80..2d240da2 100644 --- a/build/patches/Disable-FedCm.patch +++ b/build/patches/Disable-FedCm.patch @@ -26,7 +26,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -1532,7 +1532,7 @@ +@@ -1641,7 +1641,7 @@ { name: "FedCm", public: true, diff --git a/build/patches/Disable-GSA-by-default.patch b/build/patches/Disable-GSA-by-default.patch index cc9c29f8..0dbbae1d 100644 --- a/build/patches/Disable-GSA-by-default.patch +++ b/build/patches/Disable-GSA-by-default.patch @@ -155,7 +155,7 @@ diff --git a/chrome/browser/ui/android/google_bottom_bar/java/src/org/chromium/c import static org.chromium.chrome.browser.ui.google_bottom_bar.GoogleBottomBarLogger.GoogleBottomBarButtonEvent.SEARCHBOX_HOME; import static org.chromium.chrome.browser.ui.google_bottom_bar.GoogleBottomBarLogger.GoogleBottomBarButtonEvent.SEARCHBOX_LENS; import static org.chromium.chrome.browser.ui.google_bottom_bar.GoogleBottomBarLogger.GoogleBottomBarButtonEvent.SEARCHBOX_SEARCH; -@@ -106,11 +103,6 @@ class GoogleBottomBarActionsHandler { +@@ -102,11 +99,6 @@ class GoogleBottomBarActionsHandler { } void onSearchboxMicTap() { @@ -166,8 +166,8 @@ diff --git a/chrome/browser/ui/android/google_bottom_bar/java/src/org/chromium/c - startGoogleAppActivityForResult(intent, "openGoogleAppVoiceSearch"); } - void onSearchboxLensTap() { -@@ -148,21 +140,13 @@ class GoogleBottomBarActionsHandler { + void onSearchboxLensTap(View buttonView) { +@@ -145,21 +137,13 @@ class GoogleBottomBarActionsHandler { } private void openGoogleAppSearch() { @@ -190,7 +190,7 @@ diff --git a/chrome/browser/ui/android/google_bottom_bar/java/src/org/chromium/c intent.putExtra(EXTRA_IS_LAUNCHED_FROM_CHROME_SEARCH_ENTRYPOINT, true); if (PackageManagerUtils.canResolveActivity(intent)) { -@@ -285,6 +269,7 @@ class GoogleBottomBarActionsHandler { +@@ -271,6 +255,7 @@ class GoogleBottomBarActionsHandler { } private void sendPendingIntentWithUrl(PendingIntent pendingIntent) { diff --git a/build/patches/Disable-GetInstalledRelatedApps-API.patch b/build/patches/Disable-GetInstalledRelatedApps-API.patch index 95d69145..be18dbb0 100644 --- a/build/patches/Disable-GetInstalledRelatedApps-API.patch +++ b/build/patches/Disable-GetInstalledRelatedApps-API.patch @@ -58,7 +58,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -2200,9 +2200,9 @@ +@@ -2336,9 +2336,9 @@ status: {"Android": "test", "default": "stable"}, }, { diff --git a/build/patches/Disable-Paint-Preview-by-default.patch b/build/patches/Disable-Paint-Preview-by-default.patch index 370a4db2..34862332 100644 --- a/build/patches/Disable-Paint-Preview-by-default.patch +++ b/build/patches/Disable-Paint-Preview-by-default.patch @@ -10,11 +10,11 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/paint_preview/StartupPaintPreviewHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/paint_preview/StartupPaintPreviewHelper.java --- a/chrome/android/java/src/org/chromium/chrome/browser/paint_preview/StartupPaintPreviewHelper.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/paint_preview/StartupPaintPreviewHelper.java -@@ -113,7 +113,7 @@ public class StartupPaintPreviewHelper { - * feature is not enabled this is effectively a no-op. - */ - public static void setShouldShowOnRestore(boolean shouldShowOnRestore) { -- sShouldShowOnRestore = shouldShowOnRestore; +@@ -107,7 +107,7 @@ public class StartupPaintPreviewHelper { + + /** Enables Paint Preview show attempt on restoration of a tab. */ + public static void enableShowOnRestore() { +- sShouldShowOnRestore = true; + sShouldShowOnRestore = false; } diff --git a/build/patches/Disable-PrivacyGuide.patch b/build/patches/Disable-PrivacyGuide.patch index 4a038f30..53b6e403 100644 --- a/build/patches/Disable-PrivacyGuide.patch +++ b/build/patches/Disable-PrivacyGuide.patch @@ -24,7 +24,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/browser/ui/webui/settings/settings_ui.cc b/chrome/browser/ui/webui/settings/settings_ui.cc --- a/chrome/browser/ui/webui/settings/settings_ui.cc +++ b/chrome/browser/ui/webui/settings/settings_ui.cc -@@ -365,8 +365,7 @@ SettingsUI::SettingsUI(content::WebUI* web_ui) +@@ -359,8 +359,7 @@ SettingsUI::SettingsUI(content::WebUI* web_ui) #endif // !BUILDFLAG(IS_CHROMEOS_LACROS) bool show_privacy_guide = diff --git a/build/patches/Disable-PrivateStateTokens-API.patch b/build/patches/Disable-PrivateStateTokens-API.patch deleted file mode 100644 index 8608edb7..00000000 --- a/build/patches/Disable-PrivateStateTokens-API.patch +++ /dev/null @@ -1,18 +0,0 @@ -From: uazo -Date: Mon, 15 May 2023 12:33:18 +0000 -Subject: Disable PrivateStateTokens API - -License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html ---- - .../public/cpp/features_cc/Disable-PrivateStateTokens-API.inc | 2 ++ - 1 file changed, 2 insertions(+) - create mode 100644 cromite_flags/services/network/public/cpp/features_cc/Disable-PrivateStateTokens-API.inc - -diff --git a/cromite_flags/services/network/public/cpp/features_cc/Disable-PrivateStateTokens-API.inc b/cromite_flags/services/network/public/cpp/features_cc/Disable-PrivateStateTokens-API.inc -new file mode 100644 ---- /dev/null -+++ b/cromite_flags/services/network/public/cpp/features_cc/Disable-PrivateStateTokens-API.inc -@@ -0,0 +1,2 @@ -+SET_CROMITE_FEATURE_DISABLED(kPrivateStateTokens); -+SET_CROMITE_FEATURE_DISABLED(kFledgePst); --- diff --git a/build/patches/Disable-Real-Box.patch b/build/patches/Disable-Real-Box.patch index e0482309..a4766712 100644 --- a/build/patches/Disable-Real-Box.patch +++ b/build/patches/Disable-Real-Box.patch @@ -13,7 +13,7 @@ Real-box is search box in ntp diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc -@@ -2350,7 +2350,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -2135,7 +2135,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, registry->RegisterBooleanPref( prefs::kLensRegionSearchEnabled, true, user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); @@ -25,7 +25,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse diff --git a/chrome/browser/resources/new_tab_page/app.html b/chrome/browser/resources/new_tab_page/app.html --- a/chrome/browser/resources/new_tab_page/app.html +++ b/chrome/browser/resources/new_tab_page/app.html -@@ -440,13 +440,6 @@ +@@ -429,13 +429,6 @@ hidden$="[[!logoEnabled_]]">
@@ -42,7 +42,7 @@ diff --git a/chrome/browser/resources/new_tab_page/app.html b/chrome/browser/res diff --git a/chrome/browser/ui/webui/searchbox/searchbox_handler.cc b/chrome/browser/ui/webui/searchbox/searchbox_handler.cc --- a/chrome/browser/ui/webui/searchbox/searchbox_handler.cc +++ b/chrome/browser/ui/webui/searchbox/searchbox_handler.cc -@@ -455,6 +455,7 @@ void SearchboxHandler::SetupWebUIDataSource(content::WebUIDataSource* source, +@@ -457,6 +457,7 @@ void SearchboxHandler::SetupWebUIDataSource(content::WebUIDataSource* source, Profile* profile, bool enable_voice_search, bool enable_lens_search) { @@ -53,18 +53,18 @@ diff --git a/chrome/browser/ui/webui/searchbox/searchbox_handler.cc b/chrome/bro diff --git a/components/search/ntp_features.cc b/components/search/ntp_features.cc --- a/components/search/ntp_features.cc +++ b/components/search/ntp_features.cc -@@ -176,7 +176,7 @@ BASE_FEATURE(kNtpHandleMostVisitedNavigationExplicitly, - base::FEATURE_ENABLED_BY_DEFAULT); +@@ -169,7 +169,7 @@ BASE_FEATURE(kNtpHandleMostVisitedNavigationExplicitly, // If enabled, logo will be shown. + // This is a kill switch. Keep indefinitely. -BASE_FEATURE(kNtpLogo, "NtpLogo", base::FEATURE_ENABLED_BY_DEFAULT); +BASE_FEATURE(kNtpLogo, "NtpLogo", base::FEATURE_DISABLED_BY_DEFAULT); - // If enabled, logo will fill up less vertical space. - BASE_FEATURE(kNtpReducedLogoSpace, -@@ -253,8 +253,8 @@ BASE_FEATURE(kNtpMostVisitedReflowOnOverflow, - + // If enabled, middle slot promo will be shown. + // This is a kill switch. Keep indefinitely. +@@ -237,8 +237,8 @@ BASE_FEATURE(kNtpModulesRedesigned, // If enabled, OneGoogleBar will be shown. + // This is a kill switch. Keep indefinitely. BASE_FEATURE(kNtpOneGoogleBar, - "NtpOneGoogleBar", - base::FEATURE_ENABLED_BY_DEFAULT); diff --git a/build/patches/Disable-StartSurface-feature.patch b/build/patches/Disable-StartSurface-feature.patch deleted file mode 100644 index a8768aca..00000000 --- a/build/patches/Disable-StartSurface-feature.patch +++ /dev/null @@ -1,32 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Wed, 16 Nov 2022 11:18:07 +0100 -Subject: Disable StartSurface feature - -This feature would normally show a search box but leads to crashes. - -License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html ---- - .../org/chromium/chrome/browser/flags/ChromeFeatureList.java | 2 +- - .../chrome_feature_list_cc/Disable-StartSurface-feature.inc | 1 + - 2 files changed, 2 insertions(+), 1 deletion(-) - create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-StartSurface-feature.inc - -diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java ---- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -672,7 +672,7 @@ public abstract class ChromeFeatureList { - public static final CachedFlag sSmallerTabStripTitleLimit = - newCachedFlag(SMALLER_TAB_STRIP_TITLE_LIMIT, true); - public static final CachedFlag sStartSurfaceAndroid = -- newCachedFlag(START_SURFACE_ANDROID, true); -+ newCachedFlag(START_SURFACE_ANDROID, false); - public static final CachedFlag sStartSurfaceReturnTime = - newCachedFlag(START_SURFACE_RETURN_TIME, true); - public static final CachedFlag sStopAppIndexingReport = -diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-StartSurface-feature.inc b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-StartSurface-feature.inc -new file mode 100644 ---- /dev/null -+++ b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-StartSurface-feature.inc -@@ -0,0 +1 @@ -+SET_CROMITE_FEATURE_DISABLED(kStartSurfaceAndroid); --- diff --git a/build/patches/Disable-TLS-resumption.patch b/build/patches/Disable-TLS-resumption.patch index 369b5e5f..2c233c77 100644 --- a/build/patches/Disable-TLS-resumption.patch +++ b/build/patches/Disable-TLS-resumption.patch @@ -90,7 +90,7 @@ diff --git a/net/http/http_network_session.cc b/net/http/http_network_session.cc diff --git a/net/quic/quic_session_pool.cc b/net/quic/quic_session_pool.cc --- a/net/quic/quic_session_pool.cc +++ b/net/quic/quic_session_pool.cc -@@ -78,6 +78,7 @@ +@@ -80,6 +80,7 @@ #include "net/third_party/quiche/src/quiche/quic/platform/api/quic_flags.h" #include "net/traffic_annotation/network_traffic_annotation.h" #include "third_party/boringssl/src/include/openssl/aead.h" @@ -98,7 +98,7 @@ diff --git a/net/quic/quic_session_pool.cc b/net/quic/quic_session_pool.cc #include "url/gurl.h" #include "url/scheme_host_port.h" #include "url/url_constants.h" -@@ -195,6 +196,38 @@ void LogUsingExistingSession(const NetLogWithSource& request_net_log, +@@ -215,6 +216,38 @@ void LogUsingExistingSession(const NetLogWithSource& request_net_log, } // namespace @@ -137,7 +137,7 @@ diff --git a/net/quic/quic_session_pool.cc b/net/quic/quic_session_pool.cc QuicSessionRequest::QuicSessionRequest(QuicSessionPool* pool) : pool_(pool) {} QuicSessionRequest::~QuicSessionRequest() { -@@ -1881,7 +1914,7 @@ QuicSessionPool::CreateCryptoConfigHandle( +@@ -1958,7 +1991,7 @@ QuicSessionPool::CreateCryptoConfigHandle( cert_verifier_, transport_security_state_, sct_auditing_delegate_, HostsFromOrigins(params_.origins_to_force_quic_on), actual_network_anonymization_key), @@ -149,7 +149,7 @@ diff --git a/net/quic/quic_session_pool.cc b/net/quic/quic_session_pool.cc diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket_impl.cc --- a/net/socket/ssl_client_socket_impl.cc +++ b/net/socket/ssl_client_socket_impl.cc -@@ -293,7 +293,33 @@ SSLClientSocketImpl::SSLClientSocketImpl( +@@ -292,7 +292,33 @@ SSLClientSocketImpl::SSLClientSocketImpl( CHECK(context_); } @@ -183,7 +183,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket Disconnect(); } -@@ -677,6 +703,8 @@ int SSLClientSocketImpl::Init() { +@@ -676,6 +702,8 @@ int SSLClientSocketImpl::Init() { } if (session) SSL_set_session(ssl_.get(), session.get()); @@ -192,7 +192,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket } const int kBufferSize = GetDefaultOpenSSLBufferSize(); -@@ -963,6 +991,35 @@ int SSLClientSocketImpl::DoHandshakeComplete(int result) { +@@ -962,6 +990,35 @@ int SSLClientSocketImpl::DoHandshakeComplete(int result) { : SSLHandshakeDetails::kTLS13Full; } } @@ -228,7 +228,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket UMA_HISTOGRAM_ENUMERATION("Net.SSLHandshakeDetails", details); // Measure TLS connections that implement the renegotiation_info extension. -@@ -1588,6 +1645,8 @@ bool SSLClientSocketImpl::IsRenegotiationAllowed() const { +@@ -1587,6 +1644,8 @@ bool SSLClientSocketImpl::IsRenegotiationAllowed() const { } bool SSLClientSocketImpl::IsCachingEnabled() const { diff --git a/build/patches/Disable-WebGPU.patch b/build/patches/Disable-WebGPU.patch index 08dec70d..3ac8fdc3 100644 --- a/build/patches/Disable-WebGPU.patch +++ b/build/patches/Disable-WebGPU.patch @@ -12,7 +12,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc --- a/content/child/runtime_features.cc +++ b/content/child/runtime_features.cc -@@ -572,6 +572,8 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs( +@@ -569,6 +569,8 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs( WebRuntimeFeatures::EnableV8IdleTasks(true); } @@ -24,7 +24,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc --- a/gpu/config/gpu_finch_features.cc +++ b/gpu/config/gpu_finch_features.cc -@@ -276,7 +276,7 @@ BASE_FEATURE(kEnableDrDc, +@@ -278,7 +278,7 @@ BASE_FEATURE(kEnableDrDc, // enabled by default on supported platforms. #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS) || \ BUILDFLAG(IS_ANDROID) diff --git a/build/patches/Disable-all-predictors-code.patch b/build/patches/Disable-all-predictors-code.patch index 443d280b..5280e67f 100644 --- a/build/patches/Disable-all-predictors-code.patch +++ b/build/patches/Disable-all-predictors-code.patch @@ -11,6 +11,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../optimization_guide/chrome_hints_manager.cc | 1 + .../model_validator_keyed_service.cc | 6 +++++- .../optimization_guide_keyed_service.cc | 1 - + .../predictors/autocomplete_action_predictor.cc | 2 ++ .../predictors/loading_predictor_config.cc | 4 ++-- chrome/browser/predictors/predictors_features.cc | 3 +-- chrome/browser/ui/tab_helpers.cc | 1 - @@ -27,7 +28,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html components/optimization_guide/features.gni | 3 +-- .../core/page_content_annotations_features.cc | 5 +++++ components/search/ntp_features.cc | 3 +++ - .../Disable-all-predictors-code.inc | 4 ++++ + .../Disable-all-predictors-code.inc | 3 +++ + .../Disable-all-predictors-code.inc | 1 + .../Disable-all-predictors-code.inc | 1 + .../features_cc/Disable-all-predictors-code.inc | 4 ++++ .../features_cc/Disable-all-predictors-code.inc | 1 + @@ -35,8 +37,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html services/webnn/features.gni | 2 +- .../document_speculation_rules.cc | 1 + .../platform/runtime_enabled_features.json5 | 2 +- - 30 files changed, 67 insertions(+), 35 deletions(-) + 32 files changed, 69 insertions(+), 35 deletions(-) create mode 100644 cromite_flags/chrome/browser/browser_features_cc/Disable-all-predictors-code.inc + create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-all-predictors-code.inc create mode 100644 cromite_flags/chrome/common/chrome_features_cc/Disable-all-predictors-code.inc create mode 100644 cromite_flags/components/permissions/features_cc/Disable-all-predictors-code.inc create mode 100644 cromite_flags/services/network/public/cpp/features_cc/Disable-all-predictors-code.inc @@ -65,14 +68,15 @@ diff --git a/chrome/browser/navigation_predictor/preloading_model_keyed_service. namespace { // The model takes all of its inputs as floats, so this is a convenience -@@ -28,12 +29,14 @@ constexpr float ToInput(base::TimeDelta val) { +@@ -28,6 +29,7 @@ constexpr float ToInput(base::TimeDelta val) { static_assert(1.0f == ToInput(true)); } // namespace +#endif PreloadingModelKeyedService::Inputs::Inputs() = default; - + PreloadingModelKeyedService::Inputs::Inputs(const Inputs& other) = default; +@@ -37,6 +39,7 @@ PreloadingModelKeyedService::Inputs::operator=(const Inputs& other) = default; PreloadingModelKeyedService::PreloadingModelKeyedService( OptimizationGuideKeyedService* optimization_guide_keyed_service) { #if BUILDFLAG(BUILD_WITH_TFLITE_LIB) @@ -156,7 +160,7 @@ diff --git a/chrome/browser/optimization_guide/model_validator_keyed_service.cc diff --git a/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc b/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc --- a/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc +++ b/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc -@@ -544,7 +544,6 @@ void OptimizationGuideKeyedService::RemoveObserverForOptimizationTargetModel( +@@ -553,7 +553,6 @@ void OptimizationGuideKeyedService::RemoveObserverForOptimizationTargetModel( void OptimizationGuideKeyedService::RegisterOptimizationTypes( const std::vector& optimization_types) { @@ -164,6 +168,18 @@ diff --git a/chrome/browser/optimization_guide/optimization_guide_keyed_service. } optimization_guide::OptimizationGuideDecision +diff --git a/chrome/browser/predictors/autocomplete_action_predictor.cc b/chrome/browser/predictors/autocomplete_action_predictor.cc +--- a/chrome/browser/predictors/autocomplete_action_predictor.cc ++++ b/chrome/browser/predictors/autocomplete_action_predictor.cc +@@ -209,6 +209,8 @@ void AutocompleteActionPredictor::StartPrerendering( + + SetIsNavigationInDomainCallback(preloading_data); + ++ if ((true)) return; // was kOmniboxTriggerForPrerender2 ++ + // Create new PreloadingAttempt and pass all the values corresponding to this + // prerendering attempt for Prerender. + content::PreloadingAttempt* preloading_attempt = diff --git a/chrome/browser/predictors/loading_predictor_config.cc b/chrome/browser/predictors/loading_predictor_config.cc --- a/chrome/browser/predictors/loading_predictor_config.cc +++ b/chrome/browser/predictors/loading_predictor_config.cc @@ -194,7 +210,7 @@ diff --git a/chrome/browser/predictors/predictors_features.cc b/chrome/browser/p diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc --- a/chrome/browser/ui/tab_helpers.cc +++ b/chrome/browser/ui/tab_helpers.cc -@@ -435,7 +435,6 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -433,7 +433,6 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { } MixedContentSettingsTabHelper::CreateForWebContents(web_contents); NavigationMetricsRecorder::CreateForWebContents(web_contents); @@ -255,7 +271,7 @@ diff --git a/chrome/utility/services.cc b/chrome/utility/services.cc diff --git a/components/autofill/core/browser/autofill_optimization_guide.cc b/components/autofill/core/browser/autofill_optimization_guide.cc --- a/components/autofill/core/browser/autofill_optimization_guide.cc +++ b/components/autofill/core/browser/autofill_optimization_guide.cc -@@ -172,6 +172,7 @@ void AutofillOptimizationGuide::OnDidParseForm( +@@ -194,6 +194,7 @@ void AutofillOptimizationGuide::OnDidParseForm( // If we do not have any optimization types to register, do not do anything. if (!optimization_types.empty()) { // Register all optimization types that we need based on `form_structure`. @@ -263,8 +279,8 @@ diff --git a/components/autofill/core/browser/autofill_optimization_guide.cc b/c decider_->RegisterOptimizationTypes( std::vector( std::move(optimization_types).extract())); -@@ -223,7 +224,7 @@ bool AutofillOptimizationGuide::ShouldBlockSingleFieldSuggestions( - AutofillField* field) const { +@@ -245,7 +246,7 @@ bool AutofillOptimizationGuide::ShouldBlockSingleFieldSuggestions( + const AutofillField* field) const { // If the field's storable type is `IBAN_VALUE`, check whether IBAN // suggestions should be blocked based on `url`. - if (field->Type().GetStorableType() == IBAN_VALUE) { @@ -272,7 +288,7 @@ diff --git a/components/autofill/core/browser/autofill_optimization_guide.cc b/c optimization_guide::OptimizationGuideDecision decision = decider_->CanApplyOptimization( url, optimization_guide::proto::IBAN_AUTOFILL_BLOCKED, -@@ -249,7 +250,7 @@ bool AutofillOptimizationGuide::ShouldBlockFormFieldSuggestion( +@@ -271,7 +272,7 @@ bool AutofillOptimizationGuide::ShouldBlockFormFieldSuggestion( const CreditCard& card) const { if (auto optimization_type = GetVcnMerchantOptOutOptimizationTypeForCard(card); @@ -284,7 +300,7 @@ diff --git a/components/autofill/core/browser/autofill_optimization_guide.cc b/c diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/omnibox/browser/autocomplete_controller.cc --- a/components/omnibox/browser/autocomplete_controller.cc +++ b/components/omnibox/browser/autocomplete_controller.cc -@@ -46,7 +46,9 @@ +@@ -47,7 +47,9 @@ #include "components/omnibox/browser/autocomplete_input.h" #include "components/omnibox/browser/autocomplete_match_type.h" #include "components/omnibox/browser/autocomplete_provider.h" @@ -294,7 +310,7 @@ diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/ #include "components/omnibox/browser/autocomplete_scoring_signals_annotator.h" #include "components/omnibox/browser/bookmark_provider.h" #include "components/omnibox/browser/bookmark_scoring_signals_annotator.h" -@@ -119,6 +121,7 @@ using ProviderType = AutocompleteProvider::Type; +@@ -121,6 +123,7 @@ using ProviderType = AutocompleteProvider::Type; constexpr bool is_android = !!BUILDFLAG(IS_ANDROID); @@ -302,7 +318,7 @@ diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/ void RecordMlScoreCoverage(size_t matches_with_non_null_scores, size_t total_scored_matches) { int percent_score_coverage = -@@ -207,6 +210,7 @@ void RecordScoringSignalCoverageForProvider( +@@ -218,6 +221,7 @@ void RecordScoringSignalCoverageForProvider( pair.second); } } @@ -313,7 +329,7 @@ diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/ diff --git a/components/optimization_guide/core/hints_fetcher.cc b/components/optimization_guide/core/hints_fetcher.cc --- a/components/optimization_guide/core/hints_fetcher.cc +++ b/components/optimization_guide/core/hints_fetcher.cc -@@ -185,6 +185,7 @@ bool HintsFetcher::FetchOptimizationGuideServiceHints( +@@ -198,6 +198,7 @@ bool HintsFetcher::FetchOptimizationGuideServiceHints( bool skip_cache, HintsFetchedCallback hints_fetched_callback, std::optional request_context_metadata) { @@ -353,7 +369,7 @@ diff --git a/components/optimization_guide/core/hints_manager.cc b/components/op diff --git a/components/optimization_guide/core/optimization_guide_features.cc b/components/optimization_guide/core/optimization_guide_features.cc --- a/components/optimization_guide/core/optimization_guide_features.cc +++ b/components/optimization_guide/core/optimization_guide_features.cc -@@ -37,11 +37,7 @@ namespace features { +@@ -38,11 +38,7 @@ namespace features { namespace { constexpr auto enabled_by_default_mobile_only = @@ -365,7 +381,7 @@ diff --git a/components/optimization_guide/core/optimization_guide_features.cc b } // namespace -@@ -430,8 +426,7 @@ size_t MaxURLKeyedHintCacheSize() { +@@ -437,8 +433,7 @@ size_t MaxURLKeyedHintCacheSize() { } bool ShouldPersistHintsToDisk() { @@ -375,7 +391,7 @@ diff --git a/components/optimization_guide/core/optimization_guide_features.cc b } RequestContextSet GetAllowedContextsForPersonalizedMetadata() { -@@ -871,5 +866,13 @@ int GetOnDeviceModelValidationAttemptCount() { +@@ -887,5 +882,13 @@ int GetOnDeviceModelValidationAttemptCount() { return kParam.Get(); } @@ -466,10 +482,10 @@ diff --git a/components/page_content_annotations/core/page_content_annotations_f diff --git a/components/search/ntp_features.cc b/components/search/ntp_features.cc --- a/components/search/ntp_features.cc +++ b/components/search/ntp_features.cc -@@ -574,4 +574,7 @@ std::vector GetModulesOrder() { - base::SplitResult::SPLIT_WANT_NONEMPTY); +@@ -583,4 +583,7 @@ int GetWallpaperSearchButtonAnimationShownThreshold() { + kNtpWallpaperSearchButtonAnimationShownThreshold, + kNtpWallpaperSearchButtonAnimationShownThresholdParam, 15); } - +SET_CROMITE_FEATURE_DISABLED(kNtpHistoryClustersModule); +SET_CROMITE_FEATURE_DISABLED(kNtpHistoryClustersModuleLoad); +SET_CROMITE_FEATURE_DISABLED(kNtpHistoryClustersModuleUseModelRanking); @@ -478,11 +494,16 @@ diff --git a/cromite_flags/chrome/browser/browser_features_cc/Disable-all-predic new file mode 100644 --- /dev/null +++ b/cromite_flags/chrome/browser/browser_features_cc/Disable-all-predictors-code.inc -@@ -0,0 +1,4 @@ -+SET_CROMITE_FEATURE_DISABLED(kOmniboxTriggerForPrerender2); +@@ -0,0 +1,3 @@ +SET_CROMITE_FEATURE_DISABLED(kBookmarkTriggerForPrerender2); +SET_CROMITE_FEATURE_DISABLED(kNewTabPageTriggerForPrerender2); +SET_CROMITE_FEATURE_DISABLED(kSupportSearchSuggestionForPrerender2); +diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-all-predictors-code.inc b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-all-predictors-code.inc +new file mode 100644 +--- /dev/null ++++ b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-all-predictors-code.inc +@@ -0,0 +1 @@ ++SET_CROMITE_FEATURE_DISABLED(kNewTabPageAndroidTriggerForPrerender2); diff --git a/cromite_flags/chrome/common/chrome_features_cc/Disable-all-predictors-code.inc b/cromite_flags/chrome/common/chrome_features_cc/Disable-all-predictors-code.inc new file mode 100644 --- /dev/null @@ -526,7 +547,7 @@ diff --git a/services/webnn/features.gni b/services/webnn/features.gni diff --git a/third_party/blink/renderer/core/speculation_rules/document_speculation_rules.cc b/third_party/blink/renderer/core/speculation_rules/document_speculation_rules.cc --- a/third_party/blink/renderer/core/speculation_rules/document_speculation_rules.cc +++ b/third_party/blink/renderer/core/speculation_rules/document_speculation_rules.cc -@@ -660,6 +660,7 @@ void DocumentSpeculationRules::UpdateSpeculationCandidates() { +@@ -656,6 +656,7 @@ void DocumentSpeculationRules::UpdateSpeculationCandidates() { return; } @@ -537,7 +558,7 @@ diff --git a/third_party/blink/renderer/core/speculation_rules/document_speculat diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -3115,7 +3115,7 @@ +@@ -3209,7 +3209,7 @@ // // It also has some feature params defined throughout the codebase. name: "Prerender2", diff --git a/build/patches/Disable-all-promo-dialogs.patch b/build/patches/Disable-all-promo-dialogs.patch index a3b1a672..bf295e65 100644 --- a/build/patches/Disable-all-promo-dialogs.patch +++ b/build/patches/Disable-all-promo-dialogs.patch @@ -17,7 +17,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java -@@ -1312,6 +1312,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1310,6 +1310,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { } private boolean maybeShowPromo(Profile profile) { @@ -28,7 +28,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc --- a/chrome/browser/ui/browser_ui_prefs.cc +++ b/chrome/browser/ui/browser_ui_prefs.cc -@@ -144,7 +144,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -148,7 +148,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref(prefs::kEnterpriseHardwarePlatformAPIEnabled, false); @@ -40,18 +40,18 @@ diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_u diff --git a/chrome/browser/ui/views/user_education/browser_feature_promo_controller.cc b/chrome/browser/ui/views/user_education/browser_feature_promo_controller.cc --- a/chrome/browser/ui/views/user_education/browser_feature_promo_controller.cc +++ b/chrome/browser/ui/views/user_education/browser_feature_promo_controller.cc -@@ -75,6 +75,7 @@ ui::ElementContext BrowserFeaturePromoController::GetAnchorContext() const { +@@ -78,6 +78,7 @@ ui::ElementContext BrowserFeaturePromoController::GetAnchorContext() const { bool BrowserFeaturePromoController::CanShowPromoForElement( ui::TrackedElement* anchor_element) const { + if ((true)) return false; - auto* const profile = browser_view_->GetProfile(); - - // Turn off IPH while a required privacy interstitial is visible or pending. + // Trying to show an IPH while the browser is closing can cause problems; + // see crbug.com/346461762 for an example. + if (browser_view_->browser()->IsBrowserClosing()) { diff --git a/chrome/browser/user_education/java/src/org/chromium/chrome/browser/user_education/UserEducationHelper.java b/chrome/browser/user_education/java/src/org/chromium/chrome/browser/user_education/UserEducationHelper.java --- a/chrome/browser/user_education/java/src/org/chromium/chrome/browser/user_education/UserEducationHelper.java +++ b/chrome/browser/user_education/java/src/org/chromium/chrome/browser/user_education/UserEducationHelper.java -@@ -125,6 +125,7 @@ public class UserEducationHelper { +@@ -126,6 +126,7 @@ public class UserEducationHelper { } private void showIPH(Tracker tracker, IPHCommand iphCommand) { diff --git a/build/patches/Disable-conversion-measurement-api.patch b/build/patches/Disable-conversion-measurement-api.patch index adafaf8f..160f4b57 100644 --- a/build/patches/Disable-conversion-measurement-api.patch +++ b/build/patches/Disable-conversion-measurement-api.patch @@ -30,25 +30,21 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/AttributionOsLevelManager.java | 349 +----------------- .../public/browser/content_browser_client.cc | 7 +- .../public/browser/navigation_controller.cc | 1 - - .../Disable-conversion-measurement-api.inc | 1 + - .../Disable-conversion-measurement-api.inc | 1 + - .../Disable-conversion-measurement-api.inc | 1 + + .../Disable-conversion-measurement-api.inc | 3 + .../Disable-conversion-measurement-api.inc | 9 + .../attribution/request_headers_internal.cc | 1 + .../network/public/cpp/attribution_utils.cc | 2 + third_party/blink/renderer/core/page/page.cc | 2 +- - .../platform/runtime_enabled_features.json5 | 1 + + .../platform/runtime_enabled_features.json5 | 10 +- ui/events/android/motion_event_android.cc | 6 +- - 28 files changed, 73 insertions(+), 376 deletions(-) - create mode 100644 cromite_flags/content/common/features_cc/Disable-conversion-measurement-api.inc - create mode 100644 cromite_flags/content/public/common/content_features_cc/Disable-conversion-measurement-api.inc + 26 files changed, 77 insertions(+), 381 deletions(-) create mode 100644 cromite_flags/services/network/public/cpp/features_cc/Disable-conversion-measurement-api.inc create mode 100644 cromite_flags/third_party/blink/common/features_cc/Disable-conversion-measurement-api.inc diff --git a/android_webview/browser/aw_content_browser_client.cc b/android_webview/browser/aw_content_browser_client.cc --- a/android_webview/browser/aw_content_browser_client.cc +++ b/android_webview/browser/aw_content_browser_client.cc -@@ -1246,6 +1246,7 @@ network::mojom::AttributionSupport +@@ -1277,6 +1277,7 @@ network::mojom::AttributionSupport AwContentBrowserClient::GetAttributionSupport( AttributionReportingOsApiState state, bool client_os_disabled) { @@ -56,7 +52,7 @@ diff --git a/android_webview/browser/aw_content_browser_client.cc b/android_webv // WebView only supports OS-level attribution and not web-attribution. switch (state) { case AttributionReportingOsApiState::kDisabled: -@@ -1264,6 +1265,8 @@ bool AwContentBrowserClient::IsAttributionReportingOperationAllowed( +@@ -1295,6 +1296,8 @@ bool AwContentBrowserClient::IsAttributionReportingOperationAllowed( const url::Origin* destination_origin, const url::Origin* reporting_origin, bool* can_bypass) { @@ -77,7 +73,7 @@ diff --git a/android_webview/java/src/org/chromium/android_webview/AwSettings.ja @SpeculativeLoadingAllowedFlags private int mSpeculativeLoadingAllowedFlags = -@@ -1773,7 +1773,7 @@ public class AwSettings { +@@ -1781,7 +1781,7 @@ public class AwSettings { public void setAttributionBehavior(@AttributionBehavior int behavior) { synchronized (mAwSettingsLock) { if (mAttributionBehavior != behavior) { @@ -110,7 +106,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro diff --git a/components/attribution_reporting/aggregatable_trigger_config.cc b/components/attribution_reporting/aggregatable_trigger_config.cc --- a/components/attribution_reporting/aggregatable_trigger_config.cc +++ b/components/attribution_reporting/aggregatable_trigger_config.cc -@@ -86,7 +86,7 @@ bool IsValid(SourceRegistrationTimeConfig source_registration_time_config, +@@ -109,7 +109,7 @@ bool IsValid(SourceRegistrationTimeConfig source_registration_time_config, base::expected, TriggerRegistrationError> ParseTriggerContextId(base::Value* value) { @@ -122,9 +118,9 @@ diff --git a/components/attribution_reporting/aggregatable_trigger_config.cc b/c diff --git a/components/attribution_reporting/features.cc b/components/attribution_reporting/features.cc --- a/components/attribution_reporting/features.cc +++ b/components/attribution_reporting/features.cc -@@ -17,4 +17,5 @@ BASE_FEATURE(kAttributionAggregatableDebugReporting, - "AttributionAggregatableDebugReporting", - base::FEATURE_ENABLED_BY_DEFAULT); +@@ -29,4 +29,5 @@ BASE_FEATURE(kAttributionScopes, + "AttributionScopes", + base::FEATURE_DISABLED_BY_DEFAULT); +SET_CROMITE_FEATURE_DISABLED(kConversionMeasurement); } // namespace attribution_reporting::features @@ -154,7 +150,7 @@ diff --git a/components/renderer_context_menu/render_view_context_menu_base.cc b diff --git a/content/browser/aggregation_service/aggregatable_report_sender.cc b/content/browser/aggregation_service/aggregatable_report_sender.cc --- a/content/browser/aggregation_service/aggregatable_report_sender.cc +++ b/content/browser/aggregation_service/aggregatable_report_sender.cc -@@ -138,19 +138,18 @@ void AggregatableReportSender::SendReport(const GURL& url, +@@ -180,20 +180,19 @@ void AggregatableReportSender::SendReport(const GURL& url, // Allow bodies of non-2xx responses to be returned. simple_url_loader_ptr->SetAllowHttpErrorResults(true); @@ -163,24 +159,25 @@ diff --git a/content/browser/aggregation_service/aggregatable_report_sender.cc b - simple_url_loader_ptr->DownloadHeadersOnly( - url_loader_factory_.get(), - base::BindOnce(&AggregatableReportSender::OnReportSent, -- base::Unretained(this), std::move(it), -- std::move(callback))); +- base::Unretained(this), std::move(it), std::move(callback), +- delay_type)); + // this is never called on Bromite but nothing would be sent if it were -+ OnReportSent(std::move(it), std::move(callback), nullptr); ++ OnReportSent(std::move(it), std::move(callback), delay_type, nullptr); } void AggregatableReportSender::OnReportSent( UrlLoaderList::iterator it, ReportSentCallback callback, + std::optional delay_type, - scoped_refptr headers) { + scoped_refptr headers) { // disable in Bromite + if ((true)) { + std::move(callback).Run(RequestStatus::kOk); + return; + } - RequestStatus status; - std::optional http_response_code; + if (headers) { + http_response_code = headers->response_code(); diff --git a/content/browser/aggregation_service/aggregation_service_features.cc b/content/browser/aggregation_service/aggregation_service_features.cc --- a/content/browser/aggregation_service/aggregation_service_features.cc +++ b/content/browser/aggregation_service/aggregation_service_features.cc @@ -193,7 +190,7 @@ diff --git a/content/browser/aggregation_service/aggregation_service_features.cc diff --git a/content/browser/attribution_reporting/attribution_data_host_manager_impl.cc b/content/browser/attribution_reporting/attribution_data_host_manager_impl.cc --- a/content/browser/attribution_reporting/attribution_data_host_manager_impl.cc +++ b/content/browser/attribution_reporting/attribution_data_host_manager_impl.cc -@@ -1134,6 +1134,7 @@ void AttributionDataHostManagerImpl::ParseHeader( +@@ -1132,6 +1132,7 @@ void AttributionDataHostManagerImpl::ParseHeader( HeaderPendingDecode pending_decode, Registrar registrar) { CHECK(it != registrations_.end()); @@ -204,7 +201,7 @@ diff --git a/content/browser/attribution_reporting/attribution_data_host_manager diff --git a/content/browser/attribution_reporting/attribution_host.cc b/content/browser/attribution_reporting/attribution_host.cc --- a/content/browser/attribution_reporting/attribution_host.cc +++ b/content/browser/attribution_reporting/attribution_host.cc -@@ -258,6 +258,7 @@ void AttributionHost::NotifyNavigationRegistrationData( +@@ -257,6 +257,7 @@ void AttributionHost::NotifyNavigationRegistrationData( return; } @@ -236,23 +233,23 @@ diff --git a/content/browser/attribution_reporting/attribution_report_network_se --- a/content/browser/attribution_reporting/attribution_report_network_sender.cc +++ b/content/browser/attribution_reporting/attribution_report_network_sender.cc @@ -125,6 +125,9 @@ void AttributionReportNetworkSender::SendReport(GURL url, + url::Origin origin, const std::string& body, - net::HttpRequestHeaders headers, UrlLoaderCallback callback) { + // this is never called on Bromite but nothing would be sent if it were + if ((true)) return; + auto resource_request = std::make_unique(); resource_request->url = std::move(url); - resource_request->headers = std::move(headers); -@@ -200,6 +203,12 @@ void AttributionReportNetworkSender::OnReportSent( + resource_request->method = net::HttpRequestHeaders::kPostMethod; +@@ -199,6 +202,12 @@ void AttributionReportNetworkSender::OnReportSent( ReportSentCallback sent_callback, UrlLoaderList::iterator it, scoped_refptr headers) { + if ((true)) { + std::move(sent_callback) -+ .Run(std::move(report), -+ SendResult(SendResult::Status::kSent, headers ? headers->response_code() : 200)); ++ .Run(report, ++ SendResult::Sent(SendResult::Sent::Result::kSent, 200)); + return; + } network::SimpleURLLoader* loader = it->get(); @@ -261,7 +258,7 @@ diff --git a/content/browser/attribution_reporting/attribution_report_network_se diff --git a/content/browser/attribution_reporting/attribution_storage_sql.cc b/content/browser/attribution_reporting/attribution_storage_sql.cc --- a/content/browser/attribution_reporting/attribution_storage_sql.cc +++ b/content/browser/attribution_reporting/attribution_storage_sql.cc -@@ -471,14 +471,16 @@ base::FilePath DatabasePath(const base::FilePath& user_data_directory) { +@@ -489,6 +489,8 @@ base::FilePath DatabasePath(const base::FilePath& user_data_directory) { return user_data_directory.Append(kDatabasePath); } @@ -269,6 +266,8 @@ diff --git a/content/browser/attribution_reporting/attribution_storage_sql.cc b/ + } // namespace + // static +@@ -511,9 +513,9 @@ bool AttributionStorageSql::Transaction::Commit() { AttributionStorageSql::AttributionStorageSql( const base::FilePath& user_data_directory, AttributionResolverDelegate* delegate) @@ -284,7 +283,7 @@ diff --git a/content/browser/attribution_reporting/attribution_storage_sql.cc b/ 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,15 +1488,6 @@ void StoragePartitionImpl::Initialize( +@@ -1428,15 +1428,6 @@ void StoragePartitionImpl::Initialize( bucket_manager_ = std::make_unique(this); @@ -303,7 +302,7 @@ diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage diff --git a/content/public/android/BUILD.gn b/content/public/android/BUILD.gn --- a/content/public/android/BUILD.gn +++ b/content/public/android/BUILD.gn -@@ -189,8 +189,6 @@ android_library("content_full_java") { +@@ -196,8 +196,6 @@ android_library("content_full_java") { "//third_party/androidx:androidx_appcompat_appcompat_resources_java", "//third_party/androidx:androidx_collection_collection_java", "//third_party/androidx:androidx_core_core_java", @@ -777,7 +776,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/Attrib diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc --- a/content/public/browser/content_browser_client.cc +++ b/content/public/browser/content_browser_client.cc -@@ -550,6 +550,7 @@ void ContentBrowserClient::OnAuctionComplete( +@@ -561,6 +561,7 @@ void ContentBrowserClient::OnAuctionComplete( network::mojom::AttributionSupport ContentBrowserClient::GetAttributionSupport( AttributionReportingOsApiState state, bool client_os_disabled) { @@ -785,7 +784,7 @@ diff --git a/content/public/browser/content_browser_client.cc b/content/public/b switch (state) { case AttributionReportingOsApiState::kDisabled: return network::mojom::AttributionSupport::kWeb; -@@ -567,13 +568,13 @@ bool ContentBrowserClient::IsAttributionReportingOperationAllowed( +@@ -578,13 +579,13 @@ bool ContentBrowserClient::IsAttributionReportingOperationAllowed( const url::Origin* destination_origin, const url::Origin* reporting_origin, bool* can_bypass) { @@ -801,7 +800,7 @@ diff --git a/content/public/browser/content_browser_client.cc b/content/public/b } bool ContentBrowserClient::IsAttributionReportingAllowedForContext( -@@ -581,7 +582,7 @@ bool ContentBrowserClient::IsAttributionReportingAllowedForContext( +@@ -592,7 +593,7 @@ bool ContentBrowserClient::IsAttributionReportingAllowedForContext( content::RenderFrameHost* rfh, const url::Origin& context_origin, const url::Origin& reporting_origin) { @@ -818,27 +817,17 @@ diff --git a/content/public/browser/navigation_controller.cc b/content/public/br href_translate(input.href_translate), reload_type(input.reload_type), - impression(input.impression), - is_pdf(input.is_pdf) { + is_pdf(input.is_pdf), + has_rel_opener(input.has_rel_opener) { #if DCHECK_IS_ON() - DCHECK(input.Valid()); -diff --git a/cromite_flags/content/common/features_cc/Disable-conversion-measurement-api.inc b/cromite_flags/content/common/features_cc/Disable-conversion-measurement-api.inc -new file mode 100644 ---- /dev/null -+++ b/cromite_flags/content/common/features_cc/Disable-conversion-measurement-api.inc -@@ -0,0 +1 @@ -+SET_CROMITE_FEATURE_DISABLED(kAttributionReportingCrossAppWebOverride); -diff --git a/cromite_flags/content/public/common/content_features_cc/Disable-conversion-measurement-api.inc b/cromite_flags/content/public/common/content_features_cc/Disable-conversion-measurement-api.inc -new file mode 100644 ---- /dev/null -+++ b/cromite_flags/content/public/common/content_features_cc/Disable-conversion-measurement-api.inc -@@ -0,0 +1 @@ -+SET_CROMITE_FEATURE_DISABLED(kPrivacySandboxAdsAPIsOverride); diff --git a/cromite_flags/services/network/public/cpp/features_cc/Disable-conversion-measurement-api.inc b/cromite_flags/services/network/public/cpp/features_cc/Disable-conversion-measurement-api.inc new file mode 100644 --- /dev/null +++ b/cromite_flags/services/network/public/cpp/features_cc/Disable-conversion-measurement-api.inc -@@ -0,0 +1 @@ +@@ -0,0 +1,3 @@ +SET_CROMITE_FEATURE_DISABLED(kAttributionReportingCrossAppWeb); ++SET_CROMITE_FEATURE_DISABLED(kPrivateStateTokens); ++SET_CROMITE_FEATURE_DISABLED(kFledgePst); diff --git a/cromite_flags/third_party/blink/common/features_cc/Disable-conversion-measurement-api.inc b/cromite_flags/third_party/blink/common/features_cc/Disable-conversion-measurement-api.inc new file mode 100644 --- /dev/null @@ -849,9 +838,9 @@ new file mode 100644 +SET_CROMITE_FEATURE_DISABLED(kBrowsingTopics); +SET_CROMITE_FEATURE_DISABLED(kBrowsingTopicsDocumentAPI); +SET_CROMITE_FEATURE_DISABLED(kBrowsingTopicsParameters); ++SET_CROMITE_FEATURE_DISABLED(kFledge); +SET_CROMITE_FEATURE_DISABLED(kFledgeBiddingAndAuctionServer); +SET_CROMITE_FEATURE_DISABLED(kInterestGroupStorage); -+SET_CROMITE_FEATURE_DISABLED(kPrivacySandboxAdsAPIs); +SET_CROMITE_FEATURE_DISABLED(kPrivateAggregationApi); diff --git a/services/network/attribution/request_headers_internal.cc b/services/network/attribution/request_headers_internal.cc --- a/services/network/attribution/request_headers_internal.cc @@ -867,7 +856,7 @@ diff --git a/services/network/attribution/request_headers_internal.cc b/services diff --git a/services/network/public/cpp/attribution_utils.cc b/services/network/public/cpp/attribution_utils.cc --- a/services/network/public/cpp/attribution_utils.cc +++ b/services/network/public/cpp/attribution_utils.cc -@@ -9,6 +9,7 @@ +@@ -10,6 +10,7 @@ namespace network { bool HasAttributionOsSupport(mojom::AttributionSupport attribution_support) { @@ -875,7 +864,7 @@ diff --git a/services/network/public/cpp/attribution_utils.cc b/services/network switch (attribution_support) { case mojom::AttributionSupport::kOs: case mojom::AttributionSupport::kWebAndOs: -@@ -20,6 +21,7 @@ bool HasAttributionOsSupport(mojom::AttributionSupport attribution_support) { +@@ -23,6 +24,7 @@ bool HasAttributionOsSupport(mojom::AttributionSupport attribution_support) { } bool HasAttributionWebSupport(mojom::AttributionSupport attribution_support) { @@ -886,7 +875,7 @@ diff --git a/services/network/public/cpp/attribution_utils.cc b/services/network diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/renderer/core/page/page.cc --- a/third_party/blink/renderer/core/page/page.cc +++ b/third_party/blink/renderer/core/page/page.cc -@@ -1436,7 +1436,7 @@ void Page::UpdateBrowsingContextGroup( +@@ -1543,7 +1543,7 @@ void Page::UpdateBrowsingContextGroup( void Page::SetAttributionSupport( network::mojom::AttributionSupport attribution_support) { @@ -898,14 +887,51 @@ diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/re 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 -@@ -4022,6 +4022,7 @@ +@@ -279,7 +279,7 @@ + { + // Interest Group JS API/runtimeflag. + name: "AdInterestGroupAPI", +- status: "stable", ++ status: "experimental", + origin_trial_feature_name: "AdInterestGroupAPI", + implied_by: ["Fledge", "Parakeet"], + public: true, +@@ -368,15 +368,15 @@ + }, + { + name: "AttributionReporting", +- status: "stable", ++ status: "experimental", + base_feature: "none", + public: true, + }, + { + name: "AttributionReportingCrossAppWeb", ++ status: "experimental", + base_feature: "none", + public: true, +- status: "stable", + }, + { + // This only exists so we can use RuntimeEnabled in the IDL file +@@ -4097,15 +4097,15 @@ }, { name: "TopicsAPI", + status: "experimental", base_feature: "none", - origin_trial_feature_name: "PrivacySandboxAdsAPIs", - origin_trial_allows_third_party: true, + public: true, +- status: "stable", + }, + { + name: "TopicsDocumentAPI", ++ status: "experimental", + base_feature: "none", + public: true, +- status: "stable", + }, + { + name: "TopLevelTpcd", diff --git a/ui/events/android/motion_event_android.cc b/ui/events/android/motion_event_android.cc --- a/ui/events/android/motion_event_android.cc +++ b/ui/events/android/motion_event_android.cc diff --git a/build/patches/Disable-crash-reporting.patch b/build/patches/Disable-crash-reporting.patch index b6f61e3c..7ad5f816 100644 --- a/build/patches/Disable-crash-reporting.patch +++ b/build/patches/Disable-crash-reporting.patch @@ -11,7 +11,7 @@ Subject: Disable crash reporting diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -2584,15 +2584,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( +@@ -2715,15 +2715,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( base::NumberToString(pid)); } #endif diff --git a/build/patches/Disable-csp-reports.patch b/build/patches/Disable-csp-reports.patch index 5bf1019e..102266ca 100644 --- a/build/patches/Disable-csp-reports.patch +++ b/build/patches/Disable-csp-reports.patch @@ -1,7 +1,8 @@ -From: Your Name +From: uazo Date: Sun, 26 Feb 2023 19:46:04 +0000 Subject: Disable csp reports +License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- third_party/blink/renderer/core/loader/ping_loader.cc | 3 +++ 1 file changed, 3 insertions(+) @@ -25,10 +26,10 @@ diff --git a/third_party/blink/renderer/core/loader/ping_loader.cc b/third_party if (!ping_url.ProtocolIsInHTTPFamily()) return; -@@ -147,6 +149,7 @@ void PingLoader::SendLinkAuditPing(LocalFrame* frame, - void PingLoader::SendViolationReport(ExecutionContext* execution_context, +@@ -148,6 +150,7 @@ void PingLoader::SendViolationReport(ExecutionContext* execution_context, const KURL& report_url, - scoped_refptr report) { + scoped_refptr report, + bool is_frame_ancestors_violation) { + if ((true)) return; ResourceRequest request(report_url); request.SetHttpMethod(http_names::kPOST); diff --git a/build/patches/Disable-feeds-support-by-default.patch b/build/patches/Disable-feeds-support-by-default.patch index 48459cfa..d9d29b91 100644 --- a/build/patches/Disable-feeds-support-by-default.patch +++ b/build/patches/Disable-feeds-support-by-default.patch @@ -6,16 +6,15 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- chrome/browser/BUILD.gn | 9 +++++++++ chrome/browser/feed/android/web_feed_bridge.cc | 18 ++++++++++++++++++ - chrome/browser/prefs/browser_prefs.cc | 4 ++-- - components/feed/core/common/pref_names.cc | 13 +------------ + chrome/browser/prefs/browser_prefs.cc | 10 +++++----- .../feed/core/shared_prefs/pref_names.cc | 2 +- components/feed/feed_feature_list.cc | 3 +++ - 6 files changed, 34 insertions(+), 15 deletions(-) + 5 files changed, 36 insertions(+), 6 deletions(-) diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -2663,6 +2663,15 @@ static_library("browser") { +@@ -2658,6 +2658,15 @@ static_library("browser") { ] } @@ -42,7 +41,7 @@ diff --git a/chrome/browser/feed/android/web_feed_bridge.cc b/chrome/browser/fee #include "components/feed/core/v2/config.h" #include "components/feed/core/v2/public/feed_service.h" #include "components/feed/core/v2/public/types.h" -@@ -80,10 +81,14 @@ base::android::ScopedJavaLocalRef ToJavaWebFeedId( +@@ -81,10 +82,14 @@ base::android::ScopedJavaLocalRef ToJavaWebFeedId( } WebFeedSubscriptions* GetSubscriptions() { @@ -57,7 +56,7 @@ diff --git a/chrome/browser/feed/android/web_feed_bridge.cc b/chrome/browser/fee } FeedApi* GetStream() { -@@ -219,10 +224,14 @@ static void JNI_WebFeedBridge_FollowWebFeed( +@@ -220,10 +225,14 @@ static void JNI_WebFeedBridge_FollowWebFeed( return; } @@ -72,7 +71,7 @@ diff --git a/chrome/browser/feed/android/web_feed_bridge.cc b/chrome/browser/fee } static jboolean JNI_WebFeedBridge_IsCormorantEnabledForLocale(JNIEnv* env) { -@@ -266,11 +275,16 @@ static void JNI_WebFeedBridge_UnfollowWebFeed( +@@ -264,11 +273,16 @@ static void JNI_WebFeedBridge_UnfollowWebFeed( auto callback = AdaptCallbackForJava( env, j_callback); @@ -89,7 +88,7 @@ diff --git a/chrome/browser/feed/android/web_feed_bridge.cc b/chrome/browser/fee } static void JNI_WebFeedBridge_FindWebFeedInfoForPage( -@@ -282,6 +296,7 @@ static void JNI_WebFeedBridge_FindWebFeedInfoForPage( +@@ -280,6 +294,7 @@ static void JNI_WebFeedBridge_FindWebFeedInfoForPage( AdaptCallbackForJava(env, j_callback); PageInformation page_info = ToNativePageInformation(env, pageInfo); @@ -97,7 +96,7 @@ diff --git a/chrome/browser/feed/android/web_feed_bridge.cc b/chrome/browser/fee // Make sure web_contents is not NULL since the user might navigate away from // the current tab that is requested to find info. if (!page_info.web_contents) { -@@ -292,6 +307,9 @@ static void JNI_WebFeedBridge_FindWebFeedInfoForPage( +@@ -290,6 +305,9 @@ static void JNI_WebFeedBridge_FindWebFeedInfoForPage( page_info.web_contents, static_cast(reason), std::move(callback)); @@ -110,7 +109,21 @@ diff --git a/chrome/browser/feed/android/web_feed_bridge.cc b/chrome/browser/fee 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 -@@ -2109,10 +2109,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -251,11 +251,11 @@ + #endif + + #include "components/feed/buildflags.h" +-#if BUILDFLAG(ENABLE_FEED_V2) ++//#if BUILDFLAG(ENABLE_FEED_V2) + #include "components/feed/core/common/pref_names.h" // nogncheck + #include "components/feed/core/shared_prefs/pref_names.h" // nogncheck + #include "components/feed/core/v2/ios_shared_prefs.h" // nogncheck +-#endif ++//#endif + + #if BUILDFLAG(IS_ANDROID) + #include "chrome/browser/accessibility/accessibility_prefs/android/accessibility_prefs_controller.h" +@@ -1898,10 +1898,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, ChromeRLZTrackerDelegate::RegisterProfilePrefs(registry); #endif @@ -123,29 +136,15 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse #if BUILDFLAG(IS_ANDROID) cdm::MediaDrmStorageImpl::RegisterProfilePrefs(registry); -diff --git a/components/feed/core/common/pref_names.cc b/components/feed/core/common/pref_names.cc ---- a/components/feed/core/common/pref_names.cc -+++ b/components/feed/core/common/pref_names.cc -@@ -107,18 +107,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { - } - - void MigrateObsoleteProfilePrefsOct_2022(PrefService* prefs) { -- const base::Value* val = -- prefs->GetUserPrefValue(prefs::kExperimentsDeprecated); -- const base::Value::Dict* old = val ? val->GetIfDict() : nullptr; -- if (old) { -- base::Value::Dict dict; -- for (const auto kv : *old) { -- base::Value::List list; -- list.Append(kv.second.GetString()); -- dict.Set(kv.first, std::move(list)); -- } -- prefs->SetDict(feed::prefs::kExperimentsV2, std::move(dict)); -- } -+ prefs->ClearPref(feed::prefs::kExperimentsV2); - prefs->ClearPref(prefs::kExperimentsDeprecated); - } +@@ -2688,7 +2688,7 @@ void MigrateObsoleteProfilePrefs(PrefService* profile_prefs, + syncer::SyncPrefs::MaybeMigrateAutofillToPerAccountPref(profile_prefs); + #endif // !BUILDFLAG(IS_ANDROID) +-#if BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(IS_ANDROID) && BUILDFLAG(ENABLE_FEED_V2) + // Added 06/2024 + feed::prefs::MigrateObsoleteFeedExperimentPref_Jun_2024(profile_prefs); + #endif // BUILDFLAG(IS_ANDROID) diff --git a/components/feed/core/shared_prefs/pref_names.cc b/components/feed/core/shared_prefs/pref_names.cc --- a/components/feed/core/shared_prefs/pref_names.cc +++ b/components/feed/core/shared_prefs/pref_names.cc @@ -161,7 +160,7 @@ diff --git a/components/feed/core/shared_prefs/pref_names.cc b/components/feed/c diff --git a/components/feed/feed_feature_list.cc b/components/feed/feed_feature_list.cc --- a/components/feed/feed_feature_list.cc +++ b/components/feed/feed_feature_list.cc -@@ -161,4 +161,7 @@ bool IsWebFeedEnabledForLocale(const std::string& country) { +@@ -150,4 +150,7 @@ bool IsWebFeedEnabledForLocale(const std::string& country) { !base::FeatureList::IsEnabled(kWebFeedKillSwitch); } diff --git a/build/patches/Disable-fetching-of-all-field-trials.patch b/build/patches/Disable-fetching-of-all-field-trials.patch index feb48d8d..6440902f 100644 --- a/build/patches/Disable-fetching-of-all-field-trials.patch +++ b/build/patches/Disable-fetching-of-all-field-trials.patch @@ -93,7 +93,7 @@ diff --git a/android_webview/nonembedded/java/src/org/chromium/android_webview/s diff --git a/android_webview/nonembedded/java/src/org/chromium/android_webview/services/SafeModeVariationsSeedContentProvider.java b/android_webview/nonembedded/java/src/org/chromium/android_webview/services/SafeModeVariationsSeedContentProvider.java --- a/android_webview/nonembedded/java/src/org/chromium/android_webview/services/SafeModeVariationsSeedContentProvider.java +++ b/android_webview/nonembedded/java/src/org/chromium/android_webview/services/SafeModeVariationsSeedContentProvider.java -@@ -88,11 +88,6 @@ public class SafeModeVariationsSeedContentProvider extends ContentProvider { +@@ -86,11 +86,6 @@ public class SafeModeVariationsSeedContentProvider extends ContentProvider { private Boolean awaitSeedResults() { CountDownLatch countDownLatch = new CountDownLatch(1); @@ -141,7 +141,7 @@ diff --git a/chrome/browser/metrics/chrome_browser_sampling_trials.cc b/chrome/b diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc --- a/chrome/browser/net/system_network_context_manager.cc +++ b/chrome/browser/net/system_network_context_manager.cc -@@ -856,7 +856,6 @@ void SystemNetworkContextManager::AddSSLConfigToNetworkContextParams( +@@ -836,7 +836,6 @@ void SystemNetworkContextManager::AddSSLConfigToNetworkContextParams( void SystemNetworkContextManager::ConfigureDefaultNetworkContextParams( network::mojom::NetworkContextParams* network_context_params) { @@ -177,7 +177,7 @@ diff --git a/components/variations/android/java/src/org/chromium/components/vari diff --git a/components/variations/android/java/src/org/chromium/components/variations/firstrun/VariationsSeedFetcher.java b/components/variations/android/java/src/org/chromium/components/variations/firstrun/VariationsSeedFetcher.java --- a/components/variations/android/java/src/org/chromium/components/variations/firstrun/VariationsSeedFetcher.java +++ b/components/variations/android/java/src/org/chromium/components/variations/firstrun/VariationsSeedFetcher.java -@@ -469,39 +469,13 @@ public class VariationsSeedFetcher { +@@ -472,39 +472,13 @@ public class VariationsSeedFetcher { */ public void fetchSeed(String restrictMode, String milestone, String channel) { assert !ThreadUtils.runningOnUiThread(); @@ -221,7 +221,7 @@ diff --git a/components/variations/android/java/src/org/chromium/components/vari } private void recordFetchResultOrCode(int resultOrCode) { -@@ -553,7 +527,7 @@ public class VariationsSeedFetcher { +@@ -556,7 +530,7 @@ public class VariationsSeedFetcher { * @param curSeedInfo optional currently saved seed info to set the `If-None-Match` header. * @return the object holds the request result and seed data with its related header fields. */ @@ -352,7 +352,7 @@ diff --git a/content/browser/loader/url_loader_throttles.cc b/content/browser/lo ClientHintsControllerDelegate* client_hint_delegate = browser_context->GetClientHintsControllerDelegate(); -@@ -137,11 +135,6 @@ CreateContentBrowserURLLoaderThrottlesForKeepAlive( +@@ -138,11 +136,6 @@ CreateContentBrowserURLLoaderThrottlesForKeepAlive( GetContentClient()->browser()->CreateURLLoaderThrottlesForKeepAlive( request, browser_context, wc_getter, frame_tree_node_id); variations::OmniboxURLLoaderThrottle::AppendThrottleIfNeeded(&throttles); @@ -404,7 +404,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc --- a/third_party/blink/renderer/core/loader/document_loader.cc +++ b/third_party/blink/renderer/core/loader/document_loader.cc -@@ -202,13 +202,6 @@ WebVector CopyInitiatorOriginTrials( +@@ -205,13 +205,6 @@ WebVector CopyInitiatorOriginTrials( const Vector& initiator_origin_trial_features) { WebVector result; diff --git a/build/patches/Disable-idle-detection.patch b/build/patches/Disable-idle-detection.patch index db409f60..398ca6d0 100644 --- a/build/patches/Disable-idle-detection.patch +++ b/build/patches/Disable-idle-detection.patch @@ -31,7 +31,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/core/permissions_policy/permissions_policy_features.json5 b/third_party/blink/renderer/core/permissions_policy/permissions_policy_features.json5 --- a/third_party/blink/renderer/core/permissions_policy/permissions_policy_features.json5 +++ b/third_party/blink/renderer/core/permissions_policy/permissions_policy_features.json5 -@@ -297,6 +297,7 @@ +@@ -302,6 +302,7 @@ { name: "IdleDetection", permissions_policy_name: "idle-detection", @@ -55,7 +55,7 @@ diff --git a/third_party/blink/renderer/modules/idle/idle_detector.idl b/third_p 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 -@@ -2094,6 +2094,11 @@ +@@ -2225,6 +2225,11 @@ name: "IgnoresCSSTextTransformsForPlainTextCopy", status: "stable", }, diff --git a/build/patches/Disable-lock-icon-in-address-bar-by-default.patch b/build/patches/Disable-lock-icon-in-address-bar-by-default.patch index 083de5a7..e3c33b06 100644 --- a/build/patches/Disable-lock-icon-in-address-bar-by-default.patch +++ b/build/patches/Disable-lock-icon-in-address-bar-by-default.patch @@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/components/omnibox/common/omnibox_features.cc b/components/omnibox/common/omnibox_features.cc --- a/components/omnibox/common/omnibox_features.cc +++ b/components/omnibox/common/omnibox_features.cc -@@ -393,8 +393,8 @@ BASE_FEATURE(kOmniboxSteadyStateTextColor, +@@ -383,8 +383,8 @@ BASE_FEATURE(kOmniboxSteadyStateTextColor, // used, on non-Android platforms this is controlled through the // ChromeRefresh2023 flag. BASE_FEATURE(kUpdatedConnectionSecurityIndicators, diff --git a/build/patches/Disable-media-router-and-remoting-by-default.patch b/build/patches/Disable-media-router-and-remoting-by-default.patch index 437525ec..8d9c4ddd 100644 --- a/build/patches/Disable-media-router-and-remoting-by-default.patch +++ b/build/patches/Disable-media-router-and-remoting-by-default.patch @@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browser/media/router/media_router_feature.cc --- a/chrome/browser/media/router/media_router_feature.cc +++ b/chrome/browser/media/router/media_router_feature.cc -@@ -110,6 +110,7 @@ void ClearMediaRouterStoredPrefsForTesting() { +@@ -119,6 +119,7 @@ void ClearMediaRouterStoredPrefsForTesting() { } bool MediaRouterEnabled(content::BrowserContext* context) { @@ -23,7 +23,7 @@ diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browse #if !BUILDFLAG(IS_ANDROID) if (!base::FeatureList::IsEnabled(kMediaRouter)) return false; -@@ -152,7 +153,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { +@@ -161,7 +162,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { registry->RegisterStringPref(prefs::kMediaRouterReceiverIdHashToken, "", PrefRegistry::PUBLIC); registry->RegisterBooleanPref( @@ -32,7 +32,7 @@ diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browse registry->RegisterBooleanPref( media_router::prefs::kMediaRouterShowCastSessionsStartedByOtherDevices, true); -@@ -223,4 +224,7 @@ std::optional GetCastMirroringPlayoutDelay() { +@@ -232,4 +233,7 @@ std::optional GetCastMirroringPlayoutDelay() { #endif // !BUILDFLAG(IS_ANDROID) @@ -43,7 +43,7 @@ diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browse diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc --- a/chrome/browser/profiles/profile_impl.cc +++ b/chrome/browser/profiles/profile_impl.cc -@@ -423,7 +423,7 @@ void ProfileImpl::RegisterProfilePrefs( +@@ -424,7 +424,7 @@ void ProfileImpl::RegisterProfilePrefs( #endif registry->RegisterBooleanPref(prefs::kForceEphemeralProfiles, false); @@ -55,7 +55,7 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p 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 -@@ -572,6 +572,8 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs( +@@ -569,6 +569,8 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs( WebRuntimeFeatures::EnableBackForwardCache( content::IsBackForwardCacheEnabled()); @@ -79,7 +79,7 @@ diff --git a/third_party/blink/renderer/modules/remoteplayback/remote_playback.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 -@@ -3280,14 +3280,10 @@ +@@ -3370,14 +3370,10 @@ base_feature: "none", }, { diff --git a/build/patches/Disable-plugins-enumeration.patch b/build/patches/Disable-plugins-enumeration.patch index 2f11d87c..6df8f638 100644 --- a/build/patches/Disable-plugins-enumeration.patch +++ b/build/patches/Disable-plugins-enumeration.patch @@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc -@@ -2256,9 +2256,7 @@ WebContentSettingsClient* LocalFrame::GetContentSettingsClient() { +@@ -2260,9 +2260,7 @@ WebContentSettingsClient* LocalFrame::GetContentSettingsClient() { } PluginData* LocalFrame::GetPluginData() const { diff --git a/build/patches/Disable-prefers-reduced-transparency-media-query.patch b/build/patches/Disable-prefers-reduced-transparency-media-query.patch index 74789452..3acf84ec 100644 --- a/build/patches/Disable-prefers-reduced-transparency-media-query.patch +++ b/build/patches/Disable-prefers-reduced-transparency-media-query.patch @@ -13,7 +13,7 @@ This feature can be used for fingerprinting as it exposes a user preference diff --git a/third_party/blink/renderer/core/css/media_query_exp.cc b/third_party/blink/renderer/core/css/media_query_exp.cc --- a/third_party/blink/renderer/core/css/media_query_exp.cc +++ b/third_party/blink/renderer/core/css/media_query_exp.cc -@@ -115,7 +115,8 @@ static inline bool FeatureWithValidIdent(const String& media_feature, +@@ -120,7 +120,8 @@ static inline bool FeatureWithValidIdent(const String& media_feature, ident == CSSValueID::kLess || ident == CSSValueID::kCustom; } @@ -51,7 +51,7 @@ diff --git a/third_party/blink/renderer/core/preferences/preference_manager.idl 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 -@@ -3097,6 +3097,10 @@ +@@ -3191,6 +3191,10 @@ name: "PrefersReducedData", status: "experimental", }, diff --git a/build/patches/Disable-privacy-issues-in-password-manager.patch b/build/patches/Disable-privacy-issues-in-password-manager.patch index 2de8e0a8..551d4b8c 100644 --- a/build/patches/Disable-privacy-issues-in-password-manager.patch +++ b/build/patches/Disable-privacy-issues-in-password-manager.patch @@ -6,16 +6,18 @@ Need: Add-cromite-flags-support.patch License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- chrome/android/java/AndroidManifest.xml | 9 --------- - ...sword_store_android_backend_dispatcher_bridge_impl.cc | 1 + + .../password_store_android_backend_bridge_helper_impl.cc | 1 + .../android/password_store_android_local_backend.cc | 2 +- .../generated_password_leak_detection_pref.cc | 3 +-- + .../password_receiver_service_factory.cc | 2 +- + .../password_manager/password_sender_service_factory.cc | 2 +- .../affiliations/core/browser/affiliation_backend.cc | 1 + .../core/browser/affiliation_service_impl.cc | 4 ++++ components/affiliations/core/browser/facet_manager.cc | 4 ++++ .../leak_detection/leak_detection_check_factory_impl.cc | 5 +++++ .../browser/leak_detection/leak_detection_check_impl.cc | 3 +-- - .../Disable-privacy-issues-in-password-manager.inc | 3 +++ - 10 files changed, 21 insertions(+), 14 deletions(-) + .../Disable-privacy-issues-in-password-manager.inc | 1 + + 12 files changed, 21 insertions(+), 16 deletions(-) create mode 100644 cromite_flags/components/password_manager/core/browser/features/password_features_cc/Disable-privacy-issues-in-password-manager.inc diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml @@ -37,12 +39,12 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -diff --git a/chrome/browser/password_manager/android/password_store_android_backend_dispatcher_bridge_impl.cc b/chrome/browser/password_manager/android/password_store_android_backend_dispatcher_bridge_impl.cc ---- a/chrome/browser/password_manager/android/password_store_android_backend_dispatcher_bridge_impl.cc -+++ b/chrome/browser/password_manager/android/password_store_android_backend_dispatcher_bridge_impl.cc -@@ -66,6 +66,7 @@ bool PasswordStoreAndroidBackendDispatcherBridge:: +diff --git a/chrome/browser/password_manager/android/password_store_android_backend_bridge_helper_impl.cc b/chrome/browser/password_manager/android/password_store_android_backend_bridge_helper_impl.cc +--- a/chrome/browser/password_manager/android/password_store_android_backend_bridge_helper_impl.cc ++++ b/chrome/browser/password_manager/android/password_store_android_backend_bridge_helper_impl.cc +@@ -102,6 +102,7 @@ bool PasswordStoreAndroidBackendBridgeHelperImpl:: - bool PasswordStoreAndroidBackendDispatcherBridge:: + bool PasswordStoreAndroidBackendBridgeHelperImpl:: CanUseGetAllLoginsWithBrandingInfoAPI() { + if ((true)) return false; base::android::BuildInfo* info = base::android::BuildInfo::GetInstance(); @@ -73,6 +75,30 @@ diff --git a/chrome/browser/password_manager/generated_password_leak_detection_p } // Returns whether the effective value of the Safe Browsing preferences for +diff --git a/chrome/browser/password_manager/password_receiver_service_factory.cc b/chrome/browser/password_manager/password_receiver_service_factory.cc +--- a/chrome/browser/password_manager/password_receiver_service_factory.cc ++++ b/chrome/browser/password_manager/password_receiver_service_factory.cc +@@ -55,7 +55,7 @@ PasswordReceiverServiceFactory::BuildServiceInstanceForBrowserContext( + content::BrowserContext* context) const { + // Password receiving on Android is handled in GMSCore, and hence no service + // should be instantiated. +-#if BUILDFLAG(IS_ANDROID) ++#if true + return nullptr; + #else + +diff --git a/chrome/browser/password_manager/password_sender_service_factory.cc b/chrome/browser/password_manager/password_sender_service_factory.cc +--- a/chrome/browser/password_manager/password_sender_service_factory.cc ++++ b/chrome/browser/password_manager/password_sender_service_factory.cc +@@ -50,7 +50,7 @@ PasswordSenderServiceFactory::BuildServiceInstanceForBrowserContext( + content::BrowserContext* context) const { + // Password sending on Android is handled in GMSCore, and hence no service + // should be instantiated. +-#if BUILDFLAG(IS_ANDROID) ++#if true + return nullptr; + #else + diff --git a/components/affiliations/core/browser/affiliation_backend.cc b/components/affiliations/core/browser/affiliation_backend.cc --- a/components/affiliations/core/browser/affiliation_backend.cc +++ b/components/affiliations/core/browser/affiliation_backend.cc @@ -144,8 +170,6 @@ diff --git a/cromite_flags/components/password_manager/core/browser/features/pas new file mode 100644 --- /dev/null +++ b/cromite_flags/components/password_manager/core/browser/features/password_features_cc/Disable-privacy-issues-in-password-manager.inc -@@ -0,0 +1,3 @@ +@@ -0,0 +1 @@ +SET_CROMITE_FEATURE_ENABLED(kFillOnAccountSelect); -+SET_CROMITE_FEATURE_DISABLED(kPasswordManagerEnableReceiverService); -+SET_CROMITE_FEATURE_DISABLED(kPasswordManagerEnableSenderService); -- diff --git a/build/patches/Disable-privacy-sandbox.patch b/build/patches/Disable-privacy-sandbox.patch index 0a87a60b..ef8f0611 100644 --- a/build/patches/Disable-privacy-sandbox.patch +++ b/build/patches/Disable-privacy-sandbox.patch @@ -25,16 +25,18 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../tracking_protection_prefs.cc | 4 ++-- .../identity_manager/account_capabilities.cc | 2 +- .../features_cc/Disable-privacy-sandbox.inc | 1 + + .../Disable-privacy-sandbox.inc | 1 + .../features_cc/Disable-privacy-sandbox.inc | 4 ++++ third_party/blink/common/features.cc | 1 + - 17 files changed, 40 insertions(+), 28 deletions(-) + 18 files changed, 41 insertions(+), 28 deletions(-) create mode 100644 cromite_flags/content/common/features_cc/Disable-privacy-sandbox.inc + create mode 100644 cromite_flags/content/public/common/content_features_cc/Disable-privacy-sandbox.inc create mode 100644 cromite_flags/third_party/blink/common/features_cc/Disable-privacy-sandbox.inc diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -3339,6 +3339,9 @@ bool ChromeContentBrowserClient::IsAttributionReportingOperationAllowed( +@@ -3483,6 +3483,9 @@ bool ChromeContentBrowserClient::IsAttributionReportingOperationAllowed( const url::Origin* destination_origin, const url::Origin* reporting_origin, bool* can_bypass) { @@ -79,7 +81,7 @@ diff --git a/chrome/browser/first_party_sets/first_party_sets_policy_service.cc 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 -@@ -1577,7 +1577,7 @@ void RegisterProfilePrefsForMigration( +@@ -1288,7 +1288,7 @@ void RegisterProfilePrefsForMigration( registry->RegisterTimePref(kPlusAddressLastFetchedTime, base::Time()); // Deprecated 03/2024. @@ -91,7 +93,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse 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 -@@ -471,7 +471,7 @@ bool PrivacySandboxServiceImpl::IsRestrictedNoticeEnabled() { +@@ -477,7 +477,7 @@ bool PrivacySandboxServiceImpl::IsRestrictedNoticeEnabled() { void PrivacySandboxServiceImpl::SetFirstPartySetsDataAccessEnabled( bool enabled) { pref_service_->SetBoolean(prefs::kPrivacySandboxRelatedWebsiteSetsEnabled, @@ -124,7 +126,7 @@ diff --git a/chrome/browser/ui/privacy_sandbox/privacy_sandbox_prompt.cc b/chrom diff --git a/components/history/core/browser/history_backend.cc b/components/history/core/browser/history_backend.cc --- a/components/history/core/browser/history_backend.cc +++ b/components/history/core/browser/history_backend.cc -@@ -656,18 +656,7 @@ void HistoryBackend::SetBrowsingTopicsAllowed(ContextID context_id, +@@ -657,18 +657,7 @@ void HistoryBackend::SetBrowsingTopicsAllowed(ContextID context_id, if (!visit_id) return; @@ -147,7 +149,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 -@@ -502,8 +502,6 @@ void PrivacySandboxAttestations::OnAttestationsParsed( +@@ -395,8 +395,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. @@ -155,13 +157,13 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_attestations/privacy_san - attestations_map_ = std::move(attestations_map.value()); } - attestations_parse_progress_ = Progress::kFinished; + SetIsPreInstalled(is_pre_installed); 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 -@@ -261,4 +261,8 @@ const base::FeatureParam - &kPrivacySandboxLocalNoticeConfirmation, "default-to-os-country", - false}; +@@ -288,4 +288,8 @@ BASE_FEATURE(kPrivacySandboxMigratePrefsToNoticeConsentDataModel, + "PrivacySandboxMigratePrefsToNoticeConsentDataModel", + base::FEATURE_ENABLED_BY_DEFAULT); +SET_CROMITE_FEATURE_DISABLED(kPrivacySandboxSettings4); +SET_CROMITE_FEATURE_ENABLED(kDisablePrivacySandboxPrompts); @@ -171,7 +173,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 -@@ -24,7 +24,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { +@@ -25,7 +25,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { registry->RegisterBooleanPref(prefs::kPrivacySandboxM1FledgeEnabled, false); registry->RegisterBooleanPref(prefs::kPrivacySandboxM1AdMeasurementEnabled, false); @@ -180,7 +182,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_prefs.cc b/components/pr registry->RegisterTimePref(prefs::kPrivacySandboxTopicsDataAccessibleSince, base::Time()); -@@ -48,7 +48,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { +@@ -49,7 +49,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { registry->RegisterBooleanPref( prefs::kPrivacySandboxFirstPartySetsDataAccessAllowedInitialized, false); registry->RegisterBooleanPref( @@ -270,7 +272,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo diff --git a/components/privacy_sandbox/tracking_protection_prefs.cc b/components/privacy_sandbox/tracking_protection_prefs.cc --- a/components/privacy_sandbox/tracking_protection_prefs.cc +++ b/components/privacy_sandbox/tracking_protection_prefs.cc -@@ -53,14 +53,14 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { +@@ -61,14 +61,14 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { // Tracking Protection Settings Prefs registry->RegisterBooleanPref( @@ -290,7 +292,7 @@ diff --git a/components/privacy_sandbox/tracking_protection_prefs.cc b/component 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:: +@@ -86,7 +86,7 @@ signin::Tribool AccountCapabilities:: signin::Tribool AccountCapabilities::can_run_chrome_privacy_sandbox_trials() const { @@ -305,6 +307,12 @@ new file mode 100644 +++ b/cromite_flags/content/common/features_cc/Disable-privacy-sandbox.inc @@ -0,0 +1 @@ +SET_CROMITE_FEATURE_DISABLED(kPrivacySandboxAdsAPIsM1Override); +diff --git a/cromite_flags/content/public/common/content_features_cc/Disable-privacy-sandbox.inc b/cromite_flags/content/public/common/content_features_cc/Disable-privacy-sandbox.inc +new file mode 100644 +--- /dev/null ++++ b/cromite_flags/content/public/common/content_features_cc/Disable-privacy-sandbox.inc +@@ -0,0 +1 @@ ++SET_CROMITE_FEATURE_DISABLED(kPrivacySandboxAdsAPIsOverride); diff --git a/cromite_flags/third_party/blink/common/features_cc/Disable-privacy-sandbox.inc b/cromite_flags/third_party/blink/common/features_cc/Disable-privacy-sandbox.inc new file mode 100644 --- /dev/null @@ -317,7 +325,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 -@@ -2601,6 +2601,7 @@ BASE_FEATURE(kWebviewAccelerateSmallCanvases, +@@ -2618,6 +2618,7 @@ BASE_FEATURE(kWebviewAccelerateSmallCanvases, // constants for features in the section above. bool IsAllowURNsInIframeEnabled() { diff --git a/build/patches/Disable-references-to-fonts.googleapis.com.patch b/build/patches/Disable-references-to-fonts.googleapis.com.patch index e3a0a085..60701c15 100644 --- a/build/patches/Disable-references-to-fonts.googleapis.com.patch +++ b/build/patches/Disable-references-to-fonts.googleapis.com.patch @@ -4,24 +4,25 @@ Subject: Disable references to fonts.googleapis.com License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../side_panel/read_anything/read_anything_toolbar.ts | 3 --- - .../content/browser/dom_distiller_viewer_source.cc | 2 +- - components/dom_distiller/core/html/dom_distiller_viewer.html | 2 -- - components/dom_distiller/core/html/preview.html | 2 +- - .../dom_distiller/core/javascript/dom_distiller_viewer.js | 2 +- - third_party/crashpad/crashpad/doc/support/crashpad_doxygen.css | 3 +-- - 6 files changed, 4 insertions(+), 10 deletions(-) + .../side_panel/read_anything/read_anything_toolbar.ts | 4 +--- + .../content/browser/dom_distiller_viewer_source.cc | 2 +- + components/dom_distiller/core/html/dom_distiller_viewer.html | 2 -- + components/dom_distiller/core/html/preview.html | 2 +- + .../dom_distiller/core/javascript/dom_distiller_viewer.js | 2 +- + .../crashpad/crashpad/doc/support/crashpad_doxygen.css | 3 +-- + 6 files changed, 5 insertions(+), 10 deletions(-) diff --git a/chrome/browser/resources/side_panel/read_anything/read_anything_toolbar.ts b/chrome/browser/resources/side_panel/read_anything/read_anything_toolbar.ts --- a/chrome/browser/resources/side_panel/read_anything/read_anything_toolbar.ts +++ b/chrome/browser/resources/side_panel/read_anything/read_anything_toolbar.ts -@@ -472,9 +472,6 @@ export class ReadAnythingToolbarElement extends ReadAnythingToolbarElementBase { +@@ -432,9 +432,7 @@ export class ReadAnythingToolbarElement extends ReadAnythingToolbarElementBase { const link = document.createElement('link'); link.rel = 'preload'; link.as = 'style'; -- link.href = -- 'https://fonts.googleapis.com/css?family=Poppins|Comic+Neue|Lexend+Deca|' + -- 'EB+Garamond|STIX+Two+Text|Andika'; +- link.href = 'https://fonts.googleapis.com/css?family='; +- link.href += chrome.readingMode.allFonts.join('|'); +- link.href = link.href.replace(' ', '+'); ++ this.setFontsLoaded(); link.addEventListener('load', () => { link.media = 'all'; diff --git a/build/patches/Disable-remote-altsvc-for-h3-connections.patch b/build/patches/Disable-remote-altsvc-for-h3-connections.patch index a9ef193d..50869e61 100644 --- a/build/patches/Disable-remote-altsvc-for-h3-connections.patch +++ b/build/patches/Disable-remote-altsvc-for-h3-connections.patch @@ -26,7 +26,7 @@ diff --git a/net/http/http_server_properties_manager.cc b/net/http/http_server_p diff --git a/net/http/http_stream_factory_job_controller.cc b/net/http/http_stream_factory_job_controller.cc --- a/net/http/http_stream_factory_job_controller.cc +++ b/net/http/http_stream_factory_job_controller.cc -@@ -1260,11 +1260,7 @@ HttpStreamFactory::JobController::GetAlternativeServiceInfoInternal( +@@ -1284,11 +1284,7 @@ HttpStreamFactory::JobController::GetAlternativeServiceInfoInternal( // single user on a multi-user system to hijack the alternate protocol. // These systems also enforce ports <1024 as restricted ports. So don't // allow protocol upgrades to user-controllable ports. @@ -39,7 +39,7 @@ diff --git a/net/http/http_stream_factory_job_controller.cc b/net/http/http_stre continue; } -@@ -1308,8 +1304,7 @@ HttpStreamFactory::JobController::GetAlternativeServiceInfoInternal( +@@ -1332,8 +1328,7 @@ HttpStreamFactory::JobController::GetAlternativeServiceInfoInternal( GURL destination = CreateAltSvcUrl( original_url, alternative_service_info.host_port_pair()); diff --git a/build/patches/Disable-safety-check.patch b/build/patches/Disable-safety-check.patch index f5f3e5b2..6619d50d 100644 --- a/build/patches/Disable-safety-check.patch +++ b/build/patches/Disable-safety-check.patch @@ -8,15 +8,15 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/android/chrome_java_sources.gni | 1 - .../android/java/res/xml/main_preferences.xml | 5 ----- .../browser/settings/SettingsActivity.java | 19 ------------------- - .../settings/SettingsLauncherImpl.java | 6 ++---- + .../settings/SettingsLauncherImpl.java | 8 ++------ chrome/browser/BUILD.gn | 1 - .../suggestions/action/OmniboxPedal.java | 3 --- - 7 files changed, 2 insertions(+), 38 deletions(-) + 7 files changed, 2 insertions(+), 40 deletions(-) diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -438,7 +438,6 @@ if (current_toolchain == default_toolchain) { +@@ -458,7 +458,6 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/recent_tabs:helper_java", "//chrome/browser/recent_tabs:java", "//chrome/browser/safe_browsing/android:java", @@ -24,7 +24,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/safety_hub/android:java", "//chrome/browser/screenshot_monitor:java", "//chrome/browser/search_engines/android:java", -@@ -1101,8 +1100,6 @@ if (current_toolchain == default_toolchain) { +@@ -1112,8 +1111,6 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/recent_tabs:java", "//chrome/browser/recent_tabs:junit", "//chrome/browser/recent_tabs/internal:junit", @@ -33,8 +33,8 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/safety_hub/android:java", "//chrome/browser/safety_hub/android:junit", "//chrome/browser/screenshot_monitor:java", -@@ -1754,8 +1751,6 @@ if (current_toolchain == default_toolchain) { - "//chrome/browser/quick_delete:javatests", +@@ -1769,8 +1766,6 @@ if (current_toolchain == default_toolchain) { + "//chrome/browser/readaloud/android:java", "//chrome/browser/safe_browsing/android:java", "//chrome/browser/safe_browsing/android:javatests", - "//chrome/browser/safety_check/android:java", @@ -45,7 +45,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 -@@ -996,7 +996,6 @@ chrome_java_sources = [ +@@ -992,7 +992,6 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingPasswordReuseDialogBridge.java", "java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingReferringAppBridge.java", "java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingSettingsLauncher.java", @@ -82,7 +82,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin import org.chromium.chrome.browser.safety_hub.SafetyHubBaseFragment; import org.chromium.chrome.browser.safety_hub.SafetyHubFragment; import org.chromium.chrome.browser.safety_hub.SafetyHubModuleDelegateImpl; -@@ -595,21 +591,6 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -593,21 +589,6 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity baseSiteSettingsFragment.setCustomTabIntentHelper( LaunchIntentDispatcher::createCustomTabActivityIntent); } @@ -93,7 +93,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin - new SafetyCheckUpdatesDelegateImpl(), - new SafetyCheckBridge(mProfile), - mSettingsLauncher, -- SigninAndHistoryOptInActivityLauncherImpl.get(), +- SigninAndHistorySyncActivityLauncherImpl.get(), - SyncConsentActivityLauncherImpl.get(), - getModalDialogManagerSupplier(), - SyncServiceFactory.getForProfile(mProfile), @@ -107,37 +107,39 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsLauncherImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsLauncherImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsLauncherImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsLauncherImpl.java -@@ -21,7 +21,6 @@ import org.chromium.chrome.browser.browsing_data.ClearBrowsingDataFragment; - import org.chromium.chrome.browser.browsing_data.ClearBrowsingDataFragmentAdvanced; +@@ -23,7 +23,6 @@ import org.chromium.chrome.browser.browsing_data.ClearBrowsingDataFragmentAdvanc import org.chromium.chrome.browser.browsing_data.ClearBrowsingDataTabsFragment; + import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.password_manager.settings.PasswordSettings; -import org.chromium.chrome.browser.safety_check.SafetyCheckSettingsFragment; + import org.chromium.chrome.browser.safety_hub.SafetyHubFragment; import org.chromium.chrome.browser.sync.settings.GoogleServicesSettings; import org.chromium.chrome.browser.sync.settings.ManageSyncSettings; - import org.chromium.components.browser_ui.settings.SettingsLauncher; -@@ -58,8 +57,7 @@ public class SettingsLauncherImpl implements SettingsLauncher { +@@ -61,10 +60,7 @@ public class SettingsLauncherImpl implements SettingsLauncher { /* isFetcherSuppliedFromOutside= */ false); break; case SettingsFragment.SAFETY_CHECK: -- fragmentArgs = SafetyCheckSettingsFragment.createBundle(true); +- if (!ChromeFeatureList.sSafetyHub.isEnabled()) { +- fragmentArgs = SafetyCheckSettingsFragment.createBundle(true); +- } - break; + return; case SettingsFragment.MAIN: case SettingsFragment.PAYMENT_METHODS: case SettingsFragment.SITE: -@@ -132,7 +130,7 @@ public class SettingsLauncherImpl implements SettingsLauncher { - case SettingsFragment.PAYMENT_METHODS: - return AutofillPaymentMethodsFragment.class; - case SettingsFragment.SAFETY_CHECK: -- return SafetyCheckSettingsFragment.class; -+ return null; +@@ -140,7 +136,7 @@ public class SettingsLauncherImpl implements SettingsLauncher { + if (ChromeFeatureList.sSafetyHub.isEnabled()) { + return SafetyHubFragment.class; + } else { +- return SafetyCheckSettingsFragment.class; ++ return null; + } case SettingsFragment.SITE: return SiteSettings.class; - case SettingsFragment.ACCESSIBILITY: diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -3584,7 +3584,6 @@ static_library("browser") { +@@ -3563,7 +3563,6 @@ static_library("browser") { "//chrome/browser/reading_list/android", "//chrome/browser/recent_tabs:jni_headers", "//chrome/browser/safe_browsing/android:safe_browsing_enums", @@ -148,7 +150,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/action/OmniboxPedal.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/action/OmniboxPedal.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/action/OmniboxPedal.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/action/OmniboxPedal.java -@@ -54,9 +54,6 @@ public class OmniboxPedal extends OmniboxAction { +@@ -55,9 +55,6 @@ public class OmniboxPedal extends OmniboxAction { case OmniboxPedalId.UPDATE_CREDIT_CARD: delegate.openSettingsPage(SettingsFragment.PAYMENT_METHODS); break; diff --git a/build/patches/Disable-smart-selection-by-default.patch b/build/patches/Disable-smart-selection-by-default.patch index b25d3802..bf12b1c2 100644 --- a/build/patches/Disable-smart-selection-by-default.patch +++ b/build/patches/Disable-smart-selection-by-default.patch @@ -44,7 +44,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextualsearc 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 -@@ -194,6 +194,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -198,6 +198,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kCCTExtendTrustedCdnPublisher, &kCCTFeatureUsage, &kCCTEphemeralMode, @@ -55,7 +55,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 -@@ -251,6 +251,7 @@ public abstract class ChromeFeatureList { +@@ -256,6 +256,7 @@ public abstract class ChromeFeatureList { public static final String CCT_INTENT_FEATURE_OVERRIDES = "CCTIntentFeatureOverrides"; public static final String CCT_PAGE_INSIGHTS_HUB = "CCTPageInsightsHub"; public static final String CCT_PAGE_INSIGHTS_HUB_PEEK = "CCTPageInsightsHubPeek"; @@ -66,7 +66,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f diff --git a/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java b/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java --- a/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java +++ b/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java -@@ -1181,7 +1181,6 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper +@@ -1103,7 +1103,6 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper public boolean canWebSearch() { return hasSelection() && !isFocusedNodeEditable() diff --git a/build/patches/Disable-speechSynthesis-getVoices-API.patch b/build/patches/Disable-speechSynthesis-getVoices-API.patch index a4c16722..dbc1b2b2 100644 --- a/build/patches/Disable-speechSynthesis-getVoices-API.patch +++ b/build/patches/Disable-speechSynthesis-getVoices-API.patch @@ -31,7 +31,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc --- a/chrome/renderer/chrome_content_renderer_client.cc +++ b/chrome/renderer/chrome_content_renderer_client.cc -@@ -1627,7 +1627,7 @@ ChromeContentRendererClient::CreateWorkerContentSettingsClient( +@@ -1651,7 +1651,7 @@ ChromeContentRendererClient::CreateWorkerContentSettingsClient( std::unique_ptr ChromeContentRendererClient::CreateSpeechRecognitionClient( content::RenderFrame* render_frame) { @@ -43,7 +43,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer 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 -@@ -484,6 +484,14 @@ bool ContentSettingsAgentImpl::IsAllowlistedForContentSettingsCromite() const { +@@ -483,6 +483,14 @@ bool ContentSettingsAgentImpl::IsAllowlistedForContentSettingsCromite() const { return false; } @@ -58,7 +58,7 @@ diff --git a/components/content_settings/renderer/content_settings_agent_impl.cc bool ContentSettingsAgentImpl::UpdateOverrides() { // Evaluate the content setting rules ContentSetting setting = CONTENT_SETTING_ALLOW; -@@ -494,7 +502,6 @@ bool ContentSettingsAgentImpl::UpdateOverrides() { +@@ -493,7 +501,6 @@ bool ContentSettingsAgentImpl::UpdateOverrides() { } return UpdateTimeZoneOverride( setting, content_setting_rules_->timezone_override_value); @@ -93,7 +93,7 @@ diff --git a/content/browser/speech/tts_android.cc b/content/browser/speech/tts_ diff --git a/content/browser/speech/tts_win.cc b/content/browser/speech/tts_win.cc --- a/content/browser/speech/tts_win.cc +++ b/content/browser/speech/tts_win.cc -@@ -155,7 +155,7 @@ class TtsPlatformImplWin : public TtsPlatformImpl { +@@ -156,7 +156,7 @@ class TtsPlatformImplWin : public TtsPlatformImpl { TtsPlatformImplWin(const TtsPlatformImplWin&) = delete; TtsPlatformImplWin& operator=(const TtsPlatformImplWin&) = delete; @@ -152,8 +152,8 @@ diff --git a/third_party/blink/renderer/modules/speech/speech_synthesis.cc b/thi --- a/third_party/blink/renderer/modules/speech/speech_synthesis.cc +++ b/third_party/blink/renderer/modules/speech/speech_synthesis.cc @@ -35,6 +35,7 @@ - #include "third_party/blink/public/common/privacy_budget/identifiable_token_builder.h" #include "third_party/blink/public/common/thread_safe_browser_interface_broker_proxy.h" + #include "third_party/blink/public/platform/browser_interface_broker_proxy.h" #include "third_party/blink/public/platform/platform.h" +#include "third_party/blink/public/platform/web_content_settings_client.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_speech_synthesis_error_event_init.h" diff --git a/build/patches/Disable-support-for-RAR-files-inspection.patch b/build/patches/Disable-support-for-RAR-files-inspection.patch deleted file mode 100644 index b17b4b6c..00000000 --- a/build/patches/Disable-support-for-RAR-files-inspection.patch +++ /dev/null @@ -1,94 +0,0 @@ -From: Michael Gilbert -Date: Wed, 21 Nov 2018 02:37:35 +0000 -Subject: Disable support for RAR files inspection - -License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html ---- - .../download_protection/file_analyzer.cc | 2 +- - .../services/file_util/safe_archive_analyzer.cc | 15 ++------------- - chrome/services/file_util/safe_archive_analyzer.h | 2 -- - chrome/utility/safe_browsing/BUILD.gn | 2 -- - chrome/utility/safe_browsing/archive_analyzer.cc | 2 +- - 5 files changed, 4 insertions(+), 19 deletions(-) - -diff --git a/chrome/browser/safe_browsing/download_protection/file_analyzer.cc b/chrome/browser/safe_browsing/download_protection/file_analyzer.cc ---- a/chrome/browser/safe_browsing/download_protection/file_analyzer.cc -+++ b/chrome/browser/safe_browsing/download_protection/file_analyzer.cc -@@ -75,7 +75,7 @@ void FileAnalyzer::Start(const base::FilePath& target_path, - if (inspection_type == DownloadFileType::ZIP) { - StartExtractZipFeatures(); - } else if (inspection_type == DownloadFileType::RAR) { -- StartExtractRarFeatures(); -+ LOG(WARNING) << "Safebrowser inspection of rar files is disabled in this build"; - #if BUILDFLAG(IS_MAC) - } else if (inspection_type == DownloadFileType::DMG) { - StartExtractDmgFeatures(); -diff --git a/chrome/services/file_util/safe_archive_analyzer.cc b/chrome/services/file_util/safe_archive_analyzer.cc ---- a/chrome/services/file_util/safe_archive_analyzer.cc -+++ b/chrome/services/file_util/safe_archive_analyzer.cc -@@ -77,19 +77,8 @@ void SafeArchiveAnalyzer::AnalyzeRarFile( - DCHECK(rar_file.IsValid()); - temp_file_getter_.Bind(std::move(temp_file_getter)); - callback_ = std::move(callback); -- AnalysisFinishedCallback analysis_finished_callback = -- base::BindOnce(&SafeArchiveAnalyzer::AnalysisFinished, -- weak_factory_.GetWeakPtr(), base::FilePath()); -- base::RepeatingCallback -- temp_file_getter_callback = -- base::BindRepeating(&SafeArchiveAnalyzer::RequestTemporaryFile, -- weak_factory_.GetWeakPtr()); -- timeout_timer_.Start(FROM_HERE, kArchiveAnalysisTimeout, this, -- &SafeArchiveAnalyzer::Timeout); -- rar_analyzer_.Analyze(std::move(rar_file), base::FilePath(), -- /*password=*/password, -- std::move(analysis_finished_callback), -- std::move(temp_file_getter_callback), &results_); -+ Timeout(); -+ LOG(FATAL) << "AnalyzeRarFile is disabled in this build"; - } - - void SafeArchiveAnalyzer::AnalyzeSevenZipFile( -diff --git a/chrome/services/file_util/safe_archive_analyzer.h b/chrome/services/file_util/safe_archive_analyzer.h ---- a/chrome/services/file_util/safe_archive_analyzer.h -+++ b/chrome/services/file_util/safe_archive_analyzer.h -@@ -9,7 +9,6 @@ - - #include "chrome/common/safe_browsing/archive_analyzer_results.h" - #include "chrome/services/file_util/public/mojom/safe_archive_analyzer.mojom.h" --#include "chrome/utility/safe_browsing/rar_analyzer.h" - #include "chrome/utility/safe_browsing/seven_zip_analyzer.h" - #include "chrome/utility/safe_browsing/zip_analyzer.h" - #include "mojo/public/cpp/bindings/remote.h" -@@ -67,7 +66,6 @@ class SafeArchiveAnalyzer : public chrome::mojom::SafeArchiveAnalyzer { - void Timeout(); - - safe_browsing::ZipAnalyzer zip_analyzer_; -- safe_browsing::RarAnalyzer rar_analyzer_; - safe_browsing::SevenZipAnalyzer seven_zip_analyzer_; - #if BUILDFLAG(IS_MAC) - safe_browsing::dmg::DMGAnalyzer dmg_analyzer_; -diff --git a/chrome/utility/safe_browsing/BUILD.gn b/chrome/utility/safe_browsing/BUILD.gn ---- a/chrome/utility/safe_browsing/BUILD.gn -+++ b/chrome/utility/safe_browsing/BUILD.gn -@@ -11,8 +11,6 @@ source_set("safe_browsing") { - sources = [ - "archive_analyzer.cc", - "archive_analyzer.h", -- "rar_analyzer.cc", -- "rar_analyzer.h", - "seven_zip_analyzer.cc", - "seven_zip_analyzer.h", - "zip_analyzer.cc", -diff --git a/chrome/utility/safe_browsing/archive_analyzer.cc b/chrome/utility/safe_browsing/archive_analyzer.cc ---- a/chrome/utility/safe_browsing/archive_analyzer.cc -+++ b/chrome/utility/safe_browsing/archive_analyzer.cc -@@ -24,7 +24,7 @@ namespace safe_browsing { - std::unique_ptr ArchiveAnalyzer::CreateForArchiveType( - DownloadFileType_InspectionType file_type) { - if (file_type == DownloadFileType::RAR) { -- return std::make_unique(); -+ return nullptr; - } else if (file_type == DownloadFileType::ZIP) { - return std::make_unique(); - } else if (file_type == DownloadFileType::SEVEN_ZIP) { --- diff --git a/build/patches/Disable-text-fragments-by-default.patch b/build/patches/Disable-text-fragments-by-default.patch index 66c5eaf4..9ce58fd0 100644 --- a/build/patches/Disable-text-fragments-by-default.patch +++ b/build/patches/Disable-text-fragments-by-default.patch @@ -22,7 +22,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/ui/prefs/prefs_tab_helper.cc b/chrome/browser/ui/prefs/prefs_tab_helper.cc --- a/chrome/browser/ui/prefs/prefs_tab_helper.cc +++ b/chrome/browser/ui/prefs/prefs_tab_helper.cc -@@ -383,7 +383,7 @@ void PrefsTabHelper::RegisterProfilePrefs( +@@ -374,7 +374,7 @@ void PrefsTabHelper::RegisterProfilePrefs( registry->RegisterBooleanPref(prefs::kEnableEncryptedMedia, true); registry->RegisterStringPref(prefs::kPrefixedVideoFullscreenApiAvailability, "runtime-enabled"); @@ -34,7 +34,7 @@ diff --git a/chrome/browser/ui/prefs/prefs_tab_helper.cc b/chrome/browser/ui/pre 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 -@@ -291,6 +291,8 @@ void SetRuntimeFeaturesFromChromiumFeatures() { +@@ -288,6 +288,8 @@ void SetRuntimeFeaturesFromChromiumFeatures() { #endif {wf::EnableTouchDragAndContextMenu, raw_ref(features::kTouchDragAndContextMenu)}, @@ -74,7 +74,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc --- a/third_party/blink/renderer/core/dom/document.cc +++ b/third_party/blink/renderer/core/dom/document.cc -@@ -4599,9 +4599,14 @@ void Document::SetURL(const KURL& url) { +@@ -4606,9 +4606,14 @@ void Document::SetURL(const KURL& url) { TRACE_EVENT_FLAG_FLOW_IN | TRACE_EVENT_FLAG_FLOW_OUT, "url", new_url.GetString().Utf8()); @@ -92,7 +92,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink 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 -@@ -3972,10 +3972,9 @@ +@@ -4047,10 +4047,9 @@ }, { name: "TextFragmentIdentifiers", diff --git a/build/patches/Disable-third-party-origin-trials.patch b/build/patches/Disable-third-party-origin-trials.patch index 3db71015..1ca3ae21 100644 --- a/build/patches/Disable-third-party-origin-trials.patch +++ b/build/patches/Disable-third-party-origin-trials.patch @@ -76,7 +76,7 @@ diff --git a/components/embedder_support/origin_trials/origin_trial_policy_impl. diff --git a/content/browser/renderer_host/navigation_request.cc b/content/browser/renderer_host/navigation_request.cc --- a/content/browser/renderer_host/navigation_request.cc +++ b/content/browser/renderer_host/navigation_request.cc -@@ -8971,7 +8971,6 @@ void NavigationRequest::SetSourceSiteInstanceToInitiatorIfNeeded() { +@@ -9048,7 +9048,6 @@ void NavigationRequest::SetSourceSiteInstanceToInitiatorIfNeeded() { void NavigationRequest::ForceEnableOriginTrials( const std::vector& trials) { DCHECK(!HasCommitted()); @@ -141,7 +141,7 @@ diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_fra blink::NavigationDownloadPolicy download_policy; download_policy.ApplyDownloadFramePolicy( info->is_opener_navigation, info->url_request.HasUserGesture(), -@@ -662,7 +647,7 @@ blink::mojom::CommonNavigationParamsPtr MakeCommonNavigationParams( +@@ -667,7 +652,7 @@ blink::mojom::CommonNavigationParamsPtr MakeCommonNavigationParams( info->url_request.HasUserGesture(), info->url_request.HasTextFragmentToken(), info->should_check_main_world_content_security_policy, @@ -193,7 +193,7 @@ diff --git a/third_party/blink/common/origin_trials/trial_token_validator.cc b/t diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc --- a/third_party/blink/renderer/core/loader/document_loader.cc +++ b/third_party/blink/renderer/core/loader/document_loader.cc -@@ -188,13 +188,6 @@ namespace { +@@ -191,13 +191,6 @@ namespace { Vector CopyInitiatorOriginTrials( const WebVector& initiator_origin_trial_features) { Vector result; @@ -207,7 +207,7 @@ diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_p return result; } -@@ -208,18 +201,12 @@ WebVector CopyInitiatorOriginTrials( +@@ -211,18 +204,12 @@ WebVector CopyInitiatorOriginTrials( Vector CopyForceEnabledOriginTrials( const WebVector& force_enabled_origin_trials) { Vector result; @@ -226,7 +226,7 @@ diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_p return result; } -@@ -3070,10 +3057,6 @@ void DocumentLoader::CreateParserPostCommit() { +@@ -3096,10 +3083,6 @@ void DocumentLoader::CreateParserPostCommit() { mojom::blink::OriginTrialFeature::kTouchEventFeatureDetection); } @@ -252,7 +252,7 @@ diff --git a/third_party/blink/renderer/core/loader/http_equiv.cc b/third_party/ diff --git a/third_party/blink/renderer/core/origin_trials/origin_trial_context.cc b/third_party/blink/renderer/core/origin_trials/origin_trial_context.cc --- a/third_party/blink/renderer/core/origin_trials/origin_trial_context.cc +++ b/third_party/blink/renderer/core/origin_trials/origin_trial_context.cc -@@ -315,6 +315,9 @@ void OriginTrialContext::AddToken(const String& token) { +@@ -312,6 +312,9 @@ void OriginTrialContext::AddToken(const String& token) { void OriginTrialContext::AddTokenFromExternalScript( const String& token, const Vector>& external_origins) { @@ -262,7 +262,7 @@ diff --git a/third_party/blink/renderer/core/origin_trials/origin_trial_context. Vector script_origins; for (const scoped_refptr& origin : external_origins) { OriginInfo origin_info = {.origin = origin, -@@ -470,8 +473,6 @@ bool OriginTrialContext::InstallSettingFeature( +@@ -449,8 +452,6 @@ bool OriginTrialContext::InstallSettingFeature( } void OriginTrialContext::AddFeature(mojom::blink::OriginTrialFeature feature) { @@ -271,12 +271,12 @@ diff --git a/third_party/blink/renderer/core/origin_trials/origin_trial_context. } bool OriginTrialContext::IsFeatureEnabled( -@@ -515,6 +516,7 @@ void OriginTrialContext::AddForceEnabledTrials( +@@ -494,6 +495,7 @@ void OriginTrialContext::AddForceEnabledTrials( } bool OriginTrialContext::CanEnableTrialFromName(const StringView& trial_name) { + if ((true)) return false; - if (trial_name == "PrivacySandboxAdsAPIs") - return base::FeatureList::IsEnabled(features::kPrivacySandboxAdsAPIs); - + if (trial_name == "FledgeBiddingAndAuctionServer") { + return base::FeatureList::IsEnabled(features::kInterestGroupStorage) && + base::FeatureList::IsEnabled( -- diff --git a/build/patches/Disable-various-metrics.patch b/build/patches/Disable-various-metrics.patch index ba5e1e25..0e22b452 100644 --- a/build/patches/Disable-various-metrics.patch +++ b/build/patches/Disable-various-metrics.patch @@ -111,7 +111,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch #include "chrome/browser/media/audio_service_util.h" #include "chrome/browser/media/prefs/capture_device_ranking.h" #include "chrome/browser/media/router/media_router_feature.h" -@@ -5106,16 +5105,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( +@@ -5319,16 +5318,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( content::NavigationHandle* handle) { std::vector> throttles; @@ -128,7 +128,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch #if BUILDFLAG(IS_ANDROID) // TODO(davidben): This is insufficient to integrate with prerender properly. // https://crbug.com/370595 -@@ -5223,10 +5212,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( +@@ -5436,10 +5425,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( } } @@ -188,7 +188,7 @@ diff --git a/components/ntp_tiles/BUILD.gn b/components/ntp_tiles/BUILD.gn "most_visited_sites.cc", "most_visited_sites.h", "ntp_tile.cc", -@@ -97,7 +95,6 @@ source_set("unit_tests") { +@@ -98,7 +96,6 @@ source_set("unit_tests") { "custom_links_manager_impl_unittest.cc", "custom_links_store_unittest.cc", "icon_cacher_impl_unittest.cc", @@ -210,7 +210,7 @@ diff --git a/components/ntp_tiles/custom_links_manager_impl.cc b/components/ntp_ diff --git a/components/ntp_tiles/most_visited_sites.cc b/components/ntp_tiles/most_visited_sites.cc --- a/components/ntp_tiles/most_visited_sites.cc +++ b/components/ntp_tiles/most_visited_sites.cc -@@ -747,8 +747,6 @@ void MostVisitedSites::SaveTilesAndNotify( +@@ -771,8 +771,6 @@ void MostVisitedSites::SaveTilesAndNotify( : new_tiles; if (fixed_tiles.size() != new_tiles.size()) { diff --git a/build/patches/Disable-visited-pseudo-class.patch b/build/patches/Disable-visited-pseudo-class.patch index c208f373..5c495c85 100644 --- a/build/patches/Disable-visited-pseudo-class.patch +++ b/build/patches/Disable-visited-pseudo-class.patch @@ -13,7 +13,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/components/visitedlink/browser/visitedlink_writer.cc b/components/visitedlink/browser/visitedlink_writer.cc --- a/components/visitedlink/browser/visitedlink_writer.cc +++ b/components/visitedlink/browser/visitedlink_writer.cc -@@ -237,7 +237,7 @@ VisitedLinkWriter::VisitedLinkWriter(content::BrowserContext* browser_context, +@@ -241,7 +241,7 @@ VisitedLinkWriter::VisitedLinkWriter(content::BrowserContext* browser_context, : browser_context_(browser_context), delegate_(delegate), listener_(std::make_unique(browser_context)), @@ -22,7 +22,7 @@ diff --git a/components/visitedlink/browser/visitedlink_writer.cc b/components/v VisitedLinkWriter::VisitedLinkWriter(Listener* listener, VisitedLinkDelegate* delegate, -@@ -247,10 +247,10 @@ VisitedLinkWriter::VisitedLinkWriter(Listener* listener, +@@ -251,10 +251,10 @@ VisitedLinkWriter::VisitedLinkWriter(Listener* listener, int32_t default_table_size) : delegate_(delegate), listener_(listener), @@ -35,7 +35,7 @@ diff --git a/components/visitedlink/browser/visitedlink_writer.cc b/components/v DCHECK(listener_); } -@@ -320,6 +320,7 @@ void VisitedLinkWriter::AddURL(const GURL& url, bool update_file) { +@@ -324,6 +324,7 @@ void VisitedLinkWriter::AddURL(const GURL& url, bool update_file) { } VisitedLinkWriter::Hash VisitedLinkWriter::TryToAddURL(const GURL& url) { @@ -43,7 +43,7 @@ diff --git a/components/visitedlink/browser/visitedlink_writer.cc b/components/v // Extra check that we are not incognito. This should not happen. // TODO(boliu): Move this check to HistoryService when IsOffTheRecord is // removed from BrowserContext. -@@ -1049,7 +1050,6 @@ bool VisitedLinkWriter::RebuildTableFromDelegate() { +@@ -1053,7 +1054,6 @@ bool VisitedLinkWriter::RebuildTableFromDelegate() { // TODO(brettw) make sure we have reasonable salt! table_builder_ = new TableBuilder(this, salt_); @@ -54,7 +54,7 @@ diff --git a/components/visitedlink/browser/visitedlink_writer.cc b/components/v diff --git a/components/visitedlink/common/visitedlink_common.cc b/components/visitedlink/common/visitedlink_common.cc --- a/components/visitedlink/common/visitedlink_common.cc +++ b/components/visitedlink/common/visitedlink_common.cc -@@ -75,6 +75,7 @@ bool VisitedLinkCommon::IsVisited(const GURL& link_url, +@@ -79,6 +79,7 @@ bool VisitedLinkCommon::IsVisited(const GURL& link_url, } bool VisitedLinkCommon::IsVisited(Fingerprint fingerprint) const { diff --git a/build/patches/Disable-wip-Android-Hub.patch b/build/patches/Disable-wip-Android-Hub.patch deleted file mode 100644 index 3c5446a6..00000000 --- a/build/patches/Disable-wip-Android-Hub.patch +++ /dev/null @@ -1,30 +0,0 @@ -From: uazo -Date: Tue, 11 Jun 2024 13:33:20 +0000 -Subject: Disable wip Android Hub - -Temporarily disable android hub being still in work in progress ---- - .../org/chromium/chrome/browser/flags/ChromeFeatureList.java | 2 +- - .../android/chrome_feature_list_cc/Disable-Android-Hub.inc | 1 + - 2 files changed, 2 insertions(+), 1 deletion(-) - create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-Android-Hub.inc - -diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java ---- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -557,7 +557,7 @@ public abstract class ChromeFeatureList { - newCachedFlag(ANDROID_APP_INTEGRATION, false); - public static final CachedFlag sAndroidElegantTextHeight = - newCachedFlag(ANDROID_ELEGANT_TEXT_HEIGHT, false); -- public static final CachedFlag sAndroidHub = newCachedFlag(ANDROID_HUB, true); -+ public static final CachedFlag sAndroidHub = newCachedFlag(ANDROID_HUB, false); - public static final CachedFlag sAndroidHubFloatingActionButton = - newCachedFlag( - ANDROID_HUB_FLOATING_ACTION_BUTTON, -diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-Android-Hub.inc b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-Android-Hub.inc -new file mode 100644 ---- /dev/null -+++ b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-Android-Hub.inc -@@ -0,0 +1 @@ -+SET_CROMITE_FEATURE_DISABLED(kAndroidHub); --- diff --git a/build/patches/Do-not-build-API-keys-infobar.patch b/build/patches/Do-not-build-API-keys-infobar.patch index 47186ea5..5db6e772 100644 --- a/build/patches/Do-not-build-API-keys-infobar.patch +++ b/build/patches/Do-not-build-API-keys-infobar.patch @@ -11,7 +11,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html 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 -@@ -1500,8 +1500,6 @@ static_library("ui") { +@@ -1409,8 +1409,6 @@ static_library("ui") { "startup/default_browser_prompt/default_browser_prompt_manager.h", "startup/default_browser_prompt/default_browser_prompt_prefs.cc", "startup/default_browser_prompt/default_browser_prompt_prefs.h", diff --git a/build/patches/Do-not-compile-QR-code-sharing.patch b/build/patches/Do-not-compile-QR-code-sharing.patch index c888b015..dc8355c2 100644 --- a/build/patches/Do-not-compile-QR-code-sharing.patch +++ b/build/patches/Do-not-compile-QR-code-sharing.patch @@ -6,15 +6,20 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- chrome/android/BUILD.gn | 1 - .../chrome/browser/ui/RootUiCoordinator.java | 5 ---- + chrome/browser/prefs/browser_prefs.cc | 2 +- chrome/browser/share/BUILD.gn | 1 - ...omeProvidedSharingOptionsProviderBase.java | 23 ------------------- chrome/browser/share/android/java_sources.gni | 11 --------- - 5 files changed, 41 deletions(-) + .../sharing_hub/sharing_hub_features.cc | 2 +- + .../browser/ui/browser_command_controller.cc | 6 ++--- + chrome/browser/ui/browser_commands.cc | 1 + + .../qrcode_generator_bubble_controller.cc | 1 + + 10 files changed, 7 insertions(+), 46 deletions(-) diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -3606,7 +3606,6 @@ generate_jni("chrome_jni_headers") { +@@ -3624,7 +3624,6 @@ generate_jni("chrome_jni_headers") { "../browser/share/android/java/src/org/chromium/chrome/browser/share/link_to_text/LinkToTextBridge.java", "../browser/share/android/java/src/org/chromium/chrome/browser/share/long_screenshots/bitmap_generation/LongScreenshotsTabService.java", "../browser/share/android/java/src/org/chromium/chrome/browser/share/long_screenshots/bitmap_generation/LongScreenshotsTabServiceFactory.java", @@ -25,7 +30,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn 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 -@@ -114,7 +114,6 @@ import org.chromium.chrome.browser.share.ShareButtonController; +@@ -118,7 +118,6 @@ import org.chromium.chrome.browser.share.ShareButtonController; import org.chromium.chrome.browser.share.ShareDelegate; import org.chromium.chrome.browser.share.ShareDelegate.ShareOrigin; import org.chromium.chrome.browser.share.ShareUtils; @@ -33,7 +38,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi import org.chromium.chrome.browser.share.scroll_capture.ScrollCaptureManager; import org.chromium.chrome.browser.tab.AccessibilityVisibilityHandler; import org.chromium.chrome.browser.tab.AutofillSessionLifetimeController; -@@ -604,10 +603,6 @@ public class RootUiCoordinator +@@ -592,10 +591,6 @@ public class RootUiCoordinator } public void onAttachFragment(Fragment fragment) { @@ -44,10 +49,22 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi } @Override +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 +@@ -1743,7 +1743,7 @@ void RegisterLocalState(PrefRegistrySimple* registry) { + registry->RegisterBooleanPref(prefs::kUiAutomationProviderEnabled, false); + #endif + +- registry->RegisterBooleanPref(prefs::kQRCodeGeneratorEnabled, true); ++ registry->RegisterBooleanPref(prefs::kQRCodeGeneratorEnabled, false); + + // This is intentionally last. + RegisterLocalStatePrefsForMigration(registry); diff --git a/chrome/browser/share/BUILD.gn b/chrome/browser/share/BUILD.gn --- a/chrome/browser/share/BUILD.gn +++ b/chrome/browser/share/BUILD.gn -@@ -45,7 +45,6 @@ source_set("share") { +@@ -47,7 +47,6 @@ source_set("share") { "link_to_text_bridge.cc", "page_info_sharing_bridge.cc", "page_info_sharing_bridge.h", @@ -123,4 +140,55 @@ diff --git a/chrome/browser/share/android/java_sources.gni b/chrome/browser/shar "//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/screenshot/EditorScreenshotSource.java", "//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/screenshot/EditorScreenshotTask.java", "//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/screenshot/ScreenshotCoordinator.java", +diff --git a/chrome/browser/sharing_hub/sharing_hub_features.cc b/chrome/browser/sharing_hub/sharing_hub_features.cc +--- a/chrome/browser/sharing_hub/sharing_hub_features.cc ++++ b/chrome/browser/sharing_hub/sharing_hub_features.cc +@@ -72,7 +72,7 @@ BASE_FEATURE(kDesktopScreenshots, + + #if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS) + void RegisterProfilePrefs(PrefRegistrySimple* registry) { +- registry->RegisterBooleanPref(prefs::kDesktopSharingHubEnabled, true); ++ registry->RegisterBooleanPref(prefs::kDesktopSharingHubEnabled, false); + } + #endif + +diff --git a/chrome/browser/ui/browser_command_controller.cc b/chrome/browser/ui/browser_command_controller.cc +--- a/chrome/browser/ui/browser_command_controller.cc ++++ b/chrome/browser/ui/browser_command_controller.cc +@@ -1773,10 +1773,10 @@ void BrowserCommandController::UpdateCommandsForFullscreenMode() { + command_updater_.UpdateCommandEnabled(IDC_CHROME_WHATS_NEW, show_main_ui); + #endif + command_updater_.UpdateCommandEnabled(IDC_CONTENT_CONTEXT_SHARING_SUBMENU, +- show_main_ui); +- command_updater_.UpdateCommandEnabled(IDC_SHARING_HUB, show_main_ui); ++ false); ++ command_updater_.UpdateCommandEnabled(IDC_SHARING_HUB, false); + command_updater_.UpdateCommandEnabled(IDC_SHARING_HUB_SCREENSHOT, +- show_main_ui); ++ false); + command_updater_.UpdateCommandEnabled(IDC_SHOW_APP_MENU, show_main_ui); + command_updater_.UpdateCommandEnabled(IDC_SHOW_MANAGEMENT_PAGE, true); + +diff --git a/chrome/browser/ui/browser_commands.cc b/chrome/browser/ui/browser_commands.cc +--- a/chrome/browser/ui/browser_commands.cc ++++ b/chrome/browser/ui/browser_commands.cc +@@ -1649,6 +1649,7 @@ void SendTabToSelf(Browser* browser) { + } + + bool CanGenerateQrCode(const Browser* browser) { ++ if ((true)) return false; + return !sharing_hub::SharingIsDisabledByPolicy(browser->profile()) && + qrcode_generator::QRCodeGeneratorBubbleController:: + IsGeneratorAvailable(browser->tab_strip_model() +diff --git a/chrome/browser/ui/qrcode_generator/qrcode_generator_bubble_controller.cc b/chrome/browser/ui/qrcode_generator/qrcode_generator_bubble_controller.cc +--- a/chrome/browser/ui/qrcode_generator/qrcode_generator_bubble_controller.cc ++++ b/chrome/browser/ui/qrcode_generator/qrcode_generator_bubble_controller.cc +@@ -37,6 +37,7 @@ QRCodeGeneratorBubbleController::~QRCodeGeneratorBubbleController() { + + // static + bool QRCodeGeneratorBubbleController::IsGeneratorAvailable(const GURL& url) { ++ if ((true)) return false; + if (!url.SchemeIsHTTPOrHTTPS()) + return false; + -- diff --git a/build/patches/Do-not-store-passwords-by-default.patch b/build/patches/Do-not-store-passwords-by-default.patch index 136b2823..e3011b09 100644 --- a/build/patches/Do-not-store-passwords-by-default.patch +++ b/build/patches/Do-not-store-passwords-by-default.patch @@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/components/password_manager/core/browser/password_manager.cc b/components/password_manager/core/browser/password_manager.cc --- a/components/password_manager/core/browser/password_manager.cc +++ b/components/password_manager/core/browser/password_manager.cc -@@ -277,14 +277,14 @@ bool HasManuallyFilledFields(const PasswordForm& form) { +@@ -314,14 +314,14 @@ bool HasManuallyFilledFields(const PasswordForm& form) { void PasswordManager::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref( @@ -27,7 +27,7 @@ diff --git a/components/password_manager/core/browser/password_manager.cc b/comp user_prefs::PrefRegistrySyncable::SYNCABLE_PRIORITY_PREF); registry->RegisterStringPref(prefs::kSyncPasswordHash, std::string(), PrefRegistry::NO_REGISTRATION_FLAGS); -@@ -324,9 +324,9 @@ void PasswordManager::RegisterProfilePrefs( +@@ -361,9 +361,9 @@ void PasswordManager::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); registry->RegisterBooleanPref(prefs::kPasswordsPrefWithNewLabelUsed, false); #if BUILDFLAG(IS_ANDROID) diff --git a/build/patches/DoH-improvements.patch b/build/patches/DoH-improvements.patch index 5e0fd6bd..f7d6bea7 100644 --- a/build/patches/DoH-improvements.patch +++ b/build/patches/DoH-improvements.patch @@ -128,7 +128,7 @@ diff --git a/net/dns/dns_client.cc b/net/dns/dns_client.cc 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 -@@ -639,6 +639,7 @@ void HostResolverManager::SetDnsConfigOverrides(DnsConfigOverrides overrides) { +@@ -640,6 +640,7 @@ void HostResolverManager::SetDnsConfigOverrides(DnsConfigOverrides overrides) { bool changed = dns_client_->SetConfigOverrides(std::move(overrides)); if (changed) { diff --git a/build/patches/Downstream-validate-opaque-origins-checking-their-precursor.patch b/build/patches/Downstream-validate-opaque-origins-checking-their-precursor.patch deleted file mode 100644 index 7a55ce3b..00000000 --- a/build/patches/Downstream-validate-opaque-origins-checking-their-precursor.patch +++ /dev/null @@ -1,201 +0,0 @@ -From: uazo -Date: Mon, 29 Jul 2024 10:22:46 +0000 -Subject: Downstream validate opaque origins checking their precursor - -commit https://source.chromium.org/chromium/chromium/src/+/4043b7370f9b845cd06f07296e115c7094662c66 ---- - content/browser/renderer_host/ipc_utils.cc | 55 +++++++++++++++---- - .../renderer_host/render_frame_host_impl.cc | 47 ++++++++++------ - .../renderer_host/render_frame_host_impl.h | 7 ++- - content/public/browser/render_frame_host.h | 2 +- - 4 files changed, 79 insertions(+), 32 deletions(-) - -diff --git a/content/browser/renderer_host/ipc_utils.cc b/content/browser/renderer_host/ipc_utils.cc ---- a/content/browser/renderer_host/ipc_utils.cc -+++ b/content/browser/renderer_host/ipc_utils.cc -@@ -12,6 +12,7 @@ - #include "content/browser/child_process_security_policy_impl.h" - #include "content/browser/renderer_host/frame_tree_node.h" - #include "content/browser/renderer_host/render_frame_host_impl.h" -+#include "content/common/features.h" - #include "content/common/frame.mojom.h" - #include "content/common/navigation_params_utils.h" - #include "content/public/browser/browser_context.h" -@@ -50,18 +51,48 @@ bool VerifyInitiatorOrigin( - const RenderFrameHostImpl* current_rfh = nullptr, - GURL* navigation_url = nullptr, - std::optional* initiator_frame_token = nullptr) { -- // TODO(acolwell, nasko): https://crbug.com/1029092: Ensure the precursor of -- // opaque origins matches the origin lock. One known problematic case are -- // reloads initiated from error pages - see the following -- // RenderFrameHostManagerTest tests: -- // 1. ErrorPageNavigationReload: -- // - renderer origin lock = chrome-error://chromewebdata/ -- // - precursor of initiator origin = http://127.0.0.1:.../ -- // 2. ErrorPageNavigationReload_InSubframe_BlockedByClient -- // - renderer origin lock = http://b.com:.../ -- // - precursor of initiator origin = http://c.com:.../ -- if (initiator_origin.opaque()) -- return true; -+ // from https://chromium-review.googlesource.com/c/chromium/src/+/5590305 -+ -+ // TODO(crbug.com/40109437): Ideally, origin verification should be performed -+ // even if `initiator_origin` is opaque, to ensure that the precursor origin -+ // matches the process lock. However, there are a couple of cases where this -+ // doesn't yet work, which are documented and skipped below. -+ if (initiator_origin.opaque()) { -+ // TODO(alexmos): This used to allow all opaque origins; this behavior is -+ // now behind a kill switch and should be removed once the rollout in M128 -+ // is complete. -+ if (!base::FeatureList::IsEnabled( -+ features::kAdditionalOpaqueOriginEnforcements)) { -+ return true; -+ } -+ -+ // Reloads initiated from error pages may currently lead to a precursor -+ // mismatch, since the error page loads with an opaque origin with the -+ // original URL's origin as its precursor, which may not match the error -+ // page's process lock. This is seen in the following -+ // RenderFrameHostManagerTest tests: -+ // 1. ErrorPageNavigationReload: -+ // - renderer origin lock = chrome-error://chromewebdata/ -+ // - precursor of initiator origin = http://127.0.0.1:.../ -+ // 2. ErrorPageNavigationReload_InSubframe_BlockedByClient -+ // - renderer origin lock = http://b.com:.../ -+ // - precursor of initiator origin = http://c.com:.../ -+ if (current_rfh && current_rfh->IsErrorDocument()) { -+ return true; -+ } -+ -+ // Certain (e.g., data:) navigations in subframes of MHTML documents may -+ // have precursor origins that do not match the process lock of the MHTML -+ // document. This is seen in NavigationMhtmlBrowserTest.DataIframe, where: -+ // - renderer origin lock = { file:/// sandboxed } -+ // - precursor of initiator origin = http://8.8.8.8/ -+ // Note that RenderFrameHostImpl::CanCommitOriginAndUrl() similarly allows -+ // such navigations to commit, and it also ensures that they can only commit -+ // in the main frame MHTML document's process. -+ if (current_rfh && current_rfh->IsMhtmlSubframe()) { -+ return true; -+ } -+ } - - auto* policy = ChildProcessSecurityPolicyImpl::GetInstance(); - if (!policy->HostsOrigin(process_id, initiator_origin)) { -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 -@@ -2525,7 +2525,7 @@ void RenderFrameHostImpl::GetOpenGraphMetadata( - } - } - --bool RenderFrameHostImpl::IsErrorDocument() { -+bool RenderFrameHostImpl::IsErrorDocument() const { - // This shouldn't be called before committing the document as this value is - // set during call to RenderFrameHostImpl::DidNavigate which happens after - // commit. -@@ -4596,6 +4596,16 @@ void RenderFrameHostImpl::SetOriginDependentStateOfNewFrame( - // object could be configured incorrectly if it were initialized before - // knowing the value of |last_committed_origin_|. More at crbug.com/1112959. - ResetPermissionsPolicy({}); -+ -+ // New empty frames created on error page documents are also considered error -+ // documents. Otherwise, site isolation enforcements would get confused by a -+ // non-error document attempting to do things in an error process. Error pages -+ // do not normally have subframes (or do window.open, which would also go -+ // through here), but it's possible to inject new frames into error pages via -+ // DevTools, for example. -+ if (creator_frame) { -+ is_error_document_ = creator_frame->is_error_document_; -+ } - } - - FrameTreeNode* RenderFrameHostImpl::AddChild( -@@ -10113,6 +10123,10 @@ void RenderFrameHostImpl::ResetWaitingState() { - page_close_state_ = PageCloseState::kNotClosing; - } - -+bool RenderFrameHostImpl::IsMhtmlSubframe() const { -+ return !is_main_frame() && GetMainFrame()->is_mhtml_document(); -+} -+ - CanCommitStatus RenderFrameHostImpl::CanCommitOriginAndUrl( - const url::Origin& origin, - const GURL& url, -@@ -10144,24 +10158,23 @@ CanCommitStatus RenderFrameHostImpl::CanCommitOriginAndUrl( - // which the frame was at the time of generating the MHTML - // (e.g. "http://localhost"). In such cases, don't verify the URL, but require - // the URL to commit in the process of the main frame. -- if (!is_main_frame()) { -+ if (IsMhtmlSubframe()) { - RenderFrameHostImpl* main_frame = GetMainFrame(); -- if (main_frame->is_mhtml_document()) { -- if (IsSameSiteInstance(main_frame)) -- return CanCommitStatus::CAN_COMMIT_ORIGIN_AND_URL; -- -- // If an MHTML subframe commits in a different process (even one that -- // appears correct for the subframe's URL), then we aren't correctly -- // loading it from the archive and should kill the renderer. -- static auto* const oopif_in_mhtml_page_key = -- base::debug::AllocateCrashKeyString( -- "oopif_in_mhtml_page", base::debug::CrashKeySize::Size32); -- base::debug::SetCrashKeyString( -- oopif_in_mhtml_page_key, -- is_mhtml_document() ? "is_mhtml_doc" : "not_mhtml_doc"); -- LogCanCommitOriginAndUrlFailureReason("oopif_in_mhtml_page"); -- return CanCommitStatus::CANNOT_COMMIT_URL; -+ if (IsSameSiteInstance(main_frame)) { -+ return CanCommitStatus::CAN_COMMIT_ORIGIN_AND_URL; - } -+ -+ // If an MHTML subframe commits in a different process (even one that -+ // appears correct for the subframe's URL), then we aren't correctly -+ // loading it from the archive and should kill the renderer. -+ static auto* const oopif_in_mhtml_page_key = -+ base::debug::AllocateCrashKeyString("oopif_in_mhtml_page", -+ base::debug::CrashKeySize::Size32); -+ base::debug::SetCrashKeyString( -+ oopif_in_mhtml_page_key, -+ is_mhtml_document() ? "is_mhtml_doc" : "not_mhtml_doc"); -+ LogCanCommitOriginAndUrlFailureReason("oopif_in_mhtml_page"); -+ return CanCommitStatus::CANNOT_COMMIT_URL; - } - - // Same-document navigations cannot change origins, as long as these checks -diff --git a/content/browser/renderer_host/render_frame_host_impl.h b/content/browser/renderer_host/render_frame_host_impl.h ---- a/content/browser/renderer_host/render_frame_host_impl.h -+++ b/content/browser/renderer_host/render_frame_host_impl.h -@@ -556,7 +556,7 @@ class CONTENT_EXPORT RenderFrameHostImpl - void GetOpenGraphMetadata( - base::OnceCallback callback) - override; -- bool IsErrorDocument() override; -+ bool IsErrorDocument() const override; - DocumentRef GetDocumentRef() override; - WeakDocumentPtr GetWeakDocumentPtr() override; - void EnableMojoJsBindings( -@@ -1717,7 +1717,10 @@ class CONTENT_EXPORT RenderFrameHostImpl - network::mojom::WebSandboxFlags active_sandbox_flags() { - return policy_container_host_->sandbox_flags(); - } -- bool is_mhtml_document() { return is_mhtml_document_; } -+ bool is_mhtml_document() const { return is_mhtml_document_; } -+ -+ // Returns whether this document is a subframe of a MHTML document. -+ bool IsMhtmlSubframe() const; - - ReloadType reload_type() { return reload_type_; } - -diff --git a/content/public/browser/render_frame_host.h b/content/public/browser/render_frame_host.h ---- a/content/public/browser/render_frame_host.h -+++ b/content/public/browser/render_frame_host.h -@@ -1061,7 +1061,7 @@ class CONTENT_EXPORT RenderFrameHost : public IPC::Listener, - // site can’t be reached". - // This can't be called for pending commit RFH because the value is set - // during call to RenderFrameHostImpl::DidNavigate which happens after commit. -- virtual bool IsErrorDocument() = 0; -+ virtual bool IsErrorDocument() const = 0; - - // Return checked and weak references, respectively, to the current document - // in this RenderFrameHost, which will be no longer valid once the --- diff --git a/build/patches/Enable-Android-Dynamic-Performance-Framework.patch b/build/patches/Enable-Android-Dynamic-Performance-Framework.patch index d64e7a00..dcf6c5be 100644 --- a/build/patches/Enable-Android-Dynamic-Performance-Framework.patch +++ b/build/patches/Enable-Android-Dynamic-Performance-Framework.patch @@ -4,26 +4,35 @@ Subject: Enable Android Dynamic Performance Framework License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- - chrome/version.gni | 2 +- + chrome/version.gni | 4 ++-- components/viz/common/features.cc | 2 ++ - 2 files changed, 3 insertions(+), 1 deletion(-) + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/chrome/version.gni b/chrome/version.gni --- a/chrome/version.gni +++ b/chrome/version.gni -@@ -76,7 +76,7 @@ if (is_mac) { - "trichrome_64_version_code = \"@TRICHROME_64_VERSION_CODE@\" " - _version_dictionary_template += +@@ -78,7 +78,7 @@ if (is_mac) { "trichrome_auto_64_version_code = \"@TRICHROME_AUTO_64_VERSION_CODE@\" " + _version_dictionary_template += + "trichrome_desktop_64_version_code = \"@TRICHROME_DESKTOP_64_VERSION_CODE@\" " - if (target_cpu == "arm64") { + if (target_cpu == "arm64" || target_cpu == "x64") { _version_dictionary_template += "trichrome_64_32_high_version_code = \"@TRICHROME_64_32_HIGH_VERSION_CODE@\" " _version_dictionary_template += "trichrome_auto_64_32_high_version_code = \"@TRICHROME_AUTO_64_32_HIGH_VERSION_CODE@\" " } +@@ -190,7 +190,7 @@ if (is_mac) { + chrome_version_name = chrome_version_full + + # There is a different version code only for arm64. +- if (is_high_end_android && target_cpu != "arm64") { ++ if (is_high_end_android && target_cpu == "x64") { + trichrome_64_32_high_beta_version_code = trichrome_64_32_beta_version_code + trichrome_64_32_high_version_code = trichrome_64_32_version_code + trichrome_auto_64_32_high_version_code = trichrome_auto_64_32_version_code diff --git a/components/viz/common/features.cc b/components/viz/common/features.cc --- a/components/viz/common/features.cc +++ b/components/viz/common/features.cc -@@ -318,9 +318,11 @@ const base::FeatureParam kADPFBoostTimeout{ +@@ -289,9 +289,11 @@ const base::FeatureParam kADPFBoostTimeout{ // If enabled, Chrome includes the Renderer Main thread(s) into the // ADPF(Android Dynamic Performance Framework) hint session. diff --git a/build/patches/Enable-Certificate-Transparency.patch b/build/patches/Enable-Certificate-Transparency.patch index 0ed7f62a..3e4873cb 100644 --- a/build/patches/Enable-Certificate-Transparency.patch +++ b/build/patches/Enable-Certificate-Transparency.patch @@ -24,7 +24,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/browser_features.h b/chrome/browser/browser_features.h --- a/chrome/browser/browser_features.h +++ b/chrome/browser/browser_features.h -@@ -21,6 +21,7 @@ namespace features { +@@ -25,6 +25,7 @@ BASE_DECLARE_FEATURE(kAllowUnmutedAutoplayForTWA); BASE_DECLARE_FEATURE(kAutocompleteActionPredictorConfidenceCutoff); BASE_DECLARE_FEATURE(kBookmarksTreeView); BASE_DECLARE_FEATURE(kBookmarkTriggerForPrerender2); @@ -35,7 +35,7 @@ diff --git a/chrome/browser/browser_features.h b/chrome/browser/browser_features diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc --- a/chrome/browser/net/system_network_context_manager.cc +++ b/chrome/browser/net/system_network_context_manager.cc -@@ -1032,7 +1032,7 @@ bool SystemNetworkContextManager::IsCertificateTransparencyEnabled() { +@@ -1012,7 +1012,7 @@ bool SystemNetworkContextManager::IsCertificateTransparencyEnabled() { // - on an opt-in basis for other builds and embedders, controlled with the // kCertificateTransparencyAskBeforeEnabling flag return base::FeatureList::IsEnabled( diff --git a/build/patches/Enable-Do-Not-Track-by-default.patch b/build/patches/Enable-Do-Not-Track-by-default.patch index 1d705767..ad0c1435 100644 --- a/build/patches/Enable-Do-Not-Track-by-default.patch +++ b/build/patches/Enable-Do-Not-Track-by-default.patch @@ -10,13 +10,13 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/components/privacy_sandbox/tracking_protection_prefs.cc b/components/privacy_sandbox/tracking_protection_prefs.cc --- a/components/privacy_sandbox/tracking_protection_prefs.cc +++ b/components/privacy_sandbox/tracking_protection_prefs.cc -@@ -70,7 +70,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { +@@ -78,7 +78,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { prefs::kFingerprintingProtectionEnabled, false, user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); registry->RegisterBooleanPref( - prefs::kEnableDoNotTrack, false, + prefs::kEnableDoNotTrack, true, user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kUserBypass3pcExceptionsMigrated, false); registry->RegisterBooleanPref(prefs::kEnableGPC, true); - } -- diff --git a/build/patches/Enable-Document-Open-Inheritance-Removal.patch b/build/patches/Enable-Document-Open-Inheritance-Removal.patch index e65e89c1..78b352eb 100644 --- a/build/patches/Enable-Document-Open-Inheritance-Removal.patch +++ b/build/patches/Enable-Document-Open-Inheritance-Removal.patch @@ -11,7 +11,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc --- a/third_party/blink/renderer/core/dom/document.cc +++ b/third_party/blink/renderer/core/dom/document.cc -@@ -3537,70 +3537,6 @@ void Document::open(LocalDOMWindow* entered_window, +@@ -3554,70 +3554,6 @@ void Document::open(LocalDOMWindow* entered_window, // https://chromestatus.com/metrics/feature/timeline/popularity/4375 CountUse(WebFeature::kDocumentOpenMutateSandbox); } @@ -85,7 +85,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink 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 -@@ -1359,7 +1359,6 @@ +@@ -1439,7 +1439,6 @@ { name: "DocumentOpenSandboxInheritanceRemoval", status: "stable", diff --git a/build/patches/Enable-Global-Privacy-Control.patch b/build/patches/Enable-Global-Privacy-Control.patch index 64521771..416f8152 100644 --- a/build/patches/Enable-Global-Privacy-Control.patch +++ b/build/patches/Enable-Global-Privacy-Control.patch @@ -72,7 +72,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 -@@ -965,6 +965,7 @@ chrome_java_sources = [ +@@ -961,6 +961,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/settings/AdBlockPreferences.java", "java/src/org/chromium/chrome/browser/policy/PolicyAuditor.java", "java/src/org/chromium/chrome/browser/policy/PolicyAuditorBridge.java", @@ -182,7 +182,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting 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 -@@ -2294,6 +2294,21 @@ +@@ -2296,6 +2296,21 @@ Learn more about Do Not Track @@ -207,7 +207,7 @@ diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp 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 -@@ -371,6 +371,7 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { +@@ -375,6 +375,7 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { (*s_allowlist)[::prefs::kTrackingProtectionLevel] = settings_api::PrefType::kNumber; (*s_allowlist)[::prefs::kEnableDoNotTrack] = settings_api::PrefType::kBoolean; @@ -231,19 +231,19 @@ diff --git a/chrome/browser/renderer_preferences_util.cc b/chrome/browser/render diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resources/settings/BUILD.gn --- a/chrome/browser/resources/settings/BUILD.gn +++ b/chrome/browser/resources/settings/BUILD.gn -@@ -115,6 +115,7 @@ build_webui("build") { +@@ -118,6 +118,7 @@ build_webui("build") { "privacy_page/cookies_page.ts", "privacy_page/fingerprint_progress_arc.ts", "privacy_page/do_not_track_toggle.ts", + "privacy_page/gpc_toggle.ts", "privacy_page/personalization_options.ts", + "privacy_page/privacy_guide/privacy_guide_ad_topics_fragment.ts", "privacy_page/privacy_guide/privacy_guide_completion_fragment.ts", - "privacy_page/privacy_guide/privacy_guide_cookies_fragment.ts", diff --git a/chrome/browser/resources/settings/privacy_page/cookies_page.html b/chrome/browser/resources/settings/privacy_page/cookies_page.html --- a/chrome/browser/resources/settings/privacy_page/cookies_page.html +++ b/chrome/browser/resources/settings/privacy_page/cookies_page.html -@@ -256,6 +256,8 @@ - +@@ -295,6 +295,8 @@ + + @@ -439,7 +439,7 @@ new file mode 100644 diff --git a/chrome/browser/ui/prefs/pref_watcher.cc b/chrome/browser/ui/prefs/pref_watcher.cc --- a/chrome/browser/ui/prefs/pref_watcher.cc +++ b/chrome/browser/ui/prefs/pref_watcher.cc -@@ -164,6 +164,10 @@ void PrefWatcher::OnDoNotTrackEnabledChanged() { +@@ -165,6 +165,10 @@ void PrefWatcher::OnDoNotTrackEnabledChanged() { UpdateRendererPreferences(); } @@ -464,7 +464,7 @@ diff --git a/chrome/browser/ui/prefs/pref_watcher.h b/chrome/browser/ui/prefs/pr diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc --- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc +++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc -@@ -1741,6 +1741,9 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, +@@ -1758,6 +1758,9 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, {"doNotTrackDialogMessage", IDS_SETTINGS_ENABLE_DO_NOT_TRACK_DIALOG_TEXT}, {"doNotTrackDialogLearnMoreA11yLabel", IDS_SETTINGS_ENABLE_DO_NOT_TRACK_DIALOG_LEARN_MORE_ACCESSIBILITY_LABEL}, @@ -477,10 +477,10 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide diff --git a/components/privacy_sandbox/tracking_protection_prefs.cc b/components/privacy_sandbox/tracking_protection_prefs.cc --- a/components/privacy_sandbox/tracking_protection_prefs.cc +++ b/components/privacy_sandbox/tracking_protection_prefs.cc -@@ -72,6 +72,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { - registry->RegisterBooleanPref( +@@ -81,6 +81,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { prefs::kEnableDoNotTrack, false, user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterBooleanPref(prefs::kUserBypass3pcExceptionsMigrated, false); + registry->RegisterBooleanPref(prefs::kEnableGPC, true); } @@ -488,19 +488,19 @@ diff --git a/components/privacy_sandbox/tracking_protection_prefs.cc b/component diff --git a/components/privacy_sandbox/tracking_protection_prefs.h b/components/privacy_sandbox/tracking_protection_prefs.h --- a/components/privacy_sandbox/tracking_protection_prefs.h +++ b/components/privacy_sandbox/tracking_protection_prefs.h -@@ -110,6 +110,8 @@ inline constexpr char kFingerprintingProtectionEnabled[] = +@@ -120,6 +120,8 @@ inline constexpr char kFingerprintingProtectionEnabled[] = // Whether to send the DNT header. inline constexpr char kEnableDoNotTrack[] = "enable_do_not_track"; +inline constexpr char kEnableGPC[] = "enable_gpc"; + - } // namespace prefs - - namespace privacy_sandbox::tracking_protection { + // Whether User Bypass 3PC exceptions have been migrated to Tracking Protection + // exceptions. + inline constexpr char kUserBypass3pcExceptionsMigrated[] = diff --git a/components/privacy_sandbox/tracking_protection_settings.cc b/components/privacy_sandbox/tracking_protection_settings.cc --- a/components/privacy_sandbox/tracking_protection_settings.cc +++ b/components/privacy_sandbox/tracking_protection_settings.cc -@@ -39,6 +39,11 @@ TrackingProtectionSettings::TrackingProtectionSettings( +@@ -40,6 +40,11 @@ TrackingProtectionSettings::TrackingProtectionSettings( base::BindRepeating( &TrackingProtectionSettings::OnDoNotTrackEnabledPrefChanged, base::Unretained(this))); @@ -512,7 +512,7 @@ diff --git a/components/privacy_sandbox/tracking_protection_settings.cc b/compon pref_change_registrar_.Add( prefs::kFingerprintingProtectionEnabled, base::BindRepeating( -@@ -185,6 +190,10 @@ void TrackingProtectionSettings::MaybeInitializeIppPref() { +@@ -200,6 +205,10 @@ void TrackingProtectionSettings::MaybeInitializeIppPref() { pref_service_->SetBoolean(prefs::kIpProtectionInitializedByDogfood, true); } @@ -523,7 +523,7 @@ diff --git a/components/privacy_sandbox/tracking_protection_settings.cc b/compon void TrackingProtectionSettings::OnEnterpriseControlForPrefsChanged() { if (!IsTrackingProtection3pcdEnabled()) { return; -@@ -223,6 +232,12 @@ void TrackingProtectionSettings::OnDoNotTrackEnabledPrefChanged() { +@@ -267,6 +276,12 @@ void TrackingProtectionSettings::OnDoNotTrackEnabledPrefChanged() { } } @@ -539,7 +539,7 @@ diff --git a/components/privacy_sandbox/tracking_protection_settings.cc b/compon diff --git a/components/privacy_sandbox/tracking_protection_settings.h b/components/privacy_sandbox/tracking_protection_settings.h --- a/components/privacy_sandbox/tracking_protection_settings.h +++ b/components/privacy_sandbox/tracking_protection_settings.h -@@ -42,6 +42,8 @@ class TrackingProtectionSettings +@@ -43,6 +43,8 @@ class TrackingProtectionSettings // Returns whether "do not track" is enabled. bool IsDoNotTrackEnabled() const; @@ -548,7 +548,7 @@ diff --git a/components/privacy_sandbox/tracking_protection_settings.h b/compone // Returns whether tracking protection for 3PCD (prefs + UX) is enabled. bool IsTrackingProtection3pcdEnabled() const; -@@ -86,6 +88,7 @@ class TrackingProtectionSettings +@@ -89,6 +91,7 @@ class TrackingProtectionSettings // Callbacks for pref observation. void OnDoNotTrackEnabledPrefChanged(); @@ -587,7 +587,7 @@ diff --git a/content/browser/loader/browser_initiated_resource_request.cc b/cont diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc -@@ -4475,6 +4475,10 @@ void RenderFrameImpl::WillSendRequestInternal( +@@ -4477,6 +4477,10 @@ void RenderFrameImpl::WillSendRequestInternal( request.SetHttpHeaderField( blink::WebString::FromUTF8(blink::kDoNotTrackHeader), "1"); } @@ -671,7 +671,7 @@ diff --git a/third_party/blink/public/mojom/renderer_preferences.mojom b/third_p diff --git a/third_party/blink/renderer/bindings/idl_in_modules.gni b/third_party/blink/renderer/bindings/idl_in_modules.gni --- a/third_party/blink/renderer/bindings/idl_in_modules.gni +++ b/third_party/blink/renderer/bindings/idl_in_modules.gni -@@ -1265,6 +1265,11 @@ static_idl_files_in_modules = [ +@@ -1261,6 +1261,11 @@ static_idl_files_in_modules = [ "//third_party/blink/renderer/modules/xr/xr_webgl_sub_image.idl", ] @@ -686,7 +686,7 @@ diff --git a/third_party/blink/renderer/bindings/idl_in_modules.gni b/third_part diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_party/blink/renderer/core/exported/web_view_impl.cc --- a/third_party/blink/renderer/core/exported/web_view_impl.cc +++ b/third_party/blink/renderer/core/exported/web_view_impl.cc -@@ -3502,6 +3502,9 @@ void WebViewImpl::UpdateRendererPreferences( +@@ -3540,6 +3540,9 @@ void WebViewImpl::UpdateRendererPreferences( GetSettings()->SetCaretBrowsingEnabled( renderer_preferences_.caret_browsing_enabled); @@ -699,7 +699,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p diff --git a/third_party/blink/renderer/modules/BUILD.gn b/third_party/blink/renderer/modules/BUILD.gn --- a/third_party/blink/renderer/modules/BUILD.gn +++ b/third_party/blink/renderer/modules/BUILD.gn -@@ -174,6 +174,10 @@ component("modules") { +@@ -173,6 +173,10 @@ component("modules") { "//third_party/blink/renderer/modules/xr", ] @@ -811,7 +811,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/url_loader/dedicat 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 -@@ -1886,6 +1886,11 @@ +@@ -2022,6 +2022,11 @@ status: "stable", base_feature: "none", }, diff --git a/build/patches/Enable-ImprovedBookmarks-by-default.patch b/build/patches/Enable-ImprovedBookmarks-by-default.patch index 0d148e8c..df34edd3 100644 --- a/build/patches/Enable-ImprovedBookmarks-by-default.patch +++ b/build/patches/Enable-ImprovedBookmarks-by-default.patch @@ -82,7 +82,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm 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 -@@ -845,7 +845,7 @@ public abstract class ChromeFeatureList { +@@ -874,7 +874,7 @@ public abstract class ChromeFeatureList { public static final MutableFlagWithSafeDefault sAdaptiveButtonInTopToolbarCustomizationV2 = newMutableFlagWithSafeDefault(ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_CUSTOMIZATION_V2, false); public static final MutableFlagWithSafeDefault sAndroidImprovedBookmarks = @@ -90,7 +90,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f + newMutableFlagWithSafeDefault(ANDROID_IMPROVED_BOOKMARKS, true); public static final MutableFlagWithSafeDefault sAndroidTabDeclutter = newMutableFlagWithSafeDefault(ANDROID_TAB_DECLUTTER, false); - public static final MutableFlagWithSafeDefault sAndroidTabDeclutterRescueKillSwitch = + public static final MutableFlagWithSafeDefault sAndroidTabDeclutterArchiveAllButActiveTab = diff --git a/components/bookmarks/browser/bookmark_node.cc b/components/bookmarks/browser/bookmark_node.cc --- a/components/bookmarks/browser/bookmark_node.cc +++ b/components/bookmarks/browser/bookmark_node.cc diff --git a/build/patches/Enable-StrictOriginIsolation-and-SitePerProcess.patch b/build/patches/Enable-StrictOriginIsolation-and-SitePerProcess.patch index 2ff98adf..f536213f 100644 --- a/build/patches/Enable-StrictOriginIsolation-and-SitePerProcess.patch +++ b/build/patches/Enable-StrictOriginIsolation-and-SitePerProcess.patch @@ -20,7 +20,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -1531,7 +1531,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs( +@@ -1565,7 +1565,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs( registry->RegisterFilePathPref(prefs::kDiskCacheDir, base::FilePath()); registry->RegisterIntegerPref(prefs::kDiskCacheSize, 0); registry->RegisterStringPref(prefs::kIsolateOrigins, std::string()); @@ -29,7 +29,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch registry->RegisterBooleanPref(prefs::kTabFreezingEnabled, true); registry->RegisterIntegerPref(prefs::kSCTAuditingHashdanceReportCount, 0); #if BUILDFLAG(IS_CHROMEOS) -@@ -1552,7 +1552,7 @@ void ChromeContentBrowserClient::RegisterProfilePrefs( +@@ -1586,7 +1586,7 @@ void ChromeContentBrowserClient::RegisterProfilePrefs( // user policy in addition to the same named ones in Local State (which are // used for mapping the command-line flags). registry->RegisterStringPref(prefs::kIsolateOrigins, std::string()); diff --git a/build/patches/Enable-darken-websites-checkbox-in-themes.patch b/build/patches/Enable-darken-websites-checkbox-in-themes.patch index 1feea0d6..440b6b24 100644 --- a/build/patches/Enable-darken-websites-checkbox-in-themes.patch +++ b/build/patches/Enable-darken-websites-checkbox-in-themes.patch @@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -1850,9 +1850,9 @@ +@@ -1877,9 +1877,9 @@ "expiry_milestone": -1 }, { @@ -26,7 +26,7 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js + "expiry_milestone": -1 }, { - "name": "dcheck-is-fatal", + "name": "dawn-si-reps-use-client-provided-internal-usages", diff --git a/cromite_flags/components/content_settings/core/common/features_cc/Enable-darken-websites-checkbox-in-themes.inc b/cromite_flags/components/content_settings/core/common/features_cc/Enable-darken-websites-checkbox-in-themes.inc new file mode 100644 --- /dev/null diff --git a/build/patches/Enable-gwp-asan-on-Android.patch b/build/patches/Enable-gwp-asan-on-Android.patch index 1360cd36..d0b6e592 100644 --- a/build/patches/Enable-gwp-asan-on-Android.patch +++ b/build/patches/Enable-gwp-asan-on-Android.patch @@ -21,7 +21,7 @@ in android there is a test function accessible in the developer settings. diff --git a/android_webview/lib/aw_main_delegate.cc b/android_webview/lib/aw_main_delegate.cc --- a/android_webview/lib/aw_main_delegate.cc +++ b/android_webview/lib/aw_main_delegate.cc -@@ -399,7 +399,7 @@ void AwMainDelegate::InitializeMemorySystem(const bool is_browser_process) { +@@ -396,7 +396,7 @@ void AwMainDelegate::InitializeMemorySystem(const bool is_browser_process) { const std::string process_type = base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII( switches::kProcessType); @@ -122,7 +122,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tracing/setting diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegate.cc --- a/chrome/app/chrome_main_delegate.cc +++ b/chrome/app/chrome_main_delegate.cc -@@ -2004,7 +2004,7 @@ void ChromeMainDelegate::InitializeMemorySystem() { +@@ -2016,7 +2016,7 @@ void ChromeMainDelegate::InitializeMemorySystem() { const std::string process_type = command_line->GetSwitchValueASCII(switches::kProcessType); const bool is_browser_process = process_type.empty(); @@ -244,7 +244,7 @@ diff --git a/components/gwp_asan/client/gwp_asan.cc b/components/gwp_asan/client diff --git a/components/memory_system/memory_system.cc b/components/memory_system/memory_system.cc --- a/components/memory_system/memory_system.cc +++ b/components/memory_system/memory_system.cc -@@ -197,6 +197,7 @@ void MemorySystem::Impl::Initialize( +@@ -199,6 +199,7 @@ void MemorySystem::Impl::Initialize( if (gwp_asan_parameters) { InitializeGwpASan(*gwp_asan_parameters, initialization_data); diff --git a/build/patches/Enable-menu-on-reload-button.patch b/build/patches/Enable-menu-on-reload-button.patch index bc84e9a1..a99d0094 100644 --- a/build/patches/Enable-menu-on-reload-button.patch +++ b/build/patches/Enable-menu-on-reload-button.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/app/generated_resources.grd b/chrome/app/generated_resources.grd --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd -@@ -4777,10 +4777,10 @@ are declared in tools/grit/grit_rule.gni. +@@ -4762,10 +4762,10 @@ are declared in tools/grit/grit_rule.gni. Normal Reload @@ -30,7 +30,7 @@ diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources diff --git a/chrome/browser/ui/views/toolbar/toolbar_view.cc b/chrome/browser/ui/views/toolbar/toolbar_view.cc --- a/chrome/browser/ui/views/toolbar/toolbar_view.cc +++ b/chrome/browser/ui/views/toolbar/toolbar_view.cc -@@ -558,7 +558,7 @@ void ToolbarView::Update(WebContents* tab) { +@@ -574,7 +574,7 @@ void ToolbarView::Update(WebContents* tab) { } if (reload_) diff --git a/build/patches/Enable-native-Android-autofill.patch b/build/patches/Enable-native-Android-autofill.patch index ff9bce38..91fecc5f 100644 --- a/build/patches/Enable-native-Android-autofill.patch +++ b/build/patches/Enable-native-Android-autofill.patch @@ -18,14 +18,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../settings/PasswordSettings.java | 82 ++++++++++++++++++- .../chrome/browser/settings/MainSettings.java | 3 +- .../chromium/chrome/browser/tab/TabImpl.java | 43 ++++++++-- - chrome/browser/about_flags.cc | 22 ----- + chrome/browser/about_flags.cc | 31 ------- chrome/browser/android/tab_android.cc | 3 +- chrome/browser/autofill/android/BUILD.gn | 2 +- .../autofill/AutofillClientProviderUtils.java | 2 +- chrome/browser/flag_descriptions.cc | 6 -- chrome/browser/flag_descriptions.h | 3 - .../strings/android_chrome_strings.grd | 6 ++ - .../ui/autofill/autofill_client_provider.cc | 34 +------- + .../ui/autofill/autofill_client_provider.cc | 78 +----------------- .../ui/autofill/autofill_client_provider.h | 6 -- chrome/browser/ui/tab_helpers.cc | 4 +- components/android_autofill/browser/BUILD.gn | 1 + @@ -44,10 +44,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../core/browser/browser_autofill_manager.cc | 2 + .../core/browser/browser_autofill_manager.h | 2 + .../autofill/core/common/autofill_features.cc | 2 +- - .../autofill/core/common/autofill_features.h | 4 - + .../autofill/core/common/autofill_features.h | 22 ----- .../autofill/core/common/autofill_prefs.cc | 4 +- .../autofill/core/common/autofill_prefs.h | 5 ++ - 32 files changed, 268 insertions(+), 96 deletions(-) + 32 files changed, 268 insertions(+), 167 deletions(-) create mode 100644 components/android_autofill/browser/java/src/org/chromium/components/autofill/BrowserSelectionActionMenuDelegate.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java @@ -187,7 +187,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java -@@ -436,8 +436,7 @@ public class MainSettings extends ChromeBaseSettingsFragment +@@ -457,8 +457,7 @@ public class MainSettings extends ChromeBaseSettingsFragment private void updateAutofillPreferences() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O @@ -214,7 +214,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav /** * Implementation of the interface {@link Tab}. Contains and manages a {@link ContentView}. This * class is not intended to be extended. -@@ -984,6 +991,11 @@ class TabImpl implements Tab { +@@ -995,6 +1002,11 @@ class TabImpl implements Tab { for (TabObserver observer : mObservers) observer.onDestroyed(this); mObservers.clear(); @@ -226,7 +226,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav mUserDataHost.destroy(); mTabViewManager.destroy(); hideNativePage(false, null); -@@ -1256,8 +1268,7 @@ class TabImpl implements Tab { +@@ -1267,8 +1279,7 @@ class TabImpl implements Tab { */ boolean providesAutofillStructure() { // TODO(b/326231439): Check pref and AutofillService! @@ -236,7 +236,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav } // Forwarded from TabWebContentsDelegateAndroid. -@@ -1972,15 +1983,20 @@ class TabImpl implements Tab { +@@ -1999,15 +2010,20 @@ class TabImpl implements Tab { * @return true if the the provider is available for the given WebContents. */ private boolean prepareAutofillProvider(WebContents newWebContents) { @@ -263,7 +263,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav mAutofillProvider = new AutofillProvider( getContext(), -@@ -1989,7 +2005,16 @@ class TabImpl implements Tab { +@@ -2016,7 +2032,16 @@ class TabImpl implements Tab { getContext().getString(R.string.app_name)); TabImplJni.get().initializeAutofillIfNecessary(mNativeTabAndroid); } @@ -284,27 +284,36 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -3948,19 +3948,6 @@ const FeatureEntry::FeatureVariation kAutofillGranularFillingAvailableVariations +@@ -3918,28 +3918,6 @@ const FeatureEntry::FeatureVariation kAutofillGranularFillingAvailableVariations kAutofillGranularFillingAvailableVariationWithExpandControlVisibleOnSelectionOnly), nullptr}}; -#if BUILDFLAG(IS_ANDROID) -inline constexpr flags_ui::FeatureEntry::FeatureParam -- kAutofillVirtualViewStructureAndroidSkipsCompatibilityCheckParam = { +- kAutofillVirtualViewStructureAndroidSkipCompatibilityCheck = { - autofill::features:: - kAutofillVirtualViewStructureAndroidSkipsCompatibilityCheck.name, -- "true"}; +- "skip_all_checks"}; +-inline constexpr flags_ui::FeatureEntry::FeatureParam +- kAutofillVirtualViewStructureAndroidOnlySkipAwgCheck = { +- autofill::features:: +- kAutofillVirtualViewStructureAndroidSkipsCompatibilityCheck.name, +- "only_skip_awg_check"}; +- -inline constexpr flags_ui::FeatureEntry::FeatureVariation - kAutofillVirtualViewStructureVariation[] = { -- {"Enabled without compatibility check", -- &kAutofillVirtualViewStructureAndroidSkipsCompatibilityCheckParam, 1, -- nullptr}}; +- {" without any compatibility check", +- &kAutofillVirtualViewStructureAndroidSkipCompatibilityCheck, 1, +- nullptr}, +- {" without AwG restriction", +- &kAutofillVirtualViewStructureAndroidOnlySkipAwgCheck, 1, nullptr}}; +- -#endif // BUILDFLAG(IS_ANDROID) - const FeatureEntry::FeatureParam kDefaultBrowserPromptRefreshAggressive[] = { {"max_prompt_count", "-1"}, {"reprompt_duration", "7d"}, -@@ -6030,15 +6017,6 @@ const FeatureEntry kFeatureEntries[] = { +@@ -6144,15 +6122,6 @@ const FeatureEntry kFeatureEntries[] = { #endif // BUILDFLAG(IS_CHROMEOS_ASH) #if BUILDFLAG(IS_ANDROID) @@ -323,8 +332,8 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/android/tab_android.cc b/chrome/browser/android/tab_android.cc --- a/chrome/browser/android/tab_android.cc +++ b/chrome/browser/android/tab_android.cc -@@ -360,8 +360,7 @@ void TabAndroid::InitializeAutofillIfNecessary(JNIEnv* env) { - if (autofill::ContentAutofillClient::FromWebContents(web_contents_.get())) { +@@ -368,8 +368,7 @@ void TabAndroid::InitializeAutofillIfNecessary(JNIEnv* env) { + ->MaybeInitKeyboardSuppressor(); return; } - android_autofill::AndroidAutofillClient::CreateForWebContents( @@ -336,7 +345,7 @@ diff --git a/chrome/browser/android/tab_android.cc b/chrome/browser/android/tab_ diff --git a/chrome/browser/autofill/android/BUILD.gn b/chrome/browser/autofill/android/BUILD.gn --- a/chrome/browser/autofill/android/BUILD.gn +++ b/chrome/browser/autofill/android/BUILD.gn -@@ -124,7 +124,7 @@ android_library("bottom_sheet_utils_java") { +@@ -125,7 +125,7 @@ android_library("bottom_sheet_utils_java") { generate_jni("jni_headers") { sources = [ "java/src/org/chromium/chrome/browser/autofill/AddressNormalizerFactory.java", @@ -348,22 +357,22 @@ diff --git a/chrome/browser/autofill/android/BUILD.gn b/chrome/browser/autofill/ diff --git a/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/AutofillClientProviderUtils.java b/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/AutofillClientProviderUtils.java --- a/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/AutofillClientProviderUtils.java +++ b/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/AutofillClientProviderUtils.java -@@ -37,8 +37,8 @@ public class AutofillClientProviderUtils { - * Android: The AutofillManager exists, is enabled, and its provider is not Autofill with - * Google. +@@ -45,8 +45,8 @@ public class AutofillClientProviderUtils { + * @return {@link AndroidAutofillAvailabilityStatus.AVAILABLE} if Android Autofill can be used + * or a reason why it can't. */ - @CalledByNative - public static boolean isAllowedToUseAndroidAutofillFramework() { -+ if ((true)) return true; - if (sAllowedToUseAutofillFrameworkForTesting != null) { - return sAllowedToUseAutofillFrameworkForTesting; + public static int getAndroidAutofillFrameworkAvailability(PrefService prefs) { ++ if ((true)) return AndroidAutofillAvailabilityStatus.AVAILABLE; + if (sAndroidAutofillFrameworkAvailabilityForTesting != null) { + return sAndroidAutofillFrameworkAvailabilityForTesting; } diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -652,12 +652,6 @@ const char kAutofillUpstreamUpdatedUiDescription[] = - "When enabled, shows different text and images in the UI of the credit " - "card upload save bubble."; +@@ -675,12 +675,6 @@ const char kAutofillVcnEnrollRequestTimeoutDescription[] = + "VCN enrollment request. Upon timeout, the client will terminate the VCN " + "enrollment UI, but the request may still succeed server-side."; -const char kAutofillVirtualViewStructureAndroidName[] = - "Enable the setting to provide a virtual view structure for Autofill"; @@ -377,9 +386,9 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -388,9 +388,6 @@ extern const char kAutofillSyncEwalletAccountsDescription[]; - extern const char kAutofillUpstreamUpdatedUiName[]; - extern const char kAutofillUpstreamUpdatedUiDescription[]; +@@ -399,9 +399,6 @@ extern const char kAutofillUpstreamUpdatedUiDescription[]; + extern const char kAutofillVcnEnrollRequestTimeoutName[]; + extern const char kAutofillVcnEnrollRequestTimeoutDescription[]; -extern const char kAutofillVirtualViewStructureAndroidName[]; -extern const char kAutofillVirtualViewStructureAndroidDescription[]; @@ -390,7 +399,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -673,6 +673,12 @@ For more settings that use data to improve your Chrome experience, go to Save passwords @@ -406,53 +415,95 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/browser/ui/autofill/autofill_client_provider.cc b/chrome/browser/ui/autofill/autofill_client_provider.cc --- a/chrome/browser/ui/autofill/autofill_client_provider.cc +++ b/chrome/browser/ui/autofill/autofill_client_provider.cc -@@ -13,7 +13,6 @@ +@@ -13,8 +13,6 @@ #if BUILDFLAG(IS_ANDROID) #include "base/android/jni_android.h" +-#include "chrome/browser/autofill/android/android_autofill_availability_status.h" -#include "chrome/browser/autofill/android/jni_headers/AutofillClientProviderUtils_jni.h" #include "chrome/browser/keyboard_accessory/android/manual_filling_controller_impl.h" #include "components/android_autofill/browser/android_autofill_client.h" #endif // BUILDFLAG(IS_ANDROID) -@@ -21,35 +20,14 @@ +@@ -22,76 +20,12 @@ namespace autofill { namespace { --bool UsesVirtualViewStructureForAutofill(const PrefService* prefs) { -#if BUILDFLAG(IS_ANDROID) -- if (!base::FeatureList::IsEnabled( -- features::kAutofillVirtualViewStructureAndroid)) { -- return false; +-AndroidAutofillAvailabilityStatus GetAndroidAutofillAvailabilityStatus( +- PrefService& prefs) { +- return static_cast( +- Java_AutofillClientProviderUtils_getAndroidAutofillFrameworkAvailability( +- base::android::AttachCurrentThread(), prefs.GetJavaObject())); +-} +-#endif +- +-#if BUILDFLAG(IS_ANDROID) +-void RecordAvailabilityStatus(AndroidAutofillAvailabilityStatus availability) { +- base::UmaHistogramEnumeration("Autofill.AndroidAutofillAvailabilityStatus", +- availability); +-} +- +-// Counts how often the Chrome pref is reset because an platform autofill +-// isn't allowed or doesn't fulfill all preconditions. +-void RecordWhetherAndroidPrefResets(PrefService& prefs, +- bool uses_platform_autofill) { +- const bool will_reset_pref = +- prefs.GetBoolean(prefs::kAutofillUsingVirtualViewStructure) && +- !uses_platform_autofill; +- base::UmaHistogramBoolean("Autofill.ResetAutofillPrefToChrome", +- will_reset_pref); +-} +-#endif // BUILDFLAG(IS_ANDROID) +- +-bool UsesVirtualViewStructureForAutofill(PrefService& prefs) { +-#if BUILDFLAG(IS_ANDROID) +- const AndroidAutofillAvailabilityStatus availability = +- GetAndroidAutofillAvailabilityStatus(prefs); +- RecordAvailabilityStatus(availability); +- switch (availability) { +- case AndroidAutofillAvailabilityStatus::kAvailable: +- return true; +- case AndroidAutofillAvailabilityStatus::kSettingTurnedOff: +- case AndroidAutofillAvailabilityStatus::kNotAllowedByPolicy: +- return false; +- case AndroidAutofillAvailabilityStatus::kAndroidVersionTooOld: +- case AndroidAutofillAvailabilityStatus::kAndroidAutofillManagerNotAvailable: +- case AndroidAutofillAvailabilityStatus::kAndroidAutofillNotSupported: +- case AndroidAutofillAvailabilityStatus::kUnknownAndroidAutofillService: +- return features:: +- kAutofillVirtualViewStructureAndroidSkipsCompatibilityCheck +- .Get() == +- features::VirtualViewStructureSkipChecks::kSkipAllChecks; +- case AndroidAutofillAvailabilityStatus::kAndroidAutofillServiceIsGoogle: +- return features:: +- kAutofillVirtualViewStructureAndroidSkipsCompatibilityCheck +- .Get() == +- features::VirtualViewStructureSkipChecks::kSkipAllChecks || +- features:: +- kAutofillVirtualViewStructureAndroidSkipsCompatibilityCheck +- .Get() == +- features::VirtualViewStructureSkipChecks::kOnlySkipAwGCheck; - } -- if (!prefs->GetBoolean(prefs::kAutofillThirdPartyPasswordManagersAllowed)) { -- return false; -- } -- if (!prefs->GetBoolean(prefs::kAutofillUsingVirtualViewStructure)) { -- return false; -- } -- return features::kAutofillVirtualViewStructureAndroidSkipsCompatibilityCheck -- .Get() || -- Java_AutofillClientProviderUtils_isAllowedToUseAndroidAutofillFramework( -- base::android::AttachCurrentThread()); -#else - return false; -#endif // BUILDFLAG(IS_ANDROID) -} - +- } // namespace -AutofillClientProvider::AutofillClientProvider(PrefService* prefs) -- : uses_platform_autofill_(UsesVirtualViewStructureForAutofill(prefs)) { +- : uses_platform_autofill_(UsesVirtualViewStructureForAutofill(*prefs)) { +AutofillClientProvider::AutofillClientProvider(PrefService* prefs) { #if BUILDFLAG(IS_ANDROID) - // Ensure the pref is reset if platform autofill is restricted. +- RecordWhetherAndroidPrefResets(*prefs, uses_platform_autofill_); +- // Ensure the pref is reset if platform autofill is restricted. prefs->SetBoolean(prefs::kAutofillUsingVirtualViewStructure, - uses_platform_autofill_); + true); #endif // BUILDFLAG(IS_ANDROID) } -@@ -57,15 +35,7 @@ AutofillClientProvider::~AutofillClientProvider() = default; +@@ -99,15 +33,7 @@ AutofillClientProvider::~AutofillClientProvider() = default; void AutofillClientProvider::CreateClientForWebContents( content::WebContents* web_contents) { @@ -488,7 +539,7 @@ diff --git a/chrome/browser/ui/autofill/autofill_client_provider.h b/chrome/brow diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc --- a/chrome/browser/ui/tab_helpers.cc +++ b/chrome/browser/ui/tab_helpers.cc -@@ -382,9 +382,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -380,9 +380,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { web_contents); chrome::ChainedBackNavigationTracker::CreateForWebContents(web_contents); chrome_browser_net::NetErrorTabHelper::CreateForWebContents(web_contents); @@ -573,7 +624,7 @@ diff --git a/components/android_autofill/browser/java/src/org/chromium/component diff --git a/components/android_autofill/browser/java/src/org/chromium/components/autofill/AutofillProvider.java b/components/android_autofill/browser/java/src/org/chromium/components/autofill/AutofillProvider.java --- a/components/android_autofill/browser/java/src/org/chromium/components/autofill/AutofillProvider.java +++ b/components/android_autofill/browser/java/src/org/chromium/components/autofill/AutofillProvider.java -@@ -193,13 +193,19 @@ public class AutofillProvider { +@@ -196,13 +196,19 @@ public class AutofillProvider { /** @return whether query autofill suggestion. */ public boolean shouldQueryAutofillSuggestion() { @@ -593,7 +644,7 @@ diff --git a/components/android_autofill/browser/java/src/org/chromium/component FocusField focusField = mRequest.getFocusField(); mAutofillManager.requestAutofill( mContainerView, -@@ -259,6 +265,7 @@ public class AutofillProvider { +@@ -262,6 +268,7 @@ public class AutofillProvider { float width, float height, boolean hasServerPrediction) { @@ -685,7 +736,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co }, source, Lift(source, std::forward(args))...); } -@@ -589,6 +596,8 @@ void ContentAutofillDriver::JavaScriptChangedAutofilledValue( +@@ -592,6 +599,8 @@ void ContentAutofillDriver::JavaScriptChangedAutofilledValue( void ContentAutofillDriver::Reset() { owner_->router().UnregisterDriver(*this, /*driver_is_dying=*/false); autofill_manager_->Reset(); @@ -694,7 +745,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co } const mojo::AssociatedRemote& -@@ -601,6 +610,10 @@ ContentAutofillDriver::GetAutofillAgent() { +@@ -604,6 +613,10 @@ ContentAutofillDriver::GetAutofillAgent() { return autofill_agent_; } @@ -735,7 +786,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.h b/com diff --git a/components/autofill/content/browser/content_autofill_driver_factory.cc b/components/autofill/content/browser/content_autofill_driver_factory.cc --- a/components/autofill/content/browser/content_autofill_driver_factory.cc +++ b/components/autofill/content/browser/content_autofill_driver_factory.cc -@@ -21,6 +21,12 @@ +@@ -22,6 +22,12 @@ #include "content/public/browser/web_contents.h" #include "third_party/blink/public/common/features.h" @@ -748,7 +799,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver_factory namespace autofill { class ScopedAutofillManagersObservation; -@@ -95,6 +101,12 @@ ContentAutofillDriver* ContentAutofillDriverFactory::DriverForFrame( +@@ -98,6 +104,12 @@ ContentAutofillDriver* ContentAutofillDriverFactory::DriverForFrame( // 5. `render_frame_host->~RenderFrameHostImpl()` finishes. if (render_frame_host->IsRenderFrameLive()) { driver = std::make_unique(render_frame_host, this); @@ -764,7 +815,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver_factory diff --git a/components/autofill/content/renderer/autofill_agent.cc b/components/autofill/content/renderer/autofill_agent.cc --- a/components/autofill/content/renderer/autofill_agent.cc +++ b/components/autofill/content/renderer/autofill_agent.cc -@@ -1250,12 +1250,16 @@ void AutofillAgent::ShowSuggestions( +@@ -1440,12 +1440,16 @@ void AutofillAgent::ShowSuggestions( password_generation_agent_->ShowPasswordGenerationSuggestions( input_element)) { is_popup_possibly_visible_ = true; @@ -781,12 +832,12 @@ diff --git a/components/autofill/content/renderer/autofill_agent.cc b/components } } -@@ -1266,10 +1270,12 @@ void AutofillAgent::ShowSuggestions( - // parenthesis to not match a regex). In this specific case we are actually - // interested in whether the field is currently a password field, not whether - // it has ever been a password field. +@@ -1454,10 +1458,12 @@ void AutofillAgent::ShowSuggestions( + // IsPasswordFieldForAutofill() because we are interested in whether the field + // is *currently* a password field, not whether it has ever been a password + // field. +#if !BUILDFLAG(IS_ANDROID) - if (input_element && input_element.IsPasswordField /*disable presubmit*/ () && + if (input_element && input_element.IsPasswordField() && // nocheck !config_.query_password_suggestions) { return; } @@ -797,10 +848,10 @@ diff --git a/components/autofill/content/renderer/autofill_agent.cc b/components diff --git a/components/autofill/content/renderer/password_autofill_agent.cc b/components/autofill/content/renderer/password_autofill_agent.cc --- a/components/autofill/content/renderer/password_autofill_agent.cc +++ b/components/autofill/content/renderer/password_autofill_agent.cc -@@ -849,7 +849,10 @@ void PasswordAutofillAgent::UpdatePasswordStateForTextChange( +@@ -857,7 +857,10 @@ void PasswordAutofillAgent::UpdatePasswordStateForTextChange( void PasswordAutofillAgent::TrackAutofilledElement( - const blink::WebFormControlElement& element) { + const WebFormControlElement& element) { - autofill_agent_->TrackAutofilledElement(element); + // fix for https://github.com/bromite/bromite/issues/1570 + AutofillAgent* agent = autofill_agent_.get(); @@ -836,7 +887,7 @@ diff --git a/components/autofill/core/browser/autofill_manager.h b/components/au diff --git a/components/autofill/core/browser/browser_autofill_manager.cc b/components/autofill/core/browser/browser_autofill_manager.cc --- a/components/autofill/core/browser/browser_autofill_manager.cc +++ b/components/autofill/core/browser/browser_autofill_manager.cc -@@ -693,6 +693,8 @@ BrowserAutofillManager::~BrowserAutofillManager() { +@@ -697,6 +697,8 @@ BrowserAutofillManager::~BrowserAutofillManager() { // (due to a navigation). } @@ -848,7 +899,7 @@ diff --git a/components/autofill/core/browser/browser_autofill_manager.cc b/comp diff --git a/components/autofill/core/browser/browser_autofill_manager.h b/components/autofill/core/browser/browser_autofill_manager.h --- a/components/autofill/core/browser/browser_autofill_manager.h +++ b/components/autofill/core/browser/browser_autofill_manager.h -@@ -146,6 +146,8 @@ class BrowserAutofillManager : public AutofillManager { +@@ -106,6 +106,8 @@ class BrowserAutofillManager : public AutofillManager { ~BrowserAutofillManager() override; @@ -856,11 +907,11 @@ diff --git a/components/autofill/core/browser/browser_autofill_manager.h b/compo + // Whether the |field| should show an entry to scan a credit card. virtual bool ShouldShowScanCreditCard(const FormData& form, - const FormFieldData& field) const; + const FormFieldData& field); diff --git a/components/autofill/core/common/autofill_features.cc b/components/autofill/core/common/autofill_features.cc --- a/components/autofill/core/common/autofill_features.cc +++ b/components/autofill/core/common/autofill_features.cc -@@ -779,7 +779,7 @@ BASE_FEATURE(kAutofillEnableSecurityTouchEventFilteringAndroid, +@@ -834,7 +834,7 @@ BASE_FEATURE(kAutofillEnableSecurityTouchEventFilteringAndroid, BASE_FEATURE(kAutofillVirtualViewStructureAndroid, "AutofillVirtualViewStructureAndroid", base::FEATURE_DISABLED_BY_DEFAULT); @@ -872,21 +923,39 @@ diff --git a/components/autofill/core/common/autofill_features.cc b/components/a diff --git a/components/autofill/core/common/autofill_features.h b/components/autofill/core/common/autofill_features.h --- a/components/autofill/core/common/autofill_features.h +++ b/components/autofill/core/common/autofill_features.h -@@ -242,10 +242,6 @@ BASE_DECLARE_FEATURE(kAutofillEnableSecurityTouchEventFilteringAndroid); - +@@ -284,28 +284,6 @@ COMPONENT_EXPORT(AUTOFILL) + BASE_DECLARE_FEATURE(kAutofillEnableSecurityTouchEventFilteringAndroid); COMPONENT_EXPORT(AUTOFILL) BASE_DECLARE_FEATURE(kAutofillVirtualViewStructureAndroid); --inline constexpr base::FeatureParam +- +-// Used as param for `kAutofillVirtualViewStructureAndroid` to allow +-// skipping certain checks when testing manually. +-enum class VirtualViewStructureSkipChecks { +- kDontSkip = 0, +- kSkipAllChecks = 1, +- kOnlySkipAwGCheck = 2, +-}; +- +-inline constexpr base::FeatureParam::Option +- kVirtualViewStructureSkipChecksOption[] = { +- {VirtualViewStructureSkipChecks::kDontSkip, "dont_skip"}, +- {VirtualViewStructureSkipChecks::kSkipAllChecks, "skip_all_checks"}, +- {VirtualViewStructureSkipChecks::kOnlySkipAwGCheck, +- "only_skip_awg_check"}, +-}; +-inline constexpr base::FeatureParam - kAutofillVirtualViewStructureAndroidSkipsCompatibilityCheck{ - &kAutofillVirtualViewStructureAndroid, "skip_compatibility_check", -- false}; +- VirtualViewStructureSkipChecks::kDontSkip, +- &kVirtualViewStructureSkipChecksOption}; +- #endif // BUILDFLAG(IS_ANDROID) #if BUILDFLAG(IS_APPLE) diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/autofill/core/common/autofill_prefs.cc --- a/components/autofill/core/common/autofill_prefs.cc +++ b/components/autofill/core/common/autofill_prefs.cc -@@ -66,6 +66,8 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -67,6 +67,8 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref( prefs::kAutofillCreditCardFidoAuthOfferCheckboxState, true); #endif @@ -895,7 +964,7 @@ diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/auto registry->RegisterIntegerPref(prefs::kAutocompleteLastVersionRetentionPolicy, 0); registry->RegisterStringPref(prefs::kAutofillUploadEncodingSeed, ""); -@@ -107,7 +109,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -109,7 +111,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { #if BUILDFLAG(IS_ANDROID) registry->RegisterBooleanPref(prefs::kAutofillUsingVirtualViewStructure, @@ -907,7 +976,7 @@ diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/auto diff --git a/components/autofill/core/common/autofill_prefs.h b/components/autofill/core/common/autofill_prefs.h --- a/components/autofill/core/common/autofill_prefs.h +++ b/components/autofill/core/common/autofill_prefs.h -@@ -100,6 +100,11 @@ inline constexpr char kAutofillUploadEventsLastResetTimestamp[] = +@@ -104,6 +104,11 @@ inline constexpr char kAutofillUploadEventsLastResetTimestamp[] = // retention policy was run. inline constexpr char kAutocompleteLastVersionRetentionPolicy[] = "autocomplete.retention_policy_last_version"; diff --git a/build/patches/Enable-network-isolation-features.patch b/build/patches/Enable-network-isolation-features.patch index c66b6fe3..4b9d384e 100644 --- a/build/patches/Enable-network-isolation-features.patch +++ b/build/patches/Enable-network-isolation-features.patch @@ -9,9 +9,9 @@ PartitionNelAndReportingByNetworkIsolationKey License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../base/features_cc/Enable-network-isolation-features.inc | 6 ++++++ - .../cpp/features_cc/Enable-network-isolation-features.inc | 1 + - 2 files changed, 7 insertions(+) + .../net/base/features_cc/Enable-network-isolation-features.inc | 3 +++ + .../cpp/features_cc/Enable-network-isolation-features.inc | 1 + + 2 files changed, 4 insertions(+) create mode 100644 cromite_flags/net/base/features_cc/Enable-network-isolation-features.inc create mode 100644 cromite_flags/services/network/public/cpp/features_cc/Enable-network-isolation-features.inc @@ -19,13 +19,10 @@ diff --git a/cromite_flags/net/base/features_cc/Enable-network-isolation-feature new file mode 100644 --- /dev/null +++ b/cromite_flags/net/base/features_cc/Enable-network-isolation-features.inc -@@ -0,0 +1,6 @@ +@@ -0,0 +1,3 @@ +SET_CROMITE_FEATURE_ENABLED(kSplitCacheByNetworkIsolationKey); +SET_CROMITE_FEATURE_ENABLED(kSplitCodeCacheByNetworkIsolationKey); +SET_CROMITE_FEATURE_ENABLED(kPartitionConnectionsByNetworkIsolationKey); -+ -+SET_CROMITE_FEATURE_DISABLED(kEnableCrossSiteFlagNetworkIsolationKey); -+SET_CROMITE_FEATURE_DISABLED(kEnableFrameSiteSharedOpaqueNetworkIsolationKey); diff --git a/cromite_flags/services/network/public/cpp/features_cc/Enable-network-isolation-features.inc b/cromite_flags/services/network/public/cpp/features_cc/Enable-network-isolation-features.inc new file mode 100644 --- /dev/null diff --git a/build/patches/Enable-percent-based-scrolling-on-Windows.patch b/build/patches/Enable-percent-based-scrolling-on-Windows.patch index 3db3146d..b0e63961 100644 --- a/build/patches/Enable-percent-based-scrolling-on-Windows.patch +++ b/build/patches/Enable-percent-based-scrolling-on-Windows.patch @@ -14,7 +14,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html 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 -@@ -172,6 +172,9 @@ static_assert(!BUILDFLAG(IS_MAC) || +@@ -186,6 +186,9 @@ static_assert(!BUILDFLAG(IS_MAC) || BASE_FEATURE(kWindowsScrollingPersonality, "WindowsScrollingPersonality", kWindowsScrollingPersonalityDefaultStatus); diff --git a/build/patches/Enable-platform-aac-audio-and-h264-video.patch b/build/patches/Enable-platform-aac-audio-and-h264-video.patch index 84882b11..fdd54b0b 100644 --- a/build/patches/Enable-platform-aac-audio-and-h264-video.patch +++ b/build/patches/Enable-platform-aac-audio-and-h264-video.patch @@ -69,7 +69,7 @@ diff --git a/media/base/android/media_codec_util.cc b/media/base/android/media_c diff --git a/media/base/win/mf_helpers.cc b/media/base/win/mf_helpers.cc --- a/media/base/win/mf_helpers.cc +++ b/media/base/win/mf_helpers.cc -@@ -18,6 +18,7 @@ +@@ -19,6 +19,7 @@ #include "base/check_op.h" #include "base/win/scoped_co_mem.h" #include "base/win/windows_version.h" @@ -77,7 +77,7 @@ diff --git a/media/base/win/mf_helpers.cc b/media/base/win/mf_helpers.cc #include "media/base/audio_codecs.h" #include "media/base/audio_decoder_config.h" #include "media/base/channel_layout.h" -@@ -464,7 +465,11 @@ HRESULT GetAacAudioType(const AudioDecoderConfig& decoder_config, +@@ -467,7 +468,11 @@ HRESULT GetAacAudioType(const AudioDecoderConfig& decoder_config, size_t extra_size = wave_format_size - sizeof(WAVEFORMATEX); aac_wave_format->wfx.cbSize = static_cast(extra_size); @@ -131,7 +131,7 @@ diff --git a/media/filters/ffmpeg_video_decoder.cc b/media/filters/ffmpeg_video_ #include "media/base/decoder_buffer.h" #include "media/base/limits.h" #include "media/base/media_log.h" -@@ -123,6 +124,16 @@ static void ReleaseVideoBufferImpl(void* opaque, uint8_t* data) { +@@ -120,6 +121,16 @@ static void ReleaseVideoBufferImpl(void* opaque, uint8_t* data) { // static bool FFmpegVideoDecoder::IsCodecSupported(VideoCodec codec) { @@ -184,7 +184,7 @@ diff --git a/media/filters/win/media_foundation_audio_decoder.cc b/media/filters diff --git a/media/gpu/windows/supported_profile_helpers.cc b/media/gpu/windows/supported_profile_helpers.cc --- a/media/gpu/windows/supported_profile_helpers.cc +++ b/media/gpu/windows/supported_profile_helpers.cc -@@ -252,7 +252,11 @@ SupportedResolutionRangeMap GetSupportedD3DVideoDecoderResolutions( +@@ -248,7 +248,11 @@ SupportedResolutionRangeMap GetSupportedD3DVideoDecoderResolutions( // // On Windows 7 the maximum resolution supported by media foundation is // 1920 x 1088. We use 1088 to account for 16x16 macro-blocks. @@ -196,7 +196,7 @@ diff --git a/media/gpu/windows/supported_profile_helpers.cc b/media/gpu/windows/ SupportedResolutionRange h264_profile; h264_profile.min_resolution = kMinResolution; h264_profile.max_landscape_resolution = kDefaultMaxH264Resolution; -@@ -260,7 +264,14 @@ SupportedResolutionRangeMap GetSupportedD3DVideoDecoderResolutions( +@@ -256,7 +260,14 @@ SupportedResolutionRangeMap GetSupportedD3DVideoDecoderResolutions( // We don't have a way to map DXVA support to specific H.264 profiles, so just // mark all the common ones with the same level of support. constexpr VideoCodecProfile kSupportedH264Profiles[] = { diff --git a/build/patches/Enable-search-engine-settings-desktop-ui.patch b/build/patches/Enable-search-engine-settings-desktop-ui.patch index aac64460..f7117e20 100644 --- a/build/patches/Enable-search-engine-settings-desktop-ui.patch +++ b/build/patches/Enable-search-engine-settings-desktop-ui.patch @@ -44,8 +44,8 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../settings_localized_strings_provider.cc | 8 + ...ings_localized_strings_provider_android.cc | 198 +++++++++++++ ...tings_localized_strings_provider_android.h | 19 ++ - .../ui/webui/settings/settings_ui_android.cc | 134 +++++++++ - .../ui/webui/settings/settings_ui_android.h | 119 ++++++++ + .../ui/webui/settings/settings_ui_android.cc | 126 +++++++++ + .../ui/webui/settings/settings_ui_android.h | 103 +++++++ chrome/chrome_paks.gni | 11 + .../browser_ui/settings/SettingsLauncher.java | 2 + .../search_engine_desktop_ui.grdp | 6 + @@ -56,11 +56,11 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html content/browser/webui/web_ui_impl.cc | 14 +- content/browser/webui/web_ui_impl.h | 3 + content/public/browser/web_ui.h | 1 + + third_party/polymer/v3_0/BUILD.gn | 6 + ui/base/template_expressions.cc | 21 +- - ui/webui/BUILD.gn | 8 + + ui/webui/BUILD.gn | 7 + ui/webui/resources/BUILD.gn | 10 + .../customize_color_scheme_mode/BUILD.gn | 2 +- - .../cr_components/customize_themes/BUILD.gn | 2 +- .../cr_components/help_bubble/BUILD.gn | 2 +- .../cr_components/theme_color_picker/BUILD.gn | 2 +- .../cr_elements/cr_dialog/cr_dialog.css | 2 +- @@ -70,7 +70,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html ui/webui/resources/include_polymer.gni | 2 +- ui/webui/resources/js/BUILD.gn | 2 +- ui/webui/resources/js/load_time_data.ts | 17 +- - 63 files changed, 1106 insertions(+), 62 deletions(-) + 63 files changed, 1086 insertions(+), 61 deletions(-) create mode 100644 chrome/app/settings_strings_android.grdp create mode 100644 chrome/browser/search_engines/android/java/res/layout/search_engine_layout.xml create mode 100644 chrome/browser/ui/webui/settings/settings_localized_strings_provider_android.cc @@ -92,7 +92,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin import org.chromium.base.IntentUtils; import org.chromium.chrome.browser.accessibility.settings.AccessibilitySettings; import org.chromium.chrome.browser.autofill.settings.AutofillPaymentMethodsFragment; -@@ -36,6 +39,13 @@ public class SettingsLauncherImpl implements SettingsLauncher { +@@ -39,6 +42,13 @@ public class SettingsLauncherImpl implements SettingsLauncher { public SettingsLauncherImpl() {} @@ -109,8 +109,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd -@@ -314,6 +314,11 @@ are declared in tools/grit/grit_rule.gni. - +@@ -318,6 +318,11 @@ are declared in tools/grit/grit_rule.gni. + + @@ -121,7 +121,7 @@ diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources -@@ -500,7 +505,7 @@ are declared in tools/grit/grit_rule.gni. +@@ -504,7 +509,7 @@ are declared in tools/grit/grit_rule.gni. Disable @@ -133,7 +133,7 @@ diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp --- a/chrome/app/settings_strings.grdp +++ b/chrome/app/settings_strings.grdp -@@ -2594,6 +2594,9 @@ +@@ -2596,6 +2596,9 @@ URL with %s in place of query @@ -411,7 +411,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 -@@ -3764,6 +3764,9 @@ static_library("browser") { +@@ -3745,6 +3745,9 @@ static_library("browser") { "//components/user_scripts/android", ] } @@ -424,7 +424,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/chrome_browser_interface_binders.cc b/chrome/browser/chrome_browser_interface_binders.cc --- a/chrome/browser/chrome_browser_interface_binders.cc +++ b/chrome/browser/chrome_browser_interface_binders.cc -@@ -145,6 +145,9 @@ +@@ -144,6 +144,9 @@ #endif #if BUILDFLAG(IS_ANDROID) @@ -432,9 +432,9 @@ diff --git a/chrome/browser/chrome_browser_interface_binders.cc b/chrome/browser +#include "ui/webui/resources/cr_components/customize_color_scheme_mode/customize_color_scheme_mode.mojom.h" +#include "chrome/browser/ui/webui/settings/settings_ui_android.h" #include "chrome/browser/android/dom_distiller/distiller_ui_handle_android.h" + #include "chrome/browser/facilitated_payments/payment_link_handler_factory.h" #include "chrome/browser/offline_pages/android/offline_page_auto_fetcher.h" - #include "chrome/browser/ui/webui/feed_internals/feed_internals.mojom.h" -@@ -1168,6 +1171,15 @@ void PopulateChromeWebUIFrameBinders( +@@ -1174,6 +1177,15 @@ void PopulateChromeWebUIFrameBinders( app_management::mojom::PageHandlerFactory, WebAppSettingsUI>(map); #endif @@ -643,7 +643,7 @@ diff --git a/chrome/browser/resources/settings/search_engines_page/search_engine
$i18n{searchEnginesSearchEnginesExplanation}
-@@ -101,7 +106,10 @@ +@@ -102,7 +107,10 @@ hidden="[[!matchingOtherEngines_.length]]" engines="[[matchingOtherEngines_]]" scroll-target="[[subpageScrollTarget]]" @@ -863,9 +863,9 @@ diff --git a/chrome/browser/search_engines/android/java/src/org/chromium/chrome/ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -1098,6 +1098,18 @@ static_library("ui") { - +@@ -1030,6 +1030,18 @@ static_library("ui") { # TODO(b/335257259): Resolve circular deps. + # Any circular includes must depend on the target "//chrome/browser:browser_public_dependencies". allow_circular_includes_from += [ "//chrome/browser/facilitated_payments" ] + sources += [ + "webui/settings/settings_ui_android.cc", @@ -1074,7 +1074,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrom #else // BUILDFLAG(IS_ANDROID) #include "chrome/browser/media/router/discovery/access_code/access_code_cast_feature.h" #include "chrome/browser/media/router/media_router_feature.h" -@@ -588,6 +590,10 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, +@@ -569,6 +571,10 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, return &NewWebUI; } #endif // !BUILDFLAG(IS_ANDROID) @@ -1110,7 +1110,7 @@ diff --git a/chrome/browser/ui/webui/favicon_source.cc b/chrome/browser/ui/webui #include "third_party/skia/include/core/SkBitmap.h" #include "ui/base/resource/resource_bundle.h" #include "ui/base/resource/resource_scale_factor.h" -@@ -208,18 +212,22 @@ bool FaviconSource::ShouldServiceRequest( +@@ -206,18 +210,22 @@ bool FaviconSource::ShouldServiceRequest( const GURL& url, content::BrowserContext* browser_context, int render_process_id) { @@ -1133,7 +1133,7 @@ diff --git a/chrome/browser/ui/webui/favicon_source.cc b/chrome/browser/ui/webui void FaviconSource::OnFaviconDataAvailable( content::URLDataSource::GotDataCallback callback, -@@ -243,7 +251,11 @@ void FaviconSource::SendDefaultResponse( +@@ -241,7 +249,11 @@ void FaviconSource::SendDefaultResponse( parsed.device_scale_factor, parsed.force_light_mode ? false @@ -1145,7 +1145,7 @@ diff --git a/chrome/browser/ui/webui/favicon_source.cc b/chrome/browser/ui/webui return; } int icon_size = std::ceil(parsed.size_in_dip * parsed.device_scale_factor); -@@ -262,7 +274,11 @@ void FaviconSource::SendDefaultResponse( +@@ -260,7 +272,11 @@ void FaviconSource::SendDefaultResponse( SendDefaultResponse(std::move(callback), 16, 1.0f, force_light_mode ? false @@ -1157,7 +1157,7 @@ diff --git a/chrome/browser/ui/webui/favicon_source.cc b/chrome/browser/ui/webui } void FaviconSource::SendDefaultResponse( -@@ -272,6 +288,7 @@ void FaviconSource::SendDefaultResponse( +@@ -270,6 +286,7 @@ void FaviconSource::SendDefaultResponse( bool dark_mode) { int resource_id; switch (size_in_dip) { @@ -1165,7 +1165,7 @@ diff --git a/chrome/browser/ui/webui/favicon_source.cc b/chrome/browser/ui/webui case 64: resource_id = dark_mode ? IDR_DEFAULT_FAVICON_DARK_64 : IDR_DEFAULT_FAVICON_64; -@@ -280,6 +297,7 @@ void FaviconSource::SendDefaultResponse( +@@ -278,6 +295,7 @@ void FaviconSource::SendDefaultResponse( resource_id = dark_mode ? IDR_DEFAULT_FAVICON_DARK_32 : IDR_DEFAULT_FAVICON_32; break; @@ -1322,7 +1322,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.h b/chrome/ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc --- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc +++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc -@@ -2407,6 +2407,8 @@ void AddSearchEnginesStrings(content::WebUIDataSource* html_source) { +@@ -2432,6 +2432,8 @@ void AddSearchEnginesStrings(content::WebUIDataSource* html_source) { {"searchEnginesQueryURL", IDS_SETTINGS_SEARCH_ENGINES_QUERY_URL}, {"searchEnginesQueryURLExplanation", IDS_SETTINGS_SEARCH_ENGINES_QUERY_URL_EXPLANATION}, @@ -1331,7 +1331,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide {"searchEnginesMakeDefault", IDS_SETTINGS_SEARCH_ENGINES_MAKE_DEFAULT}, {"searchEnginesActivate", IDS_SETTINGS_SEARCH_ENGINES_ACTIVATE}, {"searchEnginesDeactivate", IDS_SETTINGS_SEARCH_ENGINES_DEACTIVATE}, -@@ -3711,6 +3713,12 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, +@@ -3736,6 +3738,12 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, AddSystemStrings(html_source); #endif @@ -1575,7 +1575,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_ui_android.cc b/chrome/br new file mode 100644 --- /dev/null +++ b/chrome/browser/ui/webui/settings/settings_ui_android.cc -@@ -0,0 +1,134 @@ +@@ -0,0 +1,126 @@ +// Copyright 2015 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. @@ -1621,7 +1621,6 @@ new file mode 100644 +#include "chrome/browser/ui/webui/webui_util.h" +#include "chrome/browser/ui/webui/theme_handler.h" +#include "chrome/browser/ui/webui/cr_components/customize_color_scheme_mode/customize_color_scheme_mode_handler.h" -+#include "chrome/browser/ui/webui/customize_themes/chrome_customize_themes_handler.h" +#include "chrome/browser/ui/webui/settings/settings_localized_strings_provider_android.h" + +#if !BUILDFLAG(OPTIMIZE_WEBUI) @@ -1679,13 +1678,6 @@ new file mode 100644 + web_ui()->AddMessageHandler(std::move(handler)); +} + -+void SettingsUI::CreateCustomizeThemesHandler( -+ mojo::PendingRemote -+ pending_client, -+ mojo::PendingReceiver -+ pending_handler) { -+} -+ +void SettingsUI::CreateThemeColorPickerHandler( + mojo::PendingReceiver + handler, @@ -1714,7 +1706,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_ui_android.h b/chrome/bro new file mode 100644 --- /dev/null +++ b/chrome/browser/ui/webui/settings/settings_ui_android.h -@@ -0,0 +1,119 @@ +@@ -0,0 +1,103 @@ +#ifndef CHROME_BROWSER_UI_WEBUI_SETTINGS_SETTINGS_UI_ANDROID_H_ +#define CHROME_BROWSER_UI_WEBUI_SETTINGS_SETTINGS_UI_ANDROID_H_ + @@ -1731,7 +1723,6 @@ new file mode 100644 +#include "ui/webui/resources/cr_components/help_bubble/help_bubble.mojom.h" + +#if !BUILDFLAG(IS_CHROMEOS_ASH) -+#include "ui/webui/resources/cr_components/customize_themes/customize_themes.mojom.h" +#include "ui/webui/resources/cr_components/theme_color_picker/theme_color_picker.mojom.h" +#endif // !BUILDFLAG(IS_CHROMEOS_ASH) + @@ -1760,7 +1751,6 @@ new file mode 100644 + // chrome://settings/manageProfile which only exists on !OS_CHROMEOS + // requires mojo bindings. + , -+ public customize_themes::mojom::CustomizeThemesHandlerFactory, + public theme_color_picker::mojom::ThemeColorPickerHandlerFactory +#endif // BUILDFLAG(IS_CHROMEOS_ASH) +{ @@ -1776,13 +1766,6 @@ new file mode 100644 + +#if !BUILDFLAG(IS_CHROMEOS_ASH) + // Instantiates the implementor of the -+ // customize_themes::mojom::CustomizeThemesHandlerFactory mojo interface -+ // passing the pending receiver that will be internally bound. -+ void BindInterface(mojo::PendingReceiver< -+ customize_themes::mojom::CustomizeThemesHandlerFactory> -+ pending_receiver); -+ -+ // Instantiates the implementor of the + // theme_color_picker::mojom::ThemeColorPickerHandlerFactory mojo interface + // passing the pending receiver that will be internally bound. + void BindInterface(mojo::PendingReceiver< @@ -1806,13 +1789,6 @@ new file mode 100644 + std::unique_ptr handler); + +#if !BUILDFLAG(IS_CHROMEOS_ASH) -+ // customize_themes::mojom::CustomizeThemesHandlerFactory: -+ void CreateCustomizeThemesHandler( -+ mojo::PendingRemote -+ pending_client, -+ mojo::PendingReceiver -+ pending_handler) override; -+ + // theme_color_picker::mojom::ThemeColorPickerHandlerFactory: + void CreateThemeColorPickerHandler( + mojo::PendingReceiver @@ -1858,8 +1834,8 @@ diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni diff --git a/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsLauncher.java b/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsLauncher.java --- a/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsLauncher.java +++ b/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsLauncher.java -@@ -53,6 +53,8 @@ public interface SettingsLauncher { - int MANAGE_SYNC = 9; +@@ -56,6 +56,8 @@ public interface SettingsLauncher { + int FINANCIAL_ACCOUNTS = 10; } + void launchUrlInCustomTab(Context context, String url); @@ -1893,18 +1869,18 @@ diff --git a/components/search_engines/android/template_url_service_android.cc b diff --git a/components/search_engines/search_engines_switches.cc b/components/search_engines/search_engines_switches.cc --- a/components/search_engines/search_engines_switches.cc +++ b/components/search_engines/search_engines_switches.cc -@@ -36,6 +36,7 @@ COMPONENT_EXPORT(SEARCH_ENGINES_SWITCHES) +@@ -38,6 +38,7 @@ COMPONENT_EXPORT(SEARCH_ENGINES_SWITCHES) BASE_FEATURE(kSearchEngineChoiceTrigger, "SearchEngineChoiceTrigger", base::FEATURE_ENABLED_BY_DEFAULT); +SET_CROMITE_FEATURE_DISABLED(kSearchEngineChoiceTrigger); + #if BUILDFLAG(IS_ANDROID) COMPONENT_EXPORT(SEARCH_ENGINES_SWITCHES) - BASE_FEATURE(kSearchEngineChoiceAttribution, diff --git a/components/search_engines/template_url_service.cc b/components/search_engines/template_url_service.cc --- a/components/search_engines/template_url_service.cc +++ b/components/search_engines/template_url_service.cc -@@ -708,13 +708,15 @@ TemplateURL* TemplateURLService::AddWithOverrides( +@@ -687,13 +687,15 @@ TemplateURL* TemplateURLService::AddWithOverrides( std::unique_ptr template_url, const std::u16string& short_name, const std::u16string& keyword, @@ -1921,7 +1897,7 @@ diff --git a/components/search_engines/template_url_service.cc b/components/sear return Add(std::move(template_url)); } -@@ -918,7 +920,8 @@ void TemplateURLService::IncrementUsageCount(TemplateURL* url) { +@@ -897,7 +899,8 @@ void TemplateURLService::IncrementUsageCount(TemplateURL* url) { void TemplateURLService::ResetTemplateURL(TemplateURL* url, const std::u16string& title, const std::u16string& keyword, @@ -1931,7 +1907,7 @@ diff --git a/components/search_engines/template_url_service.cc b/components/sear DCHECK(!IsCreatedByExtension(url)); DCHECK(!keyword.empty()); DCHECK(!search_url.empty()); -@@ -930,6 +933,7 @@ void TemplateURLService::ResetTemplateURL(TemplateURL* url, +@@ -909,6 +912,7 @@ void TemplateURLService::ResetTemplateURL(TemplateURL* url, // The urls have changed, reset the favicon url. data.favicon_url = GURL(); } @@ -1942,7 +1918,7 @@ diff --git a/components/search_engines/template_url_service.cc b/components/sear diff --git a/components/search_engines/template_url_service.h b/components/search_engines/template_url_service.h --- a/components/search_engines/template_url_service.h +++ b/components/search_engines/template_url_service.h -@@ -255,7 +255,8 @@ class TemplateURLService final : public WebDataServiceConsumer, +@@ -250,7 +250,8 @@ class TemplateURLService final : public WebDataServiceConsumer, TemplateURL* AddWithOverrides(std::unique_ptr template_url, const std::u16string& short_name, const std::u16string& keyword, @@ -1952,7 +1928,7 @@ diff --git a/components/search_engines/template_url_service.h b/components/searc // Removes the keyword from the model. This deletes the supplied TemplateURL. // This fails if the supplied template_url is the default search provider. -@@ -319,7 +320,8 @@ class TemplateURLService final : public WebDataServiceConsumer, +@@ -314,7 +315,8 @@ class TemplateURLService final : public WebDataServiceConsumer, void ResetTemplateURL(TemplateURL* url, const std::u16string& title, const std::u16string& keyword, @@ -2024,6 +2000,22 @@ diff --git a/content/public/browser/web_ui.h b/content/public/browser/web_ui.h // Used by WebUIMessageHandlers. If the given message is already registered, // the call has no effect. +diff --git a/third_party/polymer/v3_0/BUILD.gn b/third_party/polymer/v3_0/BUILD.gn +--- a/third_party/polymer/v3_0/BUILD.gn ++++ b/third_party/polymer/v3_0/BUILD.gn +@@ -36,6 +36,12 @@ js_files = [ + "paper-spinner/paper-spinner-styles.js", + ] + ++if (is_android) { ++ js_files += [ ++ "iron-collapse/iron-collapse.js", ++ ] ++} ++ + # Also needed on LaCros for Print Preview. Remove once CrOS Print Preview + # launches. + if (is_chromeos) { diff --git a/ui/base/template_expressions.cc b/ui/base/template_expressions.cc --- a/ui/base/template_expressions.cc +++ b/ui/base/template_expressions.cc @@ -2067,14 +2059,13 @@ diff --git a/ui/base/template_expressions.cc b/ui/base/template_expressions.cc diff --git a/ui/webui/BUILD.gn b/ui/webui/BUILD.gn --- a/ui/webui/BUILD.gn +++ b/ui/webui/BUILD.gn -@@ -28,6 +28,14 @@ static_library("webui") { +@@ -28,6 +28,13 @@ static_library("webui") { "//ui/webui/resources/js/metrics_reporter:mojo_bindings", ] + if (is_android) { + public_deps += [ + "//ui/webui/resources/cr_components/customize_color_scheme_mode:mojom", -+ "//ui/webui/resources/cr_components/customize_themes:mojom", + "//ui/webui/resources/cr_components/theme_color_picker:mojom", + ] + } @@ -2085,7 +2076,7 @@ diff --git a/ui/webui/BUILD.gn b/ui/webui/BUILD.gn diff --git a/ui/webui/resources/BUILD.gn b/ui/webui/resources/BUILD.gn --- a/ui/webui/resources/BUILD.gn +++ b/ui/webui/resources/BUILD.gn -@@ -79,6 +79,16 @@ generate_grd("build_grd") { +@@ -77,6 +77,16 @@ generate_grd("build_grd") { "$target_gen_dir/cr_components/managed_footnote/resources.grdp", "$target_gen_dir/cr_components/most_visited/resources.grdp", ] @@ -2114,18 +2105,6 @@ diff --git a/ui/webui/resources/cr_components/customize_color_scheme_mode/BUILD. mojom("mojom") { sources = [ "customize_color_scheme_mode.mojom" ] -diff --git a/ui/webui/resources/cr_components/customize_themes/BUILD.gn b/ui/webui/resources/cr_components/customize_themes/BUILD.gn ---- a/ui/webui/resources/cr_components/customize_themes/BUILD.gn -+++ b/ui/webui/resources/cr_components/customize_themes/BUILD.gn -@@ -5,7 +5,7 @@ - import("//mojo/public/tools/bindings/mojom.gni") - import("//ui/webui/resources/tools/build_webui.gni") - --assert(!is_android && !is_ios) -+assert(!is_ios) - - mojom("mojom") { - sources = [ "customize_themes.mojom" ] diff --git a/ui/webui/resources/cr_components/help_bubble/BUILD.gn b/ui/webui/resources/cr_components/help_bubble/BUILD.gn --- a/ui/webui/resources/cr_components/help_bubble/BUILD.gn +++ b/ui/webui/resources/cr_components/help_bubble/BUILD.gn diff --git a/build/patches/Enable-share-intent.patch b/build/patches/Enable-share-intent.patch index d8754356..0b65fbb2 100644 --- a/build/patches/Enable-share-intent.patch +++ b/build/patches/Enable-share-intent.patch @@ -35,7 +35,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja --- a/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni @@ -571,6 +571,7 @@ chrome_java_resources = [ - "java/res/layout/signin_activity.xml", + "java/res/layout/signin_settings_card_view.xml", "java/res/layout/status_indicator_container.xml", "java/res/layout/suggestions_tile_view_condensed.xml", + "java/res/layout/sharing_intent_content.xml", @@ -45,7 +45,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 -@@ -1035,6 +1035,7 @@ chrome_java_sources = [ +@@ -1031,6 +1031,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/signin/SyncConsentActivity.java", "java/src/org/chromium/chrome/browser/signin/SyncConsentActivityLauncherImpl.java", "java/src/org/chromium/chrome/browser/signin/SyncConsentFragment.java", @@ -293,7 +293,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessIni import org.chromium.chrome.browser.usb.UsbNotificationManager; import org.chromium.chrome.browser.util.AfterStartupTaskUtils; import org.chromium.chrome.browser.webapps.ChromeWebApkHost; -@@ -683,6 +684,7 @@ public class ProcessInitializationHandler { +@@ -684,6 +685,7 @@ public class ProcessInitializationHandler { ::makeDeferredRecordings); tasks.add(WebApkUninstallTracker::runDeferredTasks); @@ -468,18 +468,18 @@ new file mode 100644 diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -275,6 +275,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -287,6 +287,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kReengagementNotification, &kSearchReadyOmniboxFeature, &kRelatedSearchesAllLanguage, + &kSharedIntentUI, &kReportParentalControlSitesChild, - &kSearchEnginesPromoV3, &kSearchInCCT, + &kSearchResumptionModuleAndroid, 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 -@@ -425,6 +425,7 @@ public abstract class ChromeFeatureList { +@@ -436,6 +436,7 @@ public abstract class ChromeFeatureList { public static final String READER_MODE_IN_CCT = "ReaderModeInCCT"; public static final String READING_LIST_ENABLE_SYNC_TRANSPORT_MODE_UPON_SIGNIN = "ReadingListEnableSyncTransportModeUponSignIn"; @@ -490,7 +490,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 -@@ -5514,6 +5514,19 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -5764,6 +5764,19 @@ To change this setting, BEGIN_LINKdelete the Chrome d Make sure a phone app is enabled on this device diff --git a/build/patches/Enables-deactivation-of-the-js-debugger-statement.patch b/build/patches/Enables-deactivation-of-the-js-debugger-statement.patch index 33a58792..e483fb09 100644 --- a/build/patches/Enables-deactivation-of-the-js-debugger-statement.patch +++ b/build/patches/Enables-deactivation-of-the-js-debugger-statement.patch @@ -28,7 +28,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/third_party/devtools-frontend/src/front_end/core/sdk/DebuggerModel.ts b/third_party/devtools-frontend/src/front_end/core/sdk/DebuggerModel.ts --- a/third_party/devtools-frontend/src/front_end/core/sdk/DebuggerModel.ts +++ b/third_party/devtools-frontend/src/front_end/core/sdk/DebuggerModel.ts -@@ -217,6 +217,9 @@ export class DebuggerModel extends SDKModel { +@@ -225,6 +225,9 @@ export class DebuggerModel extends SDKModel { Common.Settings.Settings.instance() .moduleSetting('disable-async-stack-traces') .addChangeListener(this.asyncStackTracesStateChanged, this); @@ -38,7 +38,7 @@ diff --git a/third_party/devtools-frontend/src/front_end/core/sdk/DebuggerModel. Common.Settings.Settings.instance() .moduleSetting('breakpoints-active') .addChangeListener(this.breakpointsActiveChanged, this); -@@ -230,6 +233,7 @@ export class DebuggerModel extends SDKModel { +@@ -238,6 +241,7 @@ export class DebuggerModel extends SDKModel { Common.Settings.Settings.instance() .moduleSetting('js-source-maps-enabled') .addChangeListener(event => this.#sourceMapManagerInternal.setEnabled((event.data as boolean))); @@ -46,7 +46,7 @@ diff --git a/third_party/devtools-frontend/src/front_end/core/sdk/DebuggerModel. const resourceTreeModel = (target.model(ResourceTreeModel) as ResourceTreeModel); if (resourceTreeModel) { -@@ -387,6 +391,11 @@ export class DebuggerModel extends SDKModel { +@@ -396,6 +400,11 @@ export class DebuggerModel extends SDKModel { return this.agent.invoke_setAsyncCallStackDepth({maxDepth}); } @@ -101,7 +101,7 @@ diff --git a/third_party/devtools-frontend/src/front_end/core/sdk/sdk-meta.ts b/ diff --git a/third_party/devtools-frontend/src/front_end/generated/InspectorBackendCommands.js b/third_party/devtools-frontend/src/front_end/generated/InspectorBackendCommands.js --- a/third_party/devtools-frontend/src/front_end/generated/InspectorBackendCommands.js +++ b/third_party/devtools-frontend/src/front_end/generated/InspectorBackendCommands.js -@@ -1346,6 +1346,10 @@ inspectorBackend.registerCommand("Debugger.restartFrame", [{"name": "callFrameId +@@ -1362,6 +1362,10 @@ inspectorBackend.registerCommand("Debugger.restartFrame", [{"name": "callFrameId inspectorBackend.registerCommand("Debugger.resume", [{"name": "terminateOnResume", "type": "boolean", "optional": true, "description": "Set to true to terminate execution upon resuming execution. In contrast to Runtime.terminateExecution, this will allows to execute further JavaScript (i.e. via evaluation) until execution of the paused code is actually resumed, at which point termination is triggered. If execution is currently not paused, this parameter has no effect.", "typeRef": null}], [], "Resumes JavaScript execution."); inspectorBackend.registerCommand("Debugger.searchInContent", [{"name": "scriptId", "type": "string", "optional": false, "description": "Id of the script to search in.", "typeRef": "Runtime.ScriptId"}, {"name": "query", "type": "string", "optional": false, "description": "String to search for.", "typeRef": null}, {"name": "caseSensitive", "type": "boolean", "optional": true, "description": "If true, search is case sensitive.", "typeRef": null}, {"name": "isRegex", "type": "boolean", "optional": true, "description": "If true, treats string parameter as regex.", "typeRef": null}], ["result"], "Searches for given string in script content."); inspectorBackend.registerCommand("Debugger.setAsyncCallStackDepth", [{"name": "maxDepth", "type": "number", "optional": false, "description": "Maximum depth of async call stacks. Setting to `0` will effectively disable collecting async call stacks (default).", "typeRef": null}], [], "Enables or disables async call stacks tracking."); @@ -115,7 +115,7 @@ diff --git a/third_party/devtools-frontend/src/front_end/generated/InspectorBack diff --git a/third_party/devtools-frontend/src/front_end/generated/protocol-mapping.d.ts b/third_party/devtools-frontend/src/front_end/generated/protocol-mapping.d.ts --- a/third_party/devtools-frontend/src/front_end/generated/protocol-mapping.d.ts +++ b/third_party/devtools-frontend/src/front_end/generated/protocol-mapping.d.ts -@@ -4598,6 +4598,10 @@ export namespace ProtocolMapping { +@@ -4640,6 +4640,10 @@ export namespace ProtocolMapping { paramsType: [Protocol.Debugger.SetAsyncCallStackDepthRequest]; returnType: void; }; @@ -129,7 +129,7 @@ diff --git a/third_party/devtools-frontend/src/front_end/generated/protocol-mapp diff --git a/third_party/devtools-frontend/src/front_end/generated/protocol-proxy-api.d.ts b/third_party/devtools-frontend/src/front_end/generated/protocol-proxy-api.d.ts --- a/third_party/devtools-frontend/src/front_end/generated/protocol-proxy-api.d.ts +++ b/third_party/devtools-frontend/src/front_end/generated/protocol-proxy-api.d.ts -@@ -4079,6 +4079,8 @@ declare namespace ProtocolProxyApi { +@@ -4123,6 +4123,8 @@ declare namespace ProtocolProxyApi { */ invoke_setAsyncCallStackDepth(params: Protocol.Debugger.SetAsyncCallStackDepthRequest): Promise; @@ -141,7 +141,7 @@ diff --git a/third_party/devtools-frontend/src/front_end/generated/protocol-prox diff --git a/third_party/devtools-frontend/src/front_end/generated/protocol.ts b/third_party/devtools-frontend/src/front_end/generated/protocol.ts --- a/third_party/devtools-frontend/src/front_end/generated/protocol.ts +++ b/third_party/devtools-frontend/src/front_end/generated/protocol.ts -@@ -17831,6 +17831,10 @@ export namespace Debugger { +@@ -17977,6 +17977,10 @@ export namespace Debugger { maxDepth: integer; } @@ -155,7 +155,7 @@ diff --git a/third_party/devtools-frontend/src/front_end/generated/protocol.ts b diff --git a/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.json b/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.json --- a/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.json +++ b/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.json -@@ -26939,8 +26939,17 @@ +@@ -27236,8 +27236,17 @@ "$ref": "WasmDisassemblyChunk" } ] @@ -175,7 +175,7 @@ diff --git a/third_party/devtools-frontend/src/third_party/blink/public/devtools "name": "nextWasmDisassemblyChunk", "description": "Disassemble the next chunk of lines for the module corresponding to the\nstream. If disassembly is complete, this API will invalidate the streamId\nand return an empty chunk. Any subsequent calls for the now invalid stream\nwill return errors.", "experimental": true, -@@ -30066,4 +30075,4 @@ +@@ -30363,4 +30372,4 @@ ] } ] @@ -199,7 +199,7 @@ diff --git a/v8/include/js_protocol.pdl b/v8/include/js_protocol.pdl diff --git a/v8/src/common/message-template.h b/v8/src/common/message-template.h --- a/v8/src/common/message-template.h +++ b/v8/src/common/message-template.h -@@ -741,6 +741,7 @@ namespace internal { +@@ -743,6 +743,7 @@ namespace internal { /* AggregateError */ \ T(AllPromisesRejected, "All promises were rejected") \ T(CannotDeepFreezeObject, "Cannot DeepFreeze object of type %") \ @@ -210,7 +210,7 @@ diff --git a/v8/src/common/message-template.h b/v8/src/common/message-template.h diff --git a/v8/src/debug/debug-interface.cc b/v8/src/debug/debug-interface.cc --- a/v8/src/debug/debug-interface.cc +++ b/v8/src/debug/debug-interface.cc -@@ -1020,6 +1020,11 @@ void SetAsyncEventDelegate(Isolate* v8_isolate, AsyncEventDelegate* delegate) { +@@ -1019,6 +1019,11 @@ void SetAsyncEventDelegate(Isolate* v8_isolate, AsyncEventDelegate* delegate) { reinterpret_cast(v8_isolate)->set_async_event_delegate(delegate); } @@ -238,7 +238,7 @@ diff --git a/v8/src/debug/debug-interface.h b/v8/src/debug/debug-interface.h diff --git a/v8/src/debug/debug.h b/v8/src/debug/debug.h --- a/v8/src/debug/debug.h +++ b/v8/src/debug/debug.h -@@ -433,6 +433,9 @@ class V8_EXPORT_PRIVATE Debug { +@@ -435,6 +435,9 @@ class V8_EXPORT_PRIVATE Debug { void set_break_points_active(bool v) { break_points_active_ = v; } bool break_points_active() const { return break_points_active_; } @@ -248,7 +248,7 @@ diff --git a/v8/src/debug/debug.h b/v8/src/debug/debug.h StackFrameId break_frame_id() { return thread_local_.break_frame_id_; } Handle return_value_handle(); -@@ -607,6 +610,8 @@ class V8_EXPORT_PRIVATE Debug { +@@ -611,6 +614,8 @@ class V8_EXPORT_PRIVATE Debug { // Termination exception because side effect check has failed. bool side_effect_check_failed_; @@ -260,7 +260,7 @@ diff --git a/v8/src/debug/debug.h b/v8/src/debug/debug.h diff --git a/v8/src/execution/messages.cc b/v8/src/execution/messages.cc --- a/v8/src/execution/messages.cc +++ b/v8/src/execution/messages.cc -@@ -496,6 +496,7 @@ MaybeHandle MessageFormatter::TryFormat( +@@ -494,6 +494,7 @@ MaybeHandle MessageFormatter::TryFormat( MessageTemplate::kUndefinedOrNullToObject, MessageTemplate::kUnexpectedStrictReserved, MessageTemplate::kUnexpectedTokenIdentifier, diff --git a/build/patches/Experimental-user-scripts-support.patch b/build/patches/Experimental-user-scripts-support.patch index 690b1308..04046e6a 100644 --- a/build/patches/Experimental-user-scripts-support.patch +++ b/build/patches/Experimental-user-scripts-support.patch @@ -74,7 +74,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../user-script-ui/user-scripts-ui.js | 9 + .../browser/ui/user_scripts_ui.cc | 146 ++++ .../user_scripts/browser/ui/user_scripts_ui.h | 37 + - .../browser/user_script_loader.cc | 716 ++++++++++++++++ + .../browser/user_script_loader.cc | 708 +++++++++++++++ .../user_scripts/browser/user_script_loader.h | 168 ++++ .../browser/user_script_pref_info.cc | 34 + .../browser/user_script_pref_info.h | 72 ++ @@ -135,7 +135,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../Experimental-user-scripts-support.inc | 13 + ipc/ipc_message_start.h | 1 + tools/gritsettings/resource_ids.spec | 6 + - 108 files changed, 9492 insertions(+), 2 deletions(-) + 108 files changed, 9484 insertions(+), 2 deletions(-) create mode 100644 components/user_scripts/README.md create mode 100755 components/user_scripts/android/BUILD.gn create mode 100644 components/user_scripts/android/java/res/layout/accept_script_item.xml @@ -226,7 +226,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 -@@ -198,7 +198,11 @@ if (current_toolchain == default_toolchain) { +@@ -199,7 +199,11 @@ if (current_toolchain == default_toolchain) { sources = chrome_java_resources sources += [ "//chrome/android/java/res_app/layout/main.xml" ] @@ -239,7 +239,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn ":chrome_base_module_resources", ":ui_locale_string_resources", "//chrome/android/webapk/libs/common:splash_resources", -@@ -647,6 +651,7 @@ if (current_toolchain == default_toolchain) { +@@ -670,6 +674,7 @@ if (current_toolchain == default_toolchain) { "//components/ukm/android:java", "//components/url_formatter/android:url_formatter_java", "//components/user_prefs/android:java", @@ -288,7 +288,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/init/ProcessInitializationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java --- a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java -@@ -146,6 +146,8 @@ import java.util.Date; +@@ -147,6 +147,8 @@ import java.util.Date; import java.util.List; import java.util.Locale; @@ -297,7 +297,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessIni /** * Handles the initialization dependences of the browser process. This is meant to handle the * initialization that is not tied to any particular Activity, and the logic that should only be -@@ -620,6 +622,8 @@ public class ProcessInitializationHandler { +@@ -621,6 +623,8 @@ public class ProcessInitializationHandler { DefaultBrowserInfo.initBrowserFetcher(); @@ -309,7 +309,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessIni diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni --- a/chrome/android/java_sources.gni +++ b/chrome/android/java_sources.gni -@@ -24,6 +24,7 @@ import("//chrome/common/features.gni") +@@ -20,6 +20,7 @@ import("//chrome/common/features.gni") import("//components/feed/features.gni") import("//components/offline_pages/buildflags/features.gni") import("//device/vr/buildflags/buildflags.gni") @@ -317,7 +317,7 @@ diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni # Only used for testing, should not be shipped to end users. if (enable_offline_pages_harness) { -@@ -62,3 +63,5 @@ if (enable_cardboard) { +@@ -56,3 +57,5 @@ if (enable_cardboard) { "java/src/org/chromium/chrome/browser/vr/VrCompositorDelegateProviderImpl.java", ] } @@ -326,7 +326,7 @@ diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -3748,6 +3748,13 @@ static_library("browser") { +@@ -3729,6 +3729,13 @@ static_library("browser") { ] deps += [ "//chrome/android/modules/dev_ui/provider:native" ] } @@ -343,18 +343,18 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn 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 -@@ -175,6 +175,7 @@ +@@ -174,6 +174,7 @@ #include "components/ui_devtools/switches.h" #include "components/variations/variations_switches.h" #include "components/version_info/channel.h" +#include "components/user_scripts/common/user_scripts_features.h" #include "components/version_info/version_info.h" + #include "components/visited_url_ranking/public/features.h" #include "components/viz/common/features.h" - #include "components/viz/common/switches.h" 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 -@@ -271,6 +271,7 @@ +@@ -278,6 +278,7 @@ #include "components/permissions/contexts/geolocation_permission_context_android.h" #include "components/query_tiles/tile_service_prefs.h" #include "components/webapps/browser/android/install_prompt_prefs.h" @@ -362,7 +362,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse #else // BUILDFLAG(IS_ANDROID) #include "chrome/browser/cart/cart_service.h" #include "chrome/browser/companion/core/promo_handler.h" -@@ -2065,6 +2066,9 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -1854,6 +1855,9 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, translate::TranslatePrefs::RegisterProfilePrefs(registry); omnibox::RegisterProfilePrefs(registry); ZeroSuggestProvider::RegisterProfilePrefs(registry); @@ -388,7 +388,7 @@ diff --git a/chrome/browser/profiles/BUILD.gn b/chrome/browser/profiles/BUILD.gn diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc -@@ -531,6 +531,10 @@ +@@ -539,6 +539,10 @@ #include "chrome/browser/enterprise/data_controls/reporting_service.h" #endif @@ -399,7 +399,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc namespace chrome { void AddProfilesExtraParts(ChromeBrowserMainParts* main_parts) { -@@ -1308,6 +1312,9 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -1328,6 +1332,9 @@ void ChromeBrowserMainExtraPartsProfiles:: #endif WebDataServiceFactory::GetInstance(); webrtc_event_logging::WebRtcEventLogManagerKeyedServiceFactory::GetInstance(); @@ -412,7 +412,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc --- a/chrome/browser/profiles/profile_manager.cc +++ b/chrome/browser/profiles/profile_manager.cc -@@ -115,6 +115,10 @@ +@@ -117,6 +117,10 @@ #include "extensions/common/manifest.h" #endif @@ -423,10 +423,10 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile #if BUILDFLAG(ENABLE_SESSION_SERVICE) #include "chrome/browser/sessions/app_session_service_factory.h" #include "chrome/browser/sessions/session_service_factory.h" -@@ -1526,6 +1530,13 @@ void ProfileManager::DoFinalInitForServices(Profile* profile, - // initializing the supervised flag if necessary). +@@ -1529,6 +1533,13 @@ void ProfileManager::DoFinalInitForServices(Profile* profile, ChildAccountServiceFactory::GetForProfile(profile)->Init(); SupervisedUserServiceFactory::GetForProfile(profile)->Init(); + ListFamilyMembersServiceFactory::GetForProfile(profile)->Init(); +#if BUILDFLAG(IS_ANDROID) + user_scripts::UserScriptsBrowserClient* userscript_client = + user_scripts::UserScriptsBrowserClient::GetInstance(); @@ -509,7 +509,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrom #include "content/public/browser/web_contents.h" #include "content/public/browser/web_ui.h" #include "content/public/common/content_client.h" -@@ -488,6 +489,10 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, +@@ -479,6 +480,10 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, return &NewWebUI; if (url.host_piece() == chrome::kChromeUIVersionHost) return &NewWebUI; @@ -553,7 +553,7 @@ diff --git a/chrome/common/renderer_configuration.mojom b/chrome/common/renderer diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn --- a/chrome/renderer/BUILD.gn +++ b/chrome/renderer/BUILD.gn -@@ -243,6 +243,12 @@ static_library("renderer") { +@@ -233,6 +233,12 @@ static_library("renderer") { "//v8", ] @@ -612,7 +612,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer #if BUILDFLAG(ENABLE_PPAPI) new PepperHelper(render_frame); #endif -@@ -1637,6 +1659,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentStart( +@@ -1661,6 +1683,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentStart( render_frame); // |render_frame| might be dead by now. #endif @@ -630,7 +630,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer } void ChromeContentRendererClient::RunScriptsAtDocumentEnd( -@@ -1646,6 +1679,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentEnd( +@@ -1670,6 +1703,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentEnd( render_frame); // |render_frame| might be dead by now. #endif @@ -648,7 +648,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer } void ChromeContentRendererClient::RunScriptsAtDocumentIdle( -@@ -1655,6 +1699,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentIdle( +@@ -1679,6 +1723,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentIdle( render_frame); // |render_frame| might be dead by now. #endif @@ -691,7 +691,7 @@ diff --git a/chrome/renderer/chrome_render_thread_observer.cc b/chrome/renderer/ diff --git a/components/components_strings.grd b/components/components_strings.grd --- a/components/components_strings.grd +++ b/components/components_strings.grd -@@ -338,6 +338,7 @@ +@@ -339,6 +339,7 @@ @@ -2758,7 +2758,7 @@ new file mode 100644 + base::Value::Dict scriptData; + for (const std::unique_ptr& js_file : + script->js_scripts()) { -+ base::StringPiece contents = js_file->GetContent(); ++ std::string_view contents = js_file->GetContent(); + scriptData.Set("content", contents.data()); + } + response.Append(std::move(scriptData)); @@ -2831,7 +2831,7 @@ diff --git a/components/user_scripts/browser/user_script_loader.cc b/components/ new file mode 100755 --- /dev/null +++ b/components/user_scripts/browser/user_script_loader.cc -@@ -0,0 +1,716 @@ +@@ -0,0 +1,708 @@ +/* + This file is part of Bromite. + @@ -2903,33 +2903,33 @@ new file mode 100755 + +namespace { + -+static const base::StringPiece kUserScriptBegin("// ==UserScript=="); -+static const base::StringPiece kUserScriptEnd("// ==/UserScript=="); -+static const base::StringPiece kNamespaceDeclaration("// @namespace"); -+static const base::StringPiece kNameDeclaration("// @name"); -+static const base::StringPiece kVersionDeclaration("// @version"); -+static const base::StringPiece kDescriptionDeclaration("// @description"); -+static const base::StringPiece kIncludeDeclaration("// @include"); -+static const base::StringPiece kExcludeDeclaration("// @exclude"); -+static const base::StringPiece kMatchDeclaration("// @match"); -+static const base::StringPiece kExcludeMatchDeclaration("// @exclude_match"); -+static const base::StringPiece kRunAtDeclaration("// @run-at"); -+static const base::StringPiece kRunAtDocumentStartValue("document-start"); -+static const base::StringPiece kRunAtDocumentEndValue("document-end"); -+static const base::StringPiece kRunAtDocumentIdleValue("document-idle"); -+static const base::StringPiece kUrlSourceDeclaration("// @url"); -+static const base::StringPiece kUrlHomePageDeclaration("// @homepage"); ++static const std::string_view kUserScriptBegin("// ==UserScript=="); ++static const std::string_view kUserScriptEnd("// ==/UserScript=="); ++static const std::string_view kNamespaceDeclaration("// @namespace"); ++static const std::string_view kNameDeclaration("// @name"); ++static const std::string_view kVersionDeclaration("// @version"); ++static const std::string_view kDescriptionDeclaration("// @description"); ++static const std::string_view kIncludeDeclaration("// @include"); ++static const std::string_view kExcludeDeclaration("// @exclude"); ++static const std::string_view kMatchDeclaration("// @match"); ++static const std::string_view kExcludeMatchDeclaration("// @exclude_match"); ++static const std::string_view kRunAtDeclaration("// @run-at"); ++static const std::string_view kRunAtDocumentStartValue("document-start"); ++static const std::string_view kRunAtDocumentEndValue("document-end"); ++static const std::string_view kRunAtDocumentIdleValue("document-idle"); ++static const std::string_view kUrlSourceDeclaration("// @url"); ++static const std::string_view kUrlHomePageDeclaration("// @homepage"); + +// internal use -+static const base::StringPiece kParserError("// @error"); -+static const base::StringPiece kForceDisabled("// @disabled"); ++static const std::string_view kParserError("// @error"); ++static const std::string_view kForceDisabled("// @disabled"); + +// Helper function to parse greasesmonkey headers -+bool GetDeclarationValue(const base::StringPiece& line, -+ const base::StringPiece& prefix, ++bool GetDeclarationValue(const std::string_view& line, ++ const std::string_view& prefix, + std::string* value) { -+ base::StringPiece::size_type index = line.find(prefix); -+ if (index == base::StringPiece::npos) ++ std::string_view::size_type index = line.find(prefix); ++ if (index == std::string_view::npos) + return false; + + std::string temp(line.data() + index + prefix.length(), @@ -2945,12 +2945,12 @@ new file mode 100755 +} // namespace + +// static -+bool UserScriptLoader::ParseMetadataHeader(const base::StringPiece& script_text, ++bool UserScriptLoader::ParseMetadataHeader(const std::string_view& script_text, + std::unique_ptr& script, + bool *found_metadata, + std::string& error_message) { + // http://wiki.greasespot.net/Metadata_block -+ base::StringPiece line; ++ std::string_view line; + size_t line_start = 0; + size_t line_end = line_start; + *found_metadata = false; @@ -2962,7 +2962,7 @@ new file mode 100755 + if (line_end == std::string::npos) + line_end = script_text.length() - 1; + -+ line = base::StringPiece(script_text.data() + line_start, ++ line = std::string_view(script_text.data() + line_start, + line_end - line_start); + + if (!*found_metadata) { @@ -3101,7 +3101,7 @@ new file mode 100755 + // create SHA256 of file + char raw[crypto::kSHA256Length] = {0}; + crypto::SHA256HashString(content, raw, crypto::kSHA256Length); -+ std::string key = base::Base64Encode(base::StringPiece(raw, crypto::kSHA256Length)); ++ std::string key = base::Base64Encode(std::string_view(raw, crypto::kSHA256Length)); + file->set_key(key); + + file->set_url(GURL(base::StrCat({"https://userscripts/file/", key, ".js"}))); @@ -3238,12 +3238,12 @@ new file mode 100755 + // allocating a new string. + for (const std::unique_ptr& js_file : + script->js_scripts()) { -+ base::StringPiece contents = js_file->GetContent(); ++ std::string_view contents = js_file->GetContent(); + pickle.WriteData(contents.data(), contents.length()); + } + for (const std::unique_ptr& css_file : + script->css_scripts()) { -+ base::StringPiece contents = css_file->GetContent(); ++ std::string_view contents = css_file->GetContent(); + pickle.WriteData(contents.data(), contents.length()); + } + } @@ -3411,17 +3411,11 @@ new file mode 100755 + ui::SelectFileDialog::FileTypeInfo::ANY_PATH; + base::FilePath suggested_name; + -+ std::vector types; -+ types.push_back(u"*/*"); /*= java SelectFileDialog.ALL_TYPES*/ -+ std::pair, bool> accept_types = std::make_pair( -+ types, false /*use_media_capture*/); -+ + dialog_->SelectFile( + ui::SelectFileDialog::SELECT_OPEN_FILE, + std::u16string() /* dialog title*/, suggested_name, &allowed_file_info, -+ 0 /* file type index */, std::string() /* default file extension */, -+ nativeWindow, -+ &accept_types /* params */); ++ 0 /* file type index */, base::FilePath::StringType() /* default file extension */, ++ nativeWindow); +} + + @@ -3528,7 +3522,7 @@ new file mode 100755 +} + +void UserScriptLoader::FileSelected( -+ const ui::SelectedFileInfo& file, int index, void* params) { ++ const ui::SelectedFileInfo& file, int index) { + if (base::FeatureList::IsEnabled(features::kEnableLoggingUserScripts)) + LOG(INFO) << "UserScriptLoader: FileSelected " << file.path(); + @@ -3543,9 +3537,7 @@ new file mode 100755 + StartLoad(); +} + -+void UserScriptLoader::FileSelectionCanceled( -+ void* params) { -+} ++void UserScriptLoader::FileSelectionCanceled() {} + +} // namespace extensions diff --git a/components/user_scripts/browser/user_script_loader.h b/components/user_scripts/browser/user_script_loader.h @@ -3627,7 +3619,7 @@ new file mode 100755 + }; + + // Parses the includes out of |script| and returns them in |includes|. -+ static bool ParseMetadataHeader(const base::StringPiece& script_text, ++ static bool ParseMetadataHeader(const std::string_view& script_text, + std::unique_ptr& script, + bool *found_metadata, + std::string& error_message); @@ -3710,8 +3702,8 @@ new file mode 100755 + // Manage file dialog requests + scoped_refptr dialog_; + void FileSelected(const ui::SelectedFileInfo& file, -+ int index, void* params) override; -+ void FileSelectionCanceled(void* params) override; ++ int index) override; ++ void FileSelectionCanceled() override; + void LoadScriptFromPathOnFileTaskRunnerCallback( + bool result, const std::string& error ); + @@ -4430,13 +4422,13 @@ new file mode 100755 +namespace { + +std::string FormatErrorMessageInternal( -+ base::StringPiece format, -+ std::initializer_list args) { ++ std::string_view format, ++ std::initializer_list args) { + std::string format_str = format.as_string(); + base::StringTokenizer tokenizer(format_str, "*"); + tokenizer.set_options(base::StringTokenizer::RETURN_DELIMS); + -+ std::vector result_pieces; ++ std::vector result_pieces; + auto* args_it = args.begin(); + while (tokenizer.GetNext()) { + if (!tokenizer.token_is_delim()) { @@ -4460,8 +4452,8 @@ new file mode 100755 + +} // namespace + -+std::string ErrorUtils::FormatErrorMessage(base::StringPiece format, -+ base::StringPiece s1) { ++std::string ErrorUtils::FormatErrorMessage(std::string_view format, ++ std::string_view s1) { + return FormatErrorMessageInternal(format, {s1}); +} + @@ -4487,8 +4479,8 @@ new file mode 100755 +class ErrorUtils { + public: + // Creates an error messages from a pattern. -+ static std::string FormatErrorMessage(base::StringPiece format, -+ base::StringPiece s1); ++ static std::string FormatErrorMessage(std::string_view format, ++ std::string_view s1); + +}; + @@ -4865,7 +4857,7 @@ new file mode 100755 + +const char kPathSeparator[] = "/"; + -+bool IsStandardScheme(base::StringPiece scheme) { ++bool IsStandardScheme(std::string_view scheme) { + // "*" gets the same treatment as a standard scheme. + if (scheme == "*") + return true; @@ -4874,7 +4866,7 @@ new file mode 100755 + url::Component(0, static_cast(scheme.length()))); +} + -+bool IsValidPortForScheme(base::StringPiece scheme, base::StringPiece port) { ++bool IsValidPortForScheme(std::string_view scheme, std::string_view port) { + if (port == "*") + return true; + @@ -4897,14 +4889,14 @@ new file mode 100755 +// the path will have only a single wildcard at the end. This makes figuring +// out overlap much easier. It seems like there is probably a computer-sciency +// way to solve the general case, but we don't need that yet. -+base::StringPiece StripTrailingWildcard(base::StringPiece path) { ++std::string_view StripTrailingWildcard(std::string_view path) { + if (base::EndsWith(path, "*")) + path.remove_suffix(1); + return path; +} + +// Removes trailing dot from |host_piece| if any. -+base::StringPiece CanonicalizeHostForMatching(base::StringPiece host_piece) { ++std::string_view CanonicalizeHostForMatching(std::string_view host_piece) { + if (base::EndsWith(host_piece, ".")) + host_piece.remove_suffix(1); + return host_piece; @@ -4913,7 +4905,7 @@ new file mode 100755 +} // namespace + +// static -+bool URLPattern::IsValidSchemeForExtensions(base::StringPiece scheme) { ++bool URLPattern::IsValidSchemeForExtensions(std::string_view scheme) { + for (size_t i = 0; i < std::size(kValidSchemes); ++i) { + if (scheme == kValidSchemes[i]) + return true; @@ -4941,7 +4933,7 @@ new file mode 100755 + match_subdomains_(false), + port_("*") {} + -+URLPattern::URLPattern(int valid_schemes, base::StringPiece pattern) ++URLPattern::URLPattern(int valid_schemes, std::string_view pattern) + // Strict error checking is used, because this constructor is only + // appropriate when we know |pattern| is valid. + : valid_schemes_(valid_schemes), @@ -4981,7 +4973,7 @@ new file mode 100755 + return out << '"' << url_pattern.GetAsString() << '"'; +} + -+URLPattern::ParseResult URLPattern::Parse(base::StringPiece pattern) { ++URLPattern::ParseResult URLPattern::Parse(std::string_view pattern) { + spec_.clear(); + SetMatchAllURLs(false); + SetMatchSubdomains(false); @@ -4998,12 +4990,12 @@ new file mode 100755 + bool has_standard_scheme_separator = true; + + // Some urls also use ':' alone as the scheme separator. -+ if (scheme_end_pos == base::StringPiece::npos) { ++ if (scheme_end_pos == std::string_view::npos) { + scheme_end_pos = pattern.find(':'); + has_standard_scheme_separator = false; + } + -+ if (scheme_end_pos == base::StringPiece::npos) ++ if (scheme_end_pos == std::string_view::npos) + return ParseResult::kMissingSchemeSeparator; + + if (!SetScheme(pattern.substr(0, scheme_end_pos))) @@ -5027,7 +5019,7 @@ new file mode 100755 + path_start_pos = host_start_pos; + } else if (scheme_ == url::kFileScheme) { + size_t host_end_pos = pattern.find(kPathSeparator, host_start_pos); -+ if (host_end_pos == base::StringPiece::npos) { ++ if (host_end_pos == std::string_view::npos) { + // Allow hostname omission. + // e.g. file://* is interpreted as file:///*, + // file://foo* is interpreted as file:///foo*. @@ -5044,19 +5036,19 @@ new file mode 100755 + if (host_start_pos == host_end_pos) + return ParseResult::kEmptyHost; + -+ if (host_end_pos == base::StringPiece::npos) ++ if (host_end_pos == std::string_view::npos) + return ParseResult::kEmptyPath; + -+ base::StringPiece host_and_port = ++ std::string_view host_and_port = + pattern.substr(host_start_pos, host_end_pos - host_start_pos); + -+ size_t port_separator_pos = base::StringPiece::npos; ++ size_t port_separator_pos = std::string_view::npos; + if (host_and_port[0] != '[') { + // Not IPv6 (either IPv4 or just a normal address). + port_separator_pos = host_and_port.find(':'); + } else { // IPv6. + size_t ipv6_host_end_pos = host_and_port.find(']'); -+ if (ipv6_host_end_pos == base::StringPiece::npos) ++ if (ipv6_host_end_pos == std::string_view::npos) + return ParseResult::kInvalidHost; + if (ipv6_host_end_pos == 1) + return ParseResult::kEmptyHost; @@ -5071,21 +5063,21 @@ new file mode 100755 + } + } + -+ if (port_separator_pos != base::StringPiece::npos && ++ if (port_separator_pos != std::string_view::npos && + !SetPort(host_and_port.substr(port_separator_pos + 1))) { + return ParseResult::kInvalidPort; + } + + // Note: this substr() will be the entire string if the port position + // wasn't found. -+ base::StringPiece host_piece = host_and_port.substr(0, port_separator_pos); ++ std::string_view host_piece = host_and_port.substr(0, port_separator_pos); + + if (host_piece.empty()) + return ParseResult::kEmptyHost; + + if (host_piece == "*") { + match_subdomains_ = true; -+ host_piece = base::StringPiece(); ++ host_piece = std::string_view(); + } else if (base::StartsWith(host_piece, "*.")) { + if (host_piece.length() == 2) { + // We don't allow just '*.' as a host. @@ -5134,7 +5126,7 @@ new file mode 100755 + valid_schemes_ = valid_schemes; +} + -+void URLPattern::SetHost(base::StringPiece host) { ++void URLPattern::SetHost(std::string_view host) { + spec_.clear(); + host_.assign(host.data(), host.size()); +} @@ -5156,7 +5148,7 @@ new file mode 100755 + match_subdomains_ = val; +} + -+bool URLPattern::SetScheme(base::StringPiece scheme) { ++bool URLPattern::SetScheme(std::string_view scheme) { + spec_.clear(); + scheme_.assign(scheme.data(), scheme.size()); + if (scheme_ == "*") { @@ -5167,7 +5159,7 @@ new file mode 100755 + return true; +} + -+bool URLPattern::IsValidScheme(base::StringPiece scheme) const { ++bool URLPattern::IsValidScheme(std::string_view scheme) const { + if (valid_schemes_ == SCHEME_ALL) + return true; + @@ -5179,7 +5171,7 @@ new file mode 100755 + return false; +} + -+void URLPattern::SetPath(base::StringPiece path) { ++void URLPattern::SetPath(std::string_view path) { + spec_.clear(); + path_.assign(path.data(), path.size()); + path_escaped_ = path_; @@ -5187,7 +5179,7 @@ new file mode 100755 + base::ReplaceSubstringsAfterOffset(&path_escaped_, 0, "?", "\\?"); +} + -+bool URLPattern::SetPort(base::StringPiece port) { ++bool URLPattern::SetPort(std::string_view port) { + spec_.clear(); + if (IsValidPortForScheme(scheme_, port)) { + port_.assign(port.data(), port.size()); @@ -5252,14 +5244,14 @@ new file mode 100755 + return MatchesSecurityOriginHelper(*test_url); +} + -+bool URLPattern::MatchesScheme(base::StringPiece test) const { ++bool URLPattern::MatchesScheme(std::string_view test) const { + if (!IsValidScheme(test)) + return false; + + return scheme_ == "*" || test == scheme_; +} + -+bool URLPattern::MatchesHost(base::StringPiece host) const { ++bool URLPattern::MatchesHost(std::string_view host) const { + // TODO(devlin): This is a bit sad. Parsing urls is expensive. However, it's + // important that we do this conversion to a GURL in order to canonicalize the + // host (the pattern's host_ already is canonicalized from Parse()). We can't @@ -5270,8 +5262,8 @@ new file mode 100755 +} + +bool URLPattern::MatchesHost(const GURL& test) const { -+ base::StringPiece test_host(CanonicalizeHostForMatching(test.host_piece())); -+ const base::StringPiece pattern_host(CanonicalizeHostForMatching(host_)); ++ std::string_view test_host(CanonicalizeHostForMatching(test.host_piece())); ++ const std::string_view pattern_host(CanonicalizeHostForMatching(host_)); + + // If the hosts are exactly equal, we have a match. + if (test_host == pattern_host) @@ -5337,7 +5329,7 @@ new file mode 100755 + return !MatchesEffectiveTld() && scheme_ != "*" && !match_subdomains_; +} + -+bool URLPattern::MatchesPath(base::StringPiece test) const { ++bool URLPattern::MatchesPath(std::string_view test) const { + // Make the behaviour of OverlapsWith consistent with MatchesURL, which is + // need to match hosted apps on e.g. 'google.com' also run on 'google.com/'. + // The below if is a no-copy way of doing (test + "/*" == path_escaped_). @@ -5460,12 +5452,12 @@ new file mode 100755 + + // Note: Alias the function type (rather than using auto) because + // MatchesHost() is overloaded. -+ using match_function_type = bool (URLPattern::*)(base::StringPiece) const; ++ using match_function_type = bool (URLPattern::*)(std::string_view) const; + -+ auto get_intersection = [this, &other](base::StringPiece own_str, -+ base::StringPiece other_str, ++ auto get_intersection = [this, &other](std::string_view own_str, ++ std::string_view other_str, + match_function_type match_function, -+ base::StringPiece* out) { ++ std::string_view* out) { + if ((this->*match_function)(other_str)) { + *out = other_str; + return true; @@ -5477,10 +5469,10 @@ new file mode 100755 + return false; + }; + -+ base::StringPiece scheme; -+ base::StringPiece host; -+ base::StringPiece port; -+ base::StringPiece path; ++ std::string_view scheme; ++ std::string_view host; ++ std::string_view port; ++ std::string_view path; + // If any pieces fail to overlap, then there is no intersection. + if (!get_intersection(scheme_, other.scheme_, &URLPattern::MatchesScheme, + &scheme) || @@ -5492,14 +5484,14 @@ new file mode 100755 + } + + // Only match subdomains if both patterns match subdomains. -+ base::StringPiece subdomains; ++ std::string_view subdomains; + if (match_subdomains_ && other.match_subdomains_) { + // The host may be empty (e.g., in the case of *://*/* - in that case, only + // append '*' instead of '*.'. + subdomains = host.empty() ? "*" : "*."; + } + -+ base::StringPiece scheme_separator = ++ std::string_view scheme_separator = + IsStandardScheme(scheme) ? url::kStandardSchemeSeparator : ":"; + + std::string pattern_str = base::StrCat( @@ -5546,7 +5538,7 @@ new file mode 100755 + return true; +} + -+bool URLPattern::MatchesPortPattern(base::StringPiece port) const { ++bool URLPattern::MatchesPortPattern(std::string_view port) const { + return port_ == "*" || port_ == port; +} + @@ -5685,7 +5677,7 @@ new file mode 100755 + static const char kAllUrlsPattern[]; + + // Returns true if the given |scheme| is considered valid for extensions. -+ static bool IsValidSchemeForExtensions(base::StringPiece scheme); ++ static bool IsValidSchemeForExtensions(std::string_view scheme); + + // Returns the mask for all schemes considered valid for extensions. + static int GetValidSchemeMaskForExtensions(); @@ -5694,7 +5686,7 @@ new file mode 100755 + + // Convenience to construct a URLPattern from a string. If the string is not + // known ahead of time, use Parse() instead, which returns success or failure. -+ URLPattern(int valid_schemes, base::StringPiece pattern); ++ URLPattern(int valid_schemes, std::string_view pattern); + + URLPattern(); + URLPattern(const URLPattern& other); @@ -5712,7 +5704,7 @@ new file mode 100755 + // URLPattern::ParseResult::kSuccess on success, or an error code otherwise. + // On failure, this instance will have some intermediate values and is in an + // invalid state. -+ ParseResult Parse(base::StringPiece pattern_str); ++ ParseResult Parse(std::string_view pattern_str); + + // Gets the bitmask of valid schemes. + int valid_schemes() const { return valid_schemes_; } @@ -5721,7 +5713,7 @@ new file mode 100755 + // Gets the host the pattern matches. This can be an empty string if the + // pattern matches all hosts (the input was ://*/). + const std::string& host() const { return host_; } -+ void SetHost(base::StringPiece host); ++ void SetHost(std::string_view host); + + // Gets whether to match subdomains of host(). + bool match_subdomains() const { return match_subdomains_; } @@ -5730,7 +5722,7 @@ new file mode 100755 + // Gets the path the pattern matches with the leading slash. This can have + // embedded asterisks which are interpreted using glob rules. + const std::string& path() const { return path_; } -+ void SetPath(base::StringPiece path); ++ void SetPath(std::string_view path); + + // Returns true if this pattern matches all (valid) urls. + bool match_all_urls() const { return match_all_urls_; } @@ -5739,14 +5731,14 @@ new file mode 100755 + // Sets the scheme for pattern matches. This can be a single '*' if the + // pattern matches all valid schemes (as defined by the valid_schemes_ + // property). Returns false on failure (if the scheme is not valid). -+ bool SetScheme(base::StringPiece scheme); ++ bool SetScheme(std::string_view scheme); + // Note: You should use MatchesScheme() instead of this getter unless you + // absolutely need the exact scheme. This is exposed for testing. + const std::string& scheme() const { return scheme_; } + + // Returns true if the specified scheme can be used in this URL pattern, and + // false otherwise. Uses valid_schemes_ to determine validity. -+ bool IsValidScheme(base::StringPiece scheme) const; ++ bool IsValidScheme(std::string_view scheme) const; + + // Returns true if this instance matches the specified URL. Always returns + // false for invalid URLs. @@ -5759,14 +5751,14 @@ new file mode 100755 + // Note that if test is "filesystem", this may fail whereas MatchesURL + // may succeed. MatchesURL is smart enough to look at the inner_url instead + // of the outer "filesystem:" part. -+ bool MatchesScheme(base::StringPiece test) const; ++ bool MatchesScheme(std::string_view test) const; + + // Returns true if |test| matches our host. -+ bool MatchesHost(base::StringPiece test) const; ++ bool MatchesHost(std::string_view test) const; + bool MatchesHost(const GURL& test) const; + + // Returns true if |test| matches our path. -+ bool MatchesPath(base::StringPiece test) const; ++ bool MatchesPath(std::string_view test) const; + + // Returns true if the pattern matches all patterns in an (e)TLD. This + // includes patterns like *://*.com/*, *://*.co.uk/*, etc. A pattern that @@ -5789,7 +5781,7 @@ new file mode 100755 + bool MatchesSingleOrigin() const; + + // Sets the port. Returns false if the port is invalid. -+ bool SetPort(base::StringPiece port); ++ bool SetPort(std::string_view port); + const std::string& port() const { return port_; } + + // Returns a string representing this instance. @@ -5851,7 +5843,7 @@ new file mode 100755 + bool MatchesSecurityOriginHelper(const GURL& test) const; + + // Returns true if our port matches the |port| pattern (it may be "*"). -+ bool MatchesPortPattern(base::StringPiece port) const; ++ bool MatchesPortPattern(std::string_view port) const; + + // If the URLPattern contains a wildcard scheme, returns a list of + // equivalent literal schemes, otherwise returns the current scheme. @@ -6836,16 +6828,16 @@ new file mode 100755 + + // If external_content_ is set returns it as content otherwise it returns + // content_ -+ const base::StringPiece GetContent() const { ++ const std::string_view GetContent() const { + if (external_content_.data()) + return external_content_; + else + return content_; + } -+ void set_external_content(const base::StringPiece& content) { ++ void set_external_content(const std::string_view& content) { + external_content_ = content; + } -+ void set_content(const base::StringPiece& content) { ++ void set_content(const std::string_view& content) { + content_.assign(content.begin(), content.end()); + } + @@ -6870,7 +6862,7 @@ new file mode 100755 + + // The script content. It can be set to either loaded_content_ or + // externally allocated string. -+ base::StringPiece external_content_; ++ std::string_view external_content_; + + // Set when the content is loaded by LoadContent + std::string content_; @@ -7244,7 +7236,7 @@ new file mode 100755 + // Why? Is it just because we don't expose those types to JS? + static const struct { + ViewType type; -+ base::StringPiece name; ++ std::string_view name; + } constexpr kTypeMap[] = { + // {VIEW_TYPE_APP_WINDOW, "APP_WINDOW"}, + // {VIEW_TYPE_EXTENSION_BACKGROUND_PAGE, "BACKGROUND"}, @@ -8120,7 +8112,7 @@ new file mode 100755 + } + void OnDestruct() override { injection_->invalidate_render_frame(); } + -+ ScriptInjection* injection_; ++ raw_ptr injection_; +}; + +// static @@ -8442,7 +8434,7 @@ new file mode 100755 + std::unique_ptr injector_; + + // The RenderFrame into which this should inject the script. -+ content::RenderFrame* render_frame_; ++ raw_ptr render_frame_; + + // The associated injection host. + std::unique_ptr injection_host_; @@ -8573,7 +8565,7 @@ new file mode 100755 + void InvalidateAndResetFrame(bool force_reset); + + // The owning ScriptInjectionManager. -+ ScriptInjectionManager* manager_; ++ raw_ptr manager_; + + bool should_run_idle_ = true; // commit @9f2aac4 + @@ -8986,7 +8978,7 @@ new file mode 100755 + std::vector> rfo_helpers_; + + // The set of UserScripts associated with extensions. Owned by the Dispatcher. -+ UserScriptSetManager* user_script_set_manager_; ++ raw_ptr user_script_set_manager_; + + // Pending injections which are waiting for either the proper run location or + // user consent. @@ -9518,12 +9510,12 @@ new file mode 100755 + + // The associated user script. Owned by the UserScriptInjector that created + // this object. -+ const UserScript* script_; ++ raw_ptr script_; + + // The UserScriptSet that eventually owns the UserScript this + // UserScriptInjector points to. + // Outlives |this|. -+ UserScriptSet* const user_script_set_; ++ const raw_ptr user_script_set_; + + // The id of the associated user script. We cache this because when we update + // the |script_| associated with this injection, the old referance may be @@ -9677,14 +9669,14 @@ new file mode 100755 + size_t body_length = 0; + CHECK(iter.ReadData(&body, &body_length)); + script->js_scripts()[j]->set_external_content( -+ base::StringPiece(body, body_length)); ++ std::string_view(body, body_length)); + } + for (size_t j = 0; j < script->css_scripts().size(); ++j) { + const char* body = NULL; + size_t body_length = 0; + CHECK(iter.ReadData(&body, &body_length)); + script->css_scripts()[j]->set_external_content( -+ base::StringPiece(body, body_length)); ++ std::string_view(body, body_length)); + } + + if (only_inject_incognito && !script->is_incognito_enabled()) @@ -9776,7 +9768,7 @@ new file mode 100755 + return iter->second; + } + -+ base::StringPiece script_content = file.GetContent(); ++ std::string_view script_content = file.GetContent(); + blink::WebString source; + if (emulate_greasemonkey) { + // We add this dumb function wrapper for user scripts to emulate what @@ -9798,7 +9790,7 @@ new file mode 100755 + if (iter != script_sources_.end()) + return iter->second; + -+ base::StringPiece script_content = file.GetContent(); ++ std::string_view script_content = file.GetContent(); + return script_sources_ + .insert(std::make_pair( + url, blink::WebString::FromUTF8(script_content))) @@ -10476,12 +10468,12 @@ diff --git a/ipc/ipc_message_start.h b/ipc/ipc_message_start.h PpapiMsgStart, + ExtensionMsgStart, NaClHostMsgStart, - GinJavaBridgeMsgStart, LastIPCMsgStart // Must come last. + }; diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ids.spec --- a/tools/gritsettings/resource_ids.spec +++ b/tools/gritsettings/resource_ids.spec -@@ -1041,6 +1041,12 @@ +@@ -1048,6 +1048,12 @@ "components/search_engine_descriptions_strings.grd": { "messages": [7260], }, diff --git a/build/patches/Eyeo-Adblock-for-Cromite.patch b/build/patches/Eyeo-Adblock-for-Cromite.patch index 602211f0..98221415 100644 --- a/build/patches/Eyeo-Adblock-for-Cromite.patch +++ b/build/patches/Eyeo-Adblock-for-Cromite.patch @@ -55,7 +55,6 @@ deactivation of all pop-ups (default disabled) .../browser/adblock_url_loader_factory.h | 7 +- .../browser/adblock_webcontents_observer.cc | 25 +- .../browser/adblock_webcontents_observer.h | 5 +- - .../content_security_policy_injector_impl.cc | 1 + .../content/browser/element_hider_impl.cc | 2 +- .../browser/frame_hierarchy_builder.cc | 3 +- .../browser/resource_classification_runner.h | 9 + @@ -89,7 +88,7 @@ deactivation of all pop-ups (default disabled) .../serializer/flatbuffer_serializer.cc | 82 +- components/adblock/core/features.cc | 3 +- components/adblock/core/hash/schema_hash.h | 10 + - .../adblock/core/sitekey_storage_impl.cc | 7 + + .../adblock/core/sitekey_storage_impl.cc | 11 +- .../core/subscription/conversion_executors.h | 1 + .../filtering_configuration_maintainer.h | 4 + ...filtering_configuration_maintainer_impl.cc | 31 +- @@ -131,7 +130,7 @@ deactivation of all pop-ups (default disabled) .../blink/renderer/core/css/style_engine.h | 1 + .../renderer/core/exported/web_document.cc | 15 +- .../definitions/adblock_private.d.ts | 14 + - 121 files changed, 6140 insertions(+), 1301 deletions(-) + 120 files changed, 6140 insertions(+), 1304 deletions(-) create mode 100644 chrome/browser/resources/settings/adblock_page/adblock_page.html create mode 100644 chrome/browser/resources/settings/adblock_page/adblock_page.ts rename components/adblock/android/java/res/xml/{adblock_preferences.xml => eyeo_adblock_preferences.xml} (56%) @@ -190,7 +189,7 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -158,8 +158,6 @@ static_library("browser") { +@@ -160,8 +160,6 @@ static_library("browser") { "adblock/adblock_content_browser_client.h", "adblock/adblock_controller_factory.cc", "adblock/adblock_controller_factory.h", @@ -724,7 +723,7 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.h b/chrome/br diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -6399,7 +6399,9 @@ ChromeContentBrowserClient:: +@@ -6629,7 +6629,9 @@ ChromeContentBrowserClient:: } bool ChromeContentBrowserClient::WillInterceptWebSocket( @@ -735,7 +734,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch #if BUILDFLAG(ENABLE_EXTENSIONS) if (!frame) { return false; -@@ -6422,9 +6424,11 @@ bool ChromeContentBrowserClient::WillInterceptWebSocket( +@@ -6652,9 +6654,11 @@ bool ChromeContentBrowserClient::WillInterceptWebSocket( } void ChromeContentBrowserClient::CreateWebSocket( @@ -750,7 +749,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch diff --git a/chrome/browser/chrome_content_browser_client.h b/chrome/browser/chrome_content_browser_client.h --- a/chrome/browser/chrome_content_browser_client.h +++ b/chrome/browser/chrome_content_browser_client.h -@@ -663,11 +663,15 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient { +@@ -675,11 +675,15 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient { CreateURLLoaderHandlerForServiceWorkerNavigationPreload( int frame_tree_node_id, const network::ResourceRequest& resource_request) override; @@ -1002,15 +1001,15 @@ diff --git a/chrome/browser/extensions/api/eyeo_filtering_private/eyeo_filtering diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc -@@ -18,7 +18,6 @@ - #include "chrome/browser/accessibility/page_colors_factory.h" +@@ -19,7 +19,6 @@ #include "chrome/browser/affiliations/affiliation_service_factory.h" + #include "chrome/browser/ai/ai_manager_keyed_service_factory.h" #include "chrome/browser/adblock/adblock_controller_factory.h" -#include "chrome/browser/adblock/adblock_telemetry_service_factory.h" #include "chrome/browser/adblock/content_security_policy_injector_factory.h" #include "chrome/browser/adblock/element_hider_factory.h" #include "chrome/browser/adblock/resource_classification_runner_factory.h" -@@ -861,7 +860,6 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -873,7 +872,6 @@ void ChromeBrowserMainExtraPartsProfiles:: FakeSmartCardDeviceServiceFactory::GetInstance(); #endif adblock::AdblockControllerFactory::GetInstance(); @@ -1044,7 +1043,7 @@ diff --git a/chrome/browser/resources/adblock_internals/BUILD.gn b/chrome/browse diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resources/settings/BUILD.gn --- a/chrome/browser/resources/settings/BUILD.gn +++ b/chrome/browser/resources/settings/BUILD.gn -@@ -62,6 +62,7 @@ build_webui("build") { +@@ -64,6 +64,7 @@ build_webui("build") { "a11y_page/a11y_page.ts", "about_page/about_page.ts", "ai_page/ai_page.ts", @@ -1052,7 +1051,7 @@ diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resourc "appearance_page/appearance_fonts_page.ts", "appearance_page/appearance_page.ts", "appearance_page/home_url_input.ts", -@@ -397,6 +398,7 @@ build_webui("build") { +@@ -401,6 +402,7 @@ build_webui("build") { ts_definitions = [ "//tools/typescript/definitions/autofill_private.d.ts", "//tools/typescript/definitions/chrome_event.d.ts", @@ -1610,7 +1609,7 @@ diff --git a/chrome/browser/resources/settings/page_visibility.ts b/chrome/brows diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resources/settings/route.ts --- a/chrome/browser/resources/settings/route.ts +++ b/chrome/browser/resources/settings/route.ts -@@ -215,6 +215,10 @@ function createRoutes(): SettingsRoutes { +@@ -217,6 +217,10 @@ function createRoutes(): SettingsRoutes { r.FONTS = r.APPEARANCE.createChild('/fonts'); } @@ -1669,7 +1668,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc #include "chrome/browser/bookmarks/bookmark_model_factory.h" #include "chrome/browser/breadcrumbs/breadcrumb_manager_tab_helper.h" #include "chrome/browser/browser_process.h" -@@ -382,6 +383,8 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -380,6 +381,8 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { } } @@ -1678,7 +1677,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc AdblockWebContentObserver::CreateForWebContents( web_contents, adblock::SubscriptionServiceFactory::GetForBrowserContext( -@@ -390,7 +393,8 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -388,7 +391,8 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { web_contents->GetBrowserContext()), adblock::SitekeyStorageFactory::GetForBrowserContext( web_contents->GetBrowserContext()), @@ -1761,7 +1760,7 @@ diff --git a/chrome/common/extensions/api/_api_features.json b/chrome/common/ext }, { "channel": "stable", "contexts": ["webui"], -@@ -523,7 +523,7 @@ +@@ -517,7 +517,7 @@ }, "eyeoFilteringPrivate": [{ "dependencies": ["permission:eyeoFilteringPrivate"], @@ -2893,17 +2892,6 @@ diff --git a/components/adblock/content/browser/adblock_webcontents_observer.h b + raw_ptr settings_map_ = nullptr; }; #endif // COMPONENTS_ADBLOCK_CONTENT_BROWSER_ADBLOCK_WEBCONTENTS_OBSERVER_H_ -diff --git a/components/adblock/content/browser/content_security_policy_injector_impl.cc b/components/adblock/content/browser/content_security_policy_injector_impl.cc ---- a/components/adblock/content/browser/content_security_policy_injector_impl.cc -+++ b/components/adblock/content/browser/content_security_policy_injector_impl.cc -@@ -36,6 +36,7 @@ std::set GetCspInjections( - const std::vector frame_hierarchy_chain) { - TRACE_EVENT1("eyeo", "GetCspInjection", "url", request_url.spec()); - std::set injections; -+ if ((true)) return injections; - for (const auto& collection : subscription_collections) { - const auto injection = - collection->GetCspInjections(request_url, frame_hierarchy_chain); diff --git a/components/adblock/content/browser/element_hider_impl.cc b/components/adblock/content/browser/element_hider_impl.cc --- a/components/adblock/content/browser/element_hider_impl.cc +++ b/components/adblock/content/browser/element_hider_impl.cc @@ -4420,7 +4408,7 @@ diff --git a/components/adblock/core/converter/parser/url_filter.cc b/components + } piece.remove_suffix(1); } - if (piece.find('|') == base::StringPiece::npos) { + if (piece.find('|') == std::string_view::npos) { @@ -108,21 +112,21 @@ std::optional UrlFilter::FromString(std::string filter_str) { if (options->Csp().has_value() && options->Csp().value().empty() && @@ -4656,7 +4644,18 @@ new file mode 100644 diff --git a/components/adblock/core/sitekey_storage_impl.cc b/components/adblock/core/sitekey_storage_impl.cc --- a/components/adblock/core/sitekey_storage_impl.cc +++ b/components/adblock/core/sitekey_storage_impl.cc -@@ -37,6 +37,8 @@ void SitekeyStorageImpl::ProcessResponseHeaders( +@@ -27,9 +27,7 @@ + + namespace adblock { + +-SitekeyStorageImpl::SitekeyStorageImpl() { +- crypto::EnsureOpenSSLInit(); +-} ++SitekeyStorageImpl::SitekeyStorageImpl() {} + + SitekeyStorageImpl::~SitekeyStorageImpl() = default; + +@@ -37,6 +35,8 @@ void SitekeyStorageImpl::ProcessResponseHeaders( const GURL& request_url, const scoped_refptr& headers, const std::string& user_agent) { @@ -4665,7 +4664,7 @@ diff --git a/components/adblock/core/sitekey_storage_impl.cc b/components/adbloc if (user_agent.empty()) { LOG(WARNING) << "[eyeo] No user agent info"; return; -@@ -53,6 +55,7 @@ void SitekeyStorageImpl::ProcessResponseHeaders( +@@ -53,6 +53,7 @@ void SitekeyStorageImpl::ProcessResponseHeaders( std::optional> SitekeyStorageImpl::FindSiteKeyForAnyUrl(const std::vector& urls) const { @@ -4673,7 +4672,7 @@ diff --git a/components/adblock/core/sitekey_storage_impl.cc b/components/adbloc DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); for (const auto& url : urls) { auto elem = url_to_sitekey_map_.find(url); -@@ -66,6 +69,8 @@ SitekeyStorageImpl::FindSiteKeyForAnyUrl(const std::vector& urls) const { +@@ -66,6 +67,8 @@ SitekeyStorageImpl::FindSiteKeyForAnyUrl(const std::vector& urls) const { void SitekeyStorageImpl::ProcessSiteKey(const GURL& request_url, const SiteKey& site_key, const std::string& user_agent) { @@ -4682,7 +4681,7 @@ diff --git a/components/adblock/core/sitekey_storage_impl.cc b/components/adbloc DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK(!site_key.value().empty()); auto site_key_pair = FindSiteKeyForAnyUrl({request_url}); -@@ -116,6 +121,8 @@ bool SitekeyStorageImpl::IsSitekeySignatureValid( +@@ -116,6 +119,8 @@ bool SitekeyStorageImpl::IsSitekeySignatureValid( const std::string& public_key_b64, const std::string& signature_b64, const std::string& data) const { @@ -9900,7 +9899,7 @@ new file mode 100644 diff --git a/content/browser/websockets/websocket_connector_impl.cc b/content/browser/websockets/websocket_connector_impl.cc --- a/content/browser/websockets/websocket_connector_impl.cc +++ b/content/browser/websockets/websocket_connector_impl.cc -@@ -89,14 +89,14 @@ void WebSocketConnectorImpl::Connect( +@@ -90,14 +90,14 @@ void WebSocketConnectorImpl::Connect( const uint32_t options = GetContentClient()->browser()->GetWebSocketOptions(frame); @@ -9910,9 +9909,9 @@ diff --git a/content/browser/websockets/websocket_connector_impl.cc b/content/br - frame, + process, frame, base::BindOnce(ConnectCalledByContentBrowserClient, requested_protocols, - site_for_cookies, has_storage_access, isolation_info_, - process_id_, frame_id_, origin_, options, - std::move(throttling_profile_id)), + site_for_cookies, storage_access_api_status, + isolation_info_, process_id_, frame_id_, origin_, + options, std::move(throttling_profile_id)), - url, site_for_cookies, user_agent, std::move(handshake_client)); + url, origin_, site_for_cookies, user_agent, std::move(handshake_client)); return; @@ -9921,7 +9920,7 @@ diff --git a/content/browser/websockets/websocket_connector_impl.cc b/content/br diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc --- a/content/public/browser/content_browser_client.cc +++ b/content/public/browser/content_browser_client.cc -@@ -1048,7 +1048,7 @@ void ContentBrowserClient::WillCreateURLLoaderFactory( +@@ -1065,7 +1065,7 @@ void ContentBrowserClient::WillCreateURLLoaderFactory( DCHECK(browser_context); } @@ -9930,7 +9929,7 @@ diff --git a/content/public/browser/content_browser_client.cc b/content/public/b return false; } -@@ -1057,9 +1057,11 @@ uint32_t ContentBrowserClient::GetWebSocketOptions(RenderFrameHost* frame) { +@@ -1074,9 +1074,11 @@ uint32_t ContentBrowserClient::GetWebSocketOptions(RenderFrameHost* frame) { } void ContentBrowserClient::CreateWebSocket( @@ -9945,7 +9944,7 @@ diff --git a/content/public/browser/content_browser_client.cc b/content/public/b diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h --- a/content/public/browser/content_browser_client.h +++ b/content/public/browser/content_browser_client.h -@@ -1951,7 +1951,7 @@ class CONTENT_EXPORT ContentBrowserClient { +@@ -1991,7 +1991,7 @@ class CONTENT_EXPORT ContentBrowserClient { scoped_refptr navigation_response_task_runner); // Returns true when the embedder wants to intercept a websocket connection. @@ -9954,7 +9953,7 @@ diff --git a/content/public/browser/content_browser_client.h b/content/public/br // Returns the WebSocket creation options. virtual uint32_t GetWebSocketOptions(RenderFrameHost* frame); -@@ -1973,9 +1973,11 @@ class CONTENT_EXPORT ContentBrowserClient { +@@ -2013,9 +2013,11 @@ class CONTENT_EXPORT ContentBrowserClient { // Always called on the UI thread and only when the Network Service is // enabled. virtual void CreateWebSocket( @@ -10006,7 +10005,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/core/css/style_engine.cc b/third_party/blink/renderer/core/css/style_engine.cc --- a/third_party/blink/renderer/core/css/style_engine.cc +++ b/third_party/blink/renderer/core/css/style_engine.cc -@@ -634,6 +634,14 @@ void StyleEngine::UpdateActiveStyleSheetsInShadow( +@@ -640,6 +640,14 @@ void StyleEngine::UpdateActiveStyleSheetsInShadow( } } @@ -10035,7 +10034,7 @@ diff --git a/third_party/blink/renderer/core/css/style_engine.h b/third_party/bl diff --git a/third_party/blink/renderer/core/exported/web_document.cc b/third_party/blink/renderer/core/exported/web_document.cc --- a/third_party/blink/renderer/core/exported/web_document.cc +++ b/third_party/blink/renderer/core/exported/web_document.cc -@@ -288,6 +288,16 @@ WebStyleSheetKey WebDocument::InsertAbpElemhideStylesheet( +@@ -291,6 +291,16 @@ WebStyleSheetKey WebDocument::InsertAbpElemhideStylesheet( Document* document = Unwrap(); DCHECK(document); @@ -10052,7 +10051,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_document.cc b/third_pa auto* parsed_sheet = MakeGarbageCollected( MakeGarbageCollected(*document)); parsed_sheet->ParseString(source_code); -@@ -297,7 +307,7 @@ WebStyleSheetKey WebDocument::InsertAbpElemhideStylesheet( +@@ -300,7 +310,7 @@ WebStyleSheetKey WebDocument::InsertAbpElemhideStylesheet( if (IsValidAbpRule(parsed_sheet->RuleAt(n))) ++n; else { @@ -10061,7 +10060,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_document.cc b/third_pa parsed_sheet->WrapperDeleteRule(n); LOG(WARNING) << "[eyeo] Broken rule"; } -@@ -309,9 +319,6 @@ WebStyleSheetKey WebDocument::InsertAbpElemhideStylesheet( +@@ -312,9 +322,6 @@ WebStyleSheetKey WebDocument::InsertAbpElemhideStylesheet( {SchedulingPolicy::DisableBackForwardCache()}); } diff --git a/build/patches/Fix-chromium-build-bugs.patch b/build/patches/Fix-chromium-build-bugs.patch index 07ab9b8a..52626a24 100644 --- a/build/patches/Fix-chromium-build-bugs.patch +++ b/build/patches/Fix-chromium-build-bugs.patch @@ -8,20 +8,22 @@ https://bugs.chromium.org/p/chromium/issues/detail?id=1491776#c10 BUILD.gn | 1 - .../navigation_predictor_metrics_document_data.h | 2 ++ chrome/browser/safe_browsing/BUILD.gn | 1 + + chrome/browser/ui/browser_commands.cc | 1 + + .../webid/fedcm_account_selection_view_desktop.cc | 1 + .../omnibox/browser/autocomplete_classifier.cc | 4 ++-- components/omnibox/browser/omnibox_field_trial.cc | 4 ++-- .../phishing_classifier/phishing_image_embedder.cc | 14 +++----------- content/browser/browser_interface_binders.cc | 1 + net/BUILD.gn | 1 + - 8 files changed, 12 insertions(+), 16 deletions(-) + 10 files changed, 14 insertions(+), 16 deletions(-) diff --git a/BUILD.gn b/BUILD.gn --- a/BUILD.gn +++ b/BUILD.gn -@@ -415,7 +415,6 @@ group("gn_all") { +@@ -413,7 +413,6 @@ group("gn_all") { "//android_webview:empty_group", "//android_webview/test", - "//android_webview/tools/automated_ui_tests:webview_ui_test_app", + "//android_webview/tools/automated_ui_tests:webview_ui_test_app_test_apk", - "//android_webview/tools/captured_sites_tests:captured_sites_test_app", "//android_webview/tools/sdk_sandbox", "//android_webview/tools/system_webview_shell", @@ -41,7 +43,7 @@ diff --git a/chrome/browser/navigation_predictor/navigation_predictor_metrics_do diff --git a/chrome/browser/safe_browsing/BUILD.gn b/chrome/browser/safe_browsing/BUILD.gn --- a/chrome/browser/safe_browsing/BUILD.gn +++ b/chrome/browser/safe_browsing/BUILD.gn -@@ -186,6 +186,7 @@ static_library("safe_browsing") { +@@ -198,6 +198,7 @@ static_library("safe_browsing") { "//components/version_info", "//content/public/browser", "//services/preferences/public/mojom:mojom", @@ -49,10 +51,32 @@ diff --git a/chrome/browser/safe_browsing/BUILD.gn b/chrome/browser/safe_browsin ] if (safe_browsing_mode == 1) { # "Safe Browsing Full" files in addition to the "basic" ones to use for +diff --git a/chrome/browser/ui/browser_commands.cc b/chrome/browser/ui/browser_commands.cc +--- a/chrome/browser/ui/browser_commands.cc ++++ b/chrome/browser/ui/browser_commands.cc +@@ -5,6 +5,7 @@ + #include "chrome/browser/ui/browser_commands.h" + + #include ++#include + #include + #include + #include +diff --git a/chrome/browser/ui/views/webid/fedcm_account_selection_view_desktop.cc b/chrome/browser/ui/views/webid/fedcm_account_selection_view_desktop.cc +--- a/chrome/browser/ui/views/webid/fedcm_account_selection_view_desktop.cc ++++ b/chrome/browser/ui/views/webid/fedcm_account_selection_view_desktop.cc +@@ -6,6 +6,7 @@ + + #include "base/functional/bind.h" + #include "base/metrics/histogram_macros.h" ++#include "base/metrics/histogram_functions.h" + #include "chrome/browser/accessibility/accessibility_state_utils.h" + #include "chrome/browser/net/system_network_context_manager.h" + #include "chrome/browser/ui/browser_finder.h" diff --git a/components/omnibox/browser/autocomplete_classifier.cc b/components/omnibox/browser/autocomplete_classifier.cc --- a/components/omnibox/browser/autocomplete_classifier.cc +++ b/components/omnibox/browser/autocomplete_classifier.cc -@@ -96,8 +96,8 @@ void AutocompleteClassifier::Classify( +@@ -102,8 +102,8 @@ void AutocompleteClassifier::Classify( metrics::OmniboxEventProto::PageClassification page_classification, AutocompleteMatch* match, GURL* alternate_nav_url) { @@ -66,7 +90,7 @@ diff --git a/components/omnibox/browser/autocomplete_classifier.cc b/components/ diff --git a/components/omnibox/browser/omnibox_field_trial.cc b/components/omnibox/browser/omnibox_field_trial.cc --- a/components/omnibox/browser/omnibox_field_trial.cc +++ b/components/omnibox/browser/omnibox_field_trial.cc -@@ -1068,11 +1068,11 @@ MLConfig& MLConfig::operator=(const MLConfig& other) = default; +@@ -1047,11 +1047,11 @@ MLConfig& MLConfig::operator=(const MLConfig& other) = default; ScopedMLConfigForTesting::ScopedMLConfigForTesting() : original_config_(std::make_unique(GetMLConfig())) { @@ -118,7 +142,7 @@ diff --git a/content/browser/browser_interface_binders.cc b/content/browser/brow diff --git a/net/BUILD.gn b/net/BUILD.gn --- a/net/BUILD.gn +++ b/net/BUILD.gn -@@ -1630,6 +1630,7 @@ component("net") { +@@ -1666,6 +1666,7 @@ component("net") { if (!is_cronet_build) { deps += [ "//mojo/public/cpp/bindings:default_construct_tag" ] } diff --git a/build/patches/Fix-crash-on-customize-profile-ui.patch b/build/patches/Fix-crash-on-customize-profile-ui.patch index 04f860a1..38bbec18 100644 --- a/build/patches/Fix-crash-on-customize-profile-ui.patch +++ b/build/patches/Fix-crash-on-customize-profile-ui.patch @@ -4,23 +4,13 @@ Subject: Fix crash on customize profile ui License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- - .../theme_color_picker/theme_color_picker_handler.cc | 4 ++-- - .../webui/customize_themes/chrome_customize_themes_handler.cc | 2 +- - 2 files changed, 3 insertions(+), 3 deletions(-) + .../theme_color_picker/theme_color_picker_handler.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chrome/browser/ui/webui/cr_components/theme_color_picker/theme_color_picker_handler.cc b/chrome/browser/ui/webui/cr_components/theme_color_picker/theme_color_picker_handler.cc --- a/chrome/browser/ui/webui/cr_components/theme_color_picker/theme_color_picker_handler.cc +++ b/chrome/browser/ui/webui/cr_components/theme_color_picker/theme_color_picker_handler.cc -@@ -47,7 +47,7 @@ theme_color_picker::mojom::ChromeColorPtr CreateChromeColor( - chrome_colors::ColorInfo color_info) { - auto theme_colors = GetAutogeneratedThemeColors(color_info.color); - auto color = theme_color_picker::mojom::ChromeColor::New(); -- color->name = l10n_util::GetStringUTF8(color_info.label_id); -+ //color->name = l10n_util::GetStringUTF8(color_info.label_id); - color->seed = color_info.color; - color->background = theme_colors.active_tab_color; - color->foreground = theme_colors.frame_color; -@@ -62,7 +62,7 @@ theme_color_picker::mojom::ChromeColorPtr CreateDynamicChromeColor( +@@ -49,7 +49,7 @@ theme_color_picker::mojom::ChromeColorPtr CreateDynamicChromeColor( auto color = theme_color_picker::mojom::ChromeColor::New(); auto color_palette = ui::GeneratePalette( color_info.color, GetSchemeVariant(color_info.variant)); @@ -29,16 +19,4 @@ diff --git a/chrome/browser/ui/webui/cr_components/theme_color_picker/theme_colo color->seed = color_info.color; color->background = is_dark_mode ? color_palette->primary().get(80) : color_palette->primary().get(40); -diff --git a/chrome/browser/ui/webui/customize_themes/chrome_customize_themes_handler.cc b/chrome/browser/ui/webui/customize_themes/chrome_customize_themes_handler.cc ---- a/chrome/browser/ui/webui/customize_themes/chrome_customize_themes_handler.cc -+++ b/chrome/browser/ui/webui/customize_themes/chrome_customize_themes_handler.cc -@@ -80,7 +80,7 @@ void ChromeCustomizeThemesHandler::GetChromeThemes( - auto theme_colors = GetAutogeneratedThemeColors(color_info.color); - auto theme = customize_themes::mojom::ChromeTheme::New(); - theme->id = color_info.id; -- theme->label = l10n_util::GetStringUTF8(color_info.label_id); -+ //theme->label = l10n_util::GetStringUTF8(color_info.label_id); - auto colors = customize_themes::mojom::ThemeColors::New(); - colors->frame = theme_colors.frame_color; - colors->active_tab = theme_colors.active_tab_color; -- diff --git a/build/patches/Fonts-fingerprinting-mitigation.patch b/build/patches/Fonts-fingerprinting-mitigation.patch index d6d2ba7e..5fb14a76 100644 --- a/build/patches/Fonts-fingerprinting-mitigation.patch +++ b/build/patches/Fonts-fingerprinting-mitigation.patch @@ -23,10 +23,10 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html third_party/blink/public/common/features.h | 3 + third_party/blink/renderer/platform/BUILD.gn | 1 + .../renderer/platform/fonts/font_cache.h | 2 +- - .../fonts/skia/bromite_allowed_fonts.h | 270 ++++++++++++++++++ + .../fonts/skia/bromite_allowed_fonts.h | 271 ++++++++++++++++++ .../platform/fonts/skia/font_cache_skia.cc | 44 ++- .../platform/fonts/win/font_cache_skia_win.cc | 7 +- - 11 files changed, 356 insertions(+), 9 deletions(-) + 11 files changed, 357 insertions(+), 9 deletions(-) create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Fonts-fingerprinting-mitigation.inc create mode 100644 cromite_flags/content/common/features_cc/Fonts-fingerprinting-mitigation.inc create mode 100644 cromite_flags/third_party/blink/common/features_cc/Fonts-fingerprinting-mitigation.inc @@ -65,7 +65,7 @@ new file mode 100644 diff --git a/skia/ext/skia_utils_win.cc b/skia/ext/skia_utils_win.cc --- a/skia/ext/skia_utils_win.cc +++ b/skia/ext/skia_utils_win.cc -@@ -365,6 +365,26 @@ void CreateBitmapHeaderForXRGB888(int width, +@@ -370,6 +370,26 @@ void CreateBitmapHeaderForXRGB888(int width, CreateBitmapHeaderWithColorDepth(width, height, 32, hdr); } @@ -115,7 +115,7 @@ diff --git a/skia/ext/skia_utils_win.h b/skia/ext/skia_utils_win.h 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 -@@ -292,6 +292,9 @@ BLINK_COMMON_EXPORT extern const base::FeatureParam +@@ -293,6 +293,9 @@ BLINK_COMMON_EXPORT extern const base::FeatureParam kMaxDiskDataAllocatorCapacityMB; BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kLessAggressiveParkableString); @@ -128,7 +128,7 @@ diff --git a/third_party/blink/public/common/features.h b/third_party/blink/publ 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 -@@ -784,6 +784,7 @@ component("platform") { +@@ -786,6 +786,7 @@ component("platform") { "fonts/simple_font_data.cc", "fonts/simple_font_data.h", "fonts/skia/font_cache_skia.cc", @@ -139,7 +139,7 @@ diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/re diff --git a/third_party/blink/renderer/platform/fonts/font_cache.h b/third_party/blink/renderer/platform/fonts/font_cache.h --- a/third_party/blink/renderer/platform/fonts/font_cache.h +++ b/third_party/blink/renderer/platform/fonts/font_cache.h -@@ -310,7 +310,7 @@ class PLATFORM_EXPORT FontCache final { +@@ -312,7 +312,7 @@ class PLATFORM_EXPORT FontCache final { sk_sp CreateTypeface(const FontDescription&, const FontFaceCreationParams&, @@ -152,7 +152,7 @@ diff --git a/third_party/blink/renderer/platform/fonts/skia/bromite_allowed_font new file mode 100644 --- /dev/null +++ b/third_party/blink/renderer/platform/fonts/skia/bromite_allowed_fonts.h -@@ -0,0 +1,270 @@ +@@ -0,0 +1,271 @@ +/* + This file is part of Bromite. + @@ -345,7 +345,8 @@ new file mode 100644 +#endif + +template -+bool IsInList(const std::u16string& font_name, const char16_t*(&list)[N]) { ++bool IsInList(const std::u16string& font_name, const char16_t*(&input)[N]) { ++ auto list = base::span(input); + for(int t = 0; t < N; ++t) + if (base::EqualsCaseInsensitiveASCII(font_name, list[t])) + return true; @@ -527,7 +528,7 @@ diff --git a/third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc b diff --git a/third_party/blink/renderer/platform/fonts/win/font_cache_skia_win.cc b/third_party/blink/renderer/platform/fonts/win/font_cache_skia_win.cc --- a/third_party/blink/renderer/platform/fonts/win/font_cache_skia_win.cc +++ b/third_party/blink/renderer/platform/fonts/win/font_cache_skia_win.cc -@@ -427,6 +427,7 @@ const FontPlatformData* FontCache::CreateFontPlatformData( +@@ -430,6 +430,7 @@ const FontPlatformData* FontCache::CreateFontPlatformData( sk_sp typeface; std::string name; @@ -535,7 +536,7 @@ diff --git a/third_party/blink/renderer/platform/fonts/win/font_cache_skia_win.c if (alternate_font_name == AlternateFontName::kLocalUniqueFace && RuntimeEnabledFeatures::FontSrcLocalMatchingEnabled()) { -@@ -438,7 +439,7 @@ const FontPlatformData* FontCache::CreateFontPlatformData( +@@ -441,7 +442,7 @@ const FontPlatformData* FontCache::CreateFontPlatformData( return nullptr; } else { @@ -544,7 +545,7 @@ diff --git a/third_party/blink/renderer/platform/fonts/win/font_cache_skia_win.c // For a family match, Windows will always give us a valid pointer here, // even if the face name is non-existent. We have to double-check and see if -@@ -472,7 +473,7 @@ const FontPlatformData* FontCache::CreateFontPlatformData( +@@ -475,7 +476,7 @@ const FontPlatformData* FontCache::CreateFontPlatformData( FontDescription adjusted_font_description = font_description; adjusted_font_description.SetWeight(variant_weight); typeface = @@ -553,7 +554,7 @@ diff --git a/third_party/blink/renderer/platform/fonts/win/font_cache_skia_win.c if (!typeface || !TypefacesMatchesFamily(typeface.get(), adjusted_name)) { return nullptr; -@@ -484,7 +485,7 @@ const FontPlatformData* FontCache::CreateFontPlatformData( +@@ -487,7 +488,7 @@ const FontPlatformData* FontCache::CreateFontPlatformData( FontDescription adjusted_font_description = font_description; adjusted_font_description.SetStretch(variant_stretch); typeface = diff --git a/build/patches/Guard-for-user-agent-reduction.patch b/build/patches/Guard-for-user-agent-reduction.patch index c4ec96c0..71fcf7e3 100644 --- a/build/patches/Guard-for-user-agent-reduction.patch +++ b/build/patches/Guard-for-user-agent-reduction.patch @@ -12,15 +12,15 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -1591,7 +1591,7 @@ void ChromeContentBrowserClient::RegisterProfilePrefs( +@@ -1625,7 +1625,7 @@ void ChromeContentBrowserClient::RegisterProfilePrefs( registry->RegisterIntegerPref( prefs::kUserAgentReduction, static_cast( - embedder_support::UserAgentReductionEnterprisePolicyState::kDefault)); + embedder_support::UserAgentReductionEnterprisePolicyState::kForceEnabled)); registry->RegisterBooleanPref(prefs::kOriginAgentClusterDefaultEnabled, true); + registry->RegisterBooleanPref( - policy::policy_prefs::kIsolatedAppsDeveloperModeAllowed, true); diff --git a/content/common/user_agent.cc b/content/common/user_agent.cc --- a/content/common/user_agent.cc +++ b/content/common/user_agent.cc @@ -54,7 +54,7 @@ diff --git a/content/common/user_agent.cc b/content/common/user_agent.cc 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 -@@ -3251,23 +3251,23 @@ +@@ -3338,23 +3338,23 @@ // If enabled, the deviceModel will be reduced to "K" and the // androidVersion will be reduced to a static "10" string in android // User-Agent string. diff --git a/build/patches/History-number-of-days-privacy-setting.patch b/build/patches/History-number-of-days-privacy-setting.patch index 0bc14d44..d4305b64 100644 --- a/build/patches/History-number-of-days-privacy-setting.patch +++ b/build/patches/History-number-of-days-privacy-setting.patch @@ -155,7 +155,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chrome/browser/extensions/api/settings_private/prefs_util.cc --- a/chrome/browser/extensions/api/settings_private/prefs_util.cc +++ b/chrome/browser/extensions/api/settings_private/prefs_util.cc -@@ -37,6 +37,7 @@ +@@ -40,6 +40,7 @@ #include "components/content_settings/core/common/pref_names.h" #include "components/dom_distiller/core/pref_names.h" #include "components/drive/drive_pref_names.h" @@ -163,7 +163,7 @@ diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chro #include "components/embedder_support/pref_names.h" #include "components/language/core/browser/pref_names.h" #include "components/live_caption/pref_names.h" -@@ -210,6 +211,9 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { +@@ -213,6 +214,9 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { (*s_allowlist)[::prefs::kShowForwardButton] = settings_api::PrefType::kBoolean; @@ -172,7 +172,7 @@ diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chro + // Appearance settings. (*s_allowlist)[::prefs::kCurrentThemeID] = settings_api::PrefType::kString; - (*s_allowlist)[::prefs::kPolicyThemeColor] = settings_api::PrefType::kNumber; + (*s_allowlist)[::prefs::kPinnedActions] = settings_api::PrefType::kList; diff --git a/chrome/browser/history/history_service_factory.cc b/chrome/browser/history/history_service_factory.cc --- a/chrome/browser/history/history_service_factory.cc +++ b/chrome/browser/history/history_service_factory.cc @@ -188,7 +188,7 @@ diff --git a/chrome/browser/history/history_service_factory.cc b/chrome/browser/ 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 -@@ -375,6 +375,7 @@ std::unique_ptr Profile::CreateProfile(const base::FilePath& path, +@@ -376,6 +376,7 @@ std::unique_ptr Profile::CreateProfile(const base::FilePath& path, void ProfileImpl::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref(prefs::kSavingBrowserHistoryDisabled, false); @@ -245,7 +245,7 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.ts b/ch diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -1282,6 +1282,18 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1290,6 +1290,18 @@ Your Google account may have other forms of browsing history like searches and a Browsing history @@ -267,7 +267,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 -@@ -1814,6 +1814,11 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, +@@ -1831,6 +1831,11 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, {"safeBrowsingStandardDesc", IDS_SETTINGS_SAFEBROWSING_STANDARD_DESC}, {"safeBrowsingStandardDescUpdated", IDS_SETTINGS_SAFEBROWSING_STANDARD_DESC_UPDATED}, @@ -464,7 +464,7 @@ diff --git a/components/history/core/browser/history_backend.cc b/components/his // The maximum number of days for which domain visit metrics are computed // each time HistoryBackend::GetDomainDiversity() is called. -@@ -1311,6 +1311,19 @@ void HistoryBackend::InitImpl( +@@ -1312,6 +1312,19 @@ void HistoryBackend::InitImpl( expirer_.StartExpiringOldStuff(base::Days(kExpireDaysThreshold)); } @@ -574,7 +574,7 @@ diff --git a/components/history/core/browser/history_service.h b/components/hist // Triggers the backend to load if it hasn't already, and then returns whether // it's finished loading. // Note: Virtual needed for mocking. -@@ -1217,6 +1221,10 @@ class HistoryService : public KeyedService, +@@ -1215,6 +1219,10 @@ class HistoryService : public KeyedService, raw_ptr local_device_info_provider_ = nullptr; diff --git a/build/patches/Improve-the-browser-sandbox.patch b/build/patches/Improve-the-browser-sandbox.patch index 2bc1a3ce..b4d6ea3c 100644 --- a/build/patches/Improve-the-browser-sandbox.patch +++ b/build/patches/Improve-the-browser-sandbox.patch @@ -13,7 +13,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/sandbox/policy/features.cc b/sandbox/policy/features.cc --- a/sandbox/policy/features.cc +++ b/sandbox/policy/features.cc -@@ -224,4 +224,12 @@ bool IsNetworkSandboxEnabled() { +@@ -240,4 +240,12 @@ bool IsNetworkSandboxEnabled() { #endif // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_FUCHSIA) } diff --git a/build/patches/Increase-number-of-autocomplete-matches-to-10.patch b/build/patches/Increase-number-of-autocomplete-matches-to-10.patch index c54794de..2d49864a 100644 --- a/build/patches/Increase-number-of-autocomplete-matches-to-10.patch +++ b/build/patches/Increase-number-of-autocomplete-matches-to-10.patch @@ -13,7 +13,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/components/omnibox/browser/autocomplete_result.cc b/components/omnibox/browser/autocomplete_result.cc --- a/components/omnibox/browser/autocomplete_result.cc +++ b/components/omnibox/browser/autocomplete_result.cc -@@ -86,10 +86,11 @@ constexpr size_t kMaxPedalMatchIndex = +@@ -87,10 +87,11 @@ constexpr size_t kMaxPedalMatchIndex = // static size_t AutocompleteResult::GetMaxMatches(bool is_zero_suggest) { diff --git a/build/patches/Inject-scripts-for-AMP-tracking-ads-and-video.patch b/build/patches/Inject-scripts-for-AMP-tracking-ads-and-video.patch index c771ef43..e47fc78e 100644 --- a/build/patches/Inject-scripts-for-AMP-tracking-ads-and-video.patch +++ b/build/patches/Inject-scripts-for-AMP-tracking-ads-and-video.patch @@ -35,7 +35,7 @@ diff --git a/third_party/blink/renderer/core/dom/build.gni b/third_party/blink/r diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc --- a/third_party/blink/renderer/core/dom/document.cc +++ b/third_party/blink/renderer/core/dom/document.cc -@@ -305,6 +305,7 @@ +@@ -310,6 +310,7 @@ #include "third_party/blink/renderer/core/page/pointer_lock_controller.h" #include "third_party/blink/renderer/core/page/scrolling/fragment_anchor.h" #include "third_party/blink/renderer/core/page/scrolling/root_scroller_controller.h" @@ -43,7 +43,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink #include "third_party/blink/renderer/core/page/scrolling/snap_coordinator.h" #include "third_party/blink/renderer/core/page/scrolling/top_document_root_scroller_controller.h" #include "third_party/blink/renderer/core/page/spatial_navigation_controller.h" -@@ -384,6 +385,8 @@ +@@ -390,6 +391,8 @@ #include "third_party/blink/renderer/platform/wtf/text/string_buffer.h" #include "third_party/blink/renderer/platform/wtf/text/text_encoding_registry.h" @@ -52,7 +52,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink #ifndef NDEBUG using WeakDocumentSet = blink::HeapHashSet>; static WeakDocumentSet& LiveDocumentSet(); -@@ -7398,6 +7401,64 @@ void Document::OnPrepareToStopParsing() { +@@ -7422,6 +7425,64 @@ void Document::OnPrepareToStopParsing() { MilestoneForDelayedAsyncScript::kFinishedParsing); } @@ -117,7 +117,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink void Document::FinishedParsing() { TRACE_EVENT_WITH_FLOW0("blink", "Document::FinishedParsing", TRACE_ID_LOCAL(this), -@@ -7483,6 +7544,9 @@ void Document::FinishedParsing() { +@@ -7507,6 +7568,9 @@ void Document::FinishedParsing() { } frame->Loader().FinishedParsing(); @@ -130,7 +130,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/renderer/core/dom/document.h --- a/third_party/blink/renderer/core/dom/document.h +++ b/third_party/blink/renderer/core/dom/document.h -@@ -2185,6 +2185,9 @@ class CORE_EXPORT Document : public ContainerNode, +@@ -2205,6 +2205,9 @@ class CORE_EXPORT Document : public ContainerNode, void AXContextModeChanged(); void ClearAXObjectCache(); diff --git a/build/patches/Internal-firewall.patch b/build/patches/Internal-firewall.patch index 86d4bdce..3b0c7ad7 100644 --- a/build/patches/Internal-firewall.patch +++ b/build/patches/Internal-firewall.patch @@ -59,7 +59,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -2575,6 +2575,7 @@ static_library("browser") { +@@ -2563,6 +2563,7 @@ static_library("browser") { "//third_party/ungoogled:switches", "//services/device/public/mojom", "//services/device/public/mojom:usb", @@ -70,7 +70,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn 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 -@@ -214,6 +214,7 @@ +@@ -213,6 +213,7 @@ #include "sandbox/policy/features.h" #include "sandbox/policy/switches.h" #include "services/device/public/cpp/device_features.h" @@ -81,8 +81,8 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/download/android/download_controller.cc b/chrome/browser/download/android/download_controller.cc --- a/chrome/browser/download/android/download_controller.cc +++ b/chrome/browser/download/android/download_controller.cc -@@ -170,6 +170,36 @@ bool ShouldOpenPdfInline(DownloadItem* item) { - !item->IsMustDownload() && item->IsTransient(); +@@ -234,6 +234,36 @@ void RecordDownloadBlocklistState(download::DownloadItem* item) { + checker->Start(); } +const net::NetworkTrafficAnnotationTag traffic_annotation = @@ -118,7 +118,7 @@ diff --git a/chrome/browser/download/android/download_controller.cc b/chrome/bro } // namespace static void JNI_DownloadController_OnAcquirePermissionResult( -@@ -216,7 +246,7 @@ static void JNI_DownloadController_DownloadUrl(JNIEnv* env, +@@ -280,7 +310,7 @@ static void JNI_DownloadController_DownloadUrl(JNIEnv* env, if (download_manager) { auto dl_params = std::make_unique( GURL(url), @@ -289,7 +289,7 @@ new file mode 100644 diff --git a/net/BUILD.gn b/net/BUILD.gn --- a/net/BUILD.gn +++ b/net/BUILD.gn -@@ -1049,6 +1049,7 @@ component("net") { +@@ -1079,6 +1079,7 @@ component("net") { "//build:chromeos_buildflags", "//components/miracle_parameter/common", "//net/http:transport_security_state_generated_files", @@ -314,7 +314,7 @@ diff --git a/net/traffic_annotation/network_traffic_annotation.h b/net/traffic_a diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc --- a/net/url_request/url_request_http_job.cc +++ b/net/url_request/url_request_http_job.cc -@@ -391,6 +391,9 @@ URLRequestHttpJob::URLRequestHttpJob( +@@ -421,6 +421,9 @@ URLRequestHttpJob::URLRequestHttpJob( : URLRequestJob(request), http_user_agent_settings_(http_user_agent_settings) { ResetTimer(); @@ -324,7 +324,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque } URLRequestHttpJob::~URLRequestHttpJob() { -@@ -677,6 +680,18 @@ void URLRequestHttpJob::MaybeStartTransactionInternal(int result) { +@@ -737,6 +740,18 @@ void URLRequestHttpJob::MaybeStartTransactionInternal(int result) { void URLRequestHttpJob::StartTransactionInternal() { DCHECK(!override_response_headers_); @@ -346,7 +346,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque diff --git a/net/url_request/url_request_http_job.h b/net/url_request/url_request_http_job.h --- a/net/url_request/url_request_http_job.h +++ b/net/url_request/url_request_http_job.h -@@ -29,6 +29,7 @@ +@@ -30,6 +30,7 @@ #include "net/http/http_request_info.h" #include "net/socket/connection_attempts.h" #include "net/url_request/url_request_job.h" @@ -354,7 +354,7 @@ diff --git a/net/url_request/url_request_http_job.h b/net/url_request/url_reques namespace net { -@@ -79,6 +80,8 @@ class NET_EXPORT_PRIVATE URLRequestHttpJob : public URLRequestJob { +@@ -81,6 +82,8 @@ class NET_EXPORT_PRIVATE URLRequestHttpJob : public URLRequestJob { return priority_; } @@ -1647,15 +1647,15 @@ new file mode 100644 diff --git a/services/network/network_context.cc b/services/network/network_context.cc --- a/services/network/network_context.cc +++ b/services/network/network_context.cc -@@ -94,6 +94,7 @@ +@@ -96,6 +96,7 @@ #include "net/url_request/url_request.h" #include "net/url_request/url_request_context.h" #include "net/url_request/url_request_context_builder.h" +#include "services/firewall/public/firewall_service.h" #include "services/network/brokered_client_socket_factory.h" #include "services/network/cookie_manager.h" - #include "services/network/cors/cors_url_loader_factory.h" -@@ -1680,6 +1681,9 @@ void NetworkContext::OnNewSCTAuditingReportSent() { + #include "services/network/data_remover_util.h" +@@ -1715,6 +1716,9 @@ void NetworkContext::OnNewSCTAuditingReportSent() { void NetworkContext::CreateUDPSocket( mojo::PendingReceiver receiver, mojo::PendingRemote listener) { @@ -1665,7 +1665,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont socket_factory_->CreateUDPSocket(std::move(receiver), std::move(listener)); } -@@ -1692,6 +1696,17 @@ void NetworkContext::CreateRestrictedUDPSocket( +@@ -1727,6 +1731,17 @@ void NetworkContext::CreateRestrictedUDPSocket( mojo::PendingRemote listener, CreateRestrictedUDPSocketCallback callback) { // SimpleHostResolver is transitively owned by |this|. @@ -1683,7 +1683,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont socket_factory_->CreateRestrictedUDPSocket( addr, mode, traffic_annotation, std::move(params), std::move(receiver), std::move(listener), SimpleHostResolver::Create(this), -@@ -1704,6 +1719,17 @@ void NetworkContext::CreateTCPServerSocket( +@@ -1739,6 +1754,17 @@ void NetworkContext::CreateTCPServerSocket( const net::MutableNetworkTrafficAnnotationTag& traffic_annotation, mojo::PendingReceiver receiver, CreateTCPServerSocketCallback callback) { @@ -1701,7 +1701,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont socket_factory_->CreateTCPServerSocket( local_addr, std::move(options), static_cast(traffic_annotation), -@@ -1718,6 +1744,21 @@ void NetworkContext::CreateTCPConnectedSocket( +@@ -1753,6 +1779,21 @@ void NetworkContext::CreateTCPConnectedSocket( mojo::PendingReceiver receiver, mojo::PendingRemote observer, CreateTCPConnectedSocketCallback callback) { @@ -1723,7 +1723,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont socket_factory_->CreateTCPConnectedSocket( local_addr, remote_addr_list, std::move(tcp_connected_socket_options), static_cast(traffic_annotation), -@@ -1729,6 +1770,20 @@ void NetworkContext::CreateTCPBoundSocket( +@@ -1764,6 +1805,20 @@ void NetworkContext::CreateTCPBoundSocket( const net::MutableNetworkTrafficAnnotationTag& traffic_annotation, mojo::PendingReceiver receiver, CreateTCPBoundSocketCallback callback) { @@ -1744,7 +1744,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont socket_factory_->CreateTCPBoundSocket( local_addr, static_cast(traffic_annotation), -@@ -1795,6 +1850,24 @@ void NetworkContext::CreateWebSocket( +@@ -1830,6 +1885,24 @@ void NetworkContext::CreateWebSocket( mojo::PendingRemote auth_handler, mojo::PendingRemote header_client, const std::optional& throttling_profile_id) { @@ -1772,7 +1772,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont diff --git a/services/network/public/cpp/simple_url_loader.cc b/services/network/public/cpp/simple_url_loader.cc --- a/services/network/public/cpp/simple_url_loader.cc +++ b/services/network/public/cpp/simple_url_loader.cc -@@ -1277,6 +1277,8 @@ SimpleURLLoaderImpl::SimpleURLLoaderImpl( +@@ -1284,6 +1284,8 @@ SimpleURLLoaderImpl::SimpleURLLoaderImpl( timeout_timer_(timeout_tick_clock_) { // Allow creation and use on different threads. DETACH_FROM_SEQUENCE(sequence_checker_); @@ -1781,7 +1781,7 @@ diff --git a/services/network/public/cpp/simple_url_loader.cc b/services/network #if DCHECK_IS_ON() if (resource_request_->request_body) { for (const DataElement& element : -@@ -1724,6 +1726,22 @@ void SimpleURLLoaderImpl::StartRequest( +@@ -1731,6 +1733,22 @@ void SimpleURLLoaderImpl::StartRequest( resource_request_->request_body->AppendDataPipe( string_upload_data_pipe_getter_->GetRemoteForNewUpload()); } @@ -1827,7 +1827,7 @@ diff --git a/services/network/public/cpp/simple_url_loader.h b/services/network/ diff --git a/third_party/blink/renderer/platform/loader/fetch/fetch_utils.cc b/third_party/blink/renderer/platform/loader/fetch/fetch_utils.cc --- a/third_party/blink/renderer/platform/loader/fetch/fetch_utils.cc +++ b/third_party/blink/renderer/platform/loader/fetch/fetch_utils.cc -@@ -118,32 +118,243 @@ net::NetworkTrafficAnnotationTag FetchUtils::GetTrafficAnnotationTag( +@@ -119,32 +119,243 @@ net::NetworkTrafficAnnotationTag FetchUtils::GetTrafficAnnotationTag( case network::mojom::RequestDestination::kIframe: case network::mojom::RequestDestination::kFrame: case network::mojom::RequestDestination::kFencedframe: @@ -2084,7 +2084,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/fetch_utils.cc b/t semantics { sender: "Blink Resource Loader" description: -@@ -167,7 +378,7 @@ net::NetworkTrafficAnnotationTag FetchUtils::GetTrafficAnnotationTag( +@@ -168,7 +379,7 @@ net::NetworkTrafficAnnotationTag FetchUtils::GetTrafficAnnotationTag( case network::mojom::RequestDestination::kEmbed: case network::mojom::RequestDestination::kObject: return net::DefineNetworkTrafficAnnotation( diff --git a/build/patches/JIT-site-settings.patch b/build/patches/JIT-site-settings.patch index f73d38d2..21bbe518 100644 --- a/build/patches/JIT-site-settings.patch +++ b/build/patches/JIT-site-settings.patch @@ -275,7 +275,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 -@@ -589,7 +589,7 @@ void ContentSettingsRegistry::Init() { +@@ -600,7 +600,7 @@ void ContentSettingsRegistry::Init() { ContentSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY); Register(ContentSettingsType::JAVASCRIPT_JIT, "javascript-jit", @@ -287,7 +287,7 @@ diff --git a/components/content_settings/core/browser/content_settings_registry. diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc -@@ -3396,13 +3396,8 @@ void RenderProcessHostImpl::AppendRendererCommandLine( +@@ -3098,13 +3098,8 @@ void RenderProcessHostImpl::AppendRendererCommandLine( } if (IsJitDisabled()) { diff --git a/build/patches/Keep-ComputePressure-disabled.patch b/build/patches/Keep-ComputePressure-disabled.patch index 65b0642e..e6c96f06 100644 --- a/build/patches/Keep-ComputePressure-disabled.patch +++ b/build/patches/Keep-ComputePressure-disabled.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 -@@ -707,11 +707,9 @@ +@@ -756,11 +756,9 @@ status: "experimental", }, { diff --git a/build/patches/Keep-Side-Panel-Companion-disabled.patch b/build/patches/Keep-Side-Panel-Companion-disabled.patch index 2833eea7..f12484c7 100644 --- a/build/patches/Keep-Side-Panel-Companion-disabled.patch +++ b/build/patches/Keep-Side-Panel-Companion-disabled.patch @@ -49,7 +49,7 @@ diff --git a/chrome/browser/ui/side_search/side_search_prefs.cc b/chrome/browser diff --git a/components/search_engines/template_url.cc b/components/search_engines/template_url.cc --- a/components/search_engines/template_url.cc +++ b/components/search_engines/template_url.cc -@@ -1957,7 +1957,7 @@ GURL TemplateURL::GenerateSuggestionURL( +@@ -1999,7 +1999,7 @@ GURL TemplateURL::GenerateSuggestionURL( } bool TemplateURL::IsSideSearchSupported() const { diff --git a/build/patches/Keep-disabled-FetchLaterAPI.patch b/build/patches/Keep-disabled-FetchLaterAPI.patch index 41d16d53..d8533778 100644 --- a/build/patches/Keep-disabled-FetchLaterAPI.patch +++ b/build/patches/Keep-disabled-FetchLaterAPI.patch @@ -99,7 +99,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/core/fetch/fetch_manager.cc b/third_party/blink/renderer/core/fetch/fetch_manager.cc --- a/third_party/blink/renderer/core/fetch/fetch_manager.cc +++ b/third_party/blink/renderer/core/fetch/fetch_manager.cc -@@ -1163,7 +1163,11 @@ void FetchManager::Loader::Failed( +@@ -1168,7 +1168,11 @@ void FetchManager::Loader::Failed( if (resolver_) { ScriptState::Scope scope(GetScriptState()); if (dom_exception) { @@ -112,7 +112,7 @@ diff --git a/third_party/blink/renderer/core/fetch/fetch_manager.cc b/third_part } else { v8::Local value = exception_.Get(GetScriptState()->GetIsolate()); -@@ -1183,7 +1187,11 @@ void FetchManager::Loader::Failed( +@@ -1188,7 +1192,11 @@ void FetchManager::Loader::Failed( V8String(GetScriptState()->GetIsolate(), IdentifiersFactory::IdFromToken(*issue_id))); } @@ -128,7 +128,7 @@ diff --git a/third_party/blink/renderer/core/fetch/fetch_manager.cc b/third_part diff --git a/third_party/blink/renderer/platform/loader/child_url_loader_factory_bundle.cc b/third_party/blink/renderer/platform/loader/child_url_loader_factory_bundle.cc --- a/third_party/blink/renderer/platform/loader/child_url_loader_factory_bundle.cc +++ b/third_party/blink/renderer/platform/loader/child_url_loader_factory_bundle.cc -@@ -254,17 +254,19 @@ void ChildURLLoaderFactoryBundle::CreateLoaderAndStart( +@@ -255,6 +255,12 @@ void ChildURLLoaderFactoryBundle::CreateLoaderAndStart( return; } @@ -141,8 +141,10 @@ diff --git a/third_party/blink/renderer/platform/loader/child_url_loader_factory // Use |keep_alive_loader_factory_| to send the keepalive requests to the // KeepAliveURLLoaderService in the browser process and trigger the special // keepalive request handling. - // |keep_alive_loader_factory_| only presents when - // features::kKeepAliveInBrowserMigration is true. +@@ -263,12 +269,8 @@ void ChildURLLoaderFactoryBundle::CreateLoaderAndStart( + if (request.keepalive) { + FetchUtils::LogFetchKeepAliveRequestSentToServiceMetric(request); + } - if (request.keepalive && keep_alive_loader_factory_ && - base::FeatureList::IsEnabled(features::kKeepAliveInBrowserMigration) && - (request.attribution_reporting_eligibility == @@ -157,7 +159,7 @@ diff --git a/third_party/blink/renderer/platform/loader/child_url_loader_factory diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc --- a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc +++ b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc -@@ -2890,7 +2890,7 @@ void ResourceFetcher::PrepareForLeakDetection() { +@@ -2912,7 +2912,7 @@ void ResourceFetcher::PrepareForLeakDetection() { void ResourceFetcher::StopFetchingInternal(StopFetchingTarget target) { // TODO(toyoshim): May want to suspend scheduler while canceling loaders so // that the cancellations below do not awake unnecessary scheduling. @@ -169,7 +171,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.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 -@@ -1664,10 +1664,9 @@ +@@ -1768,10 +1768,9 @@ }, { // The Blink runtime-enabled feature name for the API's IDL. diff --git a/build/patches/Keep-disabled-WebViewMediaIntegrityApi.patch b/build/patches/Keep-disabled-WebViewMediaIntegrityApi.patch index 334c3569..ab14afb8 100644 --- a/build/patches/Keep-disabled-WebViewMediaIntegrityApi.patch +++ b/build/patches/Keep-disabled-WebViewMediaIntegrityApi.patch @@ -15,7 +15,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/android_webview/common/aw_features.cc b/android_webview/common/aw_features.cc --- a/android_webview/common/aw_features.cc +++ b/android_webview/common/aw_features.cc -@@ -259,5 +259,7 @@ BASE_FEATURE(kCreateSpareRendererOnBrowserContextCreation, +@@ -256,5 +256,7 @@ BASE_FEATURE(kCreateSpareRendererOnBrowserContextCreation, "CreateSpareRendererOnBrowserContextCreation", base::FEATURE_DISABLED_BY_DEFAULT); diff --git a/build/patches/Keep-empty-tabs-between-sessions.patch b/build/patches/Keep-empty-tabs-between-sessions.patch index 49aeaf49..1a7d51bc 100644 --- a/build/patches/Keep-empty-tabs-between-sessions.patch +++ b/build/patches/Keep-empty-tabs-between-sessions.patch @@ -5,29 +5,41 @@ Subject: Keep empty tabs between sessions Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../chrome/browser/tabmodel/TabPersistentStore.java | 12 ------------ - 1 file changed, 12 deletions(-) + .../browser/tabmodel/TabPersistentStore.java | 18 ------------------ + 1 file changed, 18 deletions(-) diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java -@@ -817,18 +817,6 @@ public class TabPersistentStore { +@@ -1152,30 +1152,12 @@ public class TabPersistentStore { + continue; } - } else { -- if (!mSkipSavingNonActiveNtps -- && UrlUtilities.isNtpUrl(tabToRestore.url) -- && !setAsActive -- && !tabToRestore.fromMerge) { -- Log.i(TAG, "Skipping restore of non-selected NTP."); -- RecordHistogram.recordEnumeratedHistogram( -- "Tabs.TabRestoreMethod", -- TabRestoreMethod.SKIPPED_NTP, -- TabRestoreMethod.NUM_ENTRIES); -- return; +- if (i == activeIndex) { +- // If any non-active NTPs have been skipped, the serialized tab model index +- // needs to be adjusted. +- modelInfo.index = modelInfo.ids.size(); +- } else if (shouldSkipTab(tab)) { +- continue; - } + modelInfo.ids.add(tab.getId()); + modelInfo.urls.add(tab.getUrl().getSpec()); + } + return modelInfo; + } + +- private static boolean shouldSkipTab(@NonNull Tab tab) { +- boolean isNtp = tab.isNativePage() && UrlUtilities.isNtpUrl(tab.getUrl()); +- if (!isNtp) return false; - - Log.w(TAG, "Failed to restore TabState; creating Tab with last known URL."); - Tab fallbackTab = - mTabCreatorManager +- if (ChromeFeatureList.sAndroidTabGroupStableIds.isEnabled()) { +- // Only skip NTP tabs that are not in a tab group. +- return tab.getTabGroupId() == null; +- } +- return true; +- } +- + private void saveListToFile(TabModelSelectorMetadata listData) { + if (Objects.equals(mLastSavedMetadata, listData)) return; + // Save the index file containing the list of tabs to restore. -- diff --git a/build/patches/Keep-flag-to-allow-screenshots-in-Incognito-mode.patch b/build/patches/Keep-flag-to-allow-screenshots-in-Incognito-mode.patch index 4017fd77..c3f90a1c 100644 --- a/build/patches/Keep-flag-to-allow-screenshots-in-Incognito-mode.patch +++ b/build/patches/Keep-flag-to-allow-screenshots-in-Incognito-mode.patch @@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -5117,9 +5117,9 @@ +@@ -5255,9 +5255,9 @@ "expiry_milestone": 120 }, { diff --git a/build/patches/Keyboard-protection-flag.patch b/build/patches/Keyboard-protection-flag.patch index af4f500b..0c751f51 100644 --- a/build/patches/Keyboard-protection-flag.patch +++ b/build/patches/Keyboard-protection-flag.patch @@ -217,7 +217,7 @@ diff --git a/third_party/blink/renderer/core/events/keyboard_event.h b/third_par 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 -@@ -213,6 +213,14 @@ BASE_FEATURE(kSystemKeyboardLock, +@@ -227,6 +227,14 @@ BASE_FEATURE(kSystemKeyboardLock, "SystemKeyboardLock", base::FEATURE_ENABLED_BY_DEFAULT); diff --git a/build/patches/Log-dangling-attributes-in-some-html-elements.patch b/build/patches/Log-dangling-attributes-in-some-html-elements.patch index 2d6f7086..8d9ab7b7 100644 --- a/build/patches/Log-dangling-attributes-in-some-html-elements.patch +++ b/build/patches/Log-dangling-attributes-in-some-html-elements.patch @@ -42,7 +42,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc --- a/third_party/blink/renderer/core/dom/document.cc +++ b/third_party/blink/renderer/core/dom/document.cc -@@ -4704,6 +4704,14 @@ void Document::ProcessBaseElement() { +@@ -4711,6 +4711,14 @@ void Document::ProcessBaseElement() { KURL base_element_url; if (href) { String stripped_href = StripLeadingAndTrailingHTMLSpaces(*href); @@ -57,7 +57,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink if (!stripped_href.empty()) base_element_url = KURL(FallbackBaseURL(), stripped_href); } -@@ -4721,6 +4729,14 @@ void Document::ProcessBaseElement() { +@@ -4728,6 +4736,14 @@ void Document::ProcessBaseElement() { !GetExecutionContext()->GetSecurityOrigin()->CanRequest( base_element_url)) { UseCounter::Count(*this, WebFeature::kBaseWithCrossOriginHref); @@ -72,7 +72,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink } } -@@ -4740,6 +4756,8 @@ void Document::ProcessBaseElement() { +@@ -4747,6 +4763,8 @@ void Document::ProcessBaseElement() { if (target->Contains('<')) UseCounter::Count(*this, WebFeature::kBaseWithOpenBracketInTarget); base_target_ = *target; @@ -84,7 +84,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/renderer/core/dom/element.cc --- a/third_party/blink/renderer/core/dom/element.cc +++ b/third_party/blink/renderer/core/dom/element.cc -@@ -2877,8 +2877,26 @@ void Element::StripScriptingAttributes( +@@ -2901,8 +2901,26 @@ void Element::StripScriptingAttributes( attribute_vector.Shrink(destination); } @@ -115,7 +115,7 @@ diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/ diff --git a/third_party/blink/renderer/core/dom/element.h b/third_party/blink/renderer/core/dom/element.h --- a/third_party/blink/renderer/core/dom/element.h +++ b/third_party/blink/renderer/core/dom/element.h -@@ -669,7 +669,8 @@ class CORE_EXPORT Element : public ContainerNode, public Animatable { +@@ -667,7 +667,8 @@ class CORE_EXPORT Element : public ContainerNode, public Animatable { virtual bool HasLegalLinkAttribute(const QualifiedName&) const; // Only called by the parser immediately after element construction. @@ -128,7 +128,7 @@ diff --git a/third_party/blink/renderer/core/dom/element.h b/third_party/blink/r diff --git a/third_party/blink/renderer/core/editing/serializers/markup_formatter.cc b/third_party/blink/renderer/core/editing/serializers/markup_formatter.cc --- a/third_party/blink/renderer/core/editing/serializers/markup_formatter.cc +++ b/third_party/blink/renderer/core/editing/serializers/markup_formatter.cc -@@ -28,6 +28,8 @@ +@@ -33,6 +33,8 @@ #include "third_party/blink/renderer/core/editing/serializers/markup_formatter.h" #include "third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom-shared.h" @@ -137,7 +137,7 @@ diff --git a/third_party/blink/renderer/core/editing/serializers/markup_formatte #include "third_party/blink/renderer/core/dom/cdata_section.h" #include "third_party/blink/renderer/core/dom/comment.h" #include "third_party/blink/renderer/core/dom/document.h" -@@ -216,6 +218,13 @@ void MarkupFormatter::AppendAttributeValue(StringBuilder& result, +@@ -221,6 +223,13 @@ void MarkupFormatter::AppendAttributeValue(StringBuilder& result, const Document& document) { if (attribute.Contains('<') || attribute.Contains('>')) { document.CountUse(mojom::blink::WebFeature::kAttributeValueContainsLtOrGt); @@ -154,7 +154,7 @@ diff --git a/third_party/blink/renderer/core/editing/serializers/markup_formatte diff --git a/third_party/blink/renderer/core/html/forms/html_form_element.cc b/third_party/blink/renderer/core/html/forms/html_form_element.cc --- a/third_party/blink/renderer/core/html/forms/html_form_element.cc +++ b/third_party/blink/renderer/core/html/forms/html_form_element.cc -@@ -318,7 +318,7 @@ void HTMLFormElement::PrepareForSubmission( +@@ -335,7 +335,7 @@ void HTMLFormElement::PrepareForSubmission( if (form_control_element && form_control_element->BlocksFormSubmission()) { UseCounter::Count(GetDocument(), WebFeature::kFormSubmittedWithUnclosedFormControl); @@ -331,7 +331,7 @@ diff --git a/third_party/blink/renderer/core/page/frame_tree.cc b/third_party/bl 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 -@@ -1463,8 +1463,8 @@ +@@ -1572,8 +1572,8 @@ // Experiment with preventing some instances of mutation XSS // by escaping "<" and ">" in attribute values. // See: crbug.com/1175016 @@ -342,7 +342,7 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 }, { name: "EventTimingInteractionCount", -@@ -2370,6 +2370,12 @@ +@@ -2514,6 +2514,12 @@ name: "MacFontsDeprecateFontTraitsWorkaround", status: "stable", }, @@ -353,6 +353,6 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 + status: "experimental" + }, { - name: "MachineLearningCommon", - implied_by: ["MachineLearningModelLoader", "MachineLearningNeuralNetwork"], + name: "MachineLearningNeuralNetwork", + // Enabled by webnn::mojom::features::kWebMachineLearningNeuralNetwork. -- diff --git a/build/patches/Logcat-crash-reports-UI.patch b/build/patches/Logcat-crash-reports-UI.patch index 4b9f5efc..cc8fbb80 100644 --- a/build/patches/Logcat-crash-reports-UI.patch +++ b/build/patches/Logcat-crash-reports-UI.patch @@ -154,7 +154,7 @@ diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/ 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 -@@ -720,6 +720,7 @@ static_library("ui") { +@@ -709,6 +709,7 @@ static_library("ui") { "//third_party/re2", "//third_party/webrtc_overrides:webrtc_component", "//third_party/zlib", diff --git a/build/patches/Media-fingerprinting-mitigations.patch b/build/patches/Media-fingerprinting-mitigations.patch index 022cf00e..65349245 100644 --- a/build/patches/Media-fingerprinting-mitigations.patch +++ b/build/patches/Media-fingerprinting-mitigations.patch @@ -13,7 +13,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/third_party/blink/renderer/modules/webcodecs/video_decoder.cc b/third_party/blink/renderer/modules/webcodecs/video_decoder.cc --- a/third_party/blink/renderer/modules/webcodecs/video_decoder.cc +++ b/third_party/blink/renderer/modules/webcodecs/video_decoder.cc -@@ -300,7 +300,7 @@ ScriptPromise VideoDecoder::isConfigSupported( +@@ -305,7 +305,7 @@ ScriptPromise VideoDecoder::isConfigSupported( auto* config_copy = CopyConfig(*config); // Run the "Check Configuration Support" algorithm. diff --git a/build/patches/Modify-default-preferences.patch b/build/patches/Modify-default-preferences.patch index 91d120bc..e7ba3940 100644 --- a/build/patches/Modify-default-preferences.patch +++ b/build/patches/Modify-default-preferences.patch @@ -31,7 +31,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 -@@ -76,6 +76,7 @@ +@@ -75,6 +75,7 @@ #include "components/autofill/core/common/autofill_payments_features.h" #include "components/autofill/core/common/autofill_switches.h" #include "components/autofill/core/common/autofill_util.h" @@ -54,7 +54,7 @@ diff --git a/chrome/browser/background/background_mode_manager.cc b/chrome/brows diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -1548,7 +1548,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs( +@@ -1582,7 +1582,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs( void ChromeContentBrowserClient::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref(prefs::kDisable3DAPIs, false); @@ -102,7 +102,7 @@ diff --git a/chrome/browser/resources/settings/reset_page/reset_profile_dialog.h diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc --- a/chrome/browser/ui/browser_ui_prefs.cc +++ b/chrome/browser/ui/browser_ui_prefs.cc -@@ -91,10 +91,10 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -95,10 +95,10 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref(prefs::kWebAppCreateInAppsMenu, true); registry->RegisterBooleanPref(prefs::kWebAppCreateInQuickLaunchBar, true); registry->RegisterBooleanPref( @@ -118,18 +118,18 @@ diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_u diff --git a/components/bookmarks/browser/BUILD.gn b/components/bookmarks/browser/BUILD.gn --- a/components/bookmarks/browser/BUILD.gn +++ b/components/bookmarks/browser/BUILD.gn -@@ -24,6 +24,7 @@ static_library("browser") { +@@ -23,6 +23,7 @@ static_library("browser") { + "bookmark_undo_provider.h", "bookmark_utils.h", "bookmark_uuids.h", - "core_bookmark_model.h", + "features.h", "history_bookmark_model.h", "model_loader.h", "scoped_group_bookmark_actions.h", -@@ -47,6 +48,7 @@ static_library("browser") { +@@ -45,6 +46,7 @@ static_library("browser") { + "bookmark_storage.cc", "bookmark_utils.cc", "bookmark_uuids.cc", - "core_bookmark_model.cc", + "features.cc", "model_loader.cc", "scoped_group_bookmark_actions.cc", @@ -145,7 +145,7 @@ diff --git a/components/bookmarks/browser/bookmark_utils.cc b/components/bookmar #include "components/bookmarks/browser/scoped_group_bookmark_actions.h" #include "components/bookmarks/common/bookmark_pref_names.h" #include "components/pref_registry/pref_registry_syncable.h" -@@ -491,11 +492,13 @@ bool DoesBookmarkContainWords(const std::u16string& title, +@@ -492,11 +493,13 @@ bool DoesBookmarkContainWords(const std::u16string& title, void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref( @@ -218,7 +218,7 @@ diff --git a/components/content_settings/core/browser/content_settings_registry. /*allowlisted_primary_schemes=*/{}, /*valid_settings=*/{CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK}, WebsiteSettingsInfo::TOP_ORIGIN_ONLY_SCOPE, -@@ -374,7 +374,7 @@ void ContentSettingsRegistry::Init() { +@@ -385,7 +385,7 @@ void ContentSettingsRegistry::Init() { // TODO(crbug.com/40602007): Update this to "SECURE_ONLY" once // DeviceOrientationEvents and DeviceMotionEvents are only fired in secure // contexts. @@ -254,7 +254,7 @@ diff --git a/components/payments/core/payment_prefs.cc b/components/payments/cor diff --git a/components/safe_browsing/core/common/safe_browsing_prefs.cc b/components/safe_browsing/core/common/safe_browsing_prefs.cc --- a/components/safe_browsing/core/common/safe_browsing_prefs.cc +++ b/components/safe_browsing/core/common/safe_browsing_prefs.cc -@@ -168,13 +168,13 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { +@@ -174,13 +174,13 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { registry->RegisterBooleanPref( prefs::kSafeBrowsingSawInterstitialScoutReporting, false); registry->RegisterBooleanPref( @@ -273,7 +273,7 @@ diff --git a/components/safe_browsing/core/common/safe_browsing_prefs.cc b/compo diff --git a/components/signin/internal/identity_manager/primary_account_manager.cc b/components/signin/internal/identity_manager/primary_account_manager.cc --- a/components/signin/internal/identity_manager/primary_account_manager.cc +++ b/components/signin/internal/identity_manager/primary_account_manager.cc -@@ -245,7 +245,7 @@ void PrimaryAccountManager::RegisterProfilePrefs(PrefRegistrySimple* registry) { +@@ -249,7 +249,7 @@ void PrimaryAccountManager::RegisterProfilePrefs(PrefRegistrySimple* registry) { prefs::kGoogleServicesSyncingGaiaIdMigratedToSignedIn, std::string()); registry->RegisterStringPref( prefs::kGoogleServicesSyncingUsernameMigratedToSignedIn, std::string()); diff --git a/build/patches/Move-navigation-bar-to-bottom.patch b/build/patches/Move-navigation-bar-to-bottom.patch index cba0ecfa..104382f2 100644 --- a/build/patches/Move-navigation-bar-to-bottom.patch +++ b/build/patches/Move-navigation-bar-to-bottom.patch @@ -23,15 +23,12 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../tab_management/TabGroupUiProperties.java | 7 +- .../tab_management/TabGroupUiToolbarView.java | 17 ++ .../tab_management/TabGroupUiViewBinder.java | 3 + - .../TabListContainerViewBinder.java | 15 +- .../tab_management/TabListCoordinator.java | 153 +++++++++++++++++- .../TabListEmptyCoordinator.java | 17 +- - .../tab_management/TabListRecyclerView.java | 19 ++- - .../tab_management/TabSwitcherMediator.java | 27 +++- .../settings/AccessibilitySettings.java | 26 +++ .../ChromeAccessibilitySettingsDelegate.java | 69 ++++++++ .../chrome/browser/app/ChromeActivity.java | 3 + - .../compositor/CompositorViewHolder.java | 8 + + .../compositor/CompositorViewHolder.java | 7 + .../layouts/LayoutManagerChrome.java | 19 ++- .../layouts/LayoutManagerChromeTablet.java | 4 +- .../layouts/ToolbarSwipeLayout.java | 14 +- @@ -45,13 +42,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../messages/MessageContainerCoordinator.java | 16 +- .../modaldialog/ChromeTabModalPresenter.java | 2 +- .../chrome/browser/ntp/NewTabPage.java | 14 +- - .../chrome/browser/ntp/NewTabPageLayout.java | 9 ++ + .../chrome/browser/ntp/NewTabPageLayout.java | 12 +- .../chrome/browser/ntp/RecentTabsPage.java | 30 +++- .../browser/searchwidget/SearchActivity.java | 11 ++ .../browser/settings/SettingsActivity.java | 5 + .../StatusIndicatorCoordinator.java | 9 ++ .../StatusIndicatorSceneLayer.java | 6 +- - .../browser/toolbar/ToolbarManager.java | 44 ++++- + .../browser/toolbar/ToolbarManager.java | 37 ++++- .../chrome/browser/ui/BottomContainer.java | 18 +++ .../ui/system/StatusBarColorController.java | 9 ++ .../android/compositor/layer/toolbar_layer.cc | 10 +- @@ -62,6 +59,12 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/feed/FeedListContentManager.java | 6 +- .../flags/android/chrome_feature_list.cc | 3 + .../browser/flags/ChromeFeatureList.java | 10 ++ + chrome/browser/hub/internal/BUILD.gn | 5 + + .../chrome/browser/hub/HubCoordinator.java | 8 + + .../chrome/browser/hub/HubManagerImpl.java | 17 +- + .../browser/hub/ReversedLinearLayout.java | 42 +++++ + .../android/res/layout/hub_layout.xml | 4 +- + .../android/res/layout/hub_toolbar_layout.xml | 2 +- chrome/browser/prefs/browser_prefs.cc | 2 +- .../chrome/browser/ui/appmenu/AppMenu.java | 40 ++++- .../ui/appmenu/AppMenuHandlerImpl.java | 10 ++ @@ -88,7 +91,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../AccessibilitySettingsDelegate.java | 7 + .../render_widget_host_view_android.cc | 3 + .../Move-navigation-bar-to-bottom.inc | 17 ++ - 75 files changed, 989 insertions(+), 81 deletions(-) + 78 files changed, 1002 insertions(+), 80 deletions(-) + create mode 100644 chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/ReversedLinearLayout.java create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Move-navigation-bar-to-bottom.inc diff --git a/cc/base/features.cc b/cc/base/features.cc @@ -147,7 +151,7 @@ diff --git a/cc/input/browser_controls_offset_manager.cc b/cc/input/browser_cont diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc --- a/cc/trees/layer_tree_host_impl.cc +++ b/cc/trees/layer_tree_host_impl.cc -@@ -4448,6 +4448,9 @@ bool LayerTreeHostImpl::AnimateBrowserControls(base::TimeTicks time) { +@@ -4496,6 +4496,9 @@ bool LayerTreeHostImpl::AnimateBrowserControls(base::TimeTicks time) { if (scroll_delta.IsZero()) return false; @@ -160,7 +164,7 @@ diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc diff --git a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java --- a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java +++ b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java -@@ -105,6 +105,8 @@ import org.chromium.url.GURL; +@@ -98,6 +98,8 @@ import org.chromium.url.GURL; import java.util.List; @@ -168,8 +172,8 @@ diff --git a/chrome/android/features/start_surface/java/src/org/chromium/chrome/ + /** The mediator implements the logic to interact with the surfaces and caller. */ class StartSurfaceMediator - implements TabSwitcher.TabSwitcherViewObserver, -@@ -968,6 +970,8 @@ class StartSurfaceMediator + implements StartSurface.OnTabSelectingListener, +@@ -860,6 +862,8 @@ class StartSurfaceMediator } private void setTopMargin(int topMargin) { @@ -181,15 +185,15 @@ diff --git a/chrome/android/features/start_surface/java/src/org/chromium/chrome/ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator.java -@@ -38,6 +38,7 @@ import org.chromium.ui.modaldialog.ModalDialogManager; +@@ -38,6 +38,7 @@ import org.chromium.components.feature_engagement.FeatureConstants; + import org.chromium.ui.modaldialog.ModalDialogManager; import org.chromium.ui.modelutil.PropertyModel; import org.chromium.ui.modelutil.PropertyModelChangeProcessor; - import org.chromium.ui.resources.dynamics.DynamicResourceLoader; +import org.chromium.chrome.browser.theme.TopUiThemeColorProvider; import java.util.List; -@@ -153,7 +154,8 @@ public class TabGroupUiCoordinator +@@ -156,7 +157,8 @@ public class TabGroupUiCoordinator public void initializeWithNative( Activity activity, BottomControlsCoordinator.BottomControlsVisibilityController visibilityController, @@ -199,7 +203,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser var currentTabModelFilterSupplier = mTabModelSelector.getTabModelFilterProvider().getCurrentTabModelFilterSupplier(); try (TraceEvent e = TraceEvent.scoped("TabGroupUiCoordinator.initializeWithNative")) { -@@ -211,7 +213,8 @@ public class TabGroupUiCoordinator +@@ -214,7 +216,8 @@ public class TabGroupUiCoordinator mLayoutStateProviderSupplier, mIncognitoStateProvider, mTabGridDialogControllerSupplier, @@ -212,7 +216,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java -@@ -51,6 +51,12 @@ import org.chromium.url.GURL; +@@ -52,6 +52,12 @@ import org.chromium.url.GURL; import java.util.List; @@ -237,7 +241,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser TabGroupUiMediator( Context context, BottomControlsVisibilityController visibilityController, -@@ -130,7 +141,8 @@ public class TabGroupUiMediator implements BackPressHandler { +@@ -131,7 +142,8 @@ public class TabGroupUiMediator implements BackPressHandler { @Nullable LazyOneshotSupplier dialogControllerSupplier, @@ -247,7 +251,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser this( context, visibilityController, -@@ -143,7 +155,8 @@ public class TabGroupUiMediator implements BackPressHandler { +@@ -145,7 +157,8 @@ public class TabGroupUiMediator implements BackPressHandler { dialogControllerSupplier, omniboxFocusStateSupplier, SemanticColorUtils.getDialogBgColor(context), @@ -257,7 +261,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser } @VisibleForTesting -@@ -161,7 +174,9 @@ public class TabGroupUiMediator implements BackPressHandler { +@@ -164,7 +177,9 @@ public class TabGroupUiMediator implements BackPressHandler { dialogControllerSupplier, ObservableSupplier omniboxFocusStateSupplier, @ColorInt int primaryBackgroundColor, @@ -268,7 +272,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser mContext = context; mResetHandler = resetHandler; mModel = model; -@@ -185,11 +200,30 @@ public class TabGroupUiMediator implements BackPressHandler { +@@ -183,11 +198,30 @@ public class TabGroupUiMediator implements BackPressHandler { mIsShowingOverViewMode = true; } @@ -299,7 +303,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser if (getTabsToShowForId(lastId).contains(tab)) { return; } -@@ -251,6 +285,7 @@ public class TabGroupUiMediator implements BackPressHandler { +@@ -247,6 +281,7 @@ public class TabGroupUiMediator implements BackPressHandler { return; } resetTabStripWithRelatedTabsForId(currentTab.getId()); @@ -307,16 +311,16 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser } @Override -@@ -378,6 +413,8 @@ public class TabGroupUiMediator implements BackPressHandler { +@@ -372,6 +407,8 @@ public class TabGroupUiMediator implements BackPressHandler { resetTabStripWithRelatedTabsForId(tab.getId()); } + mTabObserver.triggerWithCurrentTab(); + - mBackPressStateSupplier = new ObservableSupplierImpl<>(); + mHandleBackPressChangedSupplier = handleBackPressChangedSupplier; if (mTabGridDialogControllerSupplier != null) { mTabGridDialogControllerSupplier.onAvailable( -@@ -400,6 +437,18 @@ public class TabGroupUiMediator implements BackPressHandler { +@@ -399,6 +436,18 @@ public class TabGroupUiMediator implements BackPressHandler { mModel.set(TabGroupUiProperties.LEFT_BUTTON_DRAWABLE_ID, drawableId); } @@ -335,7 +339,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser void setupLeftButtonOnClickListener(View.OnClickListener listener) { mModel.set(TabGroupUiProperties.LEFT_BUTTON_ON_CLICK_LISTENER, listener); } -@@ -524,6 +573,7 @@ public class TabGroupUiMediator implements BackPressHandler { +@@ -528,6 +577,7 @@ public class TabGroupUiMediator implements BackPressHandler { } public void destroy() { @@ -376,18 +380,18 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiToolbarView.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiToolbarView.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiToolbarView.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiToolbarView.java -@@ -33,6 +33,10 @@ import org.chromium.components.tab_groups.TabGroupColorId; - import org.chromium.ui.KeyboardVisibilityDelegate; +@@ -21,6 +21,10 @@ import androidx.core.widget.ImageViewCompat; + import org.chromium.chrome.tab_ui.R; import org.chromium.ui.widget.ChromeImageView; +import org.chromium.ui.util.ColorUtils; +import org.chromium.chrome.browser.theme.ThemeUtils; +import org.chromium.chrome.browser.flags.ChromeFeatureList; + - /** - * Represents a generic toolbar used in the bottom strip/grid component. {@link - * TabGridDialogToolbarCoordinator} -@@ -175,6 +179,19 @@ public class TabGroupUiToolbarView extends FrameLayout { + /** Toolbar for the bottom tab strip see {@link TabGroupUiCoordinator}. */ + public class TabGroupUiToolbarView extends FrameLayout { + private ChromeImageView mRightButton; +@@ -86,6 +90,19 @@ public class TabGroupUiToolbarView extends FrameLayout { mFadingEdgeEnd.setColorFilter(color, PorterDuff.Mode.SRC_IN); } @@ -427,42 +431,6 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser } } } -diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListContainerViewBinder.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListContainerViewBinder.java ---- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListContainerViewBinder.java -+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListContainerViewBinder.java -@@ -34,6 +34,7 @@ import androidx.recyclerview.widget.RecyclerView; - - import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider; - import org.chromium.chrome.browser.hub.HubFieldTrial; -+import org.chromium.chrome.browser.flags.ChromeFeatureList; - import org.chromium.chrome.browser.tab.TabUtils; - import org.chromium.chrome.browser.theme.ThemeUtils; - import org.chromium.components.browser_ui.styles.ChromeColors; -@@ -103,13 +104,21 @@ class TabListContainerViewBinder { - final int oldTopMargin = params.topMargin; - final int oldBottomMargin = params.bottomMargin; - if (model.get(IS_VISIBLE)) { -- params.topMargin = model.get(TOP_MARGIN); -- params.bottomMargin = model.get(BOTTOM_CONTROLS_HEIGHT); -+ if (!ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { -+ params.topMargin = model.get(TOP_MARGIN); -+ params.bottomMargin = model.get(BOTTOM_CONTROLS_HEIGHT); -+ } else { -+ params.topMargin = 0; -+ params.bottomMargin = model.get(TOP_MARGIN) + -+ model.get(BOTTOM_CONTROLS_HEIGHT); -+ } - } else { - // Treat the bottom margin as 0 to avoid layout shift in tab shrink animations. - // IS_VISIBLE will be set to true after the tab shrink animation see - // {@link TabSwitcherMediator#showTabSwitcherView(boolean)}. -- params.bottomMargin = 0; -+ if (!ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { -+ params.bottomMargin = 0; -+ } - - // Leave the top margin unchanged to avoid relayouts during scrolls and for top - // toolbar indicators while the view is not visible. Once visible the offset will diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListCoordinator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListCoordinator.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListCoordinator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListCoordinator.java @@ -479,8 +447,8 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser import android.graphics.Rect; import android.util.Size; import android.view.LayoutInflater; -@@ -58,6 +62,8 @@ import org.chromium.ui.modelutil.SimpleRecyclerViewAdapter; - import org.chromium.ui.resources.dynamics.DynamicResourceLoader; +@@ -55,6 +59,8 @@ import org.chromium.ui.modelutil.PropertyModelChangeProcessor; + import org.chromium.ui.modelutil.SimpleRecyclerViewAdapter; import org.chromium.ui.widget.ViewLookupCachingFrameLayout; +import org.chromium.chrome.browser.flags.ChromeFeatureList; @@ -488,7 +456,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.List; -@@ -115,6 +121,128 @@ public class TabListCoordinator +@@ -112,6 +118,128 @@ public class TabListCoordinator private int mAwaitingTabId = Tab.INVALID_TAB_ID; private @TabActionState int mTabActionState; @@ -617,7 +585,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser /** * Construct a coordinator for UI that shows a list of tabs. * -@@ -355,6 +483,12 @@ public class TabListCoordinator +@@ -354,6 +482,12 @@ public class TabListCoordinator checkAwaitingLayout(); } }; @@ -630,7 +598,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser mRecyclerView.setLayoutManager(gridLayoutManager); mMediator.registerOrientationListener(gridLayoutManager); mMediator.updateSpanCount( -@@ -366,8 +500,7 @@ public class TabListCoordinator +@@ -365,8 +499,7 @@ public class TabListCoordinator .getDecorView() .getWindowVisibleDisplayFrame(frame); updateGridCardLayout(frame.width()); @@ -640,7 +608,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser LinearLayoutManager layoutManager = new LinearLayoutManager( context, -@@ -382,6 +515,17 @@ public class TabListCoordinator +@@ -381,6 +514,17 @@ public class TabListCoordinator } }; mRecyclerView.setLayoutManager(layoutManager); @@ -658,7 +626,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser } mMediator.setRecyclerViewItemAnimationToggle(mRecyclerView::setDisableItemAnimations); } -@@ -397,7 +541,7 @@ public class TabListCoordinator +@@ -396,7 +540,7 @@ public class TabListCoordinator mHasEmptyView = hasEmptyView; if (mHasEmptyView) { @@ -667,10 +635,10 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser mEmptyStateHeadingResId = emptyHeadingStringResId; mEmptyStateSubheadingResId = emptySubheadingStringResId; mEmptyStateImageResId = emptyImageResId; -@@ -708,6 +852,9 @@ public class TabListCoordinator - void prepareTabSwitcherView() { +@@ -685,6 +829,9 @@ public class TabListCoordinator + void prepareTabSwitcherPaneView() { registerLayoutChangeListener(); - mRecyclerView.prepareTabSwitcherView(); + mRecyclerView.setupCustomItemAnimator(); + if (mRecyclerView.getLayoutManager() instanceof GridLayoutManagerDockBottom) { + ((GridLayoutManagerDockBottom)mRecyclerView.getLayoutManager()).ResetTopPosition(); + } @@ -728,139 +696,6 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser } setEmptyViewVisibility(View.GONE); } -diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListRecyclerView.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListRecyclerView.java ---- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListRecyclerView.java -+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListRecyclerView.java -@@ -42,6 +42,7 @@ import androidx.recyclerview.widget.RecyclerView; - import org.chromium.base.Log; - import org.chromium.chrome.browser.hub.HubFieldTrial; - import org.chromium.chrome.browser.tab_ui.RecyclerViewPosition; -+import org.chromium.chrome.browser.flags.ChromeFeatureList; - import org.chromium.chrome.browser.tabmodel.TabModel; - import org.chromium.chrome.tab_ui.R; - import org.chromium.ui.base.ViewUtils; -@@ -69,6 +70,8 @@ class TabListRecyclerView extends RecyclerView - public static final long BASE_ANIMATION_DURATION_MS = 218; - public static final long FINAL_FADE_IN_DURATION_MS = 50; - -+ private boolean mIsVisible = false; -+ - /** An interface to listen to visibility related changes on this {@link RecyclerView}. */ - interface VisibilityListener { - /** -@@ -285,6 +288,7 @@ class TabListRecyclerView extends RecyclerView - ? FINAL_FADE_IN_DURATION_MS - : BASE_ANIMATION_DURATION_MS; - -+ mIsVisible = true; - setAlpha(0); - setVisibility(View.VISIBLE); - mFadeInAnimator = ObjectAnimator.ofFloat(this, View.ALPHA, 1); -@@ -332,6 +336,11 @@ class TabListRecyclerView extends RecyclerView - } - - void setShadowVisibility(boolean shouldShowShadow) { -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled() -+ && mIsVisible) { -+ // always show shadow -+ shouldShowShadow = true; -+ } - if (mShadowImageView == null) { - Context context = getContext(); - mShadowImageView = new ImageView(context); -@@ -345,7 +354,10 @@ class TabListRecyclerView extends RecyclerView - // Add shadow for grid tab switcher. - FrameLayout.LayoutParams params = - new FrameLayout.LayoutParams( -- LayoutParams.MATCH_PARENT, shadowHeight, Gravity.TOP); -+ LayoutParams.MATCH_PARENT, shadowHeight, -+ (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled() ? -+ Gravity.BOTTOM : -+ Gravity.TOP)); - mShadowImageView.setLayoutParams(params); - mShadowImageView.setTranslationY(mShadowTopOffset); - FrameLayout parent = (FrameLayout) getParent(); -@@ -374,6 +386,10 @@ class TabListRecyclerView extends RecyclerView - - void setShadowTopOffset(int shadowTopOffset) { - mShadowTopOffset = shadowTopOffset; -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { -+ // invert the offset since Gravity is set to BOTTOM -+ mShadowTopOffset = -mShadowTopOffset; -+ } - - if (mShadowImageView != null && getParent() instanceof FrameLayout) { - // Since the shadow has no functionality, other than just existing visually, we can use -@@ -568,6 +584,7 @@ class TabListRecyclerView extends RecyclerView - mListener.finishedHiding(); - } - }); -+ mIsVisible = false; - setShadowVisibility(false); - mFadeOutAnimator.start(); - if (!animate) mFadeOutAnimator.end(); -diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java ---- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java -+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java -@@ -397,7 +397,10 @@ class TabSwitcherMediator - @Override - public void onBottomControlsHeightChanged( - int bottomControlsHeight, int bottomControlsMinHeight) { -- mContainerViewModel.set(BOTTOM_CONTROLS_HEIGHT, bottomControlsHeight); -+ mContainerViewModel.set(BOTTOM_CONTROLS_HEIGHT, bottomControlsHeight + -+ (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled() && mMode == TabListCoordinator.TabListMode.LIST -+ ? mBrowserControlsStateProvider.getContentOffset() -+ : 0)); - } - }; - -@@ -440,11 +443,21 @@ class TabSwitcherMediator - updateTopControlsProperties(); - mContainerViewModel.set( - BOTTOM_CONTROLS_HEIGHT, browserControlsStateProvider.getBottomControlsHeight()); -- -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { -+ mContainerViewModel.set( -+ BOTTOM_CONTROLS_HEIGHT, mContainerViewModel.get(BOTTOM_CONTROLS_HEIGHT) + -+ mBrowserControlsStateProvider.getContentOffset()); -+ } - if (mMode == TabListMode.GRID) { - mContainerViewModel.set( - BOTTOM_PADDING, - (int) context.getResources().getDimension(R.dimen.tab_grid_bottom_padding)); -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { -+ // adjust the bottom margin so as not to cover the top toolbar at the bottom -+ mContainerViewModel.set( -+ BOTTOM_PADDING, mContainerViewModel.get(BOTTOM_PADDING) + -+ mBrowserControlsStateProvider.getContentOffset()); -+ } - if (backPressManager != null && BackPressManager.isEnabled()) { - backPressManager.addHandler(this, BackPressHandler.Type.TAB_SWITCHER); - notifyBackPressStateChangedInternal(); -@@ -502,8 +515,10 @@ class TabSwitcherMediator - private void updateTopControlsProperties() { - // The grid tab switcher for tablets translates up over top of the browser controls. - if (mIsTablet) { -- final int toolbarHeight = getToolbarHeight(); -- -+ int toolbarHeight = getToolbarHeight(); -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { -+ toolbarHeight = 0; -+ } - mContainerViewModel.set(TOP_MARGIN, toolbarHeight); - mContainerViewModel.set(SHADOW_TOP_OFFSET, toolbarHeight); - return; -@@ -512,6 +527,10 @@ class TabSwitcherMediator - final int contentOffset = mBrowserControlsStateProvider.getContentOffset(); - - mContainerViewModel.set(TOP_MARGIN, contentOffset); -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { -+ // move the view up since the toolbar is at the bottom -+ mContainerViewModel.set(TOP_MARGIN, 0); -+ } - mContainerViewModel.set(SHADOW_TOP_OFFSET, contentOffset); - } - 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 @@ -1022,20 +857,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv +import android.view.ViewGroup.LayoutParams; + /** - * A {@link AsyncInitializationActivity} that builds and manages a {@link CompositorViewHolder} - * and associated classes. + * A {@link AsyncInitializationActivity} that builds and manages a {@link CompositorViewHolder} and + * associated classes. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java -@@ -92,6 +92,7 @@ import org.chromium.ui.base.WindowAndroid; - import org.chromium.ui.mojom.VirtualKeyboardMode; - import org.chromium.ui.resources.ResourceManager; - import org.chromium.ui.resources.dynamics.DynamicResourceLoader; -+import org.chromium.chrome.browser.flags.ChromeFeatureList; - - import java.util.ArrayList; - import java.util.HashSet; -@@ -248,6 +249,10 @@ public class CompositorViewHolder extends FrameLayout +@@ -251,6 +251,10 @@ public class CompositorViewHolder extends FrameLayout @Override public void setCurrentTouchEventOffsets(float top) { EventForwarder forwarder = getEventForwarder(); @@ -1046,7 +873,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/Comp if (forwarder != null) forwarder.setCurrentTouchEventOffsets(0, top); } -@@ -904,6 +909,9 @@ public class CompositorViewHolder extends FrameLayout +@@ -881,6 +885,9 @@ public class CompositorViewHolder extends FrameLayout mApplicationBottomInsetSupplier != null ? mApplicationBottomInsetSupplier.get().webContentsHeightInset : 0; @@ -1059,15 +886,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/Comp diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome.java -@@ -46,6 +46,7 @@ import org.chromium.components.browser_ui.widget.gesture.SwipeGestureListener.Sw - import org.chromium.components.browser_ui.widget.scrim.ScrimCoordinator; - import org.chromium.ui.base.DeviceFormFactor; +@@ -38,6 +38,7 @@ import org.chromium.chrome.browser.util.ChromeAccessibilityUtil; + import org.chromium.components.browser_ui.widget.gesture.SwipeGestureListener.ScrollDirection; + import org.chromium.components.browser_ui.widget.gesture.SwipeGestureListener.SwipeHandler; import org.chromium.ui.resources.dynamics.DynamicResourceLoader; +import org.chromium.chrome.browser.flags.ChromeFeatureList; import java.util.List; - import java.util.concurrent.Callable; -@@ -311,7 +312,10 @@ public class LayoutManagerChrome extends LayoutManagerImpl + +@@ -152,7 +153,10 @@ public class LayoutManagerChrome extends LayoutManagerImpl @Override public SwipeHandler createToolbarSwipeHandler(boolean supportSwipeDown) { @@ -1079,7 +906,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo } @Override -@@ -566,9 +570,11 @@ public class LayoutManagerChrome extends LayoutManagerImpl +@@ -340,9 +344,11 @@ public class LayoutManagerChrome extends LayoutManagerImpl private static final float SWIPE_RANGE_DEG = 25; private final boolean mSupportSwipeDown; @@ -1092,7 +919,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo } @Override -@@ -599,6 +605,10 @@ public class LayoutManagerChrome extends LayoutManagerImpl +@@ -373,6 +379,10 @@ public class LayoutManagerChrome extends LayoutManagerImpl if (mSupportSwipeDown && mScrollDirection == ScrollDirection.DOWN) { RecordUserAction.record("MobileToolbarSwipeOpenStackView"); showLayout(LayoutType.TAB_SWITCHER, true); @@ -1103,7 +930,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo } else if (mScrollDirection == ScrollDirection.LEFT || mScrollDirection == ScrollDirection.RIGHT) { startShowing(mToolbarSwipeLayout, true); -@@ -650,6 +660,8 @@ public class LayoutManagerChrome extends LayoutManagerImpl +@@ -424,6 +434,8 @@ public class LayoutManagerChrome extends LayoutManagerImpl direction = ScrollDirection.RIGHT; } else if (swipeAngle < 270 + SWIPE_RANGE_DEG && swipeAngle > 270 - SWIPE_RANGE_DEG) { direction = ScrollDirection.DOWN; @@ -1112,7 +939,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo } return direction; -@@ -666,7 +678,8 @@ public class LayoutManagerChrome extends LayoutManagerImpl +@@ -440,7 +452,8 @@ public class LayoutManagerChrome extends LayoutManagerImpl return direction == ScrollDirection.DOWN || direction == ScrollDirection.LEFT @@ -1125,15 +952,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromeTablet.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromeTablet.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromeTablet.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromeTablet.java -@@ -39,6 +39,7 @@ import org.chromium.components.browser_ui.widget.scrim.ScrimCoordinator; +@@ -37,6 +37,7 @@ import org.chromium.chrome.browser.ui.desktop_windowing.DesktopWindowStateProvid import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.dragdrop.DragAndDropDelegate; import org.chromium.ui.resources.dynamics.DynamicResourceLoader; +import org.chromium.chrome.browser.fullscreen.BrowserControlsManager; - import java.util.concurrent.Callable; - -@@ -145,7 +146,8 @@ public class LayoutManagerChromeTablet extends LayoutManagerChrome { + /** + * {@link LayoutManagerChromeTablet} is the specialization of {@link LayoutManagerChrome} for the +@@ -125,7 +126,8 @@ public class LayoutManagerChromeTablet extends LayoutManagerChrome { windowAndroid, toolbarManager, desktopWindowStateProvider, @@ -1155,7 +982,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo import java.util.ArrayList; import java.util.List; -@@ -442,7 +444,11 @@ public class ToolbarSwipeLayout extends Layout { +@@ -441,7 +443,11 @@ public class ToolbarSwipeLayout extends Layout { mLeftToolbarOverlay.setXOffset(leftX * dpToPx); } mLeftTab.setX(leftX); @@ -1168,7 +995,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo needUpdate = updateSnap(dt, mLeftTab) || needUpdate; } else if (mLeftToolbarOverlay != null) { mLeftToolbarOverlay.setManualVisibility(false); -@@ -455,7 +461,11 @@ public class ToolbarSwipeLayout extends Layout { +@@ -454,7 +460,11 @@ public class ToolbarSwipeLayout extends Layout { mRightToolbarOverlay.setXOffset(rightX * dpToPx); } mRightTab.setX(rightX); @@ -1184,7 +1011,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/compositor/overlays/strip/StripLayoutHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java -@@ -775,7 +775,7 @@ public class StripLayoutHelper implements StripLayoutTabDelegate, StripLayoutGro +@@ -789,7 +789,7 @@ public class StripLayoutHelper implements StripLayoutTabDelegate, StripLayoutGro boolean isRtl = LocalizationUtils.isLayoutRtl(); boolean useUnadjustedScrollOffset = isRtl != isLeft; float offset = @@ -1196,24 +1023,24 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java -@@ -28,6 +28,7 @@ import androidx.appcompat.content.res.AppCompatResources; - +@@ -34,6 +34,7 @@ import org.chromium.base.Callback; import org.chromium.base.metrics.RecordUserAction; import org.chromium.base.supplier.ObservableSupplier; + import org.chromium.base.supplier.ObservableSupplierImpl; +import org.chromium.base.supplier.Supplier; import org.chromium.chrome.R; import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider; import org.chromium.chrome.browser.compositor.LayerTitleCache; -@@ -90,6 +91,8 @@ import org.chromium.ui.interpolators.Interpolators; +@@ -97,6 +98,8 @@ import org.chromium.ui.interpolators.Interpolators; import org.chromium.ui.resources.ResourceManager; import org.chromium.ui.util.ColorUtils; import org.chromium.url.GURL; +import org.chromium.chrome.browser.fullscreen.BrowserControlsManager; +import org.chromium.chrome.browser.flags.ChromeFeatureList; - import java.util.ArrayList; - import java.util.List; -@@ -228,12 +231,16 @@ public class StripLayoutHelperManager + import java.lang.annotation.Retention; + import java.lang.annotation.RetentionPolicy; +@@ -265,12 +268,16 @@ public class StripLayoutHelperManager // Drag-Drop @Nullable private TabDragSource mTabDragSource; @@ -1227,10 +1054,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over return; } + y -= mStripFilterArea.top; - if (mModelSelectorButton.onDown(x, y, fromMouse)) { + if (mModelSelectorButton.onDown(x, y, fromMouse, buttons)) { return; } -@@ -256,6 +263,7 @@ public class StripLayoutHelperManager +@@ -293,6 +300,7 @@ public class StripLayoutHelperManager if (DragDropGlobalState.hasValue()) { return; } @@ -1238,15 +1065,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over mModelSelectorButton.drag(x, y); getActiveStripLayoutHelper().drag(time(), x, y, dx); } -@@ -265,6 +273,7 @@ public class StripLayoutHelperManager +@@ -302,6 +310,7 @@ public class StripLayoutHelperManager if (DragDropGlobalState.hasValue()) { return; } + y -= mStripFilterArea.top; long time = time(); - if (mModelSelectorButton.click(x, y)) { + if (mModelSelectorButton.click(x, y, fromMouse, buttons)) { mModelSelectorButton.handleClick(time); -@@ -278,6 +287,7 @@ public class StripLayoutHelperManager +@@ -315,6 +324,7 @@ public class StripLayoutHelperManager if (DragDropGlobalState.hasValue()) { return; } @@ -1254,7 +1081,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over getActiveStripLayoutHelper().fling(time(), x, y, velocityX, velocityY); } -@@ -286,6 +296,7 @@ public class StripLayoutHelperManager +@@ -323,6 +333,7 @@ public class StripLayoutHelperManager if (DragDropGlobalState.hasValue()) { return; } @@ -1262,7 +1089,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over getActiveStripLayoutHelper().onLongPress(time(), x, y); } -@@ -388,7 +399,8 @@ public class StripLayoutHelperManager +@@ -429,7 +440,8 @@ public class StripLayoutHelperManager // implement an interface to manage strip transition states. @NonNull ToolbarManager toolbarManager, @Nullable DesktopWindowStateProvider desktopWindowStateProvider, @@ -1272,17 +1099,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over Resources res = context.getResources(); mUpdateHost = updateHost; mLayerTitleCacheSupplier = layerTitleCacheSupplier; -@@ -534,6 +546,8 @@ public class StripLayoutHelperManager - windowAndroid, - actionConfirmationManager, - toolbarManager.getTabStripHeightSupplier().get()); +@@ -591,6 +603,8 @@ public class StripLayoutHelperManager + !mTabStripObscured + && getStripVisibilityState() + == StripVisibilityState.VISIBLE); + mBrowserControlsManagerSupplier = browserControlsManagerSupplier; + mDpToPx = context.getResources().getDisplayMetrics().density; tabHoverCardViewStub.setOnInflateListener( (viewStub, view) -> { -@@ -694,6 +708,10 @@ public class StripLayoutHelperManager - // value. +@@ -753,6 +767,10 @@ public class StripLayoutHelperManager + // layer should be a negative value. yOffset -= getHeight(); } + int topControlsHeight = 0; @@ -1292,8 +1119,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over mTabStripTreeProvider.pushAndUpdateStrip( this, mLayerTitleCacheSupplier.get(), -@@ -707,7 +725,9 @@ public class StripLayoutHelperManager - scrimOpacity, +@@ -766,7 +784,9 @@ public class StripLayoutHelperManager + mStripTransitionScrimOpacity, mLeftPadding, mRightPadding, - mTopPadding); @@ -1303,7 +1130,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over return mTabStripTreeProvider; } -@@ -763,11 +783,21 @@ public class StripLayoutHelperManager +@@ -822,11 +842,21 @@ public class StripLayoutHelperManager mLeftPadding, mRightPadding); @@ -1324,9 +1151,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over mWidth - mRightPadding, - Math.min(getHeight(), visibleViewportOffsetY)); + top + Math.min(getHeight(), visibleViewportOffsetY)); - mEventFilter.setEventArea(mStripFilterArea); - } - + // Avoid handling motion events when invisible strip state persists after a size change. + if (getStripVisibilityState() == StripVisibilityState.VISIBLE) { + mEventFilter.setEventArea(mStripFilterArea); diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/StaticTabSceneLayer.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/StaticTabSceneLayer.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/StaticTabSceneLayer.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/StaticTabSceneLayer.java @@ -1503,7 +1330,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/messages/Messag mContainer.setLayoutParams(params); } -@@ -132,6 +140,12 @@ public class MessageContainerCoordinator implements BrowserControlsStateProvider +@@ -133,6 +141,12 @@ public class MessageContainerCoordinator implements BrowserControlsStateProvider /** @return Offset of the message container from the top of the screen. */ private int getContainerTopOffset() { @@ -1519,7 +1346,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/messages/Messag diff --git a/chrome/android/java/src/org/chromium/chrome/browser/modaldialog/ChromeTabModalPresenter.java b/chrome/android/java/src/org/chromium/chrome/browser/modaldialog/ChromeTabModalPresenter.java --- a/chrome/android/java/src/org/chromium/chrome/browser/modaldialog/ChromeTabModalPresenter.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/modaldialog/ChromeTabModalPresenter.java -@@ -291,7 +291,7 @@ public class ChromeTabModalPresenter extends TabModalPresenter +@@ -287,7 +287,7 @@ public class ChromeTabModalPresenter extends TabModalPresenter Resources resources, BrowserControlsStateProvider provider) { int scrimVerticalMargin = resources.getDimensionPixelSize(R.dimen.tab_modal_scrim_vertical_margin); @@ -1531,7 +1358,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/modaldialog/Chr diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java -@@ -114,6 +114,7 @@ import org.chromium.ui.base.DeviceFormFactor; +@@ -110,6 +110,7 @@ import org.chromium.ui.base.DeviceFormFactor; import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.modaldialog.ModalDialogManager; import org.chromium.url.GURL; @@ -1539,7 +1366,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. import java.util.List; -@@ -682,11 +683,16 @@ public class NewTabPage +@@ -669,11 +670,16 @@ public class NewTabPage final int topControlsDistanceToRest = mBrowserControlsStateProvider.getContentOffset() - mBrowserControlsStateProvider.getTopControlsHeight(); @@ -1558,7 +1385,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. if (topMargin != layoutParams.topMargin || bottomMargin != layoutParams.bottomMargin) { layoutParams.topMargin = topMargin; -@@ -702,9 +708,7 @@ public class NewTabPage +@@ -689,9 +695,7 @@ public class NewTabPage * strip. */ private int getToolbarExtraYOffset() { @@ -1572,7 +1399,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java -@@ -17,6 +17,9 @@ import android.util.AttributeSet; +@@ -16,6 +16,9 @@ import android.util.AttributeSet; import android.view.DragEvent; import android.view.LayoutInflater; import android.view.ViewStub; @@ -1582,19 +1409,25 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; -@@ -176,6 +179,12 @@ public class NewTabPageLayout extends LinearLayout { +@@ -178,10 +181,17 @@ public class NewTabPageLayout extends LinearLayout { mMiddleSpacer = findViewById(R.id.ntp_middle_spacer); mFakeSearchBoxLayout = findViewById(R.id.search_box); insertSiteSectionView(); +- + if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + FrameLayout.LayoutParams params = + new FrameLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); + params.gravity = Gravity.BOTTOM; + setLayoutParams(params); + } + Log.i(TAG, "NewTabPageLayout.onFinishInflate after insertSiteSectionView"); } ++ /** ++ /** + * Initializes the NewTabPageLayout. This must be called immediately after inflation, before + * this object is used in any other way. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsPage.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsPage.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsPage.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsPage.java @@ -1641,7 +1474,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsP onUpdated(); } -@@ -297,7 +307,7 @@ public class RecentTabsPage +@@ -298,7 +308,7 @@ public class RecentTabsPage private void updateMargins() { final View recentTabsRoot = mView.findViewById(R.id.recent_tabs_root); @@ -1650,7 +1483,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsP final int contentOffset = mBrowserControlsStateProvider.getContentOffset(); ViewGroup.MarginLayoutParams layoutParams = (ViewGroup.MarginLayoutParams) recentTabsRoot.getLayoutParams(); -@@ -313,9 +323,17 @@ public class RecentTabsPage +@@ -314,9 +324,17 @@ public class RecentTabsPage // If the content offset is different from the margin, we use translationY to position the // view in line with the content offset. @@ -1685,9 +1518,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se import java.lang.ref.WeakReference; /** Queries the user's default search engine and shows autocomplete suggestions. */ -@@ -290,6 +295,12 @@ public class SearchActivity extends AsyncInitializationActivity - (SearchActivityLocationBarLayout) - contentView.findViewById(R.id.search_location_bar); +@@ -288,6 +293,12 @@ public class SearchActivity extends AsyncInitializationActivity + // Build the search box. + mSearchBox = contentView.findViewById(R.id.search_location_bar); View anchorView = contentView.findViewById(R.id.toolbar); + if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + CoordinatorLayout.LayoutParams layoutParams = (CoordinatorLayout.LayoutParams) @@ -1701,7 +1534,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se diff --git a/chrome/android/java/src/org/chromium/chrome/browser/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 -@@ -410,6 +410,11 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -408,6 +408,11 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity if (fragment instanceof INeedSnackbarManager) { ((INeedSnackbarManager)fragment).setSnackbarManager(mSnackbarManager); } @@ -1765,7 +1598,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/status_indicato diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java -@@ -199,6 +199,9 @@ import org.chromium.url.GURL; +@@ -190,6 +190,9 @@ import org.chromium.url.GURL; import java.util.List; @@ -1775,7 +1608,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar /** * Contains logic for managing the toolbar visual component. This class manages the interactions * with the rest of the application to ensure the toolbar is always visually up to date. -@@ -1176,6 +1179,7 @@ public class ToolbarManager +@@ -1112,6 +1115,7 @@ public class ToolbarManager // the height won't be measured by the background image. if (mControlContainer.getBackground() == null) { setControlContainerTopMargin(getToolbarExtraYOffset()); @@ -1783,7 +1616,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar } else if (mLayoutChangeListener == null) { mLayoutChangeListener = (view, -@@ -1189,6 +1193,7 @@ public class ToolbarManager +@@ -1125,6 +1129,7 @@ public class ToolbarManager oldBottom) -> { if (mControlContainer.getBackground() == null) { setControlContainerTopMargin(getToolbarExtraYOffset()); @@ -1791,21 +1624,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar mControlContainer.removeOnLayoutChangeListener( mLayoutChangeListener); mLayoutChangeListener = null; -@@ -1365,6 +1370,13 @@ public class ToolbarManager - public void setTabSwitcherFullScreenView(ViewGroup containerView) { - ViewStub toolbarStub = - containerView.findViewById(R.id.fullscreen_tab_switcher_toolbar_stub); -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { -+ // the top tab switcher toolbar is docked at the bottom -+ FrameLayout.LayoutParams params = -+ (FrameLayout.LayoutParams)toolbarStub.getLayoutParams(); -+ params.gravity = Gravity.START | Gravity.BOTTOM; -+ toolbarStub.setLayoutParams(params); -+ } - mToolbar.setFullScreenToolbarStub(toolbarStub); - } - -@@ -1658,14 +1670,26 @@ public class ToolbarManager +@@ -1513,16 +1518,28 @@ public class ToolbarManager return ((LocationBarCoordinator) mLocationBar).getUrlBarTextWithoutAutocomplete(); } @@ -1825,25 +1644,27 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar - View root = ((ViewStub) mActivity.findViewById(R.id.bottom_controls_stub)).inflate(); + mBottomRoot = ((ViewStub) mActivity.findViewById(R.id.bottom_controls_stub)).inflate(); + MoveBottomBarOverTopBar(); - mTabGroupUi = - TabManagementDelegateProvider.getDelegate() - .createTabGroupUi( - mActivity, -- root.findViewById(R.id.bottom_container_slot), -+ mBottomRoot.findViewById(R.id.bottom_container_slot), - mBrowserControlsVisibilityManager, - mIncognitoStateProvider, - mScrimCoordinator, -@@ -1688,7 +1712,7 @@ public class ToolbarManager + assert mTabGroupUiOneshotSupplier == null; + mTabGroupUiOneshotSupplier = + new TabGroupUiOneshotSupplier( + mActivityTabProvider, + mTabModelSelector, + mActivity, +- root.findViewById(R.id.bottom_container_slot), ++ mBottomRoot.findViewById(R.id.bottom_container_slot), + mBrowserControlsVisibilityManager, + mIncognitoStateProvider, + mScrimCoordinator, +@@ -1547,7 +1564,7 @@ public class ToolbarManager mBottomControlsStacker, mFullscreenManager, mEdgeToEdgeControllerSupplier, - (ScrollingBottomViewResourceFrameLayout) root, + (ScrollingBottomViewResourceFrameLayout) mBottomRoot, - mTabGroupUi, + bottomControlsContentDelegateSupplier, mTabObscuringHandler, mOverlayPanelVisibilitySupplier, -@@ -1696,7 +1720,8 @@ public class ToolbarManager +@@ -1555,7 +1572,8 @@ public class ToolbarManager /* readAloudRestoringSupplier= */ () -> { final var readAloud = mReadAloudControllerSupplier.get(); return readAloud != null && readAloud.isRestoringPlayer(); @@ -1853,7 +1674,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar mBottomControlsCoordinatorSupplier.set(bottomControlsCoordinator); if (mBackPressManager != null) { mBackPressManager.addHandler( -@@ -2245,6 +2270,8 @@ public class ToolbarManager +@@ -2066,6 +2084,8 @@ public class ToolbarManager */ private int getToolbarExtraYOffset() { int toolbarHairlineHeight = mToolbarHairline.getHeight(); @@ -1862,7 +1683,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar final int controlContainerHeight = mControlContainer.getHeight(); // Offset can't be calculated if control container height isn't known yet. -@@ -2653,6 +2680,15 @@ public class ToolbarManager +@@ -2467,6 +2487,15 @@ public class ToolbarManager private void setControlContainerTopMargin(int margin) { final ViewGroup.MarginLayoutParams layoutParams = ((ViewGroup.MarginLayoutParams) mControlContainer.getLayoutParams()); @@ -1889,7 +1710,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/BottomContai /** * The container that holds both infobars and snackbars. It will be translated up and down when the -@@ -62,10 +63,27 @@ public class BottomContainer extends FrameLayout +@@ -63,10 +64,27 @@ public class BottomContainer extends FrameLayout setTranslationY(mBaseYOffset); } @@ -1933,8 +1754,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/system/Statu + import org.chromium.base.CallbackController; import org.chromium.base.supplier.ObservableSupplier; - import org.chromium.base.supplier.OneshotSupplier; -@@ -545,6 +548,12 @@ public class StatusBarColorController + import org.chromium.chrome.R; +@@ -482,6 +485,12 @@ public class StatusBarColorController boolean needsDarkStatusBarIcons = !ColorUtils.shouldUseLightForegroundOnBackground(color); UiUtils.setStatusBarIconColor(root, needsDarkStatusBarIcons); UiUtils.setStatusBarColor(window, color); @@ -1972,7 +1793,7 @@ diff --git a/chrome/browser/android/compositor/layer/toolbar_layer.cc b/chrome/b + gfx::PointF(x_offset, content_offset - layer_->bounds().height())); + } - // TODO(peilinwang): update layer_ with offset_tag. + layer_->SetOffsetTag(offset_tag); } diff --git a/chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer.cc b/chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer.cc --- a/chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer.cc @@ -2024,7 +1845,7 @@ diff --git a/chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer diff --git a/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BottomControlsStacker.java b/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BottomControlsStacker.java --- a/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BottomControlsStacker.java +++ b/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BottomControlsStacker.java -@@ -106,7 +106,7 @@ public class BottomControlsStacker implements BrowserControlsStateProvider.Obser +@@ -122,7 +122,7 @@ public class BottomControlsStacker implements BrowserControlsStateProvider.Obser /** * @return {@link BrowserControlsStateProvider} instance in the current Activity. */ @@ -2044,7 +1865,7 @@ diff --git a/chrome/browser/browser_controls/android/java/src/org/chromium/chrom /** * An implementation of {@link DestroyableObservableSupplier} that monitors changes to browser -@@ -58,6 +59,10 @@ public class BrowserControlsMarginSupplier extends ObservableSupplierImpl +@@ -59,6 +60,10 @@ public class BrowserControlsMarginSupplier extends ObservableSupplierImpl int bottomMargin = mBrowserControlsStateProvider.getBottomControlsHeight() - mBrowserControlsStateProvider.getBottomControlOffset(); @@ -2058,7 +1879,7 @@ diff --git a/chrome/browser/browser_controls/android/java/src/org/chromium/chrom diff --git a/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserControlsStateProvider.java b/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserControlsStateProvider.java --- a/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserControlsStateProvider.java +++ b/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserControlsStateProvider.java -@@ -81,6 +81,12 @@ public interface BrowserControlsStateProvider { +@@ -85,6 +85,12 @@ public interface BrowserControlsStateProvider { */ int getTopControlsHeight(); @@ -2102,13 +1923,13 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse #include "base/features.h" #include "base/no_destructor.h" +#include "cc/base/features.h" + #include "chrome/browser/android/webapk/webapk_features.h" #include "chrome/browser/browser_features.h" #include "chrome/browser/flags/android/chrome_session_state.h" - #include "chrome/browser/notifications/chime/android/features.h" -@@ -250,6 +251,8 @@ const base::Feature* const kFeaturesExposedToJava[] = { - &kMultiInstanceApplicationStatusCleanup, +@@ -260,6 +261,8 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kNavBarColorMatchesTabBackground, &kNewTabSearchEngineUrlAndroid, + &kNewTabPageAndroidTriggerForPrerender2, + &features::kMoveTopToolbarToBottom, + &features::kDisableToolbarSwipeUp, &kNotificationPermissionVariant, @@ -2117,9 +1938,9 @@ 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 -@@ -365,6 +365,10 @@ public abstract class ChromeFeatureList { - "NavBarColorMatchesTabBackground"; - public static final String NEW_TAB_SEARCH_ENGINE_URL_ANDROID = "NewTabSearchEngineUrlAndroid"; +@@ -374,6 +374,10 @@ public abstract class ChromeFeatureList { + public static final String NEW_TAB_PAGE_ANDROID_TRIGGER_FOR_PRERENDER2 = + "NewTabPageAndroidTriggerForPrerender2"; public static final String NOTIFICATION_ONE_TAP_UNSUBSCRIBE = "NotificationOneTapUnsubscribe"; + public static final String DISABLE_TOOLBAR_SWIPE_UP = + "DisableToolbarSwipeUp"; @@ -2128,7 +1949,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"; -@@ -645,6 +649,10 @@ public abstract class ChromeFeatureList { +@@ -670,6 +674,10 @@ public abstract class ChromeFeatureList { public static final CachedFlag sPriceInsights = newCachedFlag(PRICE_INSIGHTS, false); public static final CachedFlag sPrivacyGuideAndroid3 = newCachedFlag(PRIVACY_GUIDE_ANDROID_3, false); @@ -2139,7 +1960,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final CachedFlag sPrivacyGuidePreloadAndroid = newCachedFlag(PRIVACY_GUIDE_PRELOAD_ANDROID, false); public static final CachedFlag sOptimizationGuidePushNotifications = -@@ -771,6 +779,8 @@ public abstract class ChromeFeatureList { +@@ -800,6 +808,8 @@ public abstract class ChromeFeatureList { sPrivacyGuideAndroid3, sPrivacyGuidePreloadAndroid, sOptimizationGuidePushNotifications, @@ -2148,10 +1969,196 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f sPaintPreviewDemo, sPrefetchBrowserInitiatedTriggers, sQueryTiles, +diff --git a/chrome/browser/hub/internal/BUILD.gn b/chrome/browser/hub/internal/BUILD.gn +--- a/chrome/browser/hub/internal/BUILD.gn ++++ b/chrome/browser/hub/internal/BUILD.gn +@@ -16,6 +16,7 @@ android_library("java") { + "//chrome/test/android:chrome_java_transit", + ] + sources = [ ++ "android/java/src/org/chromium/chrome/browser/hub/ReversedLinearLayout.java", + "android/java/src/org/chromium/chrome/browser/hub/ApplyButtonData.java", + "android/java/src/org/chromium/chrome/browser/hub/FadeHubLayoutAnimationFactory.java", + "android/java/src/org/chromium/chrome/browser/hub/FadeHubLayoutAnimationFactoryImpl.java", +@@ -68,6 +69,10 @@ android_library("java") { + "//third_party/androidx:androidx_interpolator_interpolator_java", + "//ui/android:ui_no_recycler_view_java", + ] ++ deps += [ ++ "//base:base_cached_flags_java", ++ "//chrome/browser/flags:java", ++ ] + } + + android_resources("java_resources") { +diff --git a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubCoordinator.java b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubCoordinator.java +--- a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubCoordinator.java ++++ b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubCoordinator.java +@@ -8,6 +8,7 @@ import android.content.Context; + import android.view.LayoutInflater; + import android.view.View; + import android.widget.FrameLayout; ++import android.widget.LinearLayout; + + import androidx.annotation.NonNull; + import androidx.annotation.Nullable; +@@ -18,6 +19,7 @@ import org.chromium.base.supplier.ObservableSupplierImpl; + import org.chromium.base.supplier.OneshotSupplier; + import org.chromium.base.supplier.TransitiveObservableSupplier; + import org.chromium.chrome.browser.feature_engagement.TrackerFactory; ++import org.chromium.chrome.browser.flags.ChromeFeatureList; + import org.chromium.chrome.browser.profiles.ProfileProvider; + import org.chromium.chrome.browser.tab.Tab; + import org.chromium.chrome.browser.toolbar.menu_button.MenuButtonCoordinator; +@@ -93,6 +95,12 @@ public class HubCoordinator implements PaneHubController, BackPressHandler { + HubPaneHostView hubPaneHostView = mContainerView.findViewById(R.id.hub_pane_host); + mHubPaneHostCoordinator = + new HubPaneHostCoordinator(hubPaneHostView, paneManager.getFocusedPaneSupplier()); ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { ++ LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) ++ hubPaneHostView.getLayoutParams(); ++ params.bottomMargin = hubToolbarView.getHeight(); ++ hubPaneHostView.setLayoutParams(params); ++ } + + mHubLayoutController = hubLayoutController; + mHandleBackPressSupplier = new ObservableSupplierImpl<>(); +diff --git a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubManagerImpl.java b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubManagerImpl.java +--- a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubManagerImpl.java ++++ b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubManagerImpl.java +@@ -6,6 +6,7 @@ package org.chromium.chrome.browser.hub; + + import android.content.Context; + import android.view.View; ++import android.view.ViewGroup; + import android.widget.FrameLayout.LayoutParams; + + import androidx.annotation.ColorInt; +@@ -16,6 +17,7 @@ import org.chromium.base.ValueChangedCallback; + import org.chromium.base.supplier.ObservableSupplier; + import org.chromium.base.supplier.ObservableSupplierImpl; + import org.chromium.base.supplier.OneshotSupplier; ++import org.chromium.chrome.browser.flags.ChromeFeatureList; + import org.chromium.chrome.browser.back_press.BackPressManager; + import org.chromium.chrome.browser.profiles.ProfileProvider; + import org.chromium.chrome.browser.tab.Tab; +@@ -111,7 +113,10 @@ public class HubManagerImpl implements HubManager, HubController { + LayoutParams params = (LayoutParams) mHubContainerView.getLayoutParams(); + assert params != null : "HubContainerView should always have layout params."; + mStatusIndicatorHeight = height; +- params.topMargin = mStatusIndicatorHeight + mAppHeaderHeight; ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) ++ params.bottomMargin = mStatusIndicatorHeight + mAppHeaderHeight; ++ else ++ params.topMargin = mStatusIndicatorHeight + mAppHeaderHeight; + mHubContainerView.setLayoutParams(params); + } + +@@ -121,7 +126,10 @@ public class HubManagerImpl implements HubManager, HubController { + LayoutParams params = (LayoutParams) mHubContainerView.getLayoutParams(); + assert params != null : "HubContainerView should always have layout params."; + mAppHeaderHeight = height; +- params.topMargin = mStatusIndicatorHeight + mAppHeaderHeight; ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) ++ params.bottomMargin = mStatusIndicatorHeight + mAppHeaderHeight; ++ else ++ params.topMargin = mStatusIndicatorHeight + mAppHeaderHeight; + mHubContainerView.setLayoutParams(params); + } + +@@ -242,6 +250,9 @@ public class HubManagerImpl implements HubManager, HubController { + mMenuOrKeyboardActionController.registerMenuOrKeyboardActionHandler( + menuOrKeyboardActionHandler); + } +- mSnackbarManager.setParentView(mHubContainerView); ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) ++ mSnackbarManager.setParentView((ViewGroup)getPaneHostView()); ++ else ++ mSnackbarManager.setParentView(mHubContainerView); + } + } +diff --git a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/ReversedLinearLayout.java b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/ReversedLinearLayout.java +new file mode 100644 +--- /dev/null ++++ b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/ReversedLinearLayout.java +@@ -0,0 +1,42 @@ ++package org.chromium.chrome.browser.hub; ++ ++import android.content.Context; ++import android.util.AttributeSet; ++import android.widget.LinearLayout; ++import android.view.Gravity; ++import android.view.View; ++ ++import org.chromium.chrome.browser.flags.ChromeFeatureList; ++ ++public class ReversedLinearLayout extends LinearLayout { ++ private boolean mReversedLayout; ++ ++ public ReversedLinearLayout(Context context) { ++ super(context); ++ setReversedLayout(); ++ } ++ ++ public ReversedLinearLayout(Context context, AttributeSet attrs) { ++ super(context, attrs); ++ setReversedLayout(); ++ } ++ ++ public ReversedLinearLayout(Context context, AttributeSet attrs, int defStyle) { ++ super(context, attrs, defStyle); ++ setReversedLayout(); ++ } ++ ++ private void setReversedLayout() { ++ mReversedLayout = ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled(); ++ if (mReversedLayout) ++ setGravity(Gravity.START | Gravity.BOTTOM); ++ } ++ ++ @Override ++ public View getChildAt(int i) { ++ if (mReversedLayout) ++ return super.getChildAt(getChildCount() - 1 - i); ++ else ++ return super.getChildAt(i); ++ } ++} +diff --git a/chrome/browser/hub/internal/android/res/layout/hub_layout.xml b/chrome/browser/hub/internal/android/res/layout/hub_layout.xml +--- a/chrome/browser/hub/internal/android/res/layout/hub_layout.xml ++++ b/chrome/browser/hub/internal/android/res/layout/hub_layout.xml +@@ -4,7 +4,7 @@ Copyright 2023 The Chromium Authors + Use of this source code is governed by a BSD-style license that can be + found in the LICENSE file. + --> +- +@@ -13,4 +13,4 @@ found in the LICENSE file. + + + +- +\ No newline at end of file ++ +diff --git a/chrome/browser/hub/internal/android/res/layout/hub_toolbar_layout.xml b/chrome/browser/hub/internal/android/res/layout/hub_toolbar_layout.xml +--- a/chrome/browser/hub/internal/android/res/layout/hub_toolbar_layout.xml ++++ b/chrome/browser/hub/internal/android/res/layout/hub_toolbar_layout.xml +@@ -9,7 +9,7 @@ found in the LICENSE file. + xmlns:app="http://schemas.android.com/apk/res-auto" + android:id="@+id/hub_toolbar" + android:layout_width="match_parent" +- android:layout_height="wrap_content" ++ android:layout_height="@dimen/toolbar_height_no_shadow" + android:orientation="vertical"> + + RegisterBooleanPref(prefs::kVirtualKeyboardResizesLayoutByDefault, @@ -2365,7 +2372,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java -@@ -63,6 +63,7 @@ import org.chromium.ui.modelutil.LazyConstructionPropertyMcp; +@@ -48,6 +48,7 @@ import org.chromium.ui.modelutil.LazyConstructionPropertyMcp; import org.chromium.ui.modelutil.MVCListAdapter; import org.chromium.ui.modelutil.MVCListAdapter.ModelList; import org.chromium.ui.modelutil.PropertyModel; @@ -2373,7 +2380,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import java.util.ArrayList; import java.util.List; -@@ -81,6 +82,7 @@ public class AutocompleteCoordinator +@@ -66,6 +67,7 @@ public class AutocompleteCoordinator private @Nullable OmniboxSuggestionsDropdown mDropdown; private @NonNull ObserverList mScrollListenerList = new ObserverList<>(); @@ -2381,7 +2388,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow /** An observer watching for changes to the visual state of the omnibox suggestions. */ public interface OmniboxSuggestionsVisualStateObserver { -@@ -117,6 +119,7 @@ public class AutocompleteCoordinator +@@ -102,6 +104,7 @@ public class AutocompleteCoordinator Context context = parent.getContext(); ModelList listItems = new ModelList(); @@ -2389,7 +2396,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow PropertyModel listModel = new PropertyModel.Builder(SuggestionListProperties.ALL_KEYS) .with(SuggestionListProperties.EMBEDDER, dropdownEmbedder) -@@ -233,6 +236,16 @@ public class AutocompleteCoordinator +@@ -219,6 +222,16 @@ public class AutocompleteCoordinator dropdown.forcePhoneStyleOmnibox(forcePhoneStyleOmnibox); dropdown.setAdapter(mAdapter); @@ -2418,7 +2425,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.List; -@@ -1151,7 +1153,9 @@ class AutocompleteMediator +@@ -1162,7 +1164,9 @@ class AutocompleteMediator @Override public void onSuggestionDropdownScroll() { mSuggestionsListScrolled = true; @@ -2456,7 +2463,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdown.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdown.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdown.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdown.java -@@ -44,6 +44,9 @@ import org.chromium.ui.base.ViewUtils; +@@ -43,6 +43,9 @@ import org.chromium.ui.base.ViewUtils; import java.util.Optional; @@ -2467,7 +2474,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow public class OmniboxSuggestionsDropdown extends RecyclerView { /** @@ -242,7 +245,6 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { - setItemAnimator(null); + addItemDecoration(new SuggestionHorizontalDivider(context)); mLayoutScrollListener = new SuggestionLayoutScrollListener(context); - setLayoutManager(mLayoutScrollListener); @@ -2485,7 +2492,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow + paddingTop = 0; + } + setLayoutManager(mLayoutScrollListener); - ViewCompat.setPaddingRelative(this, 0, paddingTop, 0, paddingBottom); + this.setPaddingRelative(0, paddingTop, 0, paddingBottom); if (OmniboxFeatures.sAsyncViewInflation.isEnabled()) { diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdownEmbedder.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdownEmbedder.java @@ -2512,7 +2519,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -1691,6 +1691,12 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1699,6 +1699,12 @@ Your Google account may have other forms of browsing history like searches and a Force Tablet Mode @@ -2528,7 +2535,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/browser/ui/android/toolbar/BUILD.gn b/chrome/browser/ui/android/toolbar/BUILD.gn --- a/chrome/browser/ui/android/toolbar/BUILD.gn +++ b/chrome/browser/ui/android/toolbar/BUILD.gn -@@ -177,6 +177,7 @@ android_library("java") { +@@ -167,6 +167,7 @@ android_library("java") { "//content/public/android:content_java", "//third_party/android_deps:material_design_java", "//third_party/androidx:androidx_annotation_annotation_experimental_java", @@ -2591,7 +2598,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator.java -@@ -30,6 +30,8 @@ import org.chromium.ui.modelutil.PropertyModelChangeProcessor; +@@ -31,6 +31,8 @@ import org.chromium.ui.modelutil.PropertyModelChangeProcessor; import org.chromium.ui.resources.ResourceManager; import org.chromium.ui.resources.dynamics.ViewResourceAdapter; import org.chromium.ui.widget.Toast; @@ -2600,7 +2607,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow /** * The root coordinator for the bottom controls component. This component is intended for use with -@@ -72,6 +74,8 @@ public class BottomControlsCoordinator implements BackPressHandler { +@@ -80,6 +82,8 @@ public class BottomControlsCoordinator implements BackPressHandler { * @param constraintsSupplier Used to access current constraints of the browser controls. * @param readAloudRestoringSupplier Supplier that returns true if Read Aloud is currently * restoring its player, e.g. after theme change. @@ -2609,7 +2616,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow */ @SuppressLint("CutPasteId") // Not actually cut and paste since it's View vs ViewGroup. public BottomControlsCoordinator( -@@ -87,7 +91,9 @@ public class BottomControlsCoordinator implements BackPressHandler { +@@ -95,7 +99,9 @@ public class BottomControlsCoordinator implements BackPressHandler { TabObscuringHandler tabObscuringHandler, ObservableSupplier overlayPanelVisibilitySupplier, ObservableSupplier constraintsSupplier, @@ -2620,16 +2627,16 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow mRootFrameLayout = root; root.setConstraintsSupplier(constraintsSupplier); PropertyModel model = new PropertyModel(BottomControlsProperties.ALL_KEYS); -@@ -146,7 +152,8 @@ public class BottomControlsCoordinator implements BackPressHandler { - mMediator.setBottomControlsColor(color); - } - }, -- root::onModelTokenChange); -+ root::onModelTokenChange, +@@ -155,7 +161,8 @@ public class BottomControlsCoordinator implements BackPressHandler { + mMediator.setBottomControlsColor(color); + } + }, +- root::onModelTokenChange); ++ root::onModelTokenChange, + topUiThemeColorProvider, tabSupplier); - } + mContentDelegateWrapper.set(contentDelegate); + }); } - diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsMediator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsMediator.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsMediator.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsMediator.java @@ -2654,15 +2661,15 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow mIsBottomControlsVisible = visible; updateCompositedViewVisibility(); updateAndroidViewVisibility(); -@@ -181,6 +188,7 @@ class BottomControlsMediator - int bottomOffset, +@@ -182,6 +189,7 @@ class BottomControlsMediator int bottomControlsMinHeightOffset, - boolean needsAnimate) { + boolean needsAnimate, + boolean isVisibilityForced) { + mModel.set(BottomControlsProperties.TOPCONTROLSMINHEIGHT_OFFSET, topControlsMinHeightOffset); - int minHeight = getBrowserControls().getBottomControlsMinHeight(); - mModel.set(BottomControlsProperties.Y_OFFSET, bottomOffset - minHeight); + // Method call routed to onBrowserControlsOffsetUpdate. + if (BottomControlsStacker.isDispatchingYOffset()) return; -@@ -296,10 +304,12 @@ class BottomControlsMediator +@@ -303,10 +311,12 @@ class BottomControlsMediator && !mIsInSwipeLayout && getBrowserControls().getBottomControlOffset() == 0; if (visible) { @@ -2784,7 +2791,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow /** Layout for the browser controls (omnibox, menu, tab strip, etc..). */ public class ToolbarControlContainer extends OptimizedFrameLayout implements ControlContainer, DesktopWindowStateProvider.AppHeaderObserver { -@@ -147,6 +151,11 @@ public class ToolbarControlContainer extends OptimizedFrameLayout +@@ -143,6 +147,11 @@ public class ToolbarControlContainer extends OptimizedFrameLayout if (view != null) ((MarginLayoutParams)view.getLayoutParams()).topMargin = tab_strip_height; } diff --git a/build/patches/Multiple-fingerprinting-mitigations.patch b/build/patches/Multiple-fingerprinting-mitigations.patch index 868f1a15..220db81f 100644 --- a/build/patches/Multiple-fingerprinting-mitigations.patch +++ b/build/patches/Multiple-fingerprinting-mitigations.patch @@ -38,7 +38,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../blink/renderer/core/dom/document.h | 7 + .../blink/renderer/core/dom/element.cc | 8 + third_party/blink/renderer/core/dom/range.cc | 12 +- - .../html/canvas/canvas_async_blob_creator.cc | 5 + + .../html/canvas/canvas_async_blob_creator.cc | 4 + .../renderer/core/html/canvas/text_metrics.cc | 18 ++ .../renderer/core/html/canvas/text_metrics.h | 2 + .../renderer/core/svg/svg_graphics_element.cc | 2 + @@ -47,13 +47,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html third_party/blink/renderer/platform/BUILD.gn | 5 +- .../platform/exported/web_runtime_features.cc | 13 ++ .../platform/graphics/image_data_buffer.cc | 8 + - .../platform/graphics/static_bitmap_image.cc | 155 ++++++++++++++++++ + .../platform/graphics/static_bitmap_image.cc | 154 ++++++++++++++++++ .../platform/graphics/static_bitmap_image.h | 2 + .../platform/runtime_enabled_features.json5 | 9 + + third_party/skia/include/core/SkPixmap.h | 16 +- third_party/ungoogled/BUILD.gn | 10 ++ third_party/ungoogled/ungoogled_switches.cc | 18 ++ third_party/ungoogled/ungoogled_switches.h | 18 ++ - 27 files changed, 393 insertions(+), 8 deletions(-) + 28 files changed, 399 insertions(+), 16 deletions(-) create mode 100755 cromite_flags/chrome/browser/about_flags_cc/Multiple-fingerprinting-mitigations.inc create mode 100644 third_party/ungoogled/BUILD.gn create mode 100644 third_party/ungoogled/ungoogled_switches.cc @@ -62,7 +63,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -2555,6 +2555,7 @@ static_library("browser") { +@@ -2543,6 +2543,7 @@ static_library("browser") { "//services/device/public/cpp:device_features", "//services/device/public/cpp/geolocation", "//services/device/public/cpp/usb", @@ -85,7 +86,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn --- a/content/browser/BUILD.gn +++ b/content/browser/BUILD.gn -@@ -254,6 +254,7 @@ source_set("browser") { +@@ -269,6 +269,7 @@ source_set("browser") { "//third_party/libyuv", "//third_party/re2", "//third_party/sqlite", @@ -96,15 +97,15 @@ diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc -@@ -215,6 +215,7 @@ +@@ -210,6 +210,7 @@ #include "url/gurl.h" #include "url/origin.h" +#include "third_party/ungoogled/ungoogled_switches.h" #if BUILDFLAG(IS_ANDROID) #include "base/android/child_process_binding_types.h" - #include "content/browser/android/java_interfaces_impl.h" -@@ -3471,6 +3472,9 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( + #include "content/browser/font_unique_name_lookup/font_unique_name_lookup_service.h" +@@ -3173,6 +3174,9 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( switches::kDisableBreakpad, switches::kDisableDatabases, switches::kDisableFileSystem, @@ -137,7 +138,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. #if BUILDFLAG(IS_ANDROID) #include "base/android/build_info.h" #endif -@@ -543,6 +545,12 @@ void SetRuntimeFeaturesFromCommandLine(const base::CommandLine& command_line) { +@@ -540,6 +542,12 @@ void SetRuntimeFeaturesFromCommandLine(const base::CommandLine& command_line) { // as a last resort. void SetCustomizedRuntimeFeaturesFromCombinedArgs( const base::CommandLine& command_line) { @@ -187,7 +188,7 @@ diff --git a/third_party/blink/public/platform/web_runtime_features.h b/third_pa diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc --- a/third_party/blink/renderer/core/dom/document.cc +++ b/third_party/blink/renderer/core/dom/document.cc -@@ -39,6 +39,7 @@ +@@ -44,6 +44,7 @@ #include "base/debug/dump_without_crashing.h" #include "base/i18n/time_formatting.h" #include "base/metrics/histogram_functions.h" @@ -195,7 +196,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink #include "base/notreached.h" #include "base/ranges/algorithm.h" #include "base/task/single_thread_task_runner.h" -@@ -910,6 +911,17 @@ Document::Document(const DocumentInit& initializer, +@@ -919,6 +920,17 @@ Document::Document(const DocumentInit& initializer, TRACE_EVENT_WITH_FLOW0("blink", "Document::Document", TRACE_ID_LOCAL(this), TRACE_EVENT_FLAG_FLOW_OUT); DCHECK(agent_); @@ -213,7 +214,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink if (base::FeatureList::IsEnabled(features::kDelayAsyncScriptExecution) && features::kDelayAsyncScriptExecutionDelayByDefaultParam.Get()) { script_runner_delayer_->Activate(); -@@ -2491,6 +2503,14 @@ void Document::UpdateStyleAndLayoutTreeForThisDocument() { +@@ -2506,6 +2518,14 @@ void Document::UpdateStyleAndLayoutTreeForThisDocument() { #endif } @@ -231,7 +232,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/renderer/core/dom/document.h --- a/third_party/blink/renderer/core/dom/document.h +++ b/third_party/blink/renderer/core/dom/document.h -@@ -549,6 +549,10 @@ class CORE_EXPORT Document : public ContainerNode, +@@ -552,6 +552,10 @@ class CORE_EXPORT Document : public ContainerNode, has_xml_declaration_ = has_xml_declaration ? 1 : 0; } @@ -242,7 +243,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/ AtomicString visibilityState() const; bool IsPageVisible() const; bool hidden() const; -@@ -2557,6 +2561,9 @@ class CORE_EXPORT Document : public ContainerNode, +@@ -2577,6 +2581,9 @@ class CORE_EXPORT Document : public ContainerNode, base::ElapsedTimer start_time_; @@ -255,7 +256,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/ diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/renderer/core/dom/element.cc --- a/third_party/blink/renderer/core/dom/element.cc +++ b/third_party/blink/renderer/core/dom/element.cc -@@ -2399,6 +2399,7 @@ void Element::ClientQuads(Vector& quads) const { +@@ -2413,6 +2413,7 @@ void Element::ClientQuads(Vector& quads) const { quads.push_back(element_layout_object->LocalToAbsoluteQuad( gfx::QuadF(element_layout_object->ObjectBoundingBox()))); } @@ -263,7 +264,7 @@ diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/ return; } -@@ -2407,6 +2408,10 @@ void Element::ClientQuads(Vector& quads) const { +@@ -2421,6 +2422,10 @@ void Element::ClientQuads(Vector& quads) const { element_layout_object->IsBR()) { element_layout_object->AbsoluteQuads(quads); } @@ -274,7 +275,7 @@ diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/ } DOMRectList* Element::getClientRects() { -@@ -2452,6 +2457,9 @@ gfx::RectF Element::GetBoundingClientRectNoLifecycleUpdate() const { +@@ -2466,6 +2471,9 @@ gfx::RectF Element::GetBoundingClientRectNoLifecycleUpdate() const { DCHECK(element_layout_object); GetDocument().AdjustRectForScrollAndAbsoluteZoom(result, *element_layout_object); @@ -316,7 +317,7 @@ diff --git a/third_party/blink/renderer/core/dom/range.cc b/third_party/blink/re diff --git a/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.cc b/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.cc --- a/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.cc +++ b/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.cc -@@ -21,6 +21,7 @@ +@@ -26,6 +26,7 @@ #include "third_party/blink/renderer/core/fileapi/blob.h" #include "third_party/blink/renderer/core/html/canvas/canvas_rendering_context.h" #include "third_party/blink/renderer/platform/graphics/image_data_buffer.h" @@ -324,13 +325,12 @@ diff --git a/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creat #include "third_party/blink/renderer/platform/graphics/skia/skia_utils.h" #include "third_party/blink/renderer/platform/graphics/unaccelerated_static_bitmap_image.h" #include "third_party/blink/renderer/platform/heap/garbage_collected.h" -@@ -210,6 +211,10 @@ CanvasAsyncBlobCreator::CanvasAsyncBlobCreator( +@@ -219,6 +220,9 @@ CanvasAsyncBlobCreator::CanvasAsyncBlobCreator( std::min(info.height(), max_dimension)); src_data_.reset(info, src_data_.addr(), src_data_.rowBytes()); } + if (RuntimeEnabledFeatures::FingerprintingCanvasImageDataNoiseEnabled()) { -+ StaticBitmapImage::ShuffleSubchannelColorData(src_data_.writable_addr(), -+ src_data_.info(), 0, 0); ++ StaticBitmapImage::ShuffleSubchannelColorData(src_data_, 0, 0); + } } } @@ -338,7 +338,7 @@ diff --git a/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creat diff --git a/third_party/blink/renderer/core/html/canvas/text_metrics.cc b/third_party/blink/renderer/core/html/canvas/text_metrics.cc --- a/third_party/blink/renderer/core/html/canvas/text_metrics.cc +++ b/third_party/blink/renderer/core/html/canvas/text_metrics.cc -@@ -74,6 +74,24 @@ TextMetrics::TextMetrics(const Font& font, +@@ -79,6 +79,24 @@ TextMetrics::TextMetrics(const Font& font, Update(font, direction, baseline, align, text); } @@ -366,9 +366,9 @@ diff --git a/third_party/blink/renderer/core/html/canvas/text_metrics.cc b/third diff --git a/third_party/blink/renderer/core/html/canvas/text_metrics.h b/third_party/blink/renderer/core/html/canvas/text_metrics.h --- a/third_party/blink/renderer/core/html/canvas/text_metrics.h +++ b/third_party/blink/renderer/core/html/canvas/text_metrics.h -@@ -72,6 +72,8 @@ class CORE_EXPORT TextMetrics final : public ScriptWrappable { - - void Trace(Visitor*) const override; +@@ -93,6 +93,8 @@ class CORE_EXPORT TextMetrics final : public ScriptWrappable { + float x_position_; + }; + void Shuffle(const double factor); + @@ -469,7 +469,7 @@ diff --git a/third_party/blink/renderer/core/svg/svg_text_content_element.cc b/t diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc --- a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc +++ b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc -@@ -184,6 +184,11 @@ +@@ -189,6 +189,11 @@ #include "ui/gfx/geometry/size.h" #include "ui/gfx/geometry/size_f.h" #include "ui/gfx/geometry/skia_conversions.h" @@ -481,18 +481,18 @@ diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_c #include "ui/gfx/geometry/vector2d.h" #include "ui/gfx/geometry/vector2d_f.h" #include "v8/include/v8-local-handle.h" -@@ -2740,6 +2745,10 @@ ImageData* BaseRenderingContext2D::getImageDataInternal( +@@ -2832,6 +2837,10 @@ ImageData* BaseRenderingContext2D::getImageDataInternal( snapshot->PaintImageForCurrentFrame().GetSkImageInfo().bounds(); DCHECK(!bounds.intersect(SkIRect::MakeXYWH(sx, sy, sw, sh))); } + + if (read_pixels_successful && RuntimeEnabledFeatures::FingerprintingCanvasImageDataNoiseEnabled()) { -+ StaticBitmapImage::ShuffleSubchannelColorData(image_data_pixmap.addr(), image_data_pixmap.info(), sx, sy); ++ StaticBitmapImage::ShuffleSubchannelColorData(image_data_pixmap, sx, sy); + } } return image_data; -@@ -3419,8 +3428,22 @@ TextMetrics* BaseRenderingContext2D::measureText(const String& text) { +@@ -3512,8 +3521,22 @@ TextMetrics* BaseRenderingContext2D::measureText(const String& text) { const CanvasRenderingContext2DState& state = GetState(); TextDirection direction = ToTextDirection(state.GetDirection(), canvas); @@ -519,7 +519,7 @@ diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_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 -@@ -1690,7 +1690,9 @@ component("platform") { +@@ -1699,7 +1699,9 @@ component("platform") { "//third_party/blink/renderer:non_test_config", ] @@ -530,7 +530,7 @@ diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/re allow_circular_includes_from = [ "//third_party/blink/renderer/platform/blob", -@@ -1768,6 +1770,7 @@ component("platform") { +@@ -1776,6 +1778,7 @@ component("platform") { "//third_party/blink/public/strings", "//third_party/blink/renderer/platform/wtf", "//third_party/ced", @@ -580,7 +580,7 @@ diff --git a/third_party/blink/renderer/platform/graphics/image_data_buffer.cc b + if (RuntimeEnabledFeatures::FingerprintingCanvasImageDataNoiseEnabled()) { + // shuffle subchannel color data within the pixmap -+ StaticBitmapImage::ShuffleSubchannelColorData(pixmap_.writable_addr(), pixmap_.info(), 0, 0); ++ StaticBitmapImage::ShuffleSubchannelColorData(pixmap_, 0, 0); + } + if (mime_type == kMimeTypeJpeg) { @@ -608,16 +608,16 @@ diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.cc namespace blink { scoped_refptr StaticBitmapImage::Create( -@@ -115,4 +120,154 @@ void StaticBitmapImage::DrawHelper(cc::PaintCanvas* canvas, +@@ -115,4 +120,153 @@ void StaticBitmapImage::DrawHelper(cc::PaintCanvas* canvas, WebCoreClampingModeToSkiaRectConstraint(draw_options.clamping_mode)); } +// set the component to maximum-delta if it is >= maximum, or add to existing color component (color + delta) +#define shuffleComponent(color, max, delta) ( (color) >= (max) ? ((max)-(delta)) : ((color)+(delta)) ) + -+#define writable_addr(T, p, stride, x, y) (T*)((const char *)p + y * stride + x * sizeof(T)) -+ -+void StaticBitmapImage::ShuffleSubchannelColorData(const void *addr, const SkImageInfo& info, int srcX, int srcY) { ++void StaticBitmapImage::ShuffleSubchannelColorData(const SkPixmap& src_data, ++ int srcX, int srcY) { ++ const SkImageInfo& info = src_data.info(); + auto w = info.width() - srcX, h = info.height() - srcY; + + // skip tiny images; info.width()/height() can also be 0 @@ -658,7 +658,7 @@ diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.cc + switch (colorType) { + case kAlpha_8_SkColorType: + { -+ auto *pixel = writable_addr(uint8_t, addr, fRowBytes, x, y); ++ auto *pixel = src_data.writable_addr8(x, y); + auto r = SkColorGetR(*pixel), g = SkColorGetG(*pixel), b = SkColorGetB(*pixel), a = SkColorGetA(*pixel); + + r = shuffleComponent(r, UINT8_MAX-1, shuffleR); @@ -671,13 +671,13 @@ diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.cc + break; + case kGray_8_SkColorType: + { -+ auto *pixel = writable_addr(uint8_t, addr, fRowBytes, x, y); ++ auto *pixel = src_data.writable_addr8(x, y); + *pixel = shuffleComponent(*pixel, UINT8_MAX-1, shuffleB); + } + break; + case kRGB_565_SkColorType: + { -+ auto *pixel = writable_addr(uint16_t, addr, fRowBytes, x, y); ++ auto *pixel = src_data.writable_addr16(x, y); + unsigned r = SkPacked16ToR32(*pixel); + unsigned g = SkPacked16ToG32(*pixel); + unsigned b = SkPacked16ToB32(*pixel); @@ -695,7 +695,7 @@ diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.cc + break; + case kARGB_4444_SkColorType: + { -+ auto *pixel = writable_addr(uint16_t, addr, fRowBytes, x, y); ++ auto *pixel = src_data.writable_addr16(x, y); + auto a = SkGetPackedA4444(*pixel), r = SkGetPackedR4444(*pixel), g = SkGetPackedG4444(*pixel), b = SkGetPackedB4444(*pixel); + + r = shuffleComponent(r, 15, shuffleR); @@ -713,7 +713,7 @@ diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.cc + break; + case kRGBA_8888_SkColorType: + { -+ auto *pixel = writable_addr(uint32_t, addr, fRowBytes, x, y); ++ auto *pixel = src_data.writable_addr32(x, y); + auto a = SkGetPackedA32(*pixel), r = SkGetPackedR32(*pixel), g = SkGetPackedG32(*pixel), b = SkGetPackedB32(*pixel); + + r = shuffleComponent(r, UINT8_MAX-1, shuffleR); @@ -727,7 +727,7 @@ diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.cc + break; + case kBGRA_8888_SkColorType: + { -+ auto *pixel = writable_addr(uint32_t, addr, fRowBytes, x, y); ++ auto *pixel = src_data.writable_addr32(x, y); + auto a = SkGetPackedA32(*pixel), b = SkGetPackedR32(*pixel), g = SkGetPackedG32(*pixel), r = SkGetPackedB32(*pixel); + + r = shuffleComponent(r, UINT8_MAX-1, shuffleR); @@ -759,7 +759,6 @@ diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.cc + } +} + -+#undef writable_addr +#undef shuffleComponent + } // namespace blink @@ -770,7 +769,7 @@ diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.h StaticBitmapImage(ImageOrientation orientation) : orientation_(orientation) {} -+ static void ShuffleSubchannelColorData(const void *addr, const SkImageInfo& info, int srcX, int srcY); ++ static void ShuffleSubchannelColorData(const SkPixmap& src_data, int srcX, int srcY); + bool IsStaticBitmapImage() const override { return true; } @@ -778,7 +777,7 @@ diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.h 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 -@@ -2699,6 +2699,15 @@ +@@ -2819,6 +2819,15 @@ status: {"Mac": "test", "default": "stable"}, base_feature: "none", }, @@ -794,6 +793,53 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 { name: "Notifications", public: true, +diff --git a/third_party/skia/include/core/SkPixmap.h b/third_party/skia/include/core/SkPixmap.h +--- a/third_party/skia/include/core/SkPixmap.h ++++ b/third_party/skia/include/core/SkPixmap.h +@@ -396,8 +396,8 @@ public: + @return readable unsigned 8-bit pointer to pixel at (x, y) + */ + const uint8_t* addr8(int x, int y) const { +- SkASSERT((unsigned)x < (unsigned)fInfo.width()); +- SkASSERT((unsigned)y < (unsigned)fInfo.height()); ++ SkASSERT_RELEASE((unsigned)x < (unsigned)fInfo.width()); ++ SkASSERT_RELEASE((unsigned)y < (unsigned)fInfo.height()); + return (const uint8_t*)((const char*)this->addr8() + (size_t)y * fRowBytes + (x << 0)); + } + +@@ -414,8 +414,8 @@ public: + @return readable unsigned 16-bit pointer to pixel at (x, y) + */ + const uint16_t* addr16(int x, int y) const { +- SkASSERT((unsigned)x < (unsigned)fInfo.width()); +- SkASSERT((unsigned)y < (unsigned)fInfo.height()); ++ SkASSERT_RELEASE((unsigned)x < (unsigned)fInfo.width()); ++ SkASSERT_RELEASE((unsigned)y < (unsigned)fInfo.height()); + return (const uint16_t*)((const char*)this->addr16() + (size_t)y * fRowBytes + (x << 1)); + } + +@@ -432,8 +432,8 @@ public: + @return readable unsigned 32-bit pointer to pixel at (x, y) + */ + const uint32_t* addr32(int x, int y) const { +- SkASSERT((unsigned)x < (unsigned)fInfo.width()); +- SkASSERT((unsigned)y < (unsigned)fInfo.height()); ++ SkASSERT_RELEASE((unsigned)x < (unsigned)fInfo.width()); ++ SkASSERT_RELEASE((unsigned)y < (unsigned)fInfo.height()); + return (const uint32_t*)((const char*)this->addr32() + (size_t)y * fRowBytes + (x << 2)); + } + +@@ -450,8 +450,8 @@ public: + @return readable unsigned 64-bit pointer to pixel at (x, y) + */ + const uint64_t* addr64(int x, int y) const { +- SkASSERT((unsigned)x < (unsigned)fInfo.width()); +- SkASSERT((unsigned)y < (unsigned)fInfo.height()); ++ SkASSERT_RELEASE((unsigned)x < (unsigned)fInfo.width()); ++ SkASSERT_RELEASE((unsigned)y < (unsigned)fInfo.height()); + return (const uint64_t*)((const char*)this->addr64() + (size_t)y * fRowBytes + (x << 3)); + } + diff --git a/third_party/ungoogled/BUILD.gn b/third_party/ungoogled/BUILD.gn new file mode 100644 --- /dev/null diff --git a/build/patches/Offer-builtin-autocomplete-for-chrome-flags.patch b/build/patches/Offer-builtin-autocomplete-for-chrome-flags.patch deleted file mode 100644 index 0fad235c..00000000 --- a/build/patches/Offer-builtin-autocomplete-for-chrome-flags.patch +++ /dev/null @@ -1,22 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Sun, 28 Oct 2018 14:11:50 +0100 -Subject: Offer builtin autocomplete for chrome://flags - -License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html ---- - .../browser/autocomplete/chrome_autocomplete_provider_client.cc | 2 ++ - 1 file changed, 2 insertions(+) - -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 -@@ -302,6 +302,8 @@ std::vector ChromeAutocompleteProviderClient::GetBuiltinURLs() { - std::vector - ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() { - std::vector builtins_to_provide; -+ builtins_to_provide.push_back( -+ base::ASCIIToUTF16(chrome::kChromeUIFlagsURL)); - builtins_to_provide.push_back( - base::ASCIIToUTF16(chrome::kChromeUIChromeURLsURL)); - builtins_to_provide.push_back(base::ASCIIToUTF16(chrome::kChromeUIFlagsURL)); --- diff --git a/build/patches/OpenSearch-miscellaneous.patch b/build/patches/OpenSearch-miscellaneous.patch index bffc7e37..5f40243a 100644 --- a/build/patches/OpenSearch-miscellaneous.patch +++ b/build/patches/OpenSearch-miscellaneous.patch @@ -195,11 +195,11 @@ diff --git a/chrome/renderer/chrome_render_frame_observer.cc b/chrome/renderer/c + DLOG(INFO) << "OpenSearch: found OSDD URL: " << osdd_url; mojo::Remote osdd_handler; - render_frame()->GetBrowserInterfaceBroker()->GetInterface( + render_frame()->GetBrowserInterfaceBroker().GetInterface( diff --git a/components/search_engines/template_url_fetcher.cc b/components/search_engines/template_url_fetcher.cc --- a/components/search_engines/template_url_fetcher.cc +++ b/components/search_engines/template_url_fetcher.cc -@@ -259,18 +259,32 @@ void TemplateURLFetcher::ScheduleDownload( +@@ -260,18 +260,32 @@ void TemplateURLFetcher::ScheduleDownload( return; } @@ -252,7 +252,7 @@ diff --git a/components/search_engines/template_url_parser.cc b/components/searc diff --git a/components/search_engines/template_url_service.h b/components/search_engines/template_url_service.h --- a/components/search_engines/template_url_service.h +++ b/components/search_engines/template_url_service.h -@@ -357,7 +357,10 @@ class TemplateURLService final : public WebDataServiceConsumer, +@@ -352,7 +352,10 @@ class TemplateURLService final : public WebDataServiceConsumer, void UpdateProviderFavicons(const GURL& potential_search_url, const GURL& favicon_url); @@ -264,7 +264,7 @@ diff --git a/components/search_engines/template_url_service.h b/components/searc // regardless of |url| if the default search provider is managed by policy or // controlled by an extension. bool CanMakeDefault(const TemplateURL* url) const; -@@ -766,9 +769,6 @@ class TemplateURLService final : public WebDataServiceConsumer, +@@ -761,9 +764,6 @@ class TemplateURLService final : public WebDataServiceConsumer, // SetKeywordSearchTermsForURL is invoked. void UpdateKeywordSearchTermsForURL(const URLVisitedDetails& details); diff --git a/build/patches/Override-Navigator-Language.patch b/build/patches/Override-Navigator-Language.patch index c68b5739..2a762169 100644 --- a/build/patches/Override-Navigator-Language.patch +++ b/build/patches/Override-Navigator-Language.patch @@ -61,15 +61,15 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc -@@ -71,6 +71,7 @@ - #include "components/discardable_memory/public/mojom/discardable_shared_memory_manager.mojom.h" - #include "components/discardable_memory/service/discardable_shared_memory_manager.h" +@@ -70,6 +70,7 @@ + #include "build/chromeos_buildflags.h" + #include "cc/base/switches.h" #include "components/metrics/histogram_controller.h" +#include "components/language/core/browser/language_prefs.h" #include "components/metrics/single_sample_metrics.h" #include "components/services/storage/privileged/mojom/indexed_db_control.mojom.h" #include "components/services/storage/public/cpp/buckets/bucket_id.h" -@@ -3380,8 +3381,11 @@ void RenderProcessHostImpl::AppendRendererCommandLine( +@@ -3082,8 +3083,11 @@ void RenderProcessHostImpl::AppendRendererCommandLine( PropagateBrowserCommandLineToRenderer(browser_command_line, command_line); // Pass on the browser locale. diff --git a/build/patches/Partition-Blink-memory-cache.patch b/build/patches/Partition-Blink-memory-cache.patch index 3926fdd5..6d5c7e9f 100644 --- a/build/patches/Partition-Blink-memory-cache.patch +++ b/build/patches/Partition-Blink-memory-cache.patch @@ -27,7 +27,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/third_party/blink/renderer/core/html/parser/html_srcset_parser.cc b/third_party/blink/renderer/core/html/parser/html_srcset_parser.cc --- a/third_party/blink/renderer/core/html/parser/html_srcset_parser.cc +++ b/third_party/blink/renderer/core/html/parser/html_srcset_parser.cc -@@ -413,7 +413,7 @@ static unsigned AvoidDownloadIfHigherDensityResourceIsInCache( +@@ -418,7 +418,7 @@ static unsigned AvoidDownloadIfHigherDensityResourceIsInCache( KURL url = document->CompleteURL( StripLeadingAndTrailingHTMLSpaces(image_candidates[i]->Url())); auto* resource = MemoryCache::Get()->ResourceForURL( @@ -39,7 +39,7 @@ diff --git a/third_party/blink/renderer/core/html/parser/html_srcset_parser.cc b diff --git a/third_party/blink/renderer/core/inspector/inspector_network_agent.cc b/third_party/blink/renderer/core/inspector/inspector_network_agent.cc --- a/third_party/blink/renderer/core/inspector/inspector_network_agent.cc +++ b/third_party/blink/renderer/core/inspector/inspector_network_agent.cc -@@ -2436,7 +2436,7 @@ bool InspectorNetworkAgent::FetchResourceContent(Document* document, +@@ -2440,7 +2440,7 @@ bool InspectorNetworkAgent::FetchResourceContent(Document* document, Resource* cached_resource = document->Fetcher()->CachedResource(url); if (!cached_resource) { cached_resource = MemoryCache::Get()->ResourceForURL( @@ -51,7 +51,7 @@ diff --git a/third_party/blink/renderer/core/inspector/inspector_network_agent.c diff --git a/third_party/blink/renderer/core/inspector/inspector_page_agent.cc b/third_party/blink/renderer/core/inspector/inspector_page_agent.cc --- a/third_party/blink/renderer/core/inspector/inspector_page_agent.cc +++ b/third_party/blink/renderer/core/inspector/inspector_page_agent.cc -@@ -169,9 +169,9 @@ Resource* CachedResource(LocalFrame* frame, +@@ -174,9 +174,9 @@ Resource* CachedResource(LocalFrame* frame, if (!document) return nullptr; Resource* cached_resource = document->Fetcher()->CachedResource(url); @@ -66,7 +66,7 @@ diff --git a/third_party/blink/renderer/core/inspector/inspector_page_agent.cc b diff --git a/third_party/blink/renderer/core/loader/image_loader.cc b/third_party/blink/renderer/core/loader/image_loader.cc --- a/third_party/blink/renderer/core/loader/image_loader.cc +++ b/third_party/blink/renderer/core/loader/image_loader.cc -@@ -705,7 +705,8 @@ bool ImageLoader::ShouldLoadImmediately(const KURL& url) const { +@@ -710,7 +710,8 @@ bool ImageLoader::ShouldLoadImmediately(const KURL& url) const { // content when style recalc is over and DOM mutation is allowed again. if (!url.IsNull()) { Resource* resource = MemoryCache::Get()->ResourceForURL( @@ -129,7 +129,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/memory_cache.h b/t diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc --- a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc +++ b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc -@@ -963,7 +963,8 @@ Resource* ResourceFetcher::CreateResourceForStaticData( +@@ -973,7 +973,8 @@ Resource* ResourceFetcher::CreateResourceForStaticData( if (!archive_ && factory.GetType() == ResourceType::kRaw) return nullptr; @@ -139,7 +139,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c // Most off-main-thread resource fetches use Resource::kRaw and don't reach // this point, but off-main-thread module fetches might. if (IsMainThread()) { -@@ -1392,7 +1393,9 @@ Resource* ResourceFetcher::RequestResource(FetchParameters& params, +@@ -1414,7 +1415,9 @@ Resource* ResourceFetcher::RequestResource(FetchParameters& params, resource = nullptr; } else { resource = MemoryCache::Get()->ResourceForURL( @@ -150,7 +150,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c } if (resource) { policy = DetermineRevalidationPolicy(resource_type, params, *resource, -@@ -1690,7 +1693,8 @@ Resource* ResourceFetcher::CreateResourceForLoading( +@@ -1712,7 +1715,8 @@ Resource* ResourceFetcher::CreateResourceForLoading( const FetchParameters& params, const ResourceFactory& factory) { const String cache_identifier = @@ -160,7 +160,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c if (!base::FeatureList::IsEnabled( blink::features::kScopeMemoryCachePerContext)) { DCHECK(!IsMainThread() || params.IsStaleRevalidation() || -@@ -2762,10 +2766,13 @@ void ResourceFetcher::UpdateAllImageResourcePriorities() { +@@ -2784,10 +2788,13 @@ void ResourceFetcher::UpdateAllImageResourcePriorities() { to_be_removed.clear(); } @@ -176,7 +176,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c } // Requests that can be satisfied via `archive_` (i.e. MHTML) or -@@ -2778,7 +2785,7 @@ String ResourceFetcher::GetCacheIdentifier(const KURL& url) const { +@@ -2800,7 +2807,7 @@ String ResourceFetcher::GetCacheIdentifier(const KURL& url) const { if (bundle) return bundle->GetCacheIdentifier(); @@ -188,7 +188,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h --- a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h +++ b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h -@@ -274,7 +274,8 @@ class PLATFORM_EXPORT ResourceFetcher +@@ -278,7 +278,8 @@ class PLATFORM_EXPORT ResourceFetcher uint32_t inflight_keepalive_bytes); blink::mojom::ControllerServiceWorkerMode IsControlledByServiceWorker() const; diff --git a/build/patches/Partition-HSTS-cache-by-NAK.patch b/build/patches/Partition-HSTS-cache-by-NAK.patch index 213bd2e1..dfa3826a 100644 --- a/build/patches/Partition-HSTS-cache-by-NAK.patch +++ b/build/patches/Partition-HSTS-cache-by-NAK.patch @@ -27,7 +27,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/ssl/https_upgrades_interceptor.cc b/chrome/browser/ssl/https_upgrades_interceptor.cc --- a/chrome/browser/ssl/https_upgrades_interceptor.cc +++ b/chrome/browser/ssl/https_upgrades_interceptor.cc -@@ -359,6 +359,7 @@ void HttpsUpgradesInterceptor::MaybeCreateLoader( +@@ -393,6 +393,7 @@ void HttpsUpgradesInterceptor::MaybeCreateLoader( network::mojom::NetworkContext* network_context = profile->GetDefaultStoragePartition()->GetNetworkContext(); network_context->IsHSTSActiveForHost( @@ -89,7 +89,7 @@ diff --git a/components/password_manager/core/browser/hsts_query.cc b/components diff --git a/content/browser/web_package/signed_exchange_handler.cc b/content/browser/web_package/signed_exchange_handler.cc --- a/content/browser/web_package/signed_exchange_handler.cc +++ b/content/browser/web_package/signed_exchange_handler.cc -@@ -94,6 +94,7 @@ using VerifyCallback = +@@ -95,6 +95,7 @@ using VerifyCallback = void VerifyCert(const scoped_refptr& certificate, const GURL& url, @@ -97,7 +97,7 @@ diff --git a/content/browser/web_package/signed_exchange_handler.cc b/content/br const std::string& ocsp_result, const std::string& sct_list, int frame_tree_node_id, -@@ -115,7 +116,7 @@ void VerifyCert(const scoped_refptr& certificate, +@@ -116,7 +117,7 @@ void VerifyCert(const scoped_refptr& certificate, } network_context->VerifyCertForSignedExchange( @@ -106,7 +106,7 @@ diff --git a/content/browser/web_package/signed_exchange_handler.cc b/content/br } std::string OCSPErrorToString(const bssl::OCSPVerifyResult& ocsp_result) { -@@ -178,6 +179,7 @@ SignedExchangeHandler::SignedExchangeHandler( +@@ -179,6 +180,7 @@ SignedExchangeHandler::SignedExchangeHandler( std::unique_ptr body, ExchangeHeadersCallback headers_callback, std::unique_ptr cert_fetcher_factory, @@ -114,7 +114,7 @@ diff --git a/content/browser/web_package/signed_exchange_handler.cc b/content/br const std::optional outer_request_isolation_info, int load_flags, const net::IPEndPoint& remote_endpoint, -@@ -191,6 +193,7 @@ SignedExchangeHandler::SignedExchangeHandler( +@@ -192,6 +194,7 @@ SignedExchangeHandler::SignedExchangeHandler( source_(std::move(body)), cert_fetcher_factory_(std::move(cert_fetcher_factory)), devtools_proxy_(std::move(devtools_proxy)), @@ -122,7 +122,7 @@ diff --git a/content/browser/web_package/signed_exchange_handler.cc b/content/br outer_request_isolation_info_(std::move(outer_request_isolation_info)), load_flags_(load_flags), remote_endpoint_(remote_endpoint), -@@ -534,7 +537,7 @@ void SignedExchangeHandler::OnCertReceived( +@@ -535,7 +538,7 @@ void SignedExchangeHandler::OnCertReceived( // property, or const std::string& stapled_ocsp_response = unverified_cert_chain_->ocsp(); @@ -585,7 +585,7 @@ diff --git a/net/quic/crypto/proof_verifier_chromium.cc b/net/quic/crypto/proof_ diff --git a/net/quic/quic_chromium_client_session.cc b/net/quic/quic_chromium_client_session.cc --- a/net/quic/quic_chromium_client_session.cc +++ b/net/quic/quic_chromium_client_session.cc -@@ -1450,7 +1450,7 @@ bool QuicChromiumClientSession::CanPool( +@@ -1453,7 +1453,7 @@ bool QuicChromiumClientSession::CanPool( return SpdySession::CanPool(transport_security_state_, ssl_info, *ssl_config_service_, session_key_.host(), @@ -597,7 +597,7 @@ diff --git a/net/quic/quic_chromium_client_session.cc b/net/quic/quic_chromium_c diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket_impl.cc --- a/net/socket/ssl_client_socket_impl.cc +++ b/net/socket/ssl_client_socket_impl.cc -@@ -1193,7 +1193,8 @@ ssl_verify_result_t SSLClientSocketImpl::HandleVerifyResult() { +@@ -1192,7 +1192,8 @@ ssl_verify_result_t SSLClientSocketImpl::HandleVerifyResult() { TransportSecurityState::PKPStatus pin_validity = context_->transport_security_state()->CheckPublicKeyPins( host_and_port_, server_cert_verify_result_.is_issued_by_known_root, @@ -607,7 +607,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket switch (pin_validity) { case TransportSecurityState::PKPStatus::VIOLATED: server_cert_verify_result_.cert_status |= -@@ -1215,7 +1216,7 @@ ssl_verify_result_t SSLClientSocketImpl::HandleVerifyResult() { +@@ -1214,7 +1215,7 @@ ssl_verify_result_t SSLClientSocketImpl::HandleVerifyResult() { IsCertStatusError(server_cert_verify_result_.cert_status) && result != ERR_CERT_KNOWN_INTERCEPTION_BLOCKED && context_->transport_security_state()->ShouldSSLErrorsBeFatal( @@ -648,7 +648,7 @@ diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc } void SpdySession::EnqueueStreamWrite( -@@ -3014,7 +3016,8 @@ void SpdySession::OnAltSvc( +@@ -3015,7 +3017,8 @@ void SpdySession::OnAltSvc( return; } if (!CanPool(transport_security_state_, ssl_info, *ssl_config_service_, @@ -674,7 +674,7 @@ diff --git a/net/spdy/spdy_session.h b/net/spdy/spdy_session.h diff --git a/net/url_request/url_request_context_builder.cc b/net/url_request/url_request_context_builder.cc --- a/net/url_request/url_request_context_builder.cc +++ b/net/url_request/url_request_context_builder.cc -@@ -399,20 +399,6 @@ std::unique_ptr URLRequestContextBuilder::Build() { +@@ -401,20 +401,6 @@ std::unique_ptr URLRequestContextBuilder::Build() { context->set_transport_security_state( std::make_unique(hsts_policy_bypass_list_)); @@ -698,7 +698,7 @@ diff --git a/net/url_request/url_request_context_builder.cc b/net/url_request/ur diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc --- a/net/url_request/url_request_http_job.cc +++ b/net/url_request/url_request_http_job.cc -@@ -333,7 +333,8 @@ std::unique_ptr URLRequestHttpJob::Create(URLRequest* request) { +@@ -363,7 +363,8 @@ std::unique_ptr URLRequestHttpJob::Create(URLRequest* request) { if (TransportSecurityState* hsts = request->context()->transport_security_state()) { upgrade_decision = @@ -708,7 +708,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque } // Check for reasons not to return a URLRequestHttpJob. These don't apply to -@@ -1151,7 +1152,7 @@ void URLRequestHttpJob::ProcessStrictTransportSecurityHeader() { +@@ -1205,7 +1206,7 @@ void URLRequestHttpJob::ProcessStrictTransportSecurityHeader() { HttpResponseHeaders* headers = GetResponseHeaders(); std::string value; if (headers->EnumerateHeader(nullptr, "Strict-Transport-Security", &value)) @@ -717,7 +717,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque } void URLRequestHttpJob::OnStartCompleted(int result) { -@@ -1221,7 +1222,7 @@ void URLRequestHttpJob::OnStartCompleted(int result) { +@@ -1275,7 +1276,7 @@ void URLRequestHttpJob::OnStartCompleted(int result) { TransportSecurityState* state = context->transport_security_state(); NotifySSLCertificateError( result, transaction_->GetResponseInfo()->ssl_info, @@ -729,7 +729,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque diff --git a/services/network/network_context.cc b/services/network/network_context.cc --- a/services/network/network_context.cc +++ b/services/network/network_context.cc -@@ -1883,6 +1883,7 @@ void NetworkContext::CreateHostResolver( +@@ -1918,6 +1918,7 @@ void NetworkContext::CreateHostResolver( void NetworkContext::VerifyCertForSignedExchange( const scoped_refptr& certificate, const GURL& url, @@ -737,7 +737,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont const std::string& ocsp_result, const std::string& sct_list, VerifyCertForSignedExchangeCallback callback) { -@@ -1893,6 +1894,7 @@ void NetworkContext::VerifyCertForSignedExchange( +@@ -1928,6 +1929,7 @@ void NetworkContext::VerifyCertForSignedExchange( pending_cert_verify->result = std::make_unique(); pending_cert_verify->certificate = certificate; pending_cert_verify->url = url; @@ -745,7 +745,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont pending_cert_verify->ocsp_result = ocsp_result; pending_cert_verify->sct_list = sct_list; net::CertVerifier* cert_verifier = -@@ -1937,17 +1939,19 @@ void NetworkContext::SetCorsOriginAccessListsForOrigin( +@@ -1970,17 +1972,19 @@ void NetworkContext::SetCorsOriginAccessListsForOrigin( std::move(callback).Run(); } @@ -768,7 +768,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont IsHSTSActiveForHostCallback callback) { net::TransportSecurityState* security_state = url_request_context_->transport_security_state(); -@@ -1957,10 +1961,10 @@ void NetworkContext::IsHSTSActiveForHost(const std::string& host, +@@ -1990,10 +1994,10 @@ void NetworkContext::IsHSTSActiveForHost(const std::string& host, return; } @@ -781,7 +781,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont GetHSTSStateCallback callback) { base::Value::Dict result; -@@ -1998,10 +2002,10 @@ void NetworkContext::GetHSTSState(const std::string& domain, +@@ -2031,10 +2035,10 @@ void NetworkContext::GetHSTSState(const std::string& domain, net::TransportSecurityState::STSState dynamic_sts_state; net::TransportSecurityState::PKPState dynamic_pkp_state; bool found_sts_dynamic = transport_security_state->GetDynamicSTSState( @@ -794,7 +794,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont if (found_sts_dynamic) { result.Set("dynamic_upgrade_mode", static_cast(dynamic_sts_state.upgrade_mode)); -@@ -2039,6 +2043,7 @@ void NetworkContext::GetHSTSState(const std::string& domain, +@@ -2072,6 +2076,7 @@ void NetworkContext::GetHSTSState(const std::string& domain, } void NetworkContext::DeleteDynamicDataForHost( @@ -802,7 +802,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont const std::string& host, DeleteDynamicDataForHostCallback callback) { net::TransportSecurityState* transport_security_state = -@@ -2049,7 +2054,7 @@ void NetworkContext::DeleteDynamicDataForHost( +@@ -2082,7 +2087,7 @@ void NetworkContext::DeleteDynamicDataForHost( } std::move(callback).Run( @@ -811,7 +811,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont } void NetworkContext::EnableStaticKeyPinningForTesting( -@@ -2090,7 +2095,7 @@ void NetworkContext::PreconnectSockets( +@@ -2123,7 +2128,7 @@ void NetworkContext::PreconnectSockets( DCHECK(!require_network_anonymization_key_ || !network_anonymization_key.IsEmpty()); @@ -820,7 +820,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont // |PreconnectSockets| may receive arguments from the renderer, which is not // guaranteed to validate them. -@@ -2907,12 +2912,15 @@ void NetworkContext::OnConnectionError() { +@@ -2928,12 +2933,15 @@ void NetworkContext::OnConnectionError() { std::move(on_connection_close_callback_).Run(this); } @@ -837,7 +837,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont original_url.host())) { return original_url; } -@@ -2960,7 +2968,8 @@ void NetworkContext::OnVerifyCertForSignedExchangeComplete( +@@ -2981,7 +2989,8 @@ void NetworkContext::OnVerifyCertForSignedExchangeComplete( url_request_context_->transport_security_state()->CheckPublicKeyPins( net::HostPortPair::FromURL(pending_cert_verify->url), pending_cert_verify->result->is_issued_by_known_root, @@ -850,7 +850,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont diff --git a/services/network/network_context.h b/services/network/network_context.h --- a/services/network/network_context.h +++ b/services/network/network_context.h -@@ -410,18 +410,21 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -407,18 +407,21 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext void VerifyCertForSignedExchange( const scoped_refptr& certificate, const GURL& url, @@ -875,7 +875,7 @@ diff --git a/services/network/network_context.h b/services/network/network_conte const std::string& host, DeleteDynamicDataForHostCallback callback) override; void SetCorsOriginAccessListsForOrigin( -@@ -735,7 +738,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -742,7 +745,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext mojo::PendingRemote cookie_observer, net::FirstPartySetMetadata first_party_set_metadata); @@ -885,7 +885,7 @@ diff --git a/services/network/network_context.h b/services/network/network_conte #if BUILDFLAG(IS_P2P_ENABLED) void DestroySocketManager(P2PSocketManager* socket_manager); -@@ -924,6 +928,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -943,6 +947,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext VerifyCertForSignedExchangeCallback callback; scoped_refptr certificate; GURL url; @@ -896,7 +896,7 @@ diff --git a/services/network/network_context.h b/services/network/network_conte 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 -@@ -1522,6 +1522,7 @@ interface NetworkContext { +@@ -1545,6 +1545,7 @@ interface NetworkContext { // implementation is currently specific for use by Signed Exchange. VerifyCertForSignedExchange(X509Certificate certificate, url.mojom.Url url, @@ -904,7 +904,7 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw string ocsp_response, string sct_list) => (int32 error_code, CertVerifyResult cv_result, -@@ -1529,16 +1530,16 @@ interface NetworkContext { +@@ -1552,16 +1553,16 @@ interface NetworkContext { // Adds explicitly-specified data as if it was processed from an // HSTS header. Used by tests and implementation of chrome://net-internals. @@ -924,7 +924,7 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw => (mojo_base.mojom.DictionaryValue state); // Sets allowed and blocked origins respectively for the URLLoaderFactory -@@ -1557,7 +1558,7 @@ interface NetworkContext { +@@ -1580,7 +1581,7 @@ interface NetworkContext { // Deletes any dynamic data stored for |host| from the transport // security state. Returns true iff an entry was deleted. // See net::TransportSecurityState::DeleteDynamicDataForHost for more detail. diff --git a/build/patches/Partition-MediaDeviceId-by-default.patch b/build/patches/Partition-MediaDeviceId-by-default.patch index 6626b870..f4808cf6 100644 --- a/build/patches/Partition-MediaDeviceId-by-default.patch +++ b/build/patches/Partition-MediaDeviceId-by-default.patch @@ -39,7 +39,7 @@ diff --git a/content/browser/media/media_devices_util.cc b/content/browser/media diff --git a/content/browser/renderer_host/media/media_devices_manager.cc b/content/browser/renderer_host/media/media_devices_manager.cc --- a/content/browser/renderer_host/media/media_devices_manager.cc +++ b/content/browser/renderer_host/media/media_devices_manager.cc -@@ -835,6 +835,11 @@ void MediaDevicesManager::OnDevicesEnumerated( +@@ -837,6 +837,11 @@ void MediaDevicesManager::OnDevicesEnumerated( has_permissions[i], salt_and_origin, device_info)); } } diff --git a/build/patches/Partition-blobs-by-top-frame-URL.patch b/build/patches/Partition-blobs-by-top-frame-URL.patch index ab955788..be83abaf 100644 --- a/build/patches/Partition-blobs-by-top-frame-URL.patch +++ b/build/patches/Partition-blobs-by-top-frame-URL.patch @@ -8,16 +8,16 @@ or, if not defined, by the same agent cluster. Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - storage/browser/blob/blob_url_store_impl.cc | 37 ++++++++++++++++++- - storage/browser/blob/blob_url_store_impl.h | 14 ++++++- - .../public/mojom/blob/blob_url_store.mojom | 12 ++++-- - .../core/fileapi/public_url_manager.cc | 17 +++++++++ - 4 files changed, 75 insertions(+), 5 deletions(-) + storage/browser/blob/blob_url_store_impl.cc | 28 +++++++++++++++++++ + storage/browser/blob/blob_url_store_impl.h | 9 ++++++ + .../public/mojom/blob/blob_url_store.mojom | 8 ++++-- + .../core/fileapi/public_url_manager.cc | 17 +++++++++++ + 4 files changed, 60 insertions(+), 2 deletions(-) diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/blob_url_store_impl.cc --- a/storage/browser/blob/blob_url_store_impl.cc +++ b/storage/browser/blob/blob_url_store_impl.cc -@@ -84,6 +84,20 @@ BlobURLStoreImpl::~BlobURLStoreImpl() { +@@ -80,6 +80,20 @@ BlobURLStoreImpl::~BlobURLStoreImpl() { } } @@ -38,27 +38,7 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/ void BlobURLStoreImpl::Register( mojo::PendingRemote blob, const GURL& url, -@@ -114,11 +128,18 @@ void BlobURLStoreImpl::Revoke(const GURL& url) { - urls_.erase(url); - } - --void BlobURLStoreImpl::Resolve(const GURL& url, ResolveCallback callback) { -+void BlobURLStoreImpl::Resolve(const GURL& url, -+ const base::UnguessableToken& unsafe_agent_cluster_id, -+ const std::optional& unsafe_top_level_site, -+ ResolveCallback callback) { - if (!registry_) { - std::move(callback).Run(mojo::NullRemote(), std::nullopt); - return; - } -+ if (!IsSamePartition(url, unsafe_agent_cluster_id, unsafe_top_level_site)) { -+ std::move(callback).Run(mojo::NullRemote(), std::nullopt); -+ return; -+ } - mojo::PendingRemote blob = registry_->GetBlobFromUrl(url); - std::move(callback).Run(std::move(blob), - registry_->GetUnsafeAgentClusterID(url)); -@@ -127,6 +148,8 @@ void BlobURLStoreImpl::Resolve(const GURL& url, ResolveCallback callback) { +@@ -113,6 +127,8 @@ void BlobURLStoreImpl::Revoke(const GURL& url) { void BlobURLStoreImpl::ResolveAsURLLoaderFactory( const GURL& url, mojo::PendingReceiver receiver, @@ -67,7 +47,7 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/ ResolveAsURLLoaderFactoryCallback callback) { if (!registry_) { BlobURLLoaderFactory::Create(mojo::NullRemote(), url, std::move(receiver)); -@@ -134,6 +157,12 @@ void BlobURLStoreImpl::ResolveAsURLLoaderFactory( +@@ -120,6 +136,12 @@ void BlobURLStoreImpl::ResolveAsURLLoaderFactory( return; } @@ -80,7 +60,7 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/ BlobURLLoaderFactory::Create(registry_->GetBlobFromUrl(url), url, std::move(receiver)); std::move(callback).Run(registry_->GetUnsafeAgentClusterID(url), -@@ -143,11 +172,17 @@ void BlobURLStoreImpl::ResolveAsURLLoaderFactory( +@@ -129,11 +151,17 @@ void BlobURLStoreImpl::ResolveAsURLLoaderFactory( void BlobURLStoreImpl::ResolveForNavigation( const GURL& url, mojo::PendingReceiver token, @@ -101,15 +81,7 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/ diff --git a/storage/browser/blob/blob_url_store_impl.h b/storage/browser/blob/blob_url_store_impl.h --- a/storage/browser/blob/blob_url_store_impl.h +++ b/storage/browser/blob/blob_url_store_impl.h -@@ -42,14 +42,21 @@ class COMPONENT_EXPORT(STORAGE_BROWSER) BlobURLStoreImpl - const std::optional& unsafe_top_level_site, - RegisterCallback callback) override; - void Revoke(const GURL& url) override; -- void Resolve(const GURL& url, ResolveCallback callback) override; -+ void Resolve(const GURL& url, -+ const base::UnguessableToken& unsafe_agent_cluster_id, -+ const std::optional& unsafe_top_level_site, -+ ResolveCallback callback) override; +@@ -46,10 +46,14 @@ class COMPONENT_EXPORT(STORAGE_BROWSER) BlobURLStoreImpl void ResolveAsURLLoaderFactory( const GURL& url, mojo::PendingReceiver receiver, @@ -124,7 +96,7 @@ diff --git a/storage/browser/blob/blob_url_store_impl.h b/storage/browser/blob/b ResolveForNavigationCallback callback) override; private: -@@ -59,6 +66,11 @@ class COMPONENT_EXPORT(STORAGE_BROWSER) BlobURLStoreImpl +@@ -59,6 +63,11 @@ class COMPONENT_EXPORT(STORAGE_BROWSER) BlobURLStoreImpl // `Revoke()`. bool BlobUrlIsValid(const GURL& url, const char* method) const; @@ -139,18 +111,7 @@ diff --git a/storage/browser/blob/blob_url_store_impl.h b/storage/browser/blob/b diff --git a/third_party/blink/public/mojom/blob/blob_url_store.mojom b/third_party/blink/public/mojom/blob/blob_url_store.mojom --- a/third_party/blink/public/mojom/blob/blob_url_store.mojom +++ b/third_party/blink/public/mojom/blob/blob_url_store.mojom -@@ -33,7 +33,9 @@ interface BlobURLStore { - Revoke(url.mojom.Url url); - - // Resolves a public Blob URL. -- Resolve(url.mojom.Url url) => ( -+ Resolve(url.mojom.Url url, -+ mojo_base.mojom.UnguessableToken unsafe_agent_cluster_id, -+ network.mojom.SchemefulSite? unsafe_top_level_site) => ( - pending_remote? blob, - // TODO(https://crbug.com/1224926): Remove this once experiment is over. - mojo_base.mojom.UnguessableToken? unsafe_agent_cluster_id); -@@ -47,7 +49,9 @@ interface BlobURLStore { +@@ -41,7 +41,9 @@ interface BlobURLStore { // both the blob URL and all other references to the blob have been dropped. ResolveAsURLLoaderFactory( url.mojom.Url url, @@ -161,7 +122,7 @@ diff --git a/third_party/blink/public/mojom/blob/blob_url_store.mojom b/third_pa // TODO(https://crbug.com/1224926): Remove these once experiment is over. mojo_base.mojom.UnguessableToken? unsafe_agent_cluster_id, network.mojom.SchemefulSite? unsafe_top_level_site); -@@ -57,7 +61,9 @@ interface BlobURLStore { +@@ -51,7 +53,9 @@ interface BlobURLStore { // refer to, even after the URL is revoked. // As long as the token is alive, the resolved blob will also be kept alive. ResolveForNavigation(url.mojom.Url url, @@ -197,7 +158,7 @@ diff --git a/third_party/blink/renderer/core/fileapi/public_url_manager.cc b/thi } // namespace PublicURLManager::PublicURLManager(ExecutionContext* execution_context) -@@ -278,6 +293,7 @@ void PublicURLManager::Resolve( +@@ -269,6 +284,7 @@ void PublicURLManager::Resolve( GetBlobURLStore().ResolveAsURLLoaderFactory( url, std::move(factory_receiver), @@ -205,7 +166,7 @@ diff --git a/third_party/blink/renderer/core/fileapi/public_url_manager.cc b/thi WTF::BindOnce(metrics_callback, WrapPersistent(GetExecutionContext()))); } -@@ -301,6 +317,7 @@ void PublicURLManager::Resolve( +@@ -292,6 +308,7 @@ void PublicURLManager::Resolve( GetBlobURLStore().ResolveForNavigation( url, std::move(token_receiver), diff --git a/build/patches/Partitioning-all-cookies-by-top-frame-domain.patch b/build/patches/Partitioning-all-cookies-by-top-frame-domain.patch index 875be8f9..7b72c2c7 100644 --- a/build/patches/Partitioning-all-cookies-by-top-frame-domain.patch +++ b/build/patches/Partitioning-all-cookies-by-top-frame-domain.patch @@ -43,7 +43,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -3524,7 +3524,7 @@ bool ChromeContentBrowserClient::IsFullCookieAccessAllowed( +@@ -3668,7 +3668,7 @@ bool ChromeContentBrowserClient::IsFullCookieAccessAllowed( scoped_refptr cookie_settings = CookieSettingsFactory::GetForProfile(profile); if (!cookie_settings) { @@ -69,7 +69,7 @@ diff --git a/chrome/browser/extensions/api/cookies/cookies_helpers.cc b/chrome/b diff --git a/chrome/browser/net/profile_network_context_service.cc b/chrome/browser/net/profile_network_context_service.cc --- a/chrome/browser/net/profile_network_context_service.cc +++ b/chrome/browser/net/profile_network_context_service.cc -@@ -799,16 +799,16 @@ ProfileNetworkContextService::CreateCookieManagerParams( +@@ -791,16 +791,16 @@ ProfileNetworkContextService::CreateCookieManagerParams( // UI to interact with SameSite cookies on accounts.google.com, which is used // for displaying a list of available accounts on the NTP // (chrome://new-tab-page), etc. @@ -95,7 +95,7 @@ diff --git a/chrome/browser/net/profile_network_context_service.cc b/chrome/brow 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 -@@ -361,6 +361,7 @@ bool PrivacySandboxSettingsDelegate::IsCookieDeprecationLabelAllowed() const { +@@ -359,6 +359,7 @@ bool PrivacySandboxSettingsDelegate::IsCookieDeprecationLabelAllowed() const { bool PrivacySandboxSettingsDelegate:: AreThirdPartyCookiesBlockedByCookieDeprecationExperiment() const { @@ -106,7 +106,7 @@ diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_settings_delegate.cc diff --git a/chrome/browser/storage_access_api/storage_access_grant_permission_context.cc b/chrome/browser/storage_access_api/storage_access_grant_permission_context.cc --- a/chrome/browser/storage_access_api/storage_access_grant_permission_context.cc +++ b/chrome/browser/storage_access_api/storage_access_grant_permission_context.cc -@@ -425,6 +425,18 @@ void StorageAccessGrantPermissionContext::CheckForAutoGrantOrAutoDenial( +@@ -420,6 +420,18 @@ void StorageAccessGrantPermissionContext::CheckForAutoGrantOrAutoDenial( permissions::PermissionRequestData request_data, permissions::BrowserPermissionCallback callback, net::FirstPartySetMetadata metadata) { @@ -321,7 +321,7 @@ diff --git a/net/cookies/cookie_deletion_info.cc b/net/cookies/cookie_deletion_i diff --git a/net/cookies/cookie_monster.cc b/net/cookies/cookie_monster.cc --- a/net/cookies/cookie_monster.cc +++ b/net/cookies/cookie_monster.cc -@@ -2230,6 +2230,7 @@ size_t CookieMonster::GarbageCollectPartitionedCookies( +@@ -2238,6 +2238,7 @@ size_t CookieMonster::GarbageCollectPartitionedCookies( if (cookie_partition_it == partitioned_cookies_.end()) return num_deleted; @@ -384,7 +384,7 @@ diff --git a/net/extras/sqlite/sqlite_persistent_cookie_store.cc b/net/extras/sq diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc --- a/net/url_request/url_request_http_job.cc +++ b/net/url_request/url_request_http_job.cc -@@ -836,13 +836,9 @@ void URLRequestHttpJob::SetCookieHeaderAndStart( +@@ -888,13 +888,9 @@ void URLRequestHttpJob::SetCookieHeaderAndStart( AnnotateAndMoveUserBlockedCookies(maybe_included_cookies, excluded_cookies); } @@ -427,7 +427,7 @@ diff --git a/services/network/cookie_settings.cc b/services/network/cookie_setti diff --git a/services/network/restricted_cookie_manager.cc b/services/network/restricted_cookie_manager.cc --- a/services/network/restricted_cookie_manager.cc +++ b/services/network/restricted_cookie_manager.cc -@@ -954,6 +954,12 @@ void RestrictedCookieManager::SetCookieFromString( +@@ -905,6 +905,12 @@ void RestrictedCookieManager::SetCookieFromString( std::move(callback).Run(); @@ -453,7 +453,7 @@ diff --git a/third_party/blink/renderer/modules/cookie_store/cookie_init.idl b/t diff --git a/third_party/blink/renderer/modules/cookie_store/cookie_store.cc b/third_party/blink/renderer/modules/cookie_store/cookie_store.cc --- a/third_party/blink/renderer/modules/cookie_store/cookie_store.cc +++ b/third_party/blink/renderer/modules/cookie_store/cookie_store.cc -@@ -340,6 +340,7 @@ ScriptPromise CookieStore::set(ScriptState* script_state, +@@ -348,6 +348,7 @@ ScriptPromise CookieStore::set(ScriptState* script_state, CookieInit* set_options = CookieInit::Create(); set_options->setName(name); set_options->setValue(value); @@ -461,7 +461,7 @@ diff --git a/third_party/blink/renderer/modules/cookie_store/cookie_store.cc b/t return set(script_state, set_options, exception_state); } -@@ -363,6 +364,7 @@ ScriptPromise CookieStore::Delete( +@@ -371,6 +372,7 @@ ScriptPromise CookieStore::Delete( set_options->setName(name); set_options->setValue("deleted"); set_options->setExpires(0); @@ -469,7 +469,7 @@ diff --git a/third_party/blink/renderer/modules/cookie_store/cookie_store.cc b/t return DoWrite(script_state, set_options, exception_state); } -@@ -378,6 +380,7 @@ ScriptPromise CookieStore::Delete( +@@ -386,6 +388,7 @@ ScriptPromise CookieStore::Delete( set_options->setPath(options->path()); set_options->setSameSite("strict"); set_options->setPartitioned(options->partitioned()); diff --git a/build/patches/Private-network-access-content-settings.patch b/build/patches/Private-network-access-content-settings.patch index 67a300fa..bcc0ff95 100644 --- a/build/patches/Private-network-access-content-settings.patch +++ b/build/patches/Private-network-access-content-settings.patch @@ -21,7 +21,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -7676,8 +7676,7 @@ ChromeContentBrowserClient::ShouldOverridePrivateNetworkRequestPolicy( +@@ -7834,8 +7834,7 @@ ChromeContentBrowserClient::ShouldOverridePrivateNetworkRequestPolicy( #if BUILDFLAG(IS_ANDROID) if (base::FeatureList::IsEnabled( @@ -176,7 +176,7 @@ new file mode 100644 diff --git a/services/network/cors/cors_url_loader.cc b/services/network/cors/cors_url_loader.cc --- a/services/network/cors/cors_url_loader.cc +++ b/services/network/cors/cors_url_loader.cc -@@ -1033,7 +1033,7 @@ std::optional CorsURLLoader::ConvertPreflightResult( +@@ -1032,7 +1032,7 @@ std::optional CorsURLLoader::ConvertPreflightResult( } // Private Network Access warning: ignore net and CORS errors. @@ -185,7 +185,7 @@ diff --git a/services/network/cors/cors_url_loader.cc b/services/network/cors/co CHECK(ShouldIgnorePrivateNetworkAccessErrors( request_.required_ip_address_space)); CHECK_EQ(*reason, PreflightRequiredReason::kPrivateNetworkAccess); -@@ -1385,12 +1385,6 @@ bool CorsURLLoader::ShouldIgnorePrivateNetworkAccessErrors( +@@ -1356,12 +1356,6 @@ bool CorsURLLoader::ShouldIgnorePrivateNetworkAccessErrors( if (!state) { return false; } diff --git a/build/patches/Re-introduce-modal-dialog-flag-to-close-all-tabs.patch b/build/patches/Re-introduce-modal-dialog-flag-to-close-all-tabs.patch index 6de2ddb5..eb49e654 100644 --- a/build/patches/Re-introduce-modal-dialog-flag-to-close-all-tabs.patch +++ b/build/patches/Re-introduce-modal-dialog-flag-to-close-all-tabs.patch @@ -45,7 +45,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -181,6 +181,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -185,6 +185,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kBackGestureMoveToBackDuringStartup, &kBackGestureRefactorAndroid, &kBackToHomeAnimation, @@ -56,7 +56,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 -@@ -261,6 +261,7 @@ public abstract class ChromeFeatureList { +@@ -267,6 +267,7 @@ public abstract class ChromeFeatureList { public static final String CCT_PREWARM_TAB = "CCTPrewarmTab"; public static final String CCT_REPORT_PARALLEL_REQUEST_STATUS = "CCTReportParallelRequestStatus"; diff --git a/build/patches/Re-introduce-override_build_timestamp.patch b/build/patches/Re-introduce-override_build_timestamp.patch index 2e101bc6..46fc9a38 100644 --- a/build/patches/Re-introduce-override_build_timestamp.patch +++ b/build/patches/Re-introduce-override_build_timestamp.patch @@ -16,7 +16,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/base/BUILD.gn b/base/BUILD.gn --- a/base/BUILD.gn +++ b/base/BUILD.gn -@@ -4224,8 +4224,13 @@ action("build_date") { +@@ -4154,8 +4154,13 @@ action("build_date") { args = [ rebase_path("$target_gen_dir/generated_build_date.h", root_build_dir), diff --git a/build/patches/Reduce-HTTP-headers-in-DoH-requests-to-bare-minimum.patch b/build/patches/Reduce-HTTP-headers-in-DoH-requests-to-bare-minimum.patch index 0b0565cc..eca68757 100644 --- a/build/patches/Reduce-HTTP-headers-in-DoH-requests-to-bare-minimum.patch +++ b/build/patches/Reduce-HTTP-headers-in-DoH-requests-to-bare-minimum.patch @@ -35,7 +35,7 @@ diff --git a/net/dns/dns_transaction.cc b/net/dns/dns_transaction.cc diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc --- a/net/url_request/url_request_http_job.cc +++ b/net/url_request/url_request_http_job.cc -@@ -485,6 +485,7 @@ void URLRequestHttpJob::OnGotFirstPartySetMetadata( +@@ -545,6 +545,7 @@ void URLRequestHttpJob::OnGotFirstPartySetMetadata( // fields in the referrer. GURL referrer(request_->referrer()); @@ -43,7 +43,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque // Our consumer should have made sure that this is a safe referrer (e.g. via // URLRequestJob::ComputeReferrerForPolicy). if (referrer.is_valid()) { -@@ -492,11 +493,14 @@ void URLRequestHttpJob::OnGotFirstPartySetMetadata( +@@ -552,11 +553,14 @@ void URLRequestHttpJob::OnGotFirstPartySetMetadata( request_info_.extra_headers.SetHeader(HttpRequestHeaders::kReferer, referer_value); } @@ -58,7 +58,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque AddExtraHeaders(); -@@ -742,10 +746,10 @@ void URLRequestHttpJob::StartTransactionInternal() { +@@ -802,10 +806,10 @@ void URLRequestHttpJob::StartTransactionInternal() { void URLRequestHttpJob::AddExtraHeaders() { request_info_.extra_headers.SetAcceptEncodingIfMissing( request()->url(), request()->accepted_stream_types(), diff --git a/build/patches/Remove-ChromiumNetworkAdapter.patch b/build/patches/Remove-ChromiumNetworkAdapter.patch index be9788fb..4c6d3176 100644 --- a/build/patches/Remove-ChromiumNetworkAdapter.patch +++ b/build/patches/Remove-ChromiumNetworkAdapter.patch @@ -19,7 +19,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/OMADownloadHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/download/OMADownloadHandler.java --- a/chrome/android/java/src/org/chromium/chrome/browser/download/OMADownloadHandler.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/download/OMADownloadHandler.java -@@ -1012,45 +1012,6 @@ public class OMADownloadHandler extends BroadcastReceiver { +@@ -1013,45 +1013,6 @@ public class OMADownloadHandler extends BroadcastReceiver { protected Boolean doInBackground() { HttpURLConnection urlConnection = null; boolean success = false; @@ -68,7 +68,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/OMADow diff --git a/chrome/android/java/src/org/chromium/chrome/browser/feedback/ConnectivityChecker.java b/chrome/android/java/src/org/chromium/chrome/browser/feedback/ConnectivityChecker.java --- a/chrome/android/java/src/org/chromium/chrome/browser/feedback/ConnectivityChecker.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/feedback/ConnectivityChecker.java -@@ -135,41 +135,7 @@ public final class ConnectivityChecker { +@@ -134,41 +134,7 @@ public final class ConnectivityChecker { postResult(callback, ConnectivityCheckResult.ERROR); return; } @@ -200,7 +200,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase diff --git a/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/util/HttpURLConnectionFactoryImpl.java b/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/util/HttpURLConnectionFactoryImpl.java --- a/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/util/HttpURLConnectionFactoryImpl.java +++ b/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/util/HttpURLConnectionFactoryImpl.java -@@ -36,11 +36,6 @@ public class HttpURLConnectionFactoryImpl implements HttpURLConnectionFactory { +@@ -37,11 +37,6 @@ public class HttpURLConnectionFactoryImpl implements HttpURLConnectionFactory { @Override public HttpURLConnection createHttpURLConnection(String url) { @@ -216,7 +216,7 @@ diff --git a/components/minidump_uploader/android/java/src/org/chromium/componen diff --git a/components/variations/android/java/src/org/chromium/components/variations/firstrun/VariationsSeedFetcher.java b/components/variations/android/java/src/org/chromium/components/variations/firstrun/VariationsSeedFetcher.java --- a/components/variations/android/java/src/org/chromium/components/variations/firstrun/VariationsSeedFetcher.java +++ b/components/variations/android/java/src/org/chromium/components/variations/firstrun/VariationsSeedFetcher.java -@@ -187,14 +187,6 @@ public class VariationsSeedFetcher { +@@ -190,14 +190,6 @@ public class VariationsSeedFetcher { ResettersForTesting.register(() -> sInstance = oldValue); } @@ -231,7 +231,7 @@ diff --git a/components/variations/android/java/src/org/chromium/components/vari @VisibleForTesting protected List getAvailableInstanceManipulations() { List compressions = new ArrayList(); -@@ -532,24 +524,8 @@ public class VariationsSeedFetcher { +@@ -535,24 +527,8 @@ public class VariationsSeedFetcher { HttpURLConnection connection = null; try { long startTimeMillis = SystemClock.elapsedRealtime(); diff --git a/build/patches/Remove-HTTP-referrals-in-cross-origin-navigation.patch b/build/patches/Remove-HTTP-referrals-in-cross-origin-navigation.patch index 5debcc8d..e6ba3661 100644 --- a/build/patches/Remove-HTTP-referrals-in-cross-origin-navigation.patch +++ b/build/patches/Remove-HTTP-referrals-in-cross-origin-navigation.patch @@ -56,10 +56,10 @@ 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 -@@ -977,6 +977,8 @@ chrome_java_sources = [ +@@ -973,6 +973,8 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/privacy_sandbox/TrackingProtectionOnboardingView.java", "java/src/org/chromium/chrome/browser/privacy_sandbox/TrackingProtectionSnackbarController.java", - "java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java", + "java/src/org/chromium/chrome/browser/privacy_sandbox/TrackingProtectionSnackbarLimiter.java", + "java/src/org/chromium/chrome/browser/privacy/settings/RefererSettingsFragment.java", + "java/src/org/chromium/chrome/browser/privacy/settings/RadioButtonGroupRefererSettings.java", "java/src/org/chromium/chrome/browser/provider/BaseColumns.java", @@ -379,7 +379,7 @@ new file mode 100644 diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chrome/browser/extensions/api/settings_private/prefs_util.cc --- a/chrome/browser/extensions/api/settings_private/prefs_util.cc +++ b/chrome/browser/extensions/api/settings_private/prefs_util.cc -@@ -214,6 +214,11 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { +@@ -217,6 +217,11 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { (*s_allowlist)[::prefs::kExpireDaysThreshold] = settings_api::PrefType::kNumber; @@ -390,11 +390,11 @@ diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chro + // Appearance settings. (*s_allowlist)[::prefs::kCurrentThemeID] = settings_api::PrefType::kString; - (*s_allowlist)[::prefs::kPolicyThemeColor] = settings_api::PrefType::kNumber; + (*s_allowlist)[::prefs::kPinnedActions] = settings_api::PrefType::kList; diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc --- a/chrome/browser/net/system_network_context_manager.cc +++ b/chrome/browser/net/system_network_context_manager.cc -@@ -596,6 +596,9 @@ SystemNetworkContextManager::SystemNetworkContextManager( +@@ -595,6 +595,9 @@ SystemNetworkContextManager::SystemNetworkContextManager( base::BindRepeating(&SystemNetworkContextManager::UpdateReferrersEnabled, base::Unretained(this))); @@ -404,7 +404,7 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows pref_change_registrar_.Add( prefs::kExplicitlyAllowedNetworkPorts, base::BindRepeating( -@@ -687,6 +690,7 @@ void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) { +@@ -675,6 +678,7 @@ void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) { // the system NetworkContext, and the per-profile pref values are used for // the profile NetworkContexts. registry->RegisterBooleanPref(prefs::kEnableReferrers, true); @@ -480,7 +480,7 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.ts b/ch diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -1077,6 +1077,30 @@ For more settings that use data to improve your Chrome experience, go to @@ -514,7 +514,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/browser/ui/prefs/pref_watcher.cc b/chrome/browser/ui/prefs/pref_watcher.cc --- a/chrome/browser/ui/prefs/pref_watcher.cc +++ b/chrome/browser/ui/prefs/pref_watcher.cc -@@ -95,6 +95,8 @@ PrefWatcher::PrefWatcher(Profile* profile) +@@ -96,6 +96,8 @@ PrefWatcher::PrefWatcher(Profile* profile) renderer_callback); profile_pref_change_registrar_.Add(prefs::kEnableReferrers, renderer_callback); @@ -526,7 +526,7 @@ diff --git a/chrome/browser/ui/prefs/pref_watcher.cc b/chrome/browser/ui/prefs/p diff --git a/chrome/browser/ui/prefs/prefs_tab_helper.cc b/chrome/browser/ui/prefs/prefs_tab_helper.cc --- a/chrome/browser/ui/prefs/prefs_tab_helper.cc +++ b/chrome/browser/ui/prefs/prefs_tab_helper.cc -@@ -380,6 +380,8 @@ void PrefsTabHelper::RegisterProfilePrefs( +@@ -371,6 +371,8 @@ void PrefsTabHelper::RegisterProfilePrefs( registry->RegisterBooleanPref( prefs::kEnableReferrers, !base::FeatureList::IsEnabled(features::kNoReferrers)); @@ -538,7 +538,7 @@ diff --git a/chrome/browser/ui/prefs/prefs_tab_helper.cc b/chrome/browser/ui/pre diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc --- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc +++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc -@@ -1819,6 +1819,10 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, +@@ -1836,6 +1836,10 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, {"dayHistory", IDS_SETTINGS_DAY_HISTORY_DESCRIPTION}, {"daysHistory", IDS_SETTINGS_DAYS_HISTORY_DESCRIPTION}, {"foreverHistory", IDS_SETTINGS_FOREVER_HISTORY_DESCRIPTION}, @@ -552,7 +552,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h --- a/chrome/common/pref_names.h +++ b/chrome/common/pref_names.h -@@ -1536,6 +1536,9 @@ inline constexpr char kEnableEncryptedMedia[] = +@@ -1560,6 +1560,9 @@ inline constexpr char kEnableEncryptedMedia[] = inline constexpr char kPrefixedVideoFullscreenApiAvailability[] = "media.prefixed_fullscreen_video_api_availability"; @@ -615,7 +615,7 @@ diff --git a/components/download/content/internal/context_menu_download.cc b/com diff --git a/content/browser/renderer_host/navigation_request.cc b/content/browser/renderer_host/navigation_request.cc --- a/content/browser/renderer_host/navigation_request.cc +++ b/content/browser/renderer_host/navigation_request.cc -@@ -391,6 +391,15 @@ void AddAdditionalRequestHeaders( +@@ -398,6 +398,15 @@ void AddAdditionalRequestHeaders( blink::mojom::Referrer(GURL(), network::mojom::ReferrerPolicy::kNever); } diff --git a/build/patches/Remove-auth-header-upon-cross-origin-redirect.patch b/build/patches/Remove-auth-header-upon-cross-origin-redirect.patch index d0bcf68c..367bd329 100644 --- a/build/patches/Remove-auth-header-upon-cross-origin-redirect.patch +++ b/build/patches/Remove-auth-header-upon-cross-origin-redirect.patch @@ -19,7 +19,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_loader.cc b/third_party/blink/renderer/platform/loader/fetch/resource_loader.cc --- a/third_party/blink/renderer/platform/loader/fetch/resource_loader.cc +++ b/third_party/blink/renderer/platform/loader/fetch/resource_loader.cc -@@ -595,6 +595,9 @@ bool ResourceLoader::WillFollowRedirect( +@@ -600,6 +600,9 @@ bool ResourceLoader::WillFollowRedirect( new_url)) { fetcher_->GetUseCounter().CountUse( mojom::WebFeature::kAuthorizationCrossOrigin); @@ -32,7 +32,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_loader.cc diff --git a/third_party/blink/renderer/platform/loader/fetch/url_loader/sync_load_context.cc b/third_party/blink/renderer/platform/loader/fetch/url_loader/sync_load_context.cc --- a/third_party/blink/renderer/platform/loader/fetch/url_loader/sync_load_context.cc +++ b/third_party/blink/renderer/platform/loader/fetch/url_loader/sync_load_context.cc -@@ -198,6 +198,10 @@ void SyncLoadContext::FollowRedirect(std::vector removed_headers, +@@ -199,6 +199,10 @@ void SyncLoadContext::FollowRedirect(std::vector removed_headers, return; } diff --git a/build/patches/Remove-binary-blob-integrations.patch b/build/patches/Remove-binary-blob-integrations.patch index 4bb3d66d..2f39975a 100644 --- a/build/patches/Remove-binary-blob-integrations.patch +++ b/build/patches/Remove-binary-blob-integrations.patch @@ -104,11 +104,11 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html services/BUILD.gn | 9 - services/device/geolocation/BUILD.gn | 4 - services/shape_detection/BUILD.gn | 2 - - third_party/android_deps/BUILD.gn | 728 +----------------- + third_party/android_deps/BUILD.gn | 729 +----------------- .../preconditions/javatests/BUILD.gn | 1 - .../gms/ChromiumPlayServicesAvailability.java | 10 +- third_party/cardboard/BUILD.gn | 4 - - 84 files changed, 116 insertions(+), 2228 deletions(-) + 84 files changed, 116 insertions(+), 2229 deletions(-) create mode 100644 components/webauthn/android/java/src/org/chromium/components/webauthn/ConditionalUiState.java diff --git a/android_webview/expectations/system_webview_bundle.AndroidManifest.expected b/android_webview/expectations/system_webview_bundle.AndroidManifest.expected @@ -148,7 +148,7 @@ diff --git a/build/android/gyp/proguard.py b/build/android/gyp/proguard.py diff --git a/build/config/android/config.gni b/build/config/android/config.gni --- a/build/config/android/config.gni +++ b/build/config/android/config.gni -@@ -170,9 +170,7 @@ if (is_android || is_chromeos) { +@@ -177,9 +177,7 @@ if (is_android || is_chromeos) { # google_play_services_package contains the path where individual client # targets (e.g. google_play_services_base_java) are located. @@ -162,9 +162,9 @@ diff --git a/build/config/android/config.gni b/build/config/android/config.gni diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -326,14 +326,6 @@ if (current_toolchain == default_toolchain) { - ":chrome_public_apk_template_resources", +@@ -342,14 +342,6 @@ if (current_toolchain == default_toolchain) { ":google_api_keys_java", + ":java_overlay_resources", ":usage_stats_proto_java", - "$google_play_services_package:google_play_services_auth_base_java", - "$google_play_services_package:google_play_services_base_java", @@ -177,7 +177,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//base/version_info/android:version_constants_java", "//cc:cc_java", "//cc/mojom:mojom_java", -@@ -689,13 +681,23 @@ if (current_toolchain == default_toolchain) { +@@ -712,13 +704,23 @@ if (current_toolchain == default_toolchain) { "//services/shape_detection:shape_detection_java", "//services/shape_detection/public/mojom:mojom_java", "//skia/public/mojom:mojom_java", @@ -203,7 +203,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//third_party/android_deps:protobuf_lite_runtime_java", "//third_party/android_media:android_media_java", "//third_party/android_swipe_refresh:android_swipe_refresh_java", -@@ -972,12 +974,6 @@ if (current_toolchain == default_toolchain) { +@@ -983,12 +985,6 @@ if (current_toolchain == default_toolchain) { ":chrome_jni_headers", ":chrome_unit_test_util_java", ":delegate_public_impl_java", @@ -216,7 +216,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//base:base_java_test_support", "//base:base_java_test_support_uncommon", "//base:base_junit_test_support", -@@ -1648,13 +1644,6 @@ if (current_toolchain == default_toolchain) { +@@ -1662,13 +1658,6 @@ if (current_toolchain == default_toolchain) { ":chrome_app_java_resources", ":chrome_test_util_java", ":delegate_public_impl_java", @@ -230,7 +230,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//base:base_java", "//base:base_java_test_support", "//base:base_java_test_support_uncommon", -@@ -2551,7 +2540,6 @@ if (current_toolchain == default_toolchain) { +@@ -2567,7 +2556,6 @@ if (current_toolchain == default_toolchain) { ] deps = [ ":chrome_java", @@ -238,7 +238,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//base:base_java", "//base:base_java_test_support", "//build/android:build_java", -@@ -2653,7 +2641,6 @@ if (current_toolchain == default_toolchain) { +@@ -2669,7 +2657,6 @@ if (current_toolchain == default_toolchain) { # is in a DFM. android_library("base_module_java") { sources = [ @@ -246,7 +246,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "java/src/org/chromium/chrome/app/TrichromeZygotePreload.java", "java/src/org/chromium/chrome/browser/ChromeBackgroundService.java", "java/src/org/chromium/chrome/browser/ChromeBackupAgent.java", -@@ -2670,8 +2657,6 @@ if (current_toolchain == default_toolchain) { +@@ -2686,8 +2673,6 @@ if (current_toolchain == default_toolchain) { "java/src/org/chromium/chrome/browser/base/SplitCompatBackupAgent.java", "java/src/org/chromium/chrome/browser/base/SplitCompatContentProvider.java", "java/src/org/chromium/chrome/browser/base/SplitCompatCustomTabsService.java", @@ -255,7 +255,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "java/src/org/chromium/chrome/browser/base/SplitCompatIntentService.java", "java/src/org/chromium/chrome/browser/base/SplitCompatJobService.java", "java/src/org/chromium/chrome/browser/base/SplitCompatMinidumpUploadJobService.java", -@@ -2695,16 +2680,10 @@ if (current_toolchain == default_toolchain) { +@@ -2711,16 +2696,10 @@ if (current_toolchain == default_toolchain) { "java/src/org/chromium/chrome/browser/notifications/NotificationService.java", "java/src/org/chromium/chrome/browser/photo_picker/DecoderService.java", "java/src/org/chromium/chrome/browser/provider/ChromeBrowserProvider.java", @@ -272,7 +272,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//base:base_java", "//chrome/browser/download/android:file_provider_java", "//chrome/browser/flags:java", -@@ -2717,7 +2696,6 @@ if (current_toolchain == default_toolchain) { +@@ -2734,7 +2713,6 @@ if (current_toolchain == default_toolchain) { "//components/media_router/browser/android:cast_options_provider_java", "//components/minidump_uploader:minidump_uploader_java", "//components/module_installer/android:module_installer_java", @@ -280,7 +280,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//third_party/androidx:androidx_annotation_annotation_java", "//third_party/androidx:androidx_collection_collection_java", "//third_party/jni_zero:jni_zero_java", -@@ -2737,7 +2715,6 @@ if (current_toolchain == default_toolchain) { +@@ -2754,7 +2732,6 @@ if (current_toolchain == default_toolchain) { # Deps to pull services into base module. # TODO(crbug.com/40148088): Consider moving these to the chrome module to # reduce base dex size. @@ -299,7 +299,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java "java/src/org/chromium/chrome/browser/ChromeBackupAgentImpl.java", "java/src/org/chromium/chrome/browser/ChromeBackupWatcher.java", "java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java", -@@ -1003,11 +1002,6 @@ chrome_java_sources = [ +@@ -999,11 +998,6 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/segmentation_platform/ReaderModeActionProvider.java", "java/src/org/chromium/chrome/browser/segmentation_platform/SignalAccumulator.java", "java/src/org/chromium/chrome/browser/selection/ChromeSelectionDropdownMenuDelegate.java", @@ -364,7 +364,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro - @@ -820,7 +820,7 @@ diff --git a/chrome/browser/language/android/BUILD.gn b/chrome/browser/language/ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/AppLanguagePromoDialog.java b/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/AppLanguagePromoDialog.java --- a/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/AppLanguagePromoDialog.java +++ b/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/AppLanguagePromoDialog.java -@@ -585,12 +585,6 @@ public class AppLanguagePromoDialog { +@@ -583,12 +583,6 @@ public class AppLanguagePromoDialog { mLoadingModal.set(ModalDialogProperties.CUSTOM_VIEW, customView); @@ -833,7 +833,7 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse boolean isSelectedCurrentUI = AppLocaleUtils.isAppLanguagePref(selectedLanguage.getCode()); if (!isSelectedCurrentUI) { // Only record isTopLanguage if the app language has changed. -@@ -598,31 +592,6 @@ public class AppLanguagePromoDialog { +@@ -596,31 +590,6 @@ public class AppLanguagePromoDialog { } AndroidLanguageMetricsBridge.reportAppLanguagePromptLanguage( selectedLanguage.isSystemDefault() ? "" : selectedLanguage.getCode()); @@ -919,7 +919,7 @@ diff --git a/chrome/browser/password_manager/android/BUILD.gn b/chrome/browser/p - "$google_play_services_package:google_play_services_basement_java", "account_storage_notice:junit", "add_username_dialog:junit", - "pwd_migration:junit", + "bottom_sheet:junit", diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerAndroidBackendUtil.java b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerAndroidBackendUtil.java --- a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerAndroidBackendUtil.java +++ b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerAndroidBackendUtil.java @@ -1091,7 +1091,7 @@ diff --git a/chrome/browser/push_messaging/push_messaging_service_factory.cc b/c diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resources/settings/route.ts --- a/chrome/browser/resources/settings/route.ts +++ b/chrome/browser/resources/settings/route.ts -@@ -62,8 +62,6 @@ function addPrivacyChildRoutes(r: Partial) { +@@ -64,8 +64,6 @@ function addPrivacyChildRoutes(r: Partial) { if (loadTimeData.getBoolean('enableSecurityKeysSubpage')) { r.SECURITY_KEYS = r.SECURITY.createChild('/securityKeys'); @@ -1103,7 +1103,7 @@ diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resourc 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,8 +301,6 @@ static_library("ui") { +@@ -310,8 +310,6 @@ static_library("ui") { "webui/flags/flags_ui.h", "webui/flags/flags_ui_handler.cc", "webui/flags/flags_ui_handler.h", @@ -1112,7 +1112,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn "webui/internals/internals_ui.cc", "webui/internals/internals_ui.h", "webui/interstitials/interstitial_ui.cc", -@@ -554,7 +552,6 @@ static_library("ui") { +@@ -542,7 +540,6 @@ static_library("ui") { "//components/find_in_page", "//components/fingerprinting_protection_filter/browser", "//components/flags_ui", @@ -1123,7 +1123,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/android/omnibox/BUILD.gn --- a/chrome/browser/ui/android/omnibox/BUILD.gn +++ b/chrome/browser/ui/android/omnibox/BUILD.gn -@@ -155,8 +155,6 @@ android_library("java") { +@@ -156,8 +156,6 @@ android_library("java") { deps = [ ":java_resources", @@ -1132,7 +1132,7 @@ diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/andr "//base:base_java", "//build/android:build_java", "//chrome/browser/android/lifecycle:java", -@@ -469,8 +467,6 @@ robolectric_library("junit") { +@@ -474,8 +472,6 @@ robolectric_library("junit") { deps = [ ":java", ":java_resources", @@ -1144,7 +1144,7 @@ diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/andr diff --git a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fullscreen_signin/FullscreenSigninMediator.java b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fullscreen_signin/FullscreenSigninMediator.java --- a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fullscreen_signin/FullscreenSigninMediator.java +++ b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fullscreen_signin/FullscreenSigninMediator.java -@@ -224,21 +224,17 @@ public class FullscreenSigninMediator +@@ -223,21 +223,17 @@ public class FullscreenSigninMediator * also means that native has been initialized. */ void onInitialLoadCompleted(boolean hasPolicies) { @@ -1173,7 +1173,7 @@ diff --git a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/brows diff --git a/chrome/browser/ui/webauthn/sheet_models.cc b/chrome/browser/ui/webauthn/sheet_models.cc --- a/chrome/browser/ui/webauthn/sheet_models.cc +++ b/chrome/browser/ui/webauthn/sheet_models.cc -@@ -1605,16 +1605,9 @@ AuthenticatorMultiSourcePickerSheetModel:: +@@ -1564,16 +1564,9 @@ AuthenticatorMultiSourcePickerSheetModel:: bool AuthenticatorMultiSourcePickerSheetModel::IsManageDevicesButtonVisible() const { @@ -1202,10 +1202,10 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrom #include "chrome/browser/ui/webui/internals/internals_ui.h" #include "chrome/browser/ui/webui/interstitials/interstitial_ui.h" #include "chrome/browser/ui/webui/intro/intro_ui.h" -@@ -433,8 +432,6 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, +@@ -425,8 +424,6 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, + #endif + if (url.host_piece() == chrome::kChromeUIDeviceLogHost) return &NewWebUI; - if (url.host_piece() == chrome::kChromeUIDownloadInternalsHost) - return &NewWebUI; - if (url.host_piece() == chrome::kChromeUIGCMInternalsHost) - return &NewWebUI; if (url.host_piece() == chrome::kChromeUIInternalsHost) @@ -1284,7 +1284,7 @@ diff --git a/chrome/browser/webauthn/android/java/src/org/chromium/chrome/browse diff --git a/chrome/browser/webauthn/authenticator_request_dialog_model.cc b/chrome/browser/webauthn/authenticator_request_dialog_model.cc --- a/chrome/browser/webauthn/authenticator_request_dialog_model.cc +++ b/chrome/browser/webauthn/authenticator_request_dialog_model.cc -@@ -2180,10 +2180,6 @@ void AuthenticatorRequestDialogController::PopulateMechanisms() { +@@ -2227,10 +2227,6 @@ void AuthenticatorRequestDialogController::PopulateMechanisms() { if (model_->cable_ui_type) { switch (*model_->cable_ui_type) { case AuthenticatorRequestDialogModel::CableUIType::CABLE_V2_2ND_FACTOR: @@ -1492,7 +1492,7 @@ diff --git a/components/gcm_driver/android/java/src/org/chromium/components/gcm_ diff --git a/components/gcm_driver/gcm_client_impl.cc b/components/gcm_driver/gcm_client_impl.cc --- a/components/gcm_driver/gcm_client_impl.cc +++ b/components/gcm_driver/gcm_client_impl.cc -@@ -449,6 +449,7 @@ void GCMClientImpl::StartGCM() { +@@ -450,6 +450,7 @@ void GCMClientImpl::StartGCM() { void GCMClientImpl::InitializeMCSClient() { DCHECK(network_connection_tracker_); @@ -1500,7 +1500,7 @@ diff --git a/components/gcm_driver/gcm_client_impl.cc b/components/gcm_driver/gc std::vector endpoints; endpoints.push_back(gservices_settings_.GetMCSMainEndpoint()); GURL fallback_endpoint = gservices_settings_.GetMCSFallbackEndpoint(); -@@ -642,6 +643,7 @@ void GCMClientImpl::AddHeartbeatInterval(const std::string& scope, +@@ -643,6 +644,7 @@ void GCMClientImpl::AddHeartbeatInterval(const std::string& scope, int interval_ms) { DCHECK(io_task_runner_->RunsTasksInCurrentSequence()); DCHECK(mcs_client_); @@ -1508,7 +1508,7 @@ diff --git a/components/gcm_driver/gcm_client_impl.cc b/components/gcm_driver/gc mcs_client_->AddHeartbeatInterval(scope, interval_ms); } -@@ -653,6 +655,7 @@ void GCMClientImpl::RemoveHeartbeatInterval(const std::string& scope) { +@@ -654,6 +656,7 @@ void GCMClientImpl::RemoveHeartbeatInterval(const std::string& scope) { void GCMClientImpl::StartCheckin() { DCHECK(io_task_runner_->RunsTasksInCurrentSequence()); @@ -1516,7 +1516,7 @@ diff --git a/components/gcm_driver/gcm_client_impl.cc b/components/gcm_driver/gc // Make sure no checkin is in progress. if (checkin_request_) -@@ -731,6 +734,7 @@ void GCMClientImpl::SetGServicesSettingsCallback(bool success) { +@@ -732,6 +735,7 @@ void GCMClientImpl::SetGServicesSettingsCallback(bool success) { void GCMClientImpl::SchedulePeriodicCheckin() { DCHECK(io_task_runner_->RunsTasksInCurrentSequence()); @@ -3148,10 +3148,10 @@ diff --git a/components/signin/public/android/BUILD.gn b/components/signin/publi deps = [ - "$google_play_services_package:google_play_services_auth_base_java", - "$google_play_services_package:google_play_services_base_java", + "//base:base_cached_flags_java", "//base:base_java", "//build/android:build_java", - "//components/externalauth/android:java", -@@ -189,7 +187,6 @@ robolectric_library("junit") { +@@ -190,7 +188,6 @@ robolectric_library("junit") { deps = [ ":java", ":signin_java_test_support", @@ -3227,7 +3227,7 @@ diff --git a/components/webauthn/android/BUILD.gn b/components/webauthn/android/ "//base:base_java", "//base/version_info/android:version_constants_java", "//build/android:build_java", -@@ -120,8 +111,6 @@ android_library("test_support_java") { +@@ -134,8 +125,6 @@ android_library("test_support_java") { source_set("android") { sources = [ "cred_man_support.h", @@ -3236,7 +3236,7 @@ diff --git a/components/webauthn/android/BUILD.gn b/components/webauthn/android/ "internal_authenticator_android.cc", "internal_authenticator_android.h", "webauthn_browser_bridge.cc", -@@ -190,7 +179,6 @@ robolectric_library("junit") { +@@ -204,7 +193,6 @@ robolectric_library("junit") { deps = [ ":java", ":test_support_java", @@ -3247,7 +3247,7 @@ diff --git a/components/webauthn/android/BUILD.gn b/components/webauthn/android/ diff --git a/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java b/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java --- a/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java +++ b/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java -@@ -71,14 +71,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -72,14 +72,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon // Similar to the above, but for pending isConditionalMediationAvailable request callbacks. private Queue mIsConditionalMediationAvailableCallbackQueue = new LinkedList<>(); @@ -3262,7 +3262,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut /** * Builds the Authenticator service implementation. -@@ -110,19 +102,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -111,19 +103,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon mCreateConfirmationUiDelegate = createConfirmationUiDelegate; } @@ -3282,7 +3282,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut /** * Called by InternalAuthenticatorAndroid, which facilitates WebAuthn for processes that * originate from the browser process. Since the request is from the browser process, the -@@ -169,14 +148,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -170,14 +149,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon private void continueMakeCredential( PublicKeyCredentialCreationOptions options, MakeCredential_Response callback) { @@ -3297,7 +3297,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } private @Nullable Bundle maybeCreateBrowserOptions() { -@@ -204,16 +175,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -205,16 +176,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon onError(AuthenticatorStatus.NOT_IMPLEMENTED); return; } @@ -3314,7 +3314,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } @Override -@@ -231,11 +192,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -237,11 +198,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon decoratedCallback.call(false); return; } @@ -3326,7 +3326,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } /** -@@ -256,14 +212,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -262,14 +218,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon callback.onResponse(new ArrayList()); return; } @@ -3341,7 +3341,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } @Override -@@ -275,14 +223,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -281,14 +229,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon callback.call(false); return; } @@ -3356,7 +3356,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } @Override -@@ -294,8 +234,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -300,8 +240,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon if (!mIsOperationPending || mGetAssertionCallback == null) { return; } @@ -3365,7 +3365,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } /** Callbacks for receiving responses from the internal handlers. */ -@@ -340,7 +278,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -346,7 +284,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon } else if (mGetAssertionCallback != null) { mGetAssertionCallback.call(status, null, null); } @@ -3373,7 +3373,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut cleanupRequest(); } -@@ -348,13 +285,10 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -354,13 +291,10 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon mIsOperationPending = false; mMakeCredentialCallback = null; mGetAssertionCallback = null; @@ -3521,7 +3521,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut if (responseSerialized == null) { Log.e( TAG, -@@ -416,8 +412,7 @@ public class CredManHelper { +@@ -417,8 +413,7 @@ public class CredManHelper { data.getString( CRED_MAN_PREFIX + "BUNDLE_KEY_AUTHENTICATION_RESPONSE_JSON"); @@ -3531,7 +3531,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut if (responseSerialized == null) { Log.e( TAG, -@@ -597,8 +592,7 @@ public class CredManHelper { +@@ -598,8 +593,7 @@ public class CredManHelper { boolean requestPasswords, boolean preferImmediatelyAvailable, boolean ignoreGpm) { @@ -3568,7 +3568,7 @@ diff --git a/content/browser/push_messaging/push_messaging_manager.cc b/content/ diff --git a/content/public/android/BUILD.gn b/content/public/android/BUILD.gn --- a/content/public/android/BUILD.gn +++ b/content/public/android/BUILD.gn -@@ -150,10 +150,6 @@ android_library("content_full_java") { +@@ -157,10 +157,6 @@ android_library("content_full_java") { ":content_java_resources", ":content_main_dex_java", ":content_util_java", @@ -3582,7 +3582,7 @@ diff --git a/content/public/android/BUILD.gn b/content/public/android/BUILD.gn diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn --- a/content/test/BUILD.gn +++ b/content/test/BUILD.gn -@@ -3551,10 +3551,6 @@ if (is_android) { +@@ -3557,10 +3557,6 @@ if (is_android) { testonly = true sources = content_java_sources_needing_jni deps = [ @@ -3609,7 +3609,7 @@ diff --git a/device/BUILD.gn b/device/BUILD.gn diff --git a/services/BUILD.gn b/services/BUILD.gn --- a/services/BUILD.gn +++ b/services/BUILD.gn -@@ -144,11 +144,6 @@ if (is_android) { +@@ -145,11 +145,6 @@ if (is_android) { "shape_detection/android/junit/src/org/chromium/shape_detection/BitmapUtilsTest.java", ] deps = [ @@ -3621,7 +3621,7 @@ diff --git a/services/BUILD.gn b/services/BUILD.gn "//base:base_java", "//base:base_java_test_support", "//base:base_junit_test_support", -@@ -178,10 +173,6 @@ if (is_android) { +@@ -179,10 +174,6 @@ if (is_android) { "shape_detection/android/javatests/src/org/chromium/shape_detection/TextDetectionImplTest.java", ] deps = [ @@ -3685,14 +3685,13 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. } # TODO(crbug.com/1366370) Remove this once all depencencies are updated to -@@ -737,29 +728,6 @@ if (!limit_android_deps) { +@@ -739,28 +730,6 @@ if (!limit_android_deps) { ] } - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - android_aar_prebuilt("com_android_support_support_core_ui_java") { -- aar_path = -- "libs/com_android_support_support_core_ui/support-core-ui-28.0.0.aar" +- aar_path = "cipd/libs/com_android_support_support_core_ui/support-core-ui-28.0.0.aar" - info_path = "libs/com_android_support_support_core_ui/com_android_support_support_core_ui.info" - enable_bytecode_checks = false - deps = [ @@ -3715,14 +3714,14 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. android_aar_prebuilt( "com_google_android_apps_common_testing_accessibility_framework_accessibility_test_framework_java") { -@@ -781,237 +749,6 @@ if (!limit_android_deps) { +@@ -782,237 +751,6 @@ if (!limit_android_deps) { ] } - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_play_services_auth_java") { -- aar_path = "libs/com_google_android_gms_play_services_auth/play-services-auth-20.1.0.aar" +- aar_path = "cipd/libs/com_google_android_gms_play_services_auth/play-services-auth-20.1.0.aar" - info_path = "libs/com_google_android_gms_play_services_auth/com_google_android_gms_play_services_auth.info" - enable_bytecode_checks = false - deps = [ @@ -3740,7 +3739,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_play_services_auth_api_phone_java") { -- aar_path = "libs/com_google_android_gms_play_services_auth_api_phone/play-services-auth-api-phone-18.0.1.aar" +- aar_path = "cipd/libs/com_google_android_gms_play_services_auth_api_phone/play-services-auth-api-phone-18.0.1.aar" - info_path = "libs/com_google_android_gms_play_services_auth_api_phone/com_google_android_gms_play_services_auth_api_phone.info" - enable_bytecode_checks = false - deps = [ @@ -3754,7 +3753,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_play_services_auth_base_java") { -- aar_path = "libs/com_google_android_gms_play_services_auth_base/play-services-auth-base-18.0.2.aar" +- aar_path = "cipd/libs/com_google_android_gms_play_services_auth_base/play-services-auth-base-18.0.2.aar" - info_path = "libs/com_google_android_gms_play_services_auth_base/com_google_android_gms_play_services_auth_base.info" - enable_bytecode_checks = false - deps = [ @@ -3769,7 +3768,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_play_services_base_java") { -- aar_path = "libs/com_google_android_gms_play_services_base/play-services-base-18.1.0.aar" +- aar_path = "cipd/libs/com_google_android_gms_play_services_base/play-services-base-18.1.0.aar" - info_path = "libs/com_google_android_gms_play_services_base/com_google_android_gms_play_services_base.info" - enable_bytecode_checks = false - deps = [ @@ -3785,7 +3784,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_play_services_basement_java") { -- aar_path = "libs/com_google_android_gms_play_services_basement/play-services-basement-18.1.0.aar" +- aar_path = "cipd/libs/com_google_android_gms_play_services_basement/play-services-basement-18.1.0.aar" - info_path = "libs/com_google_android_gms_play_services_basement/com_google_android_gms_play_services_basement.info" - enable_bytecode_checks = false - deps = [ @@ -3811,7 +3810,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_play_services_cast_java") { -- aar_path = "libs/com_google_android_gms_play_services_cast/play-services-cast-17.0.0.aar" +- aar_path = "cipd/libs/com_google_android_gms_play_services_cast/play-services-cast-17.0.0.aar" - info_path = "libs/com_google_android_gms_play_services_cast/com_google_android_gms_play_services_cast.info" - enable_bytecode_checks = false - deps = [ @@ -3828,7 +3827,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_play_services_cast_framework_java") { -- aar_path = "libs/com_google_android_gms_play_services_cast_framework/play-services-cast-framework-17.0.0.aar" +- aar_path = "cipd/libs/com_google_android_gms_play_services_cast_framework/play-services-cast-framework-17.0.0.aar" - info_path = "libs/com_google_android_gms_play_services_cast_framework/com_google_android_gms_play_services_cast_framework.info" - enable_bytecode_checks = false - deps = [ @@ -3849,7 +3848,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_play_services_gcm_java") { -- aar_path = "libs/com_google_android_gms_play_services_gcm/play-services-gcm-17.0.0.aar" +- aar_path = "cipd/libs/com_google_android_gms_play_services_gcm/play-services-gcm-17.0.0.aar" - info_path = "libs/com_google_android_gms_play_services_gcm/com_google_android_gms_play_services_gcm.info" - enable_bytecode_checks = false - deps = [ @@ -3867,7 +3866,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_play_services_iid_java") { -- aar_path = "libs/com_google_android_gms_play_services_iid/play-services-iid-17.0.0.aar" +- aar_path = "cipd/libs/com_google_android_gms_play_services_iid/play-services-iid-17.0.0.aar" - info_path = "libs/com_google_android_gms_play_services_iid/com_google_android_gms_play_services_iid.info" - enable_bytecode_checks = false - deps = [ @@ -3884,7 +3883,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_play_services_instantapps_java") { -- aar_path = "libs/com_google_android_gms_play_services_instantapps/play-services-instantapps-18.0.1.aar" +- aar_path = "cipd/libs/com_google_android_gms_play_services_instantapps/play-services-instantapps-18.0.1.aar" - info_path = "libs/com_google_android_gms_play_services_instantapps/com_google_android_gms_play_services_instantapps.info" - enable_bytecode_checks = false - deps = [ @@ -3898,7 +3897,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_play_services_location_java") { -- aar_path = "libs/com_google_android_gms_play_services_location/play-services-location-21.0.1.aar" +- aar_path = "cipd/libs/com_google_android_gms_play_services_location/play-services-location-21.0.1.aar" - info_path = "libs/com_google_android_gms_play_services_location/com_google_android_gms_play_services_location.info" - enable_bytecode_checks = false - deps = [ @@ -3912,7 +3911,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_play_services_tasks_java") { -- aar_path = "libs/com_google_android_gms_play_services_tasks/play-services-tasks-18.0.2.aar" +- aar_path = "cipd/libs/com_google_android_gms_play_services_tasks/play-services-tasks-18.0.2.aar" - info_path = "libs/com_google_android_gms_play_services_tasks/com_google_android_gms_play_services_tasks.info" - enable_bytecode_checks = false - deps = @@ -3923,7 +3922,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_play_services_vision_java") { -- aar_path = "libs/com_google_android_gms_play_services_vision/play-services-vision-20.1.3.aar" +- aar_path = "cipd/libs/com_google_android_gms_play_services_vision/play-services-vision-20.1.3.aar" - info_path = "libs/com_google_android_gms_play_services_vision/com_google_android_gms_play_services_vision.info" - enable_bytecode_checks = false - deps = [ @@ -3937,7 +3936,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_play_services_vision_common_java") { -- aar_path = "libs/com_google_android_gms_play_services_vision_common/play-services-vision-common-19.1.3.aar" +- aar_path = "cipd/libs/com_google_android_gms_play_services_vision_common/play-services-vision-common-19.1.3.aar" - info_path = "libs/com_google_android_gms_play_services_vision_common/com_google_android_gms_play_services_vision_common.info" - enable_bytecode_checks = false - deps = [ @@ -3953,14 +3952,14 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. if (!defined(material_design_target)) { android_aar_prebuilt("com_google_android_material_material_java") { -@@ -1060,73 +797,6 @@ if (!limit_android_deps) { +@@ -1060,74 +798,6 @@ if (!limit_android_deps) { } } - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (!defined(playcore_target)) { - android_aar_prebuilt("com_google_android_play_feature_delivery_java") { -- aar_path = "libs/com_google_android_play_feature_delivery/feature-delivery-2.0.1.aar" +- aar_path = "cipd/libs/com_google_android_play_feature_delivery/feature-delivery-2.0.1.aar" - info_path = "libs/com_google_android_play_feature_delivery/com_google_android_play_feature_delivery.info" - enable_bytecode_checks = false - @@ -3978,7 +3977,8 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_firebase_firebase_iid_java") { -- aar_path = "libs/com_google_firebase_firebase_iid/firebase-iid-21.0.1.aar" +- aar_path = +- "cipd/libs/com_google_firebase_firebase_iid/firebase-iid-21.0.1.aar" - info_path = "libs/com_google_firebase_firebase_iid/com_google_firebase_firebase_iid.info" - enable_bytecode_checks = false - deps = [ @@ -4001,7 +4001,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_firebase_firebase_messaging_java") { -- aar_path = "libs/com_google_firebase_firebase_messaging/firebase-messaging-21.0.1.aar" +- aar_path = "cipd/libs/com_google_firebase_firebase_messaging/firebase-messaging-21.0.1.aar" - info_path = "libs/com_google_firebase_firebase_messaging/com_google_firebase_firebase_messaging.info" - enable_bytecode_checks = false - deps = [ @@ -4027,13 +4027,13 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. if (!defined(guava_android_target)) { java_prebuilt("com_google_guava_guava_android_java") { -@@ -1244,20 +914,6 @@ if (!limit_android_deps) { +@@ -1245,20 +915,6 @@ if (!limit_android_deps) { requires_android = true } - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - android_aar_prebuilt("io_grpc_grpc_binder_java") { -- aar_path = "libs/io_grpc_grpc_binder/grpc-binder-1.49.0.aar" +- aar_path = "cipd/libs/io_grpc_grpc_binder/grpc-binder-1.49.0.aar" - info_path = "libs/io_grpc_grpc_binder/io_grpc_grpc_binder.info" - enable_bytecode_checks = false - deps = [ @@ -4047,15 +4047,15 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. java_prebuilt("io_grpc_grpc_context_java") { - jar_path = "libs/io_grpc_grpc_context/grpc-context-1.49.0.jar" -@@ -1897,361 +1553,6 @@ if (!limit_android_deps) { + jar_path = "cipd/libs/io_grpc_grpc_context/grpc-context-1.49.0.jar" +@@ -1907,362 +1563,6 @@ if (!limit_android_deps) { "androidx/*", ] } - - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - android_aar_prebuilt("com_android_support_viewpager_java") { -- aar_path = "libs/com_android_support_viewpager/viewpager-28.0.0.aar" +- aar_path = "cipd/libs/com_android_support_viewpager/viewpager-28.0.0.aar" - info_path = - "libs/com_android_support_viewpager/com_android_support_viewpager.info" - enable_bytecode_checks = false @@ -4076,7 +4076,8 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - java_prebuilt("com_google_android_annotations_java") { -- jar_path = "libs/com_google_android_annotations/annotations-4.1.1.4.jar" +- jar_path = +- "cipd/libs/com_google_android_annotations/annotations-4.1.1.4.jar" - output_name = "com_google_android_annotations" - supports_android = true - enable_bytecode_checks = false @@ -4092,7 +4093,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_android_datatransport_transport_api_java") { -- aar_path = "libs/com_google_android_datatransport_transport_api/transport-api-2.2.1.aar" +- aar_path = "cipd/libs/com_google_android_datatransport_transport_api/transport-api-2.2.1.aar" - info_path = "libs/com_google_android_datatransport_transport_api/com_google_android_datatransport_transport_api.info" - enable_bytecode_checks = false - @@ -4109,7 +4110,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_play_services_clearcut_java") { -- aar_path = "libs/com_google_android_gms_play_services_clearcut/play-services-clearcut-17.0.0.aar" +- aar_path = "cipd/libs/com_google_android_gms_play_services_clearcut/play-services-clearcut-17.0.0.aar" - info_path = "libs/com_google_android_gms_play_services_clearcut/com_google_android_gms_play_services_clearcut.info" - enable_bytecode_checks = false - @@ -4132,7 +4133,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_play_services_cloud_messaging_java") { -- aar_path = "libs/com_google_android_gms_play_services_cloud_messaging/play-services-cloud-messaging-16.0.0.aar" +- aar_path = "cipd/libs/com_google_android_gms_play_services_cloud_messaging/play-services-cloud-messaging-16.0.0.aar" - info_path = "libs/com_google_android_gms_play_services_cloud_messaging/com_google_android_gms_play_services_cloud_messaging.info" - enable_bytecode_checks = false - @@ -4152,7 +4153,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_play_services_flags_java") { -- aar_path = "libs/com_google_android_gms_play_services_flags/play-services-flags-17.0.0.aar" +- aar_path = "cipd/libs/com_google_android_gms_play_services_flags/play-services-flags-17.0.0.aar" - info_path = "libs/com_google_android_gms_play_services_flags/com_google_android_gms_play_services_flags.info" - enable_bytecode_checks = false - @@ -4172,7 +4173,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_play_services_phenotype_java") { -- aar_path = "libs/com_google_android_gms_play_services_phenotype/play-services-phenotype-17.0.0.aar" +- aar_path = "cipd/libs/com_google_android_gms_play_services_phenotype/play-services-phenotype-17.0.0.aar" - info_path = "libs/com_google_android_gms_play_services_phenotype/com_google_android_gms_play_services_phenotype.info" - enable_bytecode_checks = false - @@ -4194,7 +4195,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_play_services_stats_java") { -- aar_path = "libs/com_google_android_gms_play_services_stats/play-services-stats-17.0.0.aar" +- aar_path = "cipd/libs/com_google_android_gms_play_services_stats/play-services-stats-17.0.0.aar" - info_path = "libs/com_google_android_gms_play_services_stats/com_google_android_gms_play_services_stats.info" - enable_bytecode_checks = false - @@ -4213,7 +4214,8 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - android_aar_prebuilt("com_google_android_play_core_common_java") { -- aar_path = "libs/com_google_android_play_core_common/core-common-2.0.2.aar" +- aar_path = +- "cipd/libs/com_google_android_play_core_common/core-common-2.0.2.aar" - info_path = "libs/com_google_android_play_core_common/com_google_android_play_core_common.info" - enable_bytecode_checks = false - @@ -4228,7 +4230,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { - java_prebuilt("google_firebase_firebase_annotations_java") { -- jar_path = "libs/com_google_firebase_firebase_annotations/firebase-annotations-16.0.0.jar" +- jar_path = "cipd/libs/com_google_firebase_firebase_annotations/firebase-annotations-16.0.0.jar" - output_name = "com_google_firebase_firebase_annotations" - supports_android = true - enable_bytecode_checks = false @@ -4245,8 +4247,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_firebase_firebase_common_java") { -- aar_path = -- "libs/com_google_firebase_firebase_common/firebase-common-19.5.0.aar" +- aar_path = "cipd/libs/com_google_firebase_firebase_common/firebase-common-19.5.0.aar" - info_path = "libs/com_google_firebase_firebase_common/com_google_firebase_firebase_common.info" - enable_bytecode_checks = false - @@ -4267,7 +4268,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_firebase_firebase_components_java") { -- aar_path = "libs/com_google_firebase_firebase_components/firebase-components-16.1.0.aar" +- aar_path = "cipd/libs/com_google_firebase_firebase_components/firebase-components-16.1.0.aar" - info_path = "libs/com_google_firebase_firebase_components/com_google_firebase_firebase_components.info" - enable_bytecode_checks = false - @@ -4287,7 +4288,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { - java_prebuilt("google_firebase_firebase_encoders_java") { -- jar_path = "libs/com_google_firebase_firebase_encoders/firebase-encoders-16.1.0.jar" +- jar_path = "cipd/libs/com_google_firebase_firebase_encoders/firebase-encoders-16.1.0.jar" - output_name = "com_google_firebase_firebase_encoders" - supports_android = true - enable_bytecode_checks = false @@ -4308,7 +4309,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_firebase_firebase_encoders_json_java") { -- aar_path = "libs/com_google_firebase_firebase_encoders_json/firebase-encoders-json-17.1.0.aar" +- aar_path = "cipd/libs/com_google_firebase_firebase_encoders_json/firebase-encoders-json-17.1.0.aar" - info_path = "libs/com_google_firebase_firebase_encoders_json/com_google_firebase_firebase_encoders_json.info" - enable_bytecode_checks = false - @@ -4328,7 +4329,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_firebase_firebase_iid_interop_java") { -- aar_path = "libs/com_google_firebase_firebase_iid_interop/firebase-iid-interop-17.0.0.aar" +- aar_path = "cipd/libs/com_google_firebase_firebase_iid_interop/firebase-iid-interop-17.0.0.aar" - info_path = "libs/com_google_firebase_firebase_iid_interop/com_google_firebase_firebase_iid_interop.info" - enable_bytecode_checks = false - @@ -4348,7 +4349,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_firebase_firebase_installations_java") { -- aar_path = "libs/com_google_firebase_firebase_installations/firebase-installations-16.3.5.aar" +- aar_path = "cipd/libs/com_google_firebase_firebase_installations/firebase-installations-16.3.5.aar" - info_path = "libs/com_google_firebase_firebase_installations/com_google_firebase_firebase_installations.info" - enable_bytecode_checks = false - @@ -4371,7 +4372,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt( - "google_firebase_firebase_installations_interop_java") { -- aar_path = "libs/com_google_firebase_firebase_installations_interop/firebase-installations-interop-16.0.1.aar" +- aar_path = "cipd/libs/com_google_firebase_firebase_installations_interop/firebase-installations-interop-16.0.1.aar" - info_path = "libs/com_google_firebase_firebase_installations_interop/com_google_firebase_firebase_installations_interop.info" - enable_bytecode_checks = false - @@ -4392,7 +4393,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt( - "google_firebase_firebase_measurement_connector_java") { -- aar_path = "libs/com_google_firebase_firebase_measurement_connector/firebase-measurement-connector-18.0.0.aar" +- aar_path = "cipd/libs/com_google_firebase_firebase_measurement_connector/firebase-measurement-connector-18.0.0.aar" - info_path = "libs/com_google_firebase_firebase_measurement_connector/com_google_firebase_firebase_measurement_connector.info" - enable_bytecode_checks = false - @@ -4409,14 +4410,14 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. java_prebuilt("com_squareup_javawriter_java") { - jar_path = "libs/com_squareup_javawriter/javawriter-2.1.1.jar" -@@ -2305,33 +1606,6 @@ if (!limit_android_deps) { + jar_path = "cipd/libs/com_squareup_javawriter/javawriter-2.1.1.jar" +@@ -2316,33 +1616,6 @@ if (!limit_android_deps) { deps = [ "//third_party/kotlin_stdlib:kotlin_stdlib_java" ] } - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - java_prebuilt("io_grpc_grpc_core_java") { -- jar_path = "libs/io_grpc_grpc_core/grpc-core-1.49.0.jar" +- jar_path = "cipd/libs/io_grpc_grpc_core/grpc-core-1.49.0.jar" - output_name = "io_grpc_grpc_core" - supports_android = true - enable_bytecode_checks = false @@ -4443,7 +4444,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. java_prebuilt("io_perfmark_perfmark_api_java") { - jar_path = "libs/io_perfmark_perfmark_api/perfmark-api-0.25.0.jar" + jar_path = "cipd/libs/io_perfmark_perfmark_api/perfmark-api-0.25.0.jar" diff --git a/third_party/android_deps/local_modifications/preconditions/javatests/BUILD.gn b/third_party/android_deps/local_modifications/preconditions/javatests/BUILD.gn --- a/third_party/android_deps/local_modifications/preconditions/javatests/BUILD.gn +++ b/third_party/android_deps/local_modifications/preconditions/javatests/BUILD.gn diff --git a/build/patches/Remove-detection-of-captive-portals.patch b/build/patches/Remove-detection-of-captive-portals.patch index ab86766b..0ad1f456 100644 --- a/build/patches/Remove-detection-of-captive-portals.patch +++ b/build/patches/Remove-detection-of-captive-portals.patch @@ -12,7 +12,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/net/profile_network_context_service.cc b/chrome/browser/net/profile_network_context_service.cc --- a/chrome/browser/net/profile_network_context_service.cc +++ b/chrome/browser/net/profile_network_context_service.cc -@@ -383,7 +383,7 @@ void ProfileNetworkContextService::ConfigureNetworkContextParams( +@@ -382,7 +382,7 @@ void ProfileNetworkContextService::ConfigureNetworkContextParams( void ProfileNetworkContextService::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref(embedder_support::kAlternateErrorPagesEnabled, @@ -24,7 +24,7 @@ diff --git a/chrome/browser/net/profile_network_context_service.cc b/chrome/brow diff --git a/chrome/browser/ssl/chrome_security_blocking_page_factory.cc b/chrome/browser/ssl/chrome_security_blocking_page_factory.cc --- a/chrome/browser/ssl/chrome_security_blocking_page_factory.cc +++ b/chrome/browser/ssl/chrome_security_blocking_page_factory.cc -@@ -101,20 +101,6 @@ bool IsEnterpriseManaged() { +@@ -102,20 +102,6 @@ bool IsEnterpriseManaged() { // CaptivePortalBlockingPage to be invoked when the user has pressed the // connect button. void OpenLoginPage(content::WebContents* web_contents) { diff --git a/build/patches/Remove-help-menu-item.patch b/build/patches/Remove-help-menu-item.patch index 6431167c..702bd629 100644 --- a/build/patches/Remove-help-menu-item.patch +++ b/build/patches/Remove-help-menu-item.patch @@ -29,7 +29,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml --- a/chrome/android/java/res/menu/main_menu.xml +++ b/chrome/android/java/res/menu/main_menu.xml -@@ -152,9 +152,6 @@ found in the LICENSE file. +@@ -155,9 +155,6 @@ found in the LICENSE file. @@ -53,7 +53,7 @@ diff --git a/chrome/android/java/res/menu/save_password_preferences_action_bar_m diff --git a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java --- a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java -@@ -464,9 +464,6 @@ public class KeyboardShortcuts { +@@ -463,9 +463,6 @@ public class KeyboardShortcuts { case KeyEvent.KEYCODE_BUTTON_START: if (currentTab != null && currentTab.canGoForward()) currentTab.goForward(); return true; @@ -66,7 +66,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcu diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -2612,15 +2612,6 @@ public abstract class ChromeActivity +@@ -2533,15 +2533,6 @@ public abstract class ChromeActivity final Tab currentTab = getActivityTab(); @@ -80,12 +80,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv - } - if (id == R.id.open_history_menu_id) { - // 'currentTab' could only be null when opening history from start surface, which is - // not available on tablet. + if (currentTab != null && UrlUtilities.isNtpUrl(currentTab.getUrl())) { + NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_HISTORY_MANAGER); diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java --- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java -@@ -101,6 +101,7 @@ public class AutofillPaymentMethodsFragment extends ChromeBaseSettingsFragment +@@ -102,6 +102,7 @@ public class AutofillPaymentMethodsFragment extends ChromeBaseSettingsFragment MenuItem help = menu.add(Menu.NONE, R.id.menu_id_targeted_help, Menu.NONE, R.string.menu_help); help.setIcon(R.drawable.ic_help_and_feedback); @@ -107,7 +107,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settin diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java --- a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java -@@ -892,6 +892,7 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat +@@ -893,6 +893,7 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat TraceEventVectorDrawableCompat.create( getResources(), R.drawable.ic_help_and_feedback, getActivity().getTheme())); help.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); @@ -118,7 +118,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java -@@ -762,7 +762,6 @@ public abstract class BaseCustomTabActivity extends ChromeActivity { @@ -63,7 +63,7 @@ diff --git a/chrome/android/features/start_surface/java/src/org/chromium/chrome/ }); mPropertyModel.set( -@@ -1056,13 +1043,6 @@ class StartSurfaceMediator +@@ -941,13 +928,6 @@ class StartSurfaceMediator ThreadUtils.postOnUiThread( () -> { if (mOmniboxStub != null) { @@ -124,7 +124,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImpl; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; -@@ -125,7 +124,6 @@ public class NewTabPage +@@ -121,7 +120,6 @@ public class NewTabPage TemplateUrlServiceObserver, BrowserControlsStateProvider.Observer, FeedSurfaceDelegate, @@ -132,7 +132,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. ModuleDelegateHost { private static final String TAG = "NewTabPage"; -@@ -155,7 +153,6 @@ public class NewTabPage +@@ -151,7 +149,6 @@ public class NewTabPage protected boolean mSearchProviderHasLogo; protected OmniboxStub mOmniboxStub; @@ -140,7 +140,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. // The timestamp at which the constructor was called. protected final long mConstructedTimeNs; -@@ -257,8 +254,7 @@ public class NewTabPage +@@ -252,8 +249,7 @@ public class NewTabPage @Override public boolean isVoiceSearchEnabled() { @@ -150,7 +150,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. } @Override -@@ -266,24 +262,6 @@ public class NewTabPage +@@ -261,24 +257,6 @@ public class NewTabPage if (mIsDestroyed) return; FeedReliabilityLogger feedReliabilityLogger = mFeedSurfaceProvider.getReliabilityLogger(); @@ -175,7 +175,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. } @Override -@@ -864,12 +842,6 @@ public class NewTabPage +@@ -851,12 +829,6 @@ public class NewTabPage mOmniboxStub.addUrlFocusChangeListener(feedReliabilityLogger); } } @@ -188,7 +188,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. } @Override -@@ -880,11 +852,6 @@ public class NewTabPage +@@ -867,11 +839,6 @@ public class NewTabPage } } @@ -200,7 +200,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. /** Adds an observer to be notified on most visited tile clicks. */ public void addMostVisitedTileClickObserver(MostVisitedTileClickObserver observer) { mMostVisitedTileClickObservers.addObserver(observer); -@@ -996,9 +963,6 @@ public class NewTabPage +@@ -983,9 +950,6 @@ public class NewTabPage } mFeedSurfaceProvider.destroy(); mTab.getWindowAndroid().removeContextMenuCloseListener(mContextMenuManager); @@ -232,7 +232,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarManageable; import org.chromium.chrome.browser.ui.native_page.NativePage; -@@ -328,7 +327,7 @@ public class SearchActivity extends AsyncInitializationActivity +@@ -326,7 +325,7 @@ public class SearchActivity extends AsyncInitializationActivity /*omniboxUma*/ (url, transition, isNtp) -> {}, TabWindowManagerSingleton::getInstance, /* bookmarkState= */ (url) -> false, @@ -269,15 +269,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java -@@ -95,7 +95,6 @@ import org.chromium.chrome.browser.omnibox.OmniboxStub; - import org.chromium.chrome.browser.omnibox.OverrideUrlLoadingDelegate; +@@ -89,7 +89,6 @@ import org.chromium.chrome.browser.omnibox.OmniboxFocusReason; + import org.chromium.chrome.browser.omnibox.OmniboxStub; import org.chromium.chrome.browser.omnibox.UrlFocusChangeListener; import org.chromium.chrome.browser.omnibox.suggestions.OmniboxSuggestionsDropdownScrollListener; -import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; import org.chromium.chrome.browser.page_info.ChromePageInfo; import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations; import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; -@@ -2596,10 +2595,6 @@ public class ToolbarManager +@@ -2410,10 +2409,6 @@ public class ToolbarManager return mLocationBar.getOmniboxStub(); } @@ -291,7 +291,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/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 -@@ -94,8 +94,6 @@ import org.chromium.chrome.browser.messages.MessagesResourceMapperInitializer; +@@ -96,8 +96,6 @@ import org.chromium.chrome.browser.messages.MessagesResourceMapperInitializer; import org.chromium.chrome.browser.omnibox.OmniboxFocusReason; import org.chromium.chrome.browser.omnibox.geo.GeolocationHeader; import org.chromium.chrome.browser.omnibox.suggestions.action.OmniboxActionDelegateImpl; @@ -300,7 +300,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi import org.chromium.chrome.browser.paint_preview.DemoPaintPreview; import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer; import org.chromium.chrome.browser.password_manager.PasswordManagerLauncher; -@@ -135,7 +133,6 @@ import org.chromium.chrome.browser.theme.TopUiThemeColorProvider; +@@ -140,7 +138,6 @@ import org.chromium.chrome.browser.theme.TopUiThemeColorProvider; import org.chromium.chrome.browser.toolbar.ButtonDataProvider; import org.chromium.chrome.browser.toolbar.ToolbarIntentMetadata; import org.chromium.chrome.browser.toolbar.ToolbarManager; @@ -308,15 +308,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi import org.chromium.chrome.browser.toolbar.adaptive.AdaptiveButtonActionMenuCoordinator; import org.chromium.chrome.browser.toolbar.adaptive.AdaptiveToolbarButtonController; import org.chromium.chrome.browser.toolbar.adaptive.AdaptiveToolbarButtonVariant; -@@ -296,7 +293,6 @@ public class RootUiCoordinator +@@ -305,7 +302,6 @@ public class RootUiCoordinator + private LayoutManagerImpl mLayoutManager; protected OneshotSupplier mIntentMetadataOneshotSupplier; protected OneshotSupplierImpl mPromoShownOneshotSupplier = new OneshotSupplierImpl<>(); - protected Supplier mStartSurfaceParentTabSupplier; - @Nullable private VoiceRecognitionHandler.Observer mMicStateObserver; private MediaCaptureOverlayController mCaptureController; private @Nullable ScrollCaptureManager mScrollCaptureManager; protected final ActivityLifecycleDispatcher mActivityLifecycleDispatcher; -@@ -653,9 +649,6 @@ public class RootUiCoordinator +@@ -641,9 +637,6 @@ public class RootUiCoordinator } if (mToolbarManager != null) { @@ -326,7 +326,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi mToolbarManager.destroy(); mToolbarManager = null; } -@@ -1323,39 +1316,12 @@ public class RootUiCoordinator +@@ -1438,39 +1431,12 @@ public class RootUiCoordinator () -> mToolbarManager.setUrlBarFocus( false, OmniboxFocusReason.UNFOCUS)); @@ -366,7 +366,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi OptionalNewTabButtonController newTabButtonController = new OptionalNewTabButtonController( mActivity, -@@ -1385,8 +1351,6 @@ public class RootUiCoordinator +@@ -1500,8 +1466,6 @@ public class RootUiCoordinator AdaptiveToolbarButtonVariant.NEW_TAB, newTabButtonController); adaptiveToolbarButtonController.addButtonVariant( AdaptiveToolbarButtonVariant.SHARE, shareButtonController); @@ -375,7 +375,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi adaptiveToolbarButtonController.addButtonVariant( AdaptiveToolbarButtonVariant.ADD_TO_BOOKMARKS, addToBookmarksToolbarButtonController); -@@ -1504,13 +1468,6 @@ public class RootUiCoordinator +@@ -1617,13 +1581,6 @@ public class RootUiCoordinator if (!mSupportsAppMenuSupplier.getAsBoolean()) { mToolbarManager.getToolbar().disableMenuButton(); } @@ -392,7 +392,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/android/omnibox/BUILD.gn --- a/chrome/browser/ui/android/omnibox/BUILD.gn +++ b/chrome/browser/ui/android/omnibox/BUILD.gn -@@ -145,7 +145,6 @@ android_library("java") { +@@ -146,7 +146,6 @@ android_library("java") { "java/src/org/chromium/chrome/browser/omnibox/suggestions/tail/TailSuggestionView.java", "java/src/org/chromium/chrome/browser/omnibox/suggestions/tail/TailSuggestionViewBinder.java", "java/src/org/chromium/chrome/browser/omnibox/suggestions/tail/TailSuggestionViewProperties.java", @@ -434,7 +434,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManager; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; -@@ -468,13 +467,6 @@ public class LocationBarCoordinator +@@ -467,13 +466,6 @@ public class LocationBarCoordinator return mLocationBarLayout.getSecurityIconView(); } @@ -448,7 +448,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow @Nullable @Override public OmniboxStub getOmniboxStub() { -@@ -771,11 +763,6 @@ public class LocationBarCoordinator +@@ -758,11 +750,6 @@ public class LocationBarCoordinator // End tablet-specific methods. @@ -471,7 +471,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.components.browser_ui.widget.CompositeTouchDelegate; import org.chromium.components.embedder_support.util.UrlUtilities; import org.chromium.ui.base.DeviceFormFactor; -@@ -590,11 +589,6 @@ public class LocationBarLayout extends FrameLayout { +@@ -557,11 +556,6 @@ public class LocationBarLayout extends FrameLayout { mSearchEngineUtils = searchEngineUtils; } @@ -494,7 +494,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.prefetch.settings.PreloadPagesSettingsBridge; import org.chromium.chrome.browser.prefetch.settings.PreloadPagesState; import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManager; -@@ -94,8 +93,6 @@ import java.util.function.BooleanSupplier; +@@ -95,8 +94,6 @@ import java.util.function.BooleanSupplier; class LocationBarMediator implements LocationBarDataProvider.Observer, OmniboxStub, @@ -503,7 +503,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow UrlBarDelegate, OnKeyListener, ComponentCallbacks, -@@ -160,7 +157,6 @@ class LocationBarMediator +@@ -161,7 +158,6 @@ class LocationBarMediator }; private final LocationBarLayout mLocationBarLayout; @@ -511,7 +511,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow private final LocationBarDataProvider mLocationBarDataProvider; private final LocationBarEmbedderUiOverrides mEmbedderUiOverrides; private StatusCoordinator mStatusCoordinator; -@@ -236,8 +232,6 @@ class LocationBarMediator +@@ -237,8 +233,6 @@ class LocationBarMediator mEmbedderUiOverrides = embedderUiOverrides; mOverrideUrlLoadingDelegate = overrideUrlLoadingDelegate; mLocaleManager = localeManager; @@ -520,16 +520,17 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow mProfileSupplier = profileSupplier; mProfileSupplier.addObserver(mCallbackController.makeCancelable(this::setProfile)); mPrivacyPreferencesManager = privacyPreferencesManager; -@@ -282,8 +276,6 @@ class LocationBarMediator +@@ -283,9 +277,6 @@ class LocationBarMediator mAutocompleteCoordinator = null; mUrlCoordinator = null; mPrivacyPreferencesManager = null; - mVoiceRecognitionHandler.removeObserver(this); +- mVoiceRecognitionHandler.destroy(); - mVoiceRecognitionHandler = null; mLocationBarDataProvider.removeObserver(this); mDeferredNativeRunnables.clear(); mUrlFocusChangeListeners.clear(); -@@ -417,11 +409,6 @@ class LocationBarMediator +@@ -413,11 +404,6 @@ class LocationBarMediator mLocationBarLayout.setUnfocusedWidth(unfocusedWidth); } @@ -541,7 +542,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow /* package */ void setLensControllerForTesting(LensController lensController) { mLensController = lensController; } -@@ -676,10 +663,6 @@ class LocationBarMediator +@@ -681,10 +667,6 @@ class LocationBarMediator // Hide keyboard before launch voice search to avoid keyboard action announcement in // TalkBack to be picked up by voice search. mUrlCoordinator.setKeyboardVisibility(false, false); @@ -552,7 +553,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow } /** package */ -@@ -1153,10 +1136,7 @@ class LocationBarMediator +@@ -1158,10 +1140,7 @@ class LocationBarMediator private boolean shouldShowMicButton() { if (shouldShowDeleteButton()) return false; @@ -564,7 +565,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow return false; } boolean isToolbarMicEnabled = mIsToolbarMicEnabledSupplier.getAsBoolean(); -@@ -1173,6 +1153,7 @@ class LocationBarMediator +@@ -1178,6 +1157,7 @@ class LocationBarMediator } private boolean shouldShowLensButton() { @@ -572,24 +573,19 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow if (shouldShowDeleteButton()) return false; // When this method is called on UI inflation, return false as the native is not ready. -@@ -1391,16 +1372,6 @@ class LocationBarMediator +@@ -1396,11 +1376,6 @@ class LocationBarMediator } } - @Override - public @Nullable VoiceRecognitionHandler getVoiceRecognitionHandler() { -- // TODO(crbug.com/40153763): StartSurfaceMediator can call this method after destroy(). -- if (mLocationBarLayout == null) { -- return null; -- } -- - return mVoiceRecognitionHandler; - } - @Override public void addUrlFocusChangeListener(UrlFocusChangeListener listener) { mUrlFocusChangeListeners.addObserver(listener); -@@ -1416,31 +1387,13 @@ class LocationBarMediator +@@ -1416,31 +1391,13 @@ class LocationBarMediator return mUrlHasFocus; } @@ -623,7 +619,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow public void setSearchQuery(String query) { if (TextUtils.isEmpty(query)) return; -@@ -1463,20 +1416,6 @@ class LocationBarMediator +@@ -1463,20 +1420,6 @@ class LocationBarMediator mUrlCoordinator.setKeyboardVisibility(true, false); } @@ -673,15 +669,15 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteController.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteController.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteController.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteController.java -@@ -14,7 +14,6 @@ import org.jni_zero.JniType; - import org.jni_zero.NativeMethods; +@@ -15,7 +15,6 @@ import org.jni_zero.NativeMethods; import org.chromium.chrome.browser.omnibox.OmniboxMetrics; + import org.chromium.chrome.browser.omnibox.suggestions.action.OmniboxAnswerAction; -import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler.VoiceResult; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.tab.Tab; import org.chromium.components.omnibox.AutocompleteMatch; -@@ -334,25 +333,6 @@ public class AutocompleteController { +@@ -335,25 +334,6 @@ public class AutocompleteController { mNativeController, match.getNativeObjectRef(), matchIndex, webContents); } @@ -707,7 +703,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow /** * Updates searchbox stats parameters on the selected match that we will navigate to and * returns the updated URL. -@@ -473,11 +453,6 @@ public class AutocompleteController { +@@ -501,11 +481,6 @@ public class AutocompleteController { Tab getMatchingTabForSuggestion( long nativeAutocompleteControllerAndroid, long nativeAutocompleteMatch); @@ -722,15 +718,15 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java -@@ -44,7 +44,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.header.HeaderView; - import org.chromium.chrome.browser.omnibox.suggestions.header.HeaderViewBinder; - import org.chromium.chrome.browser.omnibox.suggestions.tail.TailSuggestionView; - import org.chromium.chrome.browser.omnibox.suggestions.tail.TailSuggestionViewBinder; +@@ -30,7 +30,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteController.On + import org.chromium.chrome.browser.omnibox.suggestions.SuggestionListViewBinder.SuggestionListViewHolder; + import org.chromium.chrome.browser.omnibox.suggestions.base.BaseSuggestionViewBinder; + import org.chromium.chrome.browser.omnibox.suggestions.basic.BasicSuggestionProcessor.BookmarkState; -import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.share.ShareDelegate; import org.chromium.chrome.browser.tab.Tab; -@@ -372,13 +371,6 @@ public class AutocompleteCoordinator +@@ -289,13 +288,6 @@ public class AutocompleteCoordinator mRecycledViewPool.ifPresent(p -> p.onNativeInitialized()); } @@ -772,7 +768,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/toolbar/BUILD.gn b/chrome/browser/ui/android/toolbar/BUILD.gn --- a/chrome/browser/ui/android/toolbar/BUILD.gn +++ b/chrome/browser/ui/android/toolbar/BUILD.gn -@@ -36,7 +36,6 @@ android_library("java") { +@@ -34,7 +34,6 @@ android_library("java") { "java/src/org/chromium/chrome/browser/toolbar/ToolbarProgressBarAnimatingView.java", "java/src/org/chromium/chrome/browser/toolbar/ToolbarTabController.java", "java/src/org/chromium/chrome/browser/toolbar/ToolbarTabControllerImpl.java", diff --git a/build/patches/Remove-window-name-on-cross-origin-navigation.patch b/build/patches/Remove-window-name-on-cross-origin-navigation.patch index 7d938749..b760a048 100644 --- a/build/patches/Remove-window-name-on-cross-origin-navigation.patch +++ b/build/patches/Remove-window-name-on-cross-origin-navigation.patch @@ -21,7 +21,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc --- a/third_party/blink/renderer/core/loader/document_loader.cc +++ b/third_party/blink/renderer/core/loader/document_loader.cc -@@ -2808,7 +2808,7 @@ void DocumentLoader::CommitNavigation() { +@@ -2834,7 +2834,7 @@ void DocumentLoader::CommitNavigation() { // that the name would be nulled and if the name is accessed after we will // fire a UseCounter. If we decide to move forward with this change, we'd // actually clean the name here. @@ -30,7 +30,7 @@ diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_p frame_->Tree().ExperimentalSetNulledName(); } -@@ -2819,6 +2819,7 @@ void DocumentLoader::CommitNavigation() { +@@ -2845,6 +2845,7 @@ void DocumentLoader::CommitNavigation() { // TODO(shuuran): CrossSiteCrossBrowsingContextGroupSetNulledName will just // record the fact that the name would be nulled and if the name is accessed // after we will fire a UseCounter. diff --git a/build/patches/Restore-LastTabStandingTracker.patch b/build/patches/Restore-LastTabStandingTracker.patch index a8dd5bca..5adcda44 100644 --- a/build/patches/Restore-LastTabStandingTracker.patch +++ b/build/patches/Restore-LastTabStandingTracker.patch @@ -27,7 +27,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -1935,6 +1935,16 @@ static_library("browser") { +@@ -1958,6 +1958,16 @@ static_library("browser") { ] } @@ -55,8 +55,8 @@ diff --git a/chrome/browser/content_settings/host_content_settings_map_factory.c #include "chrome/browser/profiles/off_the_record_profile_impl.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile_key.h" -@@ -56,6 +57,7 @@ HostContentSettingsMapFactory::HostContentSettingsMapFactory() - .WithGuest(ProfileSelection::kOwnInstance) +@@ -59,6 +60,7 @@ HostContentSettingsMapFactory::HostContentSettingsMapFactory() + .WithAshInternals(ProfileSelection::kOwnInstance) .Build()) { DependsOn(SupervisedUserSettingsServiceFactory::GetInstance()); + DependsOn(LastTabStandingTrackerFactory::GetInstance()); @@ -381,7 +381,7 @@ new file mode 100644 diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc -@@ -114,6 +114,7 @@ +@@ -120,6 +120,7 @@ #include "chrome/browser/password_manager/password_reuse_manager_factory.h" #include "chrome/browser/password_manager/profile_password_store_factory.h" #include "chrome/browser/permissions/adaptive_quiet_notification_permission_ui_enabler.h" @@ -389,7 +389,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc #include "chrome/browser/permissions/notifications_engagement_service_factory.h" #include "chrome/browser/permissions/one_time_permissions_tracker_factory.h" #include "chrome/browser/permissions/origin_keyed_permission_action_service_factory.h" -@@ -1006,6 +1007,7 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -1023,6 +1024,7 @@ void ChromeBrowserMainExtraPartsProfiles:: #if BUILDFLAG(BUILD_WITH_TFLITE_LIB) OnDeviceTailModelServiceFactory::GetInstance(); #endif @@ -408,7 +408,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc #include "chrome/browser/permissions/one_time_permissions_tracker_helper.h" #include "chrome/browser/predictors/loading_predictor_factory.h" #include "chrome/browser/predictors/loading_predictor_tab_helper.h" -@@ -421,6 +422,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -419,6 +420,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { HistoryEmbeddingsTabHelper::CreateForWebContents(web_contents); HttpsOnlyModeTabHelper::CreateForWebContents(web_contents); webapps::InstallableManager::CreateForWebContents(web_contents); diff --git a/build/patches/Restore-Search-Ready-Omnibox-flag.patch b/build/patches/Restore-Search-Ready-Omnibox-flag.patch index fb28aea1..c6551b67 100644 --- a/build/patches/Restore-Search-Ready-Omnibox-flag.patch +++ b/build/patches/Restore-Search-Ready-Omnibox-flag.patch @@ -23,24 +23,24 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -268,6 +268,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -280,6 +280,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kReaderModeInCCT, &kRecordSuppressionMetrics, &kReengagementNotification, + &kSearchReadyOmniboxFeature, &kRelatedSearchesAllLanguage, &kReportParentalControlSitesChild, - &kSearchEnginesPromoV3, + &kSearchInCCT, 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 -@@ -351,6 +351,7 @@ public abstract class ChromeFeatureList { +@@ -358,6 +358,7 @@ public abstract class ChromeFeatureList { public static final String MAYLAUNCHURL_USES_SEPARATE_STORAGE_PARTITION = "MayLaunchUrlUsesSeparateStoragePartition"; public static final String MESSAGES_FOR_ANDROID_ADS_BLOCKED = "MessagesForAndroidAdsBlocked"; + public static final String SEARCH_READY_OMNIBOX = "SearchReadyOmnibox"; - public static final String MIGRATE_ACCOUNT_MANAGEMENT_SETTINGS_TO_CAPABILITIES = - "MigrateAccountManagementSettingsToCapabilities"; + public static final String MOST_VISITED_TILES_SELECT_EXISTING_TAB = + "MostVisitedTilesSelectExistingTab"; public static final String MUlTI_INSTANCE_APPLICATION_STATUS_CLEANUP = diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder.java diff --git a/build/patches/Restore-Simplified-NTP-launch.patch b/build/patches/Restore-Simplified-NTP-launch.patch index c9161bb5..8e09d7f7 100644 --- a/build/patches/Restore-Simplified-NTP-launch.patch +++ b/build/patches/Restore-Simplified-NTP-launch.patch @@ -16,7 +16,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../feedback/ChromeFeedbackCollector.java | 1 + .../feedback/SimplifiedNtpFeedbackSource.java | 38 ++++ .../identity_disc/IdentityDiscController.java | 5 +- - .../NativePageNavigationDelegateImpl.java | 4 +- + .../NativePageNavigationDelegateImpl.java | 2 +- .../chrome/browser/ntp/NewTabPageLayout.java | 25 ++- .../SuggestionsNavigationDelegate.java | 17 ++ .../mostvisited/MostVisitedSitesBridge.java | 2 +- @@ -30,7 +30,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../Restore-Simplified-NTP-launch.inc | 12 ++ .../Restore-Simplified-NTP-launch.inc | 6 + .../Restore-Simplified-NTP-launch.inc | 1 + - 24 files changed, 397 insertions(+), 31 deletions(-) + 24 files changed, 396 insertions(+), 30 deletions(-) create mode 100644 chrome/android/java/res/layout/ntp_shortcuts.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/feedback/SimplifiedNtpFeedbackSource.java create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesGridLayout.java @@ -52,7 +52,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 -@@ -622,6 +622,7 @@ chrome_java_sources = [ +@@ -623,6 +623,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/feedback/FeedFeedbackCollector.java", "java/src/org/chromium/chrome/browser/feedback/HelpAndFeedbackLauncherImpl.java", "java/src/org/chromium/chrome/browser/feedback/ScreenshotTask.java", @@ -60,7 +60,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java "java/src/org/chromium/chrome/browser/findinpage/FindToolbar.java", "java/src/org/chromium/chrome/browser/findinpage/FindToolbarManager.java", "java/src/org/chromium/chrome/browser/findinpage/FindToolbarObserver.java", -@@ -1058,6 +1059,7 @@ chrome_java_sources = [ +@@ -1054,6 +1055,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesMetadataUtils.java", "java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesCoordinator.java", "java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesLayout.java", @@ -194,7 +194,7 @@ diff --git a/chrome/android/java/res/values/attrs.xml b/chrome/android/java/res/ diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res/values/dimens.xml --- a/chrome/android/java/res/values/dimens.xml +++ b/chrome/android/java/res/values/dimens.xml -@@ -129,6 +129,8 @@ found in the LICENSE file. +@@ -127,6 +127,8 @@ found in the LICENSE file. 62dp @@ -260,7 +260,7 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/IdentityDiscController.java b/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/IdentityDiscController.java --- a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/IdentityDiscController.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/IdentityDiscController.java -@@ -169,7 +169,10 @@ public class IdentityDiscController +@@ -153,7 +153,10 @@ public class IdentityDiscController mButtonData.setButtonSpec( buttonSpecWithDrawableAndDescription(mButtonData.getButtonSpec(), email)); @@ -275,23 +275,19 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/I diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageNavigationDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageNavigationDelegateImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageNavigationDelegateImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageNavigationDelegateImpl.java -@@ -29,10 +29,10 @@ import java.util.List; +@@ -30,7 +30,7 @@ import java.util.List; /** {@link NativePageNavigationDelegate} implementation. */ public class NativePageNavigationDelegateImpl implements NativePageNavigationDelegate { - private final Profile mProfile; + protected final Profile mProfile; - private final TabModelSelector mTabModelSelector; private final TabGroupCreationDialogManager mTabGroupCreationDialogManager; -- private final Tab mTab; -+ protected final Tab mTab; - protected final Activity mActivity; - protected final NativePageHost mHost; + protected final TabModelSelector mTabModelSelector; diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java -@@ -16,6 +16,7 @@ import android.text.Editable; +@@ -15,6 +15,7 @@ import android.text.Editable; import android.util.AttributeSet; import android.view.DragEvent; import android.view.LayoutInflater; @@ -299,15 +295,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; -@@ -32,6 +33,7 @@ import org.chromium.base.supplier.ObservableSupplier; - import org.chromium.chrome.R; +@@ -32,6 +33,7 @@ import org.chromium.chrome.R; import org.chromium.chrome.browser.feed.FeedSurfaceScrollDelegate; + import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.lens.LensEntryPoint; +import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.lens.LensMetrics; import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher; import org.chromium.chrome.browser.logo.LogoBridge.Logo; -@@ -92,6 +94,8 @@ public class NewTabPageLayout extends LinearLayout { +@@ -89,6 +91,8 @@ public class NewTabPageLayout extends LinearLayout { private @Nullable DisplayStyleObserver mDisplayStyleObserver; private CallbackController mCallbackController = new CallbackController(); @@ -316,7 +312,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL /** * Whether the tiles shown in the layout have finished loading. * With {@link #mHasShownView}, it's one of the 2 flags used to track initialisation progress. -@@ -104,7 +108,7 @@ public class NewTabPageLayout extends LinearLayout { +@@ -101,7 +105,7 @@ public class NewTabPageLayout extends LinearLayout { */ private boolean mHasShownView; @@ -325,15 +321,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL private boolean mSearchProviderIsGoogle; private boolean mShowingNonStandardGoogleLogo; -@@ -278,6 +282,7 @@ public class NewTabPageLayout extends LinearLayout { +@@ -272,6 +276,7 @@ public class NewTabPageLayout extends LinearLayout { + initializeLogoCoordinator(searchProviderHasLogo, searchProviderIsGoogle); initializeMostVisitedTilesCoordinator( mProfile, lifecycleDispatcher, tileGroupDelegate, touchEnabledDelegate); - initializeSearchBoxBackground(); + initializeShortcuts(); initializeSearchBoxTextView(); initializeVoiceSearchButton(); initializeLensButton(); -@@ -645,7 +650,7 @@ public class NewTabPageLayout extends LinearLayout { +@@ -610,7 +615,7 @@ public class NewTabPageLayout extends LinearLayout { && mInitialized) { return; } @@ -341,8 +337,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL + mSearchProviderHasLogo = false; mSearchProviderIsGoogle = isGoogle; - boolean isSearchProviderMarginUpdated = -@@ -1017,6 +1022,22 @@ public class NewTabPageLayout extends LinearLayout { + if (!mSearchProviderIsGoogle) { +@@ -945,6 +950,22 @@ public class NewTabPageLayout extends LinearLayout { return mMostVisitedTilesCoordinator; } @@ -368,7 +364,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsNavigationDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsNavigationDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsNavigationDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsNavigationDelegate.java -@@ -15,6 +15,11 @@ import org.chromium.chrome.browser.ui.native_page.NativePageHost; +@@ -18,6 +18,11 @@ import org.chromium.chrome.browser.ui.native_page.NativePageHost; import org.chromium.content_public.browser.LoadUrlParams; import org.chromium.ui.base.PageTransition; @@ -380,7 +376,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/Sug /** Extension of {@link NativePageNavigationDelegate} with suggestions-specific methods. */ public class SuggestionsNavigationDelegate extends NativePageNavigationDelegateImpl { public SuggestionsNavigationDelegate( -@@ -27,6 +32,18 @@ public class SuggestionsNavigationDelegate extends NativePageNavigationDelegateI +@@ -30,6 +35,18 @@ public class SuggestionsNavigationDelegate extends NativePageNavigationDelegateI super(activity, profile, host, tabModelSelector, tabGroupCreationDialogManager, tab); } @@ -696,38 +692,38 @@ diff --git a/chrome/browser/engagement/important_sites_util.cc b/chrome/browser/ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -240,6 +240,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { - &kGcmNativeBackgroundTask, +@@ -247,6 +247,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { + &kGtsCloseTabAnimation, &kIncognitoReauthenticationForAndroid, &kIncognitoScreenshot, + &kSimplifiedNTP, &kLensOnQuickActionSearchWidget, &kLogoPolish, - &kMagicStackAndroid, + &kLogoPolishAnimationKillSwitch, 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 -@@ -353,6 +353,7 @@ public abstract class ChromeFeatureList { +@@ -360,6 +360,7 @@ public abstract class ChromeFeatureList { public static final String MAYLAUNCHURL_USES_SEPARATE_STORAGE_PARTITION = "MayLaunchUrlUsesSeparateStoragePartition"; public static final String MESSAGES_FOR_ANDROID_ADS_BLOCKED = "MessagesForAndroidAdsBlocked"; + public static final String SIMPLIFIED_NTP = "SimplifiedNTP"; public static final String SEARCH_READY_OMNIBOX = "SearchReadyOmnibox"; - public static final String MIGRATE_ACCOUNT_MANAGEMENT_SETTINGS_TO_CAPABILITIES = - "MigrateAccountManagementSettingsToCapabilities"; -@@ -629,7 +630,7 @@ public abstract class ChromeFeatureList { - public static final CachedFlag sIncognitoReauthenticationForAndroid = - newCachedFlag(INCOGNITO_REAUTHENTICATION_FOR_ANDROID, true); - public static final CachedFlag sLogoPolish = newCachedFlag(LOGO_POLISH, false); + public static final String MOST_VISITED_TILES_SELECT_EXISTING_TAB = + "MostVisitedTilesSelectExistingTab"; +@@ -650,7 +651,7 @@ public abstract class ChromeFeatureList { + public static final CachedFlag sLogoPolish = newCachedFlag(LOGO_POLISH, true); + public static final CachedFlag sLogoPolishAnimationKillSwitch = + newCachedFlag(LOGO_POLISH_ANIMATION_KILL_SWITCH, true); - public static final CachedFlag sMagicStackAndroid = newCachedFlag(MAGIC_STACK_ANDROID, true); + public static final CachedFlag sMagicStackAndroid = newCachedFlag(MAGIC_STACK_ANDROID, false); + public static final CachedFlag sMostVisitedTilesSelectExistingTab = + newCachedFlag(MOST_VISITED_TILES_SELECT_EXISTING_TAB, false); public static final CachedFlag sMultiInstanceApplicationStatusCleanup = - newCachedFlag(MUlTI_INSTANCE_APPLICATION_STATUS_CLEANUP, false); - public static final CachedFlag sNavBarColorMatchesTabBackground = -@@ -662,7 +663,7 @@ public abstract class ChromeFeatureList { +@@ -684,7 +685,7 @@ public abstract class ChromeFeatureList { + newCachedFlag(SMALLER_TAB_STRIP_TITLE_LIMIT, true); + public static final CachedFlag sStartSurfaceReturnTime = newCachedFlag(START_SURFACE_RETURN_TIME, true); - public static final CachedFlag sStopAppIndexingReport = - newCachedFlag(STOP_APP_INDEXING_REPORT, true); - public static final CachedFlag sSurfacePolish = newCachedFlag(SURFACE_POLISH, true); + public static final CachedFlag sSurfacePolish = newCachedFlag(SURFACE_POLISH, false); public static final CachedFlag sSurfacePolishForToolbarKillSwitch = diff --git a/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch b/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch index 5c857deb..49b86fd9 100644 --- a/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch +++ b/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch @@ -26,7 +26,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java -@@ -50,6 +50,7 @@ import org.chromium.chrome.browser.sync.settings.ManageSyncSettings; +@@ -52,6 +52,7 @@ import org.chromium.chrome.browser.sync.settings.ManageSyncSettings; import org.chromium.chrome.browser.sync.settings.SignInPreference; import org.chromium.chrome.browser.sync.settings.SyncPromoPreference; import org.chromium.chrome.browser.sync.settings.SyncSettingsUtils; @@ -34,7 +34,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe import org.chromium.chrome.browser.toolbar.adaptive.AdaptiveToolbarStatePredictor; import org.chromium.chrome.browser.tracing.settings.DeveloperSettings; import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; -@@ -272,7 +273,7 @@ public class MainSettings extends ChromeBaseSettingsFragment +@@ -268,7 +269,7 @@ public class MainSettings extends ChromeBaseSettingsFragment uiState -> { // We don't show the toolbar shortcut settings page if disabled from // finch. @@ -93,7 +93,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/share/ShareButt 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 -@@ -661,18 +661,12 @@ const FeatureEntry::FeatureParam kAdaptiveButtonCustomization_Share[] = { +@@ -701,18 +701,12 @@ const FeatureEntry::FeatureParam kAdaptiveButtonCustomization_Share[] = { {"default_segment", "share"}, {"show_ui_only_after_ready", "false"}, {"ignore_segmentation_results", "true"}}; @@ -130,7 +130,7 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js 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 -@@ -155,6 +155,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -159,6 +159,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &history::kOrganicRepeatableQueries, &history_clusters::internal::kJourneys, &history_clusters::internal::kOmniboxAction, @@ -138,7 +138,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse &kAdaptiveButtonInTopToolbarTranslate, &kAdaptiveButtonInTopToolbarAddToBookmarks, &kAdaptiveButtonInTopToolbarCustomizationV2, -@@ -406,6 +407,10 @@ static jlong JNI_ChromeFeatureMap_GetNativeMap(JNIEnv* env) { +@@ -419,6 +420,10 @@ static jlong JNI_ChromeFeatureMap_GetNativeMap(JNIEnv* env) { // Alphabetical: @@ -317,7 +317,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStatePredictorTest.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStatePredictorTest.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStatePredictorTest.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStatePredictorTest.java -@@ -74,6 +74,21 @@ public class AdaptiveToolbarStatePredictorTest { +@@ -70,6 +70,21 @@ public class AdaptiveToolbarStatePredictorTest { statePredictor.recomputeUiState(verifyResultCallback(expected)); } diff --git a/build/patches/Restore-chrome-password-store.patch b/build/patches/Restore-chrome-password-store.patch index b09fd361..5f1818f1 100644 --- a/build/patches/Restore-chrome-password-store.patch +++ b/build/patches/Restore-chrome-password-store.patch @@ -32,7 +32,7 @@ diff --git a/chrome/browser/resources/password_manager/user_utils_mixin.ts b/chr diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -706,7 +706,7 @@ For more settings that use data to improve your Chrome experience, go to @@ -56,7 +56,7 @@ diff --git a/components/password_manager/core/browser/buildflags.gni b/component diff --git a/components/sync/base/features.cc b/components/sync/base/features.cc --- a/components/sync/base/features.cc +++ b/components/sync/base/features.cc -@@ -99,6 +99,7 @@ BASE_FEATURE(kEnablePasswordsAccountStorageForNonSyncingUsers, +@@ -91,6 +91,7 @@ BASE_FEATURE(kEnablePasswordsAccountStorageForNonSyncingUsers, base::FEATURE_ENABLED_BY_DEFAULT #endif ); diff --git a/build/patches/Restore-offline-indicator-v2-flag.patch b/build/patches/Restore-offline-indicator-v2-flag.patch index 14bcb1a2..810ab6ec 100644 --- a/build/patches/Restore-offline-indicator-v2-flag.patch +++ b/build/patches/Restore-offline-indicator-v2-flag.patch @@ -92,7 +92,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java -@@ -1130,7 +1130,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1123,7 +1123,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { private void initStatusIndicatorCoordinator(LayoutManagerImpl layoutManager) { // TODO(crbug.com/40112282): Disable on tablets for now as we need to do one or two extra // things for tablets. @@ -102,7 +102,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab return; } -@@ -1164,6 +1165,11 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1157,6 +1158,11 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { hubManager.setStatusIndicatorHeight(mStatusIndicatorHeight); }); @@ -117,18 +117,18 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -252,6 +252,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { - &kNewTabSearchEngineUrlAndroid, +@@ -262,6 +262,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { + &kNewTabPageAndroidTriggerForPrerender2, &kNotificationPermissionVariant, &kNotificationPermissionBottomSheet, + &kOfflineIndicatorV2, + &kTinkerTankBottomSheet, &kPageAnnotationsService, &kPreconnectOnTabCreation, - &kPriceChangeModule, 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 -@@ -368,6 +368,7 @@ public abstract class ChromeFeatureList { +@@ -377,6 +377,7 @@ public abstract class ChromeFeatureList { public static final String NOTIFICATION_PERMISSION_VARIANT = "NotificationPermissionVariant"; public static final String NOTIFICATION_PERMISSION_BOTTOM_SHEET = "NotificationPermissionBottomSheet"; diff --git a/build/patches/Revert-Permit-blocking-of-view-source.patch b/build/patches/Revert-Permit-blocking-of-view-source.patch index f8b4e518..10cfc59a 100644 --- a/build/patches/Revert-Permit-blocking-of-view-source.patch +++ b/build/patches/Revert-Permit-blocking-of-view-source.patch @@ -6,65 +6,18 @@ This reverts commit e72fc9b64116bf259e516096fcc60b58ae8ae1b3. License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../policy_blocklist_navigation_throttle.cc | 19 ------------------- - .../policy_blocklist_navigation_throttle.h | 4 ---- - 2 files changed, 23 deletions(-) + .../policy/content/policy_blocklist_navigation_throttle.cc | 1 + + 1 file changed, 1 insertion(+) diff --git a/components/policy/content/policy_blocklist_navigation_throttle.cc b/components/policy/content/policy_blocklist_navigation_throttle.cc --- a/components/policy/content/policy_blocklist_navigation_throttle.cc +++ b/components/policy/content/policy_blocklist_navigation_throttle.cc -@@ -14,7 +14,6 @@ - #include "components/prefs/pref_service.h" - #include "components/user_prefs/user_prefs.h" - #include "content/public/browser/browser_context.h" --#include "content/public/browser/navigation_entry.h" - #include "content/public/browser/navigation_handle.h" - #include "url/gurl.h" +@@ -50,6 +50,7 @@ PolicyBlocklistNavigationThrottle::~PolicyBlocklistNavigationThrottle() { + } -@@ -42,19 +41,6 @@ PolicyBlocklistNavigationThrottle::PolicyBlocklistNavigationThrottle( - PolicyBlocklistNavigationThrottle::~PolicyBlocklistNavigationThrottle() = - default; - --bool PolicyBlocklistNavigationThrottle::IsBlockedViewSourceNavigation() { -- content::NavigationEntry* nav_entry = -- navigation_handle()->GetNavigationEntry(); -- if (!nav_entry || !nav_entry->IsViewSourceMode()) -- return false; -- -- GURL view_source_url = GURL(std::string("view-source:") + -- navigation_handle()->GetURL().spec()); -- -- return (blocklist_service_->GetURLBlocklistState(view_source_url) == -- URLBlocklistState::URL_IN_BLOCKLIST); --} -- - content::NavigationThrottle::ThrottleCheckResult - PolicyBlocklistNavigationThrottle::WillStartRequest() { - const GURL& url = navigation_handle()->GetURL(); -@@ -71,11 +57,6 @@ PolicyBlocklistNavigationThrottle::WillStartRequest() { - net::ERR_BLOCKED_BY_ADMINISTRATOR); - } - -- if (IsBlockedViewSourceNavigation()) { -- return ThrottleCheckResult(BLOCK_REQUEST, -- net::ERR_BLOCKED_BY_ADMINISTRATOR); -- } -- - if (blocklist_state == URLBlocklistState::URL_IN_ALLOWLIST) - return PROCEED; - -diff --git a/components/policy/content/policy_blocklist_navigation_throttle.h b/components/policy/content/policy_blocklist_navigation_throttle.h ---- a/components/policy/content/policy_blocklist_navigation_throttle.h -+++ b/components/policy/content/policy_blocklist_navigation_throttle.h -@@ -35,10 +35,6 @@ class PolicyBlocklistNavigationThrottle : public content::NavigationThrottle { - const char* GetNameForLogging() override; - - private: -- // Returns TRUE if this navigation is to view-source: and view-source is on -- // the URLBlocklist. -- bool IsBlockedViewSourceNavigation(); -- - // To ensure both allow and block policies override Safe Sites, - // SafeSitesNavigationThrottle must be consulted as part of this throttle - // rather than added separately to the list of throttles. + bool PolicyBlocklistNavigationThrottle::IsBlockedViewSourceNavigation() { ++ if ((true)) return false; + content::NavigationEntry* nav_entry = + navigation_handle()->GetNavigationEntry(); + if (!nav_entry || !nav_entry->IsViewSourceMode()) { -- diff --git a/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch b/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch index f30a2a3e..1a273329 100644 --- a/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch +++ b/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch @@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -2069,6 +2069,10 @@ +@@ -2106,6 +2106,10 @@ "yangsharon@google.com", "alexmos@google.com", "creis@google.com" ], "expiry_milestone": 140 }, diff --git a/build/patches/Revert-removal-of-execution-context-address-space.patch b/build/patches/Revert-removal-of-execution-context-address-space.patch index f724288f..0d2695d3 100644 --- a/build/patches/Revert-removal-of-execution-context-address-space.patch +++ b/build/patches/Revert-removal-of-execution-context-address-space.patch @@ -85,15 +85,15 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context diff --git a/third_party/blink/renderer/core/execution_context/execution_context.h b/third_party/blink/renderer/core/execution_context/execution_context.h --- a/third_party/blink/renderer/core/execution_context/execution_context.h +++ b/third_party/blink/renderer/core/execution_context/execution_context.h -@@ -33,6 +33,7 @@ - #include "base/notreached.h" +@@ -34,6 +34,7 @@ #include "base/task/single_thread_task_runner.h" + #include "net/storage_access_api/status.h" #include "services/metrics/public/cpp/ukm_source_id.h" +#include "services/network/public/mojom/ip_address_space.mojom-blink-forward.h" #include "services/network/public/mojom/referrer_policy.mojom-blink-forward.h" #include "third_party/blink/public/common/tokens/tokens.h" #include "third_party/blink/public/common/user_agent/user_agent_metadata.h" -@@ -386,6 +387,9 @@ class CORE_EXPORT ExecutionContext : public Supplementable, +@@ -387,6 +388,9 @@ class CORE_EXPORT ExecutionContext : public Supplementable, const String& message = g_empty_string, const String& source_file = g_empty_string) const {} @@ -106,7 +106,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context diff --git a/third_party/blink/renderer/core/exported/web_shared_worker_impl.cc b/third_party/blink/renderer/core/exported/web_shared_worker_impl.cc --- a/third_party/blink/renderer/core/exported/web_shared_worker_impl.cc +++ b/third_party/blink/renderer/core/exported/web_shared_worker_impl.cc -@@ -252,6 +252,7 @@ void WebSharedWorkerImpl::StartWorkerContext( +@@ -253,6 +253,7 @@ void WebSharedWorkerImpl::StartWorkerContext( MakeGarbageCollected(), std::make_unique( std::move(content_settings)), @@ -171,7 +171,7 @@ diff --git a/third_party/blink/renderer/core/frame/policy_container.h b/third_pa diff --git a/third_party/blink/renderer/core/frame/web_frame_test.cc b/third_party/blink/renderer/core/frame/web_frame_test.cc --- a/third_party/blink/renderer/core/frame/web_frame_test.cc +++ b/third_party/blink/renderer/core/frame/web_frame_test.cc -@@ -8087,6 +8087,40 @@ TEST_F(WebFrameTest, PushStateStartsAndStops) { +@@ -8094,6 +8094,40 @@ TEST_F(WebFrameTest, PushStateStartsAndStops) { EXPECT_EQ(client.StopLoadingCount(), 2); } @@ -237,7 +237,7 @@ diff --git a/third_party/blink/renderer/core/loader/modulescript/installed_servi diff --git a/third_party/blink/renderer/core/loader/modulescript/module_script_loader_test.cc b/third_party/blink/renderer/core/loader/modulescript/module_script_loader_test.cc --- a/third_party/blink/renderer/core/loader/modulescript/module_script_loader_test.cc +++ b/third_party/blink/renderer/core/loader/modulescript/module_script_loader_test.cc -@@ -216,6 +216,7 @@ void ModuleScriptLoaderTest::InitializeForWorklet() { +@@ -215,6 +215,7 @@ void ModuleScriptLoaderTest::InitializeForWorklet() { network::mojom::ReferrerPolicy::kDefault, security_origin_.get(), true /* is_secure_context */, HttpsState::kModern, nullptr /* worker_clients */, nullptr /* content_settings_client */, @@ -268,7 +268,7 @@ diff --git a/third_party/blink/renderer/core/loader/modulescript/worker_module_s diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third_party/blink/renderer/core/workers/dedicated_worker.cc --- a/third_party/blink/renderer/core/workers/dedicated_worker.cc +++ b/third_party/blink/renderer/core/workers/dedicated_worker.cc -@@ -300,6 +300,7 @@ void DedicatedWorker::OnHostCreated( +@@ -301,6 +301,7 @@ void DedicatedWorker::OnHostCreated( nullptr /* worker_main_script_load_params */, network::mojom::ReferrerPolicy::kDefault, Vector(), @@ -276,7 +276,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third String() /* source_code */, reject_coep_unsafe_none, std::move(back_forward_cache_controller_host)); return; -@@ -355,6 +356,7 @@ void DedicatedWorker::OnScriptLoadStarted( +@@ -356,6 +357,7 @@ void DedicatedWorker::OnScriptLoadStarted( ContinueStart(script_request_url_, std::move(worker_main_script_load_params), network::mojom::ReferrerPolicy::kDefault, Vector(), @@ -284,7 +284,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third String() /* source_code */, RejectCoepUnsafeNone(false), std::move(back_forward_cache_controller_host)); } -@@ -427,6 +429,7 @@ void DedicatedWorker::OnFinished( +@@ -428,6 +430,7 @@ void DedicatedWorker::OnFinished( ? mojo::Clone(classic_script_loader_->GetContentSecurityPolicy() ->GetParsedPolicies()) : Vector(), @@ -292,7 +292,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third classic_script_loader_->SourceText(), RejectCoepUnsafeNone(false), std::move(back_forward_cache_controller_host)); probe::ScriptImported(GetExecutionContext(), -@@ -443,6 +446,7 @@ void DedicatedWorker::ContinueStart( +@@ -444,6 +447,7 @@ void DedicatedWorker::ContinueStart( network::mojom::ReferrerPolicy referrer_policy, Vector response_content_security_policies, @@ -300,7 +300,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third const String& source_code, RejectCoepUnsafeNone reject_coep_unsafe_none, mojo::PendingRemote -@@ -465,6 +469,7 @@ void DedicatedWorker::ContinueStart( +@@ -466,6 +470,7 @@ void DedicatedWorker::ContinueStart( std::move(worker_main_script_load_params), std::move(referrer_policy), std::move(response_content_security_policies), @@ -308,7 +308,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third source_code, reject_coep_unsafe_none, std::move(back_forward_cache_controller_host)), base::Milliseconds(features::kDedicatedWorkerStartDelayInMs.Get())); -@@ -473,6 +478,7 @@ void DedicatedWorker::ContinueStart( +@@ -474,6 +479,7 @@ void DedicatedWorker::ContinueStart( ContinueStartInternal(script_url, std::move(worker_main_script_load_params), std::move(referrer_policy), std::move(response_content_security_policies), @@ -316,7 +316,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third source_code, reject_coep_unsafe_none, std::move(back_forward_cache_controller_host)); } -@@ -484,6 +490,7 @@ void DedicatedWorker::ContinueStartInternal( +@@ -485,6 +491,7 @@ void DedicatedWorker::ContinueStartInternal( network::mojom::ReferrerPolicy referrer_policy, Vector response_content_security_policies, @@ -324,7 +324,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third const String& source_code, RejectCoepUnsafeNone reject_coep_unsafe_none, mojo::PendingRemote -@@ -495,7 +502,8 @@ void DedicatedWorker::ContinueStartInternal( +@@ -496,7 +503,8 @@ void DedicatedWorker::ContinueStartInternal( context_proxy_->StartWorkerGlobalScope( CreateGlobalScopeCreationParams( script_url, referrer_policy, @@ -334,7 +334,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third std::move(worker_main_script_load_params), options_, script_url, *outside_fetch_client_settings_object_, v8_stack_trace_id_, source_code, reject_coep_unsafe_none, token_, -@@ -532,7 +540,8 @@ DedicatedWorker::CreateGlobalScopeCreationParams( +@@ -533,7 +541,8 @@ DedicatedWorker::CreateGlobalScopeCreationParams( const KURL& script_url, network::mojom::ReferrerPolicy referrer_policy, Vector @@ -344,7 +344,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third base::UnguessableToken parent_devtools_token; std::unique_ptr settings; ExecutionContext* execution_context = GetExecutionContext(); -@@ -581,6 +590,7 @@ DedicatedWorker::CreateGlobalScopeCreationParams( +@@ -582,6 +591,7 @@ DedicatedWorker::CreateGlobalScopeCreationParams( execution_context->GetSecurityOrigin(), execution_context->IsSecureContext(), execution_context->GetHttpsState(), MakeGarbageCollected(), CreateWebContentSettingsClient(), @@ -384,7 +384,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.h b/third_ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.cc b/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.cc --- a/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.cc +++ b/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.cc -@@ -91,6 +91,8 @@ DedicatedWorkerGlobalScope* DedicatedWorkerGlobalScope::Create( +@@ -92,6 +92,8 @@ DedicatedWorkerGlobalScope* DedicatedWorkerGlobalScope::Create( KURL response_script_url = creation_params->script_url; network::mojom::ReferrerPolicy response_referrer_policy = creation_params->referrer_policy; @@ -393,7 +393,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_sco const bool parent_cross_origin_isolated_capability = creation_params->parent_cross_origin_isolated_capability; const bool parent_is_isolated_context = -@@ -119,7 +121,7 @@ DedicatedWorkerGlobalScope* DedicatedWorkerGlobalScope::Create( +@@ -120,7 +122,7 @@ DedicatedWorkerGlobalScope* DedicatedWorkerGlobalScope::Create( // Pass dummy origin trial tokens here as it is already set to outside's // origin trial tokens in DedicatedWorkerGlobalScope's constructor. global_scope->Initialize(response_script_url, response_referrer_policy, @@ -402,7 +402,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_sco nullptr /* response_origin_trial_tokens */); return global_scope; } else { -@@ -245,6 +247,7 @@ const AtomicString& DedicatedWorkerGlobalScope::InterfaceName() const { +@@ -247,6 +249,7 @@ const AtomicString& DedicatedWorkerGlobalScope::InterfaceName() const { void DedicatedWorkerGlobalScope::Initialize( const KURL& response_url, network::mojom::ReferrerPolicy response_referrer_policy, @@ -410,7 +410,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_sco Vector response_csp, const Vector* /* response_origin_trial_tokens */) { TRACE_EVENT("blink.worker", "DedicatedWorkerGlobalScope::Initialize", -@@ -260,6 +263,9 @@ void DedicatedWorkerGlobalScope::Initialize( +@@ -262,6 +265,9 @@ void DedicatedWorkerGlobalScope::Initialize( // parsing the `Referrer-Policy` header of response." SetReferrerPolicy(response_referrer_policy); @@ -420,7 +420,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_sco // The following is the Content-Security-Policy part of "Initialize worker // global scope's policy container" // https://html.spec.whatwg.org/#initialize-worker-policy-container -@@ -499,6 +505,7 @@ void DedicatedWorkerGlobalScope::DidFetchClassicScript( +@@ -501,6 +507,7 @@ void DedicatedWorkerGlobalScope::DidFetchClassicScript( // Pass dummy origin trial tokens here as it is already set to outside's // origin trial tokens in DedicatedWorkerGlobalScope's constructor. Initialize(classic_script_loader->ResponseURL(), response_referrer_policy, @@ -431,7 +431,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_sco diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.h b/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.h --- a/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.h +++ b/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.h -@@ -111,6 +111,7 @@ class CORE_EXPORT DedicatedWorkerGlobalScope final : public WorkerGlobalScope { +@@ -112,6 +112,7 @@ class CORE_EXPORT DedicatedWorkerGlobalScope final : public WorkerGlobalScope { void Initialize( const KURL& response_url, network::mojom::ReferrerPolicy response_referrer_policy, @@ -442,7 +442,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_sco diff --git a/third_party/blink/renderer/core/workers/global_scope_creation_params.cc b/third_party/blink/renderer/core/workers/global_scope_creation_params.cc --- a/third_party/blink/renderer/core/workers/global_scope_creation_params.cc +++ b/third_party/blink/renderer/core/workers/global_scope_creation_params.cc -@@ -31,6 +31,7 @@ GlobalScopeCreationParams::GlobalScopeCreationParams( +@@ -32,6 +32,7 @@ GlobalScopeCreationParams::GlobalScopeCreationParams( HttpsState starter_https_state, WorkerClients* worker_clients, std::unique_ptr content_settings_client, @@ -450,7 +450,7 @@ diff --git a/third_party/blink/renderer/core/workers/global_scope_creation_param const Vector* inherited_trial_features, const base::UnguessableToken& parent_devtools_token, std::unique_ptr worker_settings, -@@ -69,6 +70,7 @@ GlobalScopeCreationParams::GlobalScopeCreationParams( +@@ -70,6 +71,7 @@ GlobalScopeCreationParams::GlobalScopeCreationParams( starter_https_state(starter_https_state), worker_clients(worker_clients), content_settings_client(std::move(content_settings_client)), @@ -461,15 +461,15 @@ diff --git a/third_party/blink/renderer/core/workers/global_scope_creation_param diff --git a/third_party/blink/renderer/core/workers/global_scope_creation_params.h b/third_party/blink/renderer/core/workers/global_scope_creation_params.h --- a/third_party/blink/renderer/core/workers/global_scope_creation_params.h +++ b/third_party/blink/renderer/core/workers/global_scope_creation_params.h -@@ -12,6 +12,7 @@ - #include "base/unguessable_token.h" +@@ -13,6 +13,7 @@ #include "mojo/public/cpp/bindings/pending_remote.h" + #include "net/storage_access_api/status.h" #include "services/metrics/public/cpp/ukm_source_id.h" +#include "services/network/public/mojom/ip_address_space.mojom-blink-forward.h" #include "services/network/public/mojom/referrer_policy.mojom-blink-forward.h" #include "third_party/blink/public/common/permissions_policy/permissions_policy.h" #include "third_party/blink/public/common/tokens/tokens.h" -@@ -61,6 +62,7 @@ struct CORE_EXPORT GlobalScopeCreationParams final { +@@ -62,6 +63,7 @@ struct CORE_EXPORT GlobalScopeCreationParams final { HttpsState starter_https_state, WorkerClients*, std::unique_ptr, @@ -477,7 +477,7 @@ diff --git a/third_party/blink/renderer/core/workers/global_scope_creation_param const Vector* inherited_trial_features, const base::UnguessableToken& parent_devtools_token, std::unique_ptr, -@@ -170,6 +172,11 @@ struct CORE_EXPORT GlobalScopeCreationParams final { +@@ -172,6 +174,11 @@ struct CORE_EXPORT GlobalScopeCreationParams final { std::unique_ptr content_settings_client; @@ -711,10 +711,10 @@ diff --git a/third_party/blink/renderer/core/workers/worker_global_scope.h b/thi #include "base/time/time.h" #include "services/network/public/mojom/fetch_api.mojom-blink-forward.h" +#include "services/network/public/mojom/ip_address_space.mojom-blink-forward.h" - #include "third_party/blink/public/common/browser_interface_broker_proxy.h" #include "third_party/blink/public/common/loader/worker_main_script_load_parameters.h" #include "third_party/blink/public/common/tokens/tokens.h" -@@ -172,6 +173,7 @@ class CORE_EXPORT WorkerGlobalScope + #include "third_party/blink/public/mojom/loader/code_cache.mojom-blink-forward.h" +@@ -174,6 +175,7 @@ class CORE_EXPORT WorkerGlobalScope virtual void Initialize( const KURL& response_url, network::mojom::ReferrerPolicy response_referrer_policy, @@ -805,7 +805,7 @@ diff --git a/third_party/blink/renderer/modules/exported/web_embedded_worker_imp diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc --- a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc +++ b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc -@@ -475,6 +475,7 @@ void ServiceWorkerGlobalScope::DidFetchClassicScript( +@@ -476,6 +476,7 @@ void ServiceWorkerGlobalScope::DidFetchClassicScript( // is set, and with the following callback steps given evaluationStatus:" RunClassicScript( classic_script_loader->ResponseURL(), referrer_policy, @@ -813,7 +813,7 @@ diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_gl classic_script_loader->GetContentSecurityPolicy() ? mojo::Clone(classic_script_loader->GetContentSecurityPolicy() ->GetParsedPolicies()) -@@ -488,6 +489,7 @@ void ServiceWorkerGlobalScope::DidFetchClassicScript( +@@ -489,6 +490,7 @@ void ServiceWorkerGlobalScope::DidFetchClassicScript( void ServiceWorkerGlobalScope::Initialize( const KURL& response_url, network::mojom::ReferrerPolicy response_referrer_policy, @@ -821,7 +821,7 @@ diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_gl Vector response_csp, const Vector* response_origin_trial_tokens) { // Step 4.5. "Set workerGlobalScope's url to serviceWorker's script url." -@@ -501,6 +503,9 @@ void ServiceWorkerGlobalScope::Initialize( +@@ -502,6 +504,9 @@ void ServiceWorkerGlobalScope::Initialize( // script resource's referrer policy." SetReferrerPolicy(response_referrer_policy); @@ -831,7 +831,7 @@ diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_gl // This is quoted from the "Content Security Policy" algorithm in the service // workers spec: // "Whenever a user agent invokes Run Service Worker algorithm with a service -@@ -511,6 +516,9 @@ void ServiceWorkerGlobalScope::Initialize( +@@ -512,6 +517,9 @@ void ServiceWorkerGlobalScope::Initialize( // - If serviceWorker's script resource was delivered with a // Content-Security-Policy-Report-Only HTTP header containing the value // policy, the user agent must monitor policy for serviceWorker." @@ -841,7 +841,7 @@ diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_gl InitContentSecurityPolicyFromVector(std::move(response_csp)); BindContentSecurityPolicyToExecutionContext(); -@@ -551,26 +559,27 @@ void ServiceWorkerGlobalScope::LoadAndRunInstalledClassicScript( +@@ -552,26 +560,27 @@ void ServiceWorkerGlobalScope::LoadAndRunInstalledClassicScript( kDoNotSupportReferrerPolicyLegacyKeywords, &referrer_policy); } @@ -899,7 +899,7 @@ diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_gl diff --git a/third_party/blink/renderer/modules/webaudio/audio_worklet_global_scope_test.cc b/third_party/blink/renderer/modules/webaudio/audio_worklet_global_scope_test.cc --- a/third_party/blink/renderer/modules/webaudio/audio_worklet_global_scope_test.cc +++ b/third_party/blink/renderer/modules/webaudio/audio_worklet_global_scope_test.cc -@@ -86,6 +86,7 @@ class AudioWorkletGlobalScopeTest : public PageTestBase, public ModuleTestBase { +@@ -91,6 +91,7 @@ class AudioWorkletGlobalScopeTest : public PageTestBase, public ModuleTestBase { window->GetReferrerPolicy(), window->GetSecurityOrigin(), window->IsSecureContext(), window->GetHttpsState(), nullptr /* worker_clients */, nullptr /* content_settings_client */, @@ -910,7 +910,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/audio_worklet_global_sc diff --git a/third_party/blink/renderer/modules/webaudio/audio_worklet_thread_test.cc b/third_party/blink/renderer/modules/webaudio/audio_worklet_thread_test.cc --- a/third_party/blink/renderer/modules/webaudio/audio_worklet_thread_test.cc +++ b/third_party/blink/renderer/modules/webaudio/audio_worklet_thread_test.cc -@@ -106,6 +106,7 @@ class AudioWorkletThreadTest : public PageTestBase, public ModuleTestBase { +@@ -111,6 +111,7 @@ class AudioWorkletThreadTest : public PageTestBase, public ModuleTestBase { window->GetReferrerPolicy(), window->GetSecurityOrigin(), window->IsSecureContext(), window->GetHttpsState(), nullptr /* worker_clients */, nullptr /* content_settings_client */, diff --git a/build/patches/Revert-remove-allowscript-content-setting-secondary-url.patch b/build/patches/Revert-remove-allowscript-content-setting-secondary-url.patch index d064ff11..29cda697 100644 --- a/build/patches/Revert-remove-allowscript-content-setting-secondary-url.patch +++ b/build/patches/Revert-remove-allowscript-content-setting-secondary-url.patch @@ -9,7 +9,8 @@ https://chromium-review.googlesource.com/c/chromium/src/+/5307559 .../renderer/content_settings_agent_impl.cc | 38 ++++++++++++++++++- .../renderer/content_settings_agent_impl.h | 6 +++ .../platform/web_content_settings_client.h | 12 ++++++ - .../blink/renderer/core/frame/local_frame.cc | 8 ---- + .../renderer/core/frame/local_dom_window.cc | 6 ++- + .../blink/renderer/core/frame/local_frame.cc | 13 ------- .../blink/renderer/core/frame/local_frame.h | 6 --- .../renderer/core/html/html_meta_element.cc | 4 +- .../core/loader/base_fetch_context.cc | 2 +- @@ -18,7 +19,7 @@ https://chromium-review.googlesource.com/c/chromium/src/+/5307559 .../core/loader/frame_fetch_context.h | 13 ++++++- .../core/loader/worker_fetch_context.cc | 12 ++++-- .../core/loader/worker_fetch_context.h | 2 +- - 14 files changed, 139 insertions(+), 33 deletions(-) + 15 files changed, 144 insertions(+), 39 deletions(-) diff --git a/chrome/renderer/worker_content_settings_client.cc b/chrome/renderer/worker_content_settings_client.cc --- a/chrome/renderer/worker_content_settings_client.cc @@ -184,18 +185,46 @@ diff --git a/third_party/blink/public/platform/web_content_settings_client.h b/t // 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/frame/local_dom_window.cc b/third_party/blink/renderer/core/frame/local_dom_window.cc +--- a/third_party/blink/renderer/core/frame/local_dom_window.cc ++++ b/third_party/blink/renderer/core/frame/local_dom_window.cc +@@ -50,6 +50,7 @@ + #include "third_party/blink/public/platform/task_type.h" + #include "third_party/blink/public/platform/web_string.h" + #include "third_party/blink/public/web/web_picture_in_picture_window_options.h" ++#include "third_party/blink/renderer/core/loader/frame_fetch_context.h" + #include "third_party/blink/renderer/bindings/core/v8/binding_security.h" + #include "third_party/blink/renderer/bindings/core/v8/capture_source_location.h" + #include "third_party/blink/renderer/bindings/core/v8/isolated_world_csp.h" +@@ -485,7 +486,10 @@ bool LocalDOMWindow::CanExecuteScripts( + } + return false; + } +- bool script_enabled = GetFrame()->ScriptEnabled(); ++ bool script_enabled = ++ FrameFetchContext::AllowScriptFromSourceWithoutNotifying( ++ Url(), GetFrame()->GetContentSettingsClient(), ++ GetFrame()->GetSettings()); + if (!script_enabled && reason == kAboutToExecuteScript) { + WebContentSettingsClient* settings_client = + GetFrame()->GetContentSettingsClient(); diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc -@@ -4042,14 +4042,6 @@ const mojom::RendererContentSettingsPtr& LocalFrame::GetContentSettings() { +@@ -4041,19 +4041,6 @@ bool LocalFrame::IsSameOrigin() { + return security_origin->IsSameOriginWith(top_security_origin); } - -bool LocalFrame::ScriptEnabled() { - DCHECK(!IsDetached()); -- +- // If this is called in the middle of detach, GetDocumentLoader() might +- // already be nullptr. +- if (!loader_.GetDocumentLoader()) { +- return false; +- } - bool allow_script_renderer = GetSettings()->GetScriptEnabled(); -- bool allow_script_content_setting = GetContentSettings()->allow_script; +- bool allow_script_content_setting = +- loader_.GetDocumentLoader()->GetContentSettings()->allow_script; - return allow_script_renderer && allow_script_content_setting; -} - @@ -205,9 +234,9 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h --- a/third_party/blink/renderer/core/frame/local_frame.h +++ b/third_party/blink/renderer/core/frame/local_frame.h -@@ -930,12 +930,6 @@ class CORE_EXPORT LocalFrame final - // Can only be called while the frame is not detached. - const mojom::RendererContentSettingsPtr& GetContentSettings(); +@@ -927,12 +927,6 @@ class CORE_EXPORT LocalFrame final + return *v8_local_compile_hints_producer_; + } - // Returns whether script is allowed to run for the current frame. This is a - // convenience method that checks both renderer content settings and frame @@ -221,7 +250,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/b diff --git a/third_party/blink/renderer/core/html/html_meta_element.cc b/third_party/blink/renderer/core/html/html_meta_element.cc --- a/third_party/blink/renderer/core/html/html_meta_element.cc +++ b/third_party/blink/renderer/core/html/html_meta_element.cc -@@ -773,7 +773,9 @@ void HTMLMetaElement::ProcessMetaCH(Document& document, +@@ -778,7 +778,9 @@ void HTMLMetaElement::ProcessMetaCH(Document& document, return; } @@ -235,7 +264,7 @@ diff --git a/third_party/blink/renderer/core/html/html_meta_element.cc b/third_p diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.cc b/third_party/blink/renderer/core/loader/base_fetch_context.cc --- a/third_party/blink/renderer/core/loader/base_fetch_context.cc +++ b/third_party/blink/renderer/core/loader/base_fetch_context.cc -@@ -574,7 +574,7 @@ BaseFetchContext::CanRequestInternal( +@@ -589,7 +589,7 @@ BaseFetchContext::CanRequestInternal( } if (type == ResourceType::kScript) { @@ -247,7 +276,7 @@ diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.cc b/thir diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.h b/third_party/blink/renderer/core/loader/base_fetch_context.h --- a/third_party/blink/renderer/core/loader/base_fetch_context.h +++ b/third_party/blink/renderer/core/loader/base_fetch_context.h -@@ -117,7 +117,7 @@ class CORE_EXPORT BaseFetchContext : public FetchContext { +@@ -125,7 +125,7 @@ class CORE_EXPORT BaseFetchContext : public FetchContext { : fetcher_properties_(properties), console_logger_(logger) {} // Used for security checks. @@ -259,7 +288,7 @@ diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.h b/third diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/third_party/blink/renderer/core/loader/frame_fetch_context.cc --- a/third_party/blink/renderer/core/loader/frame_fetch_context.cc +++ b/third_party/blink/renderer/core/loader/frame_fetch_context.cc -@@ -451,7 +451,8 @@ void FrameFetchContext::AddClientHintsIfNecessary( +@@ -448,7 +448,8 @@ void FrameFetchContext::AddClientHintsIfNecessary( // Check if |url| is allowed to run JavaScript. If not, client hints are not // attached to the requests that initiate on the render side. @@ -269,7 +298,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/thi return; } -@@ -588,15 +589,26 @@ void FrameFetchContext::SetFirstPartyCookie(ResourceRequest& request) { +@@ -575,15 +576,26 @@ void FrameFetchContext::SetFirstPartyCookie(ResourceRequest& request) { request.SetSiteForCookies(GetSiteForCookies()); } diff --git a/build/patches/Samsung-Note-9-SDK27-crazylinker-workaround.patch b/build/patches/Samsung-Note-9-SDK27-crazylinker-workaround.patch index 7a2b21bd..0b9c0305 100644 --- a/build/patches/Samsung-Note-9-SDK27-crazylinker-workaround.patch +++ b/build/patches/Samsung-Note-9-SDK27-crazylinker-workaround.patch @@ -19,7 +19,7 @@ diff --git a/base/android/java/src/org/chromium/base/library_loader/LibraryLoade import javax.annotation.concurrent.GuardedBy; -@@ -281,7 +282,21 @@ public class LibraryLoader { +@@ -275,7 +276,21 @@ public class LibraryLoader { */ public void initInAppZygote() { assert !mInitDone; diff --git a/build/patches/Show-NTP-at-startup.patch b/build/patches/Show-NTP-at-startup.patch index af9dcda1..9779aff8 100644 --- a/build/patches/Show-NTP-at-startup.patch +++ b/build/patches/Show-NTP-at-startup.patch @@ -8,20 +8,27 @@ Until the real tab is opened, no data is retrieved. License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- - .../android/java/res/xml/homepage_preferences.xml | 6 ++++++ - .../chrome/browser/BrowserRestartActivity.java | 1 + - .../chrome/browser/ChromeInactivityTracker.java | 13 +++++++++++++ - .../chrome/browser/ChromeTabbedActivity.java | 4 +++- - .../chrome/browser/tasks/ReturnToChromeUtil.java | 12 +++++++++++- - .../browser/preferences/ChromePreferenceKeys.java | 2 ++ - .../preferences/LegacyChromePreferenceKeys.java | 1 + - .../single_tab/SingleTabSwitcherCoordinator.java | 2 +- - .../single_tab/SingleTabSwitcherOnNtpMediator.java | 6 ++---- - .../show-ntp-at-startup.grdp | 9 +++++++++ - .../chrome_feature_list_cc/show-ntp-at-startup.inc | 2 ++ - 11 files changed, 51 insertions(+), 7 deletions(-) + .../java/res/xml/homepage_preferences.xml | 6 ++++ + .../browser/BrowserRestartActivity.java | 1 + + .../browser/ChromeInactivityTracker.java | 14 ++++++++ + .../chrome/browser/ChromeTabbedActivity.java | 2 ++ + .../browser/tasks/ReturnToChromeUtil.java | 16 ++++++++- + .../flags/android/chrome_feature_list.cc | 1 + + .../cromite/sShowNtpAtStartupAndroid.java | 33 +++++++++++++++++++ + .../preferences/ChromePreferenceKeys.java | 2 ++ + .../LegacyChromePreferenceKeys.java | 1 + + .../SingleTabSwitcherCoordinator.java | 2 +- + .../SingleTabSwitcherOnNtpMediator.java | 4 +-- + .../show-ntp-at-startup.grdp | 9 +++++ + .../about_flags_cc/show-ntp-at-startup.inc | 12 +++++++ + .../show-ntp-at-startup.inc | 5 +++ + .../show-ntp-at-startup.inc | 1 + + 15 files changed, 105 insertions(+), 4 deletions(-) + create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sShowNtpAtStartupAndroid.java create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/show-ntp-at-startup.grdp + create mode 100644 cromite_flags/chrome/browser/about_flags_cc/show-ntp-at-startup.inc create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/show-ntp-at-startup.inc + create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/show-ntp-at-startup.inc diff --git a/chrome/android/java/res/xml/homepage_preferences.xml b/chrome/android/java/res/xml/homepage_preferences.xml --- a/chrome/android/java/res/xml/homepage_preferences.xml @@ -53,15 +60,18 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/BrowserRestartA diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeInactivityTracker.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeInactivityTracker.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeInactivityTracker.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeInactivityTracker.java -@@ -12,6 +12,7 @@ import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher; +@@ -12,8 +12,10 @@ import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher; import org.chromium.chrome.browser.lifecycle.DestroyObserver; import org.chromium.chrome.browser.lifecycle.PauseResumeWithNativeObserver; import org.chromium.chrome.browser.lifecycle.StartStopWithNativeObserver; +import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; ++import org.chromium.chrome.browser.flags.cromite.sShowNtpAtStartupAndroid; -@@ -55,6 +56,18 @@ public class ChromeInactivityTracker + /** + * Manages pref that can track the delay since the last stop of the tracked activity. +@@ -55,6 +57,18 @@ public class ChromeInactivityTracker mLifecycleDispatcher.register(this); } @@ -72,8 +82,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeInactivit + + public boolean isNewStartup() { + return -+ ChromeFeatureList.sShowNtpAtStartupAndroid.isEnabled() -+ && ChromeSharedPreferences.getInstance().readBoolean( ++ sShowNtpAtStartupAndroid.getInstance().isEnabled() && ++ ChromeSharedPreferences.getInstance().readBoolean( + ChromePreferenceKeys.TABBED_ACTIVITY_IS_STARTUP, false); + } + @@ -83,16 +93,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeInactivit diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -1680,7 +1680,7 @@ public class ChromeTabbedActivity extends ChromeActivity onStandardActiveIndexRead = null; - shouldShowNtpAsHomeSurfaceAtStartup = shouldShowNtpHomeSurfaceOnStartup(); - boolean skipSavingNonActiveNtps = skipSavingNonActiveNtps(); -- if (skipSavingNonActiveNtps) { -+ if (skipSavingNonActiveNtps || shouldShowNtpAsHomeSurfaceAtStartup) { - mHomeSurfaceTracker = new HomeSurfaceTracker(); - } - if (shouldShowNtpAsHomeSurfaceAtStartup) { -@@ -2392,6 +2392,8 @@ public class ChromeTabbedActivity extends ChromeActivity. ++*/ ++ ++package org.chromium.chrome.browser.flags.cromite; ++ ++import org.chromium.base.cached_flags.CachedFlag; ++import org.chromium.chrome.browser.flags.ChromeFeatureMap; ++ ++public class sShowNtpAtStartupAndroid { ++ private static final CachedFlag sInstance = ++ new CachedFlag(ChromeFeatureMap.getInstance(), ++ "ShowNtpAtStartupAndroid", false); ++ ++ private sShowNtpAtStartupAndroid() {} ++ ++ public static CachedFlag getInstance() { ++ return sInstance; ++ } ++} diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java -@@ -792,6 +792,8 @@ public final class ChromePreferenceKeys { +@@ -784,6 +784,8 @@ public final class ChromePreferenceKeys { public static final String TABBED_ACTIVITY_LAST_BACKGROUNDED_TIME_MS_PREF = "ChromeTabbedActivity.BackgroundTimeMs"; @@ -163,7 +220,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro diff --git a/chrome/browser/single_tab/android/java/src/org/chromium/chrome/browser/single_tab/SingleTabSwitcherCoordinator.java b/chrome/browser/single_tab/android/java/src/org/chromium/chrome/browser/single_tab/SingleTabSwitcherCoordinator.java --- a/chrome/browser/single_tab/android/java/src/org/chromium/chrome/browser/single_tab/SingleTabSwitcherCoordinator.java +++ b/chrome/browser/single_tab/android/java/src/org/chromium/chrome/browser/single_tab/SingleTabSwitcherCoordinator.java -@@ -309,7 +309,7 @@ public class SingleTabSwitcherCoordinator implements TabSwitcher, ModuleProvider +@@ -175,7 +175,7 @@ public class SingleTabSwitcherCoordinator implements ModuleProvider { /** Returns the layout resource id for the single tab card. */ public static int getModuleLayoutId() { @@ -175,12 +232,11 @@ diff --git a/chrome/browser/single_tab/android/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/single_tab/android/java/src/org/chromium/chrome/browser/single_tab/SingleTabSwitcherOnNtpMediator.java b/chrome/browser/single_tab/android/java/src/org/chromium/chrome/browser/single_tab/SingleTabSwitcherOnNtpMediator.java --- a/chrome/browser/single_tab/android/java/src/org/chromium/chrome/browser/single_tab/SingleTabSwitcherOnNtpMediator.java +++ b/chrome/browser/single_tab/android/java/src/org/chromium/chrome/browser/single_tab/SingleTabSwitcherOnNtpMediator.java -@@ -252,16 +252,14 @@ public class SingleTabSwitcherOnNtpMediator { +@@ -269,14 +269,14 @@ public class SingleTabSwitcherOnNtpMediator { public void onPageLoadFinished(Tab tab, GURL url) { super.onPageLoadFinished(tab, url); mPropertyModel.set(TITLE, tab.getTitle()); -- mPropertyModel.set( -- URL, SingleTabSwitcherMediator.getDomainUrl(tab.getUrl())); +- mPropertyModel.set(URL, getDomainUrl(tab.getUrl())); + mPropertyModel.set(URL, tab.getUrl().getPossiblyInvalidSpec()); tab.removeObserver(this); } @@ -188,8 +244,7 @@ diff --git a/chrome/browser/single_tab/android/java/src/org/chromium/chrome/brow mMostRecentTab.addObserver(tabObserver); } else { mPropertyModel.set(TITLE, mMostRecentTab.getTitle()); -- mPropertyModel.set( -- URL, SingleTabSwitcherMediator.getDomainUrl(mMostRecentTab.getUrl())); +- mPropertyModel.set(URL, getDomainUrl(mMostRecentTab.getUrl())); + mPropertyModel.set(URL, mMostRecentTab.getUrl().getPossiblyInvalidSpec()); } } @@ -208,11 +263,37 @@ new file mode 100644 + Enable showing a NewTabPage at startup and allows selection of the last open tab + + +diff --git a/cromite_flags/chrome/browser/about_flags_cc/show-ntp-at-startup.inc b/cromite_flags/chrome/browser/about_flags_cc/show-ntp-at-startup.inc +new file mode 100644 +--- /dev/null ++++ b/cromite_flags/chrome/browser/about_flags_cc/show-ntp-at-startup.inc +@@ -0,0 +1,12 @@ ++#if BUILDFLAG(IS_ANDROID) ++ ++#ifdef FLAG_SECTION ++ ++ {"enable-show-ntp-at-startup", ++ "Show a NewTabPage at startup", ++ "Enable showing a NewTabPage at startup after leaving Cromite for a while.", kOsAndroid, ++ FEATURE_VALUE_TYPE(chrome::android::kShowNtpAtStartupAndroid)}, ++ ++#endif ++ ++#endif diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/show-ntp-at-startup.inc b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/show-ntp-at-startup.inc new file mode 100644 --- /dev/null +++ b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/show-ntp-at-startup.inc -@@ -0,0 +1,2 @@ +@@ -0,0 +1,5 @@ +SET_CROMITE_FEATURE_ENABLED(kStartSurfaceReturnTime); -+SET_CROMITE_FEATURE_ENABLED(kShowNtpAtStartupAndroid); ++ ++CROMITE_FEATURE(kShowNtpAtStartupAndroid, ++ "ShowNtpAtStartupAndroid", ++ base::FEATURE_ENABLED_BY_DEFAULT); +diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/show-ntp-at-startup.inc b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/show-ntp-at-startup.inc +new file mode 100644 +--- /dev/null ++++ b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/show-ntp-at-startup.inc +@@ -0,0 +1 @@ ++BASE_DECLARE_FEATURE(kShowNtpAtStartupAndroid); -- diff --git a/build/patches/Site-setting-for-images.patch b/build/patches/Site-setting-for-images.patch index 9e4ecdd4..02fabfec 100644 --- a/build/patches/Site-setting-for-images.patch +++ b/build/patches/Site-setting-for-images.patch @@ -18,16 +18,16 @@ Require: Content-settings-infrastructure.patch .../renderer/content_settings_agent_impl.cc | 15 +++ .../renderer/content_settings_agent_impl.h | 2 + .../platform/web_content_settings_client.h | 5 + - .../blink/renderer/core/frame/local_frame.cc | 7 -- + .../blink/renderer/core/frame/local_frame.cc | 13 --- .../blink/renderer/core/frame/local_frame.h | 6 -- - .../renderer/core/html/image_document.cc | 5 +- + .../renderer/core/html/image_document.cc | 9 +- .../core/loader/frame_fetch_context.cc | 12 +-- .../core/loader/frame_fetch_context.h | 2 +- third_party/blink/renderer/core/page/page.cc | 5 +- .../platform/loader/fetch/fetch_context.h | 2 +- .../platform/loader/fetch/resource_fetcher.cc | 17 +++- - .../platform/loader/fetch/resource_fetcher.h | 4 +- - 21 files changed, 175 insertions(+), 31 deletions(-) + .../platform/loader/fetch/resource_fetcher.h | 2 + + 21 files changed, 178 insertions(+), 36 deletions(-) create mode 100644 components/browser_ui/site_settings/android/java/res/drawable-hdpi/permission_images.png create mode 100644 components/browser_ui/site_settings/android/java/res/drawable-mdpi/permission_images.png create mode 100644 components/browser_ui/site_settings/android/java/res/drawable-xhdpi/permission_images.png @@ -323,26 +323,32 @@ diff --git a/third_party/blink/public/platform/web_content_settings_client.h b/t diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc -@@ -4028,13 +4028,6 @@ const mojom::RendererContentSettingsPtr& LocalFrame::GetContentSettings() { - return loader_.GetDocumentLoader()->GetContentSettings(); +@@ -4028,19 +4028,6 @@ bool LocalFrame::IsSameOrigin() { + return security_origin->IsSameOriginWith(top_security_origin); } -bool LocalFrame::ImagesEnabled() { - DCHECK(!IsDetached()); -- +- // If this is called in the middle of detach, GetDocumentLoader() might +- // already be nullptr. +- if (!loader_.GetDocumentLoader()) { +- return false; +- } - bool allow_image_renderer = GetSettings()->GetImagesEnabled(); -- bool allow_image_content_setting = GetContentSettings()->allow_image; +- bool allow_image_content_setting = +- loader_.GetDocumentLoader()->GetContentSettings()->allow_image; - return allow_image_renderer && allow_image_content_setting; -} - +- bool LocalFrame::ScriptEnabled() { DCHECK(!IsDetached()); + // If this is called in the middle of detach, GetDocumentLoader() might diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h --- a/third_party/blink/renderer/core/frame/local_frame.h +++ b/third_party/blink/renderer/core/frame/local_frame.h -@@ -929,12 +929,6 @@ class CORE_EXPORT LocalFrame final - // Can only be called while the frame is not detached. - const mojom::RendererContentSettingsPtr& GetContentSettings(); +@@ -926,12 +926,6 @@ class CORE_EXPORT LocalFrame final + return *v8_local_compile_hints_producer_; + } - // Returns whether images are allowed to load for the current frame. This is a - // convenience method that checks both renderer content settings and frame @@ -356,14 +362,18 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/b diff --git a/third_party/blink/renderer/core/html/image_document.cc b/third_party/blink/renderer/core/html/image_document.cc --- a/third_party/blink/renderer/core/html/image_document.cc +++ b/third_party/blink/renderer/core/html/image_document.cc -@@ -140,7 +140,10 @@ void ImageDocumentParser::AppendBytes(const char* data, size_t length) { +@@ -140,7 +140,14 @@ void ImageDocumentParser::AppendBytes(const char* data, size_t length) { return; LocalFrame* frame = GetDocument()->GetFrame(); - bool allow_image = frame->ImagesEnabled(); + Settings* settings = frame->GetSettings(); + bool allow_image_renderer = !settings || settings->GetImagesEnabled(); -+ bool allow_image_content_setting = frame->GetContentSettings()->allow_image; ++ bool allow_image_content_setting = false; ++ if (auto* client = frame->GetContentSettingsClient()) { ++ allow_image_content_setting = client->AllowImage(allow_image_renderer, ++ GetDocument()->Url()); ++ } + bool allow_image = allow_image_renderer && allow_image_content_setting; if (!allow_image) { auto* client = frame->GetContentSettingsClient(); @@ -371,7 +381,7 @@ diff --git a/third_party/blink/renderer/core/html/image_document.cc b/third_part diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/third_party/blink/renderer/core/loader/frame_fetch_context.cc --- a/third_party/blink/renderer/core/loader/frame_fetch_context.cc +++ b/third_party/blink/renderer/core/loader/frame_fetch_context.cc -@@ -244,6 +244,7 @@ ResourceFetcher* FrameFetchContext::CreateFetcherForCommittedDocument( +@@ -243,6 +243,7 @@ ResourceFetcher* FrameFetchContext::CreateFetcherForCommittedDocument( fetcher->SetResourceLoadObserver( MakeGarbageCollected( loader, document, fetcher->GetProperties())); @@ -379,7 +389,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/thi fetcher->SetAutoLoadImages( frame->GetSettings()->GetLoadsImagesAutomatically()); fetcher->SetEarlyHintsPreloadedResources( -@@ -418,16 +419,11 @@ void FrameFetchContext::AddResourceTiming( +@@ -415,16 +416,11 @@ void FrameFetchContext::AddResourceTiming( ->AddResourceTiming(std::move(info), initiator_type); } @@ -414,7 +424,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.h b/thir diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/renderer/core/page/page.cc --- a/third_party/blink/renderer/core/page/page.cc +++ b/third_party/blink/renderer/core/page/page.cc -@@ -892,9 +892,8 @@ void Page::SettingsChanged(ChangeType change_type) { +@@ -992,9 +992,8 @@ void Page::SettingsChanged(ChangeType change_type) { for (Frame* frame = MainFrame(); frame; frame = frame->Tree().TraverseNext()) { if (auto* local_frame = DynamicTo(frame)) { @@ -441,15 +451,15 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/fetch_context.h b/ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc --- a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc +++ b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc -@@ -768,6 +768,7 @@ ResourceFetcher::ResourceFetcher(const ResourceFetcherInit& init) +@@ -777,6 +777,7 @@ ResourceFetcher::ResourceFetcher(const ResourceFetcherInit& init) blob_registry_remote_(init.context_lifecycle_notifier), context_lifecycle_notifier_(init.context_lifecycle_notifier), auto_load_images_(true), + images_enabled_(true), allow_stale_resources_(false), - image_fetched_(false) { - InstanceCounters::IncrementCounter(InstanceCounters::kResourceFetcherCounter); -@@ -1894,7 +1895,7 @@ bool ResourceFetcher::IsImageResourceDisallowedToBeReused( + image_fetched_(false), + transparent_image_optimization_enabled_(base::FeatureList::IsEnabled( +@@ -1916,7 +1917,7 @@ bool ResourceFetcher::IsImageResourceDisallowedToBeReused( if (existing_resource.GetType() != ResourceType::kImage) return false; @@ -458,7 +468,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c } ResourceFetcher::RevalidationPolicy -@@ -2137,8 +2138,20 @@ void ResourceFetcher::SetAutoLoadImages(bool enable) { +@@ -2159,8 +2160,20 @@ void ResourceFetcher::SetAutoLoadImages(bool enable) { ReloadImagesIfNotDeferred(); } @@ -483,7 +493,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h --- a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h +++ b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h -@@ -225,6 +225,7 @@ class PLATFORM_EXPORT ResourceFetcher +@@ -229,6 +229,7 @@ class PLATFORM_EXPORT ResourceFetcher bool StartLoad(Resource*, bool is_potentially_unused_preload = false); void SetAutoLoadImages(bool); @@ -491,12 +501,9 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h FetchContext& Context() const; void ClearContext(); -@@ -686,8 +687,9 @@ class PLATFORM_EXPORT ResourceFetcher - // This is not in the bit field below because we want to use AutoReset. - bool is_in_request_resource_ = false; +@@ -692,6 +693,7 @@ class PLATFORM_EXPORT ResourceFetcher -- // 28 bits left -+ // 27 bits left + // 27 bits left bool auto_load_images_ : 1; + bool images_enabled_ : 1; bool allow_stale_resources_ : 1; diff --git a/build/patches/TEMP-Add-a-log-to-track-strange-behavior.patch b/build/patches/TEMP-Add-a-log-to-track-strange-behavior.patch index fcd0196b..be593a05 100644 --- a/build/patches/TEMP-Add-a-log-to-track-strange-behavior.patch +++ b/build/patches/TEMP-Add-a-log-to-track-strange-behavior.patch @@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc --- a/net/spdy/spdy_session.cc +++ b/net/spdy/spdy_session.cc -@@ -2984,6 +2984,7 @@ void SpdySession::OnHeaders(spdy::SpdyStreamId stream_id, +@@ -2985,6 +2985,7 @@ void SpdySession::OnHeaders(spdy::SpdyStreamId stream_id, if (it == active_streams_.end()) { // NOTE: it may just be that the stream was cancelled. LOG(WARNING) << "Received HEADERS for invalid stream " << stream_id; diff --git a/build/patches/Temp-guard-FileSystemAccessPersistentPermissions.patch b/build/patches/Temp-guard-FileSystemAccessPersistentPermissions.patch index 70d7e35b..bc4f7e2e 100644 --- a/build/patches/Temp-guard-FileSystemAccessPersistentPermissions.patch +++ b/build/patches/Temp-guard-FileSystemAccessPersistentPermissions.patch @@ -31,7 +31,7 @@ diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permiss diff --git a/chrome/browser/file_system_access/file_system_access_features.cc b/chrome/browser/file_system_access/file_system_access_features.cc --- a/chrome/browser/file_system_access/file_system_access_features.cc +++ b/chrome/browser/file_system_access/file_system_access_features.cc -@@ -31,4 +31,8 @@ BASE_FEATURE(kFileSystemAccessSymbolicLinkCheck, +@@ -34,4 +34,8 @@ BASE_FEATURE(kFileSystemAccessSymbolicLinkCheck, "FileSystemAccessSymbolicLinkCheck", base::FEATURE_DISABLED_BY_DEFAULT); diff --git a/build/patches/Temp-try-to-fix-DIPS-service.patch b/build/patches/Temp-try-to-fix-DIPS-service.patch deleted file mode 100644 index 7ebb4e12..00000000 --- a/build/patches/Temp-try-to-fix-DIPS-service.patch +++ /dev/null @@ -1,35 +0,0 @@ -From: uazo -Date: Mon, 29 Jul 2024 12:12:37 +0000 -Subject: Temp try to fix DIPS service - ---- - chrome/browser/dips/dips_service.cc | 1 + - chrome/browser/ui/tab_helpers.cc | 4 +++- - 2 files changed, 4 insertions(+), 1 deletion(-) - -diff --git a/chrome/browser/dips/dips_service.cc b/chrome/browser/dips/dips_service.cc ---- a/chrome/browser/dips/dips_service.cc -+++ b/chrome/browser/dips/dips_service.cc -@@ -57,6 +57,7 @@ - BASE_FEATURE(kDipsPrepopulation, - "DipsPrepopulation", - base::FEATURE_ENABLED_BY_DEFAULT); -+SET_CROMITE_FEATURE_DISABLED(kDipsPrepopulation); - - namespace { - -diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc ---- a/chrome/browser/ui/tab_helpers.cc -+++ b/chrome/browser/ui/tab_helpers.cc -@@ -493,7 +493,9 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { - PrefsTabHelper::CreateForWebContents(web_contents); - prerender::NoStatePrefetchTabHelper::CreateForWebContents(web_contents); - RecentlyAudibleHelper::CreateForWebContents(web_contents); -- RedirectHeuristicTabHelper::CreateForWebContents(web_contents); -+ if (base::FeatureList::IsEnabled(features::kDIPS)) { -+ RedirectHeuristicTabHelper::CreateForWebContents(web_contents); -+ } - #if BUILDFLAG(IS_ANDROID) - RequestDesktopSiteWebContentsObserverAndroid::CreateForWebContents( - web_contents); --- diff --git a/build/patches/Timezone-customization.patch b/build/patches/Timezone-customization.patch index c5d87880..6604230b 100644 --- a/build/patches/Timezone-customization.patch +++ b/build/patches/Timezone-customization.patch @@ -30,9 +30,9 @@ Require: Content-settings-infrastructure.patch .../common/content_settings_mojom_traits.cc | 3 +- .../common/content_settings_mojom_traits.h | 5 + .../content_settings/core/common/pref_names.h | 3 + - .../renderer/content_settings_agent_impl.cc | 78 +++++++ + .../renderer/content_settings_agent_impl.cc | 77 +++++++ .../renderer/content_settings_agent_impl.h | 11 + - 22 files changed, 679 insertions(+), 1 deletion(-) + 22 files changed, 678 insertions(+), 1 deletion(-) create mode 100755 components/browser_ui/site_settings/android/java/res/layout/time_zone_select_dialog.xml create mode 100755 components/browser_ui/site_settings/android/java/res/layout/timezoneoverride_site_settings_preference.xml create mode 100755 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/TimezoneOverrideSiteSettingsPreference.java @@ -655,7 +655,7 @@ new file mode 100644 diff --git a/components/content_settings/core/browser/content_settings_pref_provider.cc b/components/content_settings/core/browser/content_settings_pref_provider.cc --- a/components/content_settings/core/browser/content_settings_pref_provider.cc +++ b/components/content_settings/core/browser/content_settings_pref_provider.cc -@@ -79,6 +79,8 @@ void PrefProvider::RegisterProfilePrefs( +@@ -81,6 +81,8 @@ void PrefProvider::RegisterProfilePrefs( info->GetPrefRegistrationFlags()); } @@ -664,7 +664,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov // Obsolete prefs ---------------------------------------------------------- // These prefs have been removed, but need to be registered so they can -@@ -151,6 +153,10 @@ PrefProvider::PrefProvider(PrefService* prefs, +@@ -153,6 +155,10 @@ PrefProvider::PrefProvider(PrefService* prefs, event_args->set_number_of_exceptions( num_exceptions); // PrefProvider::PrefProvider. }); @@ -675,7 +675,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov } PrefProvider::~PrefProvider() { -@@ -444,4 +450,14 @@ void PrefProvider::SetClockForTesting(base::Clock* clock) { +@@ -440,4 +446,14 @@ void PrefProvider::SetClockForTesting(base::Clock* clock) { } } @@ -729,7 +729,7 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.cc diff --git a/components/content_settings/core/browser/host_content_settings_map.cc b/components/content_settings/core/browser/host_content_settings_map.cc --- a/components/content_settings/core/browser/host_content_settings_map.cc +++ b/components/content_settings/core/browser/host_content_settings_map.cc -@@ -673,6 +673,14 @@ void HostContentSettingsMap::SetClockForTesting(base::Clock* clock) { +@@ -667,6 +667,14 @@ void HostContentSettingsMap::SetClockForTesting(base::Clock* clock) { } } @@ -747,9 +747,9 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map. diff --git a/components/content_settings/core/browser/host_content_settings_map.h b/components/content_settings/core/browser/host_content_settings_map.h --- a/components/content_settings/core/browser/host_content_settings_map.h +++ b/components/content_settings/core/browser/host_content_settings_map.h -@@ -367,6 +367,9 @@ class HostContentSettingsMap : public content_settings::Observer, - allow_invalid_secondary_pattern_for_testing_ = allow; - } +@@ -370,6 +370,9 @@ class HostContentSettingsMap : public content_settings::Observer, + // Returns the current time of the `clock_`. + base::Time Now() const { return clock_->Now(); } + void GetTimezoneOverrideValue(std::string& custom_timezone) const; + void SetTimezoneOverrideValue(const std::string& custom_timezone); @@ -815,7 +815,7 @@ diff --git a/components/content_settings/core/common/content_settings_mojom_trai diff --git a/components/content_settings/core/common/pref_names.h b/components/content_settings/core/common/pref_names.h --- a/components/content_settings/core/common/pref_names.h +++ b/components/content_settings/core/common/pref_names.h -@@ -232,6 +232,9 @@ inline constexpr char kDesktopSiteWindowSettingEnabled[] = +@@ -238,6 +238,9 @@ inline constexpr char kDesktopSiteWindowSettingEnabled[] = "desktop_site.window_setting"; #endif @@ -839,23 +839,15 @@ diff --git a/components/content_settings/renderer/content_settings_agent_impl.cc #include "components/content_settings/core/common/content_settings.h" #include "components/content_settings/core/common/content_settings.mojom.h" #include "components/content_settings/core/common/content_settings_pattern.h" -@@ -368,6 +370,7 @@ bool ContentSettingsAgentImpl::AllowScript(bool enabled_per_settings) { - allow = allow || IsAllowlistedForContentSettingsCromite(); +@@ -169,6 +171,7 @@ void ContentSettingsAgentImpl::DidCommitProvisionalLoad( + // correctly detect that a piece of content flipped from "not blocked" to + // "blocked". + ClearBlockedContentSettings(); // do not remove ++ UpdateOverrides(); - cached_script_permissions_[frame] = allow; -+ if (allow) UpdateOverrides(); - return allow; - } - -@@ -383,6 +386,7 @@ bool ContentSettingsAgentImpl::AllowScriptFromSource( - ContentSettingsType::JAVASCRIPT, script_url, enabled_per_settings); - } - allow = allow || IsAllowlistedForContentSettingsCromite(); -+ if (allow) UpdateOverrides(); - return allow; - } - -@@ -480,4 +484,78 @@ bool ContentSettingsAgentImpl::IsAllowlistedForContentSettingsCromite() const { + blink::WebLocalFrame* frame = render_frame()->GetWebFrame(); + if (frame->Parent()) +@@ -480,4 +483,78 @@ bool ContentSettingsAgentImpl::IsAllowlistedForContentSettingsCromite() const { return false; } diff --git a/build/patches/Use-BoringSSL-for-RandBytes.patch b/build/patches/Use-BoringSSL-for-RandBytes.patch index 324d6c96..fe9de2ed 100644 --- a/build/patches/Use-BoringSSL-for-RandBytes.patch +++ b/build/patches/Use-BoringSSL-for-RandBytes.patch @@ -12,7 +12,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/base/rand_util_fuchsia.cc b/base/rand_util_fuchsia.cc --- a/base/rand_util_fuchsia.cc +++ b/base/rand_util_fuchsia.cc -@@ -30,7 +30,7 @@ std::atomic g_use_boringssl; +@@ -29,7 +29,7 @@ std::atomic g_use_boringssl; BASE_FEATURE(kUseBoringSSLForRandBytes, "UseBoringSSLForRandBytes", @@ -24,7 +24,7 @@ diff --git a/base/rand_util_fuchsia.cc b/base/rand_util_fuchsia.cc diff --git a/base/rand_util_posix.cc b/base/rand_util_posix.cc --- a/base/rand_util_posix.cc +++ b/base/rand_util_posix.cc -@@ -163,7 +163,7 @@ std::atomic g_use_boringssl; +@@ -162,7 +162,7 @@ std::atomic g_use_boringssl; BASE_FEATURE(kUseBoringSSLForRandBytes, "UseBoringSSLForRandBytes", @@ -36,7 +36,7 @@ diff --git a/base/rand_util_posix.cc b/base/rand_util_posix.cc diff --git a/base/rand_util_win.cc b/base/rand_util_win.cc --- a/base/rand_util_win.cc +++ b/base/rand_util_win.cc -@@ -41,7 +41,7 @@ std::atomic g_use_boringssl; +@@ -40,7 +40,7 @@ std::atomic g_use_boringssl; BASE_FEATURE(kUseBoringSSLForRandBytes, "UseBoringSSLForRandBytes", diff --git a/build/patches/Use-list-mode-for-tab-switcher.patch b/build/patches/Use-list-mode-for-tab-switcher.patch index dbeffedf..d65f9ddc 100644 --- a/build/patches/Use-list-mode-for-tab-switcher.patch +++ b/build/patches/Use-list-mode-for-tab-switcher.patch @@ -11,9 +11,9 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../java/res/xml/privacy_preferences.xml | 7 ++++ .../flags/cromite/sTabSwitcherListMode.java | 33 +++++++++++++++++++ .../Use-list-mode-for-tab-switcher.grdp | 9 +++++ - .../browser/toolbar/top/ToolbarPhone.java | 15 ++++++--- + .../browser/toolbar/top/ToolbarPhone.java | 16 +++++---- .../tab-switcher-list-mode.inc | 3 ++ - 6 files changed, 64 insertions(+), 7 deletions(-) + 6 files changed, 64 insertions(+), 8 deletions(-) create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sTabSwitcherListMode.java create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Use-list-mode-for-tab-switcher.grdp create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/tab-switcher-list-mode.inc @@ -21,15 +21,15 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiFeatureUtilities.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiFeatureUtilities.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiFeatureUtilities.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiFeatureUtilities.java -@@ -14,6 +14,7 @@ import org.chromium.base.cached_flags.IntCachedFieldTrialParameter; - import org.chromium.build.BuildConfig; +@@ -11,6 +11,7 @@ import org.chromium.base.ResettersForTesting; + import org.chromium.base.SysUtils; import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.ui.base.DeviceFormFactor; +import org.chromium.chrome.browser.flags.cromite.sTabSwitcherListMode; - /** A class to handle the state of flags for tab_management. */ - public class TabUiFeatureUtilities { -@@ -67,8 +68,7 @@ public class TabUiFeatureUtilities { + import java.util.Locale; + import java.util.Set; +@@ -46,8 +47,7 @@ public class TabUiFeatureUtilities { /** Returns whether the Grid Tab Switcher UI should use list mode. */ public static boolean shouldUseListMode() { @@ -119,7 +119,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.omnibox.LocationBar; import org.chromium.chrome.browser.omnibox.LocationBarCoordinator; import org.chromium.chrome.browser.omnibox.NewTabPageDelegate; -@@ -521,7 +522,8 @@ public class ToolbarPhone extends ToolbarLayout +@@ -503,7 +504,8 @@ public class ToolbarPhone extends ToolbarLayout private void inflateTabSwitchingResources() { mToggleTabStackButton = findViewById(R.id.tab_switcher_button); @@ -129,35 +129,30 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow } private void enableTabSwitchingResources() { -@@ -2016,14 +2018,15 @@ public class ToolbarPhone extends ToolbarLayout +@@ -1935,7 +1937,7 @@ public class ToolbarPhone extends ToolbarLayout // On entering the tab switcher, set the focusability of the url bar to be false. This will // occur at the start of the enter event, and will later be reset to true upon finishing the - // exit event only in #onStartSurfaceStateChanged. + // exit event. - if (inTabSwitcherMode) { + if (inTabSwitcherMode && !sTabSwitcherListMode.getInstance().isEnabled()) { mLocationBar.setUrlBarFocusable(false); } - // This method is only used for grid tab switcher with the start surface disabled. When - // start surface is enabled, omnibox state is updated in onStartSurfaceStateChanged(), which - // is always called before setTabSwitcherMode(), so skip here. -- if (getToolbarDataProvider().shouldShowLocationBarInOverviewMode()) { -+ if (getToolbarDataProvider().shouldShowLocationBarInOverviewMode() -+ && !sTabSwitcherListMode.getInstance().isEnabled()) { - // Prevent pressing the tab switcher button until after transition finishes. - mToggleTabStackButton.setClickable(false); - return; -@@ -2043,7 +2046,8 @@ public class ToolbarPhone extends ToolbarLayout +@@ -1952,9 +1954,10 @@ public class ToolbarPhone extends ToolbarLayout + && (mTabSwitcherState == STATIC_TAB || mTabSwitcherState == EXITING_TAB_SWITCHER)) { return; } - // Prevent pressing the tab switcher button until after transition finishes. +- // Prevent pressing the tab switcher button until after transition finishes. - mToggleTabStackButton.setClickable(false); -+ if (!sTabSwitcherListMode.getInstance().isEnabled()) +- ++ if (!sTabSwitcherListMode.getInstance().isEnabled()) { ++ // Prevent pressing the tab switcher button until after transition finishes. + mToggleTabStackButton.setClickable(false); - ++ } mTabSwitcherState = inTabSwitcherMode ? ENTERING_TAB_SWITCHER : EXITING_TAB_SWITCHER; -@@ -2142,7 +2146,8 @@ public class ToolbarPhone extends ToolbarLayout + // The width of location bar depends on mTabSwitcherState so layout request is needed. See +@@ -2014,7 +2017,8 @@ public class ToolbarPhone extends ToolbarLayout } if (mTabSwitcherState == ENTERING_TAB_SWITCHER) { mTabSwitcherState = TAB_SWITCHER; @@ -165,8 +160,8 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow + if (!sTabSwitcherListMode.getInstance().isEnabled()) + mToggleTabStackButton.setClickable(false); } - // Ensure clickable if in STATIC_TAB mode. This handles both when the state transitions - // are ignored in favor of onStartSurfaceStateChanged() and when normal transitions occur. + // Ensure clickable if in STATIC_TAB mode. + if (mTabSwitcherState == STATIC_TAB) { diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/tab-switcher-list-mode.inc b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/tab-switcher-list-mode.inc new file mode 100644 --- /dev/null diff --git a/build/patches/User-agent-customization.patch b/build/patches/User-agent-customization.patch index 69244457..d29b3606 100644 --- a/build/patches/User-agent-customization.patch +++ b/build/patches/User-agent-customization.patch @@ -17,13 +17,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../layout/custom_useragent_preferences.xml | 106 ++++++++++ .../android/java/res/xml/main_preferences.xml | 5 + .../java/res/xml/useragent_preferences.xml | 25 +++ - .../chrome/browser/app/ChromeActivity.java | 2 +- + .../chrome/browser/app/ChromeActivity.java | 1 + .../init/ChromeBrowserInitializer.java | 3 + .../PrivacyPreferencesManagerImpl.java | 42 ++++ .../settings/UserAgentPreferences.java | 183 ++++++++++++++++++ .../browser/tab/RequestDesktopUtils.java | 1 + - .../chromium/chrome/browser/tab/TabImpl.java | 62 +++++- - .../chromium/chrome/browser/tab/TabUtils.java | 17 +- + .../chromium/chrome/browser/tab/TabImpl.java | 64 +++++- + .../chromium/chrome/browser/tab/TabUtils.java | 11 +- .../browser/android/content/content_utils.cc | 30 +++ .../preferences/browser_prefs_android.cc | 7 + .../privacy_preferences_manager_impl.cc | 124 ++++++++++++ @@ -46,7 +46,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/web_contents/web_contents_impl.cc | 6 +- .../framehost/NavigationControllerImpl.java | 3 +- content/renderer/render_thread_impl.cc | 1 - - 36 files changed, 794 insertions(+), 23 deletions(-) + 36 files changed, 796 insertions(+), 16 deletions(-) create mode 100644 chrome/android/java/res/layout/custom_useragent_preferences.xml create mode 100644 chrome/android/java/res/xml/useragent_preferences.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/settings/UserAgentPreferences.java @@ -90,7 +90,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 -@@ -944,6 +944,7 @@ chrome_java_sources = [ +@@ -940,6 +940,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/payments/ui/DimmingDialog.java", "java/src/org/chromium/chrome/browser/payments/ui/LineItem.java", "java/src/org/chromium/chrome/browser/payments/ui/PaymentAppComparator.java", @@ -257,15 +257,14 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -2767,7 +2767,7 @@ public abstract class ChromeActivity +@@ -2693,6 +2693,7 @@ public abstract class ChromeActivity TabUtils.switchUserAgent( currentTab, usingDesktopUserAgent, -- /* forcedByUser= */ false, + /* forcedByUser= */ true, UseDesktopUserAgentCaller.ON_MENU_OR_KEYBOARD_ACTION); - // TODO(crbug.com/40917998): Remove this IPH when the usage is low. - RequestDesktopUtils.maybeShowUserEducationPromptForAppMenuSelection( + TrackerFactory.getTrackerForProfile(profile) + .notifyEvent(EventConstants.APP_MENU_DESKTOP_SITE_EXCEPTION_ADDED); diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java --- a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java @@ -540,18 +539,18 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/RequestDesktopUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/RequestDesktopUtils.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/RequestDesktopUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/RequestDesktopUtils.java -@@ -137,6 +137,7 @@ public class RequestDesktopUtils { +@@ -132,6 +132,7 @@ public class RequestDesktopUtils { */ public static void setRequestDesktopSiteContentSettingsForUrl( Profile profile, GURL url, boolean useDesktopUserAgent) { + if ((true)) return; - boolean isIncognito = - Profile.getBrowserProfileTypeFromProfile(profile) == BrowserProfileType.INCOGNITO; + boolean isOffTheRecord = profile.isOffTheRecord(); String domainWildcardPattern = + WebsitePreferenceBridge.toDomainWildcardPattern(url.getSpec()); diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java -@@ -66,6 +66,9 @@ import org.chromium.components.autofill.AutofillFeatures; +@@ -65,6 +65,9 @@ import org.chromium.components.autofill.AutofillFeatures; import org.chromium.components.autofill.AutofillProvider; import org.chromium.components.autofill.AutofillSelectionActionMenuDelegate; import org.chromium.components.autofill.AutofillSelectionMenuItemHelper; @@ -559,8 +558,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav +import org.chromium.components.content_settings.ContentSettingsType; +import org.chromium.components.browser_ui.site_settings.WebsitePreferenceBridge; import org.chromium.components.dom_distiller.core.DomDistillerUrlUtils; + import org.chromium.components.embedder_support.contextmenu.ContextMenuPopulatorFactory; import org.chromium.components.embedder_support.util.UrlConstants; - import org.chromium.components.embedder_support.view.ContentView; @@ -98,6 +101,9 @@ import org.chromium.chrome.browser.preferences.Pref; import org.chromium.chrome.browser.profiles.ProfileManager; import org.chromium.components.user_prefs.UserPrefs; @@ -571,7 +570,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav /** * Implementation of the interface {@link Tab}. Contains and manages a {@link ContentView}. This * class is not intended to be extended. -@@ -1923,9 +1929,6 @@ class TabImpl implements Tab { +@@ -1950,9 +1956,6 @@ class TabImpl implements Tab { } if (mWebContents != null) { @@ -581,7 +580,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav mWebContents.getNavigationController().loadIfNecessary(); } mIsBeingRestored = true; -@@ -2239,6 +2242,11 @@ class TabImpl implements Tab { +@@ -2266,6 +2269,11 @@ class TabImpl implements Tab { url = webContents.getVisibleUrl(); } @@ -593,8 +592,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav // Do not override UA if there is a tab level setting. if (tabUserAgent != TabUserAgent.DEFAULT) { recordHistogramUseDesktopUserAgent(currentRequestDesktopSite); -@@ -2318,6 +2326,54 @@ class TabImpl implements Tab { +@@ -2311,7 +2319,7 @@ class TabImpl implements Tab { } + boolean usingDesktopUserAgent = + getWebContents().getNavigationController().getUseDesktopUserAgent(); +- TabUtils.switchUserAgent(this, /* switchToDesktop= */ !usingDesktopUserAgent, caller); ++ TabUtils.switchUserAgent(this, /* switchToDesktop= */ !usingDesktopUserAgent, /* forcedByUser= */ false, caller); + } + + /** Sets the TabLaunchType for tabs launched with an unset launch type. */ +@@ -2348,6 +2356,54 @@ class TabImpl implements Tab { + return mWebContentsDelegate.isTrustedWebActivity(getWebContents()); } + int overrideUserAgentWhenUnFrozen = (int)UserAgentOverrideOption.INHERIT; @@ -651,7 +659,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.java -@@ -37,6 +37,10 @@ import org.chromium.ui.display.DisplayAndroidManager; +@@ -39,6 +39,10 @@ import org.chromium.ui.display.DisplayAndroidManager; import org.chromium.ui.display.DisplayUtil; import org.chromium.url.GURL; @@ -662,22 +670,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.ja import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; -@@ -125,18 +129,7 @@ public class TabUtils { - // TODO(crbug.com/40891239): Remove param forcedByUser from TabUtils#switchUserAgent. - public static void switchUserAgent( - Tab tab, boolean switchToDesktop, boolean forcedByUser, int caller) { +@@ -123,11 +127,8 @@ public class TabUtils { + * @param switchToDesktop Whether switching the user agent to desktop. + * @param caller The caller of this method. + */ +- public static void switchUserAgent(Tab tab, boolean switchToDesktop, int caller) { - final boolean reloadOnChange = !tab.isNativePage(); - tab.getWebContents() - .getNavigationController() - .setUseDesktopUserAgent(switchToDesktop, reloadOnChange, caller); -- if (forcedByUser) { -- @TabUserAgent -- int tabUserAgent = switchToDesktop ? TabUserAgent.DESKTOP : TabUserAgent.MOBILE; -- if (isDesktopSiteGlobalEnabled(tab.getProfile()) == switchToDesktop) { -- tabUserAgent = TabUserAgent.DEFAULT; -- } -- tab.setUserAgent(tabUserAgent); -- } ++ public static void switchUserAgent(Tab tab, boolean switchToDesktop, boolean forcedByUser, int caller) { + tab.SetOverrideUserAgent(switchToDesktop, forcedByUser); } @@ -954,7 +956,7 @@ diff --git a/chrome/browser/content_settings/request_desktop_site_web_contents_o diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java -@@ -1043,8 +1043,6 @@ public final class ChromePreferenceKeys { +@@ -1033,8 +1033,6 @@ public final class ChromePreferenceKeys { SIGNIN_PROMO_NTP_LAST_SHOWN_TIME, SYNC_PROMO_TOTAL_SHOW_COUNT, SEARCH_RESUMPTION_MODULE_COLLAPSE_ON_NTP, @@ -984,7 +986,7 @@ diff --git a/chrome/browser/privacy/settings/java/src/org/chromium/chrome/browse diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.java b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.java --- a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.java +++ b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.java -@@ -315,6 +315,8 @@ public interface Tab extends TabLifecycle { +@@ -331,6 +331,8 @@ public interface Tab extends TabLifecycle { /** Goes to the navigation entry after the current one. */ void goForward(); @@ -1004,11 +1006,11 @@ diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browse + /** * Finds the {@link TabModelSelector} bound to an Activity instance of a given index. - * @param index The index of {@link TabModelSelector} to get. + * diff --git a/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManagerImpl.java b/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManagerImpl.java --- a/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManagerImpl.java +++ b/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManagerImpl.java -@@ -414,6 +414,24 @@ public class TabWindowManagerImpl implements ActivityStateListener, TabWindowMan +@@ -416,6 +416,24 @@ public class TabWindowManagerImpl implements ActivityStateListener, TabWindowMan return null; } @@ -1072,7 +1074,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 -@@ -1880,6 +1880,14 @@ inline constexpr char kNaviOnboardGroup[] = "browser.navi_onboard_group"; +@@ -1899,6 +1899,14 @@ inline constexpr char kNaviOnboardGroup[] = "browser.navi_onboard_group"; inline constexpr char kHadThreeConsecutiveNotificationPermissionDenies[] = "profile.content_settings.had_three_consecutive_denies.notifications"; @@ -1236,7 +1238,7 @@ diff --git a/content/browser/renderer_host/navigation_controller_android.cc b/co const JavaParamRef& j_initiator_origin, jboolean has_user_gesture, jboolean should_clear_history_list, -@@ -354,6 +355,9 @@ base::android::ScopedJavaLocalRef NavigationControllerAndroid::LoadUrl( +@@ -351,6 +352,9 @@ base::android::ScopedJavaLocalRef NavigationControllerAndroid::LoadUrl( params.navigation_ui_data = std::move(navigation_ui_data); @@ -1260,7 +1262,7 @@ diff --git a/content/browser/renderer_host/navigation_controller_android.h b/con diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc -@@ -3644,6 +3644,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( +@@ -3345,6 +3345,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( switches::kLacrosUseChromeosProtectedMedia, switches::kLacrosUseChromeosProtectedAv1, #endif @@ -1274,12 +1276,12 @@ diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser @@ -17,6 +17,7 @@ #include - #include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h" + #include "base/allocator/partition_allocator/src/partition_alloc/buildflags.h" +#include "base/base_switches.h" #include "base/check_op.h" #include "base/command_line.h" #include "base/containers/contains.h" -@@ -2163,8 +2164,6 @@ void WebContentsImpl::SetUserAgentOverride( +@@ -2214,8 +2215,6 @@ void WebContentsImpl::SetUserAgentOverride( OPTIONAL_TRACE_EVENT2("content", "WebContentsImpl::SetUserAgentOverride", "ua_override", ua_override.ua_string_override, "override_in_new_tabs", override_in_new_tabs); @@ -1288,7 +1290,7 @@ diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser if (GetUserAgentOverride() == ua_override) { return; -@@ -3229,6 +3228,9 @@ const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences() { +@@ -3232,6 +3231,9 @@ const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences() { #else prefs.viewport_meta_enabled = false; #endif @@ -1321,7 +1323,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/frameh diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc --- a/content/renderer/render_thread_impl.cc +++ b/content/renderer/render_thread_impl.cc -@@ -864,7 +864,6 @@ void RenderThreadImpl::InitializeRenderer( +@@ -882,7 +882,6 @@ void RenderThreadImpl::InitializeRenderer( const blink::UserAgentMetadata& user_agent_metadata, const std::vector& cors_exempt_header_list, blink::mojom::OriginTrialsSettingsPtr origin_trials_settings) { diff --git a/build/patches/Viewport-Protection-flag.patch b/build/patches/Viewport-Protection-flag.patch index f9563898..8f1e5129 100644 --- a/build/patches/Viewport-Protection-flag.patch +++ b/build/patches/Viewport-Protection-flag.patch @@ -282,7 +282,7 @@ diff --git a/third_party/blink/public/common/widget/device_emulation_params.h b/ diff --git a/third_party/blink/renderer/core/css/css_properties.json5 b/third_party/blink/renderer/core/css/css_properties.json5 --- a/third_party/blink/renderer/core/css/css_properties.json5 +++ b/third_party/blink/renderer/core/css/css_properties.json5 -@@ -4034,6 +4034,7 @@ +@@ -4063,6 +4063,7 @@ }, { name: "opacity", @@ -290,7 +290,7 @@ diff --git a/third_party/blink/renderer/core/css/css_properties.json5 b/third_pa property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], interpolable: true, compositable: true, -@@ -4041,7 +4042,6 @@ +@@ -4070,7 +4071,6 @@ field_template: "primitive", default_value: "1.0", type_name: "float", @@ -301,7 +301,7 @@ diff --git a/third_party/blink/renderer/core/css/css_properties.json5 b/third_pa diff --git a/third_party/blink/renderer/core/css/media_values.cc b/third_party/blink/renderer/core/css/media_values.cc --- a/third_party/blink/renderer/core/css/media_values.cc +++ b/third_party/blink/renderer/core/css/media_values.cc -@@ -182,7 +182,7 @@ bool MediaValues::CalculateStrictMode(LocalFrame* frame) { +@@ -196,7 +196,7 @@ bool MediaValues::CalculateStrictMode(LocalFrame* frame) { } float MediaValues::CalculateDevicePixelRatio(LocalFrame* frame) { @@ -313,7 +313,7 @@ diff --git a/third_party/blink/renderer/core/css/media_values.cc b/third_party/b diff --git a/third_party/blink/renderer/core/css/resolver/style_resolver.cc b/third_party/blink/renderer/core/css/resolver/style_resolver.cc --- a/third_party/blink/renderer/core/css/resolver/style_resolver.cc +++ b/third_party/blink/renderer/core/css/resolver/style_resolver.cc -@@ -1877,7 +1877,12 @@ ComputedStyleBuilder StyleResolver::InitialStyleBuilderForElement() const { +@@ -1971,7 +1971,12 @@ ComputedStyleBuilder StyleResolver::InitialStyleBuilderForElement() const { ComputedStyleBuilder builder = CreateComputedStyleBuilder(); builder.SetRtlOrdering(GetDocument().VisuallyOrdered() ? EOrder::kVisual : EOrder::kLogical); @@ -366,15 +366,15 @@ diff --git a/third_party/blink/renderer/core/events/mouse_event.h b/third_party/ diff --git a/third_party/blink/renderer/core/events/pointer_event.h b/third_party/blink/renderer/core/events/pointer_event.h --- a/third_party/blink/renderer/core/events/pointer_event.h +++ b/third_party/blink/renderer/core/events/pointer_event.h -@@ -10,6 +10,7 @@ +@@ -9,6 +9,7 @@ + #include "third_party/blink/renderer/core/core_export.h" #include "third_party/blink/renderer/core/events/mouse_event.h" - #include "third_party/blink/renderer/core/input/device_properties.h" #include "third_party/blink/renderer/platform/wtf/casting.h" +#include "third_party/blink/renderer/core/page/page.h" namespace blink { -@@ -58,11 +59,21 @@ class CORE_EXPORT PointerEvent : public MouseEvent { +@@ -57,11 +58,21 @@ class CORE_EXPORT PointerEvent : public MouseEvent { double screenX() const override { if (ShouldHaveIntegerCoordinates()) return MouseEvent::screenX(); @@ -399,7 +399,7 @@ diff --git a/third_party/blink/renderer/core/events/pointer_event.h b/third_part diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_party/blink/renderer/core/exported/web_view_impl.cc --- a/third_party/blink/renderer/core/exported/web_view_impl.cc +++ b/third_party/blink/renderer/core/exported/web_view_impl.cc -@@ -1056,7 +1056,7 @@ WebPagePopupImpl* WebViewImpl::OpenPagePopup(PagePopupClient* client) { +@@ -1070,7 +1070,7 @@ WebPagePopupImpl* WebViewImpl::OpenPagePopup(PagePopupClient* client) { page_popup_ = WebPagePopupImpl::Create( std::move(popup_widget_host), std::move(widget_host), std::move(widget_receiver), this, agent_group_scheduler, @@ -411,7 +411,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_party/blink/renderer/core/frame/local_dom_window.cc --- a/third_party/blink/renderer/core/frame/local_dom_window.cc +++ b/third_party/blink/renderer/core/frame/local_dom_window.cc -@@ -1515,7 +1515,12 @@ int LocalDOMWindow::outerHeight() const { +@@ -1504,7 +1504,12 @@ int LocalDOMWindow::outerHeight() const { if (frame->IsInFencedFrameTree()) { return innerHeight(); } @@ -425,7 +425,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p Page* page = frame->GetPage(); if (!page) return 0; -@@ -1540,7 +1545,12 @@ int LocalDOMWindow::outerWidth() const { +@@ -1529,7 +1534,12 @@ int LocalDOMWindow::outerWidth() const { if (frame->IsInFencedFrameTree()) { return innerWidth(); } @@ -439,7 +439,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p Page* page = frame->GetPage(); if (!page) return 0; -@@ -1741,7 +1751,8 @@ double LocalDOMWindow::devicePixelRatio() const { +@@ -1730,7 +1740,8 @@ double LocalDOMWindow::devicePixelRatio() const { if (!GetFrame()) return 0.0; @@ -449,7 +449,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p } void LocalDOMWindow::scrollBy(double x, double y) const { -@@ -2340,6 +2351,23 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate, +@@ -2315,6 +2326,23 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate, if (!completed_url.IsEmpty() || result.new_window) result.frame->Navigate(frame_request, WebFrameLoadType::kStandard); @@ -473,7 +473,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p // TODO(japhet): window-open-noopener.html?_top and several tests in // html/browsers/windows/browsing-context-names/ appear to require that // the special case target names (_top, _parent, _self) ignore opener -@@ -2396,6 +2424,15 @@ DOMWindow* LocalDOMWindow::openPictureInPictureWindow( +@@ -2371,6 +2399,15 @@ DOMWindow* LocalDOMWindow::openPictureInPictureWindow( DCHECK(result.new_window); result.frame->Navigate(frame_request, WebFrameLoadType::kStandard); @@ -492,7 +492,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc -@@ -1564,6 +1564,10 @@ void LocalFrame::RestoreScrollOffsets() { +@@ -1563,6 +1563,10 @@ void LocalFrame::RestoreScrollOffsets() { saved_scroll_offsets_ = nullptr; } @@ -500,10 +500,10 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ + page_zoom_factor_base_value_ = factor; +} + - void LocalFrame::SetPageZoomFactor(float factor) { - SetPageAndTextZoomFactors(factor, text_zoom_factor_); + void LocalFrame::SetLayoutZoomFactor(float factor) { + SetLayoutAndTextZoomFactors(factor, text_zoom_factor_); } -@@ -1738,12 +1742,16 @@ mojom::blink::DevicePostureType LocalFrame::GetDevicePosture() { +@@ -1744,12 +1748,16 @@ mojom::blink::DevicePostureType LocalFrame::GetDevicePosture() { return mojo_handler_->GetDevicePosture(); } @@ -513,16 +513,16 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ return 0; double ratio = page_->InspectorDeviceScaleFactorOverride(); -- ratio *= PageZoomFactor(); +- ratio *= LayoutZoomFactor(); + // with_zoom_factor is default true + if (with_zoom_factor) -+ ratio *= PageZoomFactor(); ++ ratio *= LayoutZoomFactor(); + else -+ ratio = page_zoom_factor_; ++ ratio = layout_zoom_factor_; return ratio; } -@@ -3334,6 +3342,11 @@ void LocalFrame::SetScaleFactor(float scale_factor) { +@@ -3343,6 +3351,11 @@ void LocalFrame::SetScaleFactor(float scale_factor) { DCHECK(!GetDocument() || !GetDocument()->Printing()); DCHECK(IsMainFrame()); @@ -537,27 +537,27 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h --- a/third_party/blink/renderer/core/frame/local_frame.h +++ b/third_party/blink/renderer/core/frame/local_frame.h -@@ -427,13 +427,14 @@ class CORE_EXPORT LocalFrame final - void SetInViewSourceMode(bool = true); - - void SetPageZoomFactor(float); -- float PageZoomFactor() const { return page_zoom_factor_; } +@@ -431,13 +431,14 @@ class CORE_EXPORT LocalFrame final + // for embedded frames the effect of the CSS "zoom" property applied to the + // embedding element (e.g.