diff --git a/build/RELEASE b/build/RELEASE index de84431d9..f66f061fe 100644 --- a/build/RELEASE +++ b/build/RELEASE @@ -1 +1 @@ -131.0.6778.205 \ No newline at end of file +132.0.6834.83 \ No newline at end of file diff --git a/build/cromite_patches_list.txt b/build/cromite_patches_list.txt index a349df3d8..6cb74dd2e 100644 --- a/build/cromite_patches_list.txt +++ b/build/cromite_patches_list.txt @@ -124,7 +124,6 @@ Add-flag-to-disable-vibration.patch mime_util-force-text-x-suse-ymp-to-be-downloaded.patch Client-hints-overrides.patch Allow-building-without-enable_reporting.patch -Disable-lock-icon-in-address-bar-by-default.patch Experimental-user-scripts-support.patch Keep-empty-tabs-between-sessions.patch Disable-third-party-origin-trials.patch diff --git a/build/patches/AImageReader-CFI-crash-mitigations.patch b/build/patches/AImageReader-CFI-crash-mitigations.patch index 40a0ef0a9..d48016566 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 -@@ -3408,6 +3408,10 @@ +@@ -3290,6 +3290,10 @@ "name": "enable-identity-in-auth-error", "owners": [ "jlebel@chromium.org", "chrome-signin-team@google.com" ], "expiry_milestone": 135 @@ -145,7 +145,7 @@ diff --git a/gpu/config/gpu_driver_bug_list.json b/gpu/config/gpu_driver_bug_lis 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 -@@ -53,6 +53,11 @@ BASE_FEATURE(kUseGles2ForOopR, +@@ -59,6 +59,11 @@ BASE_FEATURE(kAggressiveShaderCacheLimits, base::FEATURE_DISABLED_BY_DEFAULT); #if BUILDFLAG(IS_ANDROID) @@ -160,9 +160,9 @@ diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc diff --git a/gpu/config/gpu_finch_features.h b/gpu/config/gpu_finch_features.h --- a/gpu/config/gpu_finch_features.h +++ b/gpu/config/gpu_finch_features.h -@@ -24,6 +24,7 @@ GPU_EXPORT BASE_DECLARE_FEATURE(kUseGles2ForOopR); - // All features in alphabetical order. The features should be documented - // alongside the definition of their values in the .cc file. +@@ -26,6 +26,7 @@ GPU_EXPORT BASE_DECLARE_FEATURE(kUseGles2ForOopR); + GPU_EXPORT BASE_DECLARE_FEATURE(kAggressiveShaderCacheLimits); + #if BUILDFLAG(IS_ANDROID) +GPU_EXPORT BASE_DECLARE_FEATURE(kAImageReaderMediaPlayer); GPU_EXPORT BASE_DECLARE_FEATURE(kAndroidSurfaceControl); @@ -171,7 +171,7 @@ diff --git a/gpu/config/gpu_finch_features.h b/gpu/config/gpu_finch_features.h diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc --- a/gpu/config/gpu_util.cc +++ b/gpu/config/gpu_util.cc -@@ -126,6 +126,9 @@ GpuFeatureStatus GetAndroidSurfaceControlFeatureStatus( +@@ -125,6 +125,9 @@ GpuFeatureStatus GetAndroidSurfaceControlFeatureStatus( #if !BUILDFLAG(IS_ANDROID) return kGpuFeatureStatusDisabled; #else @@ -181,7 +181,7 @@ diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc if (!gpu_preferences.enable_android_surface_control) return kGpuFeatureStatusDisabled; -@@ -379,6 +382,11 @@ void AdjustGpuFeatureStatusToWorkarounds(GpuFeatureInfo* gpu_feature_info, +@@ -378,6 +381,11 @@ void AdjustGpuFeatureStatusToWorkarounds(GpuFeatureInfo* gpu_feature_info, kGpuFeatureStatusSoftware; } } @@ -215,7 +215,7 @@ diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc #endif #if BUILDFLAG(ENABLE_VULKAN) -@@ -702,6 +703,13 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line, +@@ -701,6 +702,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 79834013e..7edc05714 100644 --- a/build/patches/Add-AllowUserCertificates-flag.patch +++ b/build/patches/Add-AllowUserCertificates-flag.patch @@ -20,7 +20,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -227,6 +227,7 @@ import org.chromium.content_public.browser.ScreenOrientationProvider; +@@ -223,6 +223,7 @@ import org.chromium.content_public.browser.ScreenOrientationProvider; import org.chromium.content_public.browser.SelectionPopupController; import org.chromium.content_public.browser.WebContents; import org.chromium.content_public.common.ContentSwitches; @@ -28,10 +28,10 @@ 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; -@@ -1044,6 +1045,8 @@ public abstract class ChromeActivity +@@ -1056,6 +1057,8 @@ public abstract class ChromeActivity + super.onStartWithNative(); ChromeActivitySessionTracker.getInstance().onStartWithNative(getProfileProviderSupplier()); - ChromeCachedFlags.getInstance().cacheNativeFlags(); + X509Util.AllowUserCertificates = ChromeFeatureList.isEnabled( + ChromeFeatureList.ALLOW_USER_CERTIFICATES); @@ -40,7 +40,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -161,6 +161,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -165,6 +165,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &feed::kFeedPerformanceStudy, &feed::kFeedShowSignInCommand, &feed::kFeedSignedOutViewDemotion, @@ -51,7 +51,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 -@@ -161,6 +161,7 @@ public abstract class ChromeFeatureList { +@@ -155,6 +155,7 @@ public abstract class ChromeFeatureList { /* Alphabetical: */ public static final String ACCOUNT_REAUTHENTICATION_RECENT_TIME_WINDOW = "AccountReauthenticationRecentTimeWindow"; @@ -59,7 +59,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_PAGE_SUMMARY = "AdaptiveButtonInTopToolbarPageSummary"; public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_CUSTOMIZATION_V2 = -@@ -609,6 +610,8 @@ public abstract class ChromeFeatureList { +@@ -586,6 +587,8 @@ public abstract class ChromeFeatureList { public static final CachedFlag sAndroidTabDeclutterDedupeTabIdsKillSwitch = newCachedFlag(ANDROID_TAB_DECLUTTER_DEDUPE_TAB_IDS_KILL_SWITCH, true); public static final CachedFlag sAppSpecificHistory = newCachedFlag(APP_SPECIFIC_HISTORY, true); @@ -67,15 +67,15 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f + newCachedFlag(ALLOW_USER_CERTIFICATES, false); public static final CachedFlag sAsyncNotificationManager = newCachedFlag(ASYNC_NOTIFICATION_MANAGER, false); - public static final CachedFlag sBackGestureActivityTabProvider = -@@ -780,6 +783,7 @@ public abstract class ChromeFeatureList { + public static final CachedFlag sBlockIntentsWhileLocked = +@@ -744,6 +747,7 @@ public abstract class ChromeFeatureList { public static final List sFlagsCachedFullBrowserChromium = List.of( sAccountReauthenticationRecentTimeWindow, + sAllowUserCertificates, sAndroidAppIntegration, + sAndroidAppIntegrationV2, sAndroidAppIntegrationWithFavicon, - sAndroidBottomToolbar, 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-Alt-D-hotkey-to-focus-address-bar.patch b/build/patches/Add-Alt-D-hotkey-to-focus-address-bar.patch index ec406d8a2..d35e0a213 100644 --- a/build/patches/Add-Alt-D-hotkey-to-focus-address-bar.patch +++ b/build/patches/Add-Alt-D-hotkey-to-focus-address-bar.patch @@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java --- a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java -@@ -392,6 +392,8 @@ public class KeyboardShortcuts { +@@ -403,6 +403,8 @@ public class KeyboardShortcuts { R.string.keyboard_shortcut_address_bar, KeyEvent.KEYCODE_L, KeyEvent.META_CTRL_ON); diff --git a/build/patches/Add-IsCleartextPermitted-flag.patch b/build/patches/Add-IsCleartextPermitted-flag.patch index f93fcb5da..1eb7da687 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 -@@ -383,6 +383,11 @@ std::unique_ptr URLRequestHttpJob::Create(URLRequest* request) { +@@ -371,6 +371,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 a02dac8cd..11b83b0f6 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 -@@ -121,6 +121,10 @@ BASE_FEATURE(kPostGetMyMemoryStateToBackground, +@@ -115,6 +115,10 @@ BASE_FEATURE(kPostGetMyMemoryStateToBackground, FEATURE_DISABLED_BY_DEFAULT); #endif // BUILDFLAG(IS_ANDROID) @@ -29,7 +29,7 @@ diff --git a/base/features.cc b/base/features.cc 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 -@@ -21,6 +21,7 @@ +@@ -22,6 +22,7 @@ #include "base/base_switches.h" #include "base/command_line.h" #include "base/feature_list.h" 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 fb01fe034..ea22b2f8f 100644 --- a/build/patches/Add-a-flag-to-disable-GamePad-API.patch +++ b/build/patches/Add-a-flag-to-disable-GamePad-API.patch @@ -5,16 +5,19 @@ Subject: Add a flag to disable GamePad API Adds restrict-gamepad-access flag (default active) to disable GamePad API. License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- - chrome/browser/flag-metadata.json | 4 ++-- - chrome/browser/flag_descriptions.cc | 2 +- - device/gamepad/public/cpp/gamepad_features.cc | 1 + - .../blink/renderer/modules/gamepad/navigator_gamepad.cc | 6 ++++++ - 4 files changed, 10 insertions(+), 3 deletions(-) + chrome/browser/flag-metadata.json | 4 ++-- + content/child/runtime_features.cc | 2 ++ + .../about_flags_cc/Add-a-flag-to-disable-GamePad-API.inc | 7 +++++++ + device/gamepad/public/cpp/gamepad_features.cc | 8 ++++++++ + device/gamepad/public/cpp/gamepad_features.h | 2 ++ + .../blink/renderer/modules/gamepad/navigator_gamepad.cc | 7 +++++++ + 6 files changed, 28 insertions(+), 2 deletions(-) + create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-a-flag-to-disable-GamePad-API.inc 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 -@@ -7807,9 +7807,9 @@ +@@ -7726,9 +7726,9 @@ "expiry_milestone" : 130 }, { @@ -26,46 +29,87 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js }, { "name": "retain-omnibox-on-focus", -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 -@@ -3331,7 +3331,7 @@ const char kResetShortcutCustomizationsDescription[] = - - const char kRestrictGamepadAccessName[] = "Restrict gamepad access"; - const char kRestrictGamepadAccessDescription[] = -- "Enables Permissions Policy and Secure Context restrictions on the Gamepad " -+ "Disable the Gamepad " - "API"; - - #if BUILDFLAG(IS_ANDROID) +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 +@@ -271,6 +271,8 @@ void SetRuntimeFeaturesFromChromiumFeatures() { + raw_ref(features::kPeriodicBackgroundSync)}, + {wf::EnablePushMessagingSubscriptionChange, + raw_ref(features::kPushSubscriptionChangeEvent)}, ++ {wf::EnableRestrictGamepadAccess, ++ raw_ref(features::kRestrictGamepadAccess)}, + {wf::EnableSecurePaymentConfirmation, + raw_ref(features::kSecurePaymentConfirmation)}, + {wf::EnableSecurePaymentConfirmationDebug, +diff --git a/cromite_flags/chrome/browser/about_flags_cc/Add-a-flag-to-disable-GamePad-API.inc b/cromite_flags/chrome/browser/about_flags_cc/Add-a-flag-to-disable-GamePad-API.inc +new file mode 100644 +--- /dev/null ++++ b/cromite_flags/chrome/browser/about_flags_cc/Add-a-flag-to-disable-GamePad-API.inc +@@ -0,0 +1,7 @@ ++#ifdef FLAG_SECTION ++ ++ {"restrict-gamepad-access", "Restrict gamepad access", ++ "Disable the Gamepad API", kOsAll, ++ FEATURE_VALUE_TYPE(features::kRestrictGamepadAccess)}, ++ ++#endif diff --git a/device/gamepad/public/cpp/gamepad_features.cc b/device/gamepad/public/cpp/gamepad_features.cc --- a/device/gamepad/public/cpp/gamepad_features.cc +++ b/device/gamepad/public/cpp/gamepad_features.cc -@@ -64,4 +64,5 @@ bool IsGamepadMultitouchEnabled() { +@@ -27,4 +27,12 @@ bool IsGamepadMultitouchEnabled() { return false; } -+SET_CROMITE_FEATURE_ENABLED(kRestrictGamepadAccess); ++CROMITE_FEATURE(kRestrictGamepadAccess, ++ "RestrictGamepadAccess", ++ base::FEATURE_ENABLED_BY_DEFAULT); ++ ++bool IsRestrictGamepadAccessEnabled() { ++ return base::FeatureList::IsEnabled(kRestrictGamepadAccess); ++} ++ + } // namespace features +diff --git a/device/gamepad/public/cpp/gamepad_features.h b/device/gamepad/public/cpp/gamepad_features.h +--- a/device/gamepad/public/cpp/gamepad_features.h ++++ b/device/gamepad/public/cpp/gamepad_features.h +@@ -11,8 +11,10 @@ + namespace features { + + GAMEPAD_FEATURES_EXPORT BASE_DECLARE_FEATURE(kEnableGamepadMultitouch); ++GAMEPAD_FEATURES_EXPORT BASE_DECLARE_FEATURE(kRestrictGamepadAccess); + + GAMEPAD_FEATURES_EXPORT bool IsGamepadMultitouchEnabled(); ++GAMEPAD_FEATURES_EXPORT bool IsRestrictGamepadAccessEnabled(); + } // namespace features + 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 -@@ -120,6 +120,10 @@ void RecordGamepadsForIdentifiabilityStudy( +@@ -27,6 +27,7 @@ + + #include "base/auto_reset.h" + #include "device/gamepad/public/cpp/gamepads.h" ++#include "device/gamepad/public/cpp/gamepad_features.h" + #include "third_party/blink/public/common/privacy_budget/identifiability_metric_builder.h" + #include "third_party/blink/public/common/privacy_budget/identifiability_study_settings.h" + #include "third_party/blink/public/mojom/frame/user_activation_notification_type.mojom-blink.h" +@@ -112,6 +113,10 @@ void RecordGamepadsForIdentifiabilityStudy( HeapVector> NavigatorGamepad::getGamepads( Navigator& navigator, ExceptionState& exception_state) { -+ if (base::FeatureList::IsEnabled(::features::kRestrictGamepadAccess)) { ++ if (::features::IsRestrictGamepadAccessEnabled()) { + exception_state.ThrowSecurityError("Access to the feature \"gamepad\" is denied"); + return HeapVector>(); + } 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. -@@ -442,6 +446,8 @@ void NavigatorGamepad::SampleAndCompareGamepadState() { +@@ -418,6 +423,8 @@ void NavigatorGamepad::SampleAndCompareGamepadState() { void NavigatorGamepad::DispatchGamepadEvent(const AtomicString& event_name, Gamepad* gamepad) { -+ if (base::FeatureList::IsEnabled(::features::kRestrictGamepadAccess)) ++ if (::features::IsRestrictGamepadAccessEnabled()) + return; // Ensure that we're blocking re-entrancy. DCHECK(processing_events_); diff --git a/build/patches/Add-a-proxy-configuration-page.patch b/build/patches/Add-a-proxy-configuration-page.patch index 0675e3bc4..451073f5f 100644 --- a/build/patches/Add-a-proxy-configuration-page.patch +++ b/build/patches/Add-a-proxy-configuration-page.patch @@ -29,9 +29,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/resources/proxy_config.html | 77 ++++ chrome/browser/resources/proxy_config.js | 278 +++++++++++++ chrome/browser/ui/BUILD.gn | 2 + - .../webui/chrome_web_ui_controller_factory.cc | 5 +- + .../browser/ui/webui/chrome_web_ui_configs.cc | 4 + chrome/browser/ui/webui/proxy_config_ui.cc | 389 ++++++++++++++++++ - chrome/browser/ui/webui/proxy_config_ui.h | 31 ++ + chrome/browser/ui/webui/proxy_config_ui.h | 41 ++ chrome/common/webui_url_constants.cc | 2 + chrome/common/webui_url_constants.h | 2 + .../pref_proxy_config_tracker_impl.cc | 5 +- @@ -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, 974 insertions(+), 18 deletions(-) + 25 files changed, 984 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 @@ -77,7 +77,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -75,6 +75,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -76,6 +76,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private static final String PREF_SAFE_BROWSING = "safe_browsing"; private static final String PREF_SYNC_AND_SERVICES_LINK = "sync_and_services_link"; private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox"; @@ -112,7 +112,7 @@ diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resou diff --git a/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc b/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc --- a/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc +++ b/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc -@@ -392,7 +392,7 @@ std::optional CreateProxyConfigDict( +@@ -372,7 +372,7 @@ std::optional CreateProxyConfigDict( return std::nullopt; } return ProxyConfigDictionary::CreateFixedServers(proxy_rules_string, @@ -196,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 -@@ -202,6 +202,8 @@ +@@ -198,6 +198,8 @@ #include "printing/buildflags/buildflags.h" #include "rlz/buildflags/buildflags.h" @@ -205,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 -@@ -1652,6 +1654,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) { +@@ -1615,6 +1617,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) { component_updater::RegisterPrefs(registry); domain_reliability::RegisterPrefs(registry); embedder_support::OriginTrialPrefs::RegisterPrefs(registry); @@ -660,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 -@@ -238,6 +238,8 @@ static_library("ui") { +@@ -224,6 +224,8 @@ static_library("ui") { "webui/metrics_internals/metrics_internals_ui.h", "webui/net_export_ui.cc", "webui/net_export_ui.h", @@ -669,28 +669,25 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn "webui/net_internals/net_internals_ui.cc", "webui/net_internals/net_internals_ui.h", "webui/ntp_tiles_internals_ui.cc", -diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc ---- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc -+++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc -@@ -32,6 +32,7 @@ - #include "chrome/browser/ui/webui/about/about_ui.h" - #include "chrome/browser/ui/webui/components/components_ui.h" - #include "chrome/browser/ui/webui/crashes_ui.h" +diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/ui/webui/chrome_web_ui_configs.cc +--- a/chrome/browser/ui/webui/chrome_web_ui_configs.cc ++++ b/chrome/browser/ui/webui/chrome_web_ui_configs.cc +@@ -56,6 +56,9 @@ + #include "extensions/buildflags/buildflags.h" + #include "printing/buildflags/buildflags.h" + +#include "chrome/browser/ui/webui/proxy_config_ui.h" - #include "chrome/browser/ui/webui/download_internals/download_internals_ui.h" - #include "chrome/browser/ui/webui/flags/flags_ui.h" - #include "chrome/browser/ui/webui/webui_util.h" -@@ -261,7 +262,9 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, - history_clusters_internals::kChromeUIHistoryClustersInternalsHost) { - return &NewWebUI; - } -- -+ if (url.host_piece() == chrome::kChromeUIProxyConfigHost) { -+ return &NewWebUI; -+ } - #if !BUILDFLAG(IS_ANDROID) - if (url.host_piece() == chrome::kChromeUINewTabHost) { - // The URL chrome://newtab/ can be either a virtual or a real URL, ++ ++ + #if BUILDFLAG(ENABLE_NACL) + #include "chrome/browser/ui/webui/nacl_ui.h" + #endif +@@ -410,4 +413,5 @@ void RegisterChromeWebUIConfigs() { + map.AddWebUIConfig(std::make_unique()); + map.AddWebUIConfig(std::make_unique()); + #endif // !BUILDFLAG(IS_CHROMEOS_ASH) && !BUILDFLAG(IS_ANDROID) ++ map.AddWebUIConfig(std::make_unique()); + } diff --git a/chrome/browser/ui/webui/proxy_config_ui.cc b/chrome/browser/ui/webui/proxy_config_ui.cc new file mode 100644 --- /dev/null @@ -893,7 +890,7 @@ new file mode 100644 + state.SetByDottedPath("config.rules.fallback_proxies", base::Value(omitDirect(rules.fallback_proxies.ToPacString()))); + break; + default: -+ NOTREACHED_NORETURN(); ++ NOTREACHED(); + } + state.SetByDottedPath("config.rules.type", base::Value(type)); + state.SetByDottedPath("config.rules.bypass_rules", base::Value(rules.bypass_rules.ToString())); @@ -1089,7 +1086,7 @@ diff --git a/chrome/browser/ui/webui/proxy_config_ui.h b/chrome/browser/ui/webui new file mode 100644 --- /dev/null +++ b/chrome/browser/ui/webui/proxy_config_ui.h -@@ -0,0 +1,31 @@ +@@ -0,0 +1,41 @@ +/* + This file is part of Bromite. + @@ -1110,7 +1107,9 @@ new file mode 100644 +#ifndef CHROME_BROWSER_UI_WEBUI_PROXY_CONFIG_UI_H_ +#define CHROME_BROWSER_UI_WEBUI_PROXY_CONFIG_UI_H_ + ++#include "chrome/common/webui_url_constants.h" +#include "content/public/browser/web_ui_controller.h" ++#include "content/public/browser/webui_config.h" + +// The WebUI for chrome://proxy/. +class ProxyConfigUI : public content::WebUIController { @@ -1120,6 +1119,14 @@ new file mode 100644 + explicit ProxyConfigUI(content::WebUI* web_ui); +}; + ++class ProxyConfigUIConfig ++ : public content::DefaultWebUIConfig { ++ public: ++ ProxyConfigUIConfig() ++ : DefaultWebUIConfig(content::kChromeUIScheme, ++ chrome::kChromeUIProxyConfigHost) {} ++}; ++ +#endif // CHROME_BROWSER_UI_WEBUI_PROXY_CONFIG_UI_H_ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_constants.cc --- a/chrome/common/webui_url_constants.cc @@ -1321,8 +1328,8 @@ diff --git a/components/proxy_config/proxy_policy_handler.cc b/components/proxy_ diff --git a/net/proxy_resolution/proxy_config.cc b/net/proxy_resolution/proxy_config.cc --- a/net/proxy_resolution/proxy_config.cc +++ b/net/proxy_resolution/proxy_config.cc -@@ -131,7 +131,7 @@ void ProxyConfig::ProxyRules::ParseFromString(const std::string& proxy_rules, - url_scheme, &single_proxies, ProxyServer::SCHEME_HTTP, +@@ -129,7 +129,7 @@ void ProxyConfig::ProxyRules::ParseFromString(const std::string& proxy_rules, + std::move(url_scheme), &single_proxies, ProxyServer::SCHEME_HTTP, allow_bracketed_proxy_chains, is_quic_allowed); type = Type::PROXY_LIST; - return; @@ -1330,7 +1337,7 @@ diff --git a/net/proxy_resolution/proxy_config.cc b/net/proxy_resolution/proxy_c } // Trim whitespace off the url scheme. -@@ -162,6 +162,55 @@ void ProxyConfig::ProxyRules::ParseFromString(const std::string& proxy_rules, +@@ -160,6 +160,55 @@ void ProxyConfig::ProxyRules::ParseFromString(const std::string& proxy_rules, } } diff --git a/build/patches/Add-an-always-incognito-mode.patch b/build/patches/Add-an-always-incognito-mode.patch index 0c82dcfdb..a986644b3 100644 --- a/build/patches/Add-an-always-incognito-mode.patch +++ b/build/patches/Add-an-always-incognito-mode.patch @@ -79,12 +79,12 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/autocomplete_provider_client.cc | 4 + .../browser/autocomplete_provider_client.h | 1 + .../omnibox/browser/base_search_provider.cc | 2 +- - components/omnibox/browser/search_provider.cc | 7 +- + components/omnibox/browser/search_provider.cc | 3 +- .../add-an-always-incognito-mode.inc | 13 ++ .../add-an-always-incognito-mode.inc | 1 + .../add-an-always-incognito-mode.inc | 3 + .../add-an-always-incognito-mode.inc | 1 + - 65 files changed, 787 insertions(+), 113 deletions(-) + 65 files changed, 784 insertions(+), 112 deletions(-) create mode 100644 chrome/android/java/res/xml/incognito_preferences.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java @@ -97,7 +97,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni --- a/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni -@@ -626,6 +626,7 @@ chrome_java_resources = [ +@@ -627,6 +627,7 @@ chrome_java_resources = [ "java/res/xml/main_preferences_legacy.xml", "java/res/xml/manage_sync_preferences.xml", "java/res/xml/personalize_google_services_preferences.xml", @@ -108,15 +108,15 @@ 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 -@@ -3,6 +3,7 @@ - # found in the LICENSE file. +@@ -5,6 +5,7 @@ + import("//content/public/common/features.gni") chrome_java_sources = [ + "java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.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", -@@ -952,6 +953,7 @@ chrome_java_sources = [ +@@ -947,6 +948,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", @@ -243,7 +243,7 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -72,6 +72,10 @@ import org.chromium.base.task.TaskTraits; +@@ -70,6 +70,10 @@ import org.chromium.base.task.TaskTraits; import org.chromium.build.annotations.UsedByReflection; import org.chromium.cc.input.BrowserControlsState; import org.chromium.chrome.R; @@ -254,7 +254,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; -@@ -686,14 +690,19 @@ public class ChromeTabbedActivity extends ChromeActivity +@@ -2005,6 +2006,9 @@ public abstract class ChromeActivity throw new IllegalStateException( "Attempting to access TabCreator before initialization"); } @@ -326,7 +326,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App import org.chromium.chrome.browser.bookmarks.BookmarkModel; import org.chromium.chrome.browser.bookmarks.PowerBookmarkUtils; import org.chromium.chrome.browser.commerce.ShoppingServiceFactory; -@@ -100,6 +102,10 @@ import java.util.ArrayList; +@@ -102,6 +104,10 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; @@ -337,7 +337,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. -@@ -584,6 +590,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -593,6 +599,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate } private void prepareCommonMenuItems(Menu menu, @MenuGroup int menuGroup, boolean isIncognito) { @@ -351,7 +351,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; -@@ -647,7 +660,15 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -656,7 +669,15 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate } if (item.getItemId() == R.id.recent_tabs_menu_id) { @@ -368,7 +368,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); -@@ -861,8 +882,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -870,8 +891,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate && !isNativePage && !isFileScheme && !isContentScheme @@ -391,7 +391,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr import org.chromium.chrome.browser.contextmenu.ChromeContextMenuItem.Item; import org.chromium.chrome.browser.contextmenu.ContextMenuCoordinator.ListItemType; import org.chromium.chrome.browser.download.DownloadUtils; -@@ -271,6 +272,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -267,6 +268,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { public List> buildContextMenu() { mShowEphemeralTabNewLabel = null; @@ -401,7 +401,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr List> groupedItems = new ArrayList<>(); if (mParams.isAnchor()) { -@@ -281,6 +285,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -277,6 +281,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)); @@ -409,7 +409,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)); } -@@ -305,7 +310,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -301,7 +306,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { } } if (FirstRunStatus.getFirstRunFlowComplete()) { @@ -421,29 +421,29 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java -@@ -71,45 +71,6 @@ public class CustomTabActivityLifecycleUmaTracker +@@ -70,45 +70,6 @@ public class CustomTabActivityLifecycleUmaTracker private boolean mIsInitialResume = true; private void recordIncognitoLaunchReason() { - // TODO(crbug.com/352525607): Separate Ephemeral and Incognito CCT metrics. -- @IntentHandler.IncognitoCCTCallerId int incognitoCCTCallerId; +- @IntentHandler.IncognitoCctCallerId int incognitoCctCallerId; - if (mIntentDataProvider.getCustomTabMode() == CustomTabProfileType.INCOGNITO) { -- incognitoCCTCallerId = +- incognitoCctCallerId = - ((IncognitoCustomTabIntentDataProvider) mIntentDataProvider) - .getFeatureIdForMetricsCollection(); - } else { -- incognitoCCTCallerId = +- incognitoCctCallerId = - ((EphemeralCustomTabIntentDataProvider) mIntentDataProvider) - .getFeatureIdForMetricsCollection(); - } - - RecordHistogram.recordEnumeratedHistogram( -- "CustomTabs.IncognitoCCTCallerId", -- incognitoCCTCallerId, -- IntentHandler.IncognitoCCTCallerId.NUM_ENTRIES); +- "CustomTabs.IncognitoCctCallerId", +- incognitoCctCallerId, +- IntentHandler.IncognitoCctCallerId.NUM_ENTRIES); - - // Record which 1P app launched Incognito CCT. -- if (incognitoCCTCallerId == IntentHandler.IncognitoCCTCallerId.GOOGLE_APPS) { +- if (incognitoCctCallerId == IntentHandler.IncognitoCctCallerId.GOOGLE_APPS) { - String sendersPackageName = mIntentDataProvider.getClientPackageName(); - @IntentHandler.ExternalAppId - int externalId = IntentHandler.mapPackageToExternalAppId(sendersPackageName); @@ -478,7 +478,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; -@@ -213,6 +214,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat +@@ -218,6 +219,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat openInChromeItemVisible = false; tryAddingReadAloud = false; } @@ -501,7 +501,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; -@@ -1222,6 +1225,13 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid +@@ -1231,6 +1234,13 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid return getInitialActivityWidth() > 0; } @@ -537,7 +537,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo /** A class containing some utility static methods. */ public class DownloadUtils { private static final String TAG = "download"; -@@ -297,7 +302,16 @@ public class DownloadUtils { +@@ -298,7 +303,16 @@ public class DownloadUtils { // Offline pages isn't supported in Incognito. This should be checked before calling // OfflinePageBridge.getForProfile because OfflinePageBridge instance will not be found // for incognito profile. @@ -683,7 +683,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat import org.chromium.chrome.browser.app.ChromeActivity; import org.chromium.chrome.browser.app.download.home.DownloadPage; import org.chromium.chrome.browser.bookmarks.BookmarkPage; -@@ -316,7 +317,8 @@ public class NativePageFactory { +@@ -320,7 +321,8 @@ public class NativePageFactory { String url, NativePage candidatePage, Tab tab, boolean isIncognito, PdfInfo pdfInfo) { NativePage page; @@ -722,7 +722,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM mActiveTab = tab; mTabModelSelector = tabModelSelector; mShowHistoryManager = showHistoryManager; -@@ -273,6 +283,22 @@ public class RecentTabsManager +@@ -269,6 +279,22 @@ public class RecentTabsManager */ public void openRecentlyClosedTab(RecentlyClosedTab tab, int windowDisposition) { if (mIsDestroyed) return; @@ -923,7 +923,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; import org.chromium.components.browser_ui.settings.FragmentSettingsNavigation; import org.chromium.components.browser_ui.site_settings.BaseSiteSettingsFragment; -@@ -271,6 +272,9 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl +@@ -270,6 +271,9 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl safetyHubFragment.setCustomTabIntentHelper( LaunchIntentDispatcher::createCustomTabActivityIntent); } @@ -936,7 +936,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver.java -@@ -23,6 +23,8 @@ import java.util.HashMap; +@@ -22,6 +22,8 @@ import java.util.HashMap; import java.util.List; import java.util.Set; @@ -945,7 +945,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore /** A tab model observer for managing bulk closures. */ public class HistoricalTabModelObserver implements TabModelObserver { private final TabGroupModelFilter mTabGroupModelFilter; -@@ -71,9 +73,10 @@ public class HistoricalTabModelObserver implements TabModelObserver { +@@ -70,9 +72,10 @@ public class HistoricalTabModelObserver implements TabModelObserver { if (tabs.isEmpty() || !canRestore) return; if (tabs.size() == 1) { @@ -1042,7 +1042,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java -@@ -158,6 +158,8 @@ import org.chromium.ui.InsetObserver; +@@ -159,6 +159,8 @@ import org.chromium.ui.InsetObserver; import org.chromium.ui.UiUtils; import org.chromium.ui.base.ActivityWindowAndroid; import org.chromium.ui.base.DeviceFormFactor; @@ -1051,7 +1051,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab import org.chromium.ui.base.IntentRequestTracker; import org.chromium.ui.base.LocalizationUtils; import org.chromium.ui.dragdrop.DragDropGlobalState; -@@ -1017,7 +1019,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1029,7 +1031,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { () -> { mTabCreatorManagerSupplier .get() @@ -1085,15 +1085,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorImpl.java -@@ -10,6 +10,7 @@ import androidx.annotation.Nullable; - import androidx.annotation.VisibleForTesting; +@@ -12,6 +12,7 @@ import androidx.annotation.VisibleForTesting; import org.chromium.base.supplier.OneshotSupplier; + import org.chromium.base.supplier.Supplier; +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; import org.chromium.chrome.browser.flags.ActivityType; import org.chromium.chrome.browser.ntp.RecentlyClosedBridge; import org.chromium.chrome.browser.profiles.ProfileProvider; -@@ -106,6 +107,8 @@ public class TabModelSelectorImpl extends TabModelSelectorBase implements TabMod +@@ -117,6 +118,8 @@ public class TabModelSelectorImpl extends TabModelSelectorBase implements TabMod ProfileProvider profileProvider = mProfileProviderSupplier.get(); assert profileProvider != null; @@ -1139,7 +1139,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar import org.chromium.chrome.browser.IntentHandler; import org.chromium.chrome.browser.app.tabmodel.TabWindowManagerSingleton; import org.chromium.chrome.browser.back_press.BackPressManager; -@@ -669,7 +670,7 @@ public class ToolbarManager +@@ -699,7 +700,7 @@ public class ToolbarManager TraceEvent.end("isOfflinePage"); return ret; } @@ -1245,7 +1245,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()); -@@ -319,11 +330,12 @@ static void JNI_HistoricalTabSaverImpl_CreateHistoricalTab( +@@ -318,11 +329,12 @@ static void JNI_HistoricalTabSaverImpl_CreateHistoricalTab( JNIEnv* env, const JavaParamRef& jtab_android, const JavaParamRef& state, @@ -1318,7 +1318,7 @@ diff --git a/chrome/browser/autocomplete/remote_suggestions_service_factory.cc b diff --git a/chrome/browser/content_settings/host_content_settings_map_factory.cc b/chrome/browser/content_settings/host_content_settings_map_factory.cc --- a/chrome/browser/content_settings/host_content_settings_map_factory.cc +++ b/chrome/browser/content_settings/host_content_settings_map_factory.cc -@@ -18,6 +18,7 @@ +@@ -17,6 +17,7 @@ #include "chrome/browser/search_engines/template_url_service_factory.h" #include "chrome/browser/supervised_user/supervised_user_settings_service_factory.h" #include "chrome/common/buildflags.h" @@ -1326,7 +1326,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" -@@ -104,9 +105,25 @@ scoped_refptr +@@ -103,9 +104,25 @@ scoped_refptr if (profile->IsOffTheRecord() && !profile->IsGuestSession()) GetForProfile(original_profile); @@ -1353,7 +1353,7 @@ diff --git a/chrome/browser/content_settings/host_content_settings_map_factory.c /*store_last_modified=*/true, profile->ShouldRestoreOldSessionCookies(), profiles::IsRegularUserProfile(profile))); -@@ -115,6 +132,9 @@ scoped_refptr +@@ -114,6 +131,9 @@ scoped_refptr settings_map->RegisterProvider(ProviderType::kWebuiAllowlistProvider, std::move(allowlist_provider)); @@ -1376,7 +1376,7 @@ diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/histo #else #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_finder.h" -@@ -488,6 +491,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) { +@@ -489,6 +492,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) { history::HistoryService* HistoryTabHelper::GetHistoryService() { Profile* profile = Profile::FromBrowserContext(web_contents()->GetBrowserContext()); @@ -1390,7 +1390,7 @@ diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/histo if (profile->IsOffTheRecord()) return nullptr; -@@ -495,6 +505,16 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() { +@@ -496,6 +506,16 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() { profile, ServiceAccessType::IMPLICIT_ACCESS); } @@ -1454,7 +1454,7 @@ diff --git a/chrome/browser/offline_pages/android/offline_page_bridge.cc b/chrom // Must come after all headers that specialize FromJniType() / ToJniType(). #include "chrome/android/chrome_jni_headers/OfflinePageBridge_jni.h" -@@ -758,9 +761,15 @@ void OfflinePageBridge::GetPageByOfflineIdDone( +@@ -757,9 +760,15 @@ void OfflinePageBridge::GetPageByOfflineIdDone( } if (offline_page_model_->IsArchiveInInternalDir(offline_page->file_path)) { @@ -1739,7 +1739,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 -@@ -251,6 +251,7 @@ +@@ -247,6 +247,7 @@ #if BUILDFLAG(IS_ANDROID) #include "chrome/browser/accessibility/accessibility_prefs/android/accessibility_prefs_controller.h" @@ -1747,7 +1747,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" -@@ -2105,6 +2106,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -2068,6 +2069,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, usage_stats::UsageStatsBridge::RegisterProfilePrefs(registry); variations::VariationsService::RegisterProfilePrefs(registry); webapps::InstallPromptPrefs::RegisterProfilePrefs(registry); @@ -1908,7 +1908,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 -@@ -1419,6 +1419,31 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1411,6 +1411,31 @@ Your Google account may have other forms of browsing history like searches and a Deletes history from all synced devices @@ -1943,15 +1943,15 @@ 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 +@@ -160,6 +160,7 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro + protected GURL mVisibleGurl = GURL.emptyGURL(); protected String mFormattedFullUrl; protected String mUrlForDisplay; - private boolean mOmniboxUpdatedConnectionSecurityIndicatorsEnabled; + private boolean mIsAlwaysIncognito; // 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 +@@ -183,7 +184,9 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro Context context, NewTabPageDelegate newTabPageDelegate, @NonNull UrlFormatter urlFormatter, @@ -2009,7 +2009,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 -@@ -4211,6 +4211,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] = +@@ -4193,6 +4193,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] = "net.out_of_process_system_dns_resolution_enabled"; #endif // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) @@ -2075,7 +2075,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 -@@ -263,6 +263,7 @@ struct ContentSettingEntry { +@@ -266,6 +266,7 @@ struct ContentSettingEntry { HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, bool is_off_the_record, @@ -2083,7 +2083,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map. bool store_last_modified, bool restore_session, bool should_record_metrics) -@@ -272,6 +273,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, +@@ -275,6 +276,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, #endif prefs_(prefs), is_off_the_record_(is_off_the_record), @@ -2091,7 +2091,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()) { -@@ -285,7 +287,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, +@@ -288,7 +290,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, policy_provider->AddObserver(this); auto pref_provider_ptr = std::make_unique( @@ -2111,7 +2111,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map. bool store_last_modified, bool restore_session, bool should_record_metrics); -@@ -510,6 +511,8 @@ class HostContentSettingsMap : public content_settings::Observer, +@@ -502,6 +503,8 @@ class HostContentSettingsMap : public content_settings::Observer, // Whether this settings map is for an incognito or guest session. bool is_off_the_record_; @@ -2145,39 +2145,28 @@ 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 -@@ -386,7 +386,7 @@ bool BaseSearchProvider::CanSendSuggestRequestWithoutPageURL( - } +@@ -395,7 +395,7 @@ bool BaseSearchProvider::CanSendSuggestRequest( - // Don't make a suggest request if in incognito mode. -- if (client->IsOffTheRecord()) { -+ if (client->IsOffTheRecord() && client->IsAlwaysIncognitoEnabled() == false) { + // Don't make a suggest request if in incognito mode; unless for the Lens + // searchboxes. +- if (client->IsOffTheRecord() && ++ if (client->IsOffTheRecord() && !client->IsAlwaysIncognitoEnabled() && + !omnibox::IsLensSearchbox(page_classification)) { return false; } - diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/browser/search_provider.cc --- a/components/omnibox/browser/search_provider.cc +++ b/components/omnibox/browser/search_provider.cc -@@ -778,7 +778,9 @@ bool SearchProvider::IsQuerySuitableForSuggest(bool* query_is_private) const { - // keyword input to a keyword suggest server, if any.) - const TemplateURL* default_url = providers_.GetDefaultProviderURL(); - const TemplateURL* keyword_url = providers_.GetKeywordProviderURL(); -- return !client()->IsOffTheRecord() && client()->SearchSuggestEnabled() && -+ return (client()->IsOffTheRecord() == false || -+ client()->IsAlwaysIncognitoEnabled() == true) && -+ client()->SearchSuggestEnabled() && - ((default_url && !default_url->suggestions_url().empty() && - !*query_is_private) || - (keyword_url && !keyword_url->suggestions_url().empty())); -@@ -937,7 +939,8 @@ std::unique_ptr SearchProvider::CreateSuggestLoader( - // purpose of such a request is to signal the server to warm up; no info +@@ -915,7 +915,8 @@ std::unique_ptr SearchProvider::CreateSuggestLoader( // is required. - // Request for suggestions in OTR contexts is not allowed. -- DCHECK(!client()->IsOffTheRecord()); + // Request for suggestions in OTR contexts is not allowed; except for the Lens + // searchboxes. +- DCHECK(!client()->IsOffTheRecord() || + if (!client()->IsAlwaysIncognitoEnabled()) -+ DCHECK(!client()->IsOffTheRecord()); ++ DCHECK(!client()->IsOffTheRecord() || + omnibox::IsLensSearchbox(input.current_page_classification())); return client() ->GetRemoteSuggestionsService(/*create_if_necessary=*/true) - ->StartSuggestionsRequest( diff --git a/cromite_flags/chrome/browser/about_flags_cc/add-an-always-incognito-mode.inc b/cromite_flags/chrome/browser/about_flags_cc/add-an-always-incognito-mode.inc new file mode 100644 --- /dev/null diff --git a/build/patches/Add-autoplay-site-setting.patch b/build/patches/Add-autoplay-site-setting.patch index 90f82c574..5893c42f4 100644 --- a/build/patches/Add-autoplay-site-setting.patch +++ b/build/patches/Add-autoplay-site-setting.patch @@ -299,7 +299,7 @@ diff --git a/third_party/blink/renderer/core/html/media/autoplay_policy.cc b/thi #include "third_party/blink/public/platform/web_media_player.h" #include "third_party/blink/public/web/web_local_frame.h" #include "third_party/blink/public/web/web_local_frame_client.h" -@@ -338,6 +339,8 @@ void AutoplayPolicy::TryUnlockingUserGesture() { +@@ -337,6 +338,8 @@ void AutoplayPolicy::TryUnlockingUserGesture() { } bool AutoplayPolicy::IsGestureNeededForPlayback() const { @@ -308,7 +308,7 @@ diff --git a/third_party/blink/renderer/core/html/media/autoplay_policy.cc b/thi if (!IsLockedPendingUserGesture()) return false; -@@ -450,6 +453,17 @@ void AutoplayPolicy::MaybeSetAutoplayInitiated() { +@@ -449,6 +452,17 @@ void AutoplayPolicy::MaybeSetAutoplayInitiated() { } } diff --git a/build/patches/Add-bookmark-import-export-actions.patch b/build/patches/Add-bookmark-import-export-actions.patch index a2d4df33e..944bf6d1d 100644 --- a/build/patches/Add-bookmark-import-export-actions.patch +++ b/build/patches/Add-bookmark-import-export-actions.patch @@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/android/java/AndroidManifest.xml | 1 - .../menu/bookmark_toolbar_menu_improved.xml | 14 + .../browser/TabbedModeTabDelegateFactory.java | 5 +- - .../app/bookmarks/BookmarkActivity.java | 32 ++ + .../app/bookmarks/BookmarkActivity.java | 30 ++ .../browser/bookmarks/BookmarkBridge.java | 285 ++++++++++++++++++ .../browser/bookmarks/BookmarkDelegate.java | 10 + .../bookmarks/BookmarkManagerCoordinator.java | 9 + @@ -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, 900 insertions(+), 30 deletions(-) + 42 files changed, 898 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 @@ -104,7 +104,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDe import org.chromium.chrome.browser.app.tab_activity_glue.ActivityTabWebContentsDelegateAndroid; import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider; import org.chromium.chrome.browser.compositor.CompositorViewHolder; -@@ -55,7 +56,7 @@ import org.chromium.ui.modaldialog.ModalDialogManager; +@@ -54,7 +55,7 @@ import org.chromium.ui.modaldialog.ModalDialogManager; * {@link ChromeTabbedActivity}. */ public class TabbedModeTabDelegateFactory implements TabDelegateFactory { @@ -113,7 +113,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDe private final BrowserControlsVisibilityDelegate mAppBrowserControlsVisibilityDelegate; private final Supplier mShareDelegateSupplier; private final Supplier mEphemeralTabCoordinatorSupplier; -@@ -84,7 +85,7 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory { +@@ -83,7 +84,7 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory { private NativePageFactory mNativePageFactory; public TabbedModeTabDelegateFactory( @@ -125,19 +125,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDe diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/BookmarkActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/BookmarkActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/BookmarkActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/BookmarkActivity.java -@@ -21,6 +21,11 @@ import org.chromium.chrome.browser.profiles.Profile; - import org.chromium.chrome.browser.profiles.ProfileProvider; - import org.chromium.components.bookmarks.BookmarkId; - import org.chromium.components.embedder_support.util.UrlConstants; +@@ -25,6 +25,9 @@ import org.chromium.components.embedder_support.util.UrlConstants; + import org.chromium.ui.modaldialog.ModalDialogManager; + import org.chromium.ui.modaldialog.ModalDialogManager.ModalDialogType; + +import org.chromium.ui.base.ActivityWindowAndroid; +import org.chromium.ui.base.IntentRequestTracker; + -+import org.chromium.ui.modaldialog.ModalDialogManager; -+import org.chromium.components.browser_ui.modaldialog.AppModalPresenter; - /** * The activity that displays the bookmark UI on the phone. It keeps a {@link -@@ -33,6 +38,9 @@ public class BookmarkActivity extends SnackbarActivity { + * BookmarkManagerCoordinator} inside of it and creates a snackbar manager. This activity should +@@ -36,6 +39,9 @@ public class BookmarkActivity extends SnackbarActivity { public static final int EDIT_BOOKMARK_REQUEST_CODE = 14; public static final String INTENT_VISIT_BOOKMARK_ID = "BookmarkEditActivity.VisitBookmarkId"; @@ -147,14 +145,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); -@@ -58,8 +66,23 @@ public class BookmarkActivity extends SnackbarActivity { +@@ -61,8 +67,23 @@ public class BookmarkActivity extends SnackbarActivity { getOnBackPressedDispatcher(), mBookmarkManagerCoordinator, SecondaryActivity.BOOKMARK); + + final boolean listenToActivityState = true; + mIntentRequestTracker = IntentRequestTracker.createFromActivity(this); -+ mWindowAndroid = new ActivityWindowAndroid(this, listenToActivityState, mIntentRequestTracker); ++ mWindowAndroid = new ActivityWindowAndroid(this, listenToActivityState, mIntentRequestTracker, /*InsetObserver*/ null); + mWindowAndroid.getIntentRequestTracker().restoreInstanceState(savedInstanceState); + mBookmarkManagerCoordinator.setWindow(mWindowAndroid, + new ModalDialogManager( @@ -171,7 +169,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B @Override protected void onDestroy() { super.onDestroy(); -@@ -69,6 +92,7 @@ public class BookmarkActivity extends SnackbarActivity { +@@ -72,6 +93,7 @@ public class BookmarkActivity extends SnackbarActivity { @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); @@ -179,8 +177,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B if (requestCode == EDIT_BOOKMARK_REQUEST_CODE && resultCode == RESULT_OK) { BookmarkId bookmarkId = BookmarkId.getBookmarkIdFromString( -@@ -77,6 +101,14 @@ public class BookmarkActivity extends SnackbarActivity { - } +@@ -85,6 +107,14 @@ public class BookmarkActivity extends SnackbarActivity { + return new ModalDialogManager(new AppModalPresenter(this), ModalDialogType.APP); } + @Override @@ -542,7 +540,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; -@@ -296,6 +298,13 @@ public class BookmarkManagerCoordinator +@@ -302,6 +304,13 @@ public class BookmarkManagerCoordinator // Public API implementation. @@ -559,7 +557,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/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 -@@ -55,6 +55,8 @@ import org.chromium.components.commerce.core.SubscriptionsObserver; +@@ -57,6 +57,8 @@ import org.chromium.components.commerce.core.SubscriptionsObserver; import org.chromium.components.embedder_support.util.UrlConstants; import org.chromium.components.power_bookmarks.PowerBookmarkMeta; import org.chromium.components.power_bookmarks.PowerBookmarkType; @@ -568,7 +566,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm import org.chromium.ui.accessibility.AccessibilityState; import org.chromium.ui.listmenu.ListMenu; import org.chromium.ui.listmenu.ListMenuItemProperties; -@@ -79,6 +81,9 @@ class BookmarkManagerMediator +@@ -81,6 +83,9 @@ class BookmarkManagerMediator private static boolean sPreventLoadingForTesting; @@ -578,7 +576,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; -@@ -534,6 +539,14 @@ class BookmarkManagerMediator +@@ -552,6 +557,14 @@ class BookmarkManagerMediator mNativePage = nativePage; } @@ -593,7 +591,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. -@@ -714,6 +727,16 @@ class BookmarkManagerMediator +@@ -732,6 +745,16 @@ class BookmarkManagerMediator } } @@ -639,7 +637,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm + mBookmarkManagerCoordinator.setWindow(activity.getWindowAndroid(), + new ModalDialogManager( + new AppModalPresenter(activity), ModalDialogManager.ModalDialogType.APP)); - mTitle = host.getContext().getResources().getString(R.string.bookmarks); + mTitle = host.getContext().getString(R.string.bookmarks); initWithView(mBookmarkManagerCoordinator.getView()); diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java @@ -814,7 +812,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 -@@ -207,6 +207,8 @@ static_library("browser") { +@@ -205,6 +205,8 @@ static_library("browser") { "bluetooth/chrome_bluetooth_delegate_impl_client.h", "bookmarks/bookmark_model_factory.cc", "bookmarks/bookmark_model_factory.h", @@ -823,7 +821,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", -@@ -1707,6 +1709,13 @@ static_library("browser") { +@@ -1679,6 +1681,13 @@ static_library("browser") { "webid/identity_provider_permission_request.h", ] @@ -837,7 +835,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn configs += [ "//build/config/compiler:wexit_time_destructors", "//build/config:precompiled_headers", -@@ -3508,8 +3517,6 @@ static_library("browser") { +@@ -3486,8 +3495,6 @@ static_library("browser") { "bookmarks/bookmark_expanded_state_tracker.h", "bookmarks/bookmark_expanded_state_tracker_factory.cc", "bookmarks/bookmark_expanded_state_tracker_factory.h", @@ -1339,28 +1337,28 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc @@ -206,6 +206,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { - &kCastDeviceFilter, &kCCTAuthTab, &kCCTAuthTabDisableAllExternalIntents, + &kCCTAuthTabEnableHttpsRedirects, + &kBookmarksExportUseSaf, &kCCTBeforeUnload, &kCCTClientDataHeader, - &kCCTExtendTrustedCdnPublisher, + &kCCTEarlyNav, 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 -@@ -560,6 +560,7 @@ public abstract class ChromeFeatureList { +@@ -546,6 +546,7 @@ public abstract class ChromeFeatureList { public static final String USE_LIBUNWINDSTACK_NATIVE_UNWINDER_ANDROID = "UseLibunwindstackNativeUnwinderAndroid"; public static final String VISITED_URL_RANKING_SERVICE = "VisitedURLRankingService"; + public static final String BOOKMARKS_EXPORT_USESAF = "BookmarksExportUseSaf"; public static final String VOICE_SEARCH_AUDIO_CAPTURE_POLICY = "VoiceSearchAudioCapturePolicy"; - public static final String WEB_APK_ALLOW_ICON_UPDATE = "WebApkAllowIconUpdate"; public static final String WEB_APK_BACKUP_AND_RESTORE_BACKEND = "WebApkBackupAndRestoreBackend"; + public static final String WEB_APK_INSTALL_FAILURE_NOTIFICATION = diff --git a/chrome/browser/importer/profile_writer.cc b/chrome/browser/importer/profile_writer.cc --- a/chrome/browser/importer/profile_writer.cc +++ b/chrome/browser/importer/profile_writer.cc -@@ -125,6 +125,16 @@ void ProfileWriter::AddBookmarks( +@@ -124,6 +124,16 @@ void ProfileWriter::AddBookmarks( return; BookmarkModel* model = BookmarkModelFactory::GetForBrowserContext(profile_); @@ -1403,7 +1401,7 @@ diff --git a/chrome/browser/importer/profile_writer.h b/chrome/browser/importer/ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java -@@ -104,6 +104,8 @@ public final class ChromePreferenceKeys { +@@ -103,6 +103,8 @@ public final class ChromePreferenceKeys { "enhanced_bookmark_last_used_parent_folder"; public static final String BOOKMARKS_SORT_ORDER = "Chrome.Bookmarks.BookmarkRowSortOrder"; public static final String BOOKMARKS_VISUALS_PREF = "Chrome.Bookmarks.BookmarkRowDisplay"; @@ -1412,7 +1410,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"; -@@ -922,6 +924,7 @@ public final class ChromePreferenceKeys { +@@ -919,6 +921,7 @@ public final class ChromePreferenceKeys { AUTOFILL_ASSISTANT_PROACTIVE_HELP_ENABLED, APP_LAUNCH_LAST_KNOWN_ACTIVE_TAB_STATE, APP_LAUNCH_SEARCH_ENGINE_HAD_LOGO, @@ -1473,7 +1471,7 @@ diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn "importer/bookmarks_file_importer.cc", "importer/bookmarks_file_importer.h", "importer/external_process_importer_bridge.cc", -@@ -225,6 +223,11 @@ static_library("utility") { +@@ -227,6 +225,11 @@ static_library("utility") { ] } @@ -1506,7 +1504,7 @@ diff --git a/chrome/utility/importer/bookmark_html_reader.cc b/chrome/utility/im // Given the URL of a page and a favicon data URL, adds an appropriate record // to the given favicon usage vector. void DataURLToFaviconUsage(const GURL& link_url, -@@ -85,6 +88,7 @@ void DataURLToFaviconUsage(const GURL& link_url, +@@ -88,6 +91,7 @@ void DataURLToFaviconUsage(const GURL& link_url, favicons->push_back(usage); } @@ -1514,7 +1512,7 @@ diff --git a/chrome/utility/importer/bookmark_html_reader.cc b/chrome/utility/im } // namespace -@@ -105,14 +109,29 @@ static std::string stripDt(const std::string& lineDt) { +@@ -108,14 +112,29 @@ static std::string stripDt(const std::string& lineDt) { } void ImportBookmarksFile( @@ -1547,7 +1545,7 @@ diff --git a/chrome/utility/importer/bookmark_html_reader.cc b/chrome/utility/im std::vector lines = base::SplitString( content, "\n", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); -@@ -125,6 +144,7 @@ void ImportBookmarksFile( +@@ -128,6 +147,7 @@ void ImportBookmarksFile( std::vector path; size_t toolbar_folder_index = 0; std::string charset = "UTF-8"; // If no charset is specified, assume utf-8. @@ -1555,7 +1553,7 @@ diff --git a/chrome/utility/importer/bookmark_html_reader.cc b/chrome/utility/im for (size_t i = 0; i < lines.size() && (cancellation_callback.is_null() || !cancellation_callback.Run()); -@@ -217,10 +237,12 @@ void ImportBookmarksFile( +@@ -219,10 +239,12 @@ void ImportBookmarksFile( } bookmarks->push_back(entry); @@ -1635,7 +1633,7 @@ new file mode 100644 diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java --- a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java +++ b/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java -@@ -46,6 +46,7 @@ import org.chromium.base.task.AsyncTask; +@@ -45,6 +45,7 @@ import org.chromium.base.task.AsyncTask; import org.chromium.base.task.PostTask; import org.chromium.base.task.TaskTraits; import org.chromium.ui.R; @@ -1643,7 +1641,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui import org.chromium.ui.UiUtils; import java.io.File; -@@ -68,6 +69,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -67,6 +68,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick private static final String TAG = "SelectFileDialog"; private static final String IMAGE_TYPE = "image"; private static final String VIDEO_TYPE = "video"; @@ -1651,7 +1649,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui private static final String AUDIO_TYPE = "audio"; private static final String ALL_TYPES = "*/*"; private static final String GENERIC_TYPE = "application/octet-stream"; -@@ -313,6 +315,11 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -312,6 +314,11 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick mMimeTypes = convertToSupportedMimeTypes(mFileTypes); } @@ -1663,7 +1661,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui /** * Creates and starts an intent based on the passed fileTypes and capture value. * -@@ -359,7 +366,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -374,7 +381,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick List missingPermissions = new ArrayList<>(); String storagePermission = Manifest.permission.READ_EXTERNAL_STORAGE; boolean shouldUsePhotoPicker = shouldUsePhotoPicker(); @@ -1672,7 +1670,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui // The permission scenario for accessing media has evolved a bit over the years: // Early on, READ_EXTERNAL_STORAGE was required to access media, but that permission was // later deprecated. In its place (starting with Android T) READ_MEDIA_IMAGES and -@@ -412,7 +419,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -427,7 +434,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick // TODO(finnur): Remove once we figure out the cause of // crbug.com/950024. @@ -1681,7 +1679,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui if (permissions.length != requestPermissions.length) { throw new RuntimeException( String.format( -@@ -429,7 +436,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -444,7 +451,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick } } @@ -1690,7 +1688,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui if (permissions[i].equals(storagePermission) || permissions[i].equals( Manifest.permission.READ_MEDIA_IMAGES) -@@ -740,6 +747,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -751,6 +758,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick mimeTypes.add(mimeType); } } @@ -1698,7 +1696,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui return mimeTypes; } -@@ -1120,6 +1128,10 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -1121,6 +1129,10 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick return countAcceptTypesFor(superType) == mMimeTypes.size(); } @@ -1737,7 +1735,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 -@@ -160,6 +160,12 @@ void SelectFileDialogImpl::SelectFileImpl( +@@ -161,6 +161,12 @@ void SelectFileDialogImpl::SelectFileImpl( accept_multiple_files, owning_window->GetJavaObject()); } diff --git a/build/patches/Add-cromite-flags-support.patch b/build/patches/Add-cromite-flags-support.patch index 231e8191f..6c0577b91 100644 --- a/build/patches/Add-cromite-flags-support.patch +++ b/build/patches/Add-cromite-flags-support.patch @@ -28,6 +28,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../browser/settings/SettingsActivity.java | 42 ++++- chrome/browser/about_flags.cc | 11 ++ chrome/browser/browser_features.cc | 1 + + chrome/browser/browser_features.h | 1 + chrome/browser/flags/BUILD.gn | 13 ++ .../flags/android/chrome_feature_list.cc | 1 + .../flags/android/chrome_feature_list.h | 1 + @@ -35,7 +36,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../flags/cromite/include_all_directory.java | 1 + .../java_template/CromiteCachedFlag.java.tmpl | 47 +++++ chrome/browser/settings/BUILD.gn | 1 + - .../settings/ChromeBaseSettingsFragment.java | 50 ++++++ + .../settings/ChromeBaseSettingsFragment.java | 50 +++++ .../strings/android_chrome_strings.grd | 1 + .../Add-cromite-flags-support.grdp | 9 + .../placeholder.txt | 1 + @@ -43,8 +44,8 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html chrome/common/chrome_features.cc | 1 + .../res/xml/accessibility_preferences.xml | 3 +- .../android/java/res/values/attrs.xml | 4 + - .../settings/ChromeSwitchPreference.java | 20 +++ - .../components/cached_flags/CachedFlag.java | 8 +- + .../settings/ChromeSwitchPreference.java | 20 ++ + .../components/cached_flags/CachedFlag.java | 9 +- components/components_strings.grd | 1 + .../content_settings/core/common/features.cc | 1 + .../placeholder.txt | 1 + @@ -66,9 +67,10 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html content/common/features.cc | 1 + content/public/common/content_features.cc | 1 + content/public/common/content_features.h | 1 + - cromite_flags/BUILD.gn | 168 ++++++++++++++++++ + cromite_flags/BUILD.gn | 174 ++++++++++++++++++ .../browser/about_flags_cc/placeholder.txt | 1 + .../browser_features_cc/placeholder.txt | 1 + + .../browser_features_h/placeholder.txt | 1 + .../chrome_feature_list_cc/placeholder.txt | 1 + .../chrome_feature_list_h/placeholder.txt | 1 + .../browser/ui/ui_features_cc/placeholder.txt | 1 + @@ -102,7 +104,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 + - 89 files changed, 792 insertions(+), 28 deletions(-) + 91 files changed, 801 insertions(+), 28 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 @@ -111,6 +113,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html create mode 100755 cromite_flags/BUILD.gn create mode 100755 cromite_flags/chrome/browser/about_flags_cc/placeholder.txt create mode 100755 cromite_flags/chrome/browser/browser_features_cc/placeholder.txt + create mode 100755 cromite_flags/chrome/browser/browser_features_h/placeholder.txt create mode 100755 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/placeholder.txt create mode 100755 cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/placeholder.txt create mode 100755 cromite_flags/chrome/browser/ui/ui_features_cc/placeholder.txt @@ -138,7 +141,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 -@@ -185,6 +185,8 @@ use_epoll = is_linux || is_chromeos || is_android +@@ -163,6 +163,8 @@ use_epoll = is_linux || is_chromeos || is_android # This does not include test code (test support and anything in the test # directory) which should use source_set as is recommended for GN targets). component("base") { @@ -147,7 +150,7 @@ diff --git a/base/BUILD.gn b/base/BUILD.gn sources = [ "allocator/allocator_check.cc", "allocator/allocator_check.h", -@@ -1025,7 +1027,7 @@ component("base") { +@@ -1005,7 +1007,7 @@ component("base") { "//build/config/compiler:wglobal_constructors", ] @@ -239,7 +242,7 @@ diff --git a/base/feature_list.cc b/base/feature_list.cc + return key; + } + } -+ NOTREACHED_NORETURN(); ++ NOTREACHED(); +} + +// static @@ -259,13 +262,13 @@ diff --git a/base/feature_list.cc b/base/feature_list.cc + return value == base::FEATURE_ENABLED_BY_DEFAULT; + } + } -+ NOTREACHED_NORETURN(); ++ NOTREACHED(); +} + // static bool FeatureList::IsValidFeatureOrFieldTrialName(std::string_view name) { return IsStringASCII(name) && name.find_first_of(",<*") == std::string::npos; -@@ -739,6 +804,17 @@ void FeatureList::VisitFeaturesAndParams(FeatureVisitor& visitor, +@@ -735,6 +800,17 @@ void FeatureList::VisitFeaturesAndParams(FeatureVisitor& visitor, void FeatureList::FinalizeInitialization() { DCHECK(!initialized_); @@ -445,14 +448,14 @@ 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/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 -@@ -18,6 +18,7 @@ import org.chromium.chrome.R; +@@ -19,6 +19,7 @@ import org.chromium.chrome.R; import org.chromium.chrome.browser.image_descriptions.ImageDescriptionsController; import org.chromium.chrome.browser.preferences.Pref; import org.chromium.chrome.browser.settings.SettingsNavigationFactory; +import org.chromium.chrome.browser.settings.ChromeBaseSettingsFragment; import org.chromium.components.browser_ui.accessibility.AccessibilitySettingsDelegate; import org.chromium.components.browser_ui.accessibility.FontSizePrefs; - import org.chromium.components.browser_ui.accessibility.FontSizePrefs.FontSizePrefsObserver; + import org.chromium.components.browser_ui.accessibility.PageZoomPreference; @@ -37,7 +38,7 @@ import org.chromium.content_public.browser.ContentFeatureList; import org.chromium.content_public.browser.ContentFeatureMap; @@ -460,9 +463,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s -public class AccessibilitySettings extends PreferenceFragmentCompat +public class AccessibilitySettings extends ChromeBaseSettingsFragment implements EmbeddableSettingsPage, Preference.OnPreferenceChangeListener { - public static final String PREF_TEXT_SCALE = "text_scale"; public static final String PREF_PAGE_ZOOM_DEFAULT_ZOOM = "page_zoom_default_zoom"; -@@ -101,7 +102,7 @@ public class AccessibilitySettings extends PreferenceFragmentCompat + public static final String PREF_PAGE_ZOOM_INCLUDE_OS_ADJUSTMENT = +@@ -85,7 +86,7 @@ public class AccessibilitySettings extends PreferenceFragmentCompat } @Override @@ -470,7 +473,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s + public void onCreatePreferencesCromite(Bundle savedInstanceState, String rootKey) { SettingsUtils.addPreferencesFromResource(this, R.xml.accessibility_preferences); - mTextScalePref = (TextScalePreference) findPreference(PREF_TEXT_SCALE); + mPageZoomDefaultZoomPref = (PageZoomPreference) findPreference(PREF_PAGE_ZOOM_DEFAULT_ZOOM); diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java @@ -486,7 +489,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settin diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -80,7 +80,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -81,7 +81,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private final ObservableSupplierImpl mPageTitle = new ObservableSupplierImpl<>(); @Override @@ -576,7 +579,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; import org.chromium.components.browser_ui.bottomsheet.BottomSheetControllerFactory; import org.chromium.components.browser_ui.bottomsheet.ManagedBottomSheetController; -@@ -83,6 +88,40 @@ import java.util.Locale; +@@ -85,6 +90,40 @@ import java.util.Locale; */ public class SettingsActivity extends ChromeBaseAppCompatActivity implements PreferenceFragmentCompat.OnPreferenceStartFragmentCallback, SnackbarManageable { @@ -617,7 +620,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"; -@@ -141,7 +180,8 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -151,7 +190,8 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity mProfile, mSnackbarManagerSupplier, mBottomSheetControllerSupplier, @@ -630,7 +633,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 -@@ -388,6 +388,10 @@ using flags_ui::kOsLinux; +@@ -392,6 +392,10 @@ using flags_ui::kOsLinux; using flags_ui::kOsMac; using flags_ui::kOsWin; @@ -641,8 +644,8 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc namespace about_flags { namespace { -@@ -4210,6 +4214,10 @@ const FeatureEntry::FeatureVariation - 1, nullptr}, +@@ -4315,6 +4319,10 @@ const FeatureEntry::FeatureVariation kServiceWorkerAutoPreloadVariations[] = { + std::size(kServiceWorkerAutoPreload_SWNotRunningOnly), nullptr}, }; +#define FEATURE_PARAM_SECTION @@ -652,7 +655,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc // RECORDING USER METRICS FOR FLAGS: // ----------------------------------------------------------------------------- // The first line of the entry is the internal name. -@@ -4236,6 +4244,9 @@ const FeatureEntry::FeatureVariation +@@ -4341,6 +4349,9 @@ const FeatureEntry::FeatureVariation kServiceWorkerAutoPreloadVariations[] = { const FeatureEntry kFeatureEntries[] = { // Include generated flags for flag unexpiry; see //docs/flag_expiry.md and // //tools/flags/generate_unexpire_flags.py. @@ -665,12 +668,23 @@ 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 -@@ -392,4 +392,5 @@ BASE_FEATURE(kRemovalOfIWAsFromTabCapture, +@@ -372,4 +372,5 @@ BASE_FEATURE(kRemovalOfIWAsFromTabCapture, "RemovalOfIWAsFromTabCapture", base::FEATURE_ENABLED_BY_DEFAULT); +#include "cromite_flags/chrome_browser_browser_features_cc.inc" } // namespace features +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 +@@ -145,6 +145,7 @@ BASE_DECLARE_FEATURE(kRemovalOfIWAsFromTabCapture); + // module, e.g. + // //chrome/browser//features.h + // ++#include "cromite_flags/chrome_browser_browser_features_h.inc" + } // namespace features + + #endif // CHROME_BROWSER_BROWSER_FEATURES_H_ diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn --- a/chrome/browser/flags/BUILD.gn +++ b/chrome/browser/flags/BUILD.gn @@ -713,8 +727,8 @@ diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -1096,5 +1096,6 @@ BASE_FEATURE(kWebApkAllowIconUpdate, - "WebApkAllowIconUpdate", +@@ -1063,5 +1063,6 @@ BASE_FEATURE(kWebOtpCrossDeviceSimpleString, + "WebOtpCrossDeviceSimpleString", base::FEATURE_DISABLED_BY_DEFAULT); +#include "cromite_flags/chrome_browser_flags_android_chrome_feature_list_cc.inc" @@ -723,7 +737,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h --- a/chrome/browser/flags/android/chrome_feature_list.h +++ b/chrome/browser/flags/android/chrome_feature_list.h -@@ -222,6 +222,7 @@ constexpr base::FeatureParam kQuickDeleteAndroidSurveyTriggerId( +@@ -215,6 +215,7 @@ constexpr base::FeatureParam kQuickDeleteAndroidSurveyTriggerId( "trigger_id", /*default_value=*/""); @@ -734,7 +748,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser 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 -@@ -18,6 +18,10 @@ import org.chromium.components.cached_flags.DoubleCachedFieldTrialParameter; +@@ -17,6 +17,10 @@ import org.chromium.components.cached_flags.DoubleCachedFieldTrialParameter; import org.chromium.components.cached_flags.IntCachedFieldTrialParameter; import org.chromium.components.cached_flags.StringCachedFieldTrialParameter; @@ -745,7 +759,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f import java.util.List; import java.util.Map; -@@ -766,7 +770,7 @@ public abstract class ChromeFeatureList { +@@ -730,7 +734,7 @@ public abstract class ChromeFeatureList { public static final CachedFlag sWebApkMinShellApkVersion = newCachedFlag(WEB_APK_MIN_SHELL_APK_VERSION, true); @@ -754,7 +768,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f List.of( sAccountReauthenticationRecentTimeWindow, sAndroidAppIntegration, -@@ -867,6 +871,13 @@ public abstract class ChromeFeatureList { +@@ -823,6 +827,13 @@ public abstract class ChromeFeatureList { sUseLibunwindstackNativeUnwinderAndroid, sWebApkMinShellApkVersion); @@ -765,9 +779,9 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f + public static final List sFlagsCachedFullBrowser = + concatenateLists(CromiteCachedFlagImplBase.getList(), sFlagsCachedFullBrowserChromium); + - public static final List sFlagsCachedInMinimalBrowser = - List.of(sExperimentsForAgsa); + public static final List sFlagsCachedInMinimalBrowser = List.of(); + public static final List sTestCachedFlags = diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/include_all_directory.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/include_all_directory.java new file mode 100644 --- /dev/null @@ -943,16 +957,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 -@@ -458,4 +458,5 @@ BASE_FEATURE(kPageSpecificDataDialogRelatedInstalledAppsSection, - "PageSpecificDataDialogRelatedInstalledAppsSection", - base::FEATURE_DISABLED_BY_DEFAULT); +@@ -487,4 +487,5 @@ BASE_FEATURE(kInlineFullscreenPerfExperiment, + "InlineFullscreenPerfExperiment", + base::FEATURE_ENABLED_BY_DEFAULT); +#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 -@@ -1737,4 +1737,5 @@ BASE_FEATURE(kPeriodicLogUploadMigration, +@@ -1629,4 +1629,5 @@ BASE_FEATURE(kPeriodicLogUploadMigration, base::FEATURE_DISABLED_BY_DEFAULT); #endif // BUILDFLAG(IS_CHROMEOS_ASH) @@ -969,8 +983,8 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil + - +@@ -352,6 +352,7 @@ CONTENT_EXPORT extern const base::FeatureParam CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForOutOfProcess(); CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForBrowserProcess(); @@ -1549,7 +1571,7 @@ diff --git a/cromite_flags/BUILD.gn b/cromite_flags/BUILD.gn new file mode 100755 --- /dev/null +++ b/cromite_flags/BUILD.gn -@@ -0,0 +1,168 @@ +@@ -0,0 +1,174 @@ +# This file is part of Bromite. + +# Bromite is free software: you can redistribute it and/or modify @@ -1620,6 +1642,11 @@ new file mode 100755 + output_file = "chrome_browser_browser_features_cc.inc" +} + ++cpp_bromite_include("chrome_browser_browser_features_h") { ++ inputs = [ "//cromite_flags/chrome/browser/browser_features_h/placeholder.txt" ] ++ output_file = "chrome_browser_browser_features_h.inc" ++} ++ +cpp_bromite_include("chrome_browser_ui_ui_features_cc") { + inputs = [ "//cromite_flags/chrome/browser/ui/ui_features_cc/placeholder.txt" ] + output_file = "chrome_browser_ui_ui_features_cc.inc" @@ -1710,6 +1737,7 @@ new file mode 100755 + ":chrome_browser_flags_android_chrome_feature_list_h", + ":chrome_browser_ui_ui_features_cc", + ":chrome_browser_browser_features_cc", ++ ":chrome_browser_browser_features_h", + ":services_network_public_cpp_features_cc", + ":services_network_public_cpp_features_h", + ":third_party_blink_common_features_cc", @@ -1730,6 +1758,12 @@ new file mode 100755 +++ b/cromite_flags/chrome/browser/browser_features_cc/placeholder.txt @@ -0,0 +1 @@ +this file is intentionally empty +diff --git a/cromite_flags/chrome/browser/browser_features_h/placeholder.txt b/cromite_flags/chrome/browser/browser_features_h/placeholder.txt +new file mode 100755 +--- /dev/null ++++ b/cromite_flags/chrome/browser/browser_features_h/placeholder.txt +@@ -0,0 +1 @@ ++this file is intentionally empty diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/placeholder.txt b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/placeholder.txt new file mode 100755 --- /dev/null @@ -1871,7 +1905,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 -@@ -1906,5 +1906,5 @@ uint32_t GetPassthroughAudioFormats() { +@@ -1837,5 +1837,5 @@ uint32_t GetPassthroughAudioFormats() { return 0; #endif // BUILDFLAG(ENABLE_PASSTHROUGH_AUDIO_CODECS) } @@ -1881,7 +1915,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 -@@ -585,5 +585,5 @@ MEDIA_EXPORT OOPVDMode GetOutOfProcessVideoDecodingMode(); +@@ -572,5 +572,5 @@ MEDIA_EXPORT OOPVDMode GetOutOfProcessVideoDecodingMode(); MEDIA_EXPORT uint32_t GetPassthroughAudioFormats(); } // namespace media @@ -1891,18 +1925,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 -@@ -616,4 +616,5 @@ const base::FeatureParam kDiskCacheBackendParam{ - &kDiskCacheBackendExperiment, "backend", DiskCacheBackend::kBlockfile, - &kDiskCacheBackendOptions}; +@@ -629,4 +629,5 @@ BASE_FEATURE(kIgnoreHSTSForLocalhost, + "IgnoreHSTSForLocalhost", + base::FEATURE_ENABLED_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 -@@ -628,6 +628,7 @@ NET_EXPORT BASE_DECLARE_FEATURE(kDiskCacheBackendExperiment); - NET_EXPORT extern const base::FeatureParam - kDiskCacheBackendParam; +@@ -650,6 +650,7 @@ NET_EXPORT extern const base::FeatureParam + // If enabled, ignore Strict-Transport-Security for [*.]localhost hosts. + NET_EXPORT BASE_DECLARE_FEATURE(kIgnoreHSTSForLocalhost); +#include "cromite_flags/net_base_features_h.inc" } // namespace net::features @@ -1911,18 +1945,18 @@ diff --git a/net/base/features.h b/net/base/features.h diff --git a/services/network/public/cpp/features.cc b/services/network/public/cpp/features.cc --- a/services/network/public/cpp/features.cc +++ b/services/network/public/cpp/features.cc -@@ -515,4 +515,5 @@ BASE_FEATURE(kStorageAccessHeadersTrial, - "StorageAccessHeadersTrial", +@@ -475,4 +475,5 @@ BASE_FEATURE(kEnableLockCookieDatabaseByDefault, base::FEATURE_ENABLED_BY_DEFAULT); + #endif // BUILDFLAG(IS_WIN) +#include "cromite_flags/services_network_public_cpp_features_cc.inc" } // namespace network::features diff --git a/services/network/public/cpp/features.h b/services/network/public/cpp/features.h --- a/services/network/public/cpp/features.h +++ b/services/network/public/cpp/features.h -@@ -204,6 +204,7 @@ COMPONENT_EXPORT(NETWORK_CPP) BASE_DECLARE_FEATURE(kStorageAccessHeaders); - // Enables the Storage Access Headers Origin Trial. - COMPONENT_EXPORT(NETWORK_CPP) BASE_DECLARE_FEATURE(kStorageAccessHeadersTrial); +@@ -211,6 +211,7 @@ COMPONENT_EXPORT(NETWORK_CPP) + BASE_DECLARE_FEATURE(kEnableLockCookieDatabaseByDefault); + #endif // BUILDFLAG(IS_WIN) +#include "cromite_flags/services_network_public_cpp_features_h.inc" } // namespace network::features @@ -1931,7 +1965,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 -@@ -2801,4 +2801,5 @@ bool IsCanvasSharedBitmapConversionEnabled() { +@@ -2932,4 +2932,5 @@ bool IsCanvasSharedBitmapConversionEnabled() { // // DO NOT ADD NEW FEATURES HERE. @@ -1940,7 +1974,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 -@@ -1879,6 +1879,7 @@ BLINK_COMMON_EXPORT bool IsCanvasSharedBitmapConversionEnabled(); +@@ -1886,6 +1886,7 @@ BLINK_COMMON_EXPORT bool IsCanvasSharedBitmapConversionEnabled(); // // DO NOT ADD NEW FEATURES HERE. @@ -1951,7 +1985,7 @@ diff --git a/third_party/blink/public/common/features.h b/third_party/blink/publ diff --git a/ui/base/ui_base_features.cc b/ui/base/ui_base_features.cc --- a/ui/base/ui_base_features.cc +++ b/ui/base/ui_base_features.cc -@@ -554,4 +554,5 @@ BASE_FEATURE(kAsyncFullscreenWindowState, +@@ -503,4 +503,5 @@ BASE_FEATURE(kAsyncFullscreenWindowState, "AsyncFullscreenWindowState", base::FEATURE_DISABLED_BY_DEFAULT); @@ -1960,7 +1994,7 @@ diff --git a/ui/base/ui_base_features.cc b/ui/base/ui_base_features.cc diff --git a/ui/base/ui_base_features.h b/ui/base/ui_base_features.h --- a/ui/base/ui_base_features.h +++ b/ui/base/ui_base_features.h -@@ -273,6 +273,7 @@ BASE_DECLARE_FEATURE(kWriteBookmarkWithoutTitle); +@@ -259,6 +259,7 @@ BASE_DECLARE_FEATURE(kWriteBookmarkWithoutTitle); COMPONENT_EXPORT(UI_BASE_FEATURES) BASE_DECLARE_FEATURE(kAsyncFullscreenWindowState); diff --git a/build/patches/Add-custom-tab-intents-privacy-option.patch b/build/patches/Add-custom-tab-intents-privacy-option.patch index 1d31cbfa3..27ac9054e 100644 --- a/build/patches/Add-custom-tab-intents-privacy-option.patch +++ b/build/patches/Add-custom-tab-intents-privacy-option.patch @@ -56,7 +56,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java --- a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java -@@ -58,6 +58,9 @@ import java.lang.annotation.Retention; +@@ -64,6 +64,9 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.Set; @@ -66,7 +66,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis /** * Dispatches incoming intents to the appropriate activity based on the current configuration and * Intent fired. -@@ -244,6 +247,9 @@ public class LaunchIntentDispatcher { +@@ -266,6 +269,9 @@ public class LaunchIntentDispatcher { @OptIn(markerClass = ExperimentalAuthTab.class) public static boolean isCustomTabIntent(Intent intent) { if (intent == null) return false; @@ -76,7 +76,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis Log.w( TAG, "CustomTabsIntent#shouldAlwaysUseBrowserUI() = " -@@ -272,6 +278,10 @@ public class LaunchIntentDispatcher { +@@ -294,6 +300,10 @@ public class LaunchIntentDispatcher { // Make sure the result of the CustomTabActivity is forwarded to the client. newIntent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT); @@ -87,7 +87,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis // Since configureIntentForResizableCustomTab() might change the componenet/class // associated with the passed intent, it needs to be called after #setClassName(context, // CustomTabActivity.class.getName()); -@@ -445,6 +455,17 @@ public class LaunchIntentDispatcher { +@@ -490,6 +500,17 @@ public class LaunchIntentDispatcher { if (Intent.ACTION_VIEW.equals(newIntent.getAction()) && !IntentHandler.wasIntentSenderChrome(newIntent)) { @@ -108,7 +108,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java -@@ -1229,7 +1229,9 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid +@@ -1238,7 +1238,9 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid public @CustomTabProfileType int getCustomTabMode() { return AlwaysIncognitoLinkInterceptor.isAlwaysIncognito() ? CustomTabProfileType.INCOGNITO @@ -122,7 +122,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java -@@ -958,6 +958,7 @@ public class CustomTabsConnection { +@@ -969,6 +969,7 @@ public class CustomTabsConnection { PostTask.postTask( TaskTraits.UI_DEFAULT, () -> { @@ -156,7 +156,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Inco @@ -216,6 +222,10 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD } - public static boolean isValidIncognitoIntent(Intent intent) { + public static boolean isValidIncognitoIntent(Intent intent, boolean recordMetrics) { + if (ContextUtils.getAppSharedPreferences() + .getBoolean(PrivacySettings.PREF_OPEN_EXTERNAL_LINKS_INCOGNITO, false)) { + return true; @@ -164,7 +164,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Inco if (!isIncognitoRequested(intent)) return false; var session = CustomTabsSessionToken.getSessionTokenFromIntent(intent); if (isIntentFromThirdPartyAllowed() -@@ -326,6 +336,10 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD +@@ -329,6 +339,10 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD @Override public @CustomTabProfileType int getCustomTabMode() { @@ -178,7 +178,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Inco diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -56,6 +56,15 @@ import org.chromium.components.signin.identitymanager.ConsentLevel; +@@ -57,6 +57,15 @@ import org.chromium.components.signin.identitymanager.ConsentLevel; import org.chromium.components.user_prefs.UserPrefs; import org.chromium.ui.text.SpanApplier; @@ -194,7 +194,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import androidx.annotation.Nullable; import androidx.preference.PreferenceCategory; import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager; -@@ -103,6 +112,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -104,6 +113,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private IncognitoLockSettings mIncognitoLockSettings; private final ObservableSupplierImpl mPageTitle = new ObservableSupplierImpl<>(); @@ -266,7 +266,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -692,6 +692,7 @@ public abstract class ChromeFeatureList { +@@ -662,6 +662,7 @@ public abstract class ChromeFeatureList { public static final CachedFlag sLogoPolishAnimationKillSwitch = newCachedFlag(LOGO_POLISH_ANIMATION_KILL_SWITCH, true); public static final CachedFlag sMagicStackAndroid = newCachedFlag(MAGIC_STACK_ANDROID, true); @@ -274,7 +274,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final CachedFlag sMostVisitedTilesReselect = newCachedFlag(MOST_VISITED_TILES_RESELECT, false); public static final CachedFlag sMultiInstanceApplicationStatusCleanup = -@@ -833,6 +834,7 @@ public abstract class ChromeFeatureList { +@@ -792,6 +793,7 @@ public abstract class ChromeFeatureList { sLogoPolishAnimationKillSwitch, sNotificationTrampoline, sMagicStackAndroid, @@ -346,7 +346,7 @@ diff --git a/components/content_relationship_verification/android/java/src/org/c diff --git a/components/language/core/common/language_experiments.cc b/components/language/core/common/language_experiments.cc --- a/components/language/core/common/language_experiments.cc +++ b/components/language/core/common/language_experiments.cc -@@ -28,4 +28,5 @@ BASE_FEATURE(kTranslateOpenSettings, +@@ -32,4 +32,5 @@ BASE_FEATURE(kDisableGeoLanguageModel, // Params: const char kContentLanguagesDisableObserversParam[] = "disable_observers"; diff --git a/build/patches/Add-exit-menu-item.patch b/build/patches/Add-exit-menu-item.patch index 6fb3a743f..598814046 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 -@@ -157,6 +157,9 @@ found in the LICENSE file. +@@ -160,6 +160,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. +@@ -189,6 +192,9 @@ found in the LICENSE file. @@ -39,7 +39,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -277,6 +277,8 @@ import java.util.Set; +@@ -276,6 +276,8 @@ import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; import java.util.function.DoubleConsumer; @@ -48,7 +48,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct /** * This is the main activity for ChromeMobile when not running in document mode. All the tabs are * accessible via a chrome specific tab switching UI. -@@ -2826,6 +2828,8 @@ public class ChromeTabbedActivity extends ChromeActivity +@@ -2432,6 +2433,11 @@ public abstract class ChromeActivity return true; } @@ -102,7 +102,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLife diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -4379,6 +4379,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4385,6 +4385,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 8665a06b6..4de1e5afa 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" -@@ -535,6 +536,15 @@ AutocompleteController::AutocompleteController( +@@ -536,6 +537,15 @@ AutocompleteController::AutocompleteController( provider_client_->GetOmniboxTriggeredFeatureService()), steady_state_omnibox_position_( metrics::OmniboxEventProto::UNKNOWN_POSITION) { @@ -66,7 +66,7 @@ diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/ #include "base/functional/callback.h" #include "base/i18n/break_iterator.h" #include "base/i18n/case_conversion.h" -@@ -647,6 +648,9 @@ void SearchProvider::Run(bool query_is_private) { +@@ -631,6 +632,9 @@ void SearchProvider::Run(bool query_is_private) { } void SearchProvider::DoHistoryQuery(bool minimal_changes) { diff --git a/build/patches/Add-flag-to-disable-IPv6-probes.patch b/build/patches/Add-flag-to-disable-IPv6-probes.patch index 6ea30ba60..c1912cc38 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 -@@ -1101,6 +1101,7 @@ component("net") { +@@ -1102,6 +1102,7 @@ component("net") { "//components/miracle_parameter/common", "//components/network_time/time_tracker", "//net/http:transport_security_state_generated_files", @@ -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" -@@ -1430,6 +1431,13 @@ int HostResolverManager::StartIPv6ReachabilityCheck( +@@ -1426,6 +1427,13 @@ int HostResolverManager::StartIPv6ReachabilityCheck( return OK; } diff --git a/build/patches/Add-flag-to-disable-external-intent-requests.patch b/build/patches/Add-flag-to-disable-external-intent-requests.patch index defd6307e..3376982df 100644 --- a/build/patches/Add-flag-to-disable-external-intent-requests.patch +++ b/build/patches/Add-flag-to-disable-external-intent-requests.patch @@ -186,7 +186,7 @@ diff --git a/components/external_intents/android/java/src/org/chromium/component private OverrideUrlLoadingResult shouldOverrideUrlLoadingInternal( ExternalNavigationParams params, Intent targetIntent, -@@ -1594,6 +1600,21 @@ public class ExternalNavigationHandler { +@@ -1588,6 +1594,21 @@ public class ExternalNavigationHandler { return OverrideUrlLoadingResult.forNoOverride(); } diff --git a/build/patches/Add-flag-to-disable-vibration.patch b/build/patches/Add-flag-to-disable-vibration.patch index ed36bcd34..24f732e0f 100644 --- a/build/patches/Add-flag-to-disable-vibration.patch +++ b/build/patches/Add-flag-to-disable-vibration.patch @@ -20,7 +20,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc --- a/content/child/runtime_features.cc +++ b/content/child/runtime_features.cc -@@ -103,6 +103,7 @@ void SetRuntimeFeatureDefaultsForPlatform( +@@ -104,6 +104,7 @@ void SetRuntimeFeatureDefaultsForPlatform( if (command_line.HasSwitch(switches::kDisableMediaSessionAPI)) { WebRuntimeFeatures::EnableMediaSession(false); } @@ -78,7 +78,7 @@ diff --git a/third_party/blink/renderer/modules/vibration/vibration_controller.c // Maximum number of entries in a vibration pattern. const unsigned kVibrationPatternLengthMax = 99; -@@ -109,6 +110,8 @@ bool VibrationController::vibrate(Navigator& navigator, +@@ -108,6 +109,8 @@ bool VibrationController::vibrate(Navigator& navigator, // reference to |window| or |navigator| was retained in another window. if (!navigator.DomWindow()) return false; @@ -104,7 +104,7 @@ diff --git a/third_party/blink/renderer/platform/exported/web_runtime_features.c diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -791,6 +791,10 @@ +@@ -793,6 +793,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 280ba01dc..e672f8dfa 100644 --- a/build/patches/Add-kill-switch-for-unsupported-clangd-flags.patch +++ b/build/patches/Add-kill-switch-for-unsupported-clangd-flags.patch @@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn -@@ -1964,7 +1964,6 @@ config("default_warnings") { +@@ -1984,7 +1984,6 @@ config("default_warnings") { # TODO(crbug.com/40284799): Fix and re-enable. "-Wno-thread-safety-reference-return", ] @@ -22,8 +22,8 @@ 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", -@@ -1987,6 +1986,16 @@ config("default_warnings") { - cflags_cc += [ "-Wno-deprecated-literal-operator" ] +@@ -2007,6 +2006,16 @@ config("default_warnings") { + cflags += [ "-Wno-nontrivial-memaccess" ] } } + if (skip_clangd_unsupported_options) { diff --git a/build/patches/Add-lifetime-options-for-permissions.patch b/build/patches/Add-lifetime-options-for-permissions.patch index 6dd29f9f0..9ffcd0fc2 100644 --- a/build/patches/Add-lifetime-options-for-permissions.patch +++ b/build/patches/Add-lifetime-options-for-permissions.patch @@ -176,7 +176,7 @@ diff --git a/chrome/browser/permissions/one_time_permissions_tracker.cc b/chrome OneTimePermissionsTracker::~OneTimePermissionsTracker() = default; OneTimePermissionsTracker::OriginTrackEntry::OriginTrackEntry() = default; -@@ -258,6 +284,11 @@ void OneTimePermissionsTracker::NotifyLastPageFromOriginClosed( +@@ -257,6 +283,11 @@ void OneTimePermissionsTracker::NotifyLastPageFromOriginClosed( for (auto& observer : observer_list_) { observer.OnLastPageFromOriginClosed(origin); } @@ -242,7 +242,7 @@ diff --git a/chrome/browser/ui/views/permissions/chip/chip_controller.cc b/chrom 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 -@@ -654,7 +654,7 @@ void EmbeddedPermissionPrompt::SendDelegateAction(Action action) { +@@ -660,7 +660,7 @@ void EmbeddedPermissionPrompt::SendDelegateAction(Action action) { delegate_->Accept(); break; case Action::kAllowThisTime: @@ -289,7 +289,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java -@@ -568,6 +568,11 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -589,6 +589,11 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment } } @@ -301,7 +301,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c private void setUpClearDataPreference() { ClearWebsiteStorage preference = findPreference(PREF_CLEAR_DATA); long usage = mSite.getTotalUsage(); -@@ -1102,6 +1107,10 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1154,6 +1159,10 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment AppCompatResources.getColorStateList(getContext(), mHighlightColor) .getDefaultColor()); } @@ -327,7 +327,7 @@ diff --git a/components/browser_ui/site_settings/android/website_preference_brid diff --git a/components/browser_ui/strings/android/browser_ui_strings.grd b/components/browser_ui/strings/android/browser_ui_strings.grd --- a/components/browser_ui/strings/android/browser_ui_strings.grd +++ b/components/browser_ui/strings/android/browser_ui_strings.grd -@@ -654,6 +654,11 @@ +@@ -646,6 +646,11 @@ URL truncated @@ -342,7 +342,7 @@ diff --git a/components/browser_ui/strings/android/browser_ui_strings.grd b/comp diff --git a/components/content_settings/core/browser/content_settings_utils.cc b/components/content_settings/core/browser/content_settings_utils.cc --- a/components/content_settings/core/browser/content_settings_utils.cc +++ b/components/content_settings/core/browser/content_settings_utils.cc -@@ -160,6 +160,42 @@ bool IsConstraintPersistent(const ContentSettingConstraints& constraints) { +@@ -161,6 +161,42 @@ bool IsConstraintPersistent(const ContentSettingConstraints& constraints) { return constraints.session_model() == mojom::SessionModel::DURABLE; } @@ -461,7 +461,7 @@ diff --git a/components/page_info/android/java/src/org/chromium/components/page_ } } -@@ -126,13 +131,15 @@ public class PermissionParamsListBuilder { +@@ -127,13 +132,15 @@ public class PermissionParamsListBuilder { public final String nameMidSentence; public final int type; public final @ContentSettingValues int setting; @@ -481,7 +481,7 @@ diff --git a/components/page_info/android/java/src/org/chromium/components/page_ diff --git a/components/page_info/android/page_info_controller_android.cc b/components/page_info/android/page_info_controller_android.cc --- a/components/page_info/android/page_info_controller_android.cc +++ b/components/page_info/android/page_info_controller_android.cc -@@ -164,6 +164,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( +@@ -166,6 +166,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( std::map user_specified_settings_to_display; @@ -490,7 +490,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp for (const auto& permission : permission_info_list) { if (base::Contains(permissions_to_display, permission.type)) { -@@ -172,6 +174,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( +@@ -174,6 +176,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( if (setting_to_display) { user_specified_settings_to_display[permission.type] = *setting_to_display; @@ -499,7 +499,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp } } } -@@ -188,7 +192,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( +@@ -190,7 +194,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( ConvertUTF16ToJavaString(env, setting_title), ConvertUTF16ToJavaString(env, setting_title_mid_sentence), static_cast(permission), @@ -509,7 +509,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp } } -@@ -201,7 +206,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( +@@ -203,7 +208,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( env, controller_jobject_, ConvertUTF16ToJavaString(env, object_title), ConvertUTF16ToJavaString(env, object_title), static_cast(chosen_object->ui_info->content_settings_type), @@ -522,7 +522,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 -@@ -1188,6 +1188,8 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, +@@ -1201,6 +1201,8 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, permission_info.is_one_time = (info.metadata.session_model() == content_settings::mojom::SessionModel::ONE_TIME); @@ -1120,7 +1120,7 @@ diff --git a/components/permissions/permission_request.cc b/components/permissio PermissionRequest::~PermissionRequest() { DCHECK(delete_callback_.is_null()); } -@@ -406,19 +414,37 @@ bool PermissionRequest::ShouldUseTwoOriginPrompt() const { +@@ -404,19 +412,37 @@ bool PermissionRequest::ShouldUseTwoOriginPrompt() const { return request_type() == RequestType::kStorageAccess; } 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 427ab0570..36c1cc1a6 100644 --- a/build/patches/Add-menu-item-to-bookmark-all-tabs.patch +++ b/build/patches/Add-menu-item-to-bookmark-all-tabs.patch @@ -13,6 +13,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../bookmark_merged_surface_service.cc | 2 + .../dialogs/DownloadLocationCustomView.java | 4 +- .../strings/android_chrome_strings.grd | 3 + + .../bookmark_ui_operations_helper.cc | 2 + .../views/bookmarks/bookmark_menu_delegate.cc | 2 + components/bookmark_bar_strings.grdp | 6 ++ .../bookmarks/browser/bookmark_codec.cc | 20 +++++- @@ -28,7 +29,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html components/bookmarks/browser/bookmark_uuids.h | 1 + components/bookmarks/browser/model_loader.cc | 8 ++- .../bookmark_specifics_conversions.cc | 1 + - 24 files changed, 245 insertions(+), 15 deletions(-) + 25 files changed, 247 insertions(+), 15 deletions(-) diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml --- a/chrome/android/java/res/menu/main_menu.xml @@ -44,7 +45,7 @@ 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. +@@ -183,6 +187,9 @@ found in the LICENSE file. @@ -57,7 +58,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 -@@ -97,6 +97,7 @@ import org.chromium.chrome.browser.base.ColdStartTracker; +@@ -95,6 +95,7 @@ import org.chromium.chrome.browser.base.ColdStartTracker; import org.chromium.chrome.browser.bookmarks.BookmarkUtils; import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.compositor.CompositorViewHolder; @@ -65,7 +66,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.chrome.browser.compositor.layouts.Layout; import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChrome; import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromePhone; -@@ -2858,6 +2859,8 @@ public class ChromeTabbedActivity extends ChromeActivityother_node()); ExtractUrls( BookmarkModelFactory::GetForBrowserContext(profile_)->mobile_node()); @@ -372,7 +373,7 @@ diff --git a/chrome/browser/bookmarks/bookmark_html_writer.cc b/chrome/browser/b diff --git a/chrome/browser/bookmarks/bookmark_merged_surface_service.cc b/chrome/browser/bookmarks/bookmark_merged_surface_service.cc --- a/chrome/browser/bookmarks/bookmark_merged_surface_service.cc +++ b/chrome/browser/bookmarks/bookmark_merged_surface_service.cc -@@ -42,6 +42,8 @@ std::optional GetIfPermanentFolderType( +@@ -43,6 +43,8 @@ std::optional GetIfPermanentFolderType( case BookmarkNode::Type::URL: NOTREACHED(); @@ -405,7 +406,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 -@@ -4506,6 +4506,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4512,6 +4512,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d Select tabs @@ -415,10 +416,22 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro Get image descriptions +diff --git a/chrome/browser/ui/bookmarks/bookmark_ui_operations_helper.cc b/chrome/browser/ui/bookmarks/bookmark_ui_operations_helper.cc +--- a/chrome/browser/ui/bookmarks/bookmark_ui_operations_helper.cc ++++ b/chrome/browser/ui/bookmarks/bookmark_ui_operations_helper.cc +@@ -54,6 +54,8 @@ ui::mojom::DragOperation BookmarkUIOperationsHelper::DropBookmarks( + if (is_reorder) { + base::UmaHistogramEnumeration("Bookmarks.ReorderDropTarget", target); + switch (GetParentType()) { ++ case bookmarks::BookmarkNode::TABS_COLLECTION: ++ break; + case bookmarks::BookmarkNode::URL: + NOTREACHED(); + case bookmarks::BookmarkNode::FOLDER: diff --git a/chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.cc b/chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.cc --- a/chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.cc +++ b/chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.cc -@@ -157,6 +157,8 @@ BookmarkParentFolder GetBookmarkParentFolderForNode( +@@ -103,6 +103,8 @@ BookmarkParentFolder GetBookmarkParentFolderForNode( return BookmarkParentFolder::OtherFolder(); case bookmarks::BookmarkNode::MOBILE: return BookmarkParentFolder::MobileFolder(); diff --git a/build/patches/Add-menu-item-to-view-source.patch b/build/patches/Add-menu-item-to-view-source.patch index 22fb94e5e..e7055d658 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 -@@ -110,6 +110,9 @@ found in the LICENSE file. +@@ -113,6 +113,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 -@@ -2891,6 +2891,8 @@ public class ChromeTabbedActivity extends ChromeActivity +@@ -2576,6 +2576,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 -@@ -566,6 +566,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -575,6 +575,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); -@@ -1277,6 +1278,23 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -1286,6 +1287,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 -@@ -293,6 +293,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat +@@ -300,6 +300,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 c214adecb..3e580fb54 100644 --- a/build/patches/Add-option-to-disable-snapshots.patch +++ b/build/patches/Add-option-to-disable-snapshots.patch @@ -15,7 +15,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java -@@ -397,7 +397,12 @@ class TabGridViewBinder { +@@ -398,7 +398,12 @@ class TabGridViewBinder { if (result != null) { TabUtils.setDrawableAndUpdateImageMatrix(thumbnail, result, thumbnailSize); } else { @@ -29,7 +29,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser } }; if (sThumbnailFetcherForTesting != null) { -@@ -438,6 +443,7 @@ class TabGridViewBinder { +@@ -439,6 +444,7 @@ class TabGridViewBinder { */ private static void setFavicon( ImageView faviconView, PropertyModel model, TabListFaviconProvider.TabFavicon favicon) { @@ -84,7 +84,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -142,6 +142,7 @@ import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; +@@ -140,6 +140,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; @@ -92,7 +92,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.ProfileManager; import org.chromium.chrome.browser.profiles.ProfileProvider; -@@ -715,7 +716,7 @@ public abstract class ChromeActivity +@@ -709,7 +710,7 @@ public abstract class ChromeActivity new TabContentManager( this, mBrowserControlsManagerSupplier.get(), @@ -112,7 +112,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import org.chromium.base.supplier.ObservableSupplier; import org.chromium.base.supplier.ObservableSupplierImpl; import org.chromium.base.ContextUtils; -@@ -75,12 +76,26 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; +@@ -76,12 +77,26 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate; @@ -140,7 +140,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting private static final String PREF_CAN_MAKE_PAYMENT = "can_make_payment"; private static final String PREF_PRELOAD_PAGES = "preload_pages"; private static final String PREF_HTTPS_FIRST_MODE = "https_first_mode"; -@@ -166,6 +181,21 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -167,6 +182,21 @@ public class PrivacySettings extends ChromeBaseSettingsFragment } } @@ -198,7 +198,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -6027,6 +6027,14 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -6033,6 +6033,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 c15844f25..cd8bbd2f2 100644 --- a/build/patches/Add-option-to-force-tablet-UI.patch +++ b/build/patches/Add-option-to-force-tablet-UI.patch @@ -14,7 +14,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../ChromeAccessibilitySettingsDelegate.java | 19 +++++++++++++++ .../chrome/browser/app/ChromeActivity.java | 4 +++- .../overlays/strip/StripLayoutHelper.java | 10 ++++++-- - .../strip/StripLayoutHelperManager.java | 5 +++- + .../strip/StripLayoutHelperManager.java | 6 ++++- .../init/ChromeBrowserInitializer.java | 2 ++ .../tabbed_mode/TabbedRootUiCoordinator.java | 4 +++- .../chrome/browser/ui/RootUiCoordinator.java | 6 ++++- @@ -37,7 +37,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../res/xml/accessibility_preferences.xml | 5 ++++ .../AccessibilitySettingsDelegate.java | 11 +++++++++ .../chromium/ui/base/DeviceFormFactor.java | 14 +++++++++++ - 33 files changed, 176 insertions(+), 27 deletions(-) + 33 files changed, 177 insertions(+), 27 deletions(-) diff --git a/chrome/android/java/res/layout/custom_tabs_control_container.xml b/chrome/android/java/res/layout/custom_tabs_control_container.xml --- a/chrome/android/java/res/layout/custom_tabs_control_container.xml @@ -98,14 +98,14 @@ diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java -@@ -50,6 +50,7 @@ import org.chromium.chrome.browser.metrics.UmaSessionStats; +@@ -51,6 +51,7 @@ import org.chromium.chrome.browser.metrics.UmaSessionStats; import org.chromium.chrome.browser.night_mode.GlobalNightModeStateProviderHolder; import org.chromium.chrome.browser.night_mode.NightModeStateProvider; import org.chromium.chrome.browser.night_mode.NightModeUtils; +import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; + import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeUtils; + import org.chromium.components.browser_ui.edge_to_edge.EdgeToEdgeManager; import org.chromium.components.browser_ui.edge_to_edge.EdgeToEdgeStateProvider; - import org.chromium.components.browser_ui.util.AutomotiveUtils; - import org.chromium.components.cached_flags.BooleanCachedFieldTrialParameter; @@ -115,6 +116,8 @@ public class ChromeBaseAppCompatActivity extends AppCompatActivity protected void attachBaseContext(Context newBase) { super.attachBaseContext(newBase); @@ -118,7 +118,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCo diff --git a/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java b/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java -@@ -62,6 +62,7 @@ import org.chromium.content_public.browser.WebContents; +@@ -63,6 +63,7 @@ import org.chromium.content_public.browser.WebContents; import org.chromium.content_public.browser.WebContentsObserver; import org.chromium.net.NetId; import org.chromium.ui.LayoutInflaterUtils; @@ -126,7 +126,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.j import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.display.DisplayUtil; import org.chromium.url.GURL; -@@ -463,7 +464,9 @@ public class WarmupManager { +@@ -469,7 +470,9 @@ public class WarmupManager { ControlContainer controlContainer = mainView.findViewById(R.id.control_container); if (toolbarId != ActivityUtils.NO_RESOURCE_ID && controlContainer != null) { @@ -140,25 +140,25 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.j diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/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 -@@ -20,6 +20,7 @@ import org.chromium.chrome.browser.preferences.Pref; +@@ -21,6 +21,7 @@ import org.chromium.chrome.browser.preferences.Pref; import org.chromium.chrome.browser.settings.SettingsNavigationFactory; import org.chromium.chrome.browser.settings.ChromeBaseSettingsFragment; import org.chromium.components.browser_ui.accessibility.AccessibilitySettingsDelegate; +import org.chromium.components.browser_ui.accessibility.AccessibilitySettingsDelegate.BooleanPreferenceDelegate; import org.chromium.components.browser_ui.accessibility.FontSizePrefs; - import org.chromium.components.browser_ui.accessibility.FontSizePrefs.FontSizePrefsObserver; import org.chromium.components.browser_ui.accessibility.PageZoomPreference; -@@ -51,6 +52,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment + import org.chromium.components.browser_ui.accessibility.PageZoomUma; +@@ -50,6 +51,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment public static final String PREF_ZOOM_INFO = "zoom_info"; public static final String PREF_IMAGE_DESCRIPTIONS = "image_descriptions"; + private BooleanPreferenceDelegate mForceTabletUIDelegate; + static final String PREF_FORCE_TABLET_UI = "force_tablet_ui"; + - private TextScalePreference mTextScalePref; private PageZoomPreference mPageZoomDefaultZoomPref; private ChromeSwitchPreference mPageZoomIncludeOSAdjustment; -@@ -153,6 +157,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment + private ChromeSwitchPreference mPageZoomAlwaysShowPref; +@@ -124,6 +128,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment mPrefService.getBoolean(Pref.READER_FOR_ACCESSIBILITY)); readerForAccessibilityPref.setOnPreferenceChangeListener(this); @@ -171,10 +171,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s Preference captions = findPreference(PREF_CAPTIONS); captions.setOnPreferenceClickListener( preference -> { -@@ -231,6 +241,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment - mFontSizePrefs.setUserFontScaleFactor((Float) newValue); - } else if (PREF_FORCE_ENABLE_ZOOM.equals(preference.getKey())) { - mFontSizePrefs.setForceEnableZoomFromUser((Boolean) newValue); +@@ -185,6 +195,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment + public boolean onPreferenceChange(Preference preference, Object newValue) { + if (PREF_FORCE_ENABLE_ZOOM.equals(preference.getKey())) { + mFontSizePrefs.setForceEnableZoom((Boolean) newValue); + } else if (PREF_FORCE_TABLET_UI.equals(preference.getKey())) { + mForceTabletUIDelegate.setEnabled((Boolean) newValue); + mDelegate.requestRestart(getActivity()); @@ -213,7 +213,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -860,7 +860,9 @@ public abstract class ChromeActivity +@@ -850,7 +850,9 @@ public abstract class ChromeActivity // Inflate the correct toolbar layout for the device. int toolbarLayoutId = getToolbarLayoutId(); if (toolbarLayoutId != ActivityUtils.NO_RESOURCE_ID && controlContainer != null) { @@ -227,15 +227,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 -@@ -93,6 +93,7 @@ import org.chromium.components.feature_engagement.Tracker; +@@ -99,6 +99,7 @@ import org.chromium.components.feature_engagement.Tracker; import org.chromium.components.prefs.PrefService; import org.chromium.components.tab_groups.TabGroupColorId; import org.chromium.ui.MotionEventUtils; +import org.chromium.ui.base.DeviceFormFactor; import org.chromium.ui.base.LocalizationUtils; import org.chromium.ui.base.WindowAndroid; - import org.chromium.ui.interpolators.Interpolators; -@@ -4655,8 +4656,13 @@ public class StripLayoutHelper + import org.chromium.ui.modaldialog.ModalDialogManager; +@@ -4277,8 +4278,13 @@ public class StripLayoutHelper mTabMenu.setAnchorView(tabView); // 3. Set the vertical offset to align the tab menu with bottom of the tab strip int tabHeight = mManagerHost.getHeight(); @@ -254,7 +254,15 @@ 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 -@@ -457,7 +457,10 @@ public class StripLayoutHelperManager +@@ -91,6 +91,7 @@ import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateMa + import org.chromium.components.browser_ui.styles.SemanticColorUtils; + import org.chromium.components.browser_ui.widget.scrim.ScrimProperties; + import org.chromium.content_public.browser.LoadUrlParams; ++import org.chromium.ui.base.DeviceFormFactor; + import org.chromium.ui.base.LocalizationUtils; + import org.chromium.ui.base.PageTransition; + import org.chromium.ui.base.WindowAndroid; +@@ -439,7 +440,10 @@ public class StripLayoutHelperManager mIsLayoutOptimizationsEnabled = ToolbarFeatures.isTabStripWindowLayoutOptimizationEnabled(true); @@ -288,7 +296,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrow diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java -@@ -570,7 +570,9 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -576,7 +576,9 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { @Override public int getControlContainerHeightResource() { @@ -302,7 +310,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java -@@ -102,6 +102,8 @@ import org.chromium.chrome.browser.paint_preview.DemoPaintPreview; +@@ -104,6 +104,8 @@ import org.chromium.chrome.browser.paint_preview.DemoPaintPreview; import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer; import org.chromium.chrome.browser.password_manager.PasswordManagerLauncher; import org.chromium.chrome.browser.pdf.PdfPage; @@ -311,7 +319,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi import org.chromium.chrome.browser.price_insights.PriceInsightsButtonController; import org.chromium.chrome.browser.price_tracking.CurrentTabPriceTrackingStateSupplier; import org.chromium.chrome.browser.price_tracking.PriceTrackingButtonController; -@@ -1758,7 +1760,9 @@ public class RootUiCoordinator +@@ -1773,7 +1775,9 @@ public class RootUiCoordinator if (!mSupportsFindInPageSupplier.getAsBoolean()) return; int stubId = R.id.find_toolbar_stub; @@ -326,7 +334,7 @@ diff --git a/chrome/browser/preferences/BUILD.gn b/chrome/browser/preferences/BU --- a/chrome/browser/preferences/BUILD.gn +++ b/chrome/browser/preferences/BUILD.gn @@ -26,6 +26,7 @@ android_library("java") { - "//components/browser_ui/site_settings/android:constants_java", + "//components/cached_flags:java", "//third_party/androidx:androidx_annotation_annotation_java", "//third_party/jni_zero:jni_zero_java", + "//ui/android:ui_java", @@ -336,7 +344,7 @@ diff --git a/chrome/browser/preferences/BUILD.gn b/chrome/browser/preferences/BU diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java -@@ -265,6 +265,7 @@ public final class ChromePreferenceKeys { +@@ -262,6 +262,7 @@ public final class ChromePreferenceKeys { /** Whether the app-specific history info text was already seen by users. */ public static final String HISTORY_APP_SPECIFIC_INFO_SEEN = "Chrome.History.AppSpecificInfoSeen"; @@ -376,12 +384,12 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java -@@ -57,6 +57,7 @@ public class LegacyChromePreferenceKeys { +@@ -55,6 +55,7 @@ public class LegacyChromePreferenceKeys { + ChromePreferenceKeys.FIRST_RUN_FLOW_COMPLETE, + ChromePreferenceKeys.FIRST_RUN_FLOW_SIGNIN_SETUP, ChromePreferenceKeys.FIRST_RUN_LIGHTWEIGHT_FLOW_COMPLETE, - ChromePreferenceKeys.FIRST_RUN_SKIP_WELCOME_PAGE, - ChromePreferenceKeys.FONT_USER_FONT_SCALE_FACTOR, + ChromePreferenceKeys.FLAGS_FORCE_TABLET_UI_ENABLED, - ChromePreferenceKeys.FONT_USER_SET_FORCE_ENABLE_ZOOM, + ChromePreferenceKeys.FIRST_RUN_SKIP_WELCOME_PAGE, ChromePreferenceKeys.HISTORY_SHOW_HISTORY_INFO, ChromePreferenceKeys.HOMEPAGE_ENABLED, diff --git a/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/chrome/browser/ui/desktop_windowing/AppHeaderCoordinator.java b/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/chrome/browser/ui/desktop_windowing/AppHeaderCoordinator.java @@ -389,7 +397,7 @@ diff --git a/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/c +++ b/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/chrome/browser/ui/desktop_windowing/AppHeaderCoordinator.java @@ -34,6 +34,7 @@ import org.chromium.chrome.browser.ui.desktop_windowing.AppHeaderUtils.DesktopWi import org.chromium.components.browser_ui.desktop_windowing.AppHeaderState; - import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateProvider; + import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateManager; import org.chromium.components.browser_ui.edge_to_edge.EdgeToEdgeStateProvider; +import org.chromium.ui.base.DeviceFormFactor; import org.chromium.ui.InsetObserver; @@ -406,7 +414,7 @@ diff --git a/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/c diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java -@@ -782,7 +782,7 @@ public class LocationBarCoordinator +@@ -786,7 +786,7 @@ public class LocationBarCoordinator } private boolean isTabletWindow() { @@ -418,7 +426,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 -@@ -1742,6 +1742,13 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1710,6 +1710,13 @@ Your Google account may have other forms of browsing history like searches and a Hide your IP address @@ -524,7 +532,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/res/values/dimens.xml b/chro diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ControlContainer.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ControlContainer.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ControlContainer.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ControlContainer.java -@@ -22,7 +22,7 @@ public interface ControlContainer { +@@ -23,7 +23,7 @@ public interface ControlContainer { * Initialize the control container with the specified toolbar. * @param toolbarLayoutId The ID of the toolbar layout to use. */ @@ -544,7 +552,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; -@@ -128,8 +129,29 @@ public class ToolbarControlContainer extends OptimizedFrameLayout +@@ -143,8 +144,29 @@ public class ToolbarControlContainer extends OptimizedFrameLayout } @Override @@ -578,15 +586,15 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java -@@ -65,6 +65,7 @@ import org.chromium.chrome.browser.util.BrowserUiUtils.ModuleTypeOnStartAndNtp; +@@ -63,6 +63,7 @@ import org.chromium.chrome.browser.util.BrowserUiUtils; + import org.chromium.chrome.browser.util.BrowserUiUtils.ModuleTypeOnStartAndNtp; import org.chromium.components.feature_engagement.Tracker; - import org.chromium.ui.UiUtils; import org.chromium.ui.base.ViewUtils; +import org.chromium.ui.base.DeviceFormFactor; import org.chromium.ui.util.TokenHolder; import org.chromium.url.GURL; -@@ -642,7 +643,9 @@ public abstract class ToolbarLayout extends FrameLayout +@@ -590,7 +591,9 @@ public abstract class ToolbarLayout extends FrameLayout * not have a tab strip. */ protected int getTabStripHeightFromResource() { @@ -600,33 +608,33 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/HeightTransitionHandler.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/HeightTransitionHandler.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/HeightTransitionHandler.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/HeightTransitionHandler.java -@@ -27,6 +27,7 @@ import org.chromium.chrome.browser.toolbar.top.ToolbarLayout; +@@ -28,6 +28,7 @@ import org.chromium.chrome.browser.toolbar.top.ToolbarLayout; import org.chromium.chrome.browser.toolbar.top.tab_strip.TabStripTransitionCoordinator.TabStripHeightObserver; import org.chromium.chrome.browser.toolbar.top.tab_strip.TabStripTransitionCoordinator.TabStripTransitionDelegate; import org.chromium.ui.base.ViewUtils; +import org.chromium.ui.base.DeviceFormFactor; import org.chromium.ui.resources.dynamics.DynamicResourceReadyOnceCallback; + import org.chromium.ui.util.TokenHolder; - /** -@@ -450,6 +451,7 @@ class HeightTransitionHandler { +@@ -542,6 +543,7 @@ class HeightTransitionHandler { if (TabStripTransitionCoordinator.sHeightTransitionThresholdForTesting != null) { return TabStripTransitionCoordinator.sHeightTransitionThresholdForTesting; } + if (DeviceFormFactor.isForceTabletUI()) return 0; return TRANSITION_THRESHOLD_DP; } - } + 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 @@ -27,6 +27,7 @@ import org.chromium.chrome.browser.ui.desktop_windowing.AppHeaderUtils; import org.chromium.components.browser_ui.desktop_windowing.AppHeaderState; - import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateProvider; - import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateProvider.AppHeaderObserver; + import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateManager; + import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateManager.AppHeaderObserver; +import org.chromium.ui.base.DeviceFormFactor; - import org.chromium.ui.util.TokenHolder; /** Class used to manage tab strip visibility and height updates. */ + public class TabStripTransitionCoordinator implements ComponentCallbacks, AppHeaderObserver { @@ -151,7 +152,10 @@ public class TabStripTransitionCoordinator implements ComponentCallbacks, AppHea mTabStripReservedTopPadding = controlContainerView() @@ -642,7 +650,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml --- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml +++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml -@@ -46,6 +46,11 @@ found in the LICENSE file. +@@ -41,6 +41,11 @@ found in the LICENSE file. android:summary="@string/jump_start_omnibox_summary" android:title="@string/jump_start_omnibox_title" /> 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 9b20dedfc..2da7eec46 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; -@@ -1551,8 +1552,10 @@ public class ChromeTabbedActivity extends ChromeActivityBEGIN_LINKdelete the Chrome d +@@ -5542,6 +5542,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 3b9036266..1d46a5292 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,7 +23,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/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 -@@ -23,6 +23,7 @@ import org.chromium.chrome.R; +@@ -22,6 +22,7 @@ import org.chromium.base.supplier.OneshotSupplier; import org.chromium.chrome.browser.data_sharing.DataSharingServiceFactory; import org.chromium.chrome.browser.data_sharing.ui.shared_image_tiles.SharedImageTilesCoordinator; import org.chromium.chrome.browser.flags.ChromeFeatureList; @@ -31,7 +31,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; -@@ -408,10 +409,15 @@ public class TabGroupUiMediator implements BackPressHandler { +@@ -408,10 +409,15 @@ public class TabGroupUiMediator implements BackPressHandler, ThemeColorObserver, assert relatedTabs.size() > 0; Tab parentTabToAttach = relatedTabs.get(relatedTabs.size() - 1); @@ -51,7 +51,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/TabUiUtils.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiUtils.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiUtils.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiUtils.java -@@ -43,6 +43,8 @@ import org.chromium.components.tab_groups.TabGroupColorId; +@@ -48,6 +48,8 @@ import org.chromium.components.tab_groups.TabGroupColorId; import org.chromium.content_public.browser.LoadUrlParams; import org.chromium.ui.modaldialog.ModalDialogManager; import org.chromium.ui.modaldialog.ModalDialogUtils; @@ -59,8 +59,8 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser +import org.chromium.url.GURL; import java.util.List; - import java.util.Objects; -@@ -204,8 +206,13 @@ public class TabUiUtils { + +@@ -210,8 +212,13 @@ public class TabUiUtils { List relatedTabs = filter.getRelatedTabList(tabId); assert relatedTabs.size() > 0; @@ -191,7 +191,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java -@@ -278,6 +278,7 @@ public final class ChromePreferenceKeys { +@@ -275,6 +275,7 @@ public final class ChromePreferenceKeys { public static final String HOMEPAGE_USE_CHROME_NTP = "Chrome.Homepage.UseNTP"; public static final String HOMEPAGE_USE_DEFAULT_URI = "homepage_partner_enabled"; @@ -202,7 +202,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java -@@ -61,6 +61,7 @@ public class LegacyChromePreferenceKeys { +@@ -59,6 +59,7 @@ public class LegacyChromePreferenceKeys { ChromePreferenceKeys.HISTORY_SHOW_HISTORY_INFO, ChromePreferenceKeys.HOMEPAGE_ENABLED, ChromePreferenceKeys.HOMEPAGE_USE_DEFAULT_URI, @@ -213,7 +213,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 -@@ -1528,6 +1528,9 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1520,6 +1520,9 @@ Your Google account may have other forms of browsing history like searches and a Last hour @@ -238,7 +238,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 -@@ -1373,6 +1373,10 @@ inline constexpr char kShowHomeButton[] = "browser.show_home_button"; +@@ -1339,6 +1339,10 @@ inline constexpr char kShowHomeButton[] = "browser.show_home_button"; // toolbar. inline constexpr char kShowForwardButton[] = "browser.show_forward_button"; diff --git a/build/patches/Add-search-engine.patch b/build/patches/Add-search-engine.patch index c06d56cd7..eaf3d9625 100644 --- a/build/patches/Add-search-engine.patch +++ b/build/patches/Add-search-engine.patch @@ -108,7 +108,7 @@ diff --git a/components/search_engines/prepopulated_engines.json b/components/se diff --git a/components/search_engines/search_engine_choice/search_engine_choice_utils.cc b/components/search_engines/search_engine_choice/search_engine_choice_utils.cc --- a/components/search_engines/search_engine_choice/search_engine_choice_utils.cc +++ b/components/search_engines/search_engine_choice/search_engine_choice_utils.cc -@@ -178,10 +178,7 @@ void RecordChoiceScreenDefaultSearchProviderType(SearchEngineType engine_type) { +@@ -186,10 +186,7 @@ void RecordChoiceScreenDefaultSearchProviderType( } void RecordChoiceScreenSelectedIndex(int selected_engine_index) { 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 9ff324ed6..9e7f372e1 100644 --- a/build/patches/Add-setting-to-clear-data-on-exit.patch +++ b/build/patches/Add-setting-to-clear-data-on-exit.patch @@ -14,7 +14,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../chrome_browsing_data_lifetime_manager.cc | 22 +++++- .../chrome_browsing_data_remover_constants.h | 3 +- .../chrome_browsing_data_remover_delegate.cc | 14 ++++ - chrome/browser/dips/dips_service_impl.cc | 2 +- + chrome/browser/dips/dips_service_impl.cc | 3 +- .../api/settings_private/prefs_util.cc | 17 +++++ .../browser/profiles/ProfileManagerUtils.java | 5 ++ .../profiles/android/profile_manager_utils.cc | 5 ++ @@ -33,13 +33,13 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html components/browsing_data/core/pref_names.h | 10 +++ .../search_engines/template_url_service.cc | 1 + content/browser/storage_partition_impl.cc | 1 + - 29 files changed, 323 insertions(+), 23 deletions(-) + 29 files changed, 324 insertions(+), 23 deletions(-) create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragmentAtStart.java 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 -@@ -311,6 +311,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", @@ -50,7 +50,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -182,6 +182,7 @@ import org.chromium.chrome.browser.profiles.ProfileProvider; +@@ -180,6 +180,7 @@ import org.chromium.chrome.browser.profiles.ProfileProvider; import org.chromium.chrome.browser.quick_delete.QuickDeleteController; import org.chromium.chrome.browser.quick_delete.QuickDeleteDelegateImpl; import org.chromium.chrome.browser.quick_delete.QuickDeleteMetricsDelegate; @@ -58,7 +58,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.chrome.browser.read_later.ReadingListBackPressHandler; import org.chromium.chrome.browser.recent_tabs.CrossDevicePaneFactory; import org.chromium.chrome.browser.reengagement.ReengagementNotificationController; -@@ -1551,7 +1552,11 @@ public class ChromeTabbedActivity extends ChromeActivity Delete browsing data @@ -246,7 +246,7 @@ diff --git a/chrome/browser/android/browsing_data/browsing_data_bridge.cc b/chro diff --git a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc b/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc --- a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc +++ b/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc -@@ -312,8 +312,25 @@ void ChromeBrowsingDataLifetimeManager::Shutdown() { +@@ -311,8 +311,25 @@ void ChromeBrowsingDataLifetimeManager::Shutdown() { void ChromeBrowsingDataLifetimeManager::ClearBrowsingDataForOnExitPolicy( bool keep_browser_alive) { @@ -274,7 +274,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager. if (!data_types.empty() && IsConditionSatisfiedForBrowsingDataRemoval(GetSyncTypesForPolicyPref( -@@ -422,6 +439,7 @@ void ChromeBrowsingDataLifetimeManager::StartScheduledBrowsingDataRemoval() { +@@ -421,6 +438,7 @@ void ChromeBrowsingDataLifetimeManager::StartScheduledBrowsingDataRemoval() { bool ChromeBrowsingDataLifetimeManager:: IsConditionSatisfiedForBrowsingDataRemoval( const syncer::UserSelectableTypeSet sync_types) { @@ -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 -@@ -460,6 +460,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -464,6 +464,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(); -@@ -557,6 +560,11 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -572,6 +575,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()) { @@ -320,7 +320,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate. profile_->GetSSLHostStateDelegate()->Clear( filter_builder->MatchesAllOriginsAndDomains() ? base::RepeatingCallback() -@@ -585,9 +593,13 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -600,9 +608,13 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( } device_event_log::Clear(delete_begin_, delete_end_); @@ -334,7 +334,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate. content::BackgroundTracingManager::GetInstance().DeleteTracesInDateRange( delete_begin_, delete_end_); -@@ -1282,6 +1294,8 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -1302,6 +1314,8 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( if (should_clear_zero_suggest_and_session_token && template_url_service) template_url_service->ClearSessionToken(); @@ -346,7 +346,15 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate. diff --git a/chrome/browser/dips/dips_service_impl.cc b/chrome/browser/dips/dips_service_impl.cc --- a/chrome/browser/dips/dips_service_impl.cc +++ b/chrome/browser/dips/dips_service_impl.cc -@@ -200,7 +200,7 @@ class StateClearer : public content::BrowsingDataRemover::Observer { +@@ -26,6 +26,7 @@ + #include "base/time/time.h" + #include "base/types/pass_key.h" + #include "chrome/browser/chrome_content_browser_client.h" ++#include "chrome/browser/browsing_data/chrome_browsing_data_remover_constants.h" + #include "chrome/browser/dips/chrome_dips_delegate.h" + #include "chrome/browser/dips/dips_redirect_info.h" + #include "chrome/browser/dips/dips_service_factory.h" +@@ -195,7 +196,7 @@ class StateClearer : public content::BrowsingDataRemover::Observer { } remover->RemoveWithFilterAndReply( base::Time::Min(), base::Time::Max(), @@ -358,7 +366,7 @@ diff --git a/chrome/browser/dips/dips_service_impl.cc b/chrome/browser/dips/dips 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 -@@ -539,6 +539,23 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { +@@ -540,6 +540,23 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { (*s_allowlist)[browsing_data::prefs::kLastClearBrowsingDataTab] = settings_api::PrefType::kNumber; @@ -436,7 +444,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_ || -@@ -2115,7 +2128,7 @@ void ProfileManager::OnBrowserClosed(Browser* browser) { +@@ -2114,7 +2127,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()) { @@ -533,7 +541,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 -@@ -1462,7 +1462,7 @@ For example, some websites may respond to this request by showing you ads that a +@@ -1454,7 +1454,7 @@ For example, some websites may respond to this request by showing you ads that a Delete browsing data @@ -542,7 +550,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro Deleted Chrome data -@@ -1623,6 +1623,9 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1615,6 +1615,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>. @@ -555,7 +563,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 -@@ -1861,6 +1861,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, +@@ -1839,6 +1839,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, {"clearedData", IDS_SETTINGS_CLEARED_DATA}, {"clearBrowsingData", IDS_SETTINGS_CLEAR_BROWSING_DATA}, {"clearBrowsingDataDescription", IDS_SETTINGS_CLEAR_DATA_DESCRIPTION}, @@ -641,7 +649,7 @@ diff --git a/components/browsing_data/core/browsing_data_policies_utils.h b/comp diff --git a/components/browsing_data/core/browsing_data_utils.cc b/components/browsing_data/core/browsing_data_utils.cc --- a/components/browsing_data/core/browsing_data_utils.cc +++ b/components/browsing_data/core/browsing_data_utils.cc -@@ -346,6 +346,37 @@ bool GetDeletionPreferenceFromDataType( +@@ -347,6 +347,37 @@ bool GetDeletionPreferenceFromDataType( BrowsingDataType data_type, ClearBrowsingDataTab clear_browsing_data_tab, std::string* out_pref) { @@ -741,7 +749,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 -@@ -796,6 +796,7 @@ void TemplateURLService::RemoveAutoGeneratedForUrlsBetween( +@@ -777,6 +777,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 && 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 388295b4b..65a9b1c3b 100644 --- a/build/patches/Add-setting-to-invert-tap-and-long-tap.patch +++ b/build/patches/Add-setting-to-invert-tap-and-long-tap.patch @@ -70,17 +70,17 @@ diff --git a/chrome/android/java/res/values/ids.xml b/chrome/android/java/res/va diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java -@@ -60,6 +60,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -59,6 +59,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment private BooleanPreferenceDelegate mMoveTopToolbarToBottomDelegate; private BooleanPreferenceDelegate mDisableToolbarSwipeUpDelegate; + static final String PREF_ALWAYS_SHOW_CONTEXTMENU_ON_LINKS = "always_show_contextmenu_on_links"; + private BooleanPreferenceDelegate mShowAlwaysContextMenuOnLinksDelegate; + - private TextScalePreference mTextScalePref; private PageZoomPreference mPageZoomDefaultZoomPref; private ChromeSwitchPreference mPageZoomIncludeOSAdjustment; -@@ -184,6 +187,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment + private ChromeSwitchPreference mPageZoomAlwaysShowPref; +@@ -155,6 +158,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment mDisableToolbarSwipeUpPref.setChecked(mDisableToolbarSwipeUpDelegate.isEnabled()); mDisableToolbarSwipeUpPref.setOnPreferenceChangeListener(this); @@ -93,7 +93,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s Preference captions = findPreference(PREF_CAPTIONS); captions.setOnPreferenceClickListener( preference -> { -@@ -279,6 +288,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -233,6 +242,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment mDelegate.requestRestart(getActivity()); } else if (PREF_DISABLE_TOOLBAR_SWIPE_UP.equals(preference.getKey())) { mDisableToolbarSwipeUpDelegate.setEnabled((Boolean) newValue); @@ -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/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 -@@ -279,6 +279,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -275,6 +275,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { if (mParams.isAnchor()) { ModelList linkGroup = new ModelList(); @@ -174,7 +174,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr if (FirstRunStatus.getFirstRunFlowComplete() && !isEmptyUrl(mParams.getUrl()) && UrlUtilities.isAcceptedScheme(mParams.getUrl())) { -@@ -661,6 +664,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -657,6 +660,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { getProfile(), false); }); @@ -186,7 +186,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 -@@ -327,6 +327,14 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { +@@ -326,6 +326,14 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { mTab.loadUrl(loadUrlParams); } @@ -204,10 +204,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -326,6 +326,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -325,6 +325,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { + &kTabDragDropAndroid, + &kToolbarPhoneCleanup, &kTabGroupCreationDialogAndroid, - &kTabGroupParityAndroid, - &kTabletTabSwitcherLongPressMenu, + &blink::features::kShowAlwaysContextMenuOnLinks, &kTabletToolbarReordering, &kTabResumptionModuleAndroid, @@ -215,7 +215,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 -@@ -403,6 +403,8 @@ public abstract class ChromeFeatureList { +@@ -391,6 +391,8 @@ public abstract class ChromeFeatureList { "DisableToolbarSwipeUp"; public static final String MOVE_TOP_TOOLBAR_TO_BOTTOM = "MoveTopToolbarToBottom"; @@ -224,16 +224,16 @@ 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"; -@@ -726,6 +728,8 @@ public abstract class ChromeFeatureList { +@@ -696,6 +698,8 @@ public abstract class ChromeFeatureList { newCachedFlag(DISABLE_TOOLBAR_SWIPE_UP, false); public static final CachedFlag sMoveTopToolbarToBottom = newCachedFlag(MOVE_TOP_TOOLBAR_TO_BOTTOM, false); + public static final CachedFlag sShowAlwaysContextMenuOnLinks = + newCachedFlag(SHOW_ALWAYS_CONTEXT_MENU_ON_LINKS, false); - public static final CachedFlag sPrivacyGuidePreloadAndroid = - newCachedFlag(PRIVACY_GUIDE_PRELOAD_ANDROID, false); - public static final CachedFlag sOptimizationGuidePushNotifications = -@@ -893,6 +897,7 @@ public abstract class ChromeFeatureList { + public static final CachedFlag sPaintPreviewDemo = newCachedFlag(PAINT_PREVIEW_DEMO, false); + public static final CachedFlag sPostGetMyMemoryStateToBackground = + newCachedFlag(POST_GET_MEMORY_PRESSURE_TO_BACKGROUND, false); +@@ -849,6 +853,7 @@ public abstract class ChromeFeatureList { sTabWindowManagerReportIndicesMismatch, sTraceBinderIpc, sUseChimeAndroidSdk, @@ -244,7 +244,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 -@@ -1807,6 +1807,12 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1775,6 +1775,12 @@ Your Google account may have other forms of browsing history like searches and a Disable toolbar swipe up @@ -257,7 +257,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro -@@ -3293,6 +3299,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -3314,6 +3320,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d Open in new Chrome tab @@ -270,7 +270,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml --- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml +++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml -@@ -36,6 +36,11 @@ found in the LICENSE file. +@@ -31,6 +31,11 @@ found in the LICENSE file. android:summary="@string/page_zoom_always_show_preference_summary" android:title="@string/page_zoom_always_show_preference_title" /> @@ -467,7 +467,7 @@ diff --git a/third_party/blink/renderer/core/html/html_image_element.cc b/third_ #include "third_party/blink/renderer/core/paint/timing/paint_timing.h" #include "third_party/blink/renderer/core/probe/core_probes.h" #include "third_party/blink/renderer/core/resize_observer/resize_observer_entry.h" -@@ -798,6 +800,21 @@ void HTMLImageElement::DidFinishLifecycleUpdate( +@@ -797,6 +799,21 @@ void HTMLImageElement::DidFinishLifecycleUpdate( } } @@ -504,7 +504,7 @@ diff --git a/third_party/blink/renderer/core/html/html_image_element.h b/third_p diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/third_party/blink/renderer/core/page/context_menu_controller.cc --- a/third_party/blink/renderer/core/page/context_menu_controller.cc +++ b/third_party/blink/renderer/core/page/context_menu_controller.cc -@@ -232,14 +232,16 @@ void ContextMenuController::DocumentDetached(Document* document) { +@@ -190,14 +190,16 @@ void ContextMenuController::DocumentDetached(Document* document) { } } @@ -524,7 +524,7 @@ diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/t mouse_event->SetDefaultHandled(); } -@@ -457,7 +459,8 @@ bool ContextMenuController::ShouldShowContextMenuFromTouch( +@@ -415,7 +417,8 @@ bool ContextMenuController::ShouldShowContextMenuFromTouch( bool ContextMenuController::ShowContextMenu(LocalFrame* frame, const PhysicalOffset& point, WebMenuSourceType source_type, @@ -534,7 +534,7 @@ diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/t // Displaying the context menu in this function is a big hack as we don't // have context, i.e. whether this is being invoked via a script or in // response to user input (Mouse event WM_RBUTTONDOWN, -@@ -480,6 +483,16 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame, +@@ -438,6 +441,16 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame, if (!result.InnerNodeOrImageMapImage()) return false; @@ -551,9 +551,9 @@ 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; -@@ -836,11 +849,13 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame, +@@ -793,11 +806,13 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame, + SetAutofillData(result.InnerNode(), data); - SetPasswordManagerData(result.InnerElement(), data); - const bool from_touch = source_type == kMenuSourceTouch || - source_type == kMenuSourceLongPress || diff --git a/build/patches/Add-site-engagement-flag.patch b/build/patches/Add-site-engagement-flag.patch index 3f9d94113..52b7ec7fb 100644 --- a/build/patches/Add-site-engagement-flag.patch +++ b/build/patches/Add-site-engagement-flag.patch @@ -24,7 +24,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -160,6 +160,7 @@ +@@ -162,6 +162,7 @@ #include "components/sensitive_content/features.h" #include "components/services/heap_profiling/public/cpp/switches.h" #include "components/services/storage/public/cpp/buckets/bucket_info.h" @@ -112,7 +112,7 @@ diff --git a/components/feature_engagement/public/feature_configurations.cc b/co 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 -@@ -23,6 +23,7 @@ +@@ -19,6 +19,7 @@ #include "components/content_settings/core/common/content_settings.h" #include "components/content_settings/core/common/content_settings_types.h" #include "components/content_settings/core/common/content_settings_utils.h" @@ -120,7 +120,7 @@ diff --git a/components/site_engagement/content/site_engagement_score.cc b/compo #include "components/site_engagement/content/engagement_type.h" #include "components/site_engagement/content/site_engagement_metrics.h" #include "third_party/blink/public/mojom/site_engagement/site_engagement.mojom.h" -@@ -280,6 +281,10 @@ void SiteEngagementScore::Commit() { +@@ -276,6 +277,10 @@ void SiteEngagementScore::Commit() { if (!UpdateScoreDict(*score_dict_)) return; diff --git a/build/patches/Add-support-for-ISupportHelpAndFeedback.patch b/build/patches/Add-support-for-ISupportHelpAndFeedback.patch index f9085359a..279cf1eb1 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.modaldialog.AppModalPresenter; import org.chromium.components.browser_ui.settings.EmbeddableSettingsPage; import org.chromium.components.browser_ui.util.TraceEventVectorDrawableCompat; -@@ -436,8 +437,12 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -458,8 +459,12 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity finishCurrentSettings(mainFragment); return true; } else if (item.getItemId() == R.id.menu_id_general_help) { diff --git a/build/patches/Add-support-for-writing-URIs.patch b/build/patches/Add-support-for-writing-URIs.patch index ce39006af..6e776b78d 100644 --- a/build/patches/Add-support-for-writing-URIs.patch +++ b/build/patches/Add-support-for-writing-URIs.patch @@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html 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 -@@ -125,6 +125,16 @@ void JNI_ContentUriUtils_AddFileInfoToVector( +@@ -130,6 +130,16 @@ void JNI_ContentUriUtils_AddFileInfoToVector( Time::FromMillisecondsSinceUnixEpoch(last_modified)); } @@ -44,8 +44,8 @@ diff --git a/base/android/content_uri_utils.h b/base/android/content_uri_utils.h +BASE_EXPORT File OpenContentUriForWrite(const FilePath& content_uri); + // Returns true if file exists and results are populated, else returns false. - // Java code requires a Content-URI to look up file info such as is-dir, size, - // and last-mod, so code that needs to support Content-URI should use + bool ContentUriGetFileInfo(const FilePath& content_uri, + FileEnumerator::FileInfo* results); 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 @@ -57,9 +57,9 @@ diff --git a/base/android/java/src/org/chromium/base/ContentUriUtils.java b/base import android.provider.DocumentsContract; import android.provider.MediaStore; import android.text.TextUtils; -@@ -25,6 +26,9 @@ import org.jni_zero.NativeMethods; - +@@ -26,6 +27,9 @@ import org.jni_zero.NativeMethods; import java.io.IOException; + import java.util.List; +import android.system.Os; +import android.content.ContentProviderClient; @@ -67,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. */ @JNINamespace("base") public abstract class ContentUriUtils { -@@ -53,6 +57,36 @@ public abstract class ContentUriUtils { +@@ -59,6 +63,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 3313c20bb..f83accdfc 100644 --- a/build/patches/Add-support-to-jxl.patch +++ b/build/patches/Add-support-to-jxl.patch @@ -84,7 +84,7 @@ Enabled by default diff --git a/DEPS b/DEPS --- a/DEPS +++ b/DEPS -@@ -482,6 +482,10 @@ vars = { +@@ -464,6 +464,10 @@ vars = { # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. @@ -92,10 +92,10 @@ diff --git a/DEPS b/DEPS + # Three lines of non-changing comments so that + # the commit queue can handle CLs rolling feed + # and whatever else without interference from each other. - 'highway_revision': '8295336dd70f1201d42c22ab5b0861de38cf8fbf', + 'highway_revision': '00fe003dac355b979f36157f9407c7c46448958e', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling ffmpeg -@@ -1659,6 +1663,9 @@ deps = { +@@ -1655,6 +1659,9 @@ deps = { 'src/third_party/dawn': Var('dawn_git') + '/dawn.git' + '@' + Var('dawn_revision'), @@ -316,7 +316,7 @@ diff --git a/media/BUILD.gn b/media/BUILD.gn diff --git a/media/media_options.gni b/media/media_options.gni --- a/media/media_options.gni +++ b/media/media_options.gni -@@ -132,6 +132,9 @@ declare_args() { +@@ -137,6 +137,9 @@ declare_args() { # `enable_libaom` should likely also be overriddent to false. enable_av1_decoder = enable_dav1d_decoder @@ -329,7 +329,7 @@ diff --git a/media/media_options.gni b/media/media_options.gni diff --git a/net/base/mime_util.cc b/net/base/mime_util.cc --- a/net/base/mime_util.cc +++ b/net/base/mime_util.cc -@@ -165,6 +165,7 @@ static const MimeInfo kPrimaryMappings[] = { +@@ -166,6 +166,7 @@ static const MimeInfo kPrimaryMappings[] = { {"image/avif", "avif"}, {"image/gif", "gif"}, {"image/jpeg", "jpeg,jpg"}, @@ -337,8 +337,8 @@ diff --git a/net/base/mime_util.cc b/net/base/mime_util.cc {"image/png", "png"}, {"image/apng", "png,apng"}, {"image/svg+xml", "svg,svgz"}, -@@ -661,6 +662,7 @@ static const char* const kStandardImageTypes[] = {"image/avif", - "image/gif", +@@ -664,6 +665,7 @@ static const char* const kStandardImageTypes[] = {"image/avif", + "image/heif", "image/ief", "image/jpeg", + "image/jxl", @@ -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 -@@ -82,6 +82,7 @@ +@@ -79,6 +79,7 @@ /libgifcodec /libjingle/source /libupnp @@ -419,7 +419,7 @@ diff --git a/third_party/blink/common/loader/network_utils.cc b/third_party/blin diff --git a/third_party/blink/common/mime_util/mime_util.cc b/third_party/blink/common/mime_util/mime_util.cc --- a/third_party/blink/common/mime_util/mime_util.cc +++ b/third_party/blink/common/mime_util/mime_util.cc -@@ -15,6 +15,7 @@ +@@ -16,6 +16,7 @@ #include "media/media_buildflags.h" #include "net/base/mime_util.h" #include "third_party/blink/public/common/buildflags.h" @@ -427,7 +427,7 @@ diff --git a/third_party/blink/common/mime_util/mime_util.cc b/third_party/blink #if !BUILDFLAG(IS_IOS) // iOS doesn't use and must not depend on //media -@@ -43,6 +44,9 @@ constexpr auto kSupportedImageTypes = base::MakeFixedFlatSet({ +@@ -44,6 +45,9 @@ constexpr auto kSupportedImageTypes = base::MakeFixedFlatSet({ #if BUILDFLAG(ENABLE_AV1_DECODER) "image/avif", #endif @@ -464,7 +464,7 @@ diff --git a/third_party/blink/common/mime_util/mime_util_unittest.cc b/third_pa diff --git a/third_party/blink/public/devtools_protocol/browser_protocol.pdl b/third_party/blink/public/devtools_protocol/browser_protocol.pdl --- a/third_party/blink/public/devtools_protocol/browser_protocol.pdl +++ b/third_party/blink/public/devtools_protocol/browser_protocol.pdl -@@ -4542,6 +4542,7 @@ domain Emulation +@@ -4577,6 +4577,7 @@ domain Emulation experimental type DisabledImageType extends string enum avif @@ -605,7 +605,7 @@ diff --git a/third_party/blink/renderer/modules/webcodecs/image_decoder_fuzzer.c diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn --- a/third_party/blink/renderer/platform/BUILD.gn +++ b/third_party/blink/renderer/platform/BUILD.gn -@@ -2383,6 +2383,10 @@ source_set("blink_platform_unittests_sources") { +@@ -2392,6 +2392,10 @@ source_set("blink_platform_unittests_sources") { sources += [ "text/locale_icu_test.cc" ] } @@ -616,7 +616,7 @@ diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/re sources += [ "testing/run_all_tests.cc" ] configs += [ -@@ -2429,6 +2433,7 @@ source_set("blink_platform_unittests_sources") { +@@ -2438,6 +2442,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", @@ -674,8 +674,8 @@ diff --git a/third_party/blink/renderer/platform/graphics/bitmap_image_metrics.h diff --git a/third_party/blink/renderer/platform/image-decoders/BUILD.gn b/third_party/blink/renderer/platform/image-decoders/BUILD.gn --- a/third_party/blink/renderer/platform/image-decoders/BUILD.gn +++ b/third_party/blink/renderer/platform/image-decoders/BUILD.gn -@@ -72,6 +72,15 @@ component("image_decoders") { - "//third_party/libyuv", +@@ -78,6 +78,15 @@ component("image_decoders") { + "//ui/gfx/geometry:geometry_skia", ] + if (enable_jxl_decoder) { @@ -693,7 +693,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 -@@ -29,6 +29,7 @@ +@@ -30,6 +30,7 @@ #include "base/containers/heap_array.h" #include "base/logging.h" @@ -701,7 +701,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" -@@ -55,6 +56,10 @@ +@@ -56,6 +57,10 @@ #include "third_party/blink/renderer/platform/image-decoders/avif/crabbyavif_image_decoder.h" #endif @@ -712,7 +712,7 @@ diff --git a/third_party/blink/renderer/platform/image-decoders/image_decoder.cc namespace blink { namespace { -@@ -82,6 +87,11 @@ cc::ImageType FileExtensionToImageType(String image_extension) { +@@ -83,6 +88,11 @@ cc::ImageType FileExtensionToImageType(String image_extension) { if (image_extension == "avif") { return cc::ImageType::kAVIF; } @@ -724,7 +724,7 @@ diff --git a/third_party/blink/renderer/platform/image-decoders/image_decoder.cc #endif return cc::ImageType::kInvalid; } -@@ -203,6 +213,12 @@ String SniffMimeTypeInternal(scoped_refptr reader) { +@@ -204,6 +214,12 @@ String SniffMimeTypeInternal(scoped_refptr reader) { return "image/avif"; } #endif @@ -737,9 +737,9 @@ diff --git a/third_party/blink/renderer/platform/image-decoders/image_decoder.cc return String(); } -@@ -318,6 +334,13 @@ std::unique_ptr ImageDecoder::CreateByMimeType( +@@ -319,6 +335,13 @@ std::unique_ptr ImageDecoder::CreateByMimeType( alpha_option, high_bit_depth_decoding_option, color_behavior, - max_decoded_bytes, animation_option); + aux_image, max_decoded_bytes, animation_option); } +#endif +#if BUILDFLAG(ENABLE_JXL_DECODER) @@ -2215,7 +2215,7 @@ diff --git a/third_party/blink/tools/commit_stats/git-dirs.txt b/third_party/bli diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations --- a/third_party/blink/web_tests/TestExpectations +++ b/third_party/blink/web_tests/TestExpectations -@@ -4851,6 +4851,12 @@ crbug.com/1199522 http/tests/devtools/layers/layers-3d-view-hit-testing.js [ Fai +@@ -5094,6 +5094,12 @@ crbug.com/1199522 http/tests/devtools/layers/layers-3d-view-hit-testing.js [ Fai # Started failing after rolling new version of check-layout-th.js css3/flexbox/perpendicular-writing-modes-inside-flex-item.html [ Failure ] @@ -2231,7 +2231,7 @@ diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/we diff --git a/third_party/blink/web_tests/VirtualTestSuites b/third_party/blink/web_tests/VirtualTestSuites --- a/third_party/blink/web_tests/VirtualTestSuites +++ b/third_party/blink/web_tests/VirtualTestSuites -@@ -489,6 +489,15 @@ +@@ -466,6 +466,15 @@ "args": ["--enable-blink-features=FractionalScrollOffsets"], "expires": "Jun 1, 2025" }, @@ -2646,7 +2646,7 @@ new file mode 100644 diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml --- a/tools/metrics/histograms/enums.xml +++ b/tools/metrics/histograms/enums.xml -@@ -20745,6 +20745,7 @@ from previous Chrome versions. +@@ -20712,6 +20712,7 @@ from previous Chrome versions. diff --git a/build/patches/Add-webRTC-site-settings.patch b/build/patches/Add-webRTC-site-settings.patch index 977e1c2e2..ec5144bd3 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" -@@ -881,6 +882,11 @@ PeerConnectionDependencyFactory::CreatePortAllocator( +@@ -879,6 +880,11 @@ PeerConnectionDependencyFactory::CreatePortAllocator( // origin. WebRTCIPHandlingPolicy policy = GetWebRTCIPHandlingPolicy(webrtc_ip_handling_policy); @@ -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" -@@ -1031,6 +1033,14 @@ RTCRtpCapabilities* RTCRtpSender::getCapabilities(ScriptState* state, +@@ -1030,6 +1032,14 @@ RTCRtpCapabilities* RTCRtpSender::getCapabilities(ScriptState* state, if (kind != "audio" && kind != "video") return nullptr; diff --git a/build/patches/Allow-building-without-enable_reporting.patch b/build/patches/Allow-building-without-enable_reporting.patch index 02ae65981..469a69519 100644 --- a/build/patches/Allow-building-without-enable_reporting.patch +++ b/build/patches/Allow-building-without-enable_reporting.patch @@ -41,7 +41,7 @@ diff --git a/chrome/browser/net/chrome_report_sender.cc b/chrome/browser/net/chr diff --git a/content/browser/devtools/protocol/network_handler.cc b/content/browser/devtools/protocol/network_handler.cc --- a/content/browser/devtools/protocol/network_handler.cc +++ b/content/browser/devtools/protocol/network_handler.cc -@@ -1462,6 +1462,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) { +@@ -1464,6 +1464,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) { } } @@ -49,7 +49,7 @@ diff --git a/content/browser/devtools/protocol/network_handler.cc b/content/brow std::vector ComputeReportingURLs(RenderFrameHostImpl* frame_host) { std::vector urls; frame_host->ForEachRenderFrameHostWithAction( -@@ -1475,6 +1476,7 @@ std::vector ComputeReportingURLs(RenderFrameHostImpl* frame_host) { +@@ -1477,6 +1478,7 @@ std::vector ComputeReportingURLs(RenderFrameHostImpl* frame_host) { }); return urls; } @@ -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 -@@ -15114,12 +15114,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport( +@@ -15172,12 +15172,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport( } } } @@ -217,7 +217,7 @@ diff --git a/content/browser/security/coop/cross_origin_opener_policy_reporter.c diff --git a/content/browser/web_package/signed_exchange_reporter.cc b/content/browser/web_package/signed_exchange_reporter.cc --- a/content/browser/web_package/signed_exchange_reporter.cc +++ b/content/browser/web_package/signed_exchange_reporter.cc -@@ -128,6 +128,7 @@ void ReportResult( +@@ -127,6 +127,7 @@ void ReportResult( FrameTreeNodeId frame_tree_node_id, network::mojom::SignedExchangeReportPtr report, const net::NetworkAnonymizationKey& network_anonymization_key) { @@ -225,7 +225,7 @@ diff --git a/content/browser/web_package/signed_exchange_reporter.cc b/content/b FrameTreeNode* frame_tree_node = FrameTreeNode::GloballyFindByID(frame_tree_node_id); if (!frame_tree_node) -@@ -142,6 +143,7 @@ void ReportResult( +@@ -141,6 +142,7 @@ void ReportResult( DCHECK(partition); partition->GetNetworkContext()->QueueSignedExchangeReport( std::move(report), network_anonymization_key); @@ -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 -@@ -215,6 +215,7 @@ extern const base::FeatureParam kTimeoutTcpConnectAttemptMax( +@@ -207,6 +207,7 @@ extern const base::FeatureParam kTimeoutTcpConnectAttemptMax( base::Seconds(30)); #if BUILDFLAG(ENABLE_REPORTING) @@ -281,7 +281,7 @@ diff --git a/net/reporting/reporting_service.cc b/net/reporting/reporting_servic diff --git a/services/network/network_context.h b/services/network/network_context.h --- a/services/network/network_context.h +++ b/services/network/network_context.h -@@ -466,14 +466,14 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -468,14 +468,14 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext const GURL& url, const std::optional& reporting_source, const net::NetworkAnonymizationKey& network_anonymization_key, @@ -302,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 -@@ -1489,7 +1489,6 @@ mojom("mojom") { +@@ -1560,7 +1560,6 @@ mojom("mojom") { export_define_blink = "BLINK_PLATFORM_IMPLEMENTATION=1" export_header_blink = "third_party/blink/public/platform/web_common.h" if (enable_reporting) { @@ -313,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 -@@ -1240,6 +1240,7 @@ interface NetworkContext { +@@ -1181,6 +1181,7 @@ interface NetworkContext { // provided `network_anonymization_key`. // // Spec: https://w3c.github.io/reporting/#concept-reports @@ -321,7 +321,7 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw QueueReport(string type, string group, url.mojom.Url url, -@@ -1247,6 +1248,7 @@ interface NetworkContext { +@@ -1188,6 +1189,7 @@ interface NetworkContext { NetworkAnonymizationKey network_anonymization_key, mojo_base.mojom.DictionaryValue body); @@ -329,7 +329,7 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw QueueEnterpriseReport(string type, string group, url.mojom.Url url, -@@ -1257,6 +1259,7 @@ interface NetworkContext { +@@ -1198,6 +1200,7 @@ interface NetworkContext { // Note that this queued report will never be delivered if no reporting // endpoint matching is registered for with the provided // `network_anonymization_key`. @@ -348,7 +348,7 @@ diff --git a/third_party/blink/renderer/core/frame/csp/content_security_policy.c #include "base/containers/contains.h" #include "base/debug/dump_without_crashing.h" #include "base/ranges/algorithm.h" -@@ -1247,6 +1248,7 @@ void ContentSecurityPolicy::ReportViolation( +@@ -1243,6 +1244,7 @@ void ContentSecurityPolicy::ReportViolation( return; } @@ -356,7 +356,7 @@ diff --git a/third_party/blink/renderer/core/frame/csp/content_security_policy.c PostViolationReport(violation_data, context_frame, report_endpoints, use_reporting_api); -@@ -1254,6 +1256,7 @@ void ContentSecurityPolicy::ReportViolation( +@@ -1250,6 +1252,7 @@ void ContentSecurityPolicy::ReportViolation( // `context_frame` (i.e. we're not processing 'frame-ancestors'). if (delegate_ && !context_frame) delegate_->DispatchViolationEvent(*violation_data, element); @@ -375,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" -@@ -2784,9 +2785,11 @@ DocumentResourceCoordinator* LocalFrame::GetDocumentResourceCoordinator() { +@@ -2789,9 +2790,11 @@ DocumentResourceCoordinator* LocalFrame::GetDocumentResourceCoordinator() { return CHECK_DEREF(GetDocument()).GetResourceCoordinator(); } @@ -398,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" -@@ -658,8 +659,9 @@ class CORE_EXPORT LocalFrame final +@@ -659,8 +660,9 @@ class CORE_EXPORT LocalFrame final void FinishedScrollSequence(); SmoothScrollSequencer* GetSmoothScrollSequencer() const; diff --git a/build/patches/Allow-building-without-supervised-users.patch b/build/patches/Allow-building-without-supervised-users.patch index 0cb2b7b4b..640bd2eac 100644 --- a/build/patches/Allow-building-without-supervised-users.patch +++ b/build/patches/Allow-building-without-supervised-users.patch @@ -23,7 +23,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -757,7 +757,6 @@ if (current_toolchain == default_toolchain) { +@@ -771,7 +771,6 @@ if (current_toolchain == default_toolchain) { "//components/offline_pages/core:offline_page_model_enums_java", "//components/sharing_message:sharing_dialog_type_generated_enum", "//components/sharing_message:sharing_send_message_result_generated_enum", @@ -88,7 +88,7 @@ diff --git a/chrome/browser/profiles/profile_attributes_entry.cc b/chrome/browse diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc --- a/chrome/browser/profiles/profile_impl.cc +++ b/chrome/browser/profiles/profile_impl.cc -@@ -667,10 +667,6 @@ void ProfileImpl::DoFinalInit(CreateMode create_mode) { +@@ -684,10 +684,6 @@ void ProfileImpl::DoFinalInit(CreateMode create_mode) { prefs->SetTime(prefs::kProfileCreationTime, path_creation_time_); pref_change_registrar_.Init(prefs); @@ -99,7 +99,7 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p // Changes in the profile avatar. pref_change_registrar_.Add( -@@ -1627,6 +1623,7 @@ GURL ProfileImpl::GetHomePage() { +@@ -1649,6 +1645,7 @@ GURL ProfileImpl::GetHomePage() { } void ProfileImpl::UpdateSupervisedUserIdInStorage() { @@ -121,7 +121,7 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile #if !BUILDFLAG(IS_ANDROID) if (profile->IsNewProfile()) { profile->GetPrefs()->SetBoolean(prefs::kHasSeenWelcomePage, false); -@@ -1968,9 +1964,6 @@ void ProfileManager::AddProfileToStorage(Profile* profile) { +@@ -1967,9 +1963,6 @@ void ProfileManager::AddProfileToStorage(Profile* profile) { init_params.icon_index = profile->GetPrefs()->GetInteger(prefs::kProfileAvatarIndex); @@ -148,7 +148,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 -@@ -589,10 +589,6 @@ bool ManagementUIHandler::managed() const { +@@ -580,10 +580,6 @@ bool ManagementUIHandler::managed() const { void ManagementUIHandler::RegisterPrefChange( PrefChangeRegistrar& pref_registrar) { @@ -204,10 +204,10 @@ diff --git a/components/supervised_user/core/browser/supervised_user_service.cc - prefs::kSupervisedUserId, - base::BindRepeating(&SupervisedUserService::OnSupervisedUserIdChanged, - base::Unretained(this))); - FirstTimeInterstitialBannerState banner_state = - static_cast( - user_prefs_->GetInteger(prefs::kFirstTimeInterstitialBannerState)); -@@ -166,6 +162,7 @@ FirstTimeInterstitialBannerState SupervisedUserService::GetUpdatedBannerState( + SetActive(supervised_user::IsSubjectToParentalControls(user_prefs_.get())); + } + +@@ -139,6 +135,7 @@ SupervisedUserService::SupervisedUserService( } void SupervisedUserService::SetActive(bool active) { @@ -229,7 +229,7 @@ diff --git a/components/supervised_user/core/browser/supervised_user_utils.cc b/ diff --git a/components/supervised_user/core/common/features.cc b/components/supervised_user/core/common/features.cc --- a/components/supervised_user/core/common/features.cc +++ b/components/supervised_user/core/common/features.cc -@@ -191,4 +191,10 @@ bool IsKidFriendlyContentFeedAvailable() { +@@ -181,4 +181,10 @@ bool IsKidFriendlyContentFeedAvailable() { return base::FeatureList::IsEnabled(kKidFriendlyContentFeed); } diff --git a/build/patches/Allow-playing-audio-in-background.patch b/build/patches/Allow-playing-audio-in-background.patch index 3c1393c8f..d1e1f7726 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 -@@ -1264,6 +1264,12 @@ void WebMediaPlayerImpl::OnSelectedVideoTrackChanged( +@@ -1305,6 +1305,12 @@ void WebMediaPlayerImpl::OnSelectedVideoTrackChanged( pipeline_controller_->OnSelectedVideoTrackChanged(selected); } @@ -24,7 +24,7 @@ diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc void WebMediaPlayerImpl::EnabledAudioTracksChanged( const WebVector& enabled_track_ids) { DCHECK(main_task_runner_->BelongsToCurrentThread()); -@@ -3667,7 +3673,10 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const { +@@ -3709,7 +3715,10 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const { : HasAudio(); // Audio only stream is allowed to play when in background. @@ -39,7 +39,7 @@ diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.h b/third_party/blink/renderer/platform/media/web_media_player_impl.h --- a/third_party/blink/renderer/platform/media/web_media_player_impl.h +++ b/third_party/blink/renderer/platform/media/web_media_player_impl.h -@@ -212,6 +212,9 @@ class PLATFORM_EXPORT WebMediaPlayerImpl +@@ -211,6 +211,9 @@ class PLATFORM_EXPORT WebMediaPlayerImpl bool HasVideo() const override; bool HasAudio() const override; diff --git a/build/patches/Always-open-browser-controls-in-new-tab.patch b/build/patches/Always-open-browser-controls-in-new-tab.patch index ca532108c..98d93a4db 100644 --- a/build/patches/Always-open-browser-controls-in-new-tab.patch +++ b/build/patches/Always-open-browser-controls-in-new-tab.patch @@ -18,14 +18,14 @@ 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; -@@ -35,6 +36,7 @@ import org.chromium.chrome.browser.multiwindow.MultiWindowUtils; +@@ -34,6 +35,7 @@ import org.chromium.chrome.browser.multiwindow.MultiWindowUtils; import org.chromium.chrome.browser.offlinepages.OfflinePageBridge; import org.chromium.chrome.browser.offlinepages.RequestCoordinatorBridge; import org.chromium.chrome.browser.profiles.Profile; +import org.chromium.chrome.browser.tab.TabBrowserControlsConstraintsHelper; + import org.chromium.chrome.browser.tabmodel.TabGroupFeatureUtils; import org.chromium.chrome.browser.tabmodel.TabGroupModelFilter; import org.chromium.chrome.browser.tabmodel.TabModelSelector; - import org.chromium.chrome.browser.tabmodel.document.ChromeAsyncTabLauncher; @@ -250,6 +252,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { Referrer referrer, boolean navigateToTab, diff --git a/build/patches/Android-Toolbar-Scroll-Ablation-setting.patch b/build/patches/Android-Toolbar-Scroll-Ablation-setting.patch index 16ae4a6d6..86fc7546e 100644 --- a/build/patches/Android-Toolbar-Scroll-Ablation-setting.patch +++ b/build/patches/Android-Toolbar-Scroll-Ablation-setting.patch @@ -31,7 +31,7 @@ new file mode 100644 diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml --- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml +++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml -@@ -78,6 +78,12 @@ found in the LICENSE file. +@@ -73,6 +73,12 @@ found in the LICENSE file. android:key="disable_toolbar_swipeup" android:title="@string/disable_toolbar_swipe_up" /> diff --git a/build/patches/Ask-for-restart-on-connection-change.patch b/build/patches/Ask-for-restart-on-connection-change.patch index 700f77f3d..27e2cf54b 100644 --- a/build/patches/Ask-for-restart-on-connection-change.patch +++ b/build/patches/Ask-for-restart-on-connection-change.patch @@ -281,7 +281,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java -@@ -1169,7 +1169,10 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1181,7 +1181,10 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { mActivity, mStatusIndicatorCoordinator, isUrlBarFocusedSupplier, @@ -296,7 +296,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 -@@ -337,6 +337,13 @@ public abstract class TabModelSelectorBase +@@ -335,6 +335,13 @@ public abstract class TabModelSelectorBase return null; } @@ -362,7 +362,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 -@@ -17,10 +17,14 @@ import org.chromium.base.supplier.SupplierUtils; +@@ -17,12 +17,16 @@ import org.chromium.base.supplier.SupplierUtils; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.TabSelectionType; import org.chromium.content_public.browser.WebContents; @@ -370,14 +370,16 @@ diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browse import org.chromium.ui.base.WindowAndroid; import java.util.ArrayList; + import java.util.Collection; import java.util.List; + import java.util.function.Predicate; +import java.util.Collections; +import java.util.stream.IntStream; +import java.util.stream.Collectors; /** * A set of convenience methods used for interacting with {@link TabList}s and {@link TabModel}s. -@@ -89,6 +93,20 @@ public class TabModelUtils { +@@ -91,6 +95,20 @@ public class TabModelUtils { return TabModel.INVALID_TAB_INDEX; } @@ -401,7 +403,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/TabWindowManager.java b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManager.java --- a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManager.java +++ b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManager.java -@@ -103,6 +103,8 @@ public interface TabWindowManager { +@@ -107,6 +107,8 @@ public interface TabWindowManager { */ int getIncognitoTabCount(); @@ -413,7 +415,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 -@@ -456,6 +456,16 @@ public class TabWindowManagerImpl implements ActivityStateListener, TabWindowMan +@@ -459,6 +459,16 @@ public class TabWindowManagerImpl implements ActivityStateListener, TabWindowMan return null; } @@ -472,7 +474,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 -@@ -130,6 +130,8 @@ public class Snackbar { +@@ -133,6 +133,8 @@ public class Snackbar { private String mTemplateText; private String mActionText; private Object mActionData; @@ -481,7 +483,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro private String mAccessibilityActionAnnouncement; private int mBackgroundColor; private int mTextApperanceResId; -@@ -198,6 +200,20 @@ public class Snackbar { +@@ -200,6 +202,20 @@ public class Snackbar { return this; } @@ -521,7 +523,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarView.java b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarView.java --- a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarView.java +++ b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarView.java -@@ -51,6 +51,7 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { +@@ -52,6 +52,7 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { protected final ViewGroup mSnackbarView; protected final TemplatePreservingTextView mMessageView; private final TextView mActionButtonView; @@ -529,7 +531,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro private final ImageView mProfileImageView; private final int mAnimationDuration; private final boolean mIsTablet; -@@ -97,11 +98,12 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { +@@ -98,11 +99,12 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { public SnackbarView( Activity activity, OnClickListener listener, @@ -543,7 +545,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro } /** -@@ -120,6 +122,7 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { +@@ -121,6 +123,7 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { public SnackbarView( Activity activity, OnClickListener listener, @@ -551,7 +553,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro Snackbar snackbar, ViewGroup parentView, @Nullable WindowAndroid windowAndroid, -@@ -141,6 +144,8 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { +@@ -142,6 +145,8 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { (TemplatePreservingTextView) mContainerView.findViewById(R.id.snackbar_message); mActionButtonView = (TextView) mContainerView.findViewById(R.id.snackbar_button); mActionButtonView.setOnClickListener(listener); @@ -560,7 +562,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro mProfileImageView = (ImageView) mContainerView.findViewById(R.id.snackbar_profile_image); mEdgeToEdgeSupplier = edgeToEdgeSupplier; mEdgeToEdgePadAdjuster = -@@ -376,6 +381,12 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { +@@ -377,6 +382,12 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { mActionButtonView.setVisibility(View.VISIBLE); mActionButtonView.setContentDescription(snackbar.getActionText()); setViewText(mActionButtonView, snackbar.getActionText(), animate); @@ -576,7 +578,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro diff --git a/content/browser/web_contents/web_contents_android.cc b/content/browser/web_contents/web_contents_android.cc --- a/content/browser/web_contents/web_contents_android.cc +++ b/content/browser/web_contents/web_contents_android.cc -@@ -904,6 +904,22 @@ void WebContentsAndroid::SetFocus(JNIEnv* env, jboolean focused) { +@@ -898,6 +898,22 @@ void WebContentsAndroid::SetFocus(JNIEnv* env, jboolean focused) { view->SetFocus(focused); } @@ -602,7 +604,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 -@@ -197,6 +197,7 @@ class CONTENT_EXPORT WebContentsAndroid { +@@ -194,6 +194,7 @@ class CONTENT_EXPORT WebContentsAndroid { void OnScaleFactorChanged(JNIEnv* env); void SetFocus(JNIEnv* env, jboolean focused); @@ -613,7 +615,7 @@ diff --git a/content/browser/web_contents/web_contents_android.h b/content/brows diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -3574,8 +3574,10 @@ void WebContentsImpl::Stop() { +@@ -3676,8 +3676,10 @@ void WebContentsImpl::Stop() { void WebContentsImpl::SetPageFrozen(bool frozen) { TRACE_EVENT1("content", "WebContentsImpl::SetPageFrozen", "frozen", frozen); @@ -627,7 +629,7 @@ diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser diff --git a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java --- a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java +++ b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java -@@ -1156,6 +1156,12 @@ public class WebContentsImpl implements WebContents, RenderFrameHostDelegate, Wi +@@ -1146,6 +1146,12 @@ public class WebContentsImpl implements WebContents, RenderFrameHostDelegate, Wi WebContentsImplJni.get().setFocus(mNativeWebContentsAndroid, hasFocus); } @@ -640,7 +642,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/webcon @Override public void setDisplayCutoutSafeArea(Rect insets) { if (mNativeWebContentsAndroid == 0) return; -@@ -1438,6 +1444,8 @@ public class WebContentsImpl implements WebContents, RenderFrameHostDelegate, Wi +@@ -1428,6 +1434,8 @@ public class WebContentsImpl implements WebContents, RenderFrameHostDelegate, Wi void setFocus(long nativeWebContentsAndroid, boolean focused); @@ -709,7 +711,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc --- a/third_party/blink/renderer/core/dom/document.cc +++ b/third_party/blink/renderer/core/dom/document.cc -@@ -4250,6 +4250,7 @@ void Document::DispatchUnloadEvents(UnloadEventTimingInfo* unload_timing_info) { +@@ -4267,6 +4267,7 @@ void Document::DispatchUnloadEvents(UnloadEventTimingInfo* unload_timing_info) { } void Document::DispatchFreezeEvent() { @@ -720,7 +722,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc -@@ -3226,6 +3226,7 @@ void LocalFrame::DidFreeze() { +@@ -3231,6 +3231,7 @@ void LocalFrame::DidFreeze() { LoaderFreezeMode freeze_mode = GetLoaderFreezeMode(); GetDocument()->Fetcher()->SetDefersLoading(freeze_mode); Loader().SetDefersLoading(freeze_mode); @@ -728,7 +730,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ } void LocalFrame::DidResume() { -@@ -3240,6 +3241,7 @@ void LocalFrame::DidResume() { +@@ -3245,6 +3246,7 @@ void LocalFrame::DidResume() { GetDocument()->Fetcher()->SetDefersLoading(LoaderFreezeMode::kNone); Loader().SetDefersLoading(LoaderFreezeMode::kNone); @@ -739,7 +741,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc b/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc --- a/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc +++ b/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc -@@ -982,7 +982,9 @@ SchedulingLifecycleState FrameSchedulerImpl::CalculateLifecycleState( +@@ -979,7 +979,9 @@ SchedulingLifecycleState FrameSchedulerImpl::CalculateLifecycleState( if (!parent_page_scheduler_) return SchedulingLifecycleState::kNotThrottled; if (parent_page_scheduler_->IsFrozen()) { diff --git a/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch b/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch index 37edd8ebd..1d705612e 100644 --- a/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch +++ b/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch @@ -96,7 +96,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/audio_context.cc b/thir #include "third_party/blink/public/platform/modules/webrtc/webrtc_logging.h" #include "third_party/blink/public/platform/web_audio_latency_hint.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h" -@@ -594,7 +595,9 @@ double AudioContext::baseLatency() const { +@@ -612,7 +613,9 @@ double AudioContext::baseLatency() const { DCHECK_CALLED_ON_VALID_SEQUENCE(main_thread_sequence_checker_); DCHECK(destination()); @@ -118,7 +118,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/base_audio_context.cc b #include "third_party/blink/public/mojom/devtools/console_message.mojom-blink.h" #include "third_party/blink/public/mojom/frame/lifecycle.mojom-shared.h" #include "third_party/blink/public/platform/platform.h" -@@ -697,6 +698,17 @@ LocalDOMWindow* BaseAudioContext::GetWindow() const { +@@ -709,6 +710,17 @@ LocalDOMWindow* BaseAudioContext::GetWindow() const { return To(GetExecutionContext()); } @@ -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 -@@ -440,9 +440,8 @@ +@@ -449,9 +449,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 1c9b001a1..46754f5b6 100644 --- a/build/patches/Block-gateway-attacks-via-websockets.patch +++ b/build/patches/Block-gateway-attacks-via-websockets.patch @@ -24,7 +24,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/third_party/blink/renderer/core/execution_context/execution_context.cc b/third_party/blink/renderer/core/execution_context/execution_context.cc --- a/third_party/blink/renderer/core/execution_context/execution_context.cc +++ b/third_party/blink/renderer/core/execution_context/execution_context.cc -@@ -709,6 +709,21 @@ void ExecutionContext::WriteIntoTrace( +@@ -708,6 +708,21 @@ void ExecutionContext::WriteIntoTrace( proto->set_world_type(GetWorldType(*this)); } @@ -40,7 +40,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context + case network::mojom::IPAddressSpace::kLocal: + return "local"; + } -+ NOTREACHED_NORETURN(); ++ NOTREACHED(); +} + bool ExecutionContext::CrossOriginIsolatedCapabilityOrDisabledWebSecurity() @@ -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 -@@ -945,6 +945,26 @@ bool FrameFetchContext::ShouldBlockRequestByInspector(const KURL& url) const { +@@ -965,6 +965,26 @@ bool FrameFetchContext::ShouldBlockRequestByInspector(const KURL& url) const { return should_block_request; } @@ -101,7 +101,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/thi diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.h b/third_party/blink/renderer/core/loader/frame_fetch_context.h --- a/third_party/blink/renderer/core/loader/frame_fetch_context.h +++ b/third_party/blink/renderer/core/loader/frame_fetch_context.h -@@ -179,6 +179,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext, +@@ -182,6 +182,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext, bool ShouldBlockWebSocketByMixedContentCheck(const KURL&) const override; std::unique_ptr CreateWebSocketHandshakeThrottle() override; diff --git a/build/patches/Block-leakage-of-urls-in-sandbox-iframes.patch b/build/patches/Block-leakage-of-urls-in-sandbox-iframes.patch index 436054357..45d9e229c 100644 --- a/build/patches/Block-leakage-of-urls-in-sandbox-iframes.patch +++ b/build/patches/Block-leakage-of-urls-in-sandbox-iframes.patch @@ -25,7 +25,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc -@@ -4682,7 +4682,17 @@ void RenderFrameHostImpl::SetLastCommittedOrigin( +@@ -4689,7 +4689,17 @@ void RenderFrameHostImpl::SetLastCommittedOrigin( } void RenderFrameHostImpl::SetInheritedBaseUrl(const GURL& inherited_base_url) { @@ -106,7 +106,7 @@ diff --git a/third_party/blink/renderer/core/frame/location.cc b/third_party/bli diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc --- a/third_party/blink/renderer/core/loader/document_loader.cc +++ b/third_party/blink/renderer/core/loader/document_loader.cc -@@ -775,6 +775,11 @@ WebString DocumentLoader::HttpMethod() const { +@@ -820,6 +820,11 @@ WebString DocumentLoader::HttpMethod() const { } const AtomicString& DocumentLoader::GetReferrer() const { @@ -118,7 +118,7 @@ diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_p return referrer_; } -@@ -2840,6 +2845,13 @@ void DocumentLoader::CommitNavigation() { +@@ -2893,6 +2898,13 @@ void DocumentLoader::CommitNavigation() { response_.HttpHeaderField(http_names::kDocumentPolicyReportOnly)); } @@ -135,7 +135,7 @@ diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_p diff --git a/third_party/blink/renderer/core/loader/document_loader.h b/third_party/blink/renderer/core/loader/document_loader.h --- a/third_party/blink/renderer/core/loader/document_loader.h +++ b/third_party/blink/renderer/core/loader/document_loader.h -@@ -783,7 +783,7 @@ class CORE_EXPORT DocumentLoader : public GarbageCollected, +@@ -778,7 +778,7 @@ class CORE_EXPORT DocumentLoader : public GarbageCollected, // |archive_|, but won't have |loading_main_document_from_mhtml_archive_| set. bool loading_main_document_from_mhtml_archive_ = false; const bool loading_srcdoc_ = false; diff --git a/build/patches/Block-qjz9zk-or-trk-requests.patch b/build/patches/Block-qjz9zk-or-trk-requests.patch index a0f842890..9cbc485cc 100644 --- a/build/patches/Block-qjz9zk-or-trk-requests.patch +++ b/build/patches/Block-qjz9zk-or-trk-requests.patch @@ -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 -@@ -872,6 +872,7 @@ ChildProcessSecurityPolicyImpl::ChildProcessSecurityPolicyImpl() +@@ -951,6 +951,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 -@@ -1067,6 +1067,8 @@ component("net") { +@@ -1068,6 +1068,8 @@ component("net") { "url_request/url_request_http_job.cc", "url_request/url_request_http_job.h", "url_request/url_request_interceptor.cc", @@ -211,7 +211,7 @@ diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc namespace net { -@@ -637,6 +639,12 @@ URLRequest::URLRequest(base::PassKey pass_key, +@@ -635,6 +637,12 @@ URLRequest::URLRequest(base::PassKey pass_key, // Sanity check out environment. DCHECK(base::SingleThreadTaskRunner::HasCurrentDefault()); @@ -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" -@@ -596,6 +597,8 @@ std::unique_ptr URLRequestContextBuilder::Build() { +@@ -601,6 +602,8 @@ std::unique_ptr URLRequestContextBuilder::Build() { job_factory->SetProtocolHandler(scheme_handler.first, std::move(scheme_handler.second)); } diff --git a/build/patches/Bromite-auto-updater.patch b/build/patches/Bromite-auto-updater.patch index f5743d683..f6a7d026c 100644 --- a/build/patches/Bromite-auto-updater.patch +++ b/build/patches/Bromite-auto-updater.patch @@ -68,7 +68,7 @@ diff --git a/build/android/java/templates/BuildConfig.template b/build/android/j diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni --- a/build/config/android/rules.gni +++ b/build/config/android/rules.gni -@@ -1951,6 +1951,9 @@ if (!is_robolectric && enable_java_templates) { +@@ -1952,6 +1952,9 @@ if (!is_robolectric && enable_java_templates) { sources = [ "//build/android/java/templates/BuildConfig.template" ] defines = [] @@ -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 = [ +@@ -864,6 +864,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", @@ -128,7 +128,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/about_settings/ private static final String PREF_OS_VERSION = "os_version"; private static final String PREF_LEGAL_INFORMATION = "legal_information"; -@@ -61,6 +67,13 @@ public class AboutChromeSettings extends PreferenceFragmentCompat +@@ -63,6 +69,13 @@ public class AboutChromeSettings extends PreferenceFragmentCompat p = findPreference(PREF_LEGAL_INFORMATION); int currentYear = Calendar.getInstance().get(Calendar.YEAR); p.setSummary(getString(R.string.legal_information_summary, currentYear)); @@ -142,7 +142,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/about_settings/ } @Override -@@ -130,4 +143,17 @@ public class AboutChromeSettings extends PreferenceFragmentCompat +@@ -132,4 +145,17 @@ public class AboutChromeSettings extends PreferenceFragmentCompat } return true; } @@ -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 -@@ -2520,6 +2520,12 @@ static_library("browser") { +@@ -2502,6 +2502,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 -@@ -283,6 +283,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -284,6 +284,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kPriceChangeModule, &kPwaRestoreUi, &kPwaRestoreUiAtStartup, @@ -1096,9 +1096,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 -@@ -367,6 +367,7 @@ public abstract class ChromeFeatureList { - public static final String INCOGNITO_REAUTHENTICATION_FOR_ANDROID = - "IncognitoReauthenticationForAndroid"; +@@ -356,6 +356,7 @@ public abstract class ChromeFeatureList { + "HideTabletToolbarDownloadButton"; + public static final String HISTORY_JOURNEYS = "Journeys"; public static final String INCOGNITO_SCREENSHOT = "IncognitoScreenshot"; + public static final String INLINE_UPDATE_FLOW = "InlineUpdateFlow"; public static final String INTEREST_FEED_V2_HEARTS = "InterestFeedV2Hearts"; @@ -1650,7 +1650,7 @@ new file mode 100644 diff --git a/chrome/browser/safety_hub/android/java/src/org/chromium/chrome/browser/safety_hub/SafetyHubFetchService.java b/chrome/browser/safety_hub/android/java/src/org/chromium/chrome/browser/safety_hub/SafetyHubFetchService.java --- a/chrome/browser/safety_hub/android/java/src/org/chromium/chrome/browser/safety_hub/SafetyHubFetchService.java +++ b/chrome/browser/safety_hub/android/java/src/org/chromium/chrome/browser/safety_hub/SafetyHubFetchService.java -@@ -62,9 +62,6 @@ public class SafetyHubFetchService implements SigninManager.SignInStateObserver, +@@ -76,9 +76,6 @@ public class SafetyHubFetchService implements SigninManager.SignInStateObserver, if (mSigninManager != null) { mSigninManager.addSignInStateObserver(this); } @@ -1660,7 +1660,7 @@ diff --git a/chrome/browser/safety_hub/android/java/src/org/chromium/chrome/brow } void addObserver(Observer observer) { -@@ -80,8 +77,6 @@ public class SafetyHubFetchService implements SigninManager.SignInStateObserver, +@@ -94,8 +91,6 @@ public class SafetyHubFetchService implements SigninManager.SignInStateObserver, if (mSigninManager != null) { mSigninManager.removeSignInStateObserver(this); } @@ -1672,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 -@@ -2406,6 +2406,12 @@ Your Google account may have other forms of browsing history like searches and a +@@ -2409,6 +2409,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 @@ -1685,7 +1685,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro -@@ -4360,7 +4366,10 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4366,7 +4372,10 @@ To change this setting, BEGIN_LINKdelete the Chrome d @@ -1697,7 +1697,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro Newer version is available -@@ -4371,6 +4380,18 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4377,6 +4386,18 @@ To change this setting, BEGIN_LINKdelete the Chrome d Android version is unsupported @@ -1731,7 +1731,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi namespace { const char kContentTypeKey[] = "Content-Type"; const char kDeveloperKey[] = "X-Developer-Key"; -@@ -78,6 +83,7 @@ EndpointFetcher::EndpointFetcher( +@@ -83,6 +88,7 @@ EndpointFetcher::EndpointFetcher( http_method_(http_method), content_type_(content_type), timeout_(timeout), @@ -1739,7 +1739,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi post_data_(post_data), headers_(headers), cors_exempt_headers_(cors_exempt_headers), -@@ -98,6 +104,7 @@ EndpointFetcher::EndpointFetcher( +@@ -103,6 +109,7 @@ EndpointFetcher::EndpointFetcher( http_method_("GET"), content_type_(std::string()), timeout_(base::Milliseconds(0)), @@ -1747,7 +1747,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi post_data_(std::string()), annotation_tag_(annotation_tag), url_loader_factory_(url_loader_factory), -@@ -123,6 +130,7 @@ EndpointFetcher::EndpointFetcher( +@@ -128,6 +135,7 @@ EndpointFetcher::EndpointFetcher( http_method_(http_method), content_type_(content_type), timeout_(timeout), @@ -1755,7 +1755,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi post_data_(post_data), annotation_tag_(annotation_tag), url_loader_factory_(url_loader_factory), -@@ -150,6 +158,7 @@ EndpointFetcher::EndpointFetcher( +@@ -155,6 +163,7 @@ EndpointFetcher::EndpointFetcher( http_method_(http_method), content_type_(content_type), timeout_(timeout), @@ -1763,7 +1763,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi post_data_(post_data), headers_(headers), cors_exempt_headers_(cors_exempt_headers), -@@ -162,11 +171,29 @@ EndpointFetcher::EndpointFetcher( +@@ -167,11 +176,29 @@ EndpointFetcher::EndpointFetcher( EndpointFetcher::EndpointFetcher( const net::NetworkTrafficAnnotationTag& annotation_tag) : timeout_(kDefaultTimeOut), @@ -1793,7 +1793,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi EndpointFetcher::~EndpointFetcher() = default; void EndpointFetcher::Fetch(EndpointFetcherCallback endpoint_fetcher_callback) { -@@ -224,11 +251,9 @@ void EndpointFetcher::PerformRequest( +@@ -229,11 +256,9 @@ void EndpointFetcher::PerformRequest( auto resource_request = std::make_unique(); resource_request->method = http_method_; resource_request->url = url_; @@ -1808,7 +1808,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi if (base::EqualsCaseInsensitiveASCII(http_method_, "POST")) { resource_request->headers.SetHeader(kContentTypeKey, content_type_); } -@@ -256,25 +281,50 @@ void EndpointFetcher::PerformRequest( +@@ -261,10 +286,27 @@ void EndpointFetcher::PerformRequest( default: break; } @@ -1836,6 +1836,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi if (base::EqualsCaseInsensitiveASCII(http_method_, "POST")) { simple_url_loader_->AttachStringForUpload(post_data_, content_type_); +@@ -275,15 +317,23 @@ void EndpointFetcher::PerformRequest( } simple_url_loader_->SetRetryOptions(GetMaxRetries(), network::SimpleURLLoader::RETRY_ON_5XX); @@ -1865,7 +1866,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi } void EndpointFetcher::OnResponseFetched( -@@ -352,24 +402,6 @@ void EndpointFetcher::OnSanitizationResult( +@@ -361,24 +411,6 @@ void EndpointFetcher::OnSanitizationResult( std::move(endpoint_fetcher_callback).Run(std::move(response)); } @@ -1890,7 +1891,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi int EndpointFetcher::GetMaxRetries() { if (!request_params_.has_value()) { return kNumRetries; -@@ -393,3 +425,38 @@ bool EndpointFetcher::GetSetSiteForCookies() { +@@ -412,3 +444,38 @@ UploadProgressCallback EndpointFetcher::GetUploadProgressCallback() { std::string EndpointFetcher::GetUrlForTesting() { return url_.spec(); } @@ -1950,7 +1951,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoin int http_status_code{-1}; std::optional error_type; }; -@@ -159,6 +163,14 @@ class EndpointFetcher { +@@ -175,6 +179,14 @@ class EndpointFetcher { const GURL& url, const net::NetworkTrafficAnnotationTag& annotation_tag); @@ -1965,7 +1966,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoin // Used for tests. Can be used if caller constructs their own // url_loader_factory and identity_manager. EndpointFetcher( -@@ -215,6 +227,11 @@ class EndpointFetcher { +@@ -231,6 +243,11 @@ class EndpointFetcher { void OnSanitizationResult(std::unique_ptr response, EndpointFetcherCallback endpoint_fetcher_callback, data_decoder::JsonSanitizer::Result result); @@ -1977,7 +1978,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoin network::mojom::CredentialsMode GetCredentialsMode(); int GetMaxRetries(); -@@ -226,10 +243,11 @@ class EndpointFetcher { +@@ -243,10 +260,11 @@ class EndpointFetcher { // Members set in constructor to be passed to network::ResourceRequest or // network::SimpleURLLoader. const std::string oauth_consumer_name_; @@ -1990,7 +1991,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoin const std::string post_data_; const std::vector headers_; const std::vector cors_exempt_headers_; -@@ -255,6 +273,9 @@ class EndpointFetcher { +@@ -271,6 +289,9 @@ class EndpointFetcher { access_token_fetcher_; std::unique_ptr simple_url_loader_; diff --git a/build/patches/Bromite-subresource-adblocker.patch b/build/patches/Bromite-subresource-adblocker.patch index 67dfc4ba9..91d126877 100644 --- a/build/patches/Bromite-subresource-adblocker.patch +++ b/build/patches/Bromite-subresource-adblocker.patch @@ -66,8 +66,8 @@ 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 -@@ -319,6 +319,7 @@ if (current_toolchain == default_toolchain) { - "//chrome/android/modules/cablev2_authenticator/public:java", +@@ -324,6 +324,7 @@ if (current_toolchain == default_toolchain) { + "//chrome/android/features/tab_ui/public:ui_java_resources", "//chrome/android/modules/stack_unwinder/provider:java", "//chrome/android/webapk/libs/client:client_java", + "//chrome/browser/endpoint_fetcher:java", @@ -85,7 +85,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja "java/res/layout/auto_sign_in_first_run_dialog.xml", "java/res/layout/autofill_billing_address_dropdown.xml", "java/res/layout/autofill_card_name_and_number.xml", -@@ -614,6 +615,7 @@ chrome_java_resources = [ +@@ -615,6 +616,7 @@ chrome_java_resources = [ "java/res/xml/about_chrome_preferences.xml", "java/res/xml/account_management_preferences.xml", "java/res/xml/ad_services_config.xml", @@ -96,7 +96,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -947,6 +947,8 @@ chrome_java_sources = [ +@@ -942,6 +942,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", @@ -426,7 +426,7 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java -@@ -863,9 +863,7 @@ public class TabModelImpl extends TabModelJniBridge { +@@ -905,9 +905,7 @@ public class TabModelImpl extends TabModelJniBridge { .createTabWithWebContents( parent, webContents, @@ -440,7 +440,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabMod diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd -@@ -15996,6 +15996,16 @@ Please help our engineers fix this problem. Tell us what happened right before y +@@ -16478,6 +16478,16 @@ Please help our engineers fix this problem. Tell us what happened right before y Never show this again. @@ -511,7 +511,7 @@ diff --git a/chrome/browser/browser_process.h b/chrome/browser/browser_process.h diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc --- a/chrome/browser/browser_process_impl.cc +++ b/chrome/browser/browser_process_impl.cc -@@ -1228,6 +1228,34 @@ BrowserProcessImpl::component_updater() { +@@ -1223,6 +1223,34 @@ BrowserProcessImpl::component_updater() { return component_updater_.get(); } @@ -568,7 +568,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 -@@ -468,6 +468,9 @@ StartupProfileInfo CreateInitialProfile( +@@ -469,6 +469,9 @@ StartupProfileInfo CreateInitialProfile( // missing code in the above test. CHECK(profile_info.profile) << "Cannot get default profile."; @@ -679,7 +679,7 @@ new file mode 100755 diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc --- a/chrome/browser/net/system_network_context_manager.cc +++ b/chrome/browser/net/system_network_context_manager.cc -@@ -637,6 +637,10 @@ void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) { +@@ -638,6 +638,10 @@ void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) { StubResolverConfigReader::RegisterPrefs(registry); DefaultDnsOverHttpsConfigSource::RegisterPrefs(registry); @@ -693,7 +693,7 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows diff --git a/chrome/browser/sessions/session_restore_android.cc b/chrome/browser/sessions/session_restore_android.cc --- a/chrome/browser/sessions/session_restore_android.cc +++ b/chrome/browser/sessions/session_restore_android.cc -@@ -57,8 +57,11 @@ content::WebContents* SessionRestore::RestoreForeignSessionTab( +@@ -58,8 +58,11 @@ content::WebContents* SessionRestore::RestoreForeignSessionTab( DCHECK(current_tab); // If swapped, return the current tab's most up-to-date web contents. if (disposition == WindowOpenDisposition::CURRENT_TAB) { @@ -734,7 +734,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h --- a/chrome/common/pref_names.h +++ b/chrome/common/pref_names.h -@@ -2857,6 +2857,11 @@ inline constexpr char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled"; +@@ -2837,6 +2837,11 @@ inline constexpr char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled"; inline constexpr char kAudioCaptureAllowedUrls[] = "hardware.audio_capture_allowed_urls"; @@ -749,7 +749,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 -@@ -373,6 +373,9 @@ +@@ -379,6 +379,9 @@ This site shows intrusive or misleading ads @@ -775,7 +775,7 @@ diff --git a/components/component_updater/BUILD.gn b/components/component_update "component_updater_service.cc", "component_updater_service.h", "component_updater_service_internal.h", -@@ -49,9 +55,11 @@ static_library("component_updater") { +@@ -47,9 +53,11 @@ static_library("component_updater") { "//components/update_client", "//components/version_info", "//net", diff --git a/build/patches/Bubble-Locking-on-UI-DevTools.patch b/build/patches/Bubble-Locking-on-UI-DevTools.patch index 2f26df870..1f1228cf0 100644 --- a/build/patches/Bubble-Locking-on-UI-DevTools.patch +++ b/build/patches/Bubble-Locking-on-UI-DevTools.patch @@ -15,7 +15,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/ui/views/toolbar/reload_button.cc b/chrome/browser/ui/views/toolbar/reload_button.cc --- a/chrome/browser/ui/views/toolbar/reload_button.cc +++ b/chrome/browser/ui/views/toolbar/reload_button.cc -@@ -224,6 +224,14 @@ void ReloadButton::ButtonPressed(const ui::Event& event) { +@@ -220,6 +220,14 @@ void ReloadButton::ButtonPressed(const ui::Event& event) { command = IDC_RELOAD; } @@ -34,8 +34,8 @@ 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 @@ -1235,6 +1235,19 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, - void SetAllowScreenshots(bool allow); - bool AreScreenshotsAllowed(); + void OnChildAdded(Widget* child_widget); + void OnChildRemoved(Widget* child_widget); + // Type of ways to ignore activation changes. + enum class DisableActivationChangeHandlingType { diff --git a/build/patches/Change-popup-site-setting.patch b/build/patches/Change-popup-site-setting.patch index e51ad436f..6156b8614 100644 --- a/build/patches/Change-popup-site-setting.patch +++ b/build/patches/Change-popup-site-setting.patch @@ -6,7 +6,7 @@ In site settings added ability to block all popups per site License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- - .../tab_under_navigation_throttle.cc | 1 + + .../tab_under_navigation_throttle.cc | 11 +- .../android/popup_blocked_message_delegate.cc | 20 +++- .../android/popup_blocked_message_delegate.h | 1 + components/blocked_content/popup_blocker.cc | 3 + @@ -15,7 +15,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../bromite_content_settings/popups.grdp | 12 ++ .../bromite_content_settings/popups.inc | 8 ++ .../core/browser/content_settings_registry.cc | 2 +- - 9 files changed, 153 insertions(+), 3 deletions(-) + 9 files changed, 160 insertions(+), 6 deletions(-) create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromitePopupContentSetting.java create mode 100644 components/browser_ui/strings/bromite_content_settings/popups.grdp create mode 100644 components/content_settings/core/browser/bromite_content_settings/popups.inc @@ -23,14 +23,24 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/ui/blocked_content/tab_under_navigation_throttle.cc b/chrome/browser/ui/blocked_content/tab_under_navigation_throttle.cc --- a/chrome/browser/ui/blocked_content/tab_under_navigation_throttle.cc +++ b/chrome/browser/ui/blocked_content/tab_under_navigation_throttle.cc -@@ -65,6 +65,7 @@ void LogTabUnderAttempt(content::NavigationHandle* handle) { - BASE_FEATURE(kBlockTabUnders, - "BlockTabUnders", - base::FEATURE_DISABLED_BY_DEFAULT); -+SET_CROMITE_FEATURE_ENABLED(kBlockTabUnders); +@@ -140,9 +140,14 @@ TabUnderNavigationThrottle::MaybeBlockNavigation() { - // static - std::unique_ptr + LogTabUnderAttempt(navigation_handle()); + +- // We unconditionally proceed. There used to be a tab-under blocking +- // experiment, but it never launched. +- return content::NavigationThrottle::PROCEED; ++ content::WebContents* web_contents = navigation_handle()->GetWebContents(); ++ const std::string error = ++ base::StringPrintf(kBlockTabUnderFormatMessage, ++ navigation_handle()->GetURL().spec().c_str()); ++ web_contents->GetPrimaryMainFrame()->AddMessageToConsole( ++ blink::mojom::ConsoleMessageLevel::kError, error.c_str()); ++ ShowUI(); ++ return content::NavigationThrottle::CANCEL; + } + + void TabUnderNavigationThrottle::ShowUI() { diff --git a/components/blocked_content/android/popup_blocked_message_delegate.cc b/components/blocked_content/android/popup_blocked_message_delegate.cc --- a/components/blocked_content/android/popup_blocked_message_delegate.cc +++ b/components/blocked_content/android/popup_blocked_message_delegate.cc diff --git a/build/patches/Chrome-web-store-protection.patch b/build/patches/Chrome-web-store-protection.patch index e01a196bf..f9b1653ca 100644 --- a/build/patches/Chrome-web-store-protection.patch +++ b/build/patches/Chrome-web-store-protection.patch @@ -17,19 +17,22 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../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/cws_info_service_factory.cc | 3 +- + .../extensions/extension_management.cc | 1 + + .../extension_safety_check_utils.cc | 3 +- + .../browser/extensions/extension_service.cc | 4 +- .../extensions/extension_system_impl.cc | 2 + .../chrome_extension_downloader_factory.cc | 1 - .../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 +++ + .../resources/extensions/manager.html.ts | 1 + + .../browser/resources/extensions/manager.ts | 5 ++ .../browser/resources/extensions/service.ts | 5 ++ .../browser/resources/extensions/toolbar.css | 5 ++ - .../browser/resources/extensions/toolbar.html | 7 +++ - .../browser/resources/extensions/toolbar.ts | 21 +++++++ + .../resources/extensions/toolbar.html.ts | 7 +++ + .../browser/resources/extensions/toolbar.ts | 17 ++++++ .../resources/webstore_app/manifest.json | 7 +-- .../ui/webui/extensions/extensions_ui.cc | 8 +++ .../chrome_update_query_params_delegate.cc | 13 ++-- @@ -44,7 +47,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html extensions/common/extension_features.cc | 15 +++++ extensions/common/extension_features.h | 5 ++ .../definitions/developer_private.d.ts | 2 + - 31 files changed, 258 insertions(+), 103 deletions(-) + 34 files changed, 256 insertions(+), 109 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 @@ -166,7 +169,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api #include "extensions/common/manifest.h" #include "extensions/common/manifest_constants.h" #include "extensions/common/manifest_handlers/permissions_parser.h" -@@ -220,6 +221,8 @@ WebstorePrivateApi::Delegate* test_delegate = nullptr; +@@ -219,6 +220,8 @@ WebstorePrivateApi::Delegate* test_delegate = nullptr; // there was previously stored data, or an empty string otherwise. The Set will // overwrite any previous login. std::string GetWebstoreLogin(Profile* profile) { @@ -175,7 +178,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api if (profile->GetPrefs()->HasPrefPath(kWebstoreLogin)) { return profile->GetPrefs()->GetString(kWebstoreLogin); } -@@ -227,11 +230,15 @@ std::string GetWebstoreLogin(Profile* profile) { +@@ -226,11 +229,15 @@ std::string GetWebstoreLogin(Profile* profile) { } void SetWebstoreLogin(Profile* profile, const std::string& login) { @@ -191,7 +194,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api switch (status) { case kCanRequest: return api::webstore_private::ExtensionInstallStatus::kCanRequest; -@@ -1152,7 +1159,8 @@ ExtensionFunction::ResponseAction +@@ -1151,7 +1158,8 @@ ExtensionFunction::ResponseAction WebstorePrivateIsInIncognitoModeFunction::Run() { Profile* profile = Profile::FromBrowserContext(browser_context()); return RespondNow(ArgumentList(IsInIncognitoMode::Results::Create( @@ -201,7 +204,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api } WebstorePrivateIsPendingCustodianApprovalFunction:: -@@ -1247,11 +1255,14 @@ WebstorePrivateGetReferrerChainFunction::Run() { +@@ -1246,11 +1254,14 @@ WebstorePrivateGetReferrerChainFunction::Run() { request.mutable_referrer_chain_options()->set_recent_navigations_to_collect( recent_navigations_to_collect); @@ -217,17 +220,64 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api } WebstorePrivateGetExtensionStatusFunction:: -diff --git a/chrome/browser/extensions/cws_info_service.cc b/chrome/browser/extensions/cws_info_service.cc ---- a/chrome/browser/extensions/cws_info_service.cc -+++ b/chrome/browser/extensions/cws_info_service.cc -@@ -163,6 +163,7 @@ namespace extensions { - BASE_FEATURE(kCWSInfoService, - "CWSInfoService", - base::FEATURE_ENABLED_BY_DEFAULT); -+SET_CROMITE_FEATURE_DISABLED(kCWSInfoService); - - // Increase the frequency of periodic retrieval of extensions metadata from - // CWS. This feature is used only for testing purposes. +diff --git a/chrome/browser/extensions/cws_info_service_factory.cc b/chrome/browser/extensions/cws_info_service_factory.cc +--- a/chrome/browser/extensions/cws_info_service_factory.cc ++++ b/chrome/browser/extensions/cws_info_service_factory.cc +@@ -47,7 +47,8 @@ CWSInfoServiceFactory::CWSInfoServiceFactory() + std::unique_ptr + CWSInfoServiceFactory::BuildServiceInstanceForBrowserContext( + content::BrowserContext* context) const { +- return std::make_unique(Profile::FromBrowserContext(context)); ++ // Disallow periodic retrieval of extensions metadata from the Chrome Web Store ++ return nullptr; + } + + bool CWSInfoServiceFactory::ServiceIsCreatedWithBrowserContext() const { +diff --git a/chrome/browser/extensions/extension_management.cc b/chrome/browser/extensions/extension_management.cc +--- a/chrome/browser/extensions/extension_management.cc ++++ b/chrome/browser/extensions/extension_management.cc +@@ -379,6 +379,7 @@ bool ExtensionManagement::IsExemptFromMV2DeprecationByPolicy( + + bool ExtensionManagement::IsAllowedByUnpublishedAvailabilityPolicy( + const Extension* extension) { ++ if ((true)) return true; + // This policy only applies to extensions that update from CWS. + if (!UpdatesFromWebstore(*extension)) { + return true; +diff --git a/chrome/browser/extensions/extension_safety_check_utils.cc b/chrome/browser/extensions/extension_safety_check_utils.cc +--- a/chrome/browser/extensions/extension_safety_check_utils.cc ++++ b/chrome/browser/extensions/extension_safety_check_utils.cc +@@ -240,8 +240,7 @@ developer::SafetyCheckWarningReason GetSafetyCheckWarningReasonHelper( + developer::SafetyCheckWarningReason acknowledged_reason = + GetPrefAcknowledgeSafetyCheckWarningReason(extension, + ExtensionPrefs::Get(profile)); +- std::optional cws_info = +- cws_info_service->GetCWSInfo(extension); ++ std::optional cws_info; + bool valid_cws_info = cws_info.has_value() && cws_info->is_present; + if (unpublished_only) { + if (valid_cws_info && cws_info->unpublished_long_ago) { +diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc +--- a/chrome/browser/extensions/extension_service.cc ++++ b/chrome/browser/extensions/extension_service.cc +@@ -443,8 +443,6 @@ ExtensionService::ExtensionService( + + UpgradeDetector::GetInstance()->AddObserver(this); + +- cws_info_service_observation_.Observe(CWSInfoService::Get(profile_)); +- + ExtensionManagementFactory::GetForBrowserContext(profile_)->AddObserver(this); + + // Set up the ExtensionUpdater. +@@ -1930,7 +1928,7 @@ void ExtensionService::OnExtensionManagementSettingsChanged() { + // unpublished extensions should not be enabled. This update allows + // unpublished extensions to be disabled sooner rather than waiting till the + // next regularly scheduled fetch. +- if (profile_->GetPrefs()->GetInteger( ++ if (((false)) && profile_->GetPrefs()->GetInteger( + pref_names::kExtensionUnpublishedAvailability) != + kAllowUnpublishedExtensions) { + CWSInfoService::Get(profile_)->CheckAndMaybeFetchInfo(); diff --git a/chrome/browser/extensions/extension_system_impl.cc b/chrome/browser/extensions/extension_system_impl.cc --- a/chrome/browser/extensions/extension_system_impl.cc +++ b/chrome/browser/extensions/extension_system_impl.cc @@ -442,50 +492,48 @@ diff --git a/chrome/browser/extensions/webstore_install_helper.cc b/chrome/brows diff --git a/chrome/browser/extensions/webstore_installer.cc b/chrome/browser/extensions/webstore_installer.cc --- a/chrome/browser/extensions/webstore_installer.cc +++ b/chrome/browser/extensions/webstore_installer.cc -@@ -624,7 +624,7 @@ void WebstoreInstaller::StartDownload( - download_url_, render_process_host_id, render_frame_host->GetRoutingID(), +@@ -625,7 +625,7 @@ void WebstoreInstaller::StartDownload( traffic_annotation)); params->set_file_path(file); + params->set_initiator(render_frame_host->GetLastCommittedOrigin()); - if (controller.GetVisibleEntry()) { + if ((false) && controller.GetVisibleEntry()) { content::Referrer referrer = content::Referrer::SanitizeForRequest( download_url_, content::Referrer(controller.GetVisibleEntry()->GetURL(), -diff --git a/chrome/browser/resources/extensions/manager.html b/chrome/browser/resources/extensions/manager.html ---- a/chrome/browser/resources/extensions/manager.html -+++ b/chrome/browser/resources/extensions/manager.html -@@ -64,6 +64,7 @@ - +diff --git a/chrome/browser/resources/extensions/manager.html.ts b/chrome/browser/resources/extensions/manager.html.ts +--- a/chrome/browser/resources/extensions/manager.html.ts ++++ b/chrome/browser/resources/extensions/manager.html.ts +@@ -12,6 +12,7 @@ export function getHtml(this: ExtensionsManagerElement) { + - loadTimeData.getBoolean('MV2DeprecationNoticeDismissed'), - }, +@@ -142,6 +142,8 @@ export class ExtensionsManagerElement extends ExtensionsManagerElementBase { + */ + didInitPage_: {type: Boolean}, -+ isExtUpdateEnabled: { -+ type: Boolean, -+ value: () => loadTimeData.getBoolean('isExtUpdateEnabled'), -+ }, ++ isExtUpdateEnabled: {type: Boolean}, + - showActivityLog: { - type: Boolean, - value: () => loadTimeData.getBoolean('showActivityLog'), -@@ -210,6 +215,7 @@ export class ExtensionsManagerElement extends ExtensionsManagerElementBase { - delegate: Service; - inDevMode: boolean; - isMv2DeprecationNoticeDismissed: boolean; -+ isExtUpdateEnabled: boolean; - showActivityLog: boolean; - enableEnhancedSiteControls: boolean; - devModeControlledByPolicy: boolean; -@@ -277,6 +283,7 @@ export class ExtensionsManagerElement extends ExtensionsManagerElementBase { + narrow_: {type: Boolean}, + + showDrawer_: {type: Boolean}, +@@ -163,6 +165,8 @@ export class ExtensionsManagerElement extends ExtensionsManagerElementBase { + inDevMode: boolean = loadTimeData.getBoolean('inDevMode'); + isMv2DeprecationNoticeDismissed: boolean = + loadTimeData.getBoolean('MV2DeprecationNoticeDismissed'); ++ isExtUpdateEnabled: boolean = ++ loadTimeData.getBoolean('isExtUpdateEnabled'); + showActivityLog: boolean = loadTimeData.getBoolean('showActivityLog'); + enableEnhancedSiteControls: boolean = + loadTimeData.getBoolean('enableEnhancedSiteControls'); +@@ -224,6 +228,7 @@ export class ExtensionsManagerElement extends ExtensionsManagerElementBase { this.canLoadUnpacked = profileInfo.canLoadUnpacked; this.isMv2DeprecationNoticeDismissed = profileInfo.isMv2DeprecationNoticeDismissed; @@ -496,7 +544,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 -@@ -290,6 +290,11 @@ export class Service implements ServiceInterface { +@@ -293,6 +293,11 @@ export class Service implements ServiceInterface { {inDeveloperMode: inDevMode}); } @@ -523,18 +571,18 @@ diff --git a/chrome/browser/resources/extensions/toolbar.css b/chrome/browser/re cr-toolbar { --cr-toolbar-center-basis: 680px; --cr-toolbar-field-max-width: var(--cr-toolbar-center-basis); -diff --git a/chrome/browser/resources/extensions/toolbar.html b/chrome/browser/resources/extensions/toolbar.html ---- a/chrome/browser/resources/extensions/toolbar.html -+++ b/chrome/browser/resources/extensions/toolbar.html -@@ -15,6 +15,13 @@ - ?checked="${this.inDevMode}" aria-labelledby="devModeLabel"> +diff --git a/chrome/browser/resources/extensions/toolbar.html.ts b/chrome/browser/resources/extensions/toolbar.html.ts +--- a/chrome/browser/resources/extensions/toolbar.html.ts ++++ b/chrome/browser/resources/extensions/toolbar.html.ts +@@ -25,6 +25,13 @@ export function getHtml(this: ToolbarElement) { + aria-labelledby="devModeLabel"> +
+ $i18n{toolbarExtensionUpdateEnabled} -+ ++ $i18n{toolbarExtensionUpdateEnabledNeedRestart} + -+ ++ + +
@@ -560,21 +608,19 @@ diff --git a/chrome/browser/resources/extensions/toolbar.ts b/chrome/browser/res } export interface ExtensionsToolbarElement { -@@ -79,6 +82,13 @@ export class ExtensionsToolbarElement extends ExtensionsToolbarElementBase { +@@ -79,6 +82,11 @@ export class ExtensionsToolbarElement extends ExtensionsToolbarElementBase { reflect: true, }, + isExtUpdateEnabled: { + type: Boolean, -+ value: false, -+ observer: 'onExtUpdateEnabledChanged_', -+ reflectToAttribute: true, ++ reflect: true, + }, + devModeControlledByPolicy: {type: Boolean}, isChildAccount: {type: Boolean}, -@@ -91,6 +101,7 @@ export class ExtensionsToolbarElement extends ExtensionsToolbarElementBase { +@@ -91,6 +99,7 @@ export class ExtensionsToolbarElement extends ExtensionsToolbarElementBase { expanded_: {type: Boolean}, showPackDialog_: {type: Boolean}, @@ -582,25 +628,23 @@ diff --git a/chrome/browser/resources/extensions/toolbar.ts b/chrome/browser/res /** * Prevents initiating update while update is in progress. -@@ -102,6 +113,8 @@ export class ExtensionsToolbarElement extends ExtensionsToolbarElementBase { +@@ -102,6 +111,8 @@ export class ExtensionsToolbarElement extends ExtensionsToolbarElementBase { extensions: chrome.developerPrivate.ExtensionInfo[] = []; delegate: ToolbarDelegate = new DummyToolbarDelegate(); inDevMode: boolean = false; -+ isExtUpdateEnabled: boolean; ++ isExtUpdateEnabled: boolean = false; + shouldShowRelaunchDialog: boolean = false; devModeControlledByPolicy: boolean = false; isChildAccount: boolean = false; -@@ -154,6 +167,14 @@ export class ExtensionsToolbarElement extends ExtensionsToolbarElementBase { +@@ -154,6 +165,12 @@ export class ExtensionsToolbarElement extends ExtensionsToolbarElementBase { 'Options_ToggleDeveloperMode_' + (e.detail ? 'Enabled' : 'Disabled')); } -+ private onExtUpdateEnabledChanged_(evt: Event, value: boolean, _old: boolean) { -+ if (evt instanceof Event) { -+ this.delegate.setExtUpdateEnabled(value); -+ this.shouldShowRelaunchDialog = true; -+ this.isExtUpdateEnabled = value; -+ } ++ protected onExtUpdateEnabledChanged_(e: CustomEvent) { ++ this.delegate.setExtUpdateEnabled(e.detail); ++ this.shouldShowRelaunchDialog = true; ++ this.isExtUpdateEnabled = e.detail; + } + private onInDevModeChanged_(_current: boolean, previous: boolean) { @@ -834,7 +878,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br if (!extension) { return RespondNow(Error(keys::kNoExtensionError, params->id)); } -@@ -548,8 +572,8 @@ void ManagementSetEnabledFunction::CheckPermissionsIncrease() { +@@ -547,8 +571,8 @@ void ManagementSetEnabledFunction::CheckPermissionsIncrease() { // Extension could have been uninstalled externally while previous check was // happening. const Extension* extension = @@ -845,7 +889,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br if (!extension) { FinishEnable(Error(keys::kNoExtensionError)); return; -@@ -592,8 +616,8 @@ void ManagementSetEnabledFunction::CheckManifestV2Deprecation() { +@@ -591,8 +615,8 @@ void ManagementSetEnabledFunction::CheckManifestV2Deprecation() { // Extension can be uninstalled externally while the previous check was // happening async. const Extension* extension = @@ -856,7 +900,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br if (!extension) { FinishEnable(Error(keys::kNoExtensionError)); return; -@@ -737,8 +761,8 @@ void ManagementSetEnabledFunction::OnSupervisedExtensionApprovalDone( +@@ -736,8 +760,8 @@ void ManagementSetEnabledFunction::OnSupervisedExtensionApprovalDone( } const Extension* ManagementSetEnabledFunction::GetExtension() { @@ -867,7 +911,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br } ManagementUninstallFunctionBase::ManagementUninstallFunctionBase() = default; -@@ -763,8 +787,7 @@ ExtensionFunction::ResponseAction ManagementUninstallFunctionBase::Uninstall( +@@ -762,8 +786,7 @@ ExtensionFunction::ResponseAction ManagementUninstallFunctionBase::Uninstall( ->GetDelegate(); target_extension_id_ = target_extension_id; const Extension* target_extension = @@ -877,7 +921,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_)); -@@ -829,8 +852,7 @@ void ManagementUninstallFunctionBase::UninstallExtension() { +@@ -828,8 +851,7 @@ void ManagementUninstallFunctionBase::UninstallExtension() { // The extension can be uninstalled in another window while the UI was // showing. Do nothing in that case. const Extension* target_extension = @@ -887,7 +931,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br ExtensionRegistry::EVERYTHING); std::string error; bool success = false; -@@ -907,8 +929,7 @@ ExtensionFunction::ResponseAction ManagementCreateAppShortcutFunction::Run() { +@@ -906,8 +928,7 @@ ExtensionFunction::ResponseAction ManagementCreateAppShortcutFunction::Run() { management::CreateAppShortcut::Params::Create(args()); EXTENSION_FUNCTION_VALIDATE(params); const Extension* extension = @@ -897,7 +941,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))); -@@ -961,8 +982,7 @@ ExtensionFunction::ResponseAction ManagementSetLaunchTypeFunction::Run() { +@@ -960,8 +981,7 @@ ExtensionFunction::ResponseAction ManagementSetLaunchTypeFunction::Run() { management::SetLaunchType::Params::Create(args()); EXTENSION_FUNCTION_VALIDATE(params); const Extension* extension = @@ -1104,7 +1148,7 @@ diff --git a/extensions/browser/updater/extension_downloader.h b/extensions/brow diff --git a/extensions/browser/updater/manifest_fetch_data.cc b/extensions/browser/updater/manifest_fetch_data.cc --- a/extensions/browser/updater/manifest_fetch_data.cc +++ b/extensions/browser/updater/manifest_fetch_data.cc -@@ -107,7 +107,7 @@ ManifestFetchData::ManifestFetchData(const GURL& update_url, +@@ -106,7 +106,7 @@ ManifestFetchData::ManifestFetchData(const GURL& update_url, : base_url_(update_url), full_url_(update_url), brand_code_(brand_code), @@ -1113,7 +1157,7 @@ diff --git a/extensions/browser/updater/manifest_fetch_data.cc b/extensions/brow fetch_priority_(fetch_priority) { UpdateFullUrl(base_query_params); request_ids_.insert(request_id); -@@ -161,18 +161,12 @@ bool ManifestFetchData::AddExtension(const std::string& id, +@@ -159,18 +159,12 @@ bool ManifestFetchData::AddExtension(const std::string& id, // Compute the string we'd append onto the full_url_, and see if it fits. std::vector parts; parts.push_back("id=" + id); @@ -1146,7 +1190,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 -@@ -198,4 +198,19 @@ BASE_FEATURE(kSilentDebuggerExtensionAPI, +@@ -191,4 +191,19 @@ BASE_FEATURE(kSilentDebuggerExtensionAPI, "SilentDebuggerExtensionAPI", base::FEATURE_DISABLED_BY_DEFAULT); @@ -1169,7 +1213,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 -@@ -235,6 +235,11 @@ BASE_DECLARE_FEATURE(kDeclarativeNetRequestHeaderSubstitution); +@@ -228,6 +228,11 @@ BASE_DECLARE_FEATURE(kDeclarativeNetRequestHeaderSubstitution); // Show no warning banner when an extension uses CDP's `chrome.debugger`. BASE_DECLARE_FEATURE(kSilentDebuggerExtensionAPI); 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 fee942759..63c8f19ab 100644 --- a/build/patches/Clear-CORS-Preflight-Cache-on-clearing-data.patch +++ b/build/patches/Clear-CORS-Preflight-Cache-on-clearing-data.patch @@ -79,7 +79,7 @@ diff --git a/services/network/cors/preflight_result.cc b/services/network/cors/p diff --git a/services/network/network_context.cc b/services/network/network_context.cc --- a/services/network/network_context.cc +++ b/services/network/network_context.cc -@@ -1282,6 +1282,7 @@ void NetworkContext::ClearHttpCache(base::Time start_time, +@@ -1322,6 +1322,7 @@ void NetworkContext::ClearHttpCache(base::Time start_time, base::Time end_time, mojom::ClearDataFilterPtr filter, ClearHttpCacheCallback callback) { diff --git a/build/patches/Client-hints-overrides.patch b/build/patches/Client-hints-overrides.patch index 8f4c5b433..3653f4b2c 100644 --- a/build/patches/Client-hints-overrides.patch +++ b/build/patches/Client-hints-overrides.patch @@ -30,7 +30,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/components/embedder_support/user_agent_utils.cc b/components/embedder_support/user_agent_utils.cc --- a/components/embedder_support/user_agent_utils.cc +++ b/components/embedder_support/user_agent_utils.cc -@@ -187,9 +187,7 @@ const blink::UserAgentBrandList GetUserAgentBrandList( +@@ -191,9 +191,7 @@ const blink::UserAgentBrandList GetUserAgentBrandList( bool parse_result = base::StringToInt(major_version, &major_version_number); DCHECK(parse_result); std::optional brand; @@ -52,7 +52,7 @@ diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/clie #include "ui/display/display.h" #include "ui/display/screen.h" #include "url/origin.h" -@@ -722,7 +723,8 @@ void UpdateNavigationRequestClientUaHeadersImpl( +@@ -706,7 +707,8 @@ void UpdateNavigationRequestClientUaHeadersImpl( // value, disable them. This overwrites previous decision from UI. disable_due_to_custom_ua = !ua_metadata.has_value(); } @@ -62,7 +62,7 @@ diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/clie if (!disable_due_to_custom_ua) { if (!ua_metadata.has_value()) ua_metadata = delegate->GetUserAgentMetadata(); -@@ -904,10 +906,12 @@ void AddRequestClientHintsHeaders( +@@ -888,10 +890,12 @@ void AddRequestClientHintsHeaders( AddEctHeader(headers, network_quality_tracker, url); } @@ -79,7 +79,7 @@ diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/clie if (ShouldAddClientHint(data, WebClientHintsType::kPrefersColorScheme)) { AddPrefersColorSchemeHeader(headers, frame_tree_node); -@@ -1001,6 +1005,7 @@ ParseAndPersistAcceptCHForNavigation( +@@ -985,6 +989,7 @@ ParseAndPersistAcceptCHForNavigation( BrowserContext* context, ClientHintsControllerDelegate* delegate, FrameTreeNode* frame_tree_node) { @@ -90,7 +90,7 @@ diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/clie diff --git a/content/browser/loader/navigation_url_loader_impl.cc b/content/browser/loader/navigation_url_loader_impl.cc --- a/content/browser/loader/navigation_url_loader_impl.cc +++ b/content/browser/loader/navigation_url_loader_impl.cc -@@ -1225,6 +1225,11 @@ void NavigationURLLoaderImpl::OnAcceptCHFrameReceived( +@@ -1224,6 +1224,11 @@ void NavigationURLLoaderImpl::OnAcceptCHFrameReceived( return; } @@ -255,7 +255,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/thi diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -395,6 +395,11 @@ +@@ -400,6 +400,11 @@ name: "AriaNotify", status: "test", }, diff --git a/build/patches/Close-Sessions-On-Ip-Change.patch b/build/patches/Close-Sessions-On-Ip-Change.patch index c763e3a58..401c8488f 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 -@@ -457,7 +457,7 @@ const base::FeatureParam kIpPrivacyCacheTokensByGeo{ +@@ -463,7 +463,7 @@ const base::FeatureParam kIpPrivacyOnlyInIncognito{ // 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 807f3f6e4..3ecd2d83e 100644 --- a/build/patches/Content-settings-infrastructure.patch +++ b/build/patches/Content-settings-infrastructure.patch @@ -30,7 +30,7 @@ Require: bromite-build-utils.patch .../ui/views/page_info/page_info_main_view.cc | 28 +- .../views/page_info/page_info_view_factory.cc | 20 + .../views/page_info/page_info_view_factory.h | 5 + - .../page_info/permission_toggle_row_view.cc | 173 +++++++- + .../page_info/permission_toggle_row_view.cc | 179 +++++++- .../page_info/permission_toggle_row_view.h | 18 +- .../settings_localized_strings_provider.cc | 54 +++ .../ui/webui/settings/site_settings_helper.cc | 46 +- @@ -43,8 +43,8 @@ Require: bromite-build-utils.patch .../BromiteCustomContentSettingImpl.java | 412 ++++++++++++++++++ ...tomTriStateSiteSettingsPreferenceImpl.java | 24 + .../ContentSettingsResources.java | 16 +- - .../site_settings/SingleCategorySettings.java | 50 ++- - .../site_settings/SingleWebsiteSettings.java | 54 ++- + .../site_settings/SingleCategorySettings.java | 55 ++- + .../site_settings/SingleWebsiteSettings.java | 58 ++- .../site_settings/SiteSettings.java | 31 +- .../site_settings/SiteSettingsCategory.java | 18 +- .../site_settings/SiteSettingsDelegate.java | 2 + @@ -75,7 +75,7 @@ Require: bromite-build-utils.patch .../renderer/content_settings_agent_impl.cc | 71 +++ .../renderer/content_settings_agent_impl.h | 9 + .../PageInfoPermissionsController.java | 9 + - .../PermissionParamsListBuilder.java | 1 + + .../PermissionParamsListBuilder.java | 8 +- .../android/page_info_controller_android.cc | 18 + components/page_info/page_info.cc | 23 +- components/page_info/page_info_ui.cc | 25 ++ @@ -83,7 +83,7 @@ Require: bromite-build-utils.patch .../platform/web_content_settings_client.h | 13 + .../execution_context/execution_context.cc | 16 + .../execution_context/execution_context.h | 5 + - 72 files changed, 1919 insertions(+), 93 deletions(-) + 72 files changed, 1931 insertions(+), 103 deletions(-) create mode 100644 components/browser_ui/settings/android/java/res/layout/preference_spinner_single_widget.xml create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSetting.java create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSettingImpl.java @@ -97,8 +97,8 @@ Require: bromite-build-utils.patch diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java -@@ -64,6 +64,10 @@ import org.chromium.url.GURL; - +@@ -69,6 +69,10 @@ import org.chromium.url.GURL; + import java.util.List; import java.util.Set; +import android.content.Intent; @@ -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 = -@@ -229,7 +233,7 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { +@@ -240,7 +244,7 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { @Override public boolean isHelpAndFeedbackEnabled() { @@ -117,8 +117,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/C } @Override -@@ -366,6 +370,17 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { - return mPrivacySandboxBridge.getFirstPartySetOwner(memberOrigin); +@@ -402,6 +406,17 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { + return mPrivacySandboxBridge.getRelatedWebsiteSetOwner(memberOrigin); } + @Override @@ -138,7 +138,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/C diff --git a/chrome/browser/content_settings/page_specific_content_settings_delegate.cc b/chrome/browser/content_settings/page_specific_content_settings_delegate.cc --- a/chrome/browser/content_settings/page_specific_content_settings_delegate.cc +++ b/chrome/browser/content_settings/page_specific_content_settings_delegate.cc -@@ -162,7 +162,7 @@ namespace { +@@ -199,7 +199,7 @@ namespace { void GetGuestViewDefaultContentSettingRules( bool incognito, RendererContentSettingRules* rules) { @@ -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 -@@ -1491,4 +1491,5 @@ +@@ -1493,4 +1493,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, -@@ -163,6 +164,7 @@ function addPrivacyChildRoutes(r: Partial) { +@@ -167,6 +168,7 @@ function addPrivacyChildRoutes(r: Partial) { r.SITE_SETTINGS_WEB_APP_INSTALLATION = r.SITE_SETTINGS.createChild('webApplications'); } @@ -692,7 +692,7 @@ diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_ /** * Determine localization string for i18n for a given content settings type. * Sorted alphabetically by |ContentSettingsType|. -@@ -107,6 +155,13 @@ export function getLocalizationStringForContentType( +@@ -108,6 +156,13 @@ export function getLocalizationStringForContentType( case ContentSettingsTypes.SMART_CARD_READERS: return null; default: @@ -709,15 +709,15 @@ 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 -@@ -1808,6 +1808,7 @@ static_library("ui") { - "//components/commerce/core:shopping_service", +@@ -1759,6 +1759,7 @@ static_library("ui") { + "//components/commerce/core/mojom:mojo_bindings", "//components/commerce/core/webui", "//components/endpoint_fetcher:endpoint_fetcher", + "//components/content_settings/core/browser:browser", "//components/enterprise/common:files_scan_data", "//components/feedback/proto", "//components/headless/policy", -@@ -5047,6 +5048,7 @@ static_library("ui") { +@@ -5007,6 +5008,7 @@ static_library("ui") { "//components/power_bookmarks/storage", "//components/reading_list/features:flags", "//components/segmentation_platform/embedder/default_model:default_model", @@ -876,11 +876,12 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.h b/chrome diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc --- a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc +++ b/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc -@@ -39,6 +39,30 @@ +@@ -39,6 +39,31 @@ #include "ui/views/controls/styled_label.h" #include "ui/views/style/typography.h" #include "ui/views/view_class_properties.h" +#include "components/content_settings/core/browser/content_settings_registry.h" ++#include "ui/base/mojom/menu_source_type.mojom.h" + +namespace { + bool IsAllowed(const PageInfo::PermissionInfo& permission) { @@ -907,7 +908,7 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/c DEFINE_CLASS_ELEMENT_IDENTIFIER_VALUE(PermissionToggleRowView, kRowSubTitleCameraElementId); -@@ -62,16 +86,12 @@ PermissionToggleRowView::PermissionToggleRowView( +@@ -62,16 +87,12 @@ PermissionToggleRowView::PermissionToggleRowView( // instead of adding it as the only child. SetUseDefaultFillLayout(true); row_view_ = AddChildView(std::make_unique()); @@ -925,7 +926,7 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/c if (permission.requesting_origin.has_value()) { std::u16string requesting_origin_string; switch (permission.type) { -@@ -168,6 +188,90 @@ void PermissionToggleRowView::UpdatePermission( +@@ -168,6 +189,90 @@ void PermissionToggleRowView::UpdatePermission( UpdateUiOnPermissionChanged(); } @@ -979,7 +980,7 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/c + sources_menu_runner_->RunMenuAt( + choose_button_->GetWidget(), nullptr, + choose_button_->GetAnchorBoundsInScreen(), -+ views::MenuAnchorPosition::kTopLeft, ui::MENU_SOURCE_MOUSE); ++ views::MenuAnchorPosition::kTopLeft, ui::mojom::MenuSourceType::kMouse); +} + +bool PermissionToggleRowView::IsCommandIdChecked(int command_id) const { @@ -1016,12 +1017,15 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/c void PermissionToggleRowView::OnToggleButtonPressed() { PageInfoUI::ToggleBetweenAllowAndBlock(permission_); PermissionChanged(); -@@ -176,24 +280,19 @@ void PermissionToggleRowView::OnToggleButtonPressed() { - void PermissionToggleRowView::InitForUserSource( - bool should_show_spacer_view, - const std::u16string& toggle_accessible_name) { -- const int icon_label_spacing = ChromeLayoutProvider::Get()->GetDistanceMetric( -- views::DISTANCE_RELATED_LABEL_HORIZONTAL); +@@ -176,27 +281,19 @@ void PermissionToggleRowView::OnToggleButtonPressed() { + void PermissionToggleRowView::AddToggleButton( + const std::u16string& toggle_accessible_name, + int icon_label_spacing) { +- // This skips adding a toggle for 'CAPTURED_SURFACE_CONTROL' pemrission type. +- // We want to use the toggle inside the submenu and not here. +- if (permission_.type == ContentSettingsType::CAPTURED_SURFACE_CONTROL) { +- return; +- } - - auto toggle_button = std::make_unique( - base::BindRepeating(&PermissionToggleRowView::OnToggleButtonPressed, @@ -1045,10 +1049,10 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/c - toggle_button_ = row_view_->AddControl(std::move(toggle_button)); + choose_button_ = row_view_->AddControlUnderLabel(std::move(toggle_button)); + } - const int icon_size = GetLayoutConstant(PAGE_INFO_ICON_SIZE); - -@@ -227,9 +326,6 @@ void PermissionToggleRowView::InitForUserSource( + void PermissionToggleRowView::InitForUserSource( +@@ -238,9 +335,6 @@ void PermissionToggleRowView::InitForUserSource( auto spacer_view = std::make_unique(); spacer_view->SetPreferredSize(gfx::Size(icon_size, icon_size)); spacer_view_ = row_view_->AddControl(std::move(spacer_view)); @@ -1058,20 +1062,22 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/c } } } -@@ -256,6 +352,12 @@ void PermissionToggleRowView::InitForManagedSource( +@@ -267,6 +361,14 @@ void PermissionToggleRowView::InitForManagedSource( } void PermissionToggleRowView::UpdateUiOnPermissionChanged() { -+ choose_button_->SetEnabledTextColors(std::nullopt); -+ if (permission_.setting == CONTENT_SETTING_DEFAULT) { -+ choose_button_->SetTextColorId(views::Button::ButtonState::STATE_NORMAL, -+ ui::kColorLabelForeground); ++ if (choose_button_) { ++ choose_button_->SetEnabledTextColors(std::nullopt); ++ if (permission_.setting == CONTENT_SETTING_DEFAULT) { ++ choose_button_->SetTextColorId(views::Button::ButtonState::STATE_NORMAL, ++ ui::kColorLabelForeground); ++ } + } + if (blocked_on_system_level_label_) { if (permission_.setting == CONTENT_SETTING_DEFAULT) { permission_blocked_on_system_level_ = false; -@@ -301,6 +403,37 @@ void PermissionToggleRowView::UpdateUiOnPermissionChanged() { +@@ -312,6 +414,37 @@ void PermissionToggleRowView::UpdateUiOnPermissionChanged() { } } } @@ -1117,7 +1123,7 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.h b/ch #include "ui/views/view.h" +#include "components/content_settings/core/browser/website_settings_registry.h" -+#include "ui/base/models/simple_menu_model.h" ++#include "ui/menus/simple_menu_model.h" +#include "ui/views/controls/menu/menu_runner.h" +#include "ui/views/controls/button/md_text_button_with_down_arrow.h" + @@ -1145,9 +1151,9 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.h b/ch + void ExecuteCommand(int command_id, int event_flags) override; + void OnToggleButtonPressed(); - void InitForUserSource(bool should_show_spacer_view, - const std::u16string& toggle_accessible_name); -@@ -84,6 +96,10 @@ class PermissionToggleRowView : public views::View { + void AddToggleButton(const std::u16string& toggle_accessible_name, + int icon_label_spacing); +@@ -86,6 +98,10 @@ class PermissionToggleRowView : public views::View { raw_ptr toggle_button_ = nullptr; raw_ptr spacer_view_ = nullptr; @@ -1169,17 +1175,17 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide #include "build/branding_buildflags.h" #include "build/build_config.h" #include "build/buildflag.h" -@@ -78,6 +79,9 @@ +@@ -77,6 +78,9 @@ + #include "components/google/core/common/google_util.h" #include "components/history/core/common/pref_names.h" #include "components/history_embeddings/history_embeddings_features.h" - #include "components/omnibox/common/omnibox_features.h" +#include "components/content_settings/core/browser/content_settings_registry.h" +#include "components/content_settings/core/browser/website_settings_info.h" +#include "components/content_settings/core/browser/website_settings_registry.h" #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" -@@ -3809,6 +3813,56 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, +@@ -3773,6 +3777,56 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, policy_indicator::AddLocalizedStrings(html_source); AddSecurityKeysStrings(html_source); @@ -1269,7 +1275,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b struct SiteSettingSourceStringMapping { SiteSettingSource source; -@@ -504,6 +506,13 @@ bool HasRegisteredGroupName(ContentSettingsType type) { +@@ -503,6 +505,13 @@ bool HasRegisteredGroupName(ContentSettingsType type) { return true; } } @@ -1283,7 +1289,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b return false; } -@@ -517,11 +526,24 @@ ContentSettingsType ContentSettingsTypeFromGroupName(std::string_view name) { +@@ -516,11 +525,24 @@ ContentSettingsType ContentSettingsTypeFromGroupName(std::string_view name) { return entry.type; } } @@ -1309,15 +1315,15 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b for (const auto& entry : kContentSettingsTypeGroupNames) { if (type == entry.type) { // Content setting types that aren't represented in the settings UI -@@ -536,7 +558,6 @@ std::string_view ContentSettingsTypeToGroupName(ContentSettingsType type) { +@@ -535,7 +557,6 @@ std::string_view ContentSettingsTypeToGroupName(ContentSettingsType type) { return entry.name ? entry.name : std::string_view(); } } - - NOTREACHED_IN_MIGRATION() << static_cast(type) - << " is not a recognized content settings type."; - return std::string_view(); -@@ -643,6 +664,13 @@ std::vector GetVisiblePermissionCategories( + NOTREACHED() << static_cast(type) + << " is not a recognized content settings type."; + } +@@ -642,6 +663,13 @@ std::vector GetVisiblePermissionCategories( base_types->push_back(ContentSettingsType::WEB_APP_INSTALLATION); } @@ -1334,7 +1340,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b diff --git a/components/browser_ui/settings/android/BUILD.gn b/components/browser_ui/settings/android/BUILD.gn --- a/components/browser_ui/settings/android/BUILD.gn +++ b/components/browser_ui/settings/android/BUILD.gn -@@ -84,6 +84,7 @@ android_resources("java_resources") { +@@ -86,6 +86,7 @@ android_resources("java_resources") { "java/res/layout/managed_disclaimer_preference_for_radio_groups.xml", "java/res/layout/preference_chrome_image_view.xml", "java/res/layout/preference_spinner.xml", @@ -1497,7 +1503,7 @@ diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/browser_ui/site_settings/android/BUILD.gn --- a/components/browser_ui/site_settings/android/BUILD.gn +++ b/components/browser_ui/site_settings/android/BUILD.gn -@@ -146,6 +146,23 @@ android_library("java") { +@@ -147,6 +147,23 @@ android_library("java") { ":site_settings_jni_headers", "//components/content_settings/android:java_pref_names_srcjar", ] @@ -1521,7 +1527,7 @@ diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/b } android_library("javatests") { -@@ -194,6 +211,7 @@ robolectric_library("junit") { +@@ -195,6 +212,7 @@ robolectric_library("junit") { } android_resources("java_resources") { @@ -2178,7 +2184,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c int icon, int title, @ContentSettingValues @Nullable Integer defaultEnabledValue, -@@ -425,6 +425,8 @@ public class ContentSettingsResources { +@@ -435,6 +435,8 @@ public class ContentSettingsResources { R.string.website_settings_category_vr_blocked, R.string.website_settings_category_vr_a11y); } @@ -2187,7 +2193,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c assert false; // NOTREACHED return null; } -@@ -583,6 +585,14 @@ public class ContentSettingsResources { +@@ -593,6 +595,14 @@ public class ContentSettingsResources { return getResourceItem(contentType).getDefaultDisabledValue(); } @@ -2202,7 +2208,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c /** * Returns the string resource id for a given ContentSetting to show with a permission category. * -@@ -746,6 +756,8 @@ public class ContentSettingsResources { +@@ -756,6 +766,8 @@ public class ContentSettingsResources { * Blocked states, in that order. */ public static int[] getTriStateSettingDescriptionIDs(int contentType) { @@ -2276,25 +2282,31 @@ 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; -@@ -812,6 +831,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment - .website_settings_allowed_group_heading_request_desktop_site; - break; +@@ -791,7 +810,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment + ? R.string.website_settings_blocked_group_heading_request_desktop_site + : R.string.website_settings_allowed_group_heading_request_desktop_site; } -+ if (resource == 0) -+ resource = BromiteCustomContentSettingImpl.getAddExceptionDialogMessage(mCategory); - assert resource > 0; - return getString(resource); +- return 0; ++ return BromiteCustomContentSettingImpl.getAddExceptionDialogMessage(mCategory); } -@@ -927,6 +948,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment + + // OnPreferenceClickListener: +@@ -904,10 +923,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment default: break; } +- +- int exceptionDialogMessageResourceId = getAddExceptionDialogMessageResourceId(); +- assert allowSpecifyingExceptions == (exceptionDialogMessageResourceId != 0); + Boolean allow = BromiteCustomContentSettingImpl.allowSpecifyingExceptions(mCategory); + if (allow != null) allowSpecifyingExceptions = (boolean)allow; if (allowSpecifyingExceptions) { ++ int exceptionDialogMessageResourceId = getAddExceptionDialogMessageResourceId(); ++ assert exceptionDialogMessageResourceId != 0; getPreferenceScreen() .addPreference( -@@ -1112,8 +1135,16 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment + new AddExceptionPreference( +@@ -1092,8 +1112,16 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment private boolean isBlocked() { switch (mGlobalToggleLayout) { case GlobalToggleLayout.TRI_STATE_TOGGLE: @@ -2311,7 +2323,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 = -@@ -1180,7 +1211,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1160,7 +1188,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment } else if (mCategory.getType() == SiteSettingsCategory.Type.STORAGE_ACCESS) { infoText.setSummary(getStorageAccessSummary()); } else { @@ -2324,7 +2336,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } // Hide the anti-abuse text preferences, as needed. -@@ -1217,6 +1252,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1197,6 +1229,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment } else { screen.removePreference(mLocationTriStatePref); } @@ -2332,7 +2344,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c if (permissionBlockedByOs) { maybeShowOsWarning(screen); -@@ -1373,7 +1409,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1355,7 +1388,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment getSiteSettingsDelegate().getBrowserContextHandle(), contentType); int[] descriptionIds = ContentSettingsResources.getTriStateSettingDescriptionIDs(contentType); @@ -2341,7 +2353,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } private void configureBinaryToggle(ChromeSwitchPreference binaryToggle, int contentType) { -@@ -1497,6 +1533,14 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1479,6 +1512,14 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment @ContentSettingValues Integer value = site.getContentSetting(browserContextHandle, contentSettingsType); @@ -2367,16 +2379,16 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c /** Shows the permissions and other settings for a particular website. */ public class SingleWebsiteSettings extends BaseSiteSettingsFragment -@@ -172,7 +173,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment - case ContentSettingsType.CLIPBOARD_READ_WRITE: - return "clipboard_permission_list"; +@@ -175,7 +176,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment + case ContentSettingsType.FILE_SYSTEM_WRITE_GUARD: + return "file_system_write_guard_permission_list"; default: - return null; + return BromiteCustomContentSettingImpl.getProfilePrefKey(type); } } -@@ -543,8 +544,21 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -564,8 +565,21 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment private void setupContentSettingsPreferences() { mMaxPermissionOrder = findPreference(PREF_PERMISSIONS_HEADER).getOrder(); @@ -2400,7 +2412,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c preference.setKey(getPreferenceKey(type)); if (type == ContentSettingsType.ADS) { -@@ -1090,20 +1104,32 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1142,20 +1156,32 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment @ContentSettingValues @Nullable Integer value, boolean isEmbargoed, boolean isOneTime) { @@ -2417,7 +2429,9 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c setUpPreferenceCommon(preference, value); - ChromeSwitchPreference switchPreference = (ChromeSwitchPreference) preference; -- switchPreference.setChecked(value == ContentSettingValues.ALLOW); +- @ContentSettingsType.EnumType +- int contentType = getContentSettingsTypeFromPreferenceKey(preference.getKey()); +- switchPreference.setChecked(value == getEnabledValue(contentType)); + Preference switchPreference = preference; + if (preference instanceof ChromeSwitchPreference) { + ((ChromeSwitchPreference)switchPreference).setChecked(value != ContentSettingValues.BLOCK); @@ -2430,18 +2444,18 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c - : getString(ContentSettingsResources.getCategorySummary(value, isOneTime))); + : getString(ContentSettingsResources.getCategorySummary(content_type, value, isOneTime))); switchPreference.setOnPreferenceChangeListener(this); - @ContentSettingsType.EnumType - int contentType = getContentSettingsTypeFromPreferenceKey(preference.getKey()); - if (contentType == mHighlightedPermission) { - switchPreference.setBackgroundColor( ++ @ContentSettingsType.EnumType ++ int contentType = getContentSettingsTypeFromPreferenceKey(preference.getKey()); + if (preference instanceof ChromeSwitchPreference && contentType == mHighlightedPermission) { + ((ChromeSwitchPreference)switchPreference).setBackgroundColor( AppCompatResources.getColorStateList(getContext(), mHighlightColor) .getDefaultColor()); } -@@ -1321,14 +1347,20 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment - permission = - (Boolean) newValue ? ContentSettingValues.ALLOW : ContentSettingValues.BLOCK; +@@ -1376,14 +1402,20 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment + if (newValue instanceof Boolean) { + permission = (Boolean) newValue ? getEnabledValue(type) : ContentSettingValues.BLOCK; } else { - permission = (Integer) newValue; + Integer newPermission = @@ -2491,7 +2505,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. -@@ -171,19 +172,21 @@ public class SiteSettings extends BaseSiteSettingsFragment +@@ -174,19 +175,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. @@ -2528,25 +2542,25 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java -@@ -73,7 +73,7 @@ public class SiteSettingsCategory { - Type.ZOOM, +@@ -74,7 +74,7 @@ public class SiteSettingsCategory { Type.STORAGE_ACCESS, Type.TRACKING_PROTECTION, + Type.FILE_EDITING, - Type.NUM_ENTRIES + Type.NUM_ENTRIES_CHROMIUM }) @Retention(RetentionPolicy.SOURCE) public @interface Type { -@@ -113,7 +113,7 @@ public class SiteSettingsCategory { - int HAND_TRACKING = 31; +@@ -115,7 +115,7 @@ public class SiteSettingsCategory { + int FILE_EDITING = 32; /** Number of handled categories used for calculating array sizes. */ -- int NUM_ENTRIES = 32; -+ int NUM_ENTRIES_CHROMIUM = 32; +- int NUM_ENTRIES = 33; ++ int NUM_ENTRIES_CHROMIUM = 33; } private final BrowserContextHandle mBrowserContextHandle; -@@ -162,6 +162,9 @@ public class SiteSettingsCategory { +@@ -164,6 +164,9 @@ public class SiteSettingsCategory { } else { permission = ""; } @@ -2556,7 +2570,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c return new SiteSettingsCategory(browserContextHandle, type, permission); } -@@ -170,7 +173,7 @@ public class SiteSettingsCategory { +@@ -172,7 +175,7 @@ public class SiteSettingsCategory { @ContentSettingsType.EnumType int contentSettingsType) { assert contentSettingsType != -1; assert Type.ALL_SITES == 0; @@ -2565,7 +2579,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c if (contentSettingsType(i) == contentSettingsType) { return createFromType(browserContextHandle, i); } -@@ -181,7 +184,7 @@ public class SiteSettingsCategory { +@@ -183,7 +186,7 @@ public class SiteSettingsCategory { public static SiteSettingsCategory createFromPreferenceKey( BrowserContextHandle browserContextHandle, String preferenceKey) { assert Type.ALL_SITES == 0; @@ -2574,7 +2588,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c if (preferenceKey(i).equals(preferenceKey)) { return createFromType(browserContextHandle, i); } -@@ -254,8 +257,7 @@ public class SiteSettingsCategory { +@@ -258,8 +261,7 @@ public class SiteSettingsCategory { case Type.TRACKING_PROTECTION: return ContentSettingsType.DEFAULT; // Conversion unavailable. } @@ -2584,7 +2598,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } /** -@@ -342,8 +344,12 @@ public class SiteSettingsCategory { +@@ -348,8 +350,12 @@ public class SiteSettingsCategory { case Type.ZOOM: return "zoom"; default: @@ -2600,7 +2614,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsDelegate.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsDelegate.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsDelegate.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsDelegate.java -@@ -198,6 +198,8 @@ public interface SiteSettingsDelegate { +@@ -217,6 +217,8 @@ public interface SiteSettingsDelegate { */ String getRelatedWebsiteSetOwner(String memberOrigin); @@ -2656,7 +2670,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java -@@ -326,7 +326,11 @@ public final class Website implements WebsiteEntry { +@@ -327,7 +327,11 @@ public final class Website implements WebsiteEntry { RecordUserAction.record("SoundContentSetting.UnmuteBy.SiteSettings"); } } @@ -2672,7 +2686,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java -@@ -108,7 +108,7 @@ public class WebsitePermissionsFetcher { +@@ -110,7 +110,7 @@ public class WebsitePermissionsFetcher { case ContentSettingsType.USB_GUARD: return WebsitePermissionsType.CHOSEN_OBJECT_INFO; default: @@ -2838,7 +2852,7 @@ diff --git a/components/content_settings/core/browser/content_settings_uma_util. diff --git a/components/content_settings/core/browser/content_settings_utils.cc b/components/content_settings/core/browser/content_settings_utils.cc --- a/components/content_settings/core/browser/content_settings_utils.cc +++ b/components/content_settings/core/browser/content_settings_utils.cc -@@ -19,6 +19,7 @@ +@@ -20,6 +20,7 @@ #include "build/build_config.h" #include "components/content_settings/core/browser/content_settings_registry.h" #include "components/content_settings/core/browser/host_content_settings_map.h" @@ -2846,7 +2860,7 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.cc #include "components/content_settings/core/common/content_settings.h" #include "components/content_settings/core/common/content_settings_types.h" #include "components/content_settings/core/common/content_settings_utils.h" -@@ -127,6 +128,17 @@ PatternPair ParsePatternString(const std::string& pattern_str) { +@@ -128,6 +129,17 @@ PatternPair ParsePatternString(const std::string& pattern_str) { void GetRendererContentSettingRules(const HostContentSettingsMap* map, RendererContentSettingRules* rules) { @@ -3291,7 +3305,11 @@ diff --git a/components/page_info/android/java/src/org/chromium/components/page_ diff --git a/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java b/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java --- a/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java +++ b/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java -@@ -109,6 +109,7 @@ public class PermissionParamsListBuilder { +@@ -106,10 +106,10 @@ public class PermissionParamsListBuilder { + + switch (permission.setting) { + case ContentSettingValues.ALLOW: +- case ContentSettingValues.ASK: permissionParams.allowed = true; break; case ContentSettingValues.BLOCK: @@ -3299,6 +3317,19 @@ diff --git a/components/page_info/android/java/src/org/chromium/components/page_ permissionParams.allowed = false; break; default: +@@ -120,6 +120,12 @@ public class PermissionParamsListBuilder { + + permission.type; + } + ++ if (permission.type == ContentSettingsType.FILE_SYSTEM_WRITE_GUARD ++ && permission.setting == ContentSettingValues.ASK) { ++ // see https://source.chromium.org/chromium/chromium/src/+/e3e48613de29440ae1cf11b0ff7fa7c613d9f416 ++ permissionParams.allowed = true; ++ } ++ + return permissionParams; + } + diff --git a/components/page_info/android/page_info_controller_android.cc b/components/page_info/android/page_info_controller_android.cc --- a/components/page_info/android/page_info_controller_android.cc +++ b/components/page_info/android/page_info_controller_android.cc @@ -3310,7 +3341,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp #include "components/content_settings/core/common/content_settings.h" #include "components/content_settings/core/common/content_settings_types.h" #include "components/page_info/android/page_info_client.h" -@@ -162,6 +163,15 @@ void PageInfoControllerAndroid::SetPermissionInfo( +@@ -164,6 +165,15 @@ void PageInfoControllerAndroid::SetPermissionInfo( } permissions_to_display.push_back(ContentSettingsType::STORAGE_ACCESS); @@ -3326,7 +3357,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp std::map user_specified_settings_to_display; std::map -@@ -221,6 +231,14 @@ std::optional PageInfoControllerAndroid::GetSettingToDisplay( +@@ -223,6 +233,14 @@ std::optional PageInfoControllerAndroid::GetSettingToDisplay( return permission.setting; } @@ -3352,7 +3383,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" -@@ -1249,6 +1250,14 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, +@@ -1262,6 +1263,14 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, // applies to permissions listed in |kPermissionType|. bool PageInfo::ShouldShowPermission( const PageInfo::PermissionInfo& info) const { @@ -3367,7 +3398,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) { -@@ -1370,7 +1379,19 @@ void PageInfo::PresentSitePermissions() { +@@ -1378,7 +1387,19 @@ void PageInfo::PresentSitePermissions() { HostContentSettingsMap* content_settings = GetContentSettings(); DCHECK(web_contents_); @@ -3413,7 +3444,7 @@ diff --git a/components/page_info/page_info_ui.cc b/components/page_info/page_in switch (type) { case ContentSettingsType::GEOLOCATION: message_id = IDS_PAGE_INFO_STATE_TEXT_LOCATION_ASK; -@@ -630,6 +638,12 @@ PageInfoUI::~PageInfoUI() = default; +@@ -627,6 +635,12 @@ PageInfoUI::~PageInfoUI() = default; // static std::u16string PageInfoUI::PermissionTypeToUIString(ContentSettingsType type) { @@ -3426,7 +3457,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); -@@ -641,6 +655,12 @@ std::u16string PageInfoUI::PermissionTypeToUIString(ContentSettingsType type) { +@@ -637,6 +651,12 @@ std::u16string PageInfoUI::PermissionTypeToUIString(ContentSettingsType type) { // static std::u16string PageInfoUI::PermissionTypeToUIStringMidSentence( ContentSettingsType type) { @@ -3439,7 +3470,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); -@@ -1086,6 +1106,11 @@ bool PageInfoUI::ContentSettingsTypeInPageInfo(ContentSettingsType type) { +@@ -1078,6 +1098,11 @@ bool PageInfoUI::ContentSettingsTypeInPageInfo(ContentSettingsType type) { if (info.type == type) return true; } diff --git a/build/patches/Cromite-Branding--improve-settings-ui.patch b/build/patches/Cromite-Branding--improve-settings-ui.patch index 80b62ac1e..5b8c5c179 100644 --- a/build/patches/Cromite-Branding--improve-settings-ui.patch +++ b/build/patches/Cromite-Branding--improve-settings-ui.patch @@ -18,7 +18,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni --- a/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni -@@ -633,7 +633,7 @@ chrome_java_resources = [ +@@ -634,7 +634,7 @@ chrome_java_resources = [ "java/res/xml/manage_sync_preferences.xml", "java/res/xml/personalize_google_services_preferences.xml", "java/res/xml/incognito_preferences.xml", @@ -245,7 +245,7 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -143,7 +143,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -144,7 +144,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment public void onCreatePreferencesCromite(Bundle savedInstanceState, String rootKey) { mPageTitle.set(getString(R.string.prefs_privacy_security)); @@ -253,7 +253,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting + SettingsUtils.addPreferencesFromResource(this, R.xml.privacy_preferences_cromite); Preference fpProtectionPreference = findPreference(PREF_FP_PROTECTION); - fpProtectionPreference.setVisible(shouldShowFpProtectionUI()); + fpProtectionPreference.setVisible(shouldShowFpProtectionUi()); diff --git a/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Cromite-settings-ui.grdp b/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Cromite-settings-ui.grdp new file mode 100644 --- /dev/null diff --git a/build/patches/Cromite-Branding.patch b/build/patches/Cromite-Branding.patch index 7ab60598d..62c5e2e24 100644 --- a/build/patches/Cromite-Branding.patch +++ b/build/patches/Cromite-Branding.patch @@ -55,9 +55,9 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../chromium/product_logo_white.png | Bin 2512 -> 6790 bytes .../version_ui/resources/about_version.ts | 2 +- .../resources/about_version_mobile.css | 9 ++ - content/child/runtime_features.cc | 23 +++-- + content/child/runtime_features.cc | 24 +++-- tools/grit/grit/grd_reader.py | 35 +++++++ - 53 files changed, 187 insertions(+), 117 deletions(-) + 53 files changed, 187 insertions(+), 118 deletions(-) diff --git a/build/BUILD.gn b/build/BUILD.gn --- a/build/BUILD.gn @@ -80,7 +80,7 @@ diff --git a/build/BUILD.gn b/build/BUILD.gn diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn --- a/build/config/BUILDCONFIG.gn +++ b/build/config/BUILDCONFIG.gn -@@ -183,6 +183,10 @@ declare_args() { +@@ -186,6 +186,10 @@ declare_args() { clang_unsafe_buffers_paths = "" } @@ -9199,7 +9199,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 -@@ -288,7 +288,7 @@ +@@ -283,7 +283,7 @@ Change
@@ -13153,7 +13153,7 @@ e)fqMZZ`3a)Ds&5H @@ -13287,15 +13287,15 @@ diff --git a/chrome/install_static/chromium_install_modes.cc b/chrome/install_st diff --git a/components/browser_ui/strings/android/browser_ui_strings.grd b/components/browser_ui/strings/android/browser_ui_strings.grd --- a/components/browser_ui/strings/android/browser_ui_strings.grd +++ b/components/browser_ui/strings/android/browser_ui_strings.grd -@@ -986,7 +986,7 @@ +@@ -984,7 +984,7 @@ - Accessibility + Accessibility and UI - - Text scaling + + Text scaling set to %1$s100% diff --git a/components/browser_ui/styles/android/java/res_chromium/drawable-hdpi/fre_product_logo.png b/components/browser_ui/styles/android/java/res_chromium/drawable-hdpi/fre_product_logo.png index 2353496bafc8f8559a8fcbf6d609302327dc820c..9d123a8918eea5e93f6139534d7dc01a88c4278f 100644 GIT binary patch @@ -18896,7 +18896,7 @@ EKU(of)Bpeg diff --git a/components/version_ui/resources/about_version.ts b/components/version_ui/resources/about_version.ts --- a/components/version_ui/resources/about_version.ts +++ b/components/version_ui/resources/about_version.ts -@@ -183,7 +183,7 @@ function initialize() { +@@ -220,7 +220,7 @@ function initialize() { // chrome.send('requestVersionInfo'); @@ -19001,12 +19001,13 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. << "AttributionReportingCrossAppWeb cannot be enabled in this " "configuration. Use --" << switches::kEnableFeatures << "=" -@@ -712,7 +711,7 @@ void ResolveInvalidConfigurations() { +@@ -712,8 +711,7 @@ void ResolveInvalidConfigurations() { } if (!base::FeatureList::IsEnabled(blink::features::kInterestGroupStorage)) { -- LOG_IF(WARNING, WebRuntimeFeatures::IsAdInterestGroupAPIEnabled()) -+ CHECK(!WebRuntimeFeatures::IsAdInterestGroupAPIEnabled()) +- LOG_IF(WARNING, +- WebRuntimeFeatures::IsAdInterestGroupAPIEnabledByRuntimeFlag()) ++ CHECK(!WebRuntimeFeatures::IsAdInterestGroupAPIEnabledByRuntimeFlag()) << "AdInterestGroupAPI cannot be enabled in this " "configuration. Use --" << switches::kEnableFeatures << "=" diff --git a/build/patches/Customize-selection-popup.patch b/build/patches/Customize-selection-popup.patch index 9630c63dd..ab5a61913 100644 --- a/build/patches/Customize-selection-popup.patch +++ b/build/patches/Customize-selection-popup.patch @@ -37,7 +37,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionMod diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -752,10 +752,17 @@ public class ChromeTabbedActivity extends ChromeActivity @@ -230,7 +230,7 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil diff --git a/content/public/android/java/src/org/chromium/content/browser/selection/SelectActionMenuHelper.java b/content/public/android/java/src/org/chromium/content/browser/selection/SelectActionMenuHelper.java --- a/content/public/android/java/src/org/chromium/content/browser/selection/SelectActionMenuHelper.java +++ b/content/public/android/java/src/org/chromium/content/browser/selection/SelectActionMenuHelper.java -@@ -29,6 +29,7 @@ import androidx.core.content.ContextCompat; +@@ -28,6 +28,7 @@ import androidx.core.content.ContextCompat; import org.chromium.base.ApiCompatibilityUtils; import org.chromium.base.ContextUtils; import org.chromium.base.Log; @@ -238,7 +238,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select import org.chromium.base.PackageManagerUtils; import org.chromium.base.StrictModeContext; import org.chromium.content.R; -@@ -55,38 +56,84 @@ import java.util.TreeSet; +@@ -54,38 +55,84 @@ import java.util.TreeSet; public class SelectActionMenuHelper { private static final String TAG = "SelectActionMenu"; // 20 char limit. @@ -353,7 +353,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select } @Retention(RetentionPolicy.SOURCE) -@@ -198,7 +245,7 @@ public class SelectActionMenuHelper { +@@ -197,7 +244,7 @@ public class SelectActionMenuHelper { } SelectionMenuGroup primaryAssistGroup = new SelectionMenuGroup( @@ -371,7 +371,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select List menuItemBuilders = new ArrayList<>(); menuItemBuilders.add(cut(delegate.canCut())); menuItemBuilders.add(copy(delegate.canCopy())); -@@ -256,7 +303,7 @@ public class SelectActionMenuHelper { +@@ -254,7 +301,7 @@ public class SelectActionMenuHelper { // menu items if there is selected text. @IdRes int groupId = selectedText.isEmpty() ? Menu.NONE : android.R.id.textAssist; SelectionMenuGroup secondaryAssistItems = @@ -380,7 +380,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select if (selectedText.isEmpty() && selectionActionMenuDelegate != null) { List additionalMenuItems = -@@ -318,7 +365,7 @@ public class SelectActionMenuHelper { +@@ -316,7 +363,7 @@ public class SelectActionMenuHelper { SelectionMenuGroup textProcessingItems = new SelectionMenuGroup( R.id.select_action_menu_text_processing_items, @@ -389,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; -@@ -425,7 +472,7 @@ public class SelectActionMenuHelper { +@@ -422,7 +469,7 @@ public class SelectActionMenuHelper { .setId(R.id.select_action_menu_cut) .setIconAttr(android.R.attr.actionModeCutDrawable) .setAlphabeticShortcut(ItemKeyShortcuts.CUT) @@ -398,7 +398,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select .setShowAsActionFlags( MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT) .setIsEnabled(isEnabled) -@@ -437,7 +484,7 @@ public class SelectActionMenuHelper { +@@ -434,7 +481,7 @@ public class SelectActionMenuHelper { .setId(R.id.select_action_menu_copy) .setIconAttr(android.R.attr.actionModeCopyDrawable) .setAlphabeticShortcut(ItemKeyShortcuts.COPY) @@ -407,7 +407,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select .setShowAsActionFlags( MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT) .setIsEnabled(isEnabled) -@@ -449,7 +496,7 @@ public class SelectActionMenuHelper { +@@ -446,7 +493,7 @@ public class SelectActionMenuHelper { .setId(R.id.select_action_menu_paste) .setIconAttr(android.R.attr.actionModePasteDrawable) .setAlphabeticShortcut(ItemKeyShortcuts.PASTE) @@ -416,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) -@@ -463,7 +510,7 @@ public class SelectActionMenuHelper { +@@ -460,7 +507,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) @@ -425,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) -@@ -475,7 +522,7 @@ public class SelectActionMenuHelper { +@@ -472,7 +519,7 @@ public class SelectActionMenuHelper { .setId(R.id.select_action_menu_select_all) .setIconAttr(android.R.attr.actionModeSelectAllDrawable) .setAlphabeticShortcut(ItemKeyShortcuts.SELECT_ALL) @@ -434,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) -@@ -488,7 +535,7 @@ public class SelectActionMenuHelper { +@@ -484,7 +531,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) @@ -443,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); -@@ -508,7 +555,7 @@ public class SelectActionMenuHelper { +@@ -504,7 +551,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/Dictionary-suggestions-for-the-Omnibox.patch b/build/patches/Dictionary-suggestions-for-the-Omnibox.patch index 9c93eea9b..b1a92dcc5 100644 --- a/build/patches/Dictionary-suggestions-for-the-Omnibox.patch +++ b/build/patches/Dictionary-suggestions-for-the-Omnibox.patch @@ -10,9 +10,9 @@ Original License: BSD-3-Clause - https://spdx.org/licenses/BSD-3-Clause.html License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- chrome/android/java/res/layout/url_bar.xml | 1 + - .../browser/omnibox/LocationBarMediator.java | 13 +++++++++-- - .../chrome/browser/omnibox/UrlBar.java | 23 +++++++++++++++++++ - 3 files changed, 35 insertions(+), 2 deletions(-) + .../browser/omnibox/LocationBarMediator.java | 13 ++++++++-- + .../chrome/browser/omnibox/UrlBar.java | 24 +++++++++++++++++++ + 3 files changed, 36 insertions(+), 2 deletions(-) diff --git a/chrome/android/java/res/layout/url_bar.xml b/chrome/android/java/res/layout/url_bar.xml --- a/chrome/android/java/res/layout/url_bar.xml @@ -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 -@@ -288,8 +288,17 @@ class LocationBarMediator +@@ -289,8 +289,17 @@ class LocationBarMediator if (mNativeInitialized) RecordUserAction.record("FocusLocation"); boolean shouldRetainOmniboxOnFocus = OmniboxFeatures.shouldRetainOmniboxOnFocus(); if (!mUrlFocusedWithPastedText && !shouldRetainOmniboxOnFocus) { @@ -58,18 +58,19 @@ 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; -@@ -114,6 +115,7 @@ public class UrlBar extends AutocompleteEditText { +@@ -107,6 +108,7 @@ public class UrlBar extends AutocompleteEditText { private boolean mAllowFocus = true; - private boolean mTypingStartedEventSent; + private boolean mShouldSendTypingStartedEvent; + private boolean mPendingSelectAll; private boolean mPendingScroll; // Captures the current intended text scroll type. -@@ -355,6 +357,27 @@ public class UrlBar extends AutocompleteEditText { - mPendingScroll = false; - } +@@ -332,6 +334,28 @@ public class UrlBar extends AutocompleteEditText { fixupTextDirection(); + + mShouldSendTypingStartedEvent = focused; ++ + if (mPendingSelectAll) { + UrlBar sender = this; + new Handler().post(new Runnable() { diff --git a/build/patches/Disable-Accessibility-service-by-default.patch b/build/patches/Disable-Accessibility-service-by-default.patch index 0be6dca07..df0e1d351 100644 --- a/build/patches/Disable-Accessibility-service-by-default.patch +++ b/build/patches/Disable-Accessibility-service-by-default.patch @@ -36,13 +36,13 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil + android:summary="@string/enable_accessibility_summary" + android:title="@string/enable_accessibility_title" /> + - diff --git a/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java b/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java --- a/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java +++ b/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java -@@ -1080,6 +1080,11 @@ public class WebContentsAccessibilityImpl extends AccessibilityNodeProviderCompa +@@ -1079,6 +1079,11 @@ public class WebContentsAccessibilityImpl extends AccessibilityNodeProviderCompa structure.setChildCount(0); return; } diff --git a/build/patches/Disable-CSS-blink-feature-support.patch b/build/patches/Disable-CSS-blink-feature-support.patch index 8852f04d3..57f3c74cf 100644 --- a/build/patches/Disable-CSS-blink-feature-support.patch +++ b/build/patches/Disable-CSS-blink-feature-support.patch @@ -16,7 +16,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/css/parser/css_supports_parser.cc b/third_party/blink/renderer/core/css/parser/css_supports_parser.cc --- a/third_party/blink/renderer/core/css/parser/css_supports_parser.cc +++ b/third_party/blink/renderer/core/css/parser/css_supports_parser.cc -@@ -227,7 +227,7 @@ bool CSSSupportsParser::ConsumeBlinkFeatureFn(CSSParserTokenStream& stream) { +@@ -389,7 +389,7 @@ bool CSSSupportsParser::ConsumeBlinkFeatureFn(CSSParserTokenStream& stream) { feature_name.Value().Utf8()) && guard.Release()) { stream.ConsumeWhitespace(); @@ -28,12 +28,12 @@ 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 -@@ -585,7 +585,7 @@ DocumentRulePredicate* DocumentRulePredicate::Parse( - HeapVector> selectors; +@@ -586,7 +586,7 @@ DocumentRulePredicate* DocumentRulePredicate::Parse( HeapVector arena; CSSPropertyValueSet* empty_properties = -- ImmutableCSSPropertyValueSet::Create(nullptr, 0, kUASheetMode); -+ ImmutableCSSPropertyValueSet::Create(nullptr, 0, kHTMLStandardMode); + ImmutableCSSPropertyValueSet::Create(base::span(), +- kUASheetMode); ++ kHTMLStandardMode); CSSParserContext* css_parser_context = MakeGarbageCollected(*execution_context); for (auto* raw_selector : raw_selectors) { diff --git a/build/patches/Disable-Component-Updates.patch b/build/patches/Disable-Component-Updates.patch index 5b564e622..c6aba440f 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 -@@ -106,6 +106,7 @@ +@@ -107,6 +107,7 @@ namespace component_updater { void RegisterComponentsForUpdate() { @@ -34,7 +34,7 @@ diff --git a/components/component_updater/component_installer.cc b/components/co diff --git a/components/component_updater/component_updater_service.cc b/components/component_updater/component_updater_service.cc --- a/components/component_updater/component_updater_service.cc +++ b/components/component_updater/component_updater_service.cc -@@ -541,14 +541,8 @@ std::unique_ptr ComponentUpdateServiceFactory( +@@ -542,14 +542,8 @@ std::unique_ptr ComponentUpdateServiceFactory( // Register prefs required by the component update service. void RegisterComponentUpdateServicePrefs(PrefRegistrySimple* registry) { diff --git a/build/patches/Disable-Compose-feature.patch b/build/patches/Disable-Compose-feature.patch index 39e92419a..6f7935ad0 100644 --- a/build/patches/Disable-Compose-feature.patch +++ b/build/patches/Disable-Compose-feature.patch @@ -13,7 +13,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -8389,6 +8389,12 @@ static_library("browser") { +@@ -8407,6 +8407,12 @@ static_library("browser") { deps += [ "//components/segmentation_platform/internal:optimization_guide_segmentation_handler" ] } @@ -26,7 +26,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn if (enable_compose) { sources += [ "compose/chrome_compose_client.cc", -@@ -8404,7 +8410,6 @@ static_library("browser") { +@@ -8422,7 +8428,6 @@ static_library("browser") { ] deps += [ @@ -34,7 +34,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "//chrome/common/compose", "//chrome/common/compose:mojo_bindings", "//components/autofill/content/browser:browser", -@@ -8845,7 +8850,7 @@ source_set("font_pref") { +@@ -8869,7 +8874,7 @@ source_set("font_pref") { deps = [ "//chrome/common" ] } @@ -46,19 +46,19 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/ui/webui/settings/settings_ui.cc b/chrome/browser/ui/webui/settings/settings_ui.cc --- a/chrome/browser/ui/webui/settings/settings_ui.cc +++ b/chrome/browser/ui/webui/settings/settings_ui.cc -@@ -586,7 +586,7 @@ SettingsUI::SettingsUI(content::WebUI* web_ui) - optimization_guide::features::kAiSettingsPageRefresh); +@@ -389,7 +389,7 @@ SettingsUI::SettingsUI(content::WebUI* web_ui) + base::FeatureList::IsEnabled(features::kLinkedServicesSetting)); - if (ai_settings_refresh_enabled) { -- const bool compose_enabled = ComposeEnabling::IsEnabledForProfile(profile); -+ const bool compose_enabled = false; - const bool tab_organization_enabled = - TabOrganizationUtils::GetInstance()->IsEnabled(profile); - const bool wallpaper_search_enabled = + #if BUILDFLAG(ENABLE_COMPOSE) +- const bool compose_enabled = ComposeEnabling::IsEnabledForProfile(profile); ++ const bool compose_enabled = false; + #else + const bool compose_enabled = false; + #endif // BUILDFLAG(ENABLE_COMPOSE) 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 -@@ -108,4 +108,6 @@ BASE_FEATURE(kComposeUpfrontInputModes, +@@ -104,4 +104,6 @@ BASE_FEATURE(kComposeUpfrontInputModes, "ComposeUpfrontInputModes", base::FEATURE_DISABLED_BY_DEFAULT); diff --git a/build/patches/Disable-Compression-Dictionary-Transport.patch b/build/patches/Disable-Compression-Dictionary-Transport.patch index d1f404c73..cfabf4a0e 100644 --- a/build/patches/Disable-Compression-Dictionary-Transport.patch +++ b/build/patches/Disable-Compression-Dictionary-Transport.patch @@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -807,12 +807,14 @@ +@@ -809,12 +809,14 @@ } }, { diff --git a/build/patches/Disable-FedCm.patch b/build/patches/Disable-FedCm.patch index ead87e990..29d3acea9 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 -@@ -1782,7 +1782,7 @@ +@@ -1795,7 +1795,7 @@ { name: "FedCm", public: true, diff --git a/build/patches/Disable-GSA-by-default.patch b/build/patches/Disable-GSA-by-default.patch index ba3c6ccd7..fded50057 100644 --- a/build/patches/Disable-GSA-by-default.patch +++ b/build/patches/Disable-GSA-by-default.patch @@ -15,7 +15,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java --- a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java -@@ -41,7 +41,6 @@ import org.chromium.chrome.browser.document.ChromeLauncherActivity; +@@ -44,7 +44,6 @@ import org.chromium.chrome.browser.document.ChromeLauncherActivity; import org.chromium.chrome.browser.externalnav.IntentWithRequestMetadataHandler; import org.chromium.chrome.browser.externalnav.IntentWithRequestMetadataHandler.RequestMetadata; import org.chromium.chrome.browser.flags.ChromeFeatureList; @@ -23,9 +23,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.j import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteCoordinator; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.ProfileManager; -@@ -256,9 +255,6 @@ public class IntentHandler { - public static final String EXTRA_APP_SPECIFIC_HISTORY = - "org.chromium.chrome.browser.app_specific_history"; +@@ -262,9 +261,6 @@ public class IntentHandler { + public static final String EXTRA_SKIP_PRECONNECT = + "org.chromium.chrome.browser.skip_preconnect"; - /** The package name for the Google Search App. */ - public static final String PACKAGE_GSA = GSAUtils.GSA_PACKAGE_NAME; @@ -33,7 +33,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.j private static Pair sPendingReferrer; private static int sReferrerId; private static String sPendingIncognitoUrl; -@@ -524,8 +520,6 @@ public class IntentHandler { +@@ -526,8 +522,6 @@ public class IntentHandler { return ExternalAppId.LINE; } else if (packageName.equals(PACKAGE_WHATSAPP)) { return ExternalAppId.WHATSAPP; @@ -66,15 +66,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/share/LensUtils } } -@@ -93,15 +87,11 @@ public class LensUtils { +@@ -92,15 +86,11 @@ public class LensUtils { * @return Whether the package is valid. */ - public static boolean isValidAgsaPackage(final ExternalAuthUtils externalAuthUtils) { + public static boolean isValidAgsaPackage() { - if (sFakePassableLensEnvironmentForTesting) { - return true; - } - -- return externalAuthUtils.isGoogleSigned(IntentHandler.PACKAGE_GSA); +- return ExternalAuthUtils.getInstance().isGoogleSigned(IntentHandler.PACKAGE_GSA); + return false; } diff --git a/build/patches/Disable-GetInstalledRelatedApps-API.patch b/build/patches/Disable-GetInstalledRelatedApps-API.patch index def106976..89c47c202 100644 --- a/build/patches/Disable-GetInstalledRelatedApps-API.patch +++ b/build/patches/Disable-GetInstalledRelatedApps-API.patch @@ -8,8 +8,8 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../browser/installedapp/installed_app_provider_impl.cc | 2 +- .../features_cc/Disable-GetInstalledRelatedApps-API.inc | 7 +++++++ .../Disable-GetInstalledRelatedApps-API.inc | 2 ++ - .../blink/renderer/platform/runtime_enabled_features.json5 | 2 +- - 5 files changed, 12 insertions(+), 2 deletions(-) + .../blink/renderer/platform/runtime_enabled_features.json5 | 3 +-- + 5 files changed, 12 insertions(+), 3 deletions(-) create mode 100644 cromite_flags/content/common/features_cc/Disable-GetInstalledRelatedApps-API.inc create mode 100644 cromite_flags/content/public/common/content_features_cc/Disable-GetInstalledRelatedApps-API.inc @@ -58,12 +58,12 @@ 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 -@@ -2455,9 +2455,9 @@ - status: {"Android": "test", "default": "stable"}, +@@ -2458,9 +2458,8 @@ + name: "InspectorGhostRules", }, { -+ // disable GetInstalledRelatedApps - name: "InstalledApp", +- name: "InstalledApp", ++ name: "InstalledApp", // disable GetInstalledRelatedApps public: true, - status: "stable", base_feature: "none", diff --git a/build/patches/Disable-PrivacyGuide.patch b/build/patches/Disable-PrivacyGuide.patch index 1f50879d3..8725ae1d5 100644 --- a/build/patches/Disable-PrivacyGuide.patch +++ b/build/patches/Disable-PrivacyGuide.patch @@ -4,11 +4,9 @@ Subject: Disable PrivacyGuide License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - chrome/android/java/res/xml/privacy_preferences.xml | 1 + - chrome/browser/ui/webui/settings/settings_ui.cc | 3 +-- - .../common/chrome_features_cc/Disable-PrivacyGuide.inc | 6 ++++++ - 3 files changed, 8 insertions(+), 2 deletions(-) - create mode 100644 cromite_flags/chrome/common/chrome_features_cc/Disable-PrivacyGuide.inc + chrome/android/java/res/xml/privacy_preferences.xml | 1 + + chrome/browser/ui/webui/settings/settings_ui.cc | 3 +-- + 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml @@ -24,8 +22,8 @@ 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 -@@ -363,8 +363,7 @@ SettingsUI::SettingsUI(content::WebUI* web_ui) - #endif // !BUILDFLAG(IS_CHROMEOS_LACROS) +@@ -354,8 +354,7 @@ SettingsUI::SettingsUI(content::WebUI* web_ui) + #endif // BUILDFLAG(IS_CHROMEOS_ASH) bool show_privacy_guide = - base::FeatureList::IsEnabled(features::kPrivacyGuideForceAvailable) || @@ -34,15 +32,4 @@ diff --git a/chrome/browser/ui/webui/settings/settings_ui.cc b/chrome/browser/ui html_source->AddBoolean("showPrivacyGuide", show_privacy_guide); html_source->AddBoolean( -diff --git a/cromite_flags/chrome/common/chrome_features_cc/Disable-PrivacyGuide.inc b/cromite_flags/chrome/common/chrome_features_cc/Disable-PrivacyGuide.inc -new file mode 100644 ---- /dev/null -+++ b/cromite_flags/chrome/common/chrome_features_cc/Disable-PrivacyGuide.inc -@@ -0,0 +1,6 @@ -+#if BUILDFLAG(IS_ANDROID) -+ -+SET_CROMITE_FEATURE_DISABLED(kPrivacyGuideAndroid3); -+SET_CROMITE_FEATURE_DISABLED(kPrivacyGuidePreloadAndroid); -+ -+#endif -- diff --git a/build/patches/Disable-Real-Box.patch b/build/patches/Disable-Real-Box.patch index c61b7d6f7..5dc781cc8 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 -@@ -2327,7 +2327,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -2289,7 +2289,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, registry->RegisterBooleanPref( prefs::kLensRegionSearchEnabled, true, user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); @@ -43,7 +43,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 -@@ -459,6 +459,7 @@ void SearchboxHandler::SetupWebUIDataSource(content::WebUIDataSource* source, +@@ -420,6 +420,7 @@ void SearchboxHandler::SetupWebUIDataSource(content::WebUIDataSource* source, Profile* profile, bool enable_voice_search, bool enable_lens_search) { @@ -54,7 +54,7 @@ diff --git a/chrome/browser/ui/webui/searchbox/searchbox_handler.cc b/chrome/bro diff --git a/components/search/ntp_features.cc b/components/search/ntp_features.cc --- a/components/search/ntp_features.cc +++ b/components/search/ntp_features.cc -@@ -118,7 +118,7 @@ BASE_FEATURE(kNtpDriveModuleShowSixFiles, +@@ -126,7 +126,7 @@ BASE_FEATURE(kNtpDriveModuleShowSixFiles, // If enabled, logo will be shown. // This is a kill switch. Keep indefinitely. @@ -63,7 +63,7 @@ diff --git a/components/search/ntp_features.cc b/components/search/ntp_features. // If enabled, middle slot promo will be shown. // This is a kill switch. Keep indefinitely. -@@ -186,8 +186,8 @@ BASE_FEATURE(kNtpModulesRedesigned, +@@ -189,8 +189,8 @@ BASE_FEATURE(kNtpModulesRedesigned, // If enabled, OneGoogleBar will be shown. // This is a kill switch. Keep indefinitely. BASE_FEATURE(kNtpOneGoogleBar, diff --git a/build/patches/Disable-TLS-resumption.patch b/build/patches/Disable-TLS-resumption.patch index 40fc24e39..ba73f9c46 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 -@@ -82,6 +82,7 @@ +@@ -84,6 +84,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" -@@ -248,6 +249,38 @@ void LogUsingExistingSession(const NetLogWithSource& request_net_log, +@@ -250,6 +251,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() { -@@ -2094,7 +2127,7 @@ QuicSessionPool::CreateCryptoConfigHandle( +@@ -2122,7 +2155,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 -@@ -284,7 +284,33 @@ SSLClientSocketImpl::SSLClientSocketImpl( +@@ -283,7 +283,33 @@ SSLClientSocketImpl::SSLClientSocketImpl( CHECK(context_); } @@ -183,7 +183,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket Disconnect(); } -@@ -672,6 +698,8 @@ int SSLClientSocketImpl::Init() { +@@ -670,6 +696,8 @@ int SSLClientSocketImpl::Init() { } if (session) SSL_set_session(ssl_.get(), session.get()); @@ -192,7 +192,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket } transport_adapter_ = std::make_unique( -@@ -958,6 +986,35 @@ int SSLClientSocketImpl::DoHandshakeComplete(int result) { +@@ -956,6 +984,35 @@ int SSLClientSocketImpl::DoHandshakeComplete(int result) { : SSLHandshakeDetails::kTLS13Full; } } diff --git a/build/patches/Disable-WebGPU.patch b/build/patches/Disable-WebGPU.patch index 8877ee6ce..023d38b55 100644 --- a/build/patches/Disable-WebGPU.patch +++ b/build/patches/Disable-WebGPU.patch @@ -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 -@@ -234,7 +234,7 @@ BASE_FEATURE(kEnableDrDc, +@@ -253,7 +253,7 @@ BASE_FEATURE(kEnableDrDc, // enabled by default on supported platforms. #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS) || \ BUILDFLAG(IS_ANDROID) @@ -36,7 +36,7 @@ diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc diff --git a/third_party/blink/renderer/modules/webgpu/gpu.cc b/third_party/blink/renderer/modules/webgpu/gpu.cc --- a/third_party/blink/renderer/modules/webgpu/gpu.cc +++ b/third_party/blink/renderer/modules/webgpu/gpu.cc -@@ -389,6 +389,7 @@ ScriptPromise> GPU::requestAdapter( +@@ -401,6 +401,7 @@ ScriptPromise> GPU::requestAdapter( "WebGPU is experimental on this platform. See " "https://github.com/gpuweb/gpuweb/wiki/" "Implementation-Status#implementation-status")); diff --git a/build/patches/Disable-all-predictors-code.patch b/build/patches/Disable-all-predictors-code.patch index 2dac667ca..f116cd90e 100644 --- a/build/patches/Disable-all-predictors-code.patch +++ b/build/patches/Disable-all-predictors-code.patch @@ -5,7 +5,7 @@ Subject: Disable all predictors code 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/BUILD.gn | 2 -- + chrome/browser/BUILD.gn | 3 --- .../preloading_model_keyed_service.cc | 3 +++ .../preloading_model_keyed_service_factory.cc | 4 +--- .../optimization_guide/chrome_hints_manager.cc | 1 + @@ -14,12 +14,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../predictors/autocomplete_action_predictor.cc | 2 ++ .../predictors/loading_predictor_config.cc | 4 ++-- chrome/browser/predictors/predictors_features.cc | 3 +-- + chrome/browser/safe_browsing/BUILD.gn | 1 - + ...ification_content_detection_service_factory.cc | 5 +++++ chrome/browser/ui/tab_helpers.cc | 1 - .../ui/webui/omnibox/omnibox_page_handler.cc | 2 ++ - .../accessibility/read_aloud_app_model.cc | 8 ++++++++ - .../renderer/accessibility/read_aloud_app_model.h | 7 +++++++ - .../accessibility/read_anything_app_controller.cc | 12 ++++++++++++ - .../accessibility/read_anything_app_controller.h | 4 ++++ + .../read_anything/read_aloud_app_model.cc | 8 ++++++++ + .../read_anything/read_aloud_app_model.h | 7 +++++++ + .../read_anything/read_anything_app_controller.cc | 12 ++++++++++++ + .../read_anything/read_anything_app_controller.h | 4 ++++ chrome/utility/BUILD.gn | 2 +- chrome/utility/services.cc | 8 -------- .../core/browser/autofill_optimization_guide.cc | 5 +++-- @@ -31,6 +33,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../core/prediction_model_fetcher_impl.cc | 1 + components/optimization_guide/features.gni | 3 +-- .../core/page_content_annotations_features.cc | 5 +++++ + components/safe_browsing/core/common/features.cc | 1 + .../Disable-all-predictors-code.inc | 3 +++ .../Disable-all-predictors-code.inc | 1 + .../Disable-all-predictors-code.inc | 1 + @@ -40,7 +43,7 @@ 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 +- - 35 files changed, 96 insertions(+), 35 deletions(-) + 38 files changed, 102 insertions(+), 37 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 @@ -51,7 +54,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 -@@ -759,8 +759,6 @@ static_library("browser") { +@@ -760,8 +760,6 @@ static_library("browser") { "navigation_predictor/navigation_predictor_keyed_service_factory.h", "navigation_predictor/navigation_predictor_metrics_document_data.cc", "navigation_predictor/navigation_predictor_metrics_document_data.h", @@ -60,6 +63,14 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "navigation_predictor/preloading_model_keyed_service.cc", "navigation_predictor/preloading_model_keyed_service.h", "navigation_predictor/preloading_model_keyed_service_factory.cc", +@@ -2242,7 +2240,6 @@ static_library("browser") { + "//components/safe_browsing/content/browser", + "//components/safe_browsing/content/browser:client_side_detection", + "//components/safe_browsing/content/browser:safe_browsing_service", +- "//components/safe_browsing/content/browser/notification_content_detection", + "//components/safe_browsing/content/browser/password_protection", + "//components/safe_browsing/content/browser/web_ui", + "//components/safe_browsing/core/browser", diff --git a/chrome/browser/navigation_predictor/preloading_model_keyed_service.cc b/chrome/browser/navigation_predictor/preloading_model_keyed_service.cc --- a/chrome/browser/navigation_predictor/preloading_model_keyed_service.cc +++ b/chrome/browser/navigation_predictor/preloading_model_keyed_service.cc @@ -163,7 +174,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 -@@ -564,7 +564,6 @@ void OptimizationGuideKeyedService::RemoveObserverForOptimizationTargetModel( +@@ -497,7 +497,6 @@ void OptimizationGuideKeyedService::RemoveObserverForOptimizationTargetModel( void OptimizationGuideKeyedService::RegisterOptimizationTypes( const std::vector& optimization_types) { @@ -210,10 +221,50 @@ diff --git a/chrome/browser/predictors/predictors_features.cc b/chrome/browser/p } // namespace +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 +@@ -51,7 +51,6 @@ static_library("safe_browsing") { + "//components/safe_browsing/content/browser", + "//components/safe_browsing/content/browser:client_side_detection", + "//components/safe_browsing/content/browser:client_side_detection_service", +- "//components/safe_browsing/content/browser/notification_content_detection:notification_content_detection", + "//components/safe_browsing/content/browser/triggers:suspicious_site_trigger", + "//components/safe_browsing/content/browser/web_ui", + "//components/safe_browsing/core/browser", +diff --git a/chrome/browser/safe_browsing/notification_content_detection_service_factory.cc b/chrome/browser/safe_browsing/notification_content_detection_service_factory.cc +--- a/chrome/browser/safe_browsing/notification_content_detection_service_factory.cc ++++ b/chrome/browser/safe_browsing/notification_content_detection_service_factory.cc +@@ -14,6 +14,7 @@ + #include "components/safe_browsing/content/browser/notification_content_detection/notification_content_detection_service.h" + #include "components/safe_browsing/core/browser/db/database_manager.h" + #include "components/safe_browsing/core/common/features.h" ++#include "components/optimization_guide/machine_learning_tflite_buildflags.h" + #include "content/public/browser/browser_context.h" + + namespace safe_browsing { +@@ -63,6 +64,7 @@ std::unique_ptr NotificationContentDetectionServiceFactory:: + return nullptr; + } + ++#if BUILDFLAG(BUILD_WITH_TFLITE_LIB) + auto database_manager = + g_browser_process->safe_browsing_service()->database_manager(); + scoped_refptr background_task_runner = +@@ -70,6 +72,9 @@ std::unique_ptr NotificationContentDetectionServiceFactory:: + {base::MayBlock(), base::TaskPriority::BEST_EFFORT}); + return std::make_unique( + opt_guide, background_task_runner, database_manager, context); ++#else ++ return nullptr; ++#endif + } + + } // namespace safe_browsing 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 -@@ -444,7 +444,6 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -439,7 +439,6 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { } MixedContentSettingsTabHelper::CreateForWebContents(web_contents); NavigationMetricsRecorder::CreateForWebContents(web_contents); @@ -234,9 +285,9 @@ diff --git a/chrome/browser/ui/webui/omnibox/omnibox_page_handler.cc b/chrome/br #include "components/optimization_guide/machine_learning_tflite_buildflags.h" #include "components/search_engines/template_url.h" #include "content/public/browser/web_ui.h" -diff --git a/chrome/renderer/accessibility/read_aloud_app_model.cc b/chrome/renderer/accessibility/read_aloud_app_model.cc ---- a/chrome/renderer/accessibility/read_aloud_app_model.cc -+++ b/chrome/renderer/accessibility/read_aloud_app_model.cc +diff --git a/chrome/renderer/accessibility/read_anything/read_aloud_app_model.cc b/chrome/renderer/accessibility/read_anything/read_aloud_app_model.cc +--- a/chrome/renderer/accessibility/read_anything/read_aloud_app_model.cc ++++ b/chrome/renderer/accessibility/read_anything/read_aloud_app_model.cc @@ -6,7 +6,9 @@ #include "base/strings/utf_string_conversions.h" @@ -289,18 +340,18 @@ diff --git a/chrome/renderer/accessibility/read_aloud_app_model.cc b/chrome/rend // TODO(crbug.com/40927698): Update to use AXRange to better handle multiple // nodes. This may require updating GetText in ax_range.h to return AXNodeIds. -diff --git a/chrome/renderer/accessibility/read_aloud_app_model.h b/chrome/renderer/accessibility/read_aloud_app_model.h ---- a/chrome/renderer/accessibility/read_aloud_app_model.h -+++ b/chrome/renderer/accessibility/read_aloud_app_model.h +diff --git a/chrome/renderer/accessibility/read_anything/read_aloud_app_model.h b/chrome/renderer/accessibility/read_anything/read_aloud_app_model.h +--- a/chrome/renderer/accessibility/read_anything/read_aloud_app_model.h ++++ b/chrome/renderer/accessibility/read_anything/read_aloud_app_model.h @@ -9,7 +9,10 @@ #include "base/values.h" - #include "chrome/common/accessibility/read_anything.mojom.h" - #include "chrome/common/accessibility/read_anything_constants.h" + #include "chrome/common/read_anything/read_anything.mojom.h" + #include "chrome/common/read_anything/read_anything_constants.h" +#include "components/optimization_guide/machine_learning_tflite_buildflags.h" +#if BUILDFLAG(BUILD_WITH_TFLITE_LIB) #include "chrome/renderer/accessibility/phrase_segmentation/dependency_parser_model.h" +#endif - #include "chrome/renderer/accessibility/read_aloud_traversal_utils.h" + #include "chrome/renderer/accessibility/read_anything/read_aloud_traversal_utils.h" #include "ui/accessibility/ax_node_position.h" @@ -87,7 +90,9 @@ class ReadAloudAppModel { @@ -325,20 +376,20 @@ diff --git a/chrome/renderer/accessibility/read_aloud_app_model.h b/chrome/rende // Whether Read Aloud speech is currently playing or not. bool speech_playing_ = false; -diff --git a/chrome/renderer/accessibility/read_anything_app_controller.cc b/chrome/renderer/accessibility/read_anything_app_controller.cc ---- a/chrome/renderer/accessibility/read_anything_app_controller.cc -+++ b/chrome/renderer/accessibility/read_anything_app_controller.cc +diff --git a/chrome/renderer/accessibility/read_anything/read_anything_app_controller.cc b/chrome/renderer/accessibility/read_anything/read_anything_app_controller.cc +--- a/chrome/renderer/accessibility/read_anything/read_anything_app_controller.cc ++++ b/chrome/renderer/accessibility/read_anything/read_anything_app_controller.cc @@ -21,7 +21,9 @@ #include "base/strings/utf_string_conversions.h" - #include "chrome/common/accessibility/read_anything_constants.h" + #include "chrome/common/read_anything/read_anything_constants.h" #include "chrome/renderer/accessibility/ax_tree_distiller.h" +#if BUILDFLAG(BUILD_WITH_TFLITE_LIB) #include "chrome/renderer/accessibility/phrase_segmentation/dependency_parser_model.h" +#endif - #include "chrome/renderer/accessibility/read_aloud_traversal_utils.h" - #include "chrome/renderer/accessibility/read_anything_node_utils.h" + #include "chrome/renderer/accessibility/read_anything/read_aloud_traversal_utils.h" + #include "chrome/renderer/accessibility/read_anything/read_anything_node_utils.h" #include "components/language/core/common/locale_util.h" -@@ -364,11 +366,13 @@ SkBitmap CorrectColorOfBitMap(SkBitmap& originalBitmap) { +@@ -363,11 +365,13 @@ SkBitmap CorrectColorOfBitMap(SkBitmap& originalBitmap) { return converted; } @@ -352,7 +403,7 @@ diff --git a/chrome/renderer/accessibility/read_anything_app_controller.cc b/chr } // namespace -@@ -1474,6 +1478,7 @@ void ReadAnythingAppController::OnConnected() { +@@ -1457,6 +1461,7 @@ void ReadAnythingAppController::OnConnected() { render_frame()->GetBrowserInterfaceBroker().GetInterface( std::move(page_handler_factory_receiver)); @@ -360,7 +411,7 @@ diff --git a/chrome/renderer/accessibility/read_anything_app_controller.cc b/chr // Get the dependency parser model used by phrase-based highlighting. DependencyParserModel& dependency_parser_model = GetDependencyParserModel(); if (dependency_parser_model.IsAvailable()) { -@@ -1483,6 +1488,7 @@ void ReadAnythingAppController::OnConnected() { +@@ -1466,6 +1471,7 @@ void ReadAnythingAppController::OnConnected() { page_handler_->GetDependencyParserModel( base::BindOnce(&ReadAnythingAppController::UpdateDependencyParserModel, weak_ptr_factory_.GetWeakPtr())); @@ -368,7 +419,7 @@ diff --git a/chrome/renderer/accessibility/read_anything_app_controller.cc b/chr } void ReadAnythingAppController::OnCopy() const { -@@ -1692,6 +1698,7 @@ std::vector ReadAnythingAppController::GetCurrentText() { +@@ -1675,6 +1681,7 @@ std::vector ReadAnythingAppController::GetCurrentText() { } void ReadAnythingAppController::PreprocessTextForSpeech() { @@ -376,7 +427,7 @@ diff --git a/chrome/renderer/accessibility/read_anything_app_controller.cc b/chr const std::set* node_ids = model_.selection_node_ids().empty() ? &model_.display_node_ids() : &model_.selection_node_ids(); -@@ -1701,6 +1708,7 @@ void ReadAnythingAppController::PreprocessTextForSpeech() { +@@ -1684,6 +1691,7 @@ void ReadAnythingAppController::PreprocessTextForSpeech() { DependencyParserModel& model = GetDependencyParserModel(); read_aloud_model_.PreprocessPhrasesForText(model); } @@ -384,7 +435,7 @@ diff --git a/chrome/renderer/accessibility/read_anything_app_controller.cc b/chr } void ReadAnythingAppController::MovePositionToNextGranularity() { -@@ -1874,14 +1882,18 @@ bool ReadAnythingAppController::IsDocsLoadMoreButtonVisible() const { +@@ -1857,14 +1865,18 @@ bool ReadAnythingAppController::IsDocsLoadMoreButtonVisible() const { void ReadAnythingAppController::UpdateDependencyParserModel( base::File model_file) { @@ -403,10 +454,10 @@ diff --git a/chrome/renderer/accessibility/read_anything_app_controller.cc b/chr void ReadAnythingAppController::OnTreeAdded(ui::AXTree* tree) { auto observation = -diff --git a/chrome/renderer/accessibility/read_anything_app_controller.h b/chrome/renderer/accessibility/read_anything_app_controller.h ---- a/chrome/renderer/accessibility/read_anything_app_controller.h -+++ b/chrome/renderer/accessibility/read_anything_app_controller.h -@@ -47,7 +47,9 @@ class MojoUkmRecorder; +diff --git a/chrome/renderer/accessibility/read_anything/read_anything_app_controller.h b/chrome/renderer/accessibility/read_anything/read_anything_app_controller.h +--- a/chrome/renderer/accessibility/read_anything/read_anything_app_controller.h ++++ b/chrome/renderer/accessibility/read_anything/read_anything_app_controller.h +@@ -46,7 +46,9 @@ class MojoUkmRecorder; } // namespace ukm class AXTreeDistiller; @@ -441,7 +492,7 @@ diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn diff --git a/chrome/utility/services.cc b/chrome/utility/services.cc --- a/chrome/utility/services.cc +++ b/chrome/utility/services.cc -@@ -246,13 +246,6 @@ auto RunMirroringService( +@@ -243,13 +243,6 @@ auto RunMirroringService( std::move(receiver), content::UtilityThread::Get()->GetIOTaskRunner()); } @@ -455,7 +506,7 @@ diff --git a/chrome/utility/services.cc b/chrome/utility/services.cc #endif // !BUILDFLAG(IS_ANDROID) #if BUILDFLAG(ENABLE_BROWSER_SPEECH_SERVICE) -@@ -459,7 +452,6 @@ void RegisterMainThreadServices(mojo::ServiceFactory& services) { +@@ -466,7 +459,6 @@ void RegisterMainThreadServices(mojo::ServiceFactory& services) { #if !BUILDFLAG(IS_ANDROID) services.Add(RunProfileImporter); services.Add(RunMirroringService); @@ -466,7 +517,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 -@@ -209,6 +209,7 @@ void AutofillOptimizationGuide::OnDidParseForm( +@@ -208,6 +208,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`. @@ -474,7 +525,7 @@ diff --git a/components/autofill/core/browser/autofill_optimization_guide.cc b/c decider_->RegisterOptimizationTypes( std::vector( std::move(optimization_types).extract())); -@@ -260,7 +261,7 @@ bool AutofillOptimizationGuide::ShouldBlockSingleFieldSuggestions( +@@ -259,7 +260,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`. @@ -483,7 +534,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, -@@ -286,7 +287,7 @@ bool AutofillOptimizationGuide::ShouldBlockFormFieldSuggestion( +@@ -285,7 +286,7 @@ bool AutofillOptimizationGuide::ShouldBlockFormFieldSuggestion( const CreditCard& card) const { if (auto optimization_type = GetVcnMerchantOptOutOptimizationTypeForCard(card); @@ -524,7 +575,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 -@@ -198,6 +198,7 @@ bool HintsFetcher::FetchOptimizationGuideServiceHints( +@@ -196,6 +196,7 @@ bool HintsFetcher::FetchOptimizationGuideServiceHints( bool skip_cache, HintsFetchedCallback hints_fetched_callback, std::optional request_context_metadata) { @@ -535,7 +586,7 @@ diff --git a/components/optimization_guide/core/hints_fetcher.cc b/components/op diff --git a/components/optimization_guide/core/hints_manager.cc b/components/optimization_guide/core/hints_manager.cc --- a/components/optimization_guide/core/hints_manager.cc +++ b/components/optimization_guide/core/hints_manager.cc -@@ -393,6 +393,7 @@ void HintsManager::Shutdown() { +@@ -391,6 +391,7 @@ void HintsManager::Shutdown() { OptimizationGuideDecision HintsManager::GetOptimizationGuideDecisionFromOptimizationTypeDecision( OptimizationTypeDecision optimization_type_decision) { @@ -543,7 +594,7 @@ diff --git a/components/optimization_guide/core/hints_manager.cc b/components/op switch (optimization_type_decision) { case OptimizationTypeDecision::kAllowedByOptimizationFilter: case OptimizationTypeDecision::kAllowedByHint: -@@ -1116,6 +1117,7 @@ void HintsManager::CanApplyOptimizationOnDemand( +@@ -1114,6 +1115,7 @@ void HintsManager::CanApplyOptimizationOnDemand( OnDemandOptimizationGuideDecisionRepeatingCallback callback, std::optional request_context_metadata) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); @@ -551,7 +602,7 @@ diff --git a/components/optimization_guide/core/hints_manager.cc b/components/op InsertionOrderedSet urls_to_fetch; InsertionOrderedSet hosts_to_fetch; -@@ -1421,6 +1423,9 @@ OptimizationTypeDecision HintsManager::CanApplyOptimization( +@@ -1417,6 +1419,9 @@ OptimizationTypeDecision HintsManager::CanApplyOptimization( bool skip_cache, OptimizationMetadata* optimization_metadata) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); @@ -576,7 +627,7 @@ diff --git a/components/optimization_guide/core/optimization_guide_features.cc b } // namespace -@@ -415,8 +411,7 @@ size_t MaxURLKeyedHintCacheSize() { +@@ -422,8 +418,7 @@ size_t MaxURLKeyedHintCacheSize() { } bool ShouldPersistHintsToDisk() { @@ -586,7 +637,7 @@ diff --git a/components/optimization_guide/core/optimization_guide_features.cc b } RequestContextSet GetAllowedContextsForPersonalizedMetadata() { -@@ -874,5 +869,13 @@ int GetOnDeviceModelValidationAttemptCount() { +@@ -864,5 +859,13 @@ int GetOnDeviceModelValidationAttemptCount() { return kParam.Get(); } @@ -664,7 +715,7 @@ diff --git a/components/optimization_guide/features.gni b/components/optimizatio diff --git a/components/page_content_annotations/core/page_content_annotations_features.cc b/components/page_content_annotations/core/page_content_annotations_features.cc --- a/components/page_content_annotations/core/page_content_annotations_features.cc +++ b/components/page_content_annotations/core/page_content_annotations_features.cc -@@ -280,4 +280,9 @@ size_t MaxRelatedSearchesCacheSize() { +@@ -263,4 +263,9 @@ size_t MaxRelatedSearchesCacheSize() { "max_related_searches_cache_size", 10); } @@ -674,6 +725,17 @@ diff --git a/components/page_content_annotations/core/page_content_annotations_f +SET_CROMITE_FEATURE_DISABLED(kPageContentAnnotationsValidation); +SET_CROMITE_FEATURE_DISABLED(kPageContentAnnotationsPersistSalientImageMetadata); } // namespace page_content_annotations::features +diff --git a/components/safe_browsing/core/common/features.cc b/components/safe_browsing/core/common/features.cc +--- a/components/safe_browsing/core/common/features.cc ++++ b/components/safe_browsing/core/common/features.cc +@@ -228,6 +228,7 @@ BASE_FEATURE(kLogAccountEnhancedProtectionStateInProtegoPings, + BASE_FEATURE(kOnDeviceNotificationContentDetectionModel, + "OnDeviceNotificationContentDetectionModel", + base::FEATURE_DISABLED_BY_DEFAULT); ++SET_CROMITE_FEATURE_DISABLED(kOnDeviceNotificationContentDetectionModel); + + constexpr base::FeatureParam + kOnDeviceNotificationContentDetectionModelAllowlistSamplingRate{ diff --git a/cromite_flags/chrome/browser/browser_features_cc/Disable-all-predictors-code.inc b/cromite_flags/chrome/browser/browser_features_cc/Disable-all-predictors-code.inc new file mode 100644 --- /dev/null @@ -730,7 +792,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 -@@ -643,6 +643,7 @@ void DocumentSpeculationRules::UpdateSpeculationCandidates() { +@@ -642,6 +642,7 @@ void DocumentSpeculationRules::UpdateSpeculationCandidates() { return; } @@ -741,7 +803,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 -@@ -3346,7 +3346,7 @@ +@@ -3363,7 +3363,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 80e1e5d63..aff148b00 100644 --- a/build/patches/Disable-all-promo-dialogs.patch +++ b/build/patches/Disable-all-promo-dialogs.patch @@ -6,18 +6,18 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- .../chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java | 1 + chrome/browser/ui/browser_ui_prefs.cc | 2 +- - .../ui/views/user_education/browser_feature_promo_controller.cc | 1 + + .../views/profiles/profile_picker_feature_promo_controller.cc | 1 + + .../user_education/impl/browser_feature_promo_controller_20.cc | 1 + .../chrome/browser/user_education/UserEducationHelper.java | 1 + - components/user_education/common/feature_promo_controller.cc | 1 + - components/user_education/common/feature_promo_registry.cc | 1 + - .../browser/ui/ui_features_cc/Disable-all-promo-dialogs.inc | 1 + - 7 files changed, 7 insertions(+), 1 deletion(-) - create mode 100755 cromite_flags/chrome/browser/ui/ui_features_cc/Disable-all-promo-dialogs.inc + .../common/feature_promo/feature_promo_registry.cc | 2 ++ + .../common/feature_promo/impl/feature_promo_controller_20.cc | 1 + + .../common/feature_promo/impl/feature_promo_controller_25.cc | 1 + + 8 files changed, 9 insertions(+), 1 deletion(-) 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 -@@ -1361,6 +1361,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1379,6 +1379,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { } private boolean maybeShowPromo(Profile profile) { @@ -37,12 +37,23 @@ diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_u registry->RegisterBooleanPref( prefs::kExternalProtocolDialogShowAlwaysOpenCheckbox, true); registry->RegisterBooleanPref(prefs::kScreenCaptureAllowed, true); -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 -@@ -82,6 +82,7 @@ ui::ElementContext BrowserFeaturePromoController::GetAnchorContext() const { +diff --git a/chrome/browser/ui/views/profiles/profile_picker_feature_promo_controller.cc b/chrome/browser/ui/views/profiles/profile_picker_feature_promo_controller.cc +--- a/chrome/browser/ui/views/profiles/profile_picker_feature_promo_controller.cc ++++ b/chrome/browser/ui/views/profiles/profile_picker_feature_promo_controller.cc +@@ -38,6 +38,7 @@ ui::ElementContext ProfilePickerFeaturePromoController::GetAnchorContext() - bool BrowserFeaturePromoController::CanShowPromoForElement( + bool ProfilePickerFeaturePromoController::CanShowPromoForElement( + ui::TrackedElement* anchor_element) const { ++ if ((true)) return false; + return ProfilePicker::IsOpen(); + } + +diff --git a/chrome/browser/ui/views/user_education/impl/browser_feature_promo_controller_20.cc b/chrome/browser/ui/views/user_education/impl/browser_feature_promo_controller_20.cc +--- a/chrome/browser/ui/views/user_education/impl/browser_feature_promo_controller_20.cc ++++ b/chrome/browser/ui/views/user_education/impl/browser_feature_promo_controller_20.cc +@@ -59,6 +59,7 @@ ui::ElementContext BrowserFeaturePromoController20::GetAnchorContext() const { + + bool BrowserFeaturePromoController20::CanShowPromoForElement( ui::TrackedElement* anchor_element) const { + if ((true)) return false; // Trying to show an IPH while the browser is closing can cause problems; @@ -51,28 +62,17 @@ diff --git a/chrome/browser/ui/views/user_education/browser_feature_promo_contro 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 -@@ -126,6 +126,7 @@ public class UserEducationHelper { +@@ -117,6 +117,7 @@ public class UserEducationHelper { } - private void showIPH(Tracker tracker, IPHCommand iphCommand) { + private void showIph(Tracker tracker, IphCommand iphCommand) { + if ((true)) return; // Activity was destroyed; don't show IPH. View anchorView = iphCommand.anchorView; if (mActivity == null -diff --git a/components/user_education/common/feature_promo_controller.cc b/components/user_education/common/feature_promo_controller.cc ---- a/components/user_education/common/feature_promo_controller.cc -+++ b/components/user_education/common/feature_promo_controller.cc -@@ -640,6 +640,7 @@ FeaturePromoResult FeaturePromoControllerCommon::CanShowPromoCommon( - const FeaturePromoSpecification** display_spec_out, - std::unique_ptr* lifecycle_out, - ui::TrackedElement** anchor_element_out) const { -+ if ((true)) return FeaturePromoResult::kBlockedByContext; - const bool for_demo = source == ShowSource::kDemo; - - // Ensure that this promo isn't already queued for startup. -diff --git a/components/user_education/common/feature_promo_registry.cc b/components/user_education/common/feature_promo_registry.cc ---- a/components/user_education/common/feature_promo_registry.cc -+++ b/components/user_education/common/feature_promo_registry.cc +diff --git a/components/user_education/common/feature_promo/feature_promo_registry.cc b/components/user_education/common/feature_promo/feature_promo_registry.cc +--- a/components/user_education/common/feature_promo/feature_promo_registry.cc ++++ b/components/user_education/common/feature_promo/feature_promo_registry.cc @@ -20,6 +20,7 @@ FeaturePromoRegistry& FeaturePromoRegistry::operator=( FeaturePromoRegistry::~FeaturePromoRegistry() = default; @@ -81,10 +81,34 @@ diff --git a/components/user_education/common/feature_promo_registry.cc b/compon const base::Feature* const iph_feature = spec.feature(); CHECK(iph_feature); CHECK_NE(FeaturePromoSpecification::PromoType::kUnspecified, -diff --git a/cromite_flags/chrome/browser/ui/ui_features_cc/Disable-all-promo-dialogs.inc b/cromite_flags/chrome/browser/ui/ui_features_cc/Disable-all-promo-dialogs.inc -new file mode 100755 ---- /dev/null -+++ b/cromite_flags/chrome/browser/ui/ui_features_cc/Disable-all-promo-dialogs.inc -@@ -0,0 +1 @@ -+SET_CROMITE_FEATURE_DISABLED(kChromeLabs); +@@ -35,6 +36,7 @@ NewBadgeRegistry& NewBadgeRegistry::operator=( + NewBadgeRegistry::~NewBadgeRegistry() = default; + + void NewBadgeRegistry::RegisterFeature(NewBadgeSpecification spec) { ++ if ((true)) return; + const base::Feature* const iph_feature = spec.feature; + CHECK(iph_feature); + FeatureRegistry::RegisterFeature(*iph_feature, +diff --git a/components/user_education/common/feature_promo/impl/feature_promo_controller_20.cc b/components/user_education/common/feature_promo/impl/feature_promo_controller_20.cc +--- a/components/user_education/common/feature_promo/impl/feature_promo_controller_20.cc ++++ b/components/user_education/common/feature_promo/impl/feature_promo_controller_20.cc +@@ -89,6 +89,7 @@ FeaturePromoResult FeaturePromoController20::CanShowPromoCommon( + const FeaturePromoParams& params, + ShowSource source, + CanShowPromoOutputs* outputs) const { ++ if ((true)) return FeaturePromoResult::kBlockedByContext; + const bool for_demo = source == ShowSource::kDemo; + + // Ensure that this promo isn't already queued for startup. +diff --git a/components/user_education/common/feature_promo/impl/feature_promo_controller_25.cc b/components/user_education/common/feature_promo/impl/feature_promo_controller_25.cc +--- a/components/user_education/common/feature_promo/impl/feature_promo_controller_25.cc ++++ b/components/user_education/common/feature_promo/impl/feature_promo_controller_25.cc +@@ -48,6 +48,7 @@ FeaturePromoResult FeaturePromoController25::CanShowPromoCommon( + const FeaturePromoParams& params, + ShowSource source, + CanShowPromoOutputs* outputs) const { ++ if ((true)) return FeaturePromoResult::kBlockedByContext; + return FeaturePromoResult::kError; + } + -- diff --git a/build/patches/Disable-conversion-measurement-api.patch b/build/patches/Disable-conversion-measurement-api.patch index 33a5093df..27879db23 100644 --- a/build/patches/Disable-conversion-measurement-api.patch +++ b/build/patches/Disable-conversion-measurement-api.patch @@ -20,7 +20,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../render_view_context_menu_base.cc | 3 - .../aggregatable_report_sender.cc | 15 +- .../aggregation_service_features.cc | 1 + - .../attribution_data_host_manager_impl.cc | 1 + + .../attribution_data_host_manager_impl.cc | 2 + .../attribution_reporting/attribution_host.cc | 1 + .../attribution_os_level_manager.cc | 3 +- .../attribution_report_network_sender.cc | 9 + @@ -37,14 +37,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html third_party/blink/renderer/core/page/page.cc | 2 +- .../platform/runtime_enabled_features.json5 | 10 +- ui/events/android/motion_event_android.cc | 8 +- - 26 files changed, 78 insertions(+), 382 deletions(-) + 26 files changed, 79 insertions(+), 382 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 -@@ -1337,6 +1337,7 @@ network::mojom::AttributionSupport +@@ -1321,6 +1321,7 @@ network::mojom::AttributionSupport AwContentBrowserClient::GetAttributionSupport( AttributionReportingOsApiState state, bool client_os_disabled) { @@ -52,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: -@@ -1355,6 +1356,8 @@ bool AwContentBrowserClient::IsAttributionReportingOperationAllowed( +@@ -1339,6 +1340,8 @@ bool AwContentBrowserClient::IsAttributionReportingOperationAllowed( const url::Origin* destination_origin, const url::Origin* reporting_origin, bool* can_bypass) { @@ -93,7 +93,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro + android:orientation="vertical" + tools:ignore="MergeRootFrame"> + +@@ -24,7 +24,7 @@ found in the LICENSE file. + + + RegisterBooleanPref(prefs::kVirtualKeyboardResizesLayoutByDefault, @@ -2166,15 +2176,15 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch import android.os.SystemClock; import android.text.TextUtils; import android.view.Gravity; -@@ -41,6 +42,7 @@ import org.chromium.base.SysUtils; - import org.chromium.base.metrics.RecordHistogram; +@@ -42,6 +43,7 @@ import org.chromium.base.metrics.RecordHistogram; import org.chromium.base.task.PostTask; import org.chromium.base.task.TaskTraits; + import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider.ControlsPosition; +import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.ui.appmenu.internal.R; import org.chromium.components.browser_ui.styles.ChromeColors; import org.chromium.components.browser_ui.widget.chips.ChipView; -@@ -262,6 +264,12 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler +@@ -264,6 +266,12 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler } mListView = (ListView) contentView.findViewById(R.id.app_menu_list); @@ -2187,7 +2197,7 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch int footerHeight = inflateFooter(footerResourceId, contentView, menuWidth); int headerHeight = inflateHeader(headerResourceId, contentView, menuWidth); -@@ -294,7 +302,7 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler +@@ -296,7 +304,7 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler Math.min( Math.abs(mTempLocation[1] - visibleDisplayFrame.top), Math.abs(mTempLocation[1] - visibleDisplayFrame.bottom)); @@ -2196,7 +2206,7 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch menuItemIds, heightList, visibleDisplayFrame, -@@ -314,8 +322,14 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler +@@ -316,8 +324,14 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler sizingPadding, anchorView, popupWidth, @@ -2212,7 +2222,7 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch try { mPopup.showAtLocation( -@@ -376,11 +390,20 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler +@@ -378,11 +392,20 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler Rect padding, View anchorView, int popupWidth, @@ -2234,7 +2244,7 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch int[] offsets = new int[2]; // If we have a hardware menu button, locate the app menu closer to the estimated // hardware menu button location. -@@ -554,7 +577,7 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler +@@ -556,7 +579,7 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler if (mAdapter != null) mAdapter.notifyDataSetChanged(); } @@ -2243,7 +2253,7 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch List menuItemIds, List heightList, Rect appDimensions, -@@ -573,7 +596,13 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler +@@ -575,7 +598,13 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler - footerHeight - headerHeight - anchorViewImpactHeight; @@ -2258,7 +2268,7 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch if (mIsByPermanentButton) availableScreenSpace -= padding.top; if (availableScreenSpace <= 0 && sExceptionReporter != null) { String logMessage = -@@ -603,6 +632,7 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler +@@ -605,6 +634,7 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler menuItemIds, heightList, groupDividerResourceId, availableScreenSpace); menuHeight += footerHeight + headerHeight + padding.top + padding.bottom; mPopup.setHeight(menuHeight); @@ -2275,9 +2285,9 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch import org.chromium.base.metrics.RecordUserAction; +import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.base.supplier.Supplier; + import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider; import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher; - import org.chromium.chrome.browser.lifecycle.ConfigurationChangedObserver; -@@ -229,7 +230,16 @@ class AppMenuHandlerImpl +@@ -235,7 +236,16 @@ class AppMenuHandlerImpl id, customViewBinders, customViewTypeOffsetMap); }, this); @@ -2360,7 +2370,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 -@@ -47,6 +47,7 @@ import org.chromium.ui.modaldialog.ModalDialogManager; +@@ -48,6 +48,7 @@ import org.chromium.ui.modaldialog.ModalDialogManager; import org.chromium.ui.modelutil.LazyConstructionPropertyMcp; import org.chromium.ui.modelutil.MVCListAdapter.ModelList; import org.chromium.ui.modelutil.PropertyModel; @@ -2368,7 +2378,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import java.util.ArrayList; import java.util.List; -@@ -65,6 +66,7 @@ public class AutocompleteCoordinator +@@ -66,6 +67,7 @@ public class AutocompleteCoordinator private @Nullable OmniboxSuggestionsDropdown mDropdown; private @NonNull ObserverList mScrollListenerList = new ObserverList<>(); @@ -2376,7 +2386,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 { -@@ -101,6 +103,7 @@ public class AutocompleteCoordinator +@@ -102,6 +104,7 @@ public class AutocompleteCoordinator Context context = parent.getContext(); ModelList listItems = new ModelList(); @@ -2384,7 +2394,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) -@@ -218,6 +221,16 @@ public class AutocompleteCoordinator +@@ -222,6 +225,16 @@ public class AutocompleteCoordinator dropdown.forcePhoneStyleOmnibox(forcePhoneStyleOmnibox); dropdown.setAdapter(mAdapter); @@ -2404,7 +2414,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java -@@ -70,6 +70,8 @@ import org.chromium.ui.modelutil.PropertyModel; +@@ -74,6 +74,8 @@ import org.chromium.ui.modelutil.PropertyModel; import org.chromium.ui.mojom.WindowOpenDisposition; import org.chromium.url.GURL; @@ -2413,7 +2423,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; -@@ -1178,7 +1180,9 @@ class AutocompleteMediator +@@ -1216,7 +1218,9 @@ class AutocompleteMediator @Override public void onSuggestionDropdownScroll() { mSuggestionsListScrolled = true; @@ -2507,7 +2517,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 -@@ -1774,6 +1774,12 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1742,6 +1742,12 @@ Your Google account may have other forms of browsing history like searches and a Force Tablet Mode @@ -2523,7 +2533,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 -@@ -172,6 +172,7 @@ android_library("java") { +@@ -176,6 +176,7 @@ android_library("java") { "//content/public/android:content_java", "//third_party/android_deps:material_design_java", "//third_party/androidx:androidx_annotation_annotation_experimental_java", @@ -2628,7 +2638,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/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 -@@ -28,6 +28,7 @@ import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeUtils; +@@ -28,6 +28,7 @@ import org.chromium.components.browser_ui.edge_to_edge.EdgeToEdgeSupplier.Change import org.chromium.ui.KeyboardVisibilityDelegate; import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.modelutil.PropertyModel; @@ -2649,7 +2659,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow mIsBottomControlsVisible = visible; updateCompositedViewVisibility(); updateAndroidViewVisibility(); -@@ -193,6 +200,7 @@ class BottomControlsMediator +@@ -194,6 +201,7 @@ class BottomControlsMediator int bottomControlsMinHeightOffset, boolean needsAnimate, boolean isVisibilityForced) { @@ -2657,7 +2667,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow // Method call routed to onBrowserControlsOffsetUpdate. if (BottomControlsStacker.isDispatchingYOffset()) return; -@@ -318,11 +326,13 @@ class BottomControlsMediator +@@ -319,11 +327,13 @@ class BottomControlsMediator && !mIsInSwipeLayout && getBrowserControls().getBottomControlOffset() == 0; if (visible) { @@ -2770,7 +2780,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java -@@ -63,6 +63,10 @@ import java.lang.annotation.Retention; +@@ -64,6 +64,10 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.function.BooleanSupplier; @@ -2780,8 +2790,8 @@ 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 { -@@ -152,6 +156,11 @@ public class ToolbarControlContainer extends OptimizedFrameLayout + implements ControlContainer, DesktopWindowStateManager.AppHeaderObserver { +@@ -167,6 +171,11 @@ public class ToolbarControlContainer extends OptimizedFrameLayout if (view != null) ((MarginLayoutParams)view.getLayoutParams()).topMargin = tab_strip_height; } @@ -2796,7 +2806,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarOverlayCoordinator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarOverlayCoordinator.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarOverlayCoordinator.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarOverlayCoordinator.java -@@ -21,11 +21,14 @@ import org.chromium.chrome.browser.tab.Tab; +@@ -22,11 +22,14 @@ import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.theme.TopUiThemeColorProvider; import org.chromium.chrome.browser.toolbar.R; import org.chromium.components.browser_ui.widget.ClipDrawableProgressBar; @@ -2811,10 +2821,10 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow /** The public interface for the top toolbar texture component. */ public class TopToolbarOverlayCoordinator implements SceneOverlay { /** The view state for this overlay. */ -@@ -62,6 +65,12 @@ public class TopToolbarOverlayCoordinator implements SceneOverlay { - TopToolbarOverlayProperties.CONTENT_OFFSET, +@@ -71,6 +74,12 @@ public class TopToolbarOverlayCoordinator implements SceneOverlay { browserControlsStateProvider.getContentOffset()) .with(TopToolbarOverlayProperties.ANONYMIZE, false) + .with(TopToolbarOverlayProperties.SHOW_SHADOW, showHairline) + .with(TopToolbarOverlayProperties.VIEWPORT_HEIGHT, 0) + .with(TopToolbarOverlayProperties.TOOLBAR_HEIGHT, + browserControlsStateProvider.getTopControlsHeight() @@ -2824,7 +2834,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow .build(); mSceneLayer = new TopToolbarSceneLayer(resourceManagerSupplier); mChangeProcessor = -@@ -113,6 +122,7 @@ public class TopToolbarOverlayCoordinator implements SceneOverlay { +@@ -123,6 +132,7 @@ public class TopToolbarOverlayCoordinator implements SceneOverlay { @Override public SceneOverlayLayer getUpdatedSceneOverlayTree( RectF viewport, RectF visibleViewport, ResourceManager resourceManager, float yOffset) { @@ -2892,7 +2902,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml --- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml +++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml -@@ -65,4 +65,12 @@ found in the LICENSE file. +@@ -60,4 +60,12 @@ found in the LICENSE file. android:key="image_descriptions" android:title="@string/image_descriptions_settings_title" /> @@ -2940,7 +2950,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/ #include "cc/base/math_util.h" #include "cc/input/browser_controls_offset_tags_info.h" #include "cc/slim/layer.h" -@@ -857,6 +858,8 @@ void RenderWidgetHostViewAndroid::OnRenderFrameMetadataChangedBeforeActivation( +@@ -860,6 +861,8 @@ void RenderWidgetHostViewAndroid::OnRenderFrameMetadataChangedBeforeActivation( // factor. Thus, |top_content_offset| in CSS pixels is also in DIPs. float top_content_offset = metadata.top_controls_height * metadata.top_controls_shown_ratio; diff --git a/build/patches/Move-some-account-settings-back-to-privacy-settings.patch b/build/patches/Move-some-account-settings-back-to-privacy-settings.patch index b8554dfde..ae6785414 100644 --- a/build/patches/Move-some-account-settings-back-to-privacy-settings.patch +++ b/build/patches/Move-some-account-settings-back-to-privacy-settings.patch @@ -37,7 +37,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -53,6 +53,14 @@ import org.chromium.components.signin.identitymanager.ConsentLevel; +@@ -54,6 +54,14 @@ import org.chromium.components.signin.identitymanager.ConsentLevel; import org.chromium.components.user_prefs.UserPrefs; import org.chromium.ui.text.SpanApplier; @@ -52,7 +52,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting /** Fragment to keep track of the all the privacy related preferences. */ public class PrivacySettings extends ChromeBaseSettingsFragment implements Preference.OnPreferenceChangeListener { -@@ -68,6 +76,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -69,6 +77,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private static final String PREF_INCOGNITO_LOCK = "incognito_lock"; @VisibleForTesting static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data"; @VisibleForTesting static final String PREF_DO_NOT_TRACK = "do_not_track"; @@ -69,7 +69,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting @VisibleForTesting static final String PREF_FP_PROTECTION = "fp_protection"; @VisibleForTesting static final String PREF_IP_PROTECTION = "ip_protection"; @VisibleForTesting static final String PREF_THIRD_PARTY_COOKIES = "third_party_cookies"; -@@ -159,6 +177,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -160,6 +178,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment setHasOptionsMenu(true); @@ -109,7 +109,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -451,6 +451,10 @@ For more settings that use data to improve your Chrome experience, go to diff --git a/build/patches/Multiple-fingerprinting-mitigations.patch b/build/patches/Multiple-fingerprinting-mitigations.patch index ba3f5a2bd..e91bbc67d 100644 --- a/build/patches/Multiple-fingerprinting-mitigations.patch +++ b/build/patches/Multiple-fingerprinting-mitigations.patch @@ -63,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 -@@ -2406,6 +2406,7 @@ static_library("browser") { +@@ -2402,6 +2402,7 @@ static_library("browser") { "//services/device/public/cpp:device_features", "//services/device/public/cpp/geolocation", "//services/device/public/cpp/usb", @@ -74,7 +74,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 -@@ -247,6 +247,8 @@ +@@ -250,6 +250,8 @@ #include "ui/ui_features.h" #include "url/url_features.h" @@ -86,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 -@@ -276,6 +276,7 @@ source_set("browser") { +@@ -280,6 +280,7 @@ source_set("browser") { "//third_party/re2", "//third_party/snappy", "//third_party/sqlite", @@ -105,7 +105,7 @@ diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content #if BUILDFLAG(IS_ANDROID) #include "base/android/child_process_binding_types.h" #include "content/browser/font_unique_name_lookup/font_unique_name_lookup_service.h" -@@ -3305,6 +3306,9 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( +@@ -3303,6 +3304,9 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( switches::kDisableBreakpad, switches::kDisableDatabases, switches::kDisableFileSystem, @@ -118,7 +118,7 @@ diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content diff --git a/content/child/BUILD.gn b/content/child/BUILD.gn --- a/content/child/BUILD.gn +++ b/content/child/BUILD.gn -@@ -105,6 +105,7 @@ target(link_target_type, "child") { +@@ -106,6 +106,7 @@ target(link_target_type, "child") { "//third_party/blink/public/common:buildflags", "//third_party/blink/public/strings", "//third_party/ced", @@ -129,16 +129,16 @@ diff --git a/content/child/BUILD.gn b/content/child/BUILD.gn 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 -@@ -47,6 +47,8 @@ - #include "ui/gl/gl_switches.h" +@@ -48,6 +48,8 @@ #include "ui/native_theme/native_theme_features.h" + #include "ui/native_theme/native_theme_utils.h" +#include "third_party/ungoogled/ungoogled_switches.h" + #if BUILDFLAG(IS_ANDROID) #include "base/android/build_info.h" #endif -@@ -533,6 +535,12 @@ void SetRuntimeFeaturesFromCommandLine(const base::CommandLine& command_line) { +@@ -529,6 +531,12 @@ void SetRuntimeFeaturesFromCommandLine(const base::CommandLine& command_line) { // as a last resort. void SetCustomizedRuntimeFeaturesFromCombinedArgs( const base::CommandLine& command_line) { @@ -196,7 +196,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink #include "base/ranges/algorithm.h" #include "base/task/single_thread_task_runner.h" #include "base/time/time.h" -@@ -849,6 +850,17 @@ Document::Document(const DocumentInit& initializer, +@@ -853,6 +854,17 @@ Document::Document(const DocumentInit& initializer, TRACE_EVENT_WITH_FLOW0("blink", "Document::Document", TRACE_ID_LOCAL(this), TRACE_EVENT_FLAG_FLOW_OUT); DCHECK(agent_); @@ -214,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(); -@@ -2438,6 +2450,14 @@ void Document::UpdateStyleAndLayoutTreeForThisDocument() { +@@ -2451,6 +2463,14 @@ void Document::UpdateStyleAndLayoutTreeForThisDocument() { #endif } @@ -232,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 -@@ -547,6 +547,10 @@ class CORE_EXPORT Document : public ContainerNode, +@@ -551,6 +551,10 @@ class CORE_EXPORT Document : public ContainerNode, has_xml_declaration_ = has_xml_declaration ? 1 : 0; } @@ -240,10 +240,10 @@ diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/ + double GetNoiseFactorX(); + double GetNoiseFactorY(); + - AtomicString visibilityState() const; + V8VisibilityState visibilityState() const; + String visibilityStateAsString() const; bool IsPageVisible() const; - bool hidden() const; -@@ -2554,6 +2558,9 @@ class CORE_EXPORT Document : public ContainerNode, +@@ -2608,6 +2612,9 @@ class CORE_EXPORT Document : public ContainerNode, base::ElapsedTimer start_time_; @@ -256,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 -@@ -2502,6 +2502,7 @@ void Element::ClientQuads(Vector& quads) const { +@@ -2503,6 +2503,7 @@ void Element::ClientQuads(Vector& quads) const { quads.push_back(element_layout_object->LocalToAbsoluteQuad( gfx::QuadF(element_layout_object->ObjectBoundingBox()))); } @@ -264,7 +264,7 @@ diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/ return; } -@@ -2510,6 +2511,10 @@ void Element::ClientQuads(Vector& quads) const { +@@ -2511,6 +2512,10 @@ void Element::ClientQuads(Vector& quads) const { element_layout_object->IsBR()) { element_layout_object->AbsoluteQuads(quads); } @@ -275,7 +275,7 @@ diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/ } DOMRectList* Element::getClientRects() { -@@ -2555,6 +2560,9 @@ gfx::RectF Element::GetBoundingClientRectNoLifecycleUpdate() const { +@@ -2556,6 +2561,9 @@ gfx::RectF Element::GetBoundingClientRectNoLifecycleUpdate() const { DCHECK(element_layout_object); GetDocument().AdjustRectForScrollAndAbsoluteZoom(result, *element_layout_object); @@ -288,7 +288,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/range.cc b/third_party/blink/renderer/core/dom/range.cc --- a/third_party/blink/renderer/core/dom/range.cc +++ b/third_party/blink/renderer/core/dom/range.cc -@@ -1649,6 +1649,12 @@ DOMRectList* Range::getClientRects() const { +@@ -1620,6 +1620,12 @@ DOMRectList* Range::getClientRects() const { Vector quads; GetBorderAndTextQuads(quads); @@ -301,7 +301,7 @@ diff --git a/third_party/blink/renderer/core/dom/range.cc b/third_party/blink/re return MakeGarbageCollected(quads); } -@@ -1787,7 +1793,11 @@ gfx::RectF Range::BoundingRect() const { +@@ -1758,7 +1764,11 @@ gfx::RectF Range::BoundingRect() const { // If all rects are empty, return the first rect. if (result.IsEmpty() && !quads.empty()) @@ -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 -@@ -103,6 +103,24 @@ const ShapeResult* ShapeWord(const TextRun& word_run, const Font& font) { +@@ -102,6 +102,24 @@ const ShapeResult* ShapeWord(const TextRun& word_run, const Font& font) { } } // namespace @@ -366,7 +366,7 @@ 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 -@@ -101,6 +101,8 @@ class CORE_EXPORT TextMetrics final : public ScriptWrappable { +@@ -103,6 +103,8 @@ class CORE_EXPORT TextMetrics final : public ScriptWrappable { float x_position_; }; @@ -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 -@@ -193,6 +193,11 @@ +@@ -194,6 +194,11 @@ #include "ui/gfx/geometry/size.h" #include "ui/gfx/geometry/size_f.h" #include "ui/gfx/geometry/skia_conversions.h" @@ -481,7 +481,7 @@ 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" -@@ -2918,6 +2923,10 @@ ImageData* BaseRenderingContext2D::getImageDataInternal( +@@ -2914,6 +2919,10 @@ ImageData* BaseRenderingContext2D::getImageDataInternal( snapshot->PaintImageForCurrentFrame().GetSkImageInfo().bounds(); DCHECK(!bounds.intersect(SkIRect::MakeXYWH(sx, sy, sw, sh))); } @@ -492,7 +492,7 @@ diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_c } return image_data; -@@ -3608,8 +3617,22 @@ TextMetrics* BaseRenderingContext2D::measureText(const String& text) { +@@ -3638,8 +3647,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 -@@ -1711,7 +1711,9 @@ component("platform") { +@@ -1714,7 +1714,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", -@@ -1793,6 +1795,7 @@ component("platform") { +@@ -1796,6 +1798,7 @@ component("platform") { "//third_party/blink/public/strings", "//third_party/blink/renderer/platform/wtf", "//third_party/ced", @@ -777,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 -@@ -2940,6 +2940,15 @@ +@@ -2947,6 +2947,15 @@ status: {"Mac": "test", "default": "stable"}, base_feature: "none", }, diff --git a/build/patches/OpenSearch-miscellaneous.patch b/build/patches/OpenSearch-miscellaneous.patch index f9536b415..a7769034c 100644 --- a/build/patches/OpenSearch-miscellaneous.patch +++ b/build/patches/OpenSearch-miscellaneous.patch @@ -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; -@@ -765,9 +768,6 @@ class TemplateURLService final : public WebDataServiceConsumer, +@@ -769,9 +772,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 d420a170d..dd64d435f 100644 --- a/build/patches/Override-Navigator-Language.patch +++ b/build/patches/Override-Navigator-Language.patch @@ -69,7 +69,7 @@ diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content #include "components/metrics/single_sample_metrics.h" #include "components/services/storage/privileged/mojom/indexed_db_control.mojom.h" #include "components/services/storage/public/cpp/buckets/bucket_id.h" -@@ -3217,8 +3218,11 @@ void RenderProcessHostImpl::AppendRendererCommandLine( +@@ -3214,8 +3215,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 ec70b38bd..120ee7b5c 100644 --- a/build/patches/Partition-Blink-memory-cache.patch +++ b/build/patches/Partition-Blink-memory-cache.patch @@ -29,7 +29,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 -@@ -420,7 +420,8 @@ static unsigned AvoidDownloadIfHigherDensityResourceIsInCache( +@@ -418,7 +418,8 @@ static unsigned AvoidDownloadIfHigherDensityResourceIsInCache( auto* resource = MemoryCache::Get()->ResourceForURL( url, document->Fetcher()->GetCacheIdentifier(url, @@ -42,7 +42,7 @@ diff --git a/third_party/blink/renderer/core/html/parser/html_srcset_parser.cc b diff --git a/third_party/blink/renderer/core/inspector/inspector_network_agent.cc b/third_party/blink/renderer/core/inspector/inspector_network_agent.cc --- a/third_party/blink/renderer/core/inspector/inspector_network_agent.cc +++ b/third_party/blink/renderer/core/inspector/inspector_network_agent.cc -@@ -2441,7 +2441,7 @@ bool InspectorNetworkAgent::FetchResourceContent(Document* document, +@@ -2434,7 +2434,7 @@ bool InspectorNetworkAgent::FetchResourceContent(Document* document, if (!cached_resource) { cached_resource = MemoryCache::Get()->ResourceForURL( url, document->Fetcher()->GetCacheIdentifier( @@ -154,8 +154,8 @@ 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 -@@ -993,7 +993,8 @@ Resource* ResourceFetcher::CreateResourceForStaticData( - return nullptr; +@@ -1006,7 +1006,8 @@ Resource* ResourceFetcher::CreateResourceForStaticData( + } const String cache_identifier = GetCacheIdentifier( - url, params.GetResourceRequest().GetSkipServiceWorker()); @@ -164,7 +164,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c // Most off-main-thread resource fetches use Resource::kRaw and don't reach // this point, but off-main-thread module fetches might. if (IsMainThread()) { -@@ -1412,7 +1413,8 @@ Resource* ResourceFetcher::RequestResource(FetchParameters& params, +@@ -1431,7 +1432,8 @@ Resource* ResourceFetcher::RequestResource(FetchParameters& params, params.Url(), GetCacheIdentifier( params.Url(), @@ -174,7 +174,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c if (resource) { policy = DetermineRevalidationPolicy(resource_type, params, *resource, is_static_data); -@@ -1724,7 +1726,8 @@ Resource* ResourceFetcher::CreateResourceForLoading( +@@ -1754,7 +1756,8 @@ Resource* ResourceFetcher::CreateResourceForLoading( const ResourceFactory& factory) { const String cache_identifier = GetCacheIdentifier(params.GetResourceRequest().Url(), @@ -184,7 +184,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c DCHECK(!IsMainThread() || params.IsStaleRevalidation() || !MemoryCache::Get()->ResourceForURL(params.GetResourceRequest().Url(), cache_identifier)); -@@ -2794,11 +2797,41 @@ void ResourceFetcher::UpdateAllImageResourcePriorities() { +@@ -2862,11 +2865,41 @@ void ResourceFetcher::UpdateAllImageResourcePriorities() { } String ResourceFetcher::GetCacheIdentifier(const KURL& url, @@ -231,9 +231,9 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c } // Requests that can be satisfied via `archive_` (i.e. MHTML) or -@@ -2811,7 +2844,7 @@ String ResourceFetcher::GetCacheIdentifier(const KURL& url, - if (bundle) +@@ -2881,7 +2914,7 @@ String ResourceFetcher::GetCacheIdentifier(const KURL& url, return bundle->GetCacheIdentifier(); + } - return MemoryCache::DefaultCacheIdentifier(); + return origin_url; diff --git a/build/patches/Partition-HSTS-cache-by-NAK.patch b/build/patches/Partition-HSTS-cache-by-NAK.patch index 7f951dd6d..03be13ec9 100644 --- a/build/patches/Partition-HSTS-cache-by-NAK.patch +++ b/build/patches/Partition-HSTS-cache-by-NAK.patch @@ -30,7 +30,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 -@@ -395,6 +395,7 @@ void HttpsUpgradesInterceptor::MaybeCreateLoader( +@@ -409,6 +409,7 @@ void HttpsUpgradesInterceptor::MaybeCreateLoader( network::mojom::NetworkContext* network_context = profile->GetDefaultStoragePartition()->GetNetworkContext(); network_context->IsHSTSActiveForHost( @@ -109,7 +109,7 @@ diff --git a/content/browser/web_package/signed_exchange_handler.cc b/content/br } std::string OCSPErrorToString(const bssl::OCSPVerifyResult& ocsp_result) { -@@ -179,6 +180,7 @@ SignedExchangeHandler::SignedExchangeHandler( +@@ -177,6 +178,7 @@ SignedExchangeHandler::SignedExchangeHandler( std::unique_ptr body, ExchangeHeadersCallback headers_callback, std::unique_ptr cert_fetcher_factory, @@ -117,7 +117,7 @@ diff --git a/content/browser/web_package/signed_exchange_handler.cc b/content/br std::optional outer_request_isolation_info, int load_flags, const net::IPEndPoint& remote_endpoint, -@@ -192,6 +194,7 @@ SignedExchangeHandler::SignedExchangeHandler( +@@ -190,6 +192,7 @@ SignedExchangeHandler::SignedExchangeHandler( source_(std::move(body)), cert_fetcher_factory_(std::move(cert_fetcher_factory)), devtools_proxy_(std::move(devtools_proxy)), @@ -125,7 +125,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( +@@ -532,7 +535,7 @@ void SignedExchangeHandler::OnCertReceived( // property, or const std::string& stapled_ocsp_response = unverified_cert_chain_->ocsp(); @@ -220,7 +220,7 @@ diff --git a/content/browser/web_package/signed_exchange_request_handler.cc b/co diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_state.cc --- a/net/http/transport_security_state.cc +++ b/net/http/transport_security_state.cc -@@ -87,7 +87,7 @@ bool AddHash(const char* sha256_hash, HashValueVector* out) { +@@ -88,7 +88,7 @@ bool AddHash(const char* sha256_hash, HashValueVector* out) { // Converts |hostname| from dotted form ("www.google.com") to the form // used in DNS: "\x03www\x06google\x03com", lowercases that, and returns // the result. @@ -229,8 +229,8 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ // We cannot perform the operations as detailed in the spec here as `host` // has already undergone IDN processing before it reached us. Thus, we // lowercase the input (probably redudnant since most input here has been -@@ -108,6 +108,29 @@ std::vector CanonicalizeHost(std::string_view host) { - return new_host.value(); +@@ -109,6 +109,29 @@ std::vector CanonicalizeHost(std::string_view host) { + return std::move(new_host).value(); } +std::vector CanonicalizeHost(const NetworkAnonymizationKey& nak, @@ -259,7 +259,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ // PreloadResult is the result of resolving a specific name in the preloaded // data. struct PreloadResult { -@@ -199,7 +222,7 @@ bool DecodeHSTSPreload(const std::string& search_hostname, PreloadResult* out) { +@@ -200,7 +223,7 @@ bool DecodeHSTSPreload(const std::string& search_hostname, PreloadResult* out) { // Ensure that |search_hostname| is a valid hostname before // processing. @@ -268,7 +268,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ return false; } // Normalize any trailing '.' used for DNS suffix searches. -@@ -260,18 +283,19 @@ TransportSecurityState::TransportSecurityState( +@@ -261,18 +284,19 @@ TransportSecurityState::TransportSecurityState( // Both HSTS and HPKP cause fatal SSL errors, so return true if a // host has either. @@ -291,7 +291,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ dict.Set("should_upgrade_to_ssl", sts_state.ShouldUpgradeToSSL()); dict.Set("host_found_in_hsts_bypass_list", hsts_host_bypass_list_.find(host) != hsts_host_bypass_list_.end()); -@@ -279,13 +303,14 @@ base::Value::Dict TransportSecurityState::NetLogUpgradeToSSLParam( +@@ -280,14 +304,15 @@ base::Value::Dict TransportSecurityState::NetLogUpgradeToSSLParam( } SSLUpgradeDecision TransportSecurityState::GetSSLUpgradeDecision( @@ -303,12 +303,13 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ - [&] { return NetLogUpgradeToSSLParam(host); }); + [&] { return NetLogUpgradeToSSLParam(nak, host); }); STSState sts_state; + // Check the dynamic list first (removing the entry if expired). - if (GetDynamicSTSState(host, &sts_state)) { + if (GetDynamicSTSState(nak, host, &sts_state)) { - if (sts_state.ShouldUpgradeToSSL()) { - // If the static state also requires an upgrade, the dynamic state didn't - // need to be used in the decision. -@@ -305,27 +330,29 @@ SSLUpgradeDecision TransportSecurityState::GetSSLUpgradeDecision( + // [*.]localhost hosts now ignore Strict-Transport-Security response + // headers, but an entry may have been stored before this restriction + // was introduced (crbug.com/41251622). +@@ -312,27 +337,29 @@ SSLUpgradeDecision TransportSecurityState::GetSSLUpgradeDecision( } bool TransportSecurityState::ShouldUpgradeToSSL( @@ -344,7 +345,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ } TransportSecurityState::CTRequirementsStatus -@@ -405,12 +432,13 @@ void TransportSecurityState::UpdatePinList( +@@ -412,12 +439,13 @@ void TransportSecurityState::UpdatePinList( } void TransportSecurityState::AddHSTSInternal( @@ -359,7 +360,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ if (canonicalized_host.empty()) return; -@@ -434,13 +462,14 @@ void TransportSecurityState::AddHSTSInternal( +@@ -441,13 +469,14 @@ void TransportSecurityState::AddHSTSInternal( DirtyNotify(); } @@ -376,7 +377,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ if (canonicalized_host.empty()) return; -@@ -485,10 +514,12 @@ TransportSecurityState::PKPStatus TransportSecurityState::CheckPins( +@@ -492,10 +521,12 @@ TransportSecurityState::PKPStatus TransportSecurityState::CheckPins( return PKPStatus::VIOLATED; } @@ -391,7 +392,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ if (canonicalized_host.empty()) return false; -@@ -565,7 +596,8 @@ void TransportSecurityState::DirtyNotify() { +@@ -572,7 +603,8 @@ void TransportSecurityState::DirtyNotify() { delegate_->StateIsDirty(this); } @@ -401,7 +402,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ std::string_view value) { DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); -@@ -584,23 +616,25 @@ bool TransportSecurityState::AddHSTSHeader(std::string_view host, +@@ -591,23 +623,25 @@ bool TransportSecurityState::AddHSTSHeader(std::string_view host, upgrade_mode = STSState::MODE_FORCE_HTTPS; } @@ -432,7 +433,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ } size_t TransportSecurityState::num_sts_entries() const { -@@ -618,9 +652,10 @@ TransportSecurityState::PKPStatus +@@ -632,9 +666,10 @@ TransportSecurityState::PKPStatus TransportSecurityState::CheckPublicKeyPinsImpl( const HostPortPair& host_port_pair, bool is_issued_by_known_root, @@ -445,7 +446,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ // HasPublicKeyPins should have returned true in order for this method to have // been called. -@@ -661,7 +696,7 @@ bool TransportSecurityState::GetStaticPKPState(const std::string& host, +@@ -675,7 +710,7 @@ bool TransportSecurityState::GetStaticPKPState(const std::string& host, PreloadResult result; if (host_pins_.has_value()) { // Ensure that |host| is a valid hostname before processing. @@ -454,7 +455,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ return false; } // Normalize any trailing '.' used for DNS suffix searches. -@@ -744,21 +779,24 @@ bool TransportSecurityState::GetStaticPKPState(const std::string& host, +@@ -758,21 +793,24 @@ bool TransportSecurityState::GetStaticPKPState(const std::string& host, return false; } @@ -485,7 +486,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ if (canonicalized_host.empty()) return false; -@@ -795,11 +833,12 @@ bool TransportSecurityState::GetDynamicSTSState(const std::string& host, +@@ -809,11 +847,12 @@ bool TransportSecurityState::GetDynamicSTSState(const std::string& host, return false; } @@ -503,7 +504,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ diff --git a/net/http/transport_security_state.h b/net/http/transport_security_state.h --- a/net/http/transport_security_state.h +++ b/net/http/transport_security_state.h -@@ -290,6 +290,7 @@ class NET_EXPORT TransportSecurityState { +@@ -291,6 +291,7 @@ class NET_EXPORT TransportSecurityState { // As ShouldUpgradeToSSL(), but also returns whether the decision came from // static or dynamic state, for metrics. SSLUpgradeDecision GetSSLUpgradeDecision( @@ -511,7 +512,7 @@ diff --git a/net/http/transport_security_state.h b/net/http/transport_security_s const std::string& host, const NetLogWithSource& net_log = NetLogWithSource()); -@@ -298,13 +299,14 @@ class NET_EXPORT TransportSecurityState { +@@ -299,13 +300,14 @@ class NET_EXPORT TransportSecurityState { // primary public interface; direct access to STS and PKP states is best // left to tests. The caller needs to handle the optional pinning override // when is_issued_by_known_root is false. @@ -530,7 +531,7 @@ diff --git a/net/http/transport_security_state.h b/net/http/transport_security_s // Returns CT_REQUIREMENTS_NOT_MET if a connection violates CT policy // requirements: that is, if a connection to |host|, using the validated -@@ -388,7 +390,7 @@ class NET_EXPORT TransportSecurityState { +@@ -389,7 +391,7 @@ class NET_EXPORT TransportSecurityState { // // If an entry is deleted, the new state will be persisted through // the Delegate (if any). @@ -539,7 +540,7 @@ diff --git a/net/http/transport_security_state.h b/net/http/transport_security_s // Returns true and updates |*result| if |host| has dynamic or static // HSTS/HPKP (respectively) state. If multiple entries match |host|, dynamic -@@ -398,8 +400,8 @@ class NET_EXPORT TransportSecurityState { +@@ -399,8 +401,8 @@ class NET_EXPORT TransportSecurityState { // // Note that these methods are not const because they opportunistically remove // entries that have expired. @@ -550,7 +551,7 @@ diff --git a/net/http/transport_security_state.h b/net/http/transport_security_s // Returns true and updates |*result| iff |host| has static HSTS/HPKP // (respectively) state. If multiple entries match |host|, the most specific -@@ -413,22 +415,24 @@ class NET_EXPORT TransportSecurityState { +@@ -414,22 +416,24 @@ class NET_EXPORT TransportSecurityState { // // Note that these methods are not const because they opportunistically remove // entries that have expired. @@ -580,7 +581,7 @@ diff --git a/net/http/transport_security_state.h b/net/http/transport_security_s const base::Time& expiry, bool include_subdomains, const HashValueVector& hashes); -@@ -466,7 +470,7 @@ class NET_EXPORT TransportSecurityState { +@@ -471,7 +475,7 @@ class NET_EXPORT TransportSecurityState { typedef std::map STSStateMap; typedef std::map PKPStateMap; @@ -589,7 +590,7 @@ diff --git a/net/http/transport_security_state.h b/net/http/transport_security_s // IsBuildTimely returns true if the current build is new enough ensure that // built in security information (i.e. HSTS preloading and pinning -@@ -476,7 +480,8 @@ class NET_EXPORT TransportSecurityState { +@@ -481,7 +485,8 @@ class NET_EXPORT TransportSecurityState { // Helper method for actually checking pins. PKPStatus CheckPublicKeyPinsImpl(const HostPortPair& host_port_pair, bool is_issued_by_known_root, @@ -599,7 +600,7 @@ diff --git a/net/http/transport_security_state.h b/net/http/transport_security_s // If a Delegate is present, notify it that the internal state has // changed. -@@ -486,11 +491,13 @@ class NET_EXPORT TransportSecurityState { +@@ -491,11 +496,13 @@ class NET_EXPORT TransportSecurityState { // any previous state for the |host|, including static entries. // // The new state for |host| is persisted using the Delegate (if any). @@ -640,7 +641,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 -@@ -1490,7 +1490,7 @@ bool QuicChromiumClientSession::CanPool( +@@ -1504,7 +1504,7 @@ bool QuicChromiumClientSession::CanPool( return SpdySession::CanPool(transport_security_state_, ssl_info, *ssl_config_service_, session_key_.host(), @@ -652,7 +653,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 -@@ -1190,7 +1190,8 @@ ssl_verify_result_t SSLClientSocketImpl::HandleVerifyResult() { +@@ -1186,7 +1186,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, @@ -662,7 +663,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 |= -@@ -1212,7 +1213,7 @@ ssl_verify_result_t SSLClientSocketImpl::HandleVerifyResult() { +@@ -1208,7 +1209,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( @@ -674,7 +675,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket 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 -@@ -728,7 +728,8 @@ bool SpdySession::CanPool(TransportSecurityState* transport_security_state, +@@ -735,7 +735,8 @@ bool SpdySession::CanPool(TransportSecurityState* transport_security_state, const SSLInfo& ssl_info, const SSLConfigService& ssl_config_service, std::string_view old_hostname, @@ -684,7 +685,7 @@ diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc // Pooling is prohibited if the server cert is not valid for the new domain, // and for connections on which client certs were sent. It is also prohibited // when channel ID was sent if the hosts are from different eTLDs+1. -@@ -747,7 +748,7 @@ bool SpdySession::CanPool(TransportSecurityState* transport_security_state, +@@ -754,7 +755,7 @@ bool SpdySession::CanPool(TransportSecurityState* transport_security_state, // Port is left at 0 as it is never used. if (transport_security_state->CheckPublicKeyPins( HostPortPair(new_hostname, 0), ssl_info.is_issued_by_known_root, @@ -693,7 +694,7 @@ diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc TransportSecurityState::PKPStatus::VIOLATED) { return false; } -@@ -968,7 +969,8 @@ bool SpdySession::VerifyDomainAuthentication(std::string_view domain) const { +@@ -977,7 +978,8 @@ bool SpdySession::VerifyDomainAuthentication(std::string_view domain) const { return true; // This is not a secure session, so all domains are okay. return CanPool(transport_security_state_, ssl_info, *ssl_config_service_, @@ -703,7 +704,7 @@ diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc } void SpdySession::EnqueueStreamWrite( -@@ -3005,7 +3007,8 @@ void SpdySession::OnAltSvc( +@@ -3011,7 +3013,8 @@ void SpdySession::OnAltSvc( return; } if (!CanPool(transport_security_state_, ssl_info, *ssl_config_service_, @@ -716,7 +717,7 @@ diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc diff --git a/net/spdy/spdy_session.h b/net/spdy/spdy_session.h --- a/net/spdy/spdy_session.h +++ b/net/spdy/spdy_session.h -@@ -314,7 +314,8 @@ class NET_EXPORT SpdySession +@@ -315,7 +315,8 @@ class NET_EXPORT SpdySession const SSLInfo& ssl_info, const SSLConfigService& ssl_config_service, std::string_view old_hostname, @@ -729,7 +730,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 -@@ -406,20 +406,6 @@ std::unique_ptr URLRequestContextBuilder::Build() { +@@ -407,20 +407,6 @@ std::unique_ptr URLRequestContextBuilder::Build() { context->set_transport_security_state( std::make_unique(hsts_policy_bypass_list_)); @@ -753,7 +754,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 -@@ -356,7 +356,8 @@ std::unique_ptr URLRequestHttpJob::Create(URLRequest* request) { +@@ -344,7 +344,8 @@ std::unique_ptr URLRequestHttpJob::Create(URLRequest* request) { if (TransportSecurityState* hsts = request->context()->transport_security_state()) { upgrade_decision = @@ -763,7 +764,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 -@@ -1190,7 +1191,7 @@ void URLRequestHttpJob::ProcessStrictTransportSecurityHeader() { +@@ -1204,7 +1205,7 @@ void URLRequestHttpJob::ProcessStrictTransportSecurityHeader() { std::optional value; if ((value = headers->EnumerateHeader(nullptr, "Strict-Transport-Security"))) { @@ -772,7 +773,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque } } -@@ -1261,7 +1262,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, @@ -784,7 +785,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 -@@ -1971,6 +1971,7 @@ void NetworkContext::CreateHostResolver( +@@ -2016,6 +2016,7 @@ void NetworkContext::CreateHostResolver( void NetworkContext::VerifyCertForSignedExchange( const scoped_refptr& certificate, const GURL& url, @@ -792,7 +793,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) { -@@ -1981,6 +1982,7 @@ void NetworkContext::VerifyCertForSignedExchange( +@@ -2026,6 +2027,7 @@ void NetworkContext::VerifyCertForSignedExchange( pending_cert_verify->result = std::make_unique(); pending_cert_verify->certificate = certificate; pending_cert_verify->url = url; @@ -800,7 +801,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 = -@@ -2023,17 +2025,19 @@ void NetworkContext::SetCorsOriginAccessListsForOrigin( +@@ -2070,17 +2072,19 @@ void NetworkContext::SetCorsOriginAccessListsForOrigin( std::move(callback).Run(); } @@ -823,7 +824,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(); -@@ -2043,10 +2047,10 @@ void NetworkContext::IsHSTSActiveForHost(const std::string& host, +@@ -2090,10 +2094,10 @@ void NetworkContext::IsHSTSActiveForHost(const std::string& host, return; } @@ -836,7 +837,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont GetHSTSStateCallback callback) { base::Value::Dict result; -@@ -2084,10 +2088,10 @@ void NetworkContext::GetHSTSState(const std::string& domain, +@@ -2131,10 +2135,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( @@ -849,7 +850,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)); -@@ -2125,6 +2129,7 @@ void NetworkContext::GetHSTSState(const std::string& domain, +@@ -2172,6 +2176,7 @@ void NetworkContext::GetHSTSState(const std::string& domain, } void NetworkContext::DeleteDynamicDataForHost( @@ -857,7 +858,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 = -@@ -2135,7 +2140,7 @@ void NetworkContext::DeleteDynamicDataForHost( +@@ -2182,7 +2187,7 @@ void NetworkContext::DeleteDynamicDataForHost( } std::move(callback).Run( @@ -866,33 +867,35 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont } void NetworkContext::EnableStaticKeyPinningForTesting( -@@ -2176,7 +2181,7 @@ void NetworkContext::PreconnectSockets( +@@ -2226,7 +2231,7 @@ void NetworkContext::PreconnectSockets( DCHECK(!require_network_anonymization_key_ || !network_anonymization_key.IsEmpty()); -- GURL url = GetHSTSRedirect(original_url); -+ GURL url = GetHSTSRedirect(network_anonymization_key, original_url); +- GURL url = GetHSTSRedirectForPreconnect(original_url); ++ GURL url = GetHSTSRedirectForPreconnect(network_anonymization_key, original_url); // |PreconnectSockets| may receive arguments from the renderer, which is not // guaranteed to validate them. -@@ -2993,12 +2998,15 @@ void NetworkContext::OnConnectionError() { - std::move(on_connection_close_callback_).Run(this); +@@ -3071,7 +3076,9 @@ void NetworkContext::OnConnectionError() { + } } --GURL NetworkContext::GetHSTSRedirect(const GURL& original_url) { -+GURL NetworkContext::GetHSTSRedirect( +-GURL NetworkContext::GetHSTSRedirectForPreconnect(const GURL& original_url) { ++GURL NetworkContext::GetHSTSRedirectForPreconnect( + const net::NetworkAnonymizationKey& network_anonymization_key, + const GURL& original_url) { // TODO(lilyhoughton) This needs to be gotten rid of once explicit // construction with a URLRequestContext is no longer supported. - if (!url_request_context_->transport_security_state() || - !original_url.SchemeIs("http") || - !url_request_context_->transport_security_state()->ShouldUpgradeToSSL( + +@@ -3088,6 +3095,7 @@ GURL NetworkContext::GetHSTSRedirectForPreconnect(const GURL& original_url) { + } + + if (!url_request_context_->transport_security_state()->ShouldUpgradeToSSL( + network_anonymization_key, original_url.host())) { - return original_url; - } -@@ -3046,7 +3054,8 @@ void NetworkContext::OnVerifyCertForSignedExchangeComplete( + RecordHSTSPreconnectUpgradeReason( + HSTSRedirectUpgradeReason::kNotUpgradedNoHSTSPin); +@@ -3139,7 +3147,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, @@ -930,17 +933,17 @@ diff --git a/services/network/network_context.h b/services/network/network_conte const std::string& host, DeleteDynamicDataForHostCallback callback) override; void SetCorsOriginAccessListsForOrigin( -@@ -746,7 +749,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -748,7 +751,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext mojo::PendingRemote cookie_observer, net::FirstPartySetMetadata first_party_set_metadata); -- GURL GetHSTSRedirect(const GURL& original_url); -+ GURL GetHSTSRedirect(const net::NetworkAnonymizationKey& network_anonymization_key, +- GURL GetHSTSRedirectForPreconnect(const GURL& original_url); ++ GURL GetHSTSRedirectForPreconnect(const net::NetworkAnonymizationKey& network_anonymization_key, + const GURL& original_url); #if BUILDFLAG(IS_P2P_ENABLED) void DestroySocketManager(P2PSocketManager* socket_manager); -@@ -944,6 +948,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -951,6 +955,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext VerifyCertForSignedExchangeCallback callback; scoped_refptr certificate; GURL url; @@ -951,7 +954,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 -@@ -1545,6 +1545,7 @@ interface NetworkContext { +@@ -1489,6 +1489,7 @@ interface NetworkContext { // implementation is currently specific for use by Signed Exchange. VerifyCertForSignedExchange(X509Certificate certificate, url.mojom.Url url, @@ -959,7 +962,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, -@@ -1552,16 +1553,16 @@ interface NetworkContext { +@@ -1496,16 +1497,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. @@ -979,7 +982,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 -@@ -1580,7 +1581,7 @@ interface NetworkContext { +@@ -1524,7 +1525,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 f5ab123bf..926894454 100644 --- a/build/patches/Partition-MediaDeviceId-by-default.patch +++ b/build/patches/Partition-MediaDeviceId-by-default.patch @@ -41,7 +41,7 @@ diff --git a/components/media_device_salt/media_device_salt_service.cc b/compone diff --git a/content/browser/media/media_devices_util.cc b/content/browser/media/media_devices_util.cc --- a/content/browser/media/media_devices_util.cc +++ b/content/browser/media/media_devices_util.cc -@@ -166,6 +166,9 @@ blink::WebMediaDeviceInfo TranslateMediaDeviceInfo( +@@ -164,6 +164,9 @@ blink::WebMediaDeviceInfo TranslateMediaDeviceInfo( bool has_permission, const MediaDeviceSaltAndOrigin& salt_and_origin, const blink::WebMediaDeviceInfo& device_info) { @@ -54,8 +54,8 @@ 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 -@@ -837,6 +837,11 @@ void MediaDevicesManager::OnDevicesEnumerated( - has_permissions[i], salt_and_origin, device_info)); +@@ -927,6 +927,11 @@ void MediaDevicesManager::OnDevicesEnumerated( + } } } +#if !BUILDFLAG(IS_ANDROID) diff --git a/build/patches/Partition-blobs-by-top-frame-URL.patch b/build/patches/Partition-blobs-by-top-frame-URL.patch index c78ec4712..ce546f937 100644 --- a/build/patches/Partition-blobs-by-top-frame-URL.patch +++ b/build/patches/Partition-blobs-by-top-frame-URL.patch @@ -8,12 +8,21 @@ 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 | 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(-) + .../Partition-blobs-by-top-frame-URL.inc | 1 + + storage/browser/blob/blob_url_store_impl.cc | 36 ++++++++++++++++++- + storage/browser/blob/blob_url_store_impl.h | 11 ++++++ + storage/browser/blob/features.cc | 1 + + .../public/mojom/blob/blob_url_store.mojom | 12 +++++-- + .../core/fileapi/public_url_manager.cc | 18 ++++++++++ + 6 files changed, 75 insertions(+), 4 deletions(-) + create mode 100644 cromite_flags/third_party/blink/common/features_cc/Partition-blobs-by-top-frame-URL.inc +diff --git a/cromite_flags/third_party/blink/common/features_cc/Partition-blobs-by-top-frame-URL.inc b/cromite_flags/third_party/blink/common/features_cc/Partition-blobs-by-top-frame-URL.inc +new file mode 100644 +--- /dev/null ++++ b/cromite_flags/third_party/blink/common/features_cc/Partition-blobs-by-top-frame-URL.inc +@@ -0,0 +1 @@ ++SET_CROMITE_FEATURE_ENABLED(kEnforceNoopenerOnBlobURLNavigation); 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 @@ -78,10 +87,37 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/ mojo::PendingRemote blob = registry_->GetBlobFromUrl(url); if (!blob) { std::move(callback).Run(std::nullopt); +@@ -162,11 +190,17 @@ void BlobURLStoreImpl::ResolveForNavigation( + void BlobURLStoreImpl::ResolveForWorkerScriptFetch( + const GURL& url, + mojo::PendingReceiver token, ++ const base::UnguessableToken& unsafe_agent_cluster_id, ++ const std::optional& unsafe_top_level_site, + ResolveForNavigationCallback callback) { + if (!registry_) { + std::move(callback).Run(std::nullopt); + return; + } ++ if (!IsSamePartition(url, unsafe_agent_cluster_id, unsafe_top_level_site)) { ++ std::move(callback).Run(std::nullopt); ++ return; ++ } + if (base::FeatureList::IsEnabled( + features::kBlockCrossPartitionBlobUrlFetching) && + !registry_->IsUrlMapped(BlobUrlUtils::ClearUrlFragment(url), +@@ -175,7 +209,7 @@ void BlobURLStoreImpl::ResolveForWorkerScriptFetch( + return; + } + +- ResolveForNavigation(url, std::move(token), std::move(callback)); ++ ResolveForNavigation(url, std::move(token), unsafe_agent_cluster_id, unsafe_top_level_site, std::move(callback)); + } + + bool BlobURLStoreImpl::BlobUrlIsValid(const GURL& url, 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 -@@ -48,10 +48,14 @@ class COMPONENT_EXPORT(STORAGE_BROWSER) BlobURLStoreImpl +@@ -48,14 +48,20 @@ class COMPONENT_EXPORT(STORAGE_BROWSER) BlobURLStoreImpl void ResolveAsURLLoaderFactory( const GURL& url, mojo::PendingReceiver receiver, @@ -92,11 +128,17 @@ diff --git a/storage/browser/blob/blob_url_store_impl.h b/storage/browser/blob/b const GURL& url, mojo::PendingReceiver token, + const base::UnguessableToken& unsafe_agent_cluster_id, ++ const std::optional& unsafe_top_level_site, + ResolveForNavigationCallback callback) override; + void ResolveForWorkerScriptFetch( + const GURL& url, + mojo::PendingReceiver token, ++ const base::UnguessableToken& unsafe_agent_cluster_id, + const std::optional& unsafe_top_level_site, ResolveForNavigationCallback callback) override; private: -@@ -61,6 +65,11 @@ class COMPONENT_EXPORT(STORAGE_BROWSER) BlobURLStoreImpl +@@ -65,6 +71,11 @@ class COMPONENT_EXPORT(STORAGE_BROWSER) BlobURLStoreImpl // `Revoke()`. bool BlobUrlIsValid(const GURL& url, const char* method) const; @@ -108,6 +150,17 @@ diff --git a/storage/browser/blob/blob_url_store_impl.h b/storage/browser/blob/b const blink::StorageKey storage_key_; // The origin used by the worker/document associated with this BlobURLStore on // the renderer side. This will almost always be the same as `storage_key_`'s +diff --git a/storage/browser/blob/features.cc b/storage/browser/blob/features.cc +--- a/storage/browser/blob/features.cc ++++ b/storage/browser/blob/features.cc +@@ -10,6 +10,7 @@ namespace features { + BASE_FEATURE(kBlockCrossPartitionBlobUrlFetching, + "BlockCrossPartitionBlobUrlFetching", + base::FEATURE_DISABLED_BY_DEFAULT); ++SET_CROMITE_FEATURE_ENABLED(kBlockCrossPartitionBlobUrlFetching); + + // Please keep features in alphabetical order. + 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 @@ -129,6 +182,17 @@ diff --git a/third_party/blink/public/mojom/blob/blob_url_store.mojom b/third_pa - pending_receiver token) => ( + pending_receiver token, + mojo_base.mojom.UnguessableToken unsafe_agent_cluster_id, ++ network.mojom.SchemefulSite? unsafe_top_level_site) => ( + // TODO(https://crbug.com/1224926): Remove this once experiment is over. + mojo_base.mojom.UnguessableToken? unsafe_agent_cluster_id); + +@@ -58,7 +62,9 @@ interface BlobURLStore { + // currently intended for use when fetching a dedicated / shared worker + // script. + ResolveForWorkerScriptFetch(url.mojom.Url url, +- pending_receiver token) => ( ++ pending_receiver token, ++ mojo_base.mojom.UnguessableToken unsafe_agent_cluster_id, + network.mojom.SchemefulSite? unsafe_top_level_site) => ( // TODO(https://crbug.com/1224926): Remove this once experiment is over. mojo_base.mojom.UnguessableToken? unsafe_agent_cluster_id); @@ -174,4 +238,12 @@ diff --git a/third_party/blink/renderer/core/fileapi/public_url_manager.cc b/thi WTF::BindOnce(metrics_callback, WrapPersistent(GetExecutionContext()))); } +@@ -318,6 +335,7 @@ void PublicURLManager::ResolveForWorkerScriptFetch( + + GetBlobURLStore().ResolveForWorkerScriptFetch( + url, std::move(token_receiver), ++ GetExecutionContext()->GetAgentClusterID(), GetInsecureTopLevelSite(GetExecutionContext()), + WTF::BindOnce(metrics_callback, WrapPersistent(GetExecutionContext()))); + } + -- diff --git a/build/patches/Partitioning-all-cookies-by-top-frame-domain.patch b/build/patches/Partitioning-all-cookies-by-top-frame-domain.patch index b0a512a57..9b999ad57 100644 --- a/build/patches/Partitioning-all-cookies-by-top-frame-domain.patch +++ b/build/patches/Partitioning-all-cookies-by-top-frame-domain.patch @@ -17,7 +17,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../experiment/experiment_manager_impl.cc | 1 + .../strings/android/site_settings.grdp | 4 +- .../core/browser/cookie_settings.cc | 4 +- - .../core/common/cookie_settings_base.cc | 52 +------------------ + .../core/common/cookie_settings_base.cc | 54 +------------------ ...ioning-all-cookies-by-top-frame-domain.inc | 3 ++ ...ioning-all-cookies-by-top-frame-domain.inc | 1 + ...ioning-all-cookies-by-top-frame-domain.inc | 1 + @@ -36,7 +36,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../modules/cookie_store/cookie_store.cc | 3 ++ .../cookie_store_delete_options.idl | 2 +- ui/webui/webui_allowlist.cc | 1 + - 27 files changed, 86 insertions(+), 80 deletions(-) + 27 files changed, 86 insertions(+), 82 deletions(-) create mode 100644 cromite_flags/components/content_settings/core/common/features_cc/Partitioning-all-cookies-by-top-frame-domain.inc create mode 100644 cromite_flags/components/permissions/features_cc/Partitioning-all-cookies-by-top-frame-domain.inc create mode 100644 cromite_flags/content/public/common/content_features_cc/Partitioning-all-cookies-by-top-frame-domain.inc @@ -46,7 +46,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 -@@ -3706,7 +3706,7 @@ bool IsFullCookieAccessAllowed(content::BrowserContext* browser_context, +@@ -3736,7 +3736,7 @@ bool IsFullCookieAccessAllowed(content::BrowserContext* browser_context, scoped_refptr cookie_settings = CookieSettingsFactory::GetForProfile(profile); if (!cookie_settings) { @@ -72,7 +72,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 -@@ -992,16 +992,16 @@ ProfileNetworkContextService::CreateCookieManagerParams( +@@ -1011,16 +1011,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. @@ -151,7 +151,7 @@ diff --git a/components/browser_ui/strings/android/site_settings.grdp b/componen Third-party cookies are blocked in Incognito mode -@@ -544,7 +544,7 @@ +@@ -550,7 +550,7 @@ Allow third-party cookies @@ -171,7 +171,7 @@ diff --git a/components/content_settings/core/browser/cookie_settings.cc b/compo if (url.is_empty() || first_party_url.is_empty()) { return; } -@@ -411,8 +412,7 @@ bool CookieSettings::ShouldBlockThirdPartyCookiesInternal() const { +@@ -413,8 +414,7 @@ bool CookieSettings::ShouldBlockThirdPartyCookiesInternal() const { } bool CookieSettings::MitigationsEnabledFor3pcdInternal() const { @@ -184,7 +184,7 @@ diff --git a/components/content_settings/core/browser/cookie_settings.cc b/compo diff --git a/components/content_settings/core/common/cookie_settings_base.cc b/components/content_settings/core/common/cookie_settings_base.cc --- a/components/content_settings/core/common/cookie_settings_base.cc +++ b/components/content_settings/core/common/cookie_settings_base.cc -@@ -538,66 +538,16 @@ CookieSettingsBase::DecideAccess( +@@ -544,68 +544,16 @@ CookieSettingsBase::DecideAccess( ThirdPartyCookieAllowMechanism::kAllowByGlobalSetting}; } @@ -215,11 +215,12 @@ diff --git a/components/content_settings/core/common/cookie_settings_base.cc b/c - } - - // Chrome controlled mechanisms (ex. 3PCD Metadata Grants): -- SettingInfo tpcd_metadata_info; -- if (IsAllowedBy3pcdMetadataGrantsSettings(url, first_party_url, overrides, -- &tpcd_metadata_info)) { +- if (IsAllowedWithMetadata tpcd_metadata_info = +- IsAllowedBy3pcdMetadataGrantsSettings(url, first_party_url, +- overrides); +- tpcd_metadata_info.allowed) { - return AllowAllCookies{TpcdMetadataSourceToAllowMechanism( -- tpcd_metadata_info.metadata.tpcd_metadata_rule_source())}; +- tpcd_metadata_info.info.metadata.tpcd_metadata_rule_source())}; - } - if (is_explicit_setting) { @@ -241,9 +242,10 @@ diff --git a/components/content_settings/core/common/cookie_settings_base.cc b/c - } - - // Check for a TRACKING_PROTECTION exception, which should also disable 3PCB. -- SettingInfo tp_info; -- if (IsAllowedByTrackingProtectionSetting(url, first_party_url, tp_info)) { -- setting_info = tp_info; +- if (IsAllowedWithMetadata tp_info = +- IsAllowedByTrackingProtectionSetting(url, first_party_url); +- tp_info.allowed) { +- setting_info = std::move(tp_info.info); - return AllowAllCookies{ - ThirdPartyCookieAllowMechanism::kAllowByTrackingProtectionException}; - } @@ -251,7 +253,7 @@ diff --git a/components/content_settings/core/common/cookie_settings_base.cc b/c return AllowPartitionedCookies{}; } -@@ -629,7 +579,7 @@ CookieSettingsBase::GetCookieSettingInternal( +@@ -634,7 +582,7 @@ CookieSettingsBase::GetCookieSettingInternal( } return CookieSettingWithMetadata{/*cookie_setting=*/CONTENT_SETTING_ALLOW, /*allow_partitioned_cookies=*/true, @@ -259,7 +261,7 @@ diff --git a/components/content_settings/core/common/cookie_settings_base.cc b/c + /*is_explicit_setting=*/true, /*third_party_cookie_allow_mechanism=*/ ThirdPartyCookieAllowMechanism::kNone, - is_third_party_request}; + /*is_third_party_request=*/false}; diff --git a/cromite_flags/components/content_settings/core/common/features_cc/Partitioning-all-cookies-by-top-frame-domain.inc b/cromite_flags/components/content_settings/core/common/features_cc/Partitioning-all-cookies-by-top-frame-domain.inc new file mode 100644 --- /dev/null @@ -310,7 +312,7 @@ new file mode 100644 diff --git a/net/cookies/canonical_cookie.cc b/net/cookies/canonical_cookie.cc --- a/net/cookies/canonical_cookie.cc +++ b/net/cookies/canonical_cookie.cc -@@ -991,9 +991,6 @@ bool CanonicalCookie::IsCanonicalForFromStorage() const { +@@ -992,9 +992,6 @@ bool CanonicalCookie::IsCanonicalForFromStorage() const { if (CookiePartitionKey::HasNonce(PartitionKey())) { return true; } @@ -381,7 +383,7 @@ diff --git a/net/cookies/parsed_cookie.h b/net/cookies/parsed_cookie.h diff --git a/net/extras/sqlite/sqlite_persistent_cookie_store.cc b/net/extras/sqlite/sqlite_persistent_cookie_store.cc --- a/net/extras/sqlite/sqlite_persistent_cookie_store.cc +++ b/net/extras/sqlite/sqlite_persistent_cookie_store.cc -@@ -899,6 +899,14 @@ bool SQLitePersistentCookieStore::Backend::DoInitializeDatabase() { +@@ -897,6 +897,14 @@ bool SQLitePersistentCookieStore::Backend::DoInitializeDatabase() { if (!restore_old_session_cookies_) DeleteSessionCookiesOnStartup(); @@ -399,7 +401,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 -@@ -863,13 +863,9 @@ void URLRequestHttpJob::SetCookieHeaderAndStart( +@@ -840,13 +840,9 @@ void URLRequestHttpJob::SetCookieHeaderAndStart( AnnotateAndMoveUserBlockedCookies(maybe_included_cookies, excluded_cookies); } @@ -419,7 +421,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque diff --git a/services/network/cookie_settings.cc b/services/network/cookie_settings.cc --- a/services/network/cookie_settings.cc +++ b/services/network/cookie_settings.cc -@@ -45,8 +45,7 @@ namespace network { +@@ -44,8 +44,7 @@ namespace network { namespace { bool ShouldApply3pcdRelatedReasons(const net::CanonicalCookie& cookie) { @@ -429,7 +431,7 @@ diff --git a/services/network/cookie_settings.cc b/services/network/cookie_setti } bool IsValidType(ContentSettingsType type) { -@@ -113,8 +112,7 @@ bool IsOriginOpaqueHttpOrHttps(const url::Origin* top_frame_origin) { +@@ -113,8 +112,7 @@ bool IsOriginOpaqueHttpOrHttps( // static bool CookieSettings::IsCookieAllowed(const net::CanonicalCookie& cookie, const CookieSettingWithMetadata& setting) { diff --git a/build/patches/Private-network-access-content-settings.patch b/build/patches/Private-network-access-content-settings.patch index 7d2f5ff41..f2f952e14 100644 --- a/build/patches/Private-network-access-content-settings.patch +++ b/build/patches/Private-network-access-content-settings.patch @@ -7,13 +7,13 @@ user choice in desktop platforms. License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- - .../browser/chrome_content_browser_client.cc | 3 +- + .../browser/chrome_content_browser_client.cc | 2 +- ...eInsecurePrivateNetworkContentSetting.java | 93 +++++++++++++++++++ .../insecure_private_network.grdp | 18 ++++ .../insecure_private_network.inc | 16 ++++ services/network/cors/cors_url_loader.cc | 8 +- .../network/private_network_access_checker.cc | 16 +++- - 6 files changed, 144 insertions(+), 10 deletions(-) + 6 files changed, 144 insertions(+), 9 deletions(-) create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromiteInsecurePrivateNetworkContentSetting.java create mode 100644 components/browser_ui/strings/bromite_content_settings/insecure_private_network.grdp create mode 100644 components/content_settings/core/browser/bromite_content_settings/insecure_private_network.inc @@ -21,13 +21,12 @@ 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 -@@ -7950,8 +7950,7 @@ ChromeContentBrowserClient::ShouldOverridePrivateNetworkRequestPolicy( +@@ -7945,7 +7945,7 @@ ChromeContentBrowserClient::ShouldOverridePrivateNetworkRequestPolicy( + } #if BUILDFLAG(IS_ANDROID) - if (base::FeatureList::IsEnabled( -- kPrivateNetworkAccessRestrictionsForAutomotive) && -- base::android::BuildInfo::GetInstance()->is_automotive()) { -+ kPrivateNetworkAccessRestrictionsForAutomotive)) { +- if (base::android::BuildInfo::GetInstance()->is_automotive()) { ++ if ((true)) { return content::ContentBrowserClient::PrivateNetworkRequestPolicyOverride:: kBlockInsteadOfWarn; } @@ -176,7 +175,7 @@ new file mode 100644 diff --git a/services/network/cors/cors_url_loader.cc b/services/network/cors/cors_url_loader.cc --- a/services/network/cors/cors_url_loader.cc +++ b/services/network/cors/cors_url_loader.cc -@@ -1068,7 +1068,7 @@ std::optional CorsURLLoader::ConvertPreflightResult( +@@ -1065,7 +1065,7 @@ std::optional CorsURLLoader::ConvertPreflightResult( } // Private Network Access warning: ignore net and CORS errors. @@ -185,7 +184,7 @@ diff --git a/services/network/cors/cors_url_loader.cc b/services/network/cors/co CHECK(ShouldIgnorePrivateNetworkAccessErrors( request_.required_ip_address_space)); CHECK_EQ(*reason, PreflightRequiredReason::kPrivateNetworkAccess); -@@ -1392,12 +1392,6 @@ bool CorsURLLoader::ShouldIgnorePrivateNetworkAccessErrors( +@@ -1389,12 +1389,6 @@ bool CorsURLLoader::ShouldIgnorePrivateNetworkAccessErrors( if (!state) { return false; } @@ -223,7 +222,7 @@ diff --git a/services/network/private_network_access_checker.cc b/services/netwo using Result = PrivateNetworkAccessCheckResult; using Policy = mojom::PrivateNetworkRequestPolicy; -@@ -292,11 +300,17 @@ bool PrivateNetworkAccessChecker::NeedPermission( +@@ -290,11 +298,17 @@ bool PrivateNetworkAccessChecker::NeedPermission( const GURL& url, bool is_web_secure_context, mojom::IPAddressSpace target_address_space) { 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 7df903fbf..22f6230c5 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,10 +45,10 @@ 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 -@@ -198,6 +198,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { - &kBackGestureMoveToBackDuringStartup, - &kBackGestureRefactorAndroid, - &kBackToHomeAnimation, +@@ -197,6 +197,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { + &kAutomotiveFullscreenToolbarImprovements, + &kAuxiliarySearchDonation, + &kAvoidSelectedTabFocusOnLayoutDoneShowing, + &kCloseAllTabsModalDialog, &kBackgroundThreadPool, &kBlockIntentsWhileLocked, @@ -56,14 +56,14 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -278,6 +278,7 @@ public abstract class ChromeFeatureList { - public static final String CCT_PREWARM_TAB = "CCTPrewarmTab"; - public static final String CCT_REPORT_PARALLEL_REQUEST_STATUS = - "CCTReportParallelRequestStatus"; +@@ -276,6 +276,7 @@ public abstract class ChromeFeatureList { + public static final String CHROME_SURVEY_NEXT_ANDROID = "ChromeSurveyNextAndroid"; + public static final String CHROME_SHARE_PAGE_INFO = "ChromeSharePageInfo"; + public static final String CLANK_STARTUP_LATENCY_INJECTION = "ClankStartupLatencyInjection"; + public static final String CLOSE_ALL_TABS_MODAL_DIALOG = "CloseAllTabsModalDialog"; - public static final String CCT_RESIZABLE_FOR_THIRD_PARTIES = "CCTResizableForThirdParties"; - public static final String CCT_REVAMPED_BRANDING = "CCTRevampedBranding"; - public static final String CCT_TAB_MODAL_DIALOG = "CCTTabModalDialog"; + public static final String COLLECT_ANDROID_FRAME_TIMELINE_METRICS = + "CollectAndroidFrameTimelineMetrics"; + public static final String COMMAND_LINE_ON_NON_ROOTED = "CommandLineOnNonRooted"; diff --git a/cromite_flags/chrome/browser/about_flags_cc/Re-introduce-modal-dialog-flag-to-close-all-tabs.inc b/cromite_flags/chrome/browser/about_flags_cc/Re-introduce-modal-dialog-flag-to-close-all-tabs.inc new file mode 100644 --- /dev/null diff --git a/build/patches/Re-introduce-override_build_timestamp.patch b/build/patches/Re-introduce-override_build_timestamp.patch index 5e140523d..00464f1eb 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 -@@ -4169,8 +4169,13 @@ action("build_date") { +@@ -4181,8 +4181,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 987e1ac39..781f1ca8b 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 @@ -23,7 +23,7 @@ diff --git a/net/base/load_flags_list.h b/net/base/load_flags_list.h diff --git a/net/dns/dns_transaction.cc b/net/dns/dns_transaction.cc --- a/net/dns/dns_transaction.cc +++ b/net/dns/dns_transaction.cc -@@ -484,7 +484,7 @@ class DnsHTTPAttempt : public DnsAttempt, public URLRequest::Delegate { +@@ -483,7 +483,7 @@ class DnsHTTPAttempt : public DnsAttempt, public URLRequest::Delegate { // avoid deadlock and enable the use of preconfigured IP addresses. request_->SetSecureDnsPolicy(SecureDnsPolicy::kBootstrap); request_->SetLoadFlags(request_->load_flags() | LOAD_DISABLE_CACHE | @@ -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 -@@ -520,6 +520,7 @@ void URLRequestHttpJob::OnGotFirstPartySetMetadata( +@@ -499,6 +499,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()) { -@@ -527,11 +528,14 @@ void URLRequestHttpJob::OnGotFirstPartySetMetadata( +@@ -506,11 +507,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(); -@@ -777,10 +781,10 @@ void URLRequestHttpJob::StartTransactionInternal() { +@@ -755,10 +759,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 0f257ca36..5c6cb9ca1 100644 --- a/build/patches/Remove-ChromiumNetworkAdapter.patch +++ b/build/patches/Remove-ChromiumNetworkAdapter.patch @@ -298,7 +298,7 @@ diff --git a/components/variations/android/java/src/org/chromium/components/vari @VisibleForTesting protected List getAvailableInstanceManipulations() { List compressions = new ArrayList(); -@@ -530,24 +522,8 @@ public class VariationsSeedFetcher { +@@ -531,24 +523,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 1194f34a5..5478f3de4 100644 --- a/build/patches/Remove-HTTP-referrals-in-cross-origin-navigation.patch +++ b/build/patches/Remove-HTTP-referrals-in-cross-origin-navigation.patch @@ -44,7 +44,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni --- a/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni -@@ -633,6 +633,8 @@ chrome_java_resources = [ +@@ -634,6 +634,8 @@ chrome_java_resources = [ "java/res/xml/personalize_google_services_preferences.xml", "java/res/xml/incognito_preferences.xml", "java/res/xml/privacy_preferences.xml", @@ -56,7 +56,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 -@@ -967,6 +967,8 @@ chrome_java_sources = [ +@@ -962,6 +962,8 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxSurveyController.java", "java/src/org/chromium/chrome/browser/privacy_sandbox/TrackingProtectionSnackbarController.java", "java/src/org/chromium/chrome/browser/privacy_sandbox/TrackingProtectionSnackbarLimiter.java", @@ -178,7 +178,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import org.chromium.chrome.browser.privacy.secure_dns.SecureDnsSettings; import org.chromium.chrome.browser.privacy_guide.PrivacyGuideInteractions; import org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxBridge; -@@ -87,6 +88,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -88,6 +89,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private static final String PREF_USAGE_STATS = "usage_stats_reporting"; private static final String PREF_SAFE_BROWSING = "safe_browsing"; private static final String PREF_SYNC_AND_SERVICES_LINK = "sync_and_services_link"; @@ -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 -@@ -218,6 +218,11 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { +@@ -219,6 +219,11 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { (*s_allowlist)[::prefs::kExpireDaysThreshold] = settings_api::PrefType::kNumber; @@ -394,7 +394,7 @@ diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chro 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 -@@ -601,6 +601,9 @@ SystemNetworkContextManager::SystemNetworkContextManager( +@@ -602,6 +602,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( -@@ -682,6 +685,7 @@ void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) { +@@ -683,6 +686,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); @@ -415,7 +415,7 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows diff --git a/chrome/browser/renderer_preferences_util.cc b/chrome/browser/renderer_preferences_util.cc --- a/chrome/browser/renderer_preferences_util.cc +++ b/chrome/browser/renderer_preferences_util.cc -@@ -114,6 +114,7 @@ void UpdateFromSystemSettings(blink::RendererPreferences* prefs, +@@ -110,6 +110,7 @@ void UpdateFromSystemSettings(blink::RendererPreferences* prefs, prefs->accept_languages = GetLanguageListForProfile( profile, pref_service->GetString(language::prefs::kAcceptLanguages)); prefs->enable_referrers = pref_service->GetBoolean(prefs::kEnableReferrers); @@ -464,7 +464,7 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.ts b/ch /** * Preferences state. */ -@@ -500,6 +511,12 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase { +@@ -507,6 +518,12 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase { Router.getInstance().navigateTo(routes.TRACKING_PROTECTION); } @@ -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 -@@ -1217,6 +1217,30 @@ For more settings that use data to improve your Chrome experience, go to @@ -522,7 +522,7 @@ diff --git a/chrome/browser/ui/prefs/pref_watcher.cc b/chrome/browser/ui/prefs/p + renderer_callback); profile_pref_change_registrar_.Add(prefs::kEnableEncryptedMedia, renderer_callback); - profile_pref_change_registrar_.Add( + profile_pref_change_registrar_.Add(prefs::kWebRTCIPHandlingPolicy, 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 @@ -533,12 +533,12 @@ diff --git a/chrome/browser/ui/prefs/prefs_tab_helper.cc b/chrome/browser/ui/pre + registry->RegisterIntegerPref( + prefs::kReferrersPolicy, 2); // NoCrossOriginReferer registry->RegisterBooleanPref(prefs::kEnableEncryptedMedia, true); - registry->RegisterStringPref(prefs::kPrefixedVideoFullscreenApiAvailability, - "runtime-enabled"); + registry->RegisterBooleanPref(prefs::kScrollToTextFragmentEnabled, false); + #if BUILDFLAG(IS_ANDROID) 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 -@@ -1903,6 +1903,10 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, +@@ -1881,6 +1881,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,9 +552,9 @@ 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 -@@ -1617,6 +1617,9 @@ inline constexpr char kEnableEncryptedMedia[] = - inline constexpr char kPrefixedVideoFullscreenApiAvailability[] = - "media.prefixed_fullscreen_video_api_availability"; +@@ -1579,6 +1579,9 @@ inline constexpr char kEnableReferrers[] = "enable_referrers"; + inline constexpr char kEnableEncryptedMedia[] = + "webkit.webprefs.encrypted_media_enabled"; +// Set referrer policy. +inline constexpr char kReferrersPolicy[] = "referrers_policy"; @@ -634,7 +634,7 @@ diff --git a/content/browser/renderer_host/navigation_request.cc b/content/brows diff --git a/services/network/public/cpp/resource_request.h b/services/network/public/cpp/resource_request.h --- a/services/network/public/cpp/resource_request.h +++ b/services/network/public/cpp/resource_request.h -@@ -148,7 +148,7 @@ struct COMPONENT_EXPORT(NETWORK_CPP_BASE) ResourceRequest { +@@ -149,7 +149,7 @@ struct COMPONENT_EXPORT(NETWORK_CPP_BASE) ResourceRequest { std::vector navigation_redirect_chain; GURL referrer; diff --git a/build/patches/Remove-SMS-integration.patch b/build/patches/Remove-SMS-integration.patch index e626bcfcf..5a3589a07 100644 --- a/build/patches/Remove-SMS-integration.patch +++ b/build/patches/Remove-SMS-integration.patch @@ -383,9 +383,9 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/sms/Sm diff --git a/content/public/android/java/src/org/chromium/content/browser/sms/Wrappers.java b/content/public/android/java/src/org/chromium/content/browser/sms/Wrappers.java --- a/content/public/android/java/src/org/chromium/content/browser/sms/Wrappers.java +++ b/content/public/android/java/src/org/chromium/content/browser/sms/Wrappers.java -@@ -14,27 +14,15 @@ import android.os.Handler; - - import androidx.annotation.RequiresApi; +@@ -11,27 +11,15 @@ import android.content.Intent; + import android.content.IntentFilter; + import android.os.Handler; -import com.google.android.gms.auth.api.phone.SmsCodeBrowserClient; -import com.google.android.gms.auth.api.phone.SmsCodeRetriever; @@ -412,7 +412,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/sms/Wr } public void setContext(WebOTPServiceContext context) { -@@ -44,14 +32,6 @@ class Wrappers { +@@ -41,14 +29,6 @@ class Wrappers { public WebOTPServiceContext getContext() { return mContext; } @@ -427,7 +427,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/sms/Wr } /** -@@ -81,11 +61,6 @@ class Wrappers { +@@ -78,11 +58,6 @@ class Wrappers { } private void onRegisterReceiver(BroadcastReceiver receiver, IntentFilter filter) { 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 367bd3295..c8fe626b7 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 -@@ -600,6 +600,9 @@ bool ResourceLoader::WillFollowRedirect( +@@ -596,6 +596,9 @@ bool ResourceLoader::WillFollowRedirect( new_url)) { fetcher_->GetUseCounter().CountUse( mojom::WebFeature::kAuthorizationCrossOrigin); diff --git a/build/patches/Remove-binary-blob-integrations.patch b/build/patches/Remove-binary-blob-integrations.patch index ccd2282fc..dfdb51eb5 100644 --- a/build/patches/Remove-binary-blob-integrations.patch +++ b/build/patches/Remove-binary-blob-integrations.patch @@ -29,17 +29,15 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html build/config/android/config.gni | 4 +- chrome/android/BUILD.gn | 46 +- chrome/android/chrome_java_sources.gni | 5 - - .../features/cablev2_authenticator/BUILD.gn | 2 - chrome/android/java/AndroidManifest.xml | 50 -- .../org/chromium/chrome/browser/AppHooks.java | 1 - .../browser/ChromeBackgroundService.java | 11 +- .../browser/PlayServicesVersionInfo.java | 11 +- .../ChromeBackgroundTaskFactory.java | 3 - .../gcore/ChromeGoogleApiClientImpl.java | 25 +- - .../browser/gcore/GoogleApiClientHelper.java | 89 +-- + .../browser/gcore/GoogleApiClientHelper.java | 89 +- .../instantapps/InstantAppsHandler.java | 6 +- .../settings/PasswordSettings.java | 9 - - .../modules/chrome_feature_modules.gni | 3 - chrome/browser/language/android/BUILD.gn | 3 - .../language/AppLanguagePromoDialog.java | 31 - .../language/settings/LanguageSettings.java | 6 - @@ -50,7 +48,6 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../PasswordManagerHelper.java | 9 - ...swordSyncControllerDelegateBridgeImpl.java | 7 - .../push_messaging_service_factory.cc | 8 +- - chrome/browser/resources/settings/route.ts | 2 - chrome/browser/ui/BUILD.gn | 3 - chrome/browser/ui/android/omnibox/BUILD.gn | 4 - .../FullscreenSigninMediator.java | 12 +- @@ -83,17 +80,17 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../media_router/caf/CastUtils.java | 8 - .../CafExpandedControllerActivity.java | 35 +- .../CafRemotingMediaRouteProvider.java | 4 +- - .../remoting/FlingingControllerAdapter.java | 89 --- + .../remoting/FlingingControllerAdapter.java | 89 -- .../caf/remoting/RemotingMediaSource.java | 8 +- .../remoting/RemotingSessionController.java | 30 - .../test/android/cast_emulator/BUILD.gn | 1 - components/module_installer/android/BUILD.gn | 4 - components/signin/public/android/BUILD.gn | 3 - .../signin/AccountRenameChecker.java | 16 - - components/webauthn/android/BUILD.gn | 14 +- - .../webauthn/AuthenticatorImpl.java | 81 +- + components/webauthn/android/BUILD.gn | 15 +- + .../webauthn/AuthenticatorImpl.java | 79 +- .../webauthn/ConditionalUiState.java | 15 + - .../components/webauthn/GmsCoreUtils.java | 25 +- + .../components/webauthn/GmsCoreUtils.java | 28 +- .../webauthn/WebauthnModeProvider.java | 15 - .../webauthn/cred_man/CredManHelper.java | 16 +- .../cred_man/CredManMetricsHelper.java | 2 +- @@ -102,14 +99,15 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../webid/IdentityCredentialsDelegate.java | 84 +- content/test/BUILD.gn | 4 - device/BUILD.gn | 3 - + device/fido/features.cc | 1 + services/BUILD.gn | 9 - services/device/geolocation/BUILD.gn | 4 - services/shape_detection/BUILD.gn | 2 - - third_party/android_deps/BUILD.gn | 721 +----------------- + third_party/android_deps/BUILD.gn | 764 +----------------- .../preconditions/javatests/BUILD.gn | 1 - .../gms/ChromiumPlayServicesAvailability.java | 10 +- third_party/cardboard/BUILD.gn | 4 - - 85 files changed, 116 insertions(+), 2320 deletions(-) + 83 files changed, 117 insertions(+), 2358 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 @@ -163,7 +161,7 @@ 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 -@@ -306,14 +306,6 @@ if (current_toolchain == default_toolchain) { +@@ -312,14 +312,6 @@ if (current_toolchain == default_toolchain) { ":google_api_keys_java", ":java_overlay_resources", ":usage_stats_proto_java", @@ -178,7 +176,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//base:content_uri_utils_java", "//base:service_loader_java", "//base/version_info/android:version_constants_java", -@@ -689,13 +681,23 @@ if (current_toolchain == default_toolchain) { +@@ -703,13 +695,23 @@ if (current_toolchain == default_toolchain) { "//services/shape_detection:shape_detection_java", "//services/shape_detection/public/mojom:mojom_java", "//skia/public/mojom:mojom_java", @@ -204,7 +202,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", -@@ -959,12 +961,6 @@ if (current_toolchain == default_toolchain) { +@@ -976,12 +978,6 @@ if (current_toolchain == default_toolchain) { ":chrome_jni_headers", ":chrome_unit_test_util_java", ":delegate_public_impl_java", @@ -217,7 +215,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", -@@ -1659,13 +1655,6 @@ if (current_toolchain == default_toolchain) { +@@ -1685,13 +1681,6 @@ if (current_toolchain == default_toolchain) { ":chrome_app_java_resources", ":chrome_test_util_java", ":delegate_public_impl_java", @@ -231,7 +229,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", -@@ -2579,7 +2568,6 @@ if (current_toolchain == default_toolchain) { +@@ -2610,7 +2599,6 @@ if (current_toolchain == default_toolchain) { ] deps = [ ":chrome_java", @@ -239,7 +237,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", -@@ -2681,7 +2669,6 @@ if (current_toolchain == default_toolchain) { +@@ -2712,7 +2700,6 @@ if (current_toolchain == default_toolchain) { # is in a DFM. android_library("base_module_java") { sources = [ @@ -247,7 +245,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "java/src/org/chromium/chrome/app/TrichromeZygotePreload.java", "java/src/org/chromium/chrome/browser/ChromeBackgroundService.java", "java/src/org/chromium/chrome/browser/DeferredStartupHandler.java", -@@ -2698,8 +2685,6 @@ if (current_toolchain == default_toolchain) { +@@ -2729,8 +2716,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", @@ -256,7 +254,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", -@@ -2723,15 +2708,10 @@ if (current_toolchain == default_toolchain) { +@@ -2754,15 +2739,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,15 +270,15 @@ 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", -@@ -2745,7 +2725,6 @@ if (current_toolchain == default_toolchain) { - "//components/media_router/browser/android:cast_options_provider_java", +@@ -2777,7 +2757,6 @@ if (current_toolchain == default_toolchain) { "//components/minidump_uploader:minidump_uploader_java", "//components/module_installer/android:module_installer_java", + "//third_party/android_deps:com_google_dagger_hilt_core_java", - "//third_party/android_deps:playcore_java", "//third_party/androidx:androidx_annotation_annotation_java", "//third_party/androidx:androidx_collection_collection_java", "//third_party/jni_zero:jni_zero_java", -@@ -2765,7 +2744,6 @@ if (current_toolchain == default_toolchain) { +@@ -2797,7 +2776,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. @@ -291,7 +289,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 -@@ -12,7 +12,6 @@ chrome_java_sources = [ +@@ -13,7 +13,6 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/ChromeActionModeHandler.java", "java/src/org/chromium/chrome/browser/ChromeActivitySessionTracker.java", "java/src/org/chromium/chrome/browser/ChromeApplicationImpl.java", @@ -299,7 +297,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java "java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java", "java/src/org/chromium/chrome/browser/ChromeInactivityTracker.java", "java/src/org/chromium/chrome/browser/ChromeKeyboardVisibilityDelegate.java", -@@ -993,10 +992,6 @@ chrome_java_sources = [ +@@ -988,10 +987,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", @@ -310,18 +308,6 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java "java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java", "java/src/org/chromium/chrome/browser/settings/MainSettings.java", "java/src/org/chromium/chrome/browser/settings/SettingsActivity.java", -diff --git a/chrome/android/features/cablev2_authenticator/BUILD.gn b/chrome/android/features/cablev2_authenticator/BUILD.gn ---- a/chrome/android/features/cablev2_authenticator/BUILD.gn -+++ b/chrome/android/features/cablev2_authenticator/BUILD.gn -@@ -16,8 +16,6 @@ android_library("java") { - - deps = [ - ":java_resources", -- "$google_play_services_package:google_play_services_base_java", -- "$google_play_services_package:google_play_services_tasks_java", - "//base:base_java", - "//build/android:build_java", - "//chrome/browser/webauthn/android:java_resources", diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml --- a/chrome/android/java/AndroidManifest.xml +++ b/chrome/android/java/AndroidManifest.xml @@ -362,7 +348,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro @@ -389,7 +375,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -@@ -1014,15 +979,6 @@ by a child template that "extends" this file. +@@ -999,15 +964,6 @@ by a child template that "extends" this file. android:exported="false" android:permission="android.permission.BIND_JOB_SERVICE"/> @@ -405,7 +391,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -@@ -1276,12 +1232,6 @@ by a child template that "extends" this file. +@@ -1268,12 +1224,6 @@ by a child template that "extends" this file. {% endif %} @@ -470,7 +456,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/PlayServicesVer final long installedGmsVersion = getApkVersionNumber(); final String accessType; -@@ -49,11 +47,6 @@ public class PlayServicesVersionInfo { +@@ -48,11 +46,6 @@ public class PlayServicesVersionInfo { * package is not found. */ public static int getApkVersionNumber() { @@ -486,7 +472,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/PlayServicesVer diff --git a/chrome/android/java/src/org/chromium/chrome/browser/background_task_scheduler/ChromeBackgroundTaskFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/background_task_scheduler/ChromeBackgroundTaskFactory.java --- a/chrome/android/java/src/org/chromium/chrome/browser/background_task_scheduler/ChromeBackgroundTaskFactory.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/background_task_scheduler/ChromeBackgroundTaskFactory.java -@@ -15,7 +15,6 @@ import org.chromium.chrome.browser.notifications.scheduler.NotificationScheduler +@@ -16,7 +16,6 @@ import org.chromium.chrome.browser.notifications.scheduler.NotificationScheduler import org.chromium.chrome.browser.offlinepages.OfflineBackgroundTask; import org.chromium.chrome.browser.omaha.OmahaService; import org.chromium.chrome.browser.safety_hub.SafetyHubFetchTask; @@ -494,7 +480,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/background_task import org.chromium.chrome.browser.webapps.WebApkUpdateTask; import org.chromium.components.background_task_scheduler.BackgroundTask; import org.chromium.components.background_task_scheduler.BackgroundTaskFactory; -@@ -57,8 +56,6 @@ public class ChromeBackgroundTaskFactory implements BackgroundTaskFactory { +@@ -58,8 +57,6 @@ public class ChromeBackgroundTaskFactory implements BackgroundTaskFactory { switch (taskId) { case TaskIds.OMAHA_JOB_ID: return new OmahaService(); @@ -761,7 +747,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage if (mTrustedVaultBannerState == TrustedVaultBannerState.OPTED_IN) { createTrustedVaultBanner( -@@ -525,10 +520,6 @@ public class PasswordSettings extends ChromeBaseSettingsFragment +@@ -527,10 +522,6 @@ public class PasswordSettings extends ChromeBaseSettingsFragment // by the system. if (getActivity().isFinishing()) { PasswordManagerHandlerProvider.getForProfile(getProfile()).removeObserver(this); @@ -772,26 +758,6 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage } } -diff --git a/chrome/android/modules/chrome_feature_modules.gni b/chrome/android/modules/chrome_feature_modules.gni ---- a/chrome/android/modules/chrome_feature_modules.gni -+++ b/chrome/android/modules/chrome_feature_modules.gni -@@ -5,8 +5,6 @@ - import("//build/config/android/config.gni") - import("//chrome/android/features/dev_ui/dev_ui_module.gni") - import("//chrome/android/modules/buildflags.gni") --import( -- "//chrome/android/modules/cablev2_authenticator/cablev2_authenticator_module.gni") - import("//chrome/android/modules/stack_unwinder/stack_unwinder_module.gni") - import("//chrome/android/modules/test_dummy/test_dummy_module.gni") - import("//device/vr/buildflags/buildflags.gni") -@@ -34,7 +32,6 @@ if (enable_arcore) { - # Each new module needs to add a desc to one of the lists below. - - chrome_module_descs = [ -- cablev2_authenticator_module_desc, - test_dummy_module_desc, - stack_unwinder_module_desc, - ] diff --git a/chrome/browser/language/android/BUILD.gn b/chrome/browser/language/android/BUILD.gn --- a/chrome/browser/language/android/BUILD.gn +++ b/chrome/browser/language/android/BUILD.gn @@ -814,7 +780,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 -@@ -583,12 +583,6 @@ public class AppLanguagePromoDialog { +@@ -584,12 +584,6 @@ public class AppLanguagePromoDialog { mLoadingModal.set(ModalDialogProperties.CUSTOM_VIEW, customView); @@ -824,10 +790,10 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse - mModalDialogManager.showDialog(mLoadingModal, ModalDialogManager.ModalDialogType.APP); - } - - boolean isSelectedCurrentUI = AppLocaleUtils.isAppLanguagePref(selectedLanguage.getCode()); - if (!isSelectedCurrentUI) { + boolean isSelectedCurrentUi = AppLocaleUtils.isAppLanguagePref(selectedLanguage.getCode()); + if (!isSelectedCurrentUi) { // Only record isTopLanguage if the app language has changed. -@@ -596,31 +590,6 @@ public class AppLanguagePromoDialog { +@@ -597,31 +591,6 @@ public class AppLanguagePromoDialog { } AndroidLanguageMetricsBridge.reportAppLanguagePromptLanguage( selectedLanguage.isSystemDefault() ? "" : selectedLanguage.getCode()); @@ -837,7 +803,7 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse - selectedLanguage.getCode(), - (success) -> { - if (success) { -- if (!isSelectedCurrentUI) { +- if (!isSelectedCurrentUi) { - // Only restart if the new language is different than the current UI. - mRestartAction.restart(); - } @@ -873,7 +839,7 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse @@ -138,11 +137,6 @@ public class LanguageSettings extends ChromeBaseSettingsFragment * translate target language, and detailed translate preferences. */ - private void createDetailedPreferences(Bundle savedInstanceState) { + private void createDetailedPreferences() { - // Log currently installed language splits. - String installedLanguages = - TextUtils.join(",", LanguageSplitInstaller.getInstance().getInstalledLanguages()); @@ -913,7 +879,7 @@ diff --git a/chrome/browser/password_manager/android/BUILD.gn b/chrome/browser/p "//chrome/browser/settings:factory_java", "//components/browser_ui/settings/android:java", ] -@@ -309,8 +306,6 @@ robolectric_binary("password_manager_junit_tests") { +@@ -310,8 +307,6 @@ robolectric_binary("password_manager_junit_tests") { ":test_support_java", ":unified_password_manager_proto_java", ":utils_java", @@ -1046,7 +1012,7 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom import org.jni_zero.JniType; import org.jni_zero.NativeMethods; -@@ -517,13 +515,6 @@ public class PasswordManagerHelper { +@@ -603,13 +601,6 @@ public class PasswordManagerHelper { // If the exception is not a Chrome-defined one, it means that the call failed at the // API call level. It could have either failed with a known ApiException or because of a // different error (e.g. a different exception thrown by the implementation of the API). @@ -1102,31 +1068,19 @@ diff --git a/chrome/browser/push_messaging/push_messaging_service_factory.cc b/c } // static -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 -@@ -58,8 +58,6 @@ function addPrivacyChildRoutes(r: Partial) { - - if (loadTimeData.getBoolean('enableSecurityKeysSubpage')) { - r.SECURITY_KEYS = r.SECURITY.createChild('/securityKeys'); -- r.SECURITY_KEYS_PHONES = -- r.SECURITY_KEYS.createChild('/securityKeys/phones'); - // - } else { - r.SECURITY_KEYS_PHONES = r.SECURITY.createChild('/securityKeys/phones'); 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 -@@ -210,8 +210,6 @@ static_library("ui") { +@@ -194,8 +194,6 @@ static_library("ui") { "webui/flags/flags_ui.h", "webui/flags/flags_ui_handler.cc", "webui/flags/flags_ui_handler.h", - "webui/gcm_internals_ui.cc", - "webui/gcm_internals_ui.h", + "webui/history_clusters/history_clusters_internals_ui_config.cc", + "webui/history_clusters/history_clusters_internals_ui_config.h", "webui/internals/internals_ui.cc", - "webui/internals/internals_ui.h", - "webui/interstitials/interstitial_ui.cc", -@@ -494,7 +492,6 @@ static_library("ui") { +@@ -487,7 +485,6 @@ static_library("ui") { "//components/find_in_page", "//components/fingerprinting_protection_filter/browser", "//components/flags_ui", @@ -1146,7 +1100,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", -@@ -464,8 +462,6 @@ robolectric_library("junit") { +@@ -466,8 +464,6 @@ robolectric_library("junit") { deps = [ ":java", ":java_resources", @@ -1158,7 +1112,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 -@@ -222,21 +222,17 @@ public class FullscreenSigninMediator +@@ -227,21 +227,17 @@ public class FullscreenSigninMediator * also means that native has been initialized. */ void onInitialLoadCompleted(boolean hasPolicies) { @@ -1187,7 +1141,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 -@@ -1491,16 +1491,9 @@ AuthenticatorMultiSourcePickerSheetModel:: +@@ -1527,16 +1527,9 @@ AuthenticatorMultiSourcePickerSheetModel:: bool AuthenticatorMultiSourcePickerSheetModel::IsManageDevicesButtonVisible() const { @@ -1208,14 +1162,14 @@ diff --git a/chrome/browser/ui/webauthn/sheet_models.cc b/chrome/browser/ui/weba diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/ui/webui/chrome_web_ui_configs.cc --- a/chrome/browser/ui/webui/chrome_web_ui_configs.cc +++ b/chrome/browser/ui/webui/chrome_web_ui_configs.cc -@@ -220,7 +220,6 @@ void RegisterChromeWebUIConfigs() { +@@ -227,7 +227,6 @@ void RegisterChromeWebUIConfigs() { map.AddWebUIConfig(std::make_unique()); map.AddWebUIConfig(std::make_unique()); map.AddWebUIConfig(std::make_unique()); - map.AddWebUIConfig(std::make_unique()); - map.AddWebUIConfig(std::make_unique()); - map.AddWebUIConfig(std::make_unique()); - map.AddWebUIConfig(std::make_unique()); + map.AddWebUIConfig( + std::make_unique< + history_clusters_internals::HistoryClustersInternalsUIConfig>()); diff --git a/chrome/browser/webauthn/android/BUILD.gn b/chrome/browser/webauthn/android/BUILD.gn --- a/chrome/browser/webauthn/android/BUILD.gn +++ b/chrome/browser/webauthn/android/BUILD.gn @@ -1230,24 +1184,24 @@ diff --git a/chrome/browser/webauthn/android/BUILD.gn b/chrome/browser/webauthn/ diff --git a/chrome/browser/webauthn/android/java/src/org/chromium/chrome/browser/webauthn/CableAuthenticatorModuleProvider.java b/chrome/browser/webauthn/android/java/src/org/chromium/chrome/browser/webauthn/CableAuthenticatorModuleProvider.java --- a/chrome/browser/webauthn/android/java/src/org/chromium/chrome/browser/webauthn/CableAuthenticatorModuleProvider.java +++ b/chrome/browser/webauthn/android/java/src/org/chromium/chrome/browser/webauthn/CableAuthenticatorModuleProvider.java -@@ -29,8 +29,6 @@ import androidx.fragment.app.FragmentTransaction; - import androidx.vectordrawable.graphics.drawable.Animatable2Compat; - import androidx.vectordrawable.graphics.drawable.AnimatedVectorDrawableCompat; +@@ -11,8 +11,6 @@ import android.os.Parcel; + + import androidx.core.app.NotificationManagerCompat; -import com.google.android.gms.tasks.Task; - import org.jni_zero.CalledByNative; import org.jni_zero.NativeMethods; -@@ -46,7 +44,6 @@ import org.chromium.chrome.browser.notifications.NotificationWrapperBuilderFacto - import org.chromium.chrome.browser.notifications.channels.ChromeChannelDefinitions; - import org.chromium.chrome.modules.cablev2_authenticator.Cablev2AuthenticatorModule; +@@ -22,7 +20,6 @@ import org.chromium.base.PackageUtils; + import org.chromium.base.ThreadUtils; + import org.chromium.chrome.browser.enterprise.util.EnterpriseInfo; import org.chromium.components.externalauth.ExternalAuthUtils; -import org.chromium.components.webauthn.Fido2ApiCall; /** - * Provides a UI that attempts to install the caBLEv2 Authenticator module. If already installed, or -@@ -285,37 +282,7 @@ public class CableAuthenticatorModuleProvider extends Fragment implements OnClic + * Provides linking information to the native side. +@@ -86,37 +83,7 @@ public class CableAuthenticatorModuleProvider { ok = false; } @@ -1302,7 +1256,7 @@ diff --git a/chrome/browser/webauthn/cablev2_devices.cc b/chrome/browser/webauth diff --git a/chrome/test/android/BUILD.gn b/chrome/test/android/BUILD.gn --- a/chrome/test/android/BUILD.gn +++ b/chrome/test/android/BUILD.gn -@@ -359,8 +359,6 @@ android_library("chrome_java_integration_test_support") { +@@ -361,8 +361,6 @@ android_library("chrome_java_integration_test_support") { deps = [ ":chrome_java_test_support_common", @@ -1314,7 +1268,7 @@ diff --git a/chrome/test/android/BUILD.gn b/chrome/test/android/BUILD.gn diff --git a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java --- a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java +++ b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java -@@ -2580,14 +2580,6 @@ public class ExternalNavigationHandler { +@@ -2574,14 +2574,6 @@ public class ExternalNavigationHandler { * @return Whether the given intent is going to open an Instant App. */ private static boolean isIntentToInstantApp(Intent intent) { @@ -3142,7 +3096,7 @@ diff --git a/components/signin/public/android/BUILD.gn b/components/signin/publi "//base:base_java", "//base:service_loader_java", "//build/android:build_java", -@@ -184,7 +182,6 @@ robolectric_library("junit") { +@@ -186,7 +184,6 @@ robolectric_library("junit") { deps = [ ":java", ":signin_java_test_support", @@ -3195,7 +3149,7 @@ diff --git a/components/webauthn/android/BUILD.gn b/components/webauthn/android/ "java/src/org/chromium/components/webauthn/InternalAuthenticator.java", "java/src/org/chromium/components/webauthn/WebauthnBrowserBridge.java", "java/src/org/chromium/components/webauthn/WebauthnModeProvider.java", -@@ -37,11 +35,7 @@ android_library("java") { +@@ -37,12 +35,7 @@ android_library("java") { "java/src/org/chromium/components/webauthn/AuthenticatorImpl.java", "java/src/org/chromium/components/webauthn/Barrier.java", "java/src/org/chromium/components/webauthn/CreateConfirmationUiDelegate.java", @@ -3203,12 +3157,13 @@ diff --git a/components/webauthn/android/BUILD.gn b/components/webauthn/android/ - "java/src/org/chromium/components/webauthn/Fido2ApiCall.java", - "java/src/org/chromium/components/webauthn/Fido2ApiCallHelper.java", - "java/src/org/chromium/components/webauthn/Fido2CredentialRequest.java", +- "java/src/org/chromium/components/webauthn/Fido2GetCredentialsComparator.java", - "java/src/org/chromium/components/webauthn/FidoErrorResponseCallback.java", + "java/src/org/chromium/components/webauthn/ConditionalUiState.java", "java/src/org/chromium/components/webauthn/FidoIntentSender.java", "java/src/org/chromium/components/webauthn/GetAssertionResponseCallback.java", "java/src/org/chromium/components/webauthn/GetMatchingCredentialIdsResponseCallback.java", -@@ -67,9 +61,6 @@ android_library("java") { +@@ -68,9 +61,6 @@ android_library("java") { ] deps = [ @@ -3218,7 +3173,7 @@ diff --git a/components/webauthn/android/BUILD.gn b/components/webauthn/android/ "//base:base_java", "//base:service_loader_java", "//base/version_info/android:version_constants_java", -@@ -138,8 +129,6 @@ android_library("test_support_java") { +@@ -139,8 +129,6 @@ android_library("test_support_java") { source_set("android") { sources = [ "cred_man_support.h", @@ -3227,7 +3182,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", -@@ -209,7 +198,6 @@ robolectric_library("junit") { +@@ -211,7 +199,6 @@ robolectric_library("junit") { deps = [ ":java", ":test_support_java", @@ -3277,14 +3232,13 @@ 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,16 +148,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -169,15 +148,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon } private void continueMakeCredential(PublicKeyCredentialCreationOptions options) { - mPendingFido2CredentialRequest = getFido2CredentialRequest(); - mPendingFido2CredentialRequest.handleMakeCredentialRequest( - options, -- /* maybeClientDataHash= */ null, - maybeCreateBrowserOptions(), - mOrigin, - mTopOrigin, @@ -3294,7 +3248,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } private @Nullable Bundle maybeCreateBrowserOptions() { -@@ -209,17 +178,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -208,16 +178,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon onError(AuthenticatorStatus.NOT_IMPLEMENTED); return; } @@ -3302,7 +3256,6 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut - mPendingFido2CredentialRequest = getFido2CredentialRequest(); - mPendingFido2CredentialRequest.handleGetAssertionRequest( - options, -- /* maybeClientDataHash= */ null, - mOrigin, - mTopOrigin, - mPayment, @@ -3312,7 +3265,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } @Override -@@ -252,10 +210,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -250,10 +210,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon decoratedCallback.call(false); return; } @@ -3323,7 +3276,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } @Override -@@ -285,19 +239,7 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -283,19 +239,7 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon return; } @@ -3344,7 +3297,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } // Helper function to create WebAuthnClientCapability instances -@@ -327,14 +269,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -325,14 +269,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon callback.onResponse(new ArrayList()); return; } @@ -3359,7 +3312,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } @Override -@@ -344,13 +278,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -342,13 +278,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon callback.call(false); return; } @@ -3373,7 +3326,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } @Override -@@ -362,8 +289,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -360,8 +289,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon if (!mIsOperationPending || mGetAssertionCallback == null) { return; } @@ -3382,7 +3335,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } /** Callbacks for receiving responses from the internal handlers. */ -@@ -398,7 +323,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -396,7 +323,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon } else if (mGetAssertionCallback != null) { mGetAssertionCallback.call(status, null, null); } @@ -3390,7 +3343,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut cleanupRequest(); } -@@ -439,13 +363,10 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -434,13 +360,10 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon mIsOperationPending = false; mMakeCredentialCallback = null; mGetAssertionCallback = null; @@ -3427,7 +3380,7 @@ new file mode 100644 diff --git a/components/webauthn/android/java/src/org/chromium/components/webauthn/GmsCoreUtils.java b/components/webauthn/android/java/src/org/chromium/components/webauthn/GmsCoreUtils.java --- a/components/webauthn/android/java/src/org/chromium/components/webauthn/GmsCoreUtils.java +++ b/components/webauthn/android/java/src/org/chromium/components/webauthn/GmsCoreUtils.java -@@ -7,24 +7,13 @@ package org.chromium.components.webauthn; +@@ -7,27 +7,13 @@ package org.chromium.components.webauthn; import org.chromium.base.PackageUtils; public class GmsCoreUtils { @@ -3435,6 +3388,9 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut - private static final int GMSCORE_MIN_VERSION_GET_MATCHING_CRED_IDS = 223300000; - private static final int GMSCORE_MIN_VERSION_HYBRID_API = 231206000; - private static final int GMSCORE_MIN_VERSION_RESULT_RECEIVER = 240700000; +- // This version is the minimum needed for dynamic lookup of services, which +- // the persistent API requires. +- static final int GMSCORE_MIN_VERSION_DYNAMIC_LOOKUP = 17895000; - static final int GMSCORE_MIN_VERSION = 16890000; - - private static int sGmsCorePackageVersion; @@ -3454,7 +3410,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } /** -@@ -33,20 +22,16 @@ public class GmsCoreUtils { +@@ -36,20 +22,16 @@ public class GmsCoreUtils { * version. */ public static boolean isGetMatchingCredentialIdsSupported() { @@ -3579,7 +3535,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut diff --git a/content/browser/push_messaging/push_messaging_manager.cc b/content/browser/push_messaging/push_messaging_manager.cc --- a/content/browser/push_messaging/push_messaging_manager.cc +++ b/content/browser/push_messaging/push_messaging_manager.cc -@@ -803,7 +803,7 @@ void PushMessagingManager::GetSubscriptionInfo( +@@ -801,7 +801,7 @@ void PushMessagingManager::GetSubscriptionInfo( } PushMessagingService* PushMessagingManager::GetService() { @@ -3591,7 +3547,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 -@@ -157,11 +157,6 @@ android_library("content_full_java") { +@@ -158,11 +158,6 @@ android_library("content_full_java") { ":content_java_resources", ":content_main_dex_java", ":content_util_java", @@ -3706,7 +3662,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/webid/ diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn --- a/content/test/BUILD.gn +++ b/content/test/BUILD.gn -@@ -3628,10 +3628,6 @@ if (is_android) { +@@ -3658,10 +3658,6 @@ if (is_android) { testonly = true sources = content_java_sources_needing_jni deps = [ @@ -3720,7 +3676,7 @@ diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn diff --git a/device/BUILD.gn b/device/BUILD.gn --- a/device/BUILD.gn +++ b/device/BUILD.gn -@@ -529,9 +529,6 @@ if (is_android) { +@@ -534,9 +534,6 @@ if (is_android) { "gamepad/android/junit/src/org/chromium/device/gamepad/GamepadMappingsTest.java", ] deps = [ @@ -3730,6 +3686,17 @@ diff --git a/device/BUILD.gn b/device/BUILD.gn "//base:base_java_test_support", "//base:base_junit_test_support", "//device/gamepad:java", +diff --git a/device/fido/features.cc b/device/fido/features.cc +--- a/device/fido/features.cc ++++ b/device/fido/features.cc +@@ -131,6 +131,7 @@ BASE_FEATURE(kWebAuthniCloudKeychainPrf, + BASE_FEATURE(kWebAuthnHybridLinking, + "WebAuthenticationHybridLinking", + base::FEATURE_ENABLED_BY_DEFAULT); ++SET_CROMITE_FEATURE_DISABLED(kWebAuthnHybridLinking); + + // Update the "last used" timestamp for GPM passkeys when asserted. + BASE_FEATURE(kWebAuthnUpdateLastUsed, diff --git a/services/BUILD.gn b/services/BUILD.gn --- a/services/BUILD.gn +++ b/services/BUILD.gn @@ -3809,15 +3776,14 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. } # The section below is generated by running -@@ -315,253 +306,6 @@ if (!limit_android_deps) { - "//third_party/hamcrest:hamcrest_library_java", +@@ -316,296 +307,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 = "cipd/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-21.1.1.aar" - info_path = "libs/com_google_android_gms_play_services_auth/com_google_android_gms_play_services_auth.info" - enable_bytecode_checks = false - deps = [ @@ -3825,6 +3791,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - "$google_play_services_package:google_play_services_auth_base_java", - "$google_play_services_package:google_play_services_base_java", - "$google_play_services_package:google_play_services_basement_java", +- "$google_play_services_package:google_play_services_fido_java", - "$google_play_services_package:google_play_services_tasks_java", - "//third_party/androidx:androidx_fragment_fragment_java", - "//third_party/androidx:androidx_loader_loader_java", @@ -3835,7 +3802,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 = "cipd/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.2.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 = [ @@ -3849,7 +3816,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 = "cipd/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.10.aar" - info_path = "libs/com_google_android_gms_play_services_auth_base/com_google_android_gms_play_services_auth_base.info" - enable_bytecode_checks = false - deps = [ @@ -3863,6 +3830,21 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { +- android_aar_prebuilt("google_play_services_auth_blockstore_java") { +- aar_path = "cipd/libs/com_google_android_gms_play_services_auth_blockstore/play-services-auth-blockstore-16.4.0.aar" +- info_path = "libs/com_google_android_gms_play_services_auth_blockstore/com_google_android_gms_play_services_auth_blockstore.info" +- enable_bytecode_checks = false +- deps = [ +- "$google_play_services_package:google_play_services_base_java", +- "$google_play_services_package:google_play_services_basement_java", +- "$google_play_services_package:google_play_services_tasks_java", +- "//third_party/kotlin_stdlib:kotlin_stdlib_java", +- ] +- } +- } +- +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +- if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_play_services_base_java") { - aar_path = "cipd/libs/com_google_android_gms_play_services_base/play-services-base-18.5.0.aar" - info_path = "libs/com_google_android_gms_play_services_base/com_google_android_gms_play_services_base.info" @@ -3943,6 +3925,22 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { +- android_aar_prebuilt("google_play_services_fido_java") { +- aar_path = "cipd/libs/com_google_android_gms_play_services_fido/play-services-fido-21.1.0.aar" +- info_path = "libs/com_google_android_gms_play_services_fido/com_google_android_gms_play_services_fido.info" +- enable_bytecode_checks = false +- deps = [ +- ":org_jetbrains_kotlinx_kotlinx_coroutines_core_jvm_java", +- "$google_play_services_package:google_play_services_base_java", +- "$google_play_services_package:google_play_services_basement_java", +- "$google_play_services_package:google_play_services_tasks_java", +- "//third_party/kotlin_stdlib:kotlin_stdlib_java", +- ] +- } +- } +- +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +- if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_play_services_gcm_java") { - aar_path = "cipd/libs/com_google_android_gms_play_services_gcm/play-services-gcm-17.0.0.aar" - info_path = "libs/com_google_android_gms_play_services_gcm/com_google_android_gms_play_services_gcm.info" @@ -4059,11 +4057,23 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - ] - } - } +- +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +- android_aar_prebuilt( +- "com_google_android_libraries_identity_googleid_googleid_java") { +- aar_path = "cipd/libs/com_google_android_libraries_identity_googleid_googleid/googleid-1.1.1.aar" +- info_path = "libs/com_google_android_libraries_identity_googleid_googleid/com_google_android_libraries_identity_googleid_googleid.info" +- enable_bytecode_checks = false +- deps = [ +- "//third_party/androidx:androidx_credentials_credentials_java", +- "//third_party/kotlin_stdlib:kotlin_stdlib_java", +- ] +- } - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. if (!defined(material_design_target)) { android_aar_prebuilt("com_google_android_material_material_java") { -@@ -609,24 +353,6 @@ if (!limit_android_deps) { +@@ -653,24 +354,6 @@ if (!limit_android_deps) { } } @@ -4088,7 +4098,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. if (!defined(dagger_java_target)) { java_prebuilt("com_google_dagger_dagger_java") { -@@ -667,56 +393,6 @@ if (!limit_android_deps) { +@@ -711,56 +394,6 @@ if (!limit_android_deps) { ] } @@ -4145,7 +4155,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. if (!defined(guava_android_target)) { java_prebuilt("com_google_guava_guava_android_java") { -@@ -842,20 +518,6 @@ if (!limit_android_deps) { +@@ -886,20 +519,6 @@ if (!limit_android_deps) { requires_android = true } @@ -4166,7 +4176,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_grpc_grpc_context_java") { jar_path = "cipd/libs/io_grpc_grpc_context/grpc-context-1.49.0.jar" -@@ -1133,357 +795,6 @@ if (!limit_android_deps) { +@@ -1177,357 +796,6 @@ if (!limit_android_deps) { is_robolectric = true } @@ -4524,7 +4534,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. java_prebuilt("com_squareup_javawriter_java") { jar_path = "cipd/libs/com_squareup_javawriter/javawriter-2.1.1.jar" -@@ -1520,33 +831,6 @@ if (!limit_android_deps) { +@@ -1564,33 +832,6 @@ if (!limit_android_deps) { ] } @@ -4558,7 +4568,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 = "cipd/libs/io_perfmark_perfmark_api/perfmark-api-0.25.0.jar" -@@ -1785,7 +1069,6 @@ if (!limit_android_deps) { +@@ -1829,7 +1070,6 @@ if (!limit_android_deps) { ] testonly = true deps = [ @@ -4566,7 +4576,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. ":org_robolectric_pluginapi_java", ":org_robolectric_utils_java", "//third_party/android_deps:guava_android_java", -@@ -1807,7 +1090,6 @@ if (!limit_android_deps) { +@@ -1851,7 +1091,6 @@ if (!limit_android_deps) { ] testonly = true deps = [ @@ -4574,7 +4584,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. ":org_robolectric_annotations_java", ":org_robolectric_pluginapi_java", ":org_robolectric_utils_java", -@@ -1877,7 +1159,6 @@ if (!limit_android_deps) { +@@ -1921,7 +1160,6 @@ if (!limit_android_deps) { ] testonly = true deps = [ diff --git a/build/patches/Remove-detection-of-captive-portals.patch b/build/patches/Remove-detection-of-captive-portals.patch index 176bb4343..5e3709d0c 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 -@@ -475,7 +475,7 @@ void ProfileNetworkContextService::ConfigureNetworkContextParams( +@@ -501,7 +501,7 @@ void ProfileNetworkContextService::ConfigureNetworkContextParams( void ProfileNetworkContextService::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref(embedder_support::kAlternateErrorPagesEnabled, diff --git a/build/patches/Remove-help-menu-item.patch b/build/patches/Remove-help-menu-item.patch index 2d2146d50..f562730fc 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 -@@ -149,9 +149,6 @@ found in the LICENSE file. +@@ -152,9 +152,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 -@@ -635,9 +635,6 @@ public class KeyboardShortcuts { +@@ -646,9 +646,6 @@ public class KeyboardShortcuts { case KeyboardShortcutsSemanticMeaning.GO_FORWARD: 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 -@@ -2520,15 +2520,6 @@ public abstract class ChromeActivity +@@ -2447,15 +2447,6 @@ public abstract class ChromeActivity final Tab currentTab = getActivityTab(); @@ -85,7 +85,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java --- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java -@@ -123,6 +123,7 @@ public class AutofillPaymentMethodsFragment extends ChromeBaseSettingsFragment +@@ -117,6 +117,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 -@@ -898,6 +898,7 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat +@@ -892,6 +892,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 -@@ -774,7 +774,6 @@ public abstract class BaseCustomTabActivity extends ChromeActivity kMaxDefaultBrowserCardImpressions{ + &kEducationalTipModule, "max_default_browser_card_impressions", + /*default_value=*/4}; +SET_CROMITE_FEATURE_DISABLED(kSegmentationPlatformFeature); +SET_CROMITE_FEATURE_DISABLED(kSegmentationPlatformFeedSegmentFeature); diff --git a/build/patches/Remove-voice-recognition-integration.patch b/build/patches/Remove-voice-recognition-integration.patch index 9fdcef5a1..a897e0f2f 100644 --- a/build/patches/Remove-voice-recognition-integration.patch +++ b/build/patches/Remove-voice-recognition-integration.patch @@ -133,15 +133,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/search/Sear diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java -@@ -64,7 +64,6 @@ import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; +@@ -64,7 +64,6 @@ import org.chromium.chrome.browser.profiles.ProfileProvider; + import org.chromium.chrome.browser.rlz.RevenueStats; + import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; import org.chromium.chrome.browser.tab.Tab; - import org.chromium.chrome.browser.tab.TabBuilder; - import org.chromium.chrome.browser.tab.TabLaunchType; -import org.chromium.chrome.browser.toolbar.VoiceToolbarButtonController; 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; -@@ -325,7 +324,7 @@ public class SearchActivity extends AsyncInitializationActivity +@@ -327,7 +326,7 @@ public class SearchActivity extends AsyncInitializationActivity /*omniboxUma*/ (url, transition, isNtp) -> {}, TabWindowManagerSingleton::getInstance, /* bookmarkState= */ (url) -> false, @@ -153,16 +153,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivityLocationBarLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivityLocationBarLayout.java --- a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivityLocationBarLayout.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivityLocationBarLayout.java -@@ -24,7 +24,6 @@ import org.chromium.chrome.browser.omnibox.UrlBarCoordinator.SelectionState; - import org.chromium.chrome.browser.omnibox.UrlBarData; +@@ -28,7 +28,6 @@ import org.chromium.chrome.browser.omnibox.UrlBarData; import org.chromium.chrome.browser.omnibox.status.StatusCoordinator; + import org.chromium.chrome.browser.omnibox.styles.OmniboxResourceProvider; import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteCoordinator; -import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; import org.chromium.chrome.browser.toolbar.top.ToolbarPhone; import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityExtras.IntentOrigin; import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityExtras.SearchType; -@@ -196,13 +195,6 @@ public class SearchActivityLocationBarLayout extends LocationBarLayout { - mUrlBar.post(() -> mUrlBar.clearFocus()); +@@ -209,13 +208,6 @@ public class SearchActivityLocationBarLayout extends LocationBarLayout { + mUrlBar.clearFocus(); } - @Override @@ -178,7 +178,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/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; +@@ -96,7 +96,6 @@ import org.chromium.chrome.browser.omnibox.OmniboxStub; import org.chromium.chrome.browser.omnibox.OverrideUrlLoadingDelegateImpl; import org.chromium.chrome.browser.omnibox.UrlFocusChangeListener; import org.chromium.chrome.browser.omnibox.suggestions.OmniboxSuggestionsDropdownScrollListener; @@ -186,7 +186,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar import org.chromium.chrome.browser.page_info.ChromePageInfo; import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations; import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; -@@ -2517,10 +2516,6 @@ public class ToolbarManager +@@ -2594,10 +2593,6 @@ public class ToolbarManager return mLocationBar.getOmniboxStub(); } @@ -200,7 +200,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 -@@ -99,8 +99,6 @@ import org.chromium.chrome.browser.metrics.UmaSessionStats; +@@ -101,8 +101,6 @@ import org.chromium.chrome.browser.metrics.UmaSessionStats; import org.chromium.chrome.browser.omnibox.OmniboxFocusReason; import org.chromium.chrome.browser.omnibox.geo.GeolocationHeader; import org.chromium.chrome.browser.omnibox.suggestions.action.OmniboxActionDelegateImpl; @@ -209,7 +209,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; -@@ -143,7 +141,6 @@ import org.chromium.chrome.browser.theme.TopUiThemeColorProvider; +@@ -145,7 +143,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; @@ -217,7 +217,7 @@ 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; -@@ -304,7 +301,6 @@ public class RootUiCoordinator +@@ -305,7 +302,6 @@ public class RootUiCoordinator private LayoutManagerImpl mLayoutManager; protected OneshotSupplier mIntentMetadataOneshotSupplier; protected OneshotSupplierImpl mPromoShownOneshotSupplier = new OneshotSupplierImpl<>(); @@ -225,7 +225,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi private MediaCaptureOverlayController mCaptureController; private @Nullable ScrollCaptureManager mScrollCaptureManager; protected final ActivityLifecycleDispatcher mActivityLifecycleDispatcher; -@@ -638,9 +634,6 @@ public class RootUiCoordinator +@@ -640,9 +636,6 @@ public class RootUiCoordinator } if (mToolbarManager != null) { @@ -235,7 +235,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi mToolbarManager.destroy(); mToolbarManager = null; } -@@ -1441,39 +1434,12 @@ public class RootUiCoordinator +@@ -1456,39 +1449,12 @@ public class RootUiCoordinator () -> mToolbarManager.setUrlBarFocus( false, OmniboxFocusReason.UNFOCUS)); @@ -275,7 +275,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi OptionalNewTabButtonController newTabButtonController = new OptionalNewTabButtonController( mActivity, -@@ -1520,8 +1486,6 @@ public class RootUiCoordinator +@@ -1535,8 +1501,6 @@ public class RootUiCoordinator AdaptiveToolbarButtonVariant.NEW_TAB, newTabButtonController); adaptiveToolbarButtonController.addButtonVariant( AdaptiveToolbarButtonVariant.SHARE, shareButtonController); @@ -284,7 +284,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi adaptiveToolbarButtonController.addButtonVariant( AdaptiveToolbarButtonVariant.ADD_TO_BOOKMARKS, addToBookmarksToolbarButtonController); -@@ -1641,13 +1605,6 @@ public class RootUiCoordinator +@@ -1655,13 +1619,6 @@ public class RootUiCoordinator if (!mSupportsAppMenuSupplier.getAsBoolean()) { mToolbarManager.getToolbar().disableMenuButton(); } @@ -343,7 +343,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; import org.chromium.chrome.browser.share.ShareDelegate; -@@ -474,13 +473,6 @@ public class LocationBarCoordinator +@@ -471,13 +470,6 @@ public class LocationBarCoordinator return mLocationBarLayout.getSecurityIconView(); } @@ -357,7 +357,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow @Nullable @Override public OmniboxStub getOmniboxStub() { -@@ -775,11 +767,6 @@ public class LocationBarCoordinator +@@ -779,11 +771,6 @@ public class LocationBarCoordinator // End tablet-specific methods. @@ -395,7 +395,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java -@@ -53,7 +53,6 @@ import org.chromium.chrome.browser.omnibox.status.StatusCoordinator; +@@ -54,7 +54,6 @@ import org.chromium.chrome.browser.omnibox.status.StatusCoordinator; import org.chromium.chrome.browser.omnibox.styles.OmniboxResourceProvider; import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteCoordinator; import org.chromium.chrome.browser.omnibox.suggestions.OmniboxLoadUrlParams; @@ -403,7 +403,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.prefetch.settings.PreloadPagesSettingsBridge; import org.chromium.chrome.browser.prefetch.settings.PreloadPagesState; import org.chromium.chrome.browser.profiles.Profile; -@@ -94,8 +93,6 @@ import java.util.function.BooleanSupplier; +@@ -95,8 +94,6 @@ import java.util.function.BooleanSupplier; class LocationBarMediator implements LocationBarDataProvider.Observer, OmniboxStub, @@ -412,7 +412,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; @@ -420,7 +420,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; -@@ -233,8 +229,6 @@ class LocationBarMediator +@@ -234,8 +230,6 @@ class LocationBarMediator mEmbedderUiOverrides = embedderUiOverrides; mOverrideUrlLoadingDelegate = overrideUrlLoadingDelegate; mLocaleManager = localeManager; @@ -429,7 +429,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow mProfileSupplier = profileSupplier; mProfileSupplier.addObserver(mCallbackController.makeCancelable(this::setProfile)); mTemplateUrlServiceSupplier = templateUrlServiceSupplier; -@@ -277,9 +271,6 @@ class LocationBarMediator +@@ -278,9 +272,6 @@ class LocationBarMediator mStatusCoordinator = null; mAutocompleteCoordinator = null; mUrlCoordinator = null; @@ -439,7 +439,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow mLocationBarDataProvider.removeObserver(this); mDeferredNativeRunnables.clear(); mUrlFocusChangeListeners.clear(); -@@ -409,11 +400,6 @@ class LocationBarMediator +@@ -410,11 +401,6 @@ class LocationBarMediator mLocationBarLayout.setUnfocusedWidth(unfocusedWidth); } @@ -451,7 +451,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow /* package */ void setLensControllerForTesting(LensController lensController) { mLensController = lensController; } -@@ -677,10 +663,6 @@ class LocationBarMediator +@@ -678,10 +664,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); @@ -462,7 +462,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow } /** package */ -@@ -1154,10 +1136,7 @@ class LocationBarMediator +@@ -1155,10 +1137,7 @@ class LocationBarMediator private boolean shouldShowMicButton() { if (shouldShowDeleteButton()) return false; @@ -474,7 +474,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow return false; } boolean isToolbarMicEnabled = mIsToolbarMicEnabledSupplier.getAsBoolean(); -@@ -1174,6 +1153,7 @@ class LocationBarMediator +@@ -1175,6 +1154,7 @@ class LocationBarMediator } private boolean shouldShowLensButton() { @@ -482,7 +482,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow if (shouldShowDeleteButton()) return false; // When this method is called on UI inflation, return false as the native is not ready. -@@ -1392,11 +1372,6 @@ class LocationBarMediator +@@ -1399,11 +1379,6 @@ class LocationBarMediator } } @@ -494,7 +494,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow @Override public void addUrlFocusChangeListener(UrlFocusChangeListener listener) { mUrlFocusChangeListeners.addObserver(listener); -@@ -1412,31 +1387,13 @@ class LocationBarMediator +@@ -1419,31 +1394,13 @@ class LocationBarMediator return mUrlHasFocus; } @@ -528,7 +528,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; -@@ -1459,20 +1416,6 @@ class LocationBarMediator +@@ -1466,20 +1423,6 @@ class LocationBarMediator mUrlCoordinator.setKeyboardVisibility(true, false); } @@ -635,7 +635,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.share.ShareDelegate; import org.chromium.chrome.browser.tab.Tab; -@@ -288,13 +287,6 @@ public class AutocompleteCoordinator +@@ -292,13 +291,6 @@ public class AutocompleteCoordinator mRecycledViewPool.ifPresent(p -> p.onNativeInitialized()); } @@ -652,7 +652,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java -@@ -41,7 +41,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteDelegate.Auto +@@ -43,7 +43,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteDelegate.Auto import org.chromium.chrome.browser.omnibox.suggestions.action.OmniboxActionFactoryImpl; import org.chromium.chrome.browser.omnibox.suggestions.action.OmniboxAnswerAction; import org.chromium.chrome.browser.omnibox.suggestions.basic.BasicSuggestionProcessor.BookmarkState; @@ -660,7 +660,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.share.ShareDelegate; import org.chromium.chrome.browser.tab.Tab; -@@ -497,13 +496,6 @@ class AutocompleteMediator +@@ -501,13 +500,6 @@ class AutocompleteMediator mShouldPreventOmniboxAutocomplete = prevent; } @@ -677,7 +677,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") { +@@ -37,7 +37,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 0ac2b8731..c683d5c8a 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 -@@ -2920,7 +2920,7 @@ void DocumentLoader::CommitNavigation() { +@@ -2973,7 +2973,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(); } -@@ -2931,6 +2931,7 @@ void DocumentLoader::CommitNavigation() { +@@ -2984,6 +2984,7 @@ void DocumentLoader::CommitNavigation() { // TODO(shuuran): CrossSiteCrossBrowsingContextGroupSetNulledName will just // record the fact that the name would be nulled and if the name is accessed // after we will fire a UseCounter. diff --git a/build/patches/Restore-BookmarkToolbar-setCurrentFolder.patch b/build/patches/Restore-BookmarkToolbar-setCurrentFolder.patch index ada0a27cf..a2d63f95e 100644 --- a/build/patches/Restore-BookmarkToolbar-setCurrentFolder.patch +++ b/build/patches/Restore-BookmarkToolbar-setCurrentFolder.patch @@ -66,7 +66,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarCoordinator.java -@@ -55,6 +55,7 @@ public class BookmarkToolbarCoordinator { +@@ -54,6 +54,7 @@ public class BookmarkToolbarCoordinator { searchDelegate, R.string.bookmark_toolbar_search, R.id.search_menu_id); mModel = new PropertyModel.Builder(BookmarkToolbarProperties.ALL_KEYS).build(); diff --git a/build/patches/Restore-LastTabStandingTracker.patch b/build/patches/Restore-LastTabStandingTracker.patch index 086da828f..9b616dbe3 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 -@@ -1707,6 +1707,16 @@ static_library("browser") { +@@ -1679,6 +1679,16 @@ static_library("browser") { "webid/identity_provider_permission_request.h", ] @@ -52,10 +52,10 @@ diff --git a/chrome/browser/content_settings/host_content_settings_map_factory.c #include "chrome/browser/content_settings/one_time_permission_provider.h" #include "chrome/browser/permissions/one_time_permissions_tracker_factory.h" +#include "chrome/browser/permissions/last_tab_standing_tracker_factory.h" - #include "chrome/browser/profiles/off_the_record_profile_impl.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile_key.h" -@@ -59,6 +60,7 @@ HostContentSettingsMapFactory::HostContentSettingsMapFactory() + #include "chrome/browser/profiles/profiles_state.h" +@@ -58,6 +59,7 @@ HostContentSettingsMapFactory::HostContentSettingsMapFactory() .WithAshInternals(ProfileSelection::kOwnInstance) .Build()) { DependsOn(SupervisedUserSettingsServiceFactory::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 -@@ -124,6 +124,7 @@ +@@ -129,6 +129,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" -@@ -1010,6 +1011,7 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -1030,6 +1031,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" -@@ -430,6 +431,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -425,6 +426,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 506c2d8b4..e623ff87c 100644 --- a/build/patches/Restore-Search-Ready-Omnibox-flag.patch +++ b/build/patches/Restore-Search-Ready-Omnibox-flag.patch @@ -23,7 +23,7 @@ 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 -@@ -299,6 +299,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -300,6 +300,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kReaderModeInCCT, &kRecordSuppressionMetrics, &kReengagementNotification, @@ -34,10 +34,10 @@ 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 -@@ -384,6 +384,7 @@ public abstract class ChromeFeatureList { +@@ -372,6 +372,7 @@ public abstract class ChromeFeatureList { + public static final String MAGIC_STACK_ANDROID = "MagicStackAndroid"; 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 MOST_VISITED_TILES_RESELECT = "MostVisitedTilesReselect"; public static final String MUlTI_INSTANCE_APPLICATION_STATUS_CLEANUP = @@ -53,7 +53,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.base.supplier.Supplier; import org.chromium.chrome.browser.omnibox.UrlBarEditingTextStateProvider; import org.chromium.chrome.browser.omnibox.styles.OmniboxImageSupplier; -@@ -48,6 +49,7 @@ class DropdownItemViewInfoListBuilder { +@@ -49,6 +50,7 @@ class DropdownItemViewInfoListBuilder { private @Nullable Supplier mShareDelegateSupplier; private @NonNull Optional mImageSupplier; private @NonNull BookmarkState mBookmarkState; @@ -61,7 +61,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow DropdownItemViewInfoListBuilder( @NonNull Supplier tabSupplier, @NonNull BookmarkState bookmarkState) { -@@ -80,9 +82,11 @@ class DropdownItemViewInfoListBuilder { +@@ -81,9 +83,11 @@ class DropdownItemViewInfoListBuilder { mGroupSeparatorProcessor = new GroupSeparatorProcessor(context); mHeaderProcessor = new HeaderProcessor(context); @@ -75,7 +75,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow registerSuggestionProcessor( new AnswerSuggestionProcessor(context, host, textProvider, mImageSupplier)); registerSuggestionProcessor( -@@ -168,6 +172,9 @@ class DropdownItemViewInfoListBuilder { +@@ -169,6 +173,9 @@ class DropdownItemViewInfoListBuilder { mHeaderProcessor.onNativeInitialized(); mImageSupplier.ifPresent(s -> s.onNativeInitialized()); diff --git a/build/patches/Restore-Simplified-NTP-launch.patch b/build/patches/Restore-Simplified-NTP-launch.patch index cabbb5296..9e4647156 100644 --- a/build/patches/Restore-Simplified-NTP-launch.patch +++ b/build/patches/Restore-Simplified-NTP-launch.patch @@ -22,8 +22,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../chrome/browser/ntp/NewTabPageLayout.java | 25 ++- .../SuggestionsNavigationDelegate.java | 17 ++ .../mostvisited/MostVisitedSitesBridge.java | 2 +- - .../tile/MostVisitedTilesCoordinator.java | 10 +- - .../tile/MostVisitedTilesGridLayout.java | 194 ++++++++++++++++++ + .../tile/MostVisitedTilesCoordinator.java | 7 +- + .../tile/MostVisitedTilesGridLayout.java | 193 ++++++++++++++++++ .../tile/MostVisitedTilesMediator.java | 9 +- .../engagement/important_sites_util.cc | 2 +- .../flags/android/chrome_feature_list.cc | 1 + @@ -32,7 +32,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../Restore-Simplified-NTP-launch.inc | 12 ++ .../Restore-Simplified-NTP-launch.inc | 5 + .../Restore-Simplified-NTP-launch.inc | 1 + - 26 files changed, 399 insertions(+), 34 deletions(-) + 26 files changed, 398 insertions(+), 31 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 @@ -43,7 +43,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni --- a/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni -@@ -537,6 +537,7 @@ chrome_java_resources = [ +@@ -538,6 +538,7 @@ chrome_java_resources = [ "java/res/layout/new_tab_page_layout.xml", "java/res/layout/new_tab_page_tile_grid_placeholder.xml", "java/res/layout/open_full_chrome_history_header.xml", @@ -54,7 +54,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 -@@ -631,6 +631,7 @@ chrome_java_sources = [ +@@ -628,6 +628,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", @@ -62,7 +62,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", -@@ -1051,6 +1052,7 @@ chrome_java_sources = [ +@@ -1046,6 +1047,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", @@ -309,7 +309,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 -@@ -153,7 +153,10 @@ public class IdentityDiscController +@@ -155,7 +155,10 @@ public class IdentityDiscController mButtonData.setButtonSpec( buttonSpecWithDrawableAndDescription(mButtonData.getButtonSpec(), email)); @@ -378,7 +378,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL initializeSearchBoxTextView(); initializeVoiceSearchButton(); initializeLensButton(); -@@ -589,7 +594,7 @@ public class NewTabPageLayout extends LinearLayout { +@@ -585,7 +590,7 @@ public class NewTabPageLayout extends LinearLayout { && mInitialized) { return; } @@ -387,7 +387,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL mSearchProviderIsGoogle = isGoogle; if (!mSearchProviderIsGoogle) { -@@ -924,6 +929,22 @@ public class NewTabPageLayout extends LinearLayout { +@@ -918,6 +923,22 @@ public class NewTabPageLayout extends LinearLayout { return mMostVisitedTilesCoordinator; } @@ -420,7 +420,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/Sug +import org.chromium.chrome.browser.bookmarks.BookmarkUtils; +import org.chromium.chrome.browser.download.DownloadUtils; +import org.chromium.chrome.browser.download.DownloadOpenSource; -+import org.chromium.chrome.browser.profiles.OTRProfileID; ++import org.chromium.chrome.browser.profiles.OtrProfileId; + /** Extension of {@link NativePageNavigationDelegate} with suggestions-specific methods. */ public class SuggestionsNavigationDelegate extends NativePageNavigationDelegateImpl { @@ -434,9 +434,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/Sug + } + + public void navigateToDownloadManager() { -+ OTRProfileID otrProfileID = null; ++ OtrProfileId otrProfileID = null; + if (mProfile != null && mTab != null && mTab.isIncognito()) { -+ otrProfileID = mProfile.getOTRProfileID(); ++ otrProfileID = mProfile.getOtrProfileId(); + } + DownloadUtils.showDownloadManager(mActivity, mTab, otrProfileID, DownloadOpenSource.NEW_TAB_PAGE); + } @@ -459,16 +459,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/mos diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesCoordinator.java -@@ -38,7 +38,7 @@ public class MostVisitedTilesCoordinator implements ConfigurationChangedObserver +@@ -38,6 +38,7 @@ public class MostVisitedTilesCoordinator implements ConfigurationChangedObserver private final MostVisitedTilesMediator mMediator; private final WindowAndroid mWindowAndroid; private final UiConfig mUiConfig; -- private final PropertyModelChangeProcessor mModelChangeProcessor; + private PropertyModelChangeProcessor mModelChangeProcessor; private TileRenderer mRenderer; private ContextMenuManager mContextMenuManager; private OfflinePageBridge mOfflinePageBridge; -@@ -66,17 +66,11 @@ public class MostVisitedTilesCoordinator implements ConfigurationChangedObserver +@@ -65,15 +66,11 @@ public class MostVisitedTilesCoordinator implements ConfigurationChangedObserver mWindowAndroid = windowAndroid; ((ViewStub) mvTilesContainerLayout.findViewById(R.id.mv_tiles_layout_stub)).inflate(); @@ -478,12 +477,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til mUiConfig = new UiConfig(tilesLayout); PropertyModel propertyModel = new PropertyModel(MostVisitedTilesProperties.ALL_KEYS); -- mModelChangeProcessor = -- PropertyModelChangeProcessor.create( -- propertyModel, -- new MostVisitedTilesViewBinder.ViewHolder( -- mvTilesContainerLayout, tilesLayout), -- MostVisitedTilesViewBinder::bind); +- PropertyModelChangeProcessor.create( +- propertyModel, +- new MostVisitedTilesViewBinder.ViewHolder(mvTilesContainerLayout, tilesLayout), +- MostVisitedTilesViewBinder::bind); mRenderer = new TileRenderer( mActivity, SuggestionsConfig.getTileStyle(mUiConfig), TITLE_LINES, null); @@ -491,7 +488,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til new file mode 100644 --- /dev/null +++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesGridLayout.java -@@ -0,0 +1,194 @@ +@@ -0,0 +1,193 @@ +// 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. @@ -514,7 +511,6 @@ new file mode 100644 +import org.chromium.base.library_loader.LibraryLoader; +import org.chromium.chrome.R; +import org.chromium.chrome.browser.flags.ChromeFeatureList; -+import org.chromium.chrome.browser.ntp.FeedPositionUtils; +import org.chromium.chrome.browser.suggestions.SiteSuggestion; +import org.chromium.ui.base.DeviceFormFactor; + @@ -741,9 +737,9 @@ diff --git a/chrome/browser/engagement/important_sites_util.cc b/chrome/browser/ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -265,6 +265,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -266,6 +266,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { + &kHideTabletToolbarDownloadButton, &kLockBackPressHandlerAtStart, - &kIncognitoReauthenticationForAndroid, &kIncognitoScreenshot, + &kSimplifiedNTP, &kLensOnQuickActionSearchWidget, @@ -752,15 +748,15 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -385,6 +385,7 @@ public abstract class ChromeFeatureList { +@@ -373,6 +373,7 @@ public abstract class ChromeFeatureList { + public static final String MAGIC_STACK_ANDROID = "MagicStackAndroid"; 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 MOST_VISITED_TILES_RESELECT = "MostVisitedTilesReselect"; public static final String MUlTI_INSTANCE_APPLICATION_STATUS_CLEANUP = -@@ -694,7 +695,7 @@ public abstract class ChromeFeatureList { +@@ -664,7 +665,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); 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 ac14c20c5..3b64820f6 100644 --- a/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch +++ b/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch @@ -43,7 +43,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe 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 -@@ -433,6 +433,10 @@ static jlong JNI_ChromeFeatureMap_GetNativeMap(JNIEnv* env) { +@@ -429,6 +429,10 @@ static jlong JNI_ChromeFeatureMap_GetNativeMap(JNIEnv* env) { // Alphabetical: @@ -57,7 +57,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 -@@ -162,6 +162,7 @@ public abstract class ChromeFeatureList { +@@ -156,6 +156,7 @@ public abstract class ChromeFeatureList { public static final String ACCOUNT_REAUTHENTICATION_RECENT_TIME_WINDOW = "AccountReauthenticationRecentTimeWindow"; public static final String ALLOW_USER_CERTIFICATES = "AllowUserCertificates"; diff --git a/build/patches/Restore-chrome-password-store.patch b/build/patches/Restore-chrome-password-store.patch index 52be9ec77..cf8e89019 100644 --- a/build/patches/Restore-chrome-password-store.patch +++ b/build/patches/Restore-chrome-password-store.patch @@ -7,9 +7,10 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html chrome/browser/resources/password_manager/user_utils_mixin.ts | 4 ++-- chrome/browser/ui/android/strings/android_chrome_strings.grd | 2 +- components/password_manager/core/browser/buildflags.gni | 2 +- - components/sync/base/features.cc | 1 + + .../browser/features/password_manager_features_util_common.cc | 1 + + components/sync/service/sync_prefs.cc | 2 +- .../password_features_cc/Restore-chrome-password-store.inc | 1 + - 5 files changed, 6 insertions(+), 4 deletions(-) + 6 files changed, 7 insertions(+), 5 deletions(-) create mode 100644 cromite_flags/components/password_manager/core/browser/features/password_features_cc/Restore-chrome-password-store.inc diff --git a/chrome/browser/resources/password_manager/user_utils_mixin.ts b/chrome/browser/resources/password_manager/user_utils_mixin.ts @@ -32,7 +33,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 -@@ -738,7 +738,7 @@ For more settings that use data to improve your Chrome experience, go to @@ -53,17 +54,29 @@ diff --git a/components/password_manager/core/browser/buildflags.gni b/component } # Drawables from the downstream clank/ repository are -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 -@@ -82,6 +82,7 @@ BASE_FEATURE(kEnablePasswordsAccountStorageForSyncingUsers, - BASE_FEATURE(kEnablePasswordsAccountStorageForNonSyncingUsers, - "EnablePasswordsAccountStorageForNonSyncingUsers", - base::FEATURE_ENABLED_BY_DEFAULT); -+SET_CROMITE_FEATURE_DISABLED(kEnablePasswordsAccountStorageForNonSyncingUsers); - - BASE_FEATURE(kSyncEnableContactInfoDataTypeForDasherUsers, - "SyncEnableContactInfoDataTypeForDasherUsers", +diff --git a/components/password_manager/core/browser/features/password_manager_features_util_common.cc b/components/password_manager/core/browser/features/password_manager_features_util_common.cc +--- a/components/password_manager/core/browser/features/password_manager_features_util_common.cc ++++ b/components/password_manager/core/browser/features/password_manager_features_util_common.cc +@@ -54,6 +54,7 @@ bool CanAccountStorageBeEnabled(const PrefService* pref_service, + // no way to enter the passphrase yet). + bool IsUserEligibleForAccountStorage(const PrefService* pref_service, + const syncer::SyncService* sync_service) { ++ if ((true)) return false; + if (!sync_service) { + return false; + } +diff --git a/components/sync/service/sync_prefs.cc b/components/sync/service/sync_prefs.cc +--- a/components/sync/service/sync_prefs.cc ++++ b/components/sync/service/sync_prefs.cc +@@ -725,7 +725,7 @@ bool SyncPrefs::IsTypeSupportedInTransportMode(UserSelectableType type) { + return base::FeatureList::IsEnabled(kReplaceSyncPromosWithSignInPromos) && + base::FeatureList::IsEnabled(kEnablePreferencesAccountStorage); + case UserSelectableType::kPasswords: +- return true; ++ return false; + case UserSelectableType::kAutofill: + return base::FeatureList::IsEnabled( + kSyncEnableContactInfoDataTypeInTransportMode); diff --git a/cromite_flags/components/password_manager/core/browser/features/password_features_cc/Restore-chrome-password-store.inc b/cromite_flags/components/password_manager/core/browser/features/password_features_cc/Restore-chrome-password-store.inc new file mode 100644 --- /dev/null diff --git a/build/patches/Restore-offline-indicator-v2-flag.patch b/build/patches/Restore-offline-indicator-v2-flag.patch index 0baafbb8c..6ac85f6d0 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 -@@ -1104,7 +1104,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1116,7 +1116,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; } -@@ -1137,6 +1138,11 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1149,6 +1150,11 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { hubManager.setStatusIndicatorHeight(mStatusIndicatorHeight); }); @@ -117,7 +117,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -281,6 +281,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -282,6 +282,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kNotificationPermissionVariant, &kNotificationPermissionBottomSheet, &kNotificationTrampoline, @@ -128,7 +128,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -402,6 +402,7 @@ public abstract class ChromeFeatureList { +@@ -390,6 +390,7 @@ public abstract class ChromeFeatureList { public static final String NOTIFICATION_PERMISSION_BOTTOM_SHEET = "NotificationPermissionBottomSheet"; public static final String NOTIFICATION_TRAMPOLINE = "NotificationTrampoline"; diff --git a/build/patches/Revert-Permit-blocking-of-view-source.patch b/build/patches/Revert-Permit-blocking-of-view-source.patch index ab8df6b8c..1676aaa92 100644 --- a/build/patches/Revert-Permit-blocking-of-view-source.patch +++ b/build/patches/Revert-Permit-blocking-of-view-source.patch @@ -12,7 +12,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/components/policy/content/policy_blocklist_navigation_throttle.cc b/components/policy/content/policy_blocklist_navigation_throttle.cc --- a/components/policy/content/policy_blocklist_navigation_throttle.cc +++ b/components/policy/content/policy_blocklist_navigation_throttle.cc -@@ -63,6 +63,7 @@ PolicyBlocklistNavigationThrottle::~PolicyBlocklistNavigationThrottle() { +@@ -64,6 +64,7 @@ PolicyBlocklistNavigationThrottle::~PolicyBlocklistNavigationThrottle() { } bool PolicyBlocklistNavigationThrottle::IsBlockedViewSourceNavigation() { 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 48eb25c75..cb8d04e8e 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 -@@ -2204,6 +2204,10 @@ +@@ -2140,6 +2140,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 29a1cb63b..373829a8b 100644 --- a/build/patches/Revert-removal-of-execution-context-address-space.patch +++ b/build/patches/Revert-removal-of-execution-context-address-space.patch @@ -66,7 +66,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/core/execution_context/execution_context.cc b/third_party/blink/renderer/core/execution_context/execution_context.cc --- a/third_party/blink/renderer/core/execution_context/execution_context.cc +++ b/third_party/blink/renderer/core/execution_context/execution_context.cc -@@ -519,6 +519,15 @@ void ExecutionContext::SetReferrerPolicy( +@@ -518,6 +518,15 @@ void ExecutionContext::SetReferrerPolicy( policy_container_->UpdateReferrerPolicy(referrer_policy); } @@ -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 -@@ -8089,6 +8089,40 @@ TEST_F(WebFrameTest, PushStateStartsAndStops) { +@@ -8090,6 +8090,40 @@ TEST_F(WebFrameTest, PushStateStartsAndStops) { EXPECT_EQ(client.StopLoadingCount(), 2); } @@ -256,7 +256,7 @@ diff --git a/third_party/blink/renderer/core/loader/modulescript/worker_module_s #include "services/network/public/mojom/referrer_policy.mojom-blink.h" #include "third_party/blink/public/common/features.h" #include "third_party/blink/public/common/loader/network_utils.h" -@@ -185,7 +186,7 @@ void WorkerModuleScriptFetcher::NotifyClient( +@@ -184,7 +185,7 @@ void WorkerModuleScriptFetcher::NotifyClient( // Step 12.3-12.6 are implemented in Initialize(). global_scope_->Initialize( @@ -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; -@@ -430,6 +431,7 @@ void DedicatedWorker::OnScriptLoadStarted( +@@ -429,6 +430,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)); } -@@ -502,6 +504,7 @@ void DedicatedWorker::OnFinished( +@@ -501,6 +503,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(), -@@ -518,6 +521,7 @@ void DedicatedWorker::ContinueStart( +@@ -517,6 +520,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 -@@ -540,6 +544,7 @@ void DedicatedWorker::ContinueStart( +@@ -539,6 +543,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())); -@@ -548,6 +553,7 @@ void DedicatedWorker::ContinueStart( +@@ -547,6 +552,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)); } -@@ -559,6 +565,7 @@ void DedicatedWorker::ContinueStartInternal( +@@ -558,6 +564,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 -@@ -570,7 +577,8 @@ void DedicatedWorker::ContinueStartInternal( +@@ -569,7 +576,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_, -@@ -607,7 +615,8 @@ DedicatedWorker::CreateGlobalScopeCreationParams( +@@ -606,7 +614,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(); -@@ -656,6 +665,7 @@ DedicatedWorker::CreateGlobalScopeCreationParams( +@@ -655,6 +664,7 @@ DedicatedWorker::CreateGlobalScopeCreationParams( execution_context->GetSecurityOrigin(), execution_context->IsSecureContext(), execution_context->GetHttpsState(), MakeGarbageCollected(), CreateWebContentSettingsClient(), 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 773ad6476..504b06f62 100644 --- a/build/patches/Revert-remove-allowscript-content-setting-secondary-url.patch +++ b/build/patches/Revert-remove-allowscript-content-setting-secondary-url.patch @@ -196,7 +196,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p #include "third_party/blink/renderer/bindings/core/v8/binding_security.h" #include "third_party/blink/renderer/bindings/core/v8/capture_source_location.h" #include "third_party/blink/renderer/bindings/core/v8/isolated_world_csp.h" -@@ -486,7 +487,10 @@ bool LocalDOMWindow::CanExecuteScripts( +@@ -487,7 +488,10 @@ bool LocalDOMWindow::CanExecuteScripts( } return false; } @@ -211,7 +211,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc -@@ -4055,19 +4055,6 @@ bool LocalFrame::IsSameOrigin() { +@@ -4068,19 +4068,6 @@ bool LocalFrame::IsSameOrigin() { return security_origin->IsSameOriginWith(top_security_origin); } @@ -234,7 +234,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h --- a/third_party/blink/renderer/core/frame/local_frame.h +++ b/third_party/blink/renderer/core/frame/local_frame.h -@@ -919,12 +919,6 @@ class CORE_EXPORT LocalFrame final +@@ -928,12 +928,6 @@ class CORE_EXPORT LocalFrame final return *v8_local_compile_hints_producer_; } @@ -246,11 +246,11 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/b - const WebPrintParams& GetPrintParams() const; - // Return a keep alive handle for the browser side NavigationStateKeepAlive. + // Returns the `Frame` for which `provisional_frame_ == this`. May only be 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 -@@ -787,7 +787,9 @@ void HTMLMetaElement::ProcessMetaCH(Document& document, +@@ -786,7 +786,9 @@ void HTMLMetaElement::ProcessMetaCH(Document& document, return; } @@ -264,7 +264,7 @@ diff --git a/third_party/blink/renderer/core/html/html_meta_element.cc b/third_p diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.cc b/third_party/blink/renderer/core/loader/base_fetch_context.cc --- a/third_party/blink/renderer/core/loader/base_fetch_context.cc +++ b/third_party/blink/renderer/core/loader/base_fetch_context.cc -@@ -254,7 +254,7 @@ BaseFetchContext::CanRequestInternal( +@@ -256,7 +256,7 @@ BaseFetchContext::CanRequestInternal( } if (type == ResourceType::kScript) { @@ -298,7 +298,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/thi return; } -@@ -913,15 +914,26 @@ void FrameFetchContext::SetFirstPartyCookie(ResourceRequest& request) { +@@ -933,15 +934,26 @@ void FrameFetchContext::SetFirstPartyCookie(ResourceRequest& request) { request.SetSiteForCookies(GetSiteForCookies()); } @@ -354,7 +354,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.h b/thir static ResourceFetcher* CreateFetcherForCommittedDocument(DocumentLoader&, Document&); FrameFetchContext(DocumentLoader& document_loader, -@@ -165,7 +176,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext, +@@ -168,7 +179,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext, // BaseFetchContext overrides: net::SiteForCookies GetSiteForCookies() const override; SubresourceFilter* GetSubresourceFilter() const override; diff --git a/build/patches/Show-NTP-at-startup.patch b/build/patches/Show-NTP-at-startup.patch index 374f17e72..d04335a01 100644 --- a/build/patches/Show-NTP-at-startup.patch +++ b/build/patches/Show-NTP-at-startup.patch @@ -94,7 +94,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 -@@ -2258,6 +2258,8 @@ public class ChromeTabbedActivity extends ChromeActivityIsSameOriginWith(top_security_origin); } @@ -346,7 +346,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h --- a/third_party/blink/renderer/core/frame/local_frame.h +++ b/third_party/blink/renderer/core/frame/local_frame.h -@@ -918,12 +918,6 @@ class CORE_EXPORT LocalFrame final +@@ -927,12 +927,6 @@ class CORE_EXPORT LocalFrame final return *v8_local_compile_hints_producer_; } @@ -424,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 -@@ -1039,9 +1039,8 @@ void Page::SettingsChanged(ChangeType change_type) { +@@ -1017,9 +1017,8 @@ void Page::SettingsChanged(ChangeType change_type) { for (Frame* frame = MainFrame(); frame; frame = frame->Tree().TraverseNext()) { if (auto* local_frame = DynamicTo(frame)) { @@ -439,7 +439,7 @@ diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/re diff --git a/third_party/blink/renderer/platform/loader/fetch/fetch_context.h b/third_party/blink/renderer/platform/loader/fetch/fetch_context.h --- a/third_party/blink/renderer/platform/loader/fetch/fetch_context.h +++ b/third_party/blink/renderer/platform/loader/fetch/fetch_context.h -@@ -106,7 +106,7 @@ class PLATFORM_EXPORT FetchContext : public GarbageCollected { +@@ -107,7 +107,7 @@ class PLATFORM_EXPORT FetchContext : public GarbageCollected { virtual void AddResourceTiming(mojom::blink::ResourceTimingInfoPtr, const AtomicString& initiator_type); @@ -451,7 +451,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/fetch_context.h b/ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc --- a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc +++ b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc -@@ -790,6 +790,7 @@ ResourceFetcher::ResourceFetcher(const ResourceFetcherInit& init) +@@ -798,6 +798,7 @@ ResourceFetcher::ResourceFetcher(const ResourceFetcherInit& init) blob_registry_remote_(init.context_lifecycle_notifier), context_lifecycle_notifier_(init.context_lifecycle_notifier), auto_load_images_(true), @@ -459,16 +459,16 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c allow_stale_resources_(false), image_fetched_(false), transparent_image_optimization_enabled_(base::FeatureList::IsEnabled( -@@ -1924,7 +1925,7 @@ bool ResourceFetcher::IsImageResourceDisallowedToBeReused( - if (existing_resource.GetType() != ResourceType::kImage) +@@ -1961,7 +1962,7 @@ bool ResourceFetcher::IsImageResourceDisallowedToBeReused( return false; + } - return !Context().AllowImage(); + return !Context().AllowImage(images_enabled_, existing_resource.Url()); } ResourceFetcher::RevalidationPolicy -@@ -2167,8 +2168,20 @@ void ResourceFetcher::SetAutoLoadImages(bool enable) { +@@ -2206,8 +2207,20 @@ void ResourceFetcher::SetAutoLoadImages(bool enable) { ReloadImagesIfNotDeferred(); } @@ -501,7 +501,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h FetchContext& Context() const; void ClearContext(); -@@ -694,6 +695,7 @@ class PLATFORM_EXPORT ResourceFetcher +@@ -698,6 +699,7 @@ class PLATFORM_EXPORT ResourceFetcher // 27 bits left bool auto_load_images_ : 1; diff --git a/build/patches/Switch-to-fstack-protector-strong.patch b/build/patches/Switch-to-fstack-protector-strong.patch index 1c006ffff..4aee772b4 100644 --- a/build/patches/Switch-to-fstack-protector-strong.patch +++ b/build/patches/Switch-to-fstack-protector-strong.patch @@ -19,8 +19,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn -@@ -371,7 +371,7 @@ config("compiler") { - } else if ((is_posix && !is_chromeos && !is_nacl) || is_fuchsia) { +@@ -372,7 +372,7 @@ config("compiler") { + } else if ((is_posix && !is_nacl) || is_fuchsia) { if (current_os != "aix") { # Not available on aix. - cflags += [ "-fstack-protector" ] 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 32c8eb087..fb209f447 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 -@@ -2975,6 +2975,7 @@ void SpdySession::OnHeaders(spdy::SpdyStreamId stream_id, +@@ -2981,6 +2981,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-PerformanceNavigationTiming-privacy-fix.patch b/build/patches/Temp-PerformanceNavigationTiming-privacy-fix.patch index bfe8f0968..dd970f6c1 100644 --- a/build/patches/Temp-PerformanceNavigationTiming-privacy-fix.patch +++ b/build/patches/Temp-PerformanceNavigationTiming-privacy-fix.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/timing/performance_navigation_timing.cc b/third_party/blink/renderer/core/timing/performance_navigation_timing.cc --- a/third_party/blink/renderer/core/timing/performance_navigation_timing.cc +++ b/third_party/blink/renderer/core/timing/performance_navigation_timing.cc -@@ -32,6 +32,7 @@ using network::mojom::blink::NavigationDeliveryType; +@@ -34,6 +34,7 @@ using network::mojom::blink::NavigationDeliveryType; namespace { V8NavigationEntropy::Enum GetSystemEntropy(DocumentLoader* loader) { @@ -19,7 +19,7 @@ diff --git a/third_party/blink/renderer/core/timing/performance_navigation_timin if (loader) { switch (loader->GetTiming().SystemEntropyAtNavigationStart()) { case mojom::blink::SystemEntropy::kHigh: -@@ -216,6 +217,7 @@ V8NavigationTimingType PerformanceNavigationTiming::type() const { +@@ -225,6 +226,7 @@ V8NavigationTimingType PerformanceNavigationTiming::type() const { } AtomicString PerformanceNavigationTiming::deliveryType() const { @@ -30,7 +30,7 @@ diff --git a/third_party/blink/renderer/core/timing/performance_navigation_timin diff --git a/third_party/blink/renderer/core/timing/performance_resource_timing.cc b/third_party/blink/renderer/core/timing/performance_resource_timing.cc --- a/third_party/blink/renderer/core/timing/performance_resource_timing.cc +++ b/third_party/blink/renderer/core/timing/performance_resource_timing.cc -@@ -136,7 +136,7 @@ AtomicString PerformanceResourceTiming::GetDeliveryType() const { +@@ -135,7 +135,7 @@ AtomicString PerformanceResourceTiming::GetDeliveryType() const { } return info_->cache_state == mojom::blink::CacheState::kNone ? g_empty_atom @@ -39,7 +39,7 @@ diff --git a/third_party/blink/renderer/core/timing/performance_resource_timing. } AtomicString PerformanceResourceTiming::deliveryType() const { -@@ -173,6 +173,7 @@ AtomicString PerformanceResourceTiming::GetNextHopProtocol( +@@ -172,6 +172,7 @@ AtomicString PerformanceResourceTiming::GetNextHopProtocol( returnedProtocol = g_empty_atom; } diff --git a/build/patches/Temp-disable-experimental-web-platform-features.patch b/build/patches/Temp-disable-experimental-web-platform-features.patch index 467ef9466..e3b3d48b8 100644 --- a/build/patches/Temp-disable-experimental-web-platform-features.patch +++ b/build/patches/Temp-disable-experimental-web-platform-features.patch @@ -9,7 +9,7 @@ Subject: Temp disable experimental-web-platform-features diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -4449,10 +4449,10 @@ const FeatureEntry kFeatureEntries[] = { +@@ -4548,10 +4548,10 @@ const FeatureEntry kFeatureEntries[] = { {"enable-fontations-backend", flag_descriptions::kFontationsFontBackendName, flag_descriptions::kFontationsFontBackendDescription, kOsAll, FEATURE_VALUE_TYPE(blink::features::kFontationsFontBackend)}, diff --git a/build/patches/Temp-guard-FileSystemAccessPersistentPermissions.patch b/build/patches/Temp-guard-FileSystemAccessPersistentPermissions.patch index dd48a3cfc..6b626b510 100644 --- a/build/patches/Temp-guard-FileSystemAccessPersistentPermissions.patch +++ b/build/patches/Temp-guard-FileSystemAccessPersistentPermissions.patch @@ -10,7 +10,7 @@ Subject: Temp guard FileSystemAccessPersistentPermissions diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc b/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc --- a/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc +++ b/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc -@@ -436,7 +436,7 @@ bool ShouldBlockAccessToPath(const base::FilePath& path, +@@ -462,7 +462,7 @@ bool ShouldBlockAccessToPath(const base::FilePath& path, normalize_file_paths ? NormalizeFilePath(block.path) : block.path; if (check_path == blocked_path || check_path.IsParent(blocked_path)) { @@ -19,7 +19,7 @@ diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permiss << " because it is a parent of " << blocked_path; return true; } -@@ -463,7 +463,7 @@ bool ShouldBlockAccessToPath(const base::FilePath& path, +@@ -489,7 +489,7 @@ bool ShouldBlockAccessToPath(const base::FilePath& path, } // The nearest ancestor blocks access to its children, so block access. diff --git a/build/patches/Timezone-customization.patch b/build/patches/Timezone-customization.patch index f01b30b9b..da6c6cd69 100644 --- a/build/patches/Timezone-customization.patch +++ b/build/patches/Timezone-customization.patch @@ -32,7 +32,11 @@ Require: Content-settings-infrastructure.patch .../content_settings/core/common/pref_names.h | 3 + .../renderer/content_settings_agent_impl.cc | 77 +++++++ .../renderer/content_settings_agent_impl.h | 11 + - 22 files changed, 678 insertions(+), 1 deletion(-) + .../blink/renderer/core/timezone/build.gni | 2 + + .../timezone/external_timezone_controller.cc | 37 ++++ + .../timezone/external_timezone_controller.h | 33 +++ + .../core/timezone/timezone_controller.h | 6 +- + 26 files changed, 755 insertions(+), 2 deletions(-) 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 @@ -40,11 +44,13 @@ Require: Content-settings-infrastructure.patch create mode 100644 components/browser_ui/strings/bromite_content_settings/timezone.grdp create mode 100644 components/content_settings/core/browser/bromite_content_settings/timezone_override.inc create mode 100644 components/content_settings/core/common/bromite_content_settings/TIMEZONE.inc + create mode 100644 third_party/blink/renderer/core/timezone/external_timezone_controller.cc + create mode 100644 third_party/blink/renderer/core/timezone/external_timezone_controller.h diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/browser_ui/site_settings/android/BUILD.gn --- a/components/browser_ui/site_settings/android/BUILD.gn +++ b/components/browser_ui/site_settings/android/BUILD.gn -@@ -98,6 +98,7 @@ android_library("java") { +@@ -99,6 +99,7 @@ android_library("java") { "java/src/org/chromium/components/browser_ui/site_settings/WebsitePreference.java", "java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java", "java/src/org/chromium/components/browser_ui/site_settings/WebsiteRowPreference.java", @@ -52,7 +58,7 @@ diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/b ] resources_package = "org.chromium.components.browser_ui.site_settings" -@@ -279,6 +280,8 @@ android_resources("java_resources") { +@@ -282,6 +283,8 @@ android_resources("java_resources") { "java/res/xml/site_settings_preferences.xml", "java/res/xml/storage_access_settings.xml", "java/res/xml/website_preferences.xml", @@ -559,7 +565,7 @@ new file mode 100644 diff --git a/components/browser_ui/site_settings/android/website_preference_bridge.cc b/components/browser_ui/site_settings/android/website_preference_bridge.cc --- a/components/browser_ui/site_settings/android/website_preference_bridge.cc +++ b/components/browser_ui/site_settings/android/website_preference_bridge.cc -@@ -1122,3 +1122,19 @@ JNI_WebsitePreferenceBridge_ToHostOnlyPattern( +@@ -1129,3 +1129,19 @@ JNI_WebsitePreferenceBridge_ToHostOnlyPattern( ContentSettingsPattern::FromString(pattern_string)); return ConvertUTF8ToJavaString(env, host_only_pattern.ToString()); } @@ -714,7 +720,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov diff --git a/components/content_settings/core/browser/content_settings_utils.cc b/components/content_settings/core/browser/content_settings_utils.cc --- a/components/content_settings/core/browser/content_settings_utils.cc +++ b/components/content_settings/core/browser/content_settings_utils.cc -@@ -150,6 +150,11 @@ void GetRendererContentSettingRules(const HostContentSettingsMap* map, +@@ -151,6 +151,11 @@ void GetRendererContentSettingRules(const HostContentSettingsMap* map, ContentSettingToValue(CONTENT_SETTING_BLOCK), ProviderType::kNone, map->IsOffTheRecord())); #endif @@ -729,7 +735,7 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.cc diff --git a/components/content_settings/core/browser/host_content_settings_map.cc b/components/content_settings/core/browser/host_content_settings_map.cc --- a/components/content_settings/core/browser/host_content_settings_map.cc +++ b/components/content_settings/core/browser/host_content_settings_map.cc -@@ -664,6 +664,14 @@ void HostContentSettingsMap::SetClockForTesting(const base::Clock* clock) { +@@ -667,6 +667,14 @@ void HostContentSettingsMap::SetClockForTesting(const base::Clock* clock) { } } @@ -875,7 +881,7 @@ diff --git a/components/content_settings/renderer/content_settings_agent_impl.cc + * all else fails, we return GMT, which is probably not what the + * user wants, but at least is a functioning TimeZone object. + */ -+ String timezone_id; ++ std::string timezone_id; + + if (setting == CONTENT_SETTING_ALLOW) { + // system time @@ -893,7 +899,7 @@ diff --git a/components/content_settings/renderer/content_settings_agent_impl.cc + const char* tzID; + int32_t length; + if ((tzID = timezones->next(&length, ec)) != NULL) { -+ timezone_id = String(tzID); ++ timezone_id = tzID; + } + delete timezones; + } @@ -901,13 +907,13 @@ diff --git a/components/content_settings/renderer/content_settings_agent_impl.cc + if (timezone_override_value.empty()) + timezone_id = "Europe/London"; + else -+ timezone_id = String(timezone_override_value.c_str()); ++ timezone_id = timezone_override_value; + } + -+ if (blink::TimeZoneController::HasTimeZoneOverride() == false) { ++ if (!blink::ExternalTimeZoneController::HasTimeZoneOverride()) { + timezone_override_.reset(); + timezone_override_ = -+ blink::TimeZoneController::SetTimeZoneOverride(timezone_id); ++ blink::ExternalTimeZoneController::SetTimeZoneOverride(timezone_id); + if (!timezone_override_) { + DLOG(WARNING) << "UpdateTimeZoneOverride - Invalid timezone id '" + << timezone_id << "'"; @@ -934,7 +940,7 @@ diff --git a/components/content_settings/renderer/content_settings_agent_impl.h #include "url/origin.h" +#include "third_party/blink/renderer/core/inspector/locale_controller.h" -+#include "third_party/blink/renderer/core/timezone/timezone_controller.h" ++#include "third_party/blink/renderer/core/timezone/external_timezone_controller.h" +#include "third_party/icu/source/common/unicode/strenum.h" +#include "third_party/icu/source/i18n/unicode/timezone.h" + @@ -946,7 +952,7 @@ diff --git a/components/content_settings/renderer/content_settings_agent_impl.h mojo::AssociatedReceiverSet receivers_; + -+ std::unique_ptr timezone_override_; ++ std::unique_ptr timezone_override_; + + bool UpdateOverrides(); + bool UpdateTimeZoneOverride(ContentSetting setting, const std::string& timezone_override_value); @@ -954,4 +960,124 @@ diff --git a/components/content_settings/renderer/content_settings_agent_impl.h }; } // namespace content_settings +diff --git a/third_party/blink/renderer/core/timezone/build.gni b/third_party/blink/renderer/core/timezone/build.gni +--- a/third_party/blink/renderer/core/timezone/build.gni ++++ b/third_party/blink/renderer/core/timezone/build.gni +@@ -5,4 +5,6 @@ + blink_core_sources_timezone = [ + "timezone_controller.cc", + "timezone_controller.h", ++ "external_timezone_controller.cc", ++ "external_timezone_controller.h", + ] +diff --git a/third_party/blink/renderer/core/timezone/external_timezone_controller.cc b/third_party/blink/renderer/core/timezone/external_timezone_controller.cc +new file mode 100644 +--- /dev/null ++++ b/third_party/blink/renderer/core/timezone/external_timezone_controller.cc +@@ -0,0 +1,37 @@ ++// Copyright 2019 The Chromium Authors ++// Use of this source code is governed by a BSD-style license that can be ++// found in the LICENSE file. ++ ++#include "third_party/blink/renderer/core/timezone/external_timezone_controller.h" ++#include "third_party/blink/renderer/core/timezone/timezone_controller.h" ++#include "third_party/blink/renderer/platform/wtf/wtf.h" ++ ++namespace blink { ++ ++ExternalTimeZoneController::ExternalTimeZoneController() { ++ DCHECK(IsMainThread()); ++} ++ ++// static ++std::unique_ptr ++ExternalTimeZoneController::SetTimeZoneOverride(const std::string& timezone_id) { ++ auto timezone = String(timezone_id.c_str()); ++ ++ auto timezone_override = TimeZoneController::SetTimeZoneOverride(timezone); ++ if (!timezone_override) return nullptr; ++ ++ timezone_override->clear_at_destruction_ = false; ++ return std::unique_ptr(new TimeZoneOverride()); ++} ++ ++// static ++bool ExternalTimeZoneController::HasTimeZoneOverride() { ++ return TimeZoneController::HasTimeZoneOverride(); ++} ++ ++// static ++void ExternalTimeZoneController::ClearTimeZoneOverride() { ++ TimeZoneController::ClearTimeZoneOverride(); ++} ++ ++} // namespace blink +diff --git a/third_party/blink/renderer/core/timezone/external_timezone_controller.h b/third_party/blink/renderer/core/timezone/external_timezone_controller.h +new file mode 100644 +--- /dev/null ++++ b/third_party/blink/renderer/core/timezone/external_timezone_controller.h +@@ -0,0 +1,33 @@ ++#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_TIMEZONE_EXTERNAL_TIMEZONE_CONTROLLER_H_ ++#define THIRD_PARTY_BLINK_RENDERER_CORE_TIMEZONE_EXTERNAL_TIMEZONE_CONTROLLER_H_ ++ ++#include ++ ++#include "third_party/blink/renderer/core/core_export.h" ++ ++namespace blink { ++ ++class CORE_EXPORT ExternalTimeZoneController final { ++ public: ++ class TimeZoneOverride { ++ friend ExternalTimeZoneController; ++ TimeZoneOverride() = default; ++ ++ public: ++ ~TimeZoneOverride() { ClearTimeZoneOverride(); } ++ }; ++ ++ static std::unique_ptr SetTimeZoneOverride( ++ const std::string& timezone_id); ++ ++ static bool HasTimeZoneOverride(); ++ ++ private: ++ static void ClearTimeZoneOverride(); ++ ++ ExternalTimeZoneController(); ++}; ++ ++} // namespace blink ++ ++#endif // THIRD_PARTY_BLINK_RENDERER_CORE_TIMEZONE_EXTERNAL_TIMEZONE_CONTROLLER_H_ +diff --git a/third_party/blink/renderer/core/timezone/timezone_controller.h b/third_party/blink/renderer/core/timezone/timezone_controller.h +--- a/third_party/blink/renderer/core/timezone/timezone_controller.h ++++ b/third_party/blink/renderer/core/timezone/timezone_controller.h +@@ -11,6 +11,7 @@ + #include "services/device/public/mojom/time_zone_monitor.mojom-blink.h" + #include "third_party/blink/renderer/core/core_export.h" + #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" ++#include "third_party/blink/renderer/core/timezone/external_timezone_controller.h" + + namespace blink { + +@@ -25,6 +26,7 @@ namespace blink { + // current host system time zone is assumed. + class CORE_EXPORT TimeZoneController final + : public device::mojom::blink::TimeZoneMonitorClient { ++ friend ExternalTimeZoneController; + public: + ~TimeZoneController() override; + +@@ -39,7 +41,9 @@ class CORE_EXPORT TimeZoneController final + ChangeTimeZoneOverride(timezone_id); + } + +- ~TimeZoneOverride() { ClearTimeZoneOverride(); } ++ bool clear_at_destruction_ = true; ++ ++ ~TimeZoneOverride() { if (clear_at_destruction_) ClearTimeZoneOverride(); } + }; + + static std::unique_ptr SetTimeZoneOverride( -- diff --git a/build/patches/Use-BoringSSL-for-RandBytes.patch b/build/patches/Use-BoringSSL-for-RandBytes.patch index 7f3c9faa0..bf54d23ee 100644 --- a/build/patches/Use-BoringSSL-for-RandBytes.patch +++ b/build/patches/Use-BoringSSL-for-RandBytes.patch @@ -24,7 +24,7 @@ diff --git a/base/rand_util_fuchsia.cc b/base/rand_util_fuchsia.cc diff --git a/base/rand_util_posix.cc b/base/rand_util_posix.cc --- a/base/rand_util_posix.cc +++ b/base/rand_util_posix.cc -@@ -158,7 +158,7 @@ std::atomic g_use_boringssl; +@@ -133,7 +133,7 @@ std::atomic g_use_boringssl; BASE_FEATURE(kUseBoringSSLForRandBytes, "UseBoringSSLForRandBytes", diff --git a/build/patches/Use-browser-navigation-handler.patch b/build/patches/Use-browser-navigation-handler.patch index 231a08c00..1f178d21c 100644 --- a/build/patches/Use-browser-navigation-handler.patch +++ b/build/patches/Use-browser-navigation-handler.patch @@ -86,15 +86,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/Gest diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/HistoryNavigationCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/HistoryNavigationCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/HistoryNavigationCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/HistoryNavigationCoordinator.java -@@ -12,6 +12,7 @@ import androidx.annotation.Nullable; - +@@ -14,6 +14,7 @@ import org.chromium.base.BuildInfo; import org.chromium.base.supplier.ObservableSupplier; import org.chromium.base.supplier.Supplier; + import org.chromium.chrome.browser.flags.ChromeFeatureList; +import org.chromium.chrome.browser.flags.cromite.sUseBrowserNavigationHandler; + import org.chromium.chrome.browser.fullscreen.FullscreenManager; + import org.chromium.chrome.browser.fullscreen.FullscreenOptions; import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher; - import org.chromium.chrome.browser.lifecycle.PauseResumeWithNativeObserver; - import org.chromium.chrome.browser.tab.CurrentTabObserver; -@@ -155,6 +156,9 @@ public class HistoryNavigationCoordinator +@@ -197,6 +198,9 @@ public class HistoryNavigationCoordinator * @return {@code} true if the feature is enabled. */ private boolean isFeatureEnabled() { @@ -139,7 +139,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/Navi import static org.chromium.chrome.browser.gesturenav.GestureNavigationProperties.EDGE; import android.app.Activity; -@@ -276,7 +276,11 @@ class NavigationHandler implements TouchEventObserver { +@@ -289,7 +289,11 @@ class NavigationHandler implements TouchEventObserver { boolean forward = isForward(); @@ -152,7 +152,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/Navi mModel.set(EDGE, mInitiatingEdge); if (canNavigate(forward)) { if (mState != GestureState.STARTED) mModel.set(ACTION, GestureAction.RESET_BUBBLE); -@@ -483,12 +487,14 @@ class NavigationHandler implements TouchEventObserver { +@@ -510,12 +514,14 @@ class NavigationHandler implements TouchEventObserver { } private boolean isForward() { @@ -227,7 +227,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/Side diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java -@@ -57,6 +57,7 @@ import org.chromium.chrome.browser.firstrun.FirstRunStatus; +@@ -58,6 +58,7 @@ import org.chromium.chrome.browser.firstrun.FirstRunStatus; import org.chromium.chrome.browser.flags.ActivityType; import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.flags.ChromeSwitches; @@ -235,7 +235,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab import org.chromium.chrome.browser.fullscreen.BrowserControlsManager; import org.chromium.chrome.browser.fullscreen.FullscreenManager; import org.chromium.chrome.browser.gesturenav.BackActionDelegate; -@@ -628,6 +629,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -634,6 +635,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { @Override public void onInflationComplete() { mCoordinator = mActivity.findViewById(R.id.coordinator); @@ -302,7 +302,7 @@ new file mode 100644 diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml --- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml +++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml -@@ -108,4 +108,13 @@ found in the LICENSE file. +@@ -103,4 +103,13 @@ found in the LICENSE file. android:summary="@string/selection_popup_smart_text_summary" android:title="@string/selection_popup_smart_text_title" /> diff --git a/build/patches/Use-list-mode-for-tab-switcher.patch b/build/patches/Use-list-mode-for-tab-switcher.patch index 0c056a328..e75c408b6 100644 --- a/build/patches/Use-list-mode-for-tab-switcher.patch +++ b/build/patches/Use-list-mode-for-tab-switcher.patch @@ -118,7 +118,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; -@@ -1854,7 +1855,7 @@ public class ToolbarPhone extends ToolbarLayout +@@ -1886,7 +1887,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. @@ -127,7 +127,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow mLocationBar.setUrlBarFocusable(false); } -@@ -2052,7 +2053,8 @@ public class ToolbarPhone extends ToolbarLayout +@@ -2088,7 +2089,8 @@ public class ToolbarPhone extends ToolbarLayout updateLocationBarForNtp(mVisualState, urlHasFocus()); diff --git a/build/patches/User-agent-customization.patch b/build/patches/User-agent-customization.patch index 79d84fb97..6debf0a18 100644 --- a/build/patches/User-agent-customization.patch +++ b/build/patches/User-agent-customization.patch @@ -56,7 +56,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/base/base_switches.cc b/base/base_switches.cc --- a/base/base_switches.cc +++ b/base/base_switches.cc -@@ -176,6 +176,8 @@ const char kPackageName[] = "package-name"; +@@ -173,6 +173,8 @@ const char kPackageName[] = "package-name"; const char kPackageVersionName[] = "package-version-name"; #endif @@ -68,7 +68,7 @@ diff --git a/base/base_switches.cc b/base/base_switches.cc diff --git a/base/base_switches.h b/base/base_switches.h --- a/base/base_switches.h +++ b/base/base_switches.h -@@ -64,6 +64,8 @@ extern const char kPackageVersionName[]; +@@ -63,6 +63,8 @@ extern const char kPackageVersionName[]; extern const char kSchedulerBoostUrgent[]; #endif @@ -80,7 +80,7 @@ diff --git a/base/base_switches.h b/base/base_switches.h diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni --- a/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni -@@ -634,4 +634,6 @@ chrome_java_resources = [ +@@ -635,4 +635,6 @@ chrome_java_resources = [ "java/res/xml/search_widget_info.xml", "java/res/xml/tracing_preferences.xml", "java/res/xml/unified_account_settings_preferences.xml", @@ -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 -@@ -937,6 +937,7 @@ chrome_java_sources = [ +@@ -932,6 +932,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", @@ -139,7 +139,7 @@ new file mode 100644 + @@ -170,7 +170,7 @@ new file mode 100644 + @@ -257,7 +257,7 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -2668,6 +2668,7 @@ public abstract class ChromeActivity +@@ -2595,6 +2595,7 @@ public abstract class ChromeActivity TabUtils.switchUserAgent( currentTab, usingDesktopUserAgent, @@ -539,7 +539,7 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/RequestDesktopUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/RequestDesktopUtils.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/RequestDesktopUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/RequestDesktopUtils.java -@@ -133,6 +133,7 @@ public class RequestDesktopUtils { +@@ -131,6 +131,7 @@ public class RequestDesktopUtils { */ public static void setRequestDesktopSiteContentSettingsForUrl( Profile profile, GURL url, boolean useDesktopUserAgent) { @@ -550,7 +550,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/RequestDesk diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java -@@ -65,6 +65,9 @@ import org.chromium.components.autofill.AutofillFeatures; +@@ -66,6 +66,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; @@ -560,7 +560,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav import org.chromium.components.dom_distiller.core.DomDistillerUrlUtils; import org.chromium.components.embedder_support.contextmenu.ContextMenuPopulatorFactory; import org.chromium.components.embedder_support.util.UrlConstants; -@@ -101,6 +104,9 @@ import org.chromium.chrome.browser.preferences.Pref; +@@ -104,6 +107,9 @@ import org.chromium.chrome.browser.preferences.Pref; import org.chromium.chrome.browser.profiles.ProfileManager; import org.chromium.components.user_prefs.UserPrefs; @@ -570,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. -@@ -2018,9 +2024,6 @@ class TabImpl implements Tab { +@@ -2030,9 +2036,6 @@ class TabImpl implements Tab, SensitiveContentClient.Observer { } if (mWebContents != null) { @@ -580,7 +580,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav mWebContents.getNavigationController().loadIfNecessary(); } mIsBeingRestored = true; -@@ -2347,6 +2350,11 @@ class TabImpl implements Tab { +@@ -2366,6 +2369,11 @@ class TabImpl implements Tab, SensitiveContentClient.Observer { url = webContents.getVisibleUrl(); } @@ -592,7 +592,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav // Do not override UA if there is a tab level setting. if (tabUserAgent != TabUserAgent.DEFAULT) { recordHistogramUseDesktopUserAgent(currentRequestDesktopSite); -@@ -2392,7 +2400,7 @@ class TabImpl implements Tab { +@@ -2411,7 +2419,7 @@ class TabImpl implements Tab, SensitiveContentClient.Observer { } boolean usingDesktopUserAgent = getWebContents().getNavigationController().getUseDesktopUserAgent(); @@ -601,8 +601,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav } /** Sets the TabLaunchType for tabs launched with an unset launch type. */ -@@ -2449,6 +2457,54 @@ class TabImpl implements Tab { - } +@@ -2481,6 +2489,54 @@ class TabImpl implements Tab, SensitiveContentClient.Observer { + setTabHasSensitiveContent(contentIsSensitive); } + int overrideUserAgentWhenUnFrozen = (int)UserAgentOverrideOption.INHERIT; @@ -669,8 +669,8 @@ 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,11 +129,8 @@ public class TabUtils { + import java.util.ArrayList; +@@ -128,11 +132,8 @@ public class TabUtils { * @param switchToDesktop Whether switching the user agent to desktop. * @param caller The caller of this method. */ @@ -956,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 -@@ -1041,8 +1041,6 @@ public final class ChromePreferenceKeys { +@@ -1039,8 +1039,6 @@ public final class ChromePreferenceKeys { SIGNIN_PROMO_NTP_LAST_SHOWN_TIME, SYNC_PROMO_TOTAL_SHOW_COUNT, SEARCH_RESUMPTION_MODULE_COLLAPSE_ON_NTP, @@ -998,7 +998,7 @@ diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.jav diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManager.java b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManager.java --- a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManager.java +++ b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManager.java -@@ -115,6 +115,8 @@ public interface TabWindowManager { +@@ -119,6 +119,8 @@ public interface TabWindowManager { */ Tab getTabById(int tabId); @@ -1010,7 +1010,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 -@@ -416,6 +416,24 @@ public class TabWindowManagerImpl implements ActivityStateListener, TabWindowMan +@@ -419,6 +419,24 @@ public class TabWindowManagerImpl implements ActivityStateListener, TabWindowMan return null; } @@ -1074,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 -@@ -1956,6 +1956,14 @@ inline constexpr char kNaviOnboardGroup[] = "browser.navi_onboard_group"; +@@ -1922,6 +1922,14 @@ inline constexpr char kNaviOnboardGroup[] = "browser.navi_onboard_group"; inline constexpr char kHadThreeConsecutiveNotificationPermissionDenies[] = "profile.content_settings.had_three_consecutive_denies.notifications"; @@ -1217,7 +1217,7 @@ diff --git a/components/browser_ui/widget/android/java/src/org/chromium/componen diff --git a/components/embedder_support/user_agent_utils.cc b/components/embedder_support/user_agent_utils.cc --- a/components/embedder_support/user_agent_utils.cc +++ b/components/embedder_support/user_agent_utils.cc -@@ -526,7 +526,8 @@ void SetDesktopUserAgentOverride(content::WebContents* web_contents, +@@ -581,7 +581,8 @@ void SetDesktopUserAgentOverride(content::WebContents* web_contents, blink::UserAgentOverride spoofed_ua; spoofed_ua.ua_string_override = content::BuildUserAgentFromOSAndProduct( @@ -1262,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 -@@ -3476,6 +3476,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( +@@ -3474,6 +3474,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( switches::kLacrosUseChromeosProtectedMedia, switches::kLacrosUseChromeosProtectedAv1, #endif @@ -1281,7 +1281,7 @@ diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser #include "base/base_switches.h" #include "base/check_op.h" #include "base/command_line.h" -@@ -2305,8 +2306,6 @@ void WebContentsImpl::SetUserAgentOverride( +@@ -2311,8 +2312,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); @@ -1290,7 +1290,7 @@ diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser if (GetUserAgentOverride() == ua_override) { return; -@@ -3354,6 +3353,9 @@ const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences() { +@@ -3457,6 +3456,9 @@ const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences() { #else prefs.viewport_meta_enabled = false; #endif @@ -1323,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 -@@ -882,7 +882,6 @@ void RenderThreadImpl::InitializeRenderer( +@@ -911,7 +911,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 e012268ce..463a12bed 100644 --- a/build/patches/Viewport-Protection-flag.patch +++ b/build/patches/Viewport-Protection-flag.patch @@ -211,7 +211,7 @@ new file mode 100644 diff --git a/components/guest_view/browser/guest_view_base.cc b/components/guest_view/browser/guest_view_base.cc --- a/components/guest_view/browser/guest_view_base.cc +++ b/components/guest_view/browser/guest_view_base.cc -@@ -523,6 +523,14 @@ void GuestViewBase::AttachToOuterWebContentsFrame( +@@ -629,6 +629,14 @@ void GuestViewBase::AttachToOuterWebContentsFrame( if (attachment_callback) std::move(attachment_callback).Run(); @@ -282,7 +282,7 @@ diff --git a/third_party/blink/public/common/widget/device_emulation_params.h b/ diff --git a/third_party/blink/renderer/core/css/css_properties.json5 b/third_party/blink/renderer/core/css/css_properties.json5 --- a/third_party/blink/renderer/core/css/css_properties.json5 +++ b/third_party/blink/renderer/core/css/css_properties.json5 -@@ -4085,6 +4085,7 @@ +@@ -4097,6 +4097,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, -@@ -4092,7 +4093,6 @@ +@@ -4104,7 +4105,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 -@@ -197,7 +197,7 @@ bool MediaValues::CalculateStrictMode(LocalFrame* frame) { +@@ -194,7 +194,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 -@@ -2210,7 +2210,12 @@ ComputedStyleBuilder StyleResolver::InitialStyleBuilderForElement() const { +@@ -2263,7 +2263,12 @@ ComputedStyleBuilder StyleResolver::InitialStyleBuilderForElement() const { ComputedStyleBuilder builder = CreateComputedStyleBuilder(); builder.SetRtlOrdering(GetDocument().VisuallyOrdered() ? EOrder::kVisual : EOrder::kLogical); @@ -399,7 +399,7 @@ diff --git a/third_party/blink/renderer/core/events/pointer_event.h b/third_part diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_party/blink/renderer/core/exported/web_view_impl.cc --- a/third_party/blink/renderer/core/exported/web_view_impl.cc +++ b/third_party/blink/renderer/core/exported/web_view_impl.cc -@@ -1082,7 +1082,7 @@ WebPagePopupImpl* WebViewImpl::OpenPagePopup(PagePopupClient* client) { +@@ -1083,7 +1083,7 @@ WebPagePopupImpl* WebViewImpl::OpenPagePopup(PagePopupClient* client) { page_popup_ = WebPagePopupImpl::Create( std::move(popup_widget_host), std::move(widget_host), std::move(widget_receiver), this, agent_group_scheduler, @@ -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 -@@ -1510,7 +1510,12 @@ int LocalDOMWindow::outerHeight() const { +@@ -1512,7 +1512,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; -@@ -1535,7 +1540,12 @@ int LocalDOMWindow::outerWidth() const { +@@ -1537,7 +1542,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; -@@ -1729,7 +1739,8 @@ double LocalDOMWindow::devicePixelRatio() const { +@@ -1731,7 +1741,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 { -@@ -2344,6 +2355,23 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate, +@@ -2352,6 +2363,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 -@@ -2399,6 +2427,15 @@ DOMWindow* LocalDOMWindow::openPictureInPictureWindow( +@@ -2403,6 +2431,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 -@@ -1575,6 +1575,10 @@ void LocalFrame::RestoreScrollOffsets() { +@@ -1580,6 +1580,10 @@ void LocalFrame::RestoreScrollOffsets() { saved_scroll_offsets_ = nullptr; } @@ -503,7 +503,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ void LocalFrame::SetLayoutZoomFactor(float factor) { SetLayoutAndTextZoomFactors(factor, text_zoom_factor_); } -@@ -1756,12 +1760,16 @@ mojom::blink::DevicePostureType LocalFrame::GetDevicePosture() { +@@ -1761,12 +1765,16 @@ mojom::blink::DevicePostureType LocalFrame::GetDevicePosture() { return mojo_handler_->GetDevicePosture(); } @@ -522,7 +522,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ return ratio; } -@@ -3363,6 +3371,11 @@ void LocalFrame::SetScaleFactor(float scale_factor) { +@@ -3368,6 +3376,11 @@ void LocalFrame::SetScaleFactor(float scale_factor) { DCHECK(!GetDocument() || !GetDocument()->Printing()); DCHECK(IsMainFrame()); @@ -537,7 +537,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h --- a/third_party/blink/renderer/core/frame/local_frame.h +++ b/third_party/blink/renderer/core/frame/local_frame.h -@@ -427,13 +427,14 @@ class CORE_EXPORT LocalFrame final +@@ -428,13 +428,14 @@ class CORE_EXPORT LocalFrame final void SetInViewSourceMode(bool = true); void SetLayoutZoomFactor(float); @@ -554,7 +554,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/b // Informs the local root's document and its local descendant subtree that a // media query value changed. -@@ -1080,6 +1081,7 @@ class CORE_EXPORT LocalFrame final +@@ -1089,6 +1090,7 @@ class CORE_EXPORT LocalFrame final unsigned did_run_detach_impl_ : 1 = false; float layout_zoom_factor_; @@ -660,7 +660,7 @@ diff --git a/third_party/blink/renderer/core/frame/screen_metrics_emulator.h b/t diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc --- a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc +++ b/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc -@@ -1882,6 +1882,14 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( +@@ -1983,6 +1983,14 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( if (auto* device_emulator = DeviceEmulator()) { device_emulator->UpdateVisualProperties(visual_properties); @@ -678,7 +678,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th diff --git a/third_party/blink/renderer/core/frame/web_remote_frame_impl.cc b/third_party/blink/renderer/core/frame/web_remote_frame_impl.cc --- a/third_party/blink/renderer/core/frame/web_remote_frame_impl.cc +++ b/third_party/blink/renderer/core/frame/web_remote_frame_impl.cc -@@ -364,7 +364,8 @@ void WebRemoteFrameImpl::InitializeFrameVisualProperties( +@@ -362,7 +362,8 @@ void WebRemoteFrameImpl::InitializeFrameVisualProperties( visual_properties.page_scale_factor = ancestor_widget->PageScaleInMainFrame(); visual_properties.is_pinch_gesture_active = ancestor_widget->PinchGestureActiveInMainFrame(); @@ -732,7 +732,7 @@ diff --git a/third_party/blink/renderer/core/input/touch.cc b/third_party/blink/ diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/renderer/core/page/page.cc --- a/third_party/blink/renderer/core/page/page.cc +++ b/third_party/blink/renderer/core/page/page.cc -@@ -106,6 +106,12 @@ +@@ -105,6 +105,12 @@ #include "ui/color/color_provider.h" #include "ui/color/color_provider_utils.h" @@ -745,7 +745,7 @@ diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/re namespace blink { namespace { -@@ -1260,7 +1266,94 @@ void Page::UpdateAcceleratedCompositingSettings() { +@@ -1238,7 +1244,94 @@ void Page::UpdateAcceleratedCompositingSettings() { } } @@ -843,9 +843,9 @@ diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/re diff --git a/third_party/blink/renderer/core/page/page.h b/third_party/blink/renderer/core/page/page.h --- a/third_party/blink/renderer/core/page/page.h +++ b/third_party/blink/renderer/core/page/page.h -@@ -550,6 +550,10 @@ class CORE_EXPORT Page final : public GarbageCollected, - // See https://explainers-by-googlers.github.io/partitioned-popins/ - bool IsPartitionedPopin() const; +@@ -559,6 +559,10 @@ class CORE_EXPORT Page final : public GarbageCollected, + const PartitionedPopinOpenerProperties& GetPartitionedPopinOpenerProperties() + const; + void CalculateEmulatedScreenSetting(LocalFrame* frame, bool force = false); + bool IsScreenEmulated() { return is_screen_emulated_; } @@ -854,7 +854,7 @@ diff --git a/third_party/blink/renderer/core/page/page.h b/third_party/blink/ren private: friend class ScopedPagePauser; class CloseTaskHandler; -@@ -722,6 +726,11 @@ class CORE_EXPORT Page final : public GarbageCollected, +@@ -731,6 +735,11 @@ class CORE_EXPORT Page final : public GarbageCollected, // browser side FrameTree has the FrameTree::Type of kFencedFrame. bool is_fenced_frame_tree_ = false; @@ -869,7 +869,7 @@ diff --git a/third_party/blink/renderer/core/page/page.h b/third_party/blink/ren diff --git a/third_party/blink/renderer/core/style/computed_style.h b/third_party/blink/renderer/core/style/computed_style.h --- a/third_party/blink/renderer/core/style/computed_style.h +++ b/third_party/blink/renderer/core/style/computed_style.h -@@ -1900,6 +1900,12 @@ class ComputedStyle final : public ComputedStyleBase { +@@ -1893,6 +1893,12 @@ class ComputedStyle final : public ComputedStyleBase { IsRunningBackdropFilterAnimationOnCompositor(); } diff --git a/build/patches/WIN-Fix-log-to-file.patch b/build/patches/WIN-Fix-log-to-file.patch index 6b12eb239..f2d06962f 100644 --- a/build/patches/WIN-Fix-log-to-file.patch +++ b/build/patches/WIN-Fix-log-to-file.patch @@ -40,7 +40,7 @@ diff --git a/chrome/common/logging_chrome.cc b/chrome/common/logging_chrome.cc #if BUILDFLAG(IS_CHROMEOS_ASH) base::FilePath SetUpSymlinkIfNeeded(const base::FilePath& symlink_path, -@@ -456,6 +456,9 @@ void InitChromeLogging(const base::CommandLine& command_line, +@@ -457,6 +457,9 @@ void InitChromeLogging(const base::CommandLine& command_line, // since that will remove the newly created link instead. delete_old_log_file = APPEND_TO_OLD_LOG_FILE; #endif // BUILDFLAG(IS_CHROMEOS_ASH) @@ -50,7 +50,7 @@ diff --git a/chrome/common/logging_chrome.cc b/chrome/common/logging_chrome.cc } } else { log_locking_state = DONT_LOCK_LOG_FILE; -@@ -620,7 +623,7 @@ bool DialogsAreSuppressed() { +@@ -621,7 +624,7 @@ bool DialogsAreSuppressed() { return dialogs_are_suppressed_; } diff --git a/build/patches/WIN-enable-pdf-plugin.patch b/build/patches/WIN-enable-pdf-plugin.patch index 7c58e6ee2..e29ced428 100644 --- a/build/patches/WIN-enable-pdf-plugin.patch +++ b/build/patches/WIN-enable-pdf-plugin.patch @@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc -@@ -2273,7 +2273,9 @@ WebContentSettingsClient* LocalFrame::GetContentSettingsClient() { +@@ -2278,7 +2278,9 @@ WebContentSettingsClient* LocalFrame::GetContentSettingsClient() { } PluginData* LocalFrame::GetPluginData() const { diff --git a/build/patches/Warning-message-for-unsupported-hardware-aes.patch b/build/patches/Warning-message-for-unsupported-hardware-aes.patch index a38081e47..34ee05190 100644 --- a/build/patches/Warning-message-for-unsupported-hardware-aes.patch +++ b/build/patches/Warning-message-for-unsupported-hardware-aes.patch @@ -28,7 +28,7 @@ you can remove the message by going to chrome://flags/#no-hw-aes-warning diff --git a/base/base_switches.cc b/base/base_switches.cc --- a/base/base_switches.cc +++ b/base/base_switches.cc -@@ -178,6 +178,8 @@ const char kPackageVersionName[] = "package-version-name"; +@@ -175,6 +175,8 @@ const char kPackageVersionName[] = "package-version-name"; const char kDesktopModeViewportMetaEnabled[] = "dm-viewport-meta-enabled"; @@ -51,7 +51,7 @@ diff --git a/base/base_switches.h b/base/base_switches.h diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn --- a/chrome/BUILD.gn +++ b/chrome/BUILD.gn -@@ -441,6 +441,7 @@ if (is_win) { +@@ -438,6 +438,7 @@ if (is_win) { "//components/policy:generated", "//content/public/app", "//crypto", @@ -59,7 +59,7 @@ diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn "//headless:headless_non_renderer", "//headless:headless_shell_browser_lib", "//net:net_resources", -@@ -1663,6 +1664,8 @@ if (is_android) { +@@ -1660,6 +1661,8 @@ if (is_android) { "//chrome/common/profiler", "//chrome/gpu", "//chrome/renderer", @@ -81,7 +81,7 @@ diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegat #if BUILDFLAG(IS_WIN) #include -@@ -1216,6 +1219,12 @@ std::optional ChromeMainDelegate::BasicStartupComplete() { +@@ -1209,6 +1212,12 @@ std::optional ChromeMainDelegate::BasicStartupComplete() { return chrome::RESULT_CODE_INVALID_SANDBOX_STATE; #endif @@ -97,7 +97,7 @@ diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegat diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd -@@ -7357,6 +7357,10 @@ Keep your key file in a safe place. You will need it to create new versions of y +@@ -7363,6 +7363,10 @@ Keep your key file in a safe place. You will need it to create new versions of y You are using an unsupported feature flag: $1SignedHTTPExchange. Stability and security will suffer. @@ -111,7 +111,7 @@ diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources diff --git a/chrome/browser/ui/startup/bad_flags_prompt.cc b/chrome/browser/ui/startup/bad_flags_prompt.cc --- a/chrome/browser/ui/startup/bad_flags_prompt.cc +++ b/chrome/browser/ui/startup/bad_flags_prompt.cc -@@ -240,6 +240,15 @@ void ShowBadFlagsPrompt(content::WebContents* web_contents) { +@@ -236,6 +236,15 @@ void ShowBadFlagsPrompt(content::WebContents* web_contents) { return; } } @@ -130,7 +130,7 @@ diff --git a/chrome/browser/ui/startup/bad_flags_prompt.cc b/chrome/browser/ui/s diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc -@@ -3481,6 +3481,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( +@@ -3479,6 +3479,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( switches::kLacrosUseChromeosProtectedAv1, #endif switches::kDesktopModeViewportMetaEnabled, diff --git a/build/patches/Welcome-screen.patch b/build/patches/Welcome-screen.patch index 281742da4..7a7454a74 100644 --- a/build/patches/Welcome-screen.patch +++ b/build/patches/Welcome-screen.patch @@ -15,13 +15,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../DefaultSearchEngineFirstRunFragment.java | 3 - .../browser/firstrun/FirstRunActivity.java | 32 +- .../firstrun/FirstRunActivityBase.java | 6 +- - .../firstrun/FirstRunFlowSequencer.java | 70 +--- + .../firstrun/FirstRunFlowSequencer.java | 73 +--- .../browser/firstrun/FirstRunUtils.java | 1 + .../firstrun/ToSAndUMAFirstRunFragment.java | 335 +++++++++++++++++ .../firstrun/TosAndUmaFragmentView.java | 336 ++++++++++++++++++ .../browser/locale/LocaleManagerDelegate.java | 5 +- .../Welcome-screen.grdp | 27 ++ - 15 files changed, 915 insertions(+), 110 deletions(-) + 15 files changed, 915 insertions(+), 113 deletions(-) create mode 100644 chrome/android/java/res/layout/fre_tosanduma.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/firstrun/TosAndUmaFragmentView.java @@ -35,13 +35,13 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja "java/res/layout/find_toolbar.xml", "java/res/layout/fre_tos_privacy_disclaimer.xml", + "java/res/layout/fre_tosanduma.xml", + "java/res/layout/hats_survey_container.xml", "java/res/layout/history_clear_browsing_data_header.xml", "java/res/layout/history_item_view.xml", - "java/res/layout/history_main.xml", 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 -@@ -658,6 +658,8 @@ chrome_java_sources = [ +@@ -655,6 +655,8 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/firstrun/SkipTosDialogPolicyListener.java", "java/src/org/chromium/chrome/browser/firstrun/SyncConsentFirstRunFragment.java", "java/src/org/chromium/chrome/browser/firstrun/TosDialogBehaviorSharedPrefInvalidator.java", @@ -414,11 +414,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencer.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencer.java --- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencer.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencer.java -@@ -28,14 +28,9 @@ import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomiza +@@ -29,15 +29,9 @@ import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomiza import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.ProfileProvider; import org.chromium.chrome.browser.search_engines.SearchEnginePromoType; -import org.chromium.chrome.browser.signin.services.IdentityServicesProvider; +-import org.chromium.chrome.browser.signin.services.SigninPreferencesManager; -import org.chromium.chrome.browser.ui.signin.history_sync.HistorySyncHelper; import org.chromium.components.crash.CrashKeyIndex; import org.chromium.components.crash.CrashKeys; @@ -429,7 +430,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR /** * A helper to determine what should be the sequence of First Run Experience screens, and whether -@@ -63,46 +58,17 @@ public abstract class FirstRunFlowSequencer { +@@ -65,46 +59,17 @@ public abstract class FirstRunFlowSequencer { /** Returns true if the sync consent promo page should be shown. */ boolean shouldShowSyncConsentPage(boolean isChild) { @@ -479,7 +480,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR } } -@@ -154,18 +120,8 @@ public abstract class FirstRunFlowSequencer { +@@ -156,18 +121,8 @@ public abstract class FirstRunFlowSequencer { * method. */ void start() { @@ -500,7 +501,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR } @VisibleForTesting -@@ -188,14 +144,10 @@ public abstract class FirstRunFlowSequencer { +@@ -190,14 +145,10 @@ public abstract class FirstRunFlowSequencer { } private void maybeProcessFreEnvironmentPreNative() { @@ -515,7 +516,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR onFlowIsKnown(freProperties); } -@@ -206,8 +158,8 @@ public abstract class FirstRunFlowSequencer { +@@ -208,8 +159,8 @@ public abstract class FirstRunFlowSequencer { * @param freProperties Resulting FRE properties bundle. */ public void updateFirstRunProperties(Bundle freProperties) { @@ -526,7 +527,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR boolean isHistorySyncEnabled = ChromeFeatureList.isEnabled( ChromeFeatureList.REPLACE_SYNC_PROMOS_WITH_SIGN_IN_PROMOS); -@@ -322,13 +274,17 @@ public abstract class FirstRunFlowSequencer { +@@ -237,8 +188,6 @@ public abstract class FirstRunFlowSequencer { + + // Mark the FRE flow as complete. + FirstRunStatus.setFirstRunFlowComplete(true); +- SigninPreferencesManager.getInstance() +- .setCctMismatchNoticeSuppressionPeriodStart(TimeUtils.currentTimeMillis()); + } + + /** +@@ -327,13 +276,17 @@ public abstract class FirstRunFlowSequencer { if (!(caller instanceof Activity)) { freIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); } @@ -1241,7 +1251,7 @@ new file mode 100644 diff --git a/chrome/browser/locale/java/src/org/chromium/chrome/browser/locale/LocaleManagerDelegate.java b/chrome/browser/locale/java/src/org/chromium/chrome/browser/locale/LocaleManagerDelegate.java --- a/chrome/browser/locale/java/src/org/chromium/chrome/browser/locale/LocaleManagerDelegate.java +++ b/chrome/browser/locale/java/src/org/chromium/chrome/browser/locale/LocaleManagerDelegate.java -@@ -312,8 +312,9 @@ public class LocaleManagerDelegate { +@@ -375,8 +375,9 @@ public class LocaleManagerDelegate { /** @see LocaleManager#getSearchEnginesForPromoDialog */ public List getSearchEnginesForPromoDialog(@SearchEnginePromoType int promoType) { diff --git a/build/patches/add-browser-policy.patch b/build/patches/add-browser-policy.patch index 27c147045..1137fd908 100644 --- a/build/patches/add-browser-policy.patch +++ b/build/patches/add-browser-policy.patch @@ -41,7 +41,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/base/win/win_util.cc b/base/win/win_util.cc --- a/base/win/win_util.cc +++ b/base/win/win_util.cc -@@ -133,76 +133,19 @@ bool EnablePerMonitorV2() { +@@ -143,76 +143,19 @@ bool EnablePerMonitorV2() { } bool* GetDomainEnrollmentStateStorage() { @@ -197,7 +197,7 @@ diff --git a/chrome/browser/metrics/chrome_feature_list_creator.cc b/chrome/brow diff --git a/chrome/browser/navigation_predictor/search_engine_preconnector.cc b/chrome/browser/navigation_predictor/search_engine_preconnector.cc --- a/chrome/browser/navigation_predictor/search_engine_preconnector.cc +++ b/chrome/browser/navigation_predictor/search_engine_preconnector.cc -@@ -42,6 +42,8 @@ BASE_FEATURE(kPreconnectToSearch, +@@ -43,6 +43,8 @@ BASE_FEATURE(kPreconnectToSearch, BASE_FEATURE(kPreconnectToSearchWithPrivacyModeEnabled, "PreconnectToSearchWithPrivacyModeEnabled", base::FEATURE_DISABLED_BY_DEFAULT); @@ -209,7 +209,7 @@ diff --git a/chrome/browser/navigation_predictor/search_engine_preconnector.cc b diff --git a/chrome/browser/policy/chrome_browser_policy_connector.cc b/chrome/browser/policy/chrome_browser_policy_connector.cc --- a/chrome/browser/policy/chrome_browser_policy_connector.cc +++ b/chrome/browser/policy/chrome_browser_policy_connector.cc -@@ -161,9 +161,6 @@ bool ChromeBrowserPolicyConnector::HasMachineLevelPolicies() { +@@ -138,9 +138,6 @@ bool ChromeBrowserPolicyConnector::HasMachineLevelPolicies() { return true; } #endif // !BUILDFLAG(IS_CHROMEOS_ASH) @@ -222,7 +222,7 @@ diff --git a/chrome/browser/policy/chrome_browser_policy_connector.cc b/chrome/b diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc b/chrome/browser/policy/configuration_policy_handler_list_factory.cc --- a/chrome/browser/policy/configuration_policy_handler_list_factory.cc +++ b/chrome/browser/policy/configuration_policy_handler_list_factory.cc -@@ -2327,9 +2327,9 @@ bool AreFuturePoliciesEnabledByDefault() { +@@ -2348,9 +2348,9 @@ bool AreFuturePoliciesEnabledByDefault() { if (base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kTestType)) { return true; } @@ -265,11 +265,11 @@ diff --git a/chrome/browser/signin/account_consistency_mode_manager.cc b/chrome/ + return AccountConsistencyMethod::kDisabled; #endif - NOTREACHED_IN_MIGRATION(); + NOTREACHED(); diff --git a/chrome/browser/signin/account_consistency_mode_manager_factory.cc b/chrome/browser/signin/account_consistency_mode_manager_factory.cc --- a/chrome/browser/signin/account_consistency_mode_manager_factory.cc +++ b/chrome/browser/signin/account_consistency_mode_manager_factory.cc -@@ -51,5 +51,5 @@ void AccountConsistencyModeManagerFactory::RegisterProfilePrefs( +@@ -52,5 +52,5 @@ void AccountConsistencyModeManagerFactory::RegisterProfilePrefs( bool AccountConsistencyModeManagerFactory::ServiceIsCreatedWithBrowserContext() const { @@ -320,7 +320,7 @@ diff --git a/chrome/browser/signin/bound_session_credentials/throttled_gaia_auth diff --git a/chrome/browser/signin/chrome_signin_client.cc b/chrome/browser/signin/chrome_signin_client.cc --- a/chrome/browser/signin/chrome_signin_client.cc +++ b/chrome/browser/signin/chrome_signin_client.cc -@@ -236,7 +236,9 @@ void ChromeSigninClient::DoFinalInit() { +@@ -237,7 +237,9 @@ void ChromeSigninClient::DoFinalInit() { bool ChromeSigninClient::ProfileAllowsSigninCookies(Profile* profile) { scoped_refptr cookie_settings = CookieSettingsFactory::GetForProfile(profile); @@ -331,7 +331,7 @@ diff --git a/chrome/browser/signin/chrome_signin_client.cc b/chrome/browser/sign } PrefService* ChromeSigninClient::GetPrefs() { -@@ -359,6 +361,9 @@ bool ChromeSigninClient::AreNetworkCallsDelayed() { +@@ -360,6 +362,9 @@ bool ChromeSigninClient::AreNetworkCallsDelayed() { } void ChromeSigninClient::DelayNetworkCall(base::OnceClosure callback) { @@ -353,7 +353,7 @@ diff --git a/chrome/browser/signin/dice_response_handler.cc b/chrome/browser/sig "Signin.DiceTokenBindingOutcome"; // Used for UMA. Do not reorder, append new values at the end. -@@ -442,8 +442,10 @@ void DiceResponseHandler::ProcessDiceSignoutHeader( +@@ -441,8 +441,10 @@ void DiceResponseHandler::ProcessDiceSignoutHeader( // - If there is a policy restriction on removing the primary account. bool invalidate_only_primary_account = identity_manager_->HasPrimaryAccount(signin::ConsentLevel::kSync) || @@ -375,7 +375,7 @@ diff --git a/chrome/browser/ui/webui/policy/policy_ui_handler.cc b/chrome/browse #include "base/strings/utf_string_conversions.h" #include "base/task/task_traits.h" #include "base/task/thread_pool.h" -@@ -72,6 +73,7 @@ +@@ -71,6 +72,7 @@ #include "components/policy/core/common/policy_details.h" #include "components/policy/core/common/policy_logger.h" #include "components/policy/core/common/policy_pref_names.h" @@ -383,7 +383,7 @@ diff --git a/chrome/browser/ui/webui/policy/policy_ui_handler.cc b/chrome/browse #include "components/policy/core/common/policy_scheduler.h" #include "components/policy/core/common/policy_types.h" #include "components/policy/core/common/policy_utils.h" -@@ -200,6 +202,10 @@ void PolicyUIHandler::RegisterMessages() { +@@ -208,6 +210,10 @@ void PolicyUIHandler::RegisterMessages() { "exportPoliciesJSON", base::BindRepeating(&PolicyUIHandler::HandleExportPoliciesJson, base::Unretained(this))); @@ -394,7 +394,7 @@ diff --git a/chrome/browser/ui/webui/policy/policy_ui_handler.cc b/chrome/browse web_ui()->RegisterMessageCallback( "listenPoliciesUpdates", base::BindRepeating(&PolicyUIHandler::HandleListenPoliciesUpdates, -@@ -477,8 +483,102 @@ void PolicyUIHandler::SendPolicies() { +@@ -485,8 +491,102 @@ void PolicyUIHandler::SendPolicies() { "policies-updated", base::Value( policy_value_and_status_aggregator_->GetAggregatedPolicyNames()), @@ -526,7 +526,7 @@ diff --git a/components/browser_ui/strings/android/browser_ui_strings.grd b/comp diff --git a/components/commerce/core/commerce_feature_list.cc b/components/commerce/core/commerce_feature_list.cc --- a/components/commerce/core/commerce_feature_list.cc +++ b/components/commerce/core/commerce_feature_list.cc -@@ -56,56 +56,6 @@ const CountryLocaleMap& GetAllowedCountryToLocaleMap() { +@@ -62,56 +62,6 @@ const CountryLocaleMap& GetAllowedCountryToLocaleMap() { return *allowed_map; } @@ -582,10 +582,10 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm - } // namespace - namespace switches { -@@ -375,6 +325,16 @@ const char kParcelTrackingTestDataParamDelivered[] = "Delivered"; - const char kParcelTrackingTestDataParamInProgress[] = "InProgress"; - const char kParcelTrackingTestDataParamOutForDelivery[] = "OutForDelivery"; + BASE_FEATURE(kCommerceAllowChipExpansion, +@@ -385,6 +335,16 @@ BASE_FEATURE(kParcelTrackingRegionLaunched, + "ParcelTrackingRegionLaunched", + base::FEATURE_DISABLED_BY_DEFAULT); +SET_CROMITE_FEATURE_DISABLED(kCommerceHintAndroid); +SET_CROMITE_FEATURE_DISABLED(kCommercePriceTrackingRegionLaunched); @@ -600,7 +600,7 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm // Params for Discount Consent V2 in the NTP Cart module. const char kNtpChromeCartModuleDiscountConsentNtpVariationParam[] = "discount-consent-ntp-variation"; -@@ -517,11 +477,11 @@ bool IsPartnerMerchant(const GURL& url) { +@@ -527,11 +487,11 @@ bool IsPartnerMerchant(const GURL& url) { } bool IsRuleDiscountPartnerMerchant(const GURL& url) { @@ -614,7 +614,7 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm } bool IsCartDiscountFeatureEnabled() { -@@ -601,6 +561,7 @@ base::TimeDelta GetDiscountFetchDelay() { +@@ -611,6 +571,7 @@ base::TimeDelta GetDiscountFetchDelay() { } bool IsNoDiscountMerchant(const GURL& url) { @@ -821,7 +821,7 @@ diff --git a/components/policy/core/common/policy_pref_names.cc b/components/pol diff --git a/components/policy/core/common/policy_pref_names.h b/components/policy/core/common/policy_pref_names.h --- a/components/policy/core/common/policy_pref_names.h +++ b/components/policy/core/common/policy_pref_names.h -@@ -50,6 +50,7 @@ extern const char kUrlAllowlist[]; +@@ -61,6 +61,7 @@ extern const char kUrlAllowlist[]; extern const char kUserPolicyRefreshRate[]; extern const char kIntensiveWakeUpThrottlingEnabled[]; extern const char kUserAgentClientHintsGREASEUpdateEnabled[]; @@ -967,7 +967,7 @@ diff --git a/components/signin/features.gni b/components/signin/features.gni diff --git a/components/signin/internal/identity_manager/gaia_cookie_manager_service.cc b/components/signin/internal/identity_manager/gaia_cookie_manager_service.cc --- a/components/signin/internal/identity_manager/gaia_cookie_manager_service.cc +++ b/components/signin/internal/identity_manager/gaia_cookie_manager_service.cc -@@ -469,6 +469,8 @@ void GaiaCookieManagerService::RegisterPrefs(PrefRegistrySimple* registry) { +@@ -465,6 +465,8 @@ void GaiaCookieManagerService::RegisterPrefs(PrefRegistrySimple* registry) { } void GaiaCookieManagerService::InitCookieListener() { @@ -976,7 +976,7 @@ diff --git a/components/signin/internal/identity_manager/gaia_cookie_manager_ser DCHECK(!cookie_listener_receiver_.is_bound()); network::mojom::CookieManager* cookie_manager = -@@ -866,6 +868,8 @@ void GaiaCookieManagerService::OnSetAccountsFinished( +@@ -857,6 +859,8 @@ void GaiaCookieManagerService::OnSetAccountsFinished( } void GaiaCookieManagerService::HandleNextRequest() { @@ -999,7 +999,7 @@ diff --git a/google_apis/gaia/gaia_auth_fetcher.cc b/google_apis/gaia/gaia_auth_ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket_impl.cc --- a/net/socket/ssl_client_socket_impl.cc +++ b/net/socket/ssl_client_socket_impl.cc -@@ -772,6 +772,7 @@ int SSLClientSocketImpl::Init() { +@@ -770,6 +770,7 @@ int SSLClientSocketImpl::Init() { return ERR_UNEXPECTED; } @@ -1007,7 +1007,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket // Disable SHA-1 server signatures. // TODO(crbug.com/boringssl/699): Once the default is flipped in BoringSSL, we // no longer need to override it. -@@ -1180,6 +1181,8 @@ ssl_verify_result_t SSLClientSocketImpl::HandleVerifyResult() { +@@ -1176,6 +1177,8 @@ ssl_verify_result_t SSLClientSocketImpl::HandleVerifyResult() { cert_verifier_request_.reset(); diff --git a/build/patches/autofill-miscellaneous.patch b/build/patches/autofill-miscellaneous.patch index 82f49791c..da0f782b7 100644 --- a/build/patches/autofill-miscellaneous.patch +++ b/build/patches/autofill-miscellaneous.patch @@ -22,7 +22,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html 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 -@@ -1327,7 +1327,7 @@ void RegisterProfilePrefsForMigration( +@@ -1255,7 +1255,7 @@ void RegisterProfilePrefsForMigration( #endif // Deprecated 12/2023. @@ -34,7 +34,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.cc b/chrome/browser/ui/autofill/chrome_autofill_client.cc --- a/chrome/browser/ui/autofill/chrome_autofill_client.cc +++ b/chrome/browser/ui/autofill/chrome_autofill_client.cc -@@ -243,12 +243,7 @@ ChromeAutofillClient::GetURLLoaderFactory() { +@@ -245,12 +245,7 @@ ChromeAutofillClient::GetURLLoaderFactory() { } AutofillCrowdsourcingManager* ChromeAutofillClient::GetCrowdsourcingManager() { @@ -156,7 +156,7 @@ diff --git a/components/autofill/core/browser/crowdsourcing/autofill_crowdsourci 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 -@@ -869,6 +869,8 @@ BASE_FEATURE(kAutofillUploadThrottling, +@@ -842,6 +842,8 @@ BASE_FEATURE(kAutofillUploadThrottling, "AutofillUploadThrottling", base::FEATURE_ENABLED_BY_DEFAULT); diff --git a/build/patches/bromite-build-utils.patch b/build/patches/bromite-build-utils.patch index cd33a72d6..c32f5e4f1 100644 --- a/build/patches/bromite-build-utils.patch +++ b/build/patches/bromite-build-utils.patch @@ -426,7 +426,7 @@ new file mode 100644 diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn --- a/build/config/BUILDCONFIG.gn +++ b/build/config/BUILDCONFIG.gn -@@ -728,6 +728,7 @@ set_defaults("component") { +@@ -734,6 +734,7 @@ set_defaults("component") { configs = default_component_configs } @@ -437,7 +437,7 @@ diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni --- a/build/config/android/rules.gni +++ b/build/config/android/rules.gni -@@ -208,7 +208,7 @@ if (!is_robolectric && enable_java_templates) { +@@ -209,7 +209,7 @@ if (!is_robolectric && enable_java_templates) { # } template("java_cpp_enum") { action_with_pydeps(target_name) { @@ -446,7 +446,7 @@ diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni # The sources aren't compiled so don't check their dependencies. check_includes = false -@@ -219,6 +219,10 @@ if (!is_robolectric && enable_java_templates) { +@@ -220,6 +220,10 @@ if (!is_robolectric && enable_java_templates) { _rebased_sources = rebase_path(invoker.sources, root_build_dir) args = [ "--srcjar=$_rebased_srcjar_path" ] + _rebased_sources @@ -594,7 +594,7 @@ new file mode 100755 @@ -0,0 +1,46 @@ +package org.chromium.chrome.browser.flags; + -+import org.chromium.base.cached_flags.CachedFlagsSharedPreferences; ++import org.chromium.components.cached_flags.CachedFlagsSharedPreferences; +import org.chromium.components.cached_flags.CachedFlag; +import org.chromium.chrome.browser.flags.ChromeFeatureList; + @@ -649,12 +649,12 @@ diff --git a/mojo/public/tools/mojom/mojom_parser.py b/mojo/public/tools/mojom/m from collections import defaultdict from mojom.generate import module -@@ -176,11 +177,26 @@ def _CollectAllowedImportsFromBuildMetadata(build_metadata_filename): +@@ -177,11 +178,26 @@ def _CollectAllowedImportsFromBuildMetadata(build_metadata_filename): collect(build_metadata_filename) return allowed_imports +def _ResolveInclude(mojom_abspath, input_root_paths): -+ mojom_abspath = _ResolveRelativeImportPath(mojom_abspath, input_root_paths) ++ mojom_abspath = _ResolveRelativeImportPath(mojom_abspath, mojom_abspath, input_root_paths) + with codecs.open(mojom_abspath, encoding='utf-8') as f: + src = f.read() + @@ -678,7 +678,7 @@ diff --git a/mojo/public/tools/mojom/mojom_parser.py b/mojo/public/tools/mojom/m conditional_features.RemoveDisabledDefinitions(ast, enabled_features) return mojom_abspath, ast -@@ -300,7 +316,7 @@ def _ParseMojoms(mojom_files, +@@ -301,7 +317,7 @@ def _ParseMojoms(mojom_files, (path, abs_path) for abs_path, path in mojom_files_to_parse.items()) logging.info('Parsing %d .mojom into ASTs', len(mojom_files_to_parse)) diff --git a/build/patches/disable-AdsBlockedInfoBar.patch b/build/patches/disable-AdsBlockedInfoBar.patch index d67ea8dd9..f3e2b226b 100644 --- a/build/patches/disable-AdsBlockedInfoBar.patch +++ b/build/patches/disable-AdsBlockedInfoBar.patch @@ -4,72 +4,18 @@ Subject: disable AdsBlockedInfoBar License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../browser/profile_interaction_manager.cc | 48 ------------------- - 1 file changed, 48 deletions(-) + .../content/browser/profile_interaction_manager.cc | 1 + + 1 file changed, 1 insertion(+) diff --git a/components/subresource_filter/content/browser/profile_interaction_manager.cc b/components/subresource_filter/content/browser/profile_interaction_manager.cc --- a/components/subresource_filter/content/browser/profile_interaction_manager.cc +++ b/components/subresource_filter/content/browser/profile_interaction_manager.cc -@@ -21,13 +21,6 @@ - #include "content/public/browser/render_frame_host.h" - #include "content/public/browser/web_contents.h" - --#if BUILDFLAG(IS_ANDROID) --#include "components/infobars/content/content_infobar_manager.h" // nogncheck --#include "components/messages/android/message_dispatcher_bridge.h" --#include "components/messages/android/messages_feature.h" --#include "components/subresource_filter/content/browser/ads_blocked_infobar_delegate.h" --#endif -- - namespace subresource_filter { +@@ -129,6 +129,7 @@ mojom::ActivationLevel ProfileInteractionManager::OnPageActivationComputed( + } - ProfileInteractionManager::ProfileInteractionManager( -@@ -136,47 +129,6 @@ void ProfileInteractionManager::MaybeShowNotification() { + void ProfileInteractionManager::MaybeShowNotification() { ++ if ((true)) return; + // The caller should make sure this is only called from pages that are // currently primary. CHECK(page_, base::NotFatalUntil::M129); - CHECK(page_->IsPrimary(), base::NotFatalUntil::M129); -- -- const GURL& top_level_url = page_->GetMainDocument().GetLastCommittedURL(); -- if (profile_context_->settings_manager()->ShouldShowUIForSite( -- top_level_url)) { --#if BUILDFLAG(IS_ANDROID) -- if (messages::IsAdsBlockedMessagesUiEnabled() && -- messages::MessageDispatcherBridge::Get() -- ->IsMessagesEnabledForEmbedder()) { -- subresource_filter::AdsBlockedMessageDelegate::CreateForWebContents( -- GetWebContents()); -- ads_blocked_message_delegate_ = -- subresource_filter::AdsBlockedMessageDelegate::FromWebContents( -- GetWebContents()); -- ads_blocked_message_delegate_->ShowMessage(); -- } else { -- // NOTE: It is acceptable for the embedder to not have installed an -- // infobar manager. -- if (auto* infobar_manager = -- infobars::ContentInfoBarManager::FromWebContents( -- GetWebContents())) { -- subresource_filter::AdsBlockedInfobarDelegate::Create(infobar_manager); -- } -- } --#endif -- -- // TODO(crbug.com/40139135): Plumb the actual frame reference here -- // (it comes from -- // ContentSubresourceFilterThrottleManager::DidDisallowFirstSubresource, -- // which comes from a specific frame). -- content_settings::PageSpecificContentSettings* content_settings = -- content_settings::PageSpecificContentSettings::GetForFrame( -- &page_->GetMainDocument()); -- content_settings->OnContentBlocked(ContentSettingsType::ADS); -- -- ContentSubresourceFilterThrottleManager::LogAction( -- SubresourceFilterAction::kUIShown); -- profile_context_->settings_manager()->OnDidShowUI(top_level_url); -- } else { -- ContentSubresourceFilterThrottleManager::LogAction( -- SubresourceFilterAction::kUISuppressed); -- } - } - - content_settings::CookieSettings* -- diff --git a/build/patches/dns-send-IPv6-connectivity-probes-to-RIPE-DNS.patch b/build/patches/dns-send-IPv6-connectivity-probes-to-RIPE-DNS.patch index e276b2c9a..773ecccf6 100644 --- a/build/patches/dns-send-IPv6-connectivity-probes-to-RIPE-DNS.patch +++ b/build/patches/dns-send-IPv6-connectivity-probes-to-RIPE-DNS.patch @@ -46,7 +46,7 @@ diff --git a/net/dns/host_resolver_manager_request_impl.cc b/net/dns/host_resolv namespace net { HostResolverManager::RequestImpl::RequestImpl( -@@ -280,6 +282,9 @@ void HostResolverManager::RequestImpl::OnIOComplete(int rv) { +@@ -279,6 +281,9 @@ void HostResolverManager::RequestImpl::OnIOComplete(int rv) { int HostResolverManager::RequestImpl::DoIPv6Reachability() { next_state_ = STATE_GET_PARAMETERS; diff --git a/build/patches/do-not-block-build-incompatible-profiles.patch b/build/patches/do-not-block-build-incompatible-profiles.patch index 310adfb62..8aaf0863e 100644 --- a/build/patches/do-not-block-build-incompatible-profiles.patch +++ b/build/patches/do-not-block-build-incompatible-profiles.patch @@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/v8/BUILD.gn b/v8/BUILD.gn --- a/v8/BUILD.gn +++ b/v8/BUILD.gn -@@ -2557,7 +2557,7 @@ template("run_mksnapshot") { +@@ -2566,7 +2566,7 @@ template("run_mksnapshot") { # Replace this with --warn-about-builtin-profile-data to see the full # list of builtins with incompatible profiles. diff --git a/build/patches/enable-ftrivial-auto-var-init-zero.patch b/build/patches/enable-ftrivial-auto-var-init-zero.patch index 292ae19c8..5efb4e131 100644 --- a/build/patches/enable-ftrivial-auto-var-init-zero.patch +++ b/build/patches/enable-ftrivial-auto-var-init-zero.patch @@ -11,7 +11,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn -@@ -387,6 +387,10 @@ config("compiler") { +@@ -388,6 +388,10 @@ config("compiler") { cflags += [ "-fwrapv" ] } diff --git a/build/patches/eyeo-beta-118.0.5993.48-android_api.patch b/build/patches/eyeo-beta-118.0.5993.48-android_api.patch index b78348915..dd0496c72 100644 --- a/build/patches/eyeo-beta-118.0.5993.48-android_api.patch +++ b/build/patches/eyeo-beta-118.0.5993.48-android_api.patch @@ -97,7 +97,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn import("//build/android/resource_sizes.gni") import("//build/config/android/config.gni") -@@ -512,6 +516,7 @@ if (current_toolchain == default_toolchain) { +@@ -523,6 +527,7 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/xsurface_provider:java", "//components/android_autofill/browser:java", "//components/autofill/android:autofill_features_java", @@ -105,7 +105,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//components/autofill/android:autofill_java", "//components/background_task_scheduler:background_task_scheduler_java", "//components/background_task_scheduler:background_task_scheduler_task_ids_java", -@@ -1675,6 +1680,7 @@ if (current_toolchain == default_toolchain) { +@@ -1701,6 +1706,7 @@ if (current_toolchain == default_toolchain) { "//chrome/android/webapk/libs/client:client_java", "//chrome/android/webapk/libs/common:common_java", "//chrome/android/webapk/libs/runtime_library:webapk_service_aidl_java", @@ -113,7 +113,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/android/browserservices/intents:java", "//chrome/browser/android/browserservices/verification:java", "//chrome/browser/android/browserservices/verification:javatests", -@@ -2050,6 +2056,7 @@ if (current_toolchain == default_toolchain) { +@@ -2081,6 +2087,7 @@ if (current_toolchain == default_toolchain) { srcjar_deps = [ "//chrome/browser:tos_dialog_behavior_generated_enum" ] data = [ @@ -121,7 +121,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/test/data/android/", "//chrome/test/data/autofill/", "//chrome/test/data/background_sync/", -@@ -3939,6 +3946,7 @@ group("jni_headers") { +@@ -3974,6 +3981,7 @@ group("jni_headers") { "//chrome/browser/util:jni_headers", "//chrome/browser/webauthn/android:jni_headers", "//components/browser_ui/device_lock/android:device_lock_bridge_jni_headers", @@ -132,7 +132,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -2556,6 +2556,18 @@ static_library("browser") { +@@ -2537,6 +2537,18 @@ static_library("browser") { } if (is_android) { @@ -643,7 +643,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 -@@ -300,6 +300,11 @@ +@@ -305,6 +305,11 @@ #include "components/commerce/core/commerce_feature_list.h" #include "components/commerce/core/proto/merchant_signal_db_content.pb.h" @@ -655,7 +655,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc #else #include "chrome/browser/accessibility/live_caption/live_caption_controller_factory.h" -@@ -878,6 +883,11 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -898,6 +903,11 @@ void ChromeBrowserMainExtraPartsProfiles:: #if BUILDFLAG(IS_ANDROID) FastCheckoutCapabilitiesFetcherFactory::GetInstance(); diff --git a/build/patches/eyeo-beta-118.0.5993.48-android_settings.patch b/build/patches/eyeo-beta-118.0.5993.48-android_settings.patch index 38072f2be..0dbbde470 100644 --- a/build/patches/eyeo-beta-118.0.5993.48-android_settings.patch +++ b/build/patches/eyeo-beta-118.0.5993.48-android_settings.patch @@ -243,7 +243,7 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module and Android API diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -285,6 +285,10 @@ if (current_toolchain == default_toolchain) { +@@ -287,6 +287,10 @@ if (current_toolchain == default_toolchain) { "//third_party/androidx:androidx_preference_preference_java", ] @@ -254,7 +254,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn if (plus_addresses_use_internal_android_resources) { deps += [ "//clank/components/plus_addresses:java_resources" ] } else { -@@ -746,6 +750,10 @@ if (current_toolchain == default_toolchain) { +@@ -760,6 +764,10 @@ if (current_toolchain == default_toolchain) { "//url/mojom:url_mojom_gurl_java", ] diff --git a/build/patches/eyeo-beta-118.0.5993.48-base.patch b/build/patches/eyeo-beta-118.0.5993.48-base.patch index fa101de29..f0f33ee03 100644 --- a/build/patches/eyeo-beta-118.0.5993.48-base.patch +++ b/build/patches/eyeo-beta-118.0.5993.48-base.patch @@ -435,7 +435,7 @@ diff --git a/DEPS b/DEPS # By default, do not check out WebKit for iOS, as it is not needed unless # running against ToT WebKit rather than system WebKit. This can be overridden # e.g. with custom_vars. -@@ -272,6 +276,8 @@ vars = { +@@ -258,6 +262,8 @@ vars = { 'download_libvpx_testdata': False, 'android_git': 'https://android.googlesource.com', @@ -444,9 +444,9 @@ diff --git a/DEPS b/DEPS 'aomedia_git': 'https://aomedia.googlesource.com', 'boringssl_git': 'https://boringssl.googlesource.com', 'chrome_git': 'https://chrome-internal.googlesource.com', -@@ -496,6 +502,11 @@ vars = { +@@ -482,6 +488,11 @@ vars = { # and whatever else without interference from each other. - 'betocore_revision': '89563fec14c756482afa08b016eeba9087c8d1e3', + 'llvm_libc_revision': 'ca74a72e2b32ad804522bbef04dfe32560a10206', + # Three lines of non-changing comments so that + # the commit queue can handle CLs rolling feed @@ -455,8 +455,8 @@ diff --git a/DEPS b/DEPS + # If you change this, also update the libc++ revision in # //buildtools/deps_revisions.gni. - 'libcxx_revision': '6a68fd412b9aecd515a20a7cf84d11b598bfaf96', -@@ -1289,6 +1300,10 @@ deps = { + 'libcxx_revision': '8e31ad42561900383e10dbefc1d3e8f38cedfbe9', +@@ -1285,6 +1296,10 @@ deps = { 'condition': 'checkout_android and checkout_src_internal', }, @@ -465,9 +465,9 @@ diff --git a/DEPS b/DEPS + }, + 'src/docs/website': { - 'url': Var('chromium_git') + '/website.git' + '@' + '4811f9e01c4cfcbf9c6957015063eaaa0d92be91', + 'url': Var('chromium_git') + '/website.git' + '@' + 'be9c3dfd3781964fc0bab0d6c91d9ad117b71b02', }, -@@ -1424,6 +1439,13 @@ deps = { +@@ -1420,6 +1435,13 @@ deps = { 'dep_type': 'cipd', }, @@ -551,7 +551,7 @@ diff --git a/build/install-build-deps.py b/build/install-build-deps.py import argparse import functools import os -@@ -558,7 +566,7 @@ def backwards_compatible_list(options): +@@ -562,7 +570,7 @@ def backwards_compatible_list(options): "msttcorefonts", "python-dev", "python-setuptools", @@ -573,7 +573,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn import("//base/debug/debug.gni") import("//build/config/chrome_build.gni") -@@ -176,6 +179,14 @@ test("components_unittests") { +@@ -178,6 +181,14 @@ test("components_unittests") { deps = [ "//base", @@ -52295,7 +52295,7 @@ diff --git a/content/browser/loader/navigation_url_loader_impl.cc b/content/brow #include "content/browser/loader/navigation_url_loader_impl.h" #include -@@ -1132,7 +1136,7 @@ void NavigationURLLoaderImpl::OnReceiveRedirect( +@@ -1131,7 +1135,7 @@ void NavigationURLLoaderImpl::OnReceiveRedirect( LogQueueTimeHistogram("Navigation.QueueTime.OnReceiveRedirect", resource_request_->is_outermost_main_frame); net::Error error = net::OK; @@ -52318,7 +52318,7 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/b #include "content/browser/renderer_host/render_frame_host_impl.h" -@@ -3174,6 +3178,12 @@ void RenderFrameHostImpl::ExecuteJavaScriptMethod( +@@ -3183,6 +3187,12 @@ void RenderFrameHostImpl::ExecuteJavaScriptMethod( std::move(callback)); } @@ -52345,7 +52345,7 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.h b/content/br #ifndef CONTENT_BROWSER_RENDERER_HOST_RENDER_FRAME_HOST_IMPL_H_ #define CONTENT_BROWSER_RENDERER_HOST_RENDER_FRAME_HOST_IMPL_H_ -@@ -484,6 +488,10 @@ class CONTENT_EXPORT RenderFrameHostImpl +@@ -488,6 +492,10 @@ class CONTENT_EXPORT RenderFrameHostImpl const std::u16string& method_name, base::Value::List arguments, JavaScriptResultCallback callback) override; @@ -52419,7 +52419,7 @@ diff --git a/extensions/browser/api/web_request/web_request_proxying_url_loader_ #include "extensions/browser/api/web_request/web_request_proxying_url_loader_factory.h" #include -@@ -470,6 +474,7 @@ void WebRequestProxyingURLLoaderFactory::InProgressRequest::OnReceiveRedirect( +@@ -469,6 +473,7 @@ void WebRequestProxyingURLLoaderFactory::InProgressRequest::OnReceiveRedirect( TRACE_EVENT_FLAG_FLOW_IN | TRACE_EVENT_FLAG_FLOW_OUT); if (redirect_url_ != redirect_info.new_url && @@ -52488,7 +52488,7 @@ diff --git a/third_party/blink/public/mojom/frame/frame.mojom b/third_party/blin module blink.mojom; -@@ -964,6 +968,10 @@ interface LocalFrame { +@@ -969,6 +973,10 @@ interface LocalFrame { // the given point in the view coordinate space. PluginActionAt(gfx.mojom.Point location, blink.mojom.PluginActionType action); @@ -52600,7 +52600,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_document.cc b/third_pa diff --git a/third_party/blink/renderer/core/frame/local_frame_mojo_handler.cc b/third_party/blink/renderer/core/frame/local_frame_mojo_handler.cc --- a/third_party/blink/renderer/core/frame/local_frame_mojo_handler.cc +++ b/third_party/blink/renderer/core/frame/local_frame_mojo_handler.cc -@@ -355,6 +355,14 @@ LocalFrameMojoHandler::LocalFrameMojoHandler(blink::LocalFrame& frame) +@@ -350,6 +350,14 @@ LocalFrameMojoHandler::LocalFrameMojoHandler(blink::LocalFrame& frame) WrapWeakPersistent(this))); } @@ -52629,7 +52629,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame_mojo_handler.h b/ #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_FRAME_LOCAL_FRAME_MOJO_HANDLER_H_ #define THIRD_PARTY_BLINK_RENDERER_CORE_FRAME_LOCAL_FRAME_MOJO_HANDLER_H_ -@@ -111,6 +115,7 @@ class LocalFrameMojoHandler +@@ -112,6 +116,7 @@ class LocalFrameMojoHandler void AddMessageToConsole(mojom::blink::ConsoleMessageLevel level, const WTF::String& message, bool discard_duplicates) final; @@ -52651,7 +52651,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/url_loader/mojo_ur #include "third_party/blink/renderer/platform/loader/fetch/url_loader/mojo_url_loader_client.h" #include -@@ -390,7 +394,7 @@ void MojoURLLoaderClient::OnReceiveRedirect( +@@ -389,7 +393,7 @@ void MojoURLLoaderClient::OnReceiveRedirect( OnComplete(network::URLLoaderCompletionStatus(net::ERR_ABORTED)); return; } @@ -53109,7 +53109,7 @@ diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ # This file is used to assign starting resource ids for resources and strings # used by Chromium. This is done to ensure that resource ids are unique # across all the grd files. If you are adding a new grd file, please add -@@ -1382,7 +1386,12 @@ +@@ -1391,7 +1395,12 @@ "<(SHARED_INTERMEDIATE_DIR)/third_party/blink/public/strings/permission_element_generated_strings.grd": { "META": {"sizes": {"messages": [2000],}}, "messages": [10080], @@ -53118,7 +53118,7 @@ diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ + + "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/adblock_internals/resources.grd": { + "META": {"sizes": {"includes": [10]}}, -+ "includes": [10100], ++ "includes": [12100], + }, # END "everything else" section. diff --git a/build/patches/eyeo-beta-118.0.5993.48-chrome_integration.patch b/build/patches/eyeo-beta-118.0.5993.48-chrome_integration.patch index 0d430a573..8cf743c24 100644 --- a/build/patches/eyeo-beta-118.0.5993.48-chrome_integration.patch +++ b/build/patches/eyeo-beta-118.0.5993.48-chrome_integration.patch @@ -10,7 +10,7 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module chrome/browser/BUILD.gn | 26 ++ chrome/browser/adblock/README.md | 3 + .../adblock/adblock_content_browser_client.cc | 320 ++++++++++++++++++ - .../adblock/adblock_content_browser_client.h | 100 ++++++ + .../adblock/adblock_content_browser_client.h | 101 ++++++ ...adblock_content_browser_client_unittest.cc | 203 +++++++++++ .../adblock/adblock_controller_factory.cc | 67 ++++ .../adblock/adblock_controller_factory.h | 49 +++ @@ -49,12 +49,12 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module .../adblock_internals_page_handler_impl.cc | 115 +++++++ .../adblock_internals_page_handler_impl.h | 51 +++ .../adblock_internals/adblock_internals_ui.cc | 47 +++ - .../adblock_internals/adblock_internals_ui.h | 48 +++ - .../webui/chrome_web_ui_controller_factory.cc | 8 + + .../adblock_internals/adblock_internals_ui.h | 57 ++++ + .../browser/ui/webui/chrome_web_ui_configs.cc | 3 + chrome/common/BUILD.gn | 3 + chrome/common/webui_url_constants.cc | 4 + chrome/common/webui_url_constants.h | 5 + - 48 files changed, 2288 insertions(+), 2 deletions(-) + 48 files changed, 2293 insertions(+), 2 deletions(-) create mode 100644 chrome/browser/adblock/README.md create mode 100644 chrome/browser/adblock/adblock_content_browser_client.cc create mode 100644 chrome/browser/adblock/adblock_content_browser_client.h @@ -110,7 +110,7 @@ diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegat #include "chrome/browser/buildflags.h" #include "chrome/browser/chrome_content_browser_client.h" #include "chrome/browser/chrome_resource_bundle_helper.h" -@@ -1822,7 +1827,7 @@ content::ContentClient* ChromeMainDelegate::CreateContentClient() { +@@ -1745,7 +1750,7 @@ content::ContentClient* ChromeMainDelegate::CreateContentClient() { content::ContentBrowserClient* ChromeMainDelegate::CreateContentBrowserClient() { chrome_content_browser_client_ = @@ -132,7 +132,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn import("//base/allocator/allocator.gni") import("//build/buildflag_header.gni") -@@ -157,6 +160,26 @@ static_library("browser") { +@@ -159,6 +162,26 @@ static_library("browser") { "accessibility/prefers_default_scrollbar_styles_prefs.h", "affiliations/affiliation_service_factory.cc", "affiliations/affiliation_service_factory.h", @@ -159,7 +159,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "after_startup_task_utils.cc", "after_startup_task_utils.h", "app_mode/app_mode_utils.cc", -@@ -1997,6 +2020,9 @@ static_library("browser") { +@@ -1991,6 +2014,9 @@ static_library("browser") { "//chrome/common/notifications", "//chrome/installer/util:with_no_strings", "//chrome/services/speech/buildflags", @@ -506,7 +506,7 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.h b/chrome/br new file mode 100644 --- /dev/null +++ b/chrome/browser/adblock/adblock_content_browser_client.h -@@ -0,0 +1,100 @@ +@@ -0,0 +1,101 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -528,6 +528,7 @@ new file mode 100644 +#define CHROME_BROWSER_ADBLOCK_ADBLOCK_CONTENT_BROWSER_CLIENT_H_ + +#include "build/buildflag.h" ++#include "extensions/buildflags/buildflags.h" +#include "chrome/browser/chrome_content_browser_client.h" + +namespace adblock { @@ -2015,15 +2016,15 @@ diff --git a/chrome/browser/chrome_browser_interface_binders.cc b/chrome/browser #include "chrome/browser/chrome_browser_interface_binders.h" -@@ -38,6 +42,7 @@ - #include "chrome/browser/ui/search_engines/search_engine_tab_helper.h" +@@ -36,6 +40,7 @@ #include "chrome/browser/ui/ui_features.h" - #include "chrome/browser/ui/views/side_panel/companion/companion_utils.h" + #include "chrome/browser/ui/webui/bluetooth_internals/bluetooth_internals.mojom.h" + #include "chrome/browser/ui/webui/bluetooth_internals/bluetooth_internals_ui.h" +#include "chrome/browser/ui/webui/adblock_internals/adblock_internals_ui.h" #include "chrome/browser/ui/webui/browsing_topics/browsing_topics_internals_ui.h" #include "chrome/browser/ui/webui/data_sharing_internals/data_sharing_internals_ui.h" #include "chrome/browser/ui/webui/engagement/site_engagement_ui.h" -@@ -1137,6 +1142,10 @@ void PopulateChromeWebUIFrameBinders( +@@ -930,6 +935,10 @@ void PopulateChromeWebUIFrameBinders( media::mojom::MediaEngagementScoreDetailsProvider, MediaEngagementUI>( map); @@ -2121,7 +2122,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc #include "chrome/browser/autocomplete/autocomplete_classifier_factory.h" #include "chrome/browser/autocomplete/document_suggestions_service_factory.h" #include "chrome/browser/autocomplete/in_memory_url_index_factory.h" -@@ -286,6 +299,8 @@ +@@ -291,6 +304,8 @@ #include "chrome/browser/signin/signin_manager_android_factory.h" #include "components/commerce/core/commerce_feature_list.h" #include "components/commerce/core/proto/merchant_signal_db_content.pb.h" @@ -2130,7 +2131,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc #else #include "chrome/browser/accessibility/live_caption/live_caption_controller_factory.h" #include "chrome/browser/accessibility/live_translate_controller_factory.h" -@@ -851,8 +866,19 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -871,8 +886,19 @@ void ChromeBrowserMainExtraPartsProfiles:: // Makes manual testing possible. FakeSmartCardDeviceServiceFactory::GetInstance(); #endif @@ -2163,7 +2164,7 @@ diff --git a/chrome/browser/resources/BUILD.gn b/chrome/browser/resources/BUILD. import("//build/config/chromeos/ui_mode.gni") import("//chrome/browser/buildflags.gni") -@@ -261,6 +264,7 @@ if (!is_android) { +@@ -254,6 +257,7 @@ if (!is_android) { group("dev_ui_resources") { public_deps = [ "accessibility:resources", @@ -2171,7 +2172,7 @@ diff --git a/chrome/browser/resources/BUILD.gn b/chrome/browser/resources/BUILD. "bluetooth_internals:resources", "browsing_topics:resources", "components:resources", -@@ -323,6 +327,7 @@ repack("dev_ui_paks") { +@@ -316,6 +320,7 @@ repack("dev_ui_paks") { sources = [ "$root_gen_dir/chrome/accessibility_resources.pak", @@ -2318,7 +2319,7 @@ diff --git a/chrome/browser/safe_browsing/safe_browsing_blocking_page_test.cc b/ #include "components/safe_browsing/content/browser/safe_browsing_blocking_page.h" -@@ -688,6 +692,8 @@ class SafeBrowsingBlockingPageBrowserTest +@@ -685,6 +689,8 @@ class SafeBrowsingBlockingPageBrowserTest {tag_and_attribute, add_warning_shown_timestamp_csbrrs, create_warning_shown_csbrrs, abusive_notification_revocation}, {}); @@ -2373,7 +2374,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn import("//build/config/buildflags_paint_preview.gni") import("//build/config/chromeos/ui_mode.gni") -@@ -170,6 +174,10 @@ static_library("ui") { +@@ -152,6 +156,10 @@ static_library("ui") { "webui/about/about_ui.h", "webui/accessibility/accessibility_ui.cc", "webui/accessibility/accessibility_ui.h", @@ -2384,7 +2385,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn "webui/autofill_and_password_manager_internals/autofill_internals_ui.cc", "webui/autofill_and_password_manager_internals/autofill_internals_ui.h", "webui/autofill_and_password_manager_internals/internals_ui_handler.cc", -@@ -395,6 +403,7 @@ static_library("ui") { +@@ -380,6 +388,7 @@ static_library("ui") { "//chrome/browser/signin", "//chrome/browser/signin:identity_manager_provider", "//chrome/browser/signin:impl", @@ -2392,7 +2393,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn "//chrome/browser/storage_access_api", "//chrome/browser/sync", "//chrome/browser/task_manager/common", -@@ -436,6 +445,7 @@ static_library("ui") { +@@ -429,6 +438,7 @@ static_library("ui") { "//components/access_code_cast/common:metrics", "//components/account_id", "//components/affiliations/core/browser:affiliations", @@ -2449,7 +2450,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" -@@ -115,6 +122,7 @@ +@@ -114,6 +121,7 @@ #include "chrome/common/chrome_features.h" #include "chrome/common/chrome_isolated_world_ids.h" #include "chrome/common/chrome_switches.h" @@ -2457,7 +2458,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc #include "components/autofill/content/browser/content_autofill_client.h" #include "components/autofill/content/browser/content_autofill_driver_factory.h" #include "components/autofill/core/browser/browser_autofill_manager.h" -@@ -368,6 +376,16 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -355,6 +363,16 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { optimization_guide_decider); } } @@ -2759,7 +2760,7 @@ diff --git a/chrome/browser/ui/webui/adblock_internals/adblock_internals_ui.h b/ new file mode 100644 --- /dev/null +++ b/chrome/browser/ui/webui/adblock_internals/adblock_internals_ui.h -@@ -0,0 +1,48 @@ +@@ -0,0 +1,57 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -2781,6 +2782,8 @@ new file mode 100644 +#define CHROME_BROWSER_UI_WEBUI_ADBLOCK_INTERNALS_ADBLOCK_INTERNALS_UI_H_ + +#include "chrome/browser/ui/webui/adblock_internals/adblock_internals.mojom.h" ++#include "chrome/common/webui_url_constants.h" ++#include "content/public/browser/webui_config.h" +#include "mojo/public/cpp/bindings/pending_receiver.h" +#include "ui/webui/mojo_web_ui_controller.h" + @@ -2807,39 +2810,32 @@ new file mode 100644 + handler_; +}; + ++class AdblockInternalsUIConfig : public content::DefaultWebUIConfig { ++ public: ++ AdblockInternalsUIConfig() ++ : DefaultWebUIConfig(content::kChromeUIScheme, ++ chrome::kChromeUIAdblockInternalsHost) {} ++}; ++ +#endif // CHROME_BROWSER_UI_WEBUI_ADBLOCK_INTERNALS_ADBLOCK_INTERNALS_UI_H_ -diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc ---- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc -+++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc -@@ -1,6 +1,10 @@ - // Copyright 2012 The Chromium Authors - // Use of this source code is governed by a BSD-style license that can be - // found in the LICENSE file. -+// -+// This source code is a part of eyeo Chromium SDK. -+// Use of this source code is governed by the GPLv3 that can be found in the -+// components/adblock/LICENSE file. - - #include "chrome/browser/ui/webui/chrome_web_ui_controller_factory.h" +diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/ui/webui/chrome_web_ui_configs.cc +--- a/chrome/browser/ui/webui/chrome_web_ui_configs.cc ++++ b/chrome/browser/ui/webui/chrome_web_ui_configs.cc +@@ -56,6 +56,8 @@ + #include "extensions/buildflags/buildflags.h" + #include "printing/buildflags/buildflags.h" -@@ -30,6 +34,7 @@ - #include "chrome/browser/profiles/profile.h" - #include "chrome/browser/safe_browsing/chrome_safe_browsing_local_state_delegate.h" - #include "chrome/browser/ui/webui/about/about_ui.h" +#include "chrome/browser/ui/webui/adblock_internals/adblock_internals_ui.h" - #include "chrome/browser/ui/webui/components/components_ui.h" - #include "chrome/browser/ui/webui/crashes_ui.h" ++ #include "chrome/browser/ui/webui/proxy_config_ui.h" -@@ -276,6 +281,9 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, - if (url.host_piece() == chrome::kChromeUISettingsHost) - return &NewWebUI; + + #if BUILDFLAG(IS_ANDROID) +@@ -428,4 +430,5 @@ void RegisterChromeWebUIConfigs() { + #if BUILDFLAG(IS_ANDROID) + map.AddWebUIConfig(std::make_unique()); #endif // BUILDFLAG(IS_ANDROID) -+ if (url.host_piece() == chrome::kChromeUIAdblockInternalsHost) { -+ return &NewWebUI; -+ } - #if !BUILDFLAG(IS_ANDROID) - if (url.host_piece() == chrome::kChromeUINewTabHost) { - // The URL chrome://newtab/ can be either a virtual or a real URL, ++ map.AddWebUIConfig(std::make_unique()); + } diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn --- a/chrome/common/BUILD.gn +++ b/chrome/common/BUILD.gn diff --git a/build/patches/eyeo-beta-118.0.5993.48-extension_api.patch b/build/patches/eyeo-beta-118.0.5993.48-extension_api.patch index a6d5dccb9..6c267a2fa 100644 --- a/build/patches/eyeo-beta-118.0.5993.48-extension_api.patch +++ b/build/patches/eyeo-beta-118.0.5993.48-extension_api.patch @@ -65,16 +65,16 @@ diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUIL "api/bookmark_manager_private/bookmark_manager_private_api.cc", "api/bookmark_manager_private/bookmark_manager_private_api.h", "api/bookmarks/bookmark_api_helpers.cc", -@@ -117,6 +123,8 @@ source_set("extensions") { - "api/extension_action/extension_action_api.h", - "api/extension_action/extension_page_actions_api_constants.cc", - "api/extension_action/extension_page_actions_api_constants.h", +@@ -111,6 +117,8 @@ source_set("extensions") { + "api/enterprise_reporting_private/conversion_utils.h", + "api/enterprise_reporting_private/enterprise_reporting_private_api.cc", + "api/enterprise_reporting_private/enterprise_reporting_private_api.h", + "api/eyeo_filtering_private/eyeo_filtering_private_api.cc", + "api/eyeo_filtering_private/eyeo_filtering_private_api.h", "api/feedback_private/chrome_feedback_private_delegate.cc", "api/feedback_private/chrome_feedback_private_delegate.h", "api/file_system/chrome_file_system_delegate.cc", -@@ -793,6 +801,7 @@ source_set("extensions") { +@@ -786,6 +794,7 @@ source_set("extensions") { "//chrome/browser/ui/safety_hub", "//chrome/browser/ui/tabs:tab_enums", "//chrome/browser/web_applications", @@ -96,7 +96,7 @@ diff --git a/chrome/browser/extensions/api/BUILD.gn b/chrome/browser/extensions/ import("//chrome/common/extensions/api/api_sources.gni") import("//chrome/common/features.gni") -@@ -118,6 +122,7 @@ function_registration("api_registration") { +@@ -126,6 +130,7 @@ function_registration("api_registration") { # include generated headers from these targets. # TODO(brettw) this should be made unnecessary if possible. "//chrome/common/extensions/api", @@ -2125,14 +2125,14 @@ diff --git a/chrome/browser/extensions/api/api_browser_context_keyed_service_fac #include "chrome/browser/extensions/api/bookmark_manager_private/bookmark_manager_private_api.h" #include "chrome/browser/extensions/api/bookmarks/bookmarks_api.h" @@ -12,6 +17,7 @@ + #include "chrome/browser/extensions/api/braille_display_private/braille_display_private_api.h" #include "chrome/browser/extensions/api/cookies/cookies_api.h" #include "chrome/browser/extensions/api/developer_private/developer_private_api.h" - #include "chrome/browser/extensions/api/extension_action/extension_action_api.h" +#include "chrome/browser/extensions/api/eyeo_filtering_private/eyeo_filtering_private_api.h" #include "chrome/browser/extensions/api/font_settings/font_settings_api.h" #include "chrome/browser/extensions/api/history/history_api.h" #include "chrome/browser/extensions/api/identity/identity_api.h" -@@ -66,6 +72,7 @@ namespace chrome_extensions { +@@ -69,6 +75,7 @@ namespace chrome_extensions { void EnsureApiBrowserContextKeyedServiceFactoriesBuilt() { extensions::ActivityLogAPI::GetFactoryInstance(); @@ -2140,10 +2140,10 @@ diff --git a/chrome/browser/extensions/api/api_browser_context_keyed_service_fac extensions::AutofillPrivateEventRouterFactory::GetInstance(); extensions::BluetoothLowEnergyAPI::GetFactoryInstance(); extensions::BookmarksAPI::GetFactoryInstance(); -@@ -78,6 +85,7 @@ void EnsureApiBrowserContextKeyedServiceFactoriesBuilt() { +@@ -82,6 +89,7 @@ void EnsureApiBrowserContextKeyedServiceFactoriesBuilt() { extensions::DocumentScanAPIHandler::GetFactoryInstance(); #endif - extensions::ExtensionActionAPI::GetFactoryInstance(); + extensions::ExtensionNotificationDisplayHelperFactory::GetInstance(); + extensions::EyeoFilteringPrivateAPI::GetFactoryInstance(); extensions::FontSettingsAPI::GetFactoryInstance(); extensions::HistoryAPI::GetFactoryInstance(); @@ -3478,7 +3478,7 @@ diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chro #include "components/autofill/core/common/autofill_prefs.h" #include "components/bookmarks/common/bookmark_pref_names.h" #include "components/browsing_data/core/pref_names.h" -@@ -173,6 +178,20 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { +@@ -174,6 +179,20 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { } s_allowlist = new PrefsUtil::TypedPrefMap(); @@ -4133,15 +4133,15 @@ diff --git a/extensions/common/mojom/api_permission_id.mojom b/extensions/common diff --git a/tools/metrics/histograms/metadata/extensions/enums.xml b/tools/metrics/histograms/metadata/extensions/enums.xml --- a/tools/metrics/histograms/metadata/extensions/enums.xml +++ b/tools/metrics/histograms/metadata/extensions/enums.xml -@@ -761,6 +761,7 @@ Called by update_extension_histograms.py.--> - label="ACCESSIBILITY_PRIVATE_ON_TOGGLE_GESTURE_INFO_FOR_SETTINGS"/> - +@@ -763,6 +763,7 @@ Called by update_extension_histograms.py.--> -+ + + ++ -@@ -3159,6 +3160,8 @@ Called by update_extension_permission.py.--> +@@ -3165,6 +3166,8 @@ Called by update_extension_permission.py.--> diff --git a/build/patches/kill-Location-fall-back-to-system.patch b/build/patches/kill-Location-fall-back-to-system.patch index 00a5720ea..e368e2fa5 100644 --- a/build/patches/kill-Location-fall-back-to-system.patch +++ b/build/patches/kill-Location-fall-back-to-system.patch @@ -56,7 +56,7 @@ diff --git a/services/device/public/cpp/device_features.cc b/services/device/pub #if BUILDFLAG(IS_CHROMEOS) // Enables crash key logging for USB device open operations on ChromeOS. See -@@ -80,7 +81,7 @@ const base::FeatureParam::Option +@@ -88,7 +89,7 @@ const base::FeatureParam::Option const base::FeatureParam kLocationProviderManagerParam{ &kLocationProviderManager, "LocationProviderManagerMode", diff --git a/build/patches/kill-Vision.patch b/build/patches/kill-Vision.patch index cffb97056..53d441384 100644 --- a/build/patches/kill-Vision.patch +++ b/build/patches/kill-Vision.patch @@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -314,8 +314,6 @@ if (current_toolchain == default_toolchain) { +@@ -320,8 +320,6 @@ if (current_toolchain == default_toolchain) { "$google_play_services_package:google_play_services_gcm_java", "$google_play_services_package:google_play_services_iid_java", "$google_play_services_package:google_play_services_tasks_java", diff --git a/build/patches/mime_util-force-text-x-suse-ymp-to-be-downloaded.patch b/build/patches/mime_util-force-text-x-suse-ymp-to-be-downloaded.patch index 4052fc753..7e3929d80 100644 --- a/build/patches/mime_util-force-text-x-suse-ymp-to-be-downloaded.patch +++ b/build/patches/mime_util-force-text-x-suse-ymp-to-be-downloaded.patch @@ -13,7 +13,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/third_party/blink/common/mime_util/mime_util.cc b/third_party/blink/common/mime_util/mime_util.cc --- a/third_party/blink/common/mime_util/mime_util.cc +++ b/third_party/blink/common/mime_util/mime_util.cc -@@ -86,6 +86,7 @@ constexpr auto kUnsupportedTextTypes = +@@ -87,6 +87,7 @@ constexpr auto kUnsupportedTextTypes = "text/x-csv", "text/x-vcf", "text/rtf", diff --git a/build/patches/prefs-always-prompt-for-download-directory.patch b/build/patches/prefs-always-prompt-for-download-directory.patch index 79384c6a5..5bf8e4c05 100644 --- a/build/patches/prefs-always-prompt-for-download-directory.patch +++ b/build/patches/prefs-always-prompt-for-download-directory.patch @@ -31,7 +31,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/download/download_prefs.cc b/chrome/browser/download/download_prefs.cc --- a/chrome/browser/download/download_prefs.cc +++ b/chrome/browser/download/download_prefs.cc -@@ -275,7 +275,7 @@ void DownloadPrefs::RegisterProfilePrefs( +@@ -276,7 +276,7 @@ void DownloadPrefs::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref( prefs::kPromptForDownload, diff --git a/build/patches/ungoogled-chromium-Disable-profile-avatar.patch b/build/patches/ungoogled-chromium-Disable-profile-avatar.patch index ea89ee550..d197d51f4 100644 --- a/build/patches/ungoogled-chromium-Disable-profile-avatar.patch +++ b/build/patches/ungoogled-chromium-Disable-profile-avatar.patch @@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -1289,8 +1289,6 @@ static_library("browser") { +@@ -1265,8 +1265,6 @@ static_library("browser") { "profiles/keep_alive/scoped_profile_keep_alive.h", "profiles/off_the_record_profile_impl.cc", "profiles/off_the_record_profile_impl.h", @@ -42,7 +42,7 @@ diff --git a/chrome/browser/profiles/profile_attributes_entry.cc b/chrome/browse diff --git a/chrome/browser/profiles/profile_attributes_storage.cc b/chrome/browser/profiles/profile_attributes_storage.cc --- a/chrome/browser/profiles/profile_attributes_storage.cc +++ b/chrome/browser/profiles/profile_attributes_storage.cc -@@ -972,7 +972,7 @@ void ProfileAttributesStorage::DownloadHighResAvatarIfNeeded( +@@ -971,7 +971,7 @@ void ProfileAttributesStorage::DownloadHighResAvatarIfNeeded( void ProfileAttributesStorage::DownloadHighResAvatar( size_t icon_index, const base::FilePath& profile_path) { diff --git a/build/patches/ungoogled-chromium-Disable-translate-integration.patch b/build/patches/ungoogled-chromium-Disable-translate-integration.patch index a4169ac01..2a7d18907 100644 --- a/build/patches/ungoogled-chromium-Disable-translate-integration.patch +++ b/build/patches/ungoogled-chromium-Disable-translate-integration.patch @@ -173,7 +173,7 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -2097,9 +2097,6 @@ Your Google account may have other forms of browsing history like searches and a +@@ -2087,9 +2087,6 @@ Your Google account may have other forms of browsing history like searches and a Let websites know the languages you speak. They’ll show content in those languages, when possible. diff --git a/build/patches/ungoogled-chromium-no-special-hosts-domains.patch b/build/patches/ungoogled-chromium-no-special-hosts-domains.patch index a644bf42d..6db1587e4 100644 --- a/build/patches/ungoogled-chromium-no-special-hosts-domains.patch +++ b/build/patches/ungoogled-chromium-no-special-hosts-domains.patch @@ -53,25 +53,25 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html components/domain_reliability/uploader.cc | 2 +- components/google/core/common/google_util.cc | 313 +----------------- components/google/core/common/google_util.h | 15 +- - .../browser/page_load_metrics_util.cc | 4 +- - .../common/page_load_metrics_util.cc | 33 +- + .../browser/page_load_metrics_util.cc | 3 +- + .../google/browser/google_url_util.cc | 1 + .../search_engines/search_engine_utils.cc | 1 + .../search_engines/search_terms_data.cc | 4 +- components/search_engines/template_url.cc | 6 +- components/search_provider_logos/BUILD.gn | 2 - .../logo_service_impl.cc | 16 +- - components/url_matcher/url_util.cc | 83 ----- + components/url_matcher/url_util.cc | 89 ----- .../webid/identity_url_loader_throttle.cc | 1 + ...gled-chromium-no-special-hosts-domains.inc | 1 + net/base/url_util.cc | 25 +- services/network/network_context.cc | 2 +- - 58 files changed, 53 insertions(+), 823 deletions(-) + 58 files changed, 53 insertions(+), 796 deletions(-) create mode 100644 cromite_flags/content/public/common/content_features_cc/ungoogled-chromium-no-special-hosts-domains.inc diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java -@@ -97,7 +97,6 @@ import org.chromium.chrome.browser.messages.MessageContainerObserver; +@@ -99,7 +99,6 @@ import org.chromium.chrome.browser.messages.MessageContainerObserver; import org.chromium.chrome.browser.messages.MessagesResourceMapperInitializer; import org.chromium.chrome.browser.metrics.UmaSessionStats; import org.chromium.chrome.browser.omnibox.OmniboxFocusReason; @@ -79,7 +79,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi import org.chromium.chrome.browser.omnibox.suggestions.action.OmniboxActionDelegateImpl; import org.chromium.chrome.browser.paint_preview.DemoPaintPreview; import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer; -@@ -1182,10 +1181,8 @@ public class RootUiCoordinator +@@ -1197,10 +1196,8 @@ public class RootUiCoordinator String url = TemplateUrlServiceFactory.getForProfile(tab.getProfile()) .getUrlForSearchQuery(query); @@ -93,7 +93,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -890,10 +890,6 @@ static_library("browser") { +@@ -889,10 +889,6 @@ static_library("browser") { "page_info/page_info_features.h", "page_load_metrics/observers/bookmark_bar_page_load_metrics_observer.cc", "page_load_metrics/observers/bookmark_bar_page_load_metrics_observer.h", @@ -104,7 +104,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "page_load_metrics/observers/core/amp_page_load_metrics_observer.cc", "page_load_metrics/observers/core/amp_page_load_metrics_observer.h", "page_load_metrics/observers/core/ukm_page_load_metrics_observer.cc", -@@ -902,10 +898,6 @@ static_library("browser") { +@@ -901,10 +897,6 @@ static_library("browser") { "page_load_metrics/observers/document_write_page_load_metrics_observer.h", "page_load_metrics/observers/foreground_duration_ukm_observer.cc", "page_load_metrics/observers/foreground_duration_ukm_observer.h", @@ -115,7 +115,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "page_load_metrics/observers/histogram_suffixes.cc", "page_load_metrics/observers/histogram_suffixes.h", "page_load_metrics/observers/https_engagement_metrics/https_engagement_page_load_metrics_observer.cc", -@@ -1552,8 +1544,6 @@ static_library("browser") { +@@ -1528,8 +1520,6 @@ static_library("browser") { "supervised_user/classify_url_navigation_throttle.h", "supervised_user/supervised_user_browser_utils.cc", "supervised_user/supervised_user_browser_utils.h", @@ -124,7 +124,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "supervised_user/supervised_user_interstitial_tab_closer.cc", "supervised_user/supervised_user_interstitial_tab_closer.h", "supervised_user/supervised_user_metrics_service_factory.cc", -@@ -1746,9 +1736,6 @@ static_library("browser") { +@@ -1718,9 +1708,6 @@ static_library("browser") { "//chrome/browser/commerce:impl", "//chrome/browser/devtools", "//chrome/browser/favicon", @@ -134,7 +134,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "//chrome/browser/media/webrtc", "//chrome/browser/navigation_predictor:impl", "//chrome/browser/file_system_access:impl", -@@ -1823,7 +1810,6 @@ static_library("browser") { +@@ -1806,7 +1793,6 @@ static_library("browser") { # New dependencies inside of //chrome/browser that generate header files # should be added to browser_generated_files. ":browser_public_dependencies", @@ -165,7 +165,7 @@ diff --git a/chrome/browser/android/metrics/uma_session_stats.cc b/chrome/browse diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc --- a/chrome/browser/browser_process_impl.cc +++ b/chrome/browser/browser_process_impl.cc -@@ -1219,7 +1219,6 @@ BrowserProcessImpl::component_updater() { +@@ -1214,7 +1214,6 @@ BrowserProcessImpl::component_updater() { std::make_unique(); std::string brand; @@ -176,7 +176,7 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc --- a/chrome/browser/chrome_browser_main.cc +++ b/chrome/browser/chrome_browser_main.cc -@@ -557,11 +557,6 @@ void ProcessSingletonNotificationCallbackImpl( +@@ -558,11 +558,6 @@ void ProcessSingletonNotificationCallbackImpl( StartupBrowserCreator::ProcessCommandLineAlreadyRunning( command_line, current_directory, startup_profile_path_info); @@ -188,7 +188,7 @@ diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_brows } #endif // BUILDFLAG(ENABLE_PROCESS_SINGLETON) -@@ -1830,11 +1825,6 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { +@@ -1837,11 +1832,6 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { upgrade_util::SaveLastModifiedTimeOfExe(); #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) @@ -203,7 +203,7 @@ diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_brows diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -3000,7 +3000,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( +@@ -3004,7 +3004,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( switches::kForcePNaClSubzero, #endif switches::kForceUIDirection, @@ -211,7 +211,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch switches::kJavaScriptHarmony, switches::kEnableExperimentalWebAssemblyFeatures, embedder_support::kOriginTrialDisabledFeatures, -@@ -5460,9 +5459,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( +@@ -5465,9 +5464,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( } #endif @@ -221,7 +221,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch if (base::FeatureList::IsEnabled( supervised_user::kClassifyUrlOnProcessResponseEvent)) { -@@ -6060,7 +6056,8 @@ GetClientDataHeader(content::FrameTreeNodeId frame_tree_node_id) { +@@ -6058,7 +6054,8 @@ GetClientDataHeader(content::FrameTreeNodeId frame_tree_node_id) { } #endif @@ -231,7 +231,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch #if BUILDFLAG(IS_ANDROID) const std::string& client_data_header, #endif -@@ -6100,7 +6097,7 @@ std::unique_ptr CreateGoogleURLLoaderThrottle( +@@ -6098,7 +6095,7 @@ std::unique_ptr CreateGoogleURLLoaderThrottle( std::move(bound_session_request_throttled_handler), #endif std::move(dynamic_params)); @@ -240,7 +240,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch std::vector> ChromeContentBrowserClient::CreateURLLoaderThrottles( -@@ -6157,15 +6154,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottles( +@@ -6155,15 +6152,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottles( GetClientDataHeader(frame_tree_node_id); #endif @@ -256,7 +256,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch { auto* factory = ProtocolHandlerRegistryFactory::GetForBrowserContext(browser_context); -@@ -6220,20 +6208,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottlesForKeepAlive( +@@ -6218,20 +6206,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottlesForKeepAlive( } #endif @@ -326,7 +326,7 @@ diff --git a/chrome/browser/domain_reliability/service_factory.cc b/chrome/brows diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUILD.gn --- a/chrome/browser/extensions/BUILD.gn +++ b/chrome/browser/extensions/BUILD.gn -@@ -781,7 +781,6 @@ source_set("extensions") { +@@ -774,7 +774,6 @@ source_set("extensions") { "//chrome/browser/devtools", "//chrome/browser/extensions:cws_item_service_proto", "//chrome/browser/favicon", @@ -583,7 +583,7 @@ diff --git a/chrome/browser/metrics/metrics_reporting_state.cc b/chrome/browser/ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc --- a/chrome/browser/net/system_network_context_manager.cc +++ b/chrome/browser/net/system_network_context_manager.cc -@@ -852,7 +852,6 @@ void SystemNetworkContextManager::AddSSLConfigToNetworkContextParams( +@@ -853,7 +853,6 @@ void SystemNetworkContextManager::AddSSLConfigToNetworkContextParams( void SystemNetworkContextManager::ConfigureDefaultNetworkContextParams( network::mojom::NetworkContextParams* network_context_params) { variations::UpdateCorsExemptHeaderForVariations(network_context_params); @@ -638,7 +638,7 @@ diff --git a/chrome/browser/page_load_metrics/observers/from_gws_page_load_metri diff --git a/chrome/browser/page_load_metrics/page_load_metrics_initialize.cc b/chrome/browser/page_load_metrics/page_load_metrics_initialize.cc --- a/chrome/browser/page_load_metrics/page_load_metrics_initialize.cc +++ b/chrome/browser/page_load_metrics/page_load_metrics_initialize.cc -@@ -170,12 +170,7 @@ void PageLoadMetricsEmbedder::RegisterObservers( +@@ -163,12 +163,7 @@ void PageLoadMetricsEmbedder::RegisterObservers( tracker->AddObserver(std::make_unique()); tracker->AddObserver(std::make_unique()); tracker->AddObserver(std::make_unique()); @@ -665,7 +665,7 @@ diff --git a/chrome/browser/profile_resetter/BUILD.gn b/chrome/browser/profile_r diff --git a/chrome/browser/profile_resetter/profile_resetter.cc b/chrome/browser/profile_resetter/profile_resetter.cc --- a/chrome/browser/profile_resetter/profile_resetter.cc +++ b/chrome/browser/profile_resetter/profile_resetter.cc -@@ -100,8 +100,7 @@ ProfileResetter::ProfileResetter(Profile* profile) +@@ -104,8 +104,7 @@ ProfileResetter::ProfileResetter(Profile* profile) DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK(profile_); @@ -736,7 +736,7 @@ diff --git a/chrome/browser/signin/android/signin_manager_android.cc b/chrome/br diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -364,7 +364,6 @@ static_library("ui") { +@@ -350,7 +350,6 @@ static_library("ui") { "//chrome/browser/feedback:feedback_impl", "//chrome/browser/file_system_access", "//chrome/browser/fingerprinting_protection", @@ -753,7 +753,7 @@ diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/andr "java/src/org/chromium/chrome/browser/omnibox/UrlFocusChangeListener.java", - "java/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeader.java", - "java/src/org/chromium/chrome/browser/omnibox/geo/GeolocationTracker.java", - "java/src/org/chromium/chrome/browser/omnibox/status/PageInfoIPHController.java", + "java/src/org/chromium/chrome/browser/omnibox/status/PageInfoIphController.java", "java/src/org/chromium/chrome/browser/omnibox/status/StatusCoordinator.java", "java/src/org/chromium/chrome/browser/omnibox/status/StatusIconView.java", 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 @@ -767,7 +767,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.omnibox.status.StatusCoordinator; import org.chromium.chrome.browser.omnibox.status.StatusCoordinator.PageInfoAction; import org.chromium.chrome.browser.omnibox.status.StatusView; -@@ -390,7 +389,6 @@ public class LocationBarCoordinator +@@ -387,7 +386,6 @@ public class LocationBarCoordinator mLocationBarMediator.destroy(); mLocationBarMediator = null; @@ -778,7 +778,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java -@@ -48,7 +48,6 @@ import org.chromium.chrome.browser.lifecycle.PauseResumeWithNativeObserver; +@@ -49,7 +49,6 @@ import org.chromium.chrome.browser.lifecycle.PauseResumeWithNativeObserver; import org.chromium.chrome.browser.locale.LocaleManager; import org.chromium.chrome.browser.omnibox.UrlBar.UrlBarDelegate; import org.chromium.chrome.browser.omnibox.UrlBarCoordinator.SelectionState; @@ -786,7 +786,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.omnibox.status.StatusCoordinator; import org.chromium.chrome.browser.omnibox.styles.OmniboxResourceProvider; import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteCoordinator; -@@ -303,24 +302,6 @@ class LocationBarMediator +@@ -304,24 +303,6 @@ class LocationBarMediator if (!mUrlFocusedWithoutAnimations) handleUrlFocusAnimation(hasFocus); @@ -811,7 +811,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow if (!hasFocus && mLocationBarDataProvider.hasTab()) { setUrl( mLocationBarDataProvider.getCurrentGurl(), -@@ -336,8 +317,6 @@ class LocationBarMediator +@@ -337,8 +318,6 @@ class LocationBarMediator templateUrlService.addObserver(this); if (OmniboxFeatures.sUseFusedLocationProvider.isEnabled() && templateUrlService.isDefaultSearchEngineGoogle()) { @@ -820,7 +820,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow } }); -@@ -570,7 +549,6 @@ class LocationBarMediator +@@ -571,7 +550,6 @@ class LocationBarMediator LoadUrlParams loadUrlParams = new LoadUrlParams(url); try (TimingMetric record = TimingMetric.shortUptime("Android.Omnibox.SetGeolocationHeadersTime")) { @@ -828,7 +828,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow } loadUrlParams.setTransitionType( omniboxLoadUrlParams.transitionType | PageTransition.FROM_ADDRESS_BAR); -@@ -1546,15 +1524,12 @@ class LocationBarMediator +@@ -1553,8 +1531,6 @@ class LocationBarMediator if (OmniboxFeatures.sUseFusedLocationProvider.isEnabled() && mProfileSupplier.hasValue() && mTemplateUrlServiceSupplier.hasValue()) { @@ -837,8 +837,9 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow } } - @Override +@@ -1562,7 +1538,6 @@ class LocationBarMediator public void onPauseWithNative() { + OmniboxFeatures.updateLastExitTimestamp(); if (OmniboxFeatures.sUseFusedLocationProvider.isEnabled()) { - GeolocationHeader.stopListeningForLocationUpdates(); } @@ -847,7 +848,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc b/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc --- a/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc +++ b/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc -@@ -467,11 +467,6 @@ content::WebUIDataSource* CreateAndAddNewTabPageUiHtmlSource(Profile* profile) { +@@ -463,11 +463,6 @@ content::WebUIDataSource* CreateAndAddNewTabPageUiHtmlSource(Profile* profile) { // chrome-untrusted://new-tab-page for other external content and resources. // NOTE: Use caution when overriding content security policies as that cean // lead to subtle security bugs such as https://crbug.com/1251541. @@ -924,7 +925,7 @@ diff --git a/chrome/renderer/url_loader_throttle_provider_impl.cc b/chrome/rende diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn -@@ -6183,7 +6183,6 @@ test("unit_tests") { +@@ -6255,7 +6255,6 @@ test("unit_tests") { "//chrome/browser/file_system_access:unit_tests", "//chrome/browser/fingerprinting_protection", "//chrome/browser/first_party_sets", @@ -1022,7 +1023,7 @@ diff --git a/components/domain_reliability/google_configs.cc b/components/domain // Origins with subdomains and same-origin collectors. Currently, all // origins with same-origin collectors also run collectors on their www // subdomain. (e.g., both foo.com and www.foo.com.) -@@ -552,11 +552,11 @@ std::unique_ptr CreateGoogleConfig( +@@ -553,11 +553,11 @@ std::unique_ptr CreateGoogleConfig( config->failure_sample_rate = 1.00; config->path_prefixes.clear(); return config; @@ -1036,7 +1037,7 @@ diff --git a/components/domain_reliability/google_configs.cc b/components/domain const std::string& hostname) { bool is_www_subdomain = base::StartsWith(hostname, "www.", base::CompareCase::SENSITIVE); -@@ -606,6 +606,6 @@ GetAllGoogleConfigsForTesting() { +@@ -607,6 +607,6 @@ GetAllGoogleConfigsForTesting() { configs_out.push_back(CreateGoogleConfig(params, true)); } return configs_out; @@ -1503,60 +1504,27 @@ diff --git a/components/google/core/common/google_util.h b/components/google/cor diff --git a/components/page_load_metrics/browser/page_load_metrics_util.cc b/components/page_load_metrics/browser/page_load_metrics_util.cc --- a/components/page_load_metrics/browser/page_load_metrics_util.cc +++ b/components/page_load_metrics/browser/page_load_metrics_util.cc -@@ -285,9 +285,7 @@ bool DidObserveLoadingBehaviorInAnyFrame( +@@ -285,8 +285,7 @@ bool DidObserveLoadingBehaviorInAnyFrame( } - bool IsGoogleSearchHostname(const GURL& url) { -- std::optional result = -- page_load_metrics::GetGoogleHostnamePrefix(url); -- return result && result.value() == "www"; + bool IsZstdUrl(const GURL& url) { +- return url.DomainIs("facebook.com") || url.DomainIs("instagram.com") || +- url.DomainIs("whatsapp.com") || url.DomainIs("messenger.com"); + return false; } - bool IsProbablyGoogleSearchUrl(const GURL& url) { -diff --git a/components/page_load_metrics/common/page_load_metrics_util.cc b/components/page_load_metrics/common/page_load_metrics_util.cc ---- a/components/page_load_metrics/common/page_load_metrics_util.cc -+++ b/components/page_load_metrics/common/page_load_metrics_util.cc -@@ -25,38 +25,7 @@ const int kExtraBufferTimerDelayMillis = 50; - } // namespace + bool QueryContainsComponent(std::string_view query, +diff --git a/components/page_load_metrics/google/browser/google_url_util.cc b/components/page_load_metrics/google/browser/google_url_util.cc +--- a/components/page_load_metrics/google/browser/google_url_util.cc ++++ b/components/page_load_metrics/google/browser/google_url_util.cc +@@ -14,6 +14,7 @@ + namespace page_load_metrics { std::optional GetGoogleHostnamePrefix(const GURL& url) { -- const size_t registry_length = -- net::registry_controlled_domains::GetRegistryLength( -- url, -- -- // Do not include unknown registries (registries that don't have any -- // matches in effective TLD names). -- net::registry_controlled_domains::EXCLUDE_UNKNOWN_REGISTRIES, -- -- // Do not include private registries, such as appspot.com. We don't -- // want to match URLs like www.google.appspot.com. -- net::registry_controlled_domains::EXCLUDE_PRIVATE_REGISTRIES); -- -- const std::string_view hostname = url.host_piece(); -- if (registry_length == 0 || registry_length == std::string::npos || -- registry_length >= hostname.length()) { -- return std::nullopt; -- } -- -- // Removes the tld and the preceding dot. -- const std::string_view hostname_minus_registry = -- hostname.substr(0, hostname.length() - (registry_length + 1)); -- -- if (hostname_minus_registry == "google") -- return std::string(""); -- -- if (!base::EndsWith(hostname_minus_registry, ".google", -- base::CompareCase::INSENSITIVE_ASCII)) { -- return std::nullopt; -- } -- -- return std::string(hostname_minus_registry.substr( -- 0, hostname_minus_registry.length() - strlen(".google"))); -+ return std::nullopt; - } - - bool IsGoogleHostname(const GURL& url) { ++ if ((true)) return std::nullopt; + const size_t registry_length = + net::registry_controlled_domains::GetRegistryLength( + url, diff --git a/components/search_engines/search_engine_utils.cc b/components/search_engines/search_engine_utils.cc --- a/components/search_engines/search_engine_utils.cc +++ b/components/search_engines/search_engine_utils.cc @@ -1689,7 +1657,7 @@ diff --git a/components/url_matcher/url_util.cc b/components/url_matcher/url_uti void ProcessQueryToConditions( url_matcher::URLMatcherConditionFactory* condition_factory, const std::string& query, -@@ -118,77 +106,6 @@ class EmbeddedURLExtractor { +@@ -118,87 +106,10 @@ class EmbeddedURLExtractor { // Implements url_filter::GetEmbeddedURL(). GURL GetEmbeddedURL(const GURL& url) { @@ -1706,17 +1674,9 @@ diff --git a/components/url_matcher/url_util.cc b/components/url_matcher/url_uti - } - - // Check for "www.google.TLD/amp/" URLs. -- if (google_util::IsGoogleDomainUrl( -- url, google_util::DISALLOW_SUBDOMAIN, -- google_util::DISALLOW_NON_STANDARD_PORTS)) { -- std::string s; -- std::string embedded; -- if (re2::RE2::FullMatch(url.path(), google_amp_viewer_path_regex_, &s, -- &embedded)) { -- // The embedded URL may be percent-encoded. Undo that. -- embedded = base::UnescapeBinaryURLComponent(embedded); -- return BuildURL(!s.empty(), embedded); -- } +- if (GURL google_amp_embedded_url = GetGoogleAmpViewerEmbeddedURL(url); +- !google_amp_embedded_url.is_empty()) { +- return google_amp_embedded_url; - } - - // Check for Google web cache URLs @@ -1763,6 +1723,24 @@ diff --git a/components/url_matcher/url_util.cc b/components/url_matcher/url_uti - return url_formatter::FixupURL(embedded, /*desired_tld=*/std::string()); - } - } +- + return GURL(); + } + + GURL GetGoogleAmpViewerEmbeddedURL(const GURL& url) const { +- // Check for "www.google.TLD/amp/" URLs. +- if (google_util::IsGoogleDomainUrl( +- url, google_util::DISALLOW_SUBDOMAIN, +- google_util::DISALLOW_NON_STANDARD_PORTS)) { +- std::string s; +- std::string embedded; +- if (re2::RE2::FullMatch(url.path(), google_amp_viewer_path_regex_, &s, +- &embedded)) { +- // The embedded URL may be percent-encoded. Undo that. +- embedded = base::UnescapeBinaryURLComponent(embedded); +- return BuildURL(!s.empty(), embedded); +- } +- } - return GURL(); } @@ -1826,7 +1804,7 @@ diff --git a/net/base/url_util.cc b/net/base/url_util.cc diff --git a/services/network/network_context.cc b/services/network/network_context.cc --- a/services/network/network_context.cc +++ b/services/network/network_context.cc -@@ -2899,7 +2899,7 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( +@@ -2973,7 +2973,7 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( } #endif // BUILDFLAG(IS_CT_SUPPORTED) diff --git a/build/patches/webRTC-do-not-expose-local-IP-addresses.patch b/build/patches/webRTC-do-not-expose-local-IP-addresses.patch index e327e07f7..809789d91 100644 --- a/build/patches/webRTC-do-not-expose-local-IP-addresses.patch +++ b/build/patches/webRTC-do-not-expose-local-IP-addresses.patch @@ -40,7 +40,7 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_d } bool IsValidPortRange(uint16_t min_port, uint16_t max_port) { -@@ -899,7 +901,7 @@ PeerConnectionDependencyFactory::CreatePortAllocator( +@@ -897,7 +899,7 @@ PeerConnectionDependencyFactory::CreatePortAllocator( break; } diff --git a/build/patches/webview-Hard-no-to-persistent-histograms.patch b/build/patches/webview-Hard-no-to-persistent-histograms.patch index cb486e643..88773afc4 100644 --- a/build/patches/webview-Hard-no-to-persistent-histograms.patch +++ b/build/patches/webview-Hard-no-to-persistent-histograms.patch @@ -18,7 +18,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/android_webview/browser/aw_field_trials.cc b/android_webview/browser/aw_field_trials.cc --- a/android_webview/browser/aw_field_trials.cc +++ b/android_webview/browser/aw_field_trials.cc -@@ -92,13 +92,6 @@ class AwFeatureOverrides { +@@ -94,13 +94,6 @@ class AwFeatureOverrides { } // namespace void AwFieldTrials::OnVariationsSetupComplete() {